基于STM32的可穿戴设备系统 毕业设计说明书(可穿戴设备系统).doc

上传人:文库蛋蛋多 文档编号:2392729 上传时间:2023-02-17 格式:DOC 页数:78 大小:3.71MB
返回 下载 相关 举报
基于STM32的可穿戴设备系统 毕业设计说明书(可穿戴设备系统).doc_第1页
第1页 / 共78页
基于STM32的可穿戴设备系统 毕业设计说明书(可穿戴设备系统).doc_第2页
第2页 / 共78页
基于STM32的可穿戴设备系统 毕业设计说明书(可穿戴设备系统).doc_第3页
第3页 / 共78页
基于STM32的可穿戴设备系统 毕业设计说明书(可穿戴设备系统).doc_第4页
第4页 / 共78页
基于STM32的可穿戴设备系统 毕业设计说明书(可穿戴设备系统).doc_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《基于STM32的可穿戴设备系统 毕业设计说明书(可穿戴设备系统).doc》由会员分享,可在线阅读,更多相关《基于STM32的可穿戴设备系统 毕业设计说明书(可穿戴设备系统).doc(78页珍藏版)》请在三一办公上搜索。

1、2016届毕业生毕业设计说明书题 目: 基于STM32的可穿戴设备系统 院系名称:学生姓名:指导教师:2016年 05月16日摘要“可穿戴设备”是可穿戴技术在日常穿戴产品的设计中的应用,例如手表、眼镜、服装、鞋和手套。广义的可穿戴设备是指功能全、尺寸大,不依赖于智能手机,实现了智能手机全部或部分功能,如智能手表和智能眼镜等,以及只专注于某一类型的应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。随着技术的进步以及用户需求的变迁,可穿戴式智能设备的形态也在不断的变化。穿戴式技术在国际计算机学术界和工业界一直都备受关注,只不过由于造价成本高和技术复杂,很多相关设

2、备仅仅停留在概念领域。本系统以意法半导体公司的基于Cortex-M3 32位高性能单片机STM32F103ZET6为核心,由GSM模块、GPS模块、MPU6050六轴加速度传感器模块、TFT彩屏、SD卡等组成了一个可穿戴设备系统。该系统实现了万年历、秒表、计步、闹钟、画板、日历、地图等功能。地图获取的图片存放在SD卡中,GUI图片存放在8M的外置FLASH当中。系统支持全触摸操作。关键词:可穿戴设备;STM32单片机;TFT彩屏;文件系统;SD卡;GPS地图Title The Wearable Device System Based on the STM32AbstractThe wearab

3、le devices is the application of the Wearable Technology in the Daily wearable Product Design, such as the glasses, gloves, watches, clothes and shoes. Generally,The wearable smart devices including full-featured, large size, do not rely on smart phones to achieve a complete or partial functions, su

4、ch as smart watches and smart glasses, etc., and only focus on a certain type of application functions, and other devices such as smart phones with the use of various types of conduct such as signs monitoring bracelet intelligent, smart jewelry. As technology advances and the change of user needs, a

5、pplication forms of wearable smart devices are constantly changing. Wearable computer technology has attracted wide attention in the international academia and industry, but due to the high construction cost and technical complexity, a lot of related equipment only is an idea. This system is based o

6、n the STM32F103ZET6 as the core which is produced by the STMicroelectronics Cortex-M3 32-bit high performance microcontroller,This system also use GSM module, GPS module, MPU6050 six-axis acceleration sensor module, TFT color screen, SD card and other components.The system has six functions such as

7、the calendar, stopwatch, pedometer, alarm clock, Sketchpad, Calendar, Maps, and other functions. Map Get pictures stored in the SD card, GUI image stored in the external 8M FLASH.The system supports full-touch operation.Keywords: Wearable device; STM32 microcontroller;TFT color screen;The file syste

8、m; SD card; GPS maps目次1 绪论- 1 -1.1选题背景- 1 -1.2国内外研究现状及意义- 1 -2 设计要求- 3 -3 方案论证- 4 -3.1 控制器方案- 4 -3.2 显示模块方案- 5 -3.3加速度传感器方案- 5 -4 硬件部分- 6 -4.1 单片机- 6 -4.2 TFT彩屏- 9 -4.3 触摸屏控制芯片- 11 -4.4 MPU6050模块- 12 -4.5 SD卡- 14 -4.6 EEPROM 存储器24C02- 15 -4.7 FLASH芯片W25Q64- 16 -4.8 蜂鸣器电路- 17 -4.9 GPS模块- 17 -4.10 GSM

9、模块- 19 -5 软件部分- 21 -5.1 开发工具介绍- 21 -5.2 程序框图- 21 -5.3文件系统的移植- 22 -5.4 GUI程序的设计- 24 -5.5主要功能的实现原理- 25 -6 系统功能测试与分析- 38 -6.1开机主界面测试- 38 -6.2万年历功能测试- 38 -6.3秒表功能测试- 39 -6.4闹钟功能测试- 40 -6.5画板功能测试- 41 -6.6计步功能测试- 41 -6.8测试结果分析- 42 -结论- 45 -致谢- 46 -参考文献- 47 -附录一:系统电路原理图- 48 -附录二:部分源程序- 52 -1 绪论1.1选题背景随着科技的

10、进步,用单片机开发的智能化产品在各个领域得到广泛地应用,它极大地提高了社会生产力水平。加快了工业的发展。可穿戴设备目前已经成为科技发展的热潮,世界各公司在可穿戴设备系统上的投入越来越高,智能可穿戴设备有着众多的优点,包括体积小,功耗低,携带性高、功能强大等等。因此它深受人们的喜爱。另外,由于触摸屏以及各种传感器的引入,使得可穿戴设备迈向高端消费品的行列。可穿戴设备的轻薄和低功耗使其在生活电子产品中脱颖而出。智能的操作系统的应用,让可穿戴设备实现多功能,操作也更加流畅。在众多电子产品中,可触摸的智能可穿戴设备代替传统按键操作的设备,使其功能丰富强大。现代人们的生活越来越离不开智能手机,智能手机给

11、我们提供了丰富的资讯、应用、以及游戏。它给我们带来方便的同时,也使很大一部分人沉迷于智能手机,成为低头一族。因此,开发出一种具备智能手机的基本功能,又不至于使人们沉迷的电子设备就变得非常有意义。1.2国内外研究现状与意义从智能手表,到各个厂家的运动手环,再到最近非常流行的VR眼镜,可以看到,可穿戴设备已经融入到了人们生活的方方面,它越发深刻地改变着人们的生活方式,提升着人们的生活质量。下面将主要介绍美国、日本、韩国可穿戴设备行业的发展情况。1.2.1 国外可穿戴设备发展概况目前世界范围内可穿戴设备产量迅猛增长,美国是全世界最早提出可穿戴设备的思想和雏形的国家,近年来,Google Glass、

12、Apple Watch 等备受瞩目的可穿戴产品也源自美国的大型知名企业。世界顶级会计师事务所之一的普华永道,近期发布了两份关于可穿戴设备现状及未来发展的报告。报告表明,美国人对可穿戴技术的未来十分乐观,但对现有的技术则缺乏热情。韩国可穿戴行业发展的主要代表为三星公司。三星公司作为全球最大的智能手机厂商,也是目前为止可穿戴市场最大的推动者。2013 年9 月,三星公司正式发布了其第一款智能手表Galaxy Gear,随后又对其进行更新,推出了Galaxy Gear 2/Fit/Neo。公司自主研发的可穿戴产品还包括曲面屏智能手表Gear S,它是首款不必连接智能手机就具有上网功能的智能手表,它内

13、置了支持蜂窝数据功能的上网模块。在三星公布的2015 年产业发展规划中,主要集中在可穿戴领域、虚拟现实、智能家居以及在线教育。目前,三星有近万名开发和设计人员都在为即将上市的可穿戴型设备做准备,足以证明三星打算拓宽可穿戴型设备市场的决心。三星公司表明,他们在芯片、存储、屏幕技术等方面的垂直整合能力,将为其带来更多优势。日本的电子技术发展以索尼、东芝、富士通等行业巨头为典型代表, 然而在可穿戴技术发展方面,日本的初创企业比行业巨头表现更为优秀。成立于2013年的日本Logbar 公司是可穿戴技术公司的杰出代表之一,该公司因推出一款名为“Ring”的智能戒指而闻名。将Ring 智能戒指戴在手指上,

14、随意动动手指头便可远程控制智能手机、电视等智能终端设备。同样成立于2013 年的Moff 公司推出了一款利用声音将周围物品全部变成互动玩具的智能腕带。儿童将智能腕带戴在手上后,可以通过蓝牙设备将手环连接到Moff 的IOS 应用程序,实现与智能设备终端的连接,将周围物品变成互动玩具。1.2.2 国内可穿戴设备发展概况国内的可穿戴设备已经具备监测、医疗、娱乐、办公、学习、定位等多种功能。随着人们对于自身健康问题的重视度不断增加,消费者在健康方面的诉求使得医疗健康、运动健身类产品市场份额较大。目前,可穿戴设备在医疗健康领域取得了快速发展,可穿戴移动医疗设备市场规模正在不断扩大。在众多的移动医疗产品

15、中,最受欢迎的是为医院和患者提供医疗服务和监测的可穿戴健康产品。国内可穿戴设备融资创业公司大多成立在2013 年, 产品集中在手表、手环,应用领域集中在健康、医疗、运动、跟踪定位等。其中,有近一半的可穿戴设备创业公司把发展方向为健康领域。1.2.3 研究意义目前,智能手机的功能非常强大,各种应用、游戏让用户应接不暇、不舍得放下手中的手机,低头族由此诞生。而穿戴式设备虽然没有手机那样具有各种聊天工具和游戏软件,但其轻薄便携带的优点是手机不可替代的。避免娱乐类的功能加之以时钟、导航等功能,因此它可帮助人们特别是大学生摆脱对手机的过度依赖。穿戴式设备的便携性也使人们在对一些事务的处理简便快捷,包括G

16、PS定位、时钟、万年历、画板等。2 设计要求利用STM32开发板、GSM模块、MPU6050,设计智能可穿戴设备系统,产品功能如下:(1).万年历(时间可调整)(2).闹钟(时间可设置、具有懒人叫醒功能)(3).计时器(可以进行计时,且可以后台运行)(4).地图(可以进行定位、通过GSM模块的GPRS功能向腾讯地图服务器请求地图信息,模块接收到数据后,进行解析,并将地图显示在LCD屏,也可以通过加 减按键进行地图精度的改变)(5).手势控制(根据手势的变化,在屏幕的画板上显示相应的图像,也可以修改画图的颜色)(6).记步(可以后台自动运行,一直记录人体行走的步数)3 方案论证根据设计要求先确定

17、了本系统的整体设计原理框图,如图3.1,然后分别讨论了本系统在控制器、显示模块、以及加速度传感器模块的选择方案。图3.1 系统原理框图3.1 控制器方案方案一:使用51单片机作为主控制器。51单片机以其低廉的价格,简单的操作,俘获了大量的用户,但是反过来看便宜简单往往意味着功能的低端。在本设计中,51单片机就显得力不从心了,它的IO口数量较少,片上外设资源匮乏,而且处理速度也偏低。方案二:采用STM32F103ZET6作为主控制器。STM32F103ZET6是意法半导体公司推出的一款以Cortex-M3为内核的32位高性能单片机。拥有多达112个IO口,它以8位单片机的价格,满足了用户32位单

18、片机的需求。本系统对主控制器的速度有较高要求,速度对本系统的操作流畅度有较大的影响,STM32F103ZET6最大可以达到72MHZ,这是51单片机远不可及的。此外,由于穿戴式设备系统对体积以及功耗要求比较严格,STM32在这两方面做的都比较出色而51单片机无法满足系统的要求。所以选择方案二,采用STM32F103ZET6作为系统的主控制器。3.2 显示模块方案方案一:采用12864点阵式液晶。12864是128*64点阵液晶模块的点阵数简称,该点阵的屏显成本相对较低,适用于各类仪器,小型设备的显示领域。一页共可以显示32个汉字或者64个字符。方案二:采用搭配ILI9341控制芯片的240x3

19、20彩屏。TFT彩屏在消费电子产品中有着广泛的应用,它支持26万色的显示,显示效果十分细腻,此LCD屏使用INTEL的8080接口,STM32F103ZET6带有FSMC功能,支持Intel 8080和Motorola 6800的模式,LCD屏内部的GRAM直接由FSMC控制,实现快速的刷屏。近些年,随着技术的发展,LCD彩屏的分辨率越做越高,色彩也越来越丰富,显示效果极为细腻。这些优点是点阵式液晶无法超越的。特别是在图片的显示方面,点阵式液晶与LCD彩屏比起来更是相形见绌,无法还原出图片的本来面貌。而且,LCD彩屏还可以支持触屏,方便系统的控制。由于本设计需要用到触摸屏功能以及良好的显示效果

20、,所以综上所述,系统选择方案二,采用TFT彩屏作为显示器件。3.3 加速度传感器方案方案一:使用MPU6050加速度传感器模块。MPU6050是一款整合性6轴运动处理组件,它内部带有三轴的加速度传感器、三轴的陀螺仪、并且能通过自身的第二IIC接口连接外部的磁力传感器。将这九轴的数据利用DMP(Digital Motion Processor)进行数据解算,进而就能输出完整的九轴的姿态融合解算数据。利用了DMP进行数据解算,就降低了单片机的负荷,同时缩短了开发周期,降低了开发难度。方案二:不使用加速度传感器模块。在实现计步功能时可以利用GPS模块记录用户移动距离,根据用户自己设定的步长计算出行走

21、步数。方案一可以精确地检测到用户行走时在三个轴上的加速度变化,配合算法,识别出用户行走的姿态并记录。但是方案二只能粗略地估算步数,并且算出的步数受GPS模块的精度影响十分大,当用户在室内时由于GPS模块不能很好地接收卫星信号造成无法计步。基于以上考虑,本设计采用方案一。4 硬件部分在本系统的设计中使用了许多外围元器件以及模块电路,主要如下:控制器STM32F103ZET6以及最小系统电路、JTAG接口电路、LCD触摸屏模块、MPU6050模块、SD卡、EEPROM存储器24C02、FLASH存储器W25Q64、蜂鸣器、GPS模块、GSM模块。下面将对这些模块分别介绍。4.1 单片机4.1.1

22、STM32F103ZET6概述STM32F103ZET6是ST公司推出的一款基于Cortex-M3内核的微处理器。STM32具有MCU应用领域的32位处理器的性能,STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex-M3内核单片机。STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。主要特性如下:(1).512K片内FLASH(相当于硬盘),64K片内RAM(相当于内存),片内FLASH支持在线编程(IAP)。(2).Cortex-M3处理器内核,最高时钟频率可达72MHZ。(3).12通道直接内存访问控制器(DMA)。(4).

23、8个定时器、2个看门狗定时器和RTC实时时钟。(5).42个16位的后备寄存器(可以理解为电池保存的RAM),利用外置的纽扣电池,和实现掉电数据保存功能。(6).2个CAN总线模块、5个UART通用串行模块、3路SPI接。(7).2个I2C总线模块、2个IIS总线模块,12位、16通道AD转换模块。(8).支持JTAG,SWD调试。配合廉价的J-LINK,实现高速低成本的开发调试方案。(9).多达112个IO(大部分兼容5V逻辑),144Pin LQFP封装,引脚图如图4.1所示。图4.1 STM32F103ZET6引脚图由以上数据可以看出,本系统所选MCU性能十分卓越。无论是传统51单片机或

24、增强型51单片机还是RISC的8位AVR单片机还是16位的MSP430单片机,本处理器在Flash、RAM、工作频率以及外设上具有绝对的优势,性价比较高。4.1.2 STM32F103ZET6外围电路介绍(1) 供电系统电源是电子设备中必不可少的一部分,它为设备提供了能量。STM32F103ZET6电源电压为3.3v,电源芯片采用艾迈斯公司的AMS1117-3.3。AMS1117-3.3是艾迈斯公司推出的具有单输出LDO、固定电源(3.3v)、内部电流限制、过流保护特性的线性稳压器。USB或5V锂电池经过AMS1117-3.3产生3.3V的直流电源供系统使用。C8可以防止电感效应而产生的自激,

25、C12用来减小由于负载电流瞬时变化而引起的高频干扰。如图4.2为供电系统电路图。 图4.2 供电系统电路图(2) 晶振振荡电路STM32F103ZET6有4个时钟源可供使用。分别是内部高速时钟(HSI),内部低速时钟(LSI)、外部高速时钟(HSE),外部低速时钟(LSE)。选择外部高速时钟作为片内时钟来源,主振荡器由OSC0输入管脚输入一个外部单端时钟信号或在OSC0输入管脚和OSC1输出管脚之间连接一个外部晶体。如果主振荡器作为PLL的时钟参考源,那么支持的晶体的频率范围为3.579545MHz-8.192MHz。系统采用8MHz晶振,如图4.3所示:图4.3 STM32F103ZET6外

26、部晶振振荡电路图(3) 复位电路STM32F103ZET6外部复位输入管脚(RST)为低电平有效。按下按键S2能对系统复位。复位电路如图4.4所示:图4.4 STM32F103ZET6复位电路图(4) JTAG接口本系统使用的JTAG接口由5个管脚组成。数据由TDI引脚串行发至控制器,然后通过TDO引脚从控制器串行输出。程序的调试、下载都通过JTAG接口来完成。电路图如图4.5所示:图4.5 STM32F103ZET6JTAG接口电路4.2 TFT彩屏系统采用的彩屏分辨率为240*320,2.寸。支持262K/65K色,数据位为8/16位可选,控制器为ILI9341。电路连接图如图4.6所示:

27、图4.6 TFT彩屏电路连接图TFT彩屏引脚功能如表4.1所示:表4.1 TFT彩屏引脚功能表DB0-DB1516位数据线CS片选信号输入RS指令数据选择信号WR写信号开关RD读信号开关RESET复位T_CS触摸屏片选端T_PEN触摸屏笔中断BL液晶背光选择端MISO串行数据输出端MOSI串行数据输入端GND地本LCD模块的LCD屏内部集成使用8080接口的ILI9341驱动芯片,对LCD屏的控制其实是通过控制ILI9341芯片实现的,ILI9341内部的GRAM的每个存储单元都对应着LCD屏的一个像素点,通过往GRAM中写数据达到对液晶屏的控制。STM32F103ZET6有FSMC功能,它支

28、持8080通讯接口,直接由FSMC控制GRAM,实现LCD屏快速地刷屏。如图4.7 为FSMC写NOR的时序图。图4.7 FSMC写NOR的时序图4.3 触摸屏控制芯片4.3.1 XPT2046简介XPT2046是一种典型的逐次逼近型模数转换器(SAR ADC),包含了采样/保持、模数转换、串口数据输出等功能。供电电压范围为2.7V5.5V。参考电压值直接决定ADC的输入范围,参考电压可以使用内部参考电压,也可以从外部直接输入1VVCC范围内的参考电压(要求外部参考电压源输出阻抗低)。X、Y、Z、VBAT、Temp和AUX模拟信号经过片内的控制寄存器选择后进入ADC,ADC可以配置为单端或差分

29、模式。选择VBAT、Temp和AUX时可以配置为单端模式;作为触摸屏应用时,可以配置为差分模式,这可有效消除由于驱动开关的寄生电阻及外部的干扰带来的测量误差,提高转换准确度。 引脚图如图4.8所示:图4.8 XPT2046管脚图4.3.2 XPT2046引脚功能XPT2046有16个引脚,引脚功能介绍如表4.2所示:表4.2 XPT2046引脚功能表1BUSY 忙时信号线2DIN串行数据输入端3/CS片选信号输入4DCLK外部时钟输入端口5+VCC电源引脚6XPXP位置输入端7YPYP位置输入端8XNXN位置输入端9YNYN位置输入端10GND地引脚11VBAT电池监视输入端12AUXADC辅

30、助输入通道13VREF参考电压输入/输出14IOVDD数字电源输入端15/PENIRQ笔接触中断引脚16DOUT串行数据输出端4.4 MPU6050模块4.4.1 MPU6050简介MPU6050是一款整合性6轴运动处理组件,它内部带有三轴的加速度传感器、三轴的陀螺仪、并且能通过自身的第二IIC接口连接外部的磁力传感器。将这九轴的数据利用DMP(Digital Motion Processor)进行数据解算,进而就能输出完整的姿态融合解算数据。利用了DMP进行数据解算,就降低了单片机的负荷,同时缩短了开发周期,降低了开发难度。MPU6050的陀螺仪和加速度仪分别有3个16位AD转换器将采集的数

31、据数字化输出。该模块体积小,适用于穿戴式设备,与STM32进行I2C通信。模块实物图片与接口原理图如图4.9所示。STM32内部有两路IIC供用户选择,但是硬件IIC做的并不稳定,程序容易死在IIC通信上。因此本系统采用IO口模拟IIC的方式进行数据通信。MPU6050在初始时对其寄存器进行配置,包括陀螺仪采样率、自检及测量范围等参数。图4.9 MPU-6050实物与引脚图电路连接图如图4.10所示:图4.10 MPU6050电路连接图4.5 SD卡SD卡(Secure Digital Memory Card)是一种基于FLASH的新型存储设备,它具有传输速度快、体积小、容量大、移动灵活、安全

32、性能好等特点。SD卡有SD和SPI两种工作模式,其中SPI模式接口比较简单,有利于降低成本,而且能很好的胜任一般的应用场景。但是SD模式相对就比较复杂。因此本系统使用SPI模式。SD卡管脚定义如表4.3:表4.3 SD管脚定义PinSD 4-bit modeSPI mode1CD/DAT3Data line 3CSCard Select2CMDCommand lineDIData input3VSS1GroundVSS1Ground4VDDSupply voltageVDDSupply voltage5CLKClockSCLKClock6VSS2GroundVSS2Ground7DAT0Dat

33、a line 0DOData output8DAT1Data line 1 orInterrupt(optional)IRQInterrupt9DAT2Data line 2 orRead Wait(optional)NCNot Used在SPI模式下,1脚8脚保留(未使用)、2脚片选端、3脚数据输入端、4脚6脚电源与地端、5脚时钟信号端、7脚数据输出端。SD卡的工作电压为2.73.6V。电路图如图4.11所示:图4.11 SD卡电路图系统中SD卡的主要作用是存储接收到的地图图片。SD卡采用SPI总线模式。STM32F103ZET6集成了3个SPI接口,方便系统的控制。4.6 EEPROM 存

34、储器24C02系统掉电时需要保存一些系统配置信息,用于恢复关机前的状态。STM32F103ZET6提供了数据备份寄存器,但是只能保存42个16位数据,这对于本设计而言不能满足需求。系统中需要保存的数据量不是很大,采用24C02即可满足要求。24C02串行E2PROM是基于I2C总线的存储器件,遵循二线制协议,它具有接口方便,体积小,数据掉电不丢失等特点。其引脚图如图4.12所示,各引脚的功能如表4.4所列。图4.12 24C02引脚图表4.4 24C02引脚功能说明管脚名称功能A0A1A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护VCC电源VSS地24C02接口电路设计如图4.1

35、3所示。由于只用一个AT24C02,因而A0、A1和A2可直接接地。WP接地,关闭写保护功能。图4.13 24C02电路设计4.7 FLASH芯片W25Q64FLASH芯片型号我们选择了W25Q64,其容量为64Mb,也就是8M字节,与上述AT24C02一样都是串行传输,占用较少的IO口。该芯片与单片机之间的通信方式为SPI总线,如图4.14所示我们并没有用软件模拟SPI总线时序,而是采用了STM32自带的硬件SPI接口SPI2,这样传输速度会更快。SPI总线一般有四根信号控制线:片选线CS,两根数据线分别为主入从出MISO和主出从入MOSI,还有一根时钟线SCLK。图4.14 W25Q64电

36、路图扩展Flash为了是存储汉字字库以及图片,因为STM32F103ZET6本身只具有512K Flash,如果用来存放字库,肯定不够,外扩的Flash可以存放32*32字体GBK码字库,16*16字体GBK码等字库,而且还存放了系统的桌面图片、背景图片。这样我们就可以在TFT LCD上显示16*16字体等字体的汉字和字符以及图片了。同时我们也可以存储我们喜欢的字体,如华文行楷等。4.8 蜂鸣器电路蜂鸣器按有无震荡源可分为有源蜂鸣器和无源蜂鸣器,有源蜂鸣器内部自带振荡电路,加适当的直流电源就可以发声,频率通常固定,易于操作;而无源蜂鸣器一般需要通过外部的方波信号驱动,频率可以改变,一般为1到4

37、KHz最佳,所以可以演奏出优美的音乐如生日快乐歌等。图4.15 蜂鸣器电路在本系统中,蜂鸣器用作闹铃。此处,为了程序控制简单,我们选择了3.3V的有源蜂鸣器。如图4.15所示,由于单片机IO口输出电流有限,所以我们的蜂鸣器驱动电路通过NPN三极管S8050放大电流,从而驱动蜂鸣器发声,同时在三极管的基极要加限流电阻。当PB8由程序配置输出高电平时,则基极与发射极有了大约3V的压降,三极管Q1导通,三极管Q1集电极被发射极拉低,此时蜂鸣器两端等于接了3.3V电压,所以发声。当PB8配置为低电平时,三极管Q1基极与发射极没有0.7V的导通压降,Q1此时为截止状态,此时集电极不能被发射极拉低,从而蜂

38、鸣器两端没有施加电压,则不会发声。4.9 GPS模块GPS是由美国国防部研制部署和控制的军民两用导航定位卫星系统。现在运行的“GPS”系统是由 24颗工作卫星和 4 颗备用卫星组成,它们分布在 6 个等间距的轨道平面上,每个轨道面上有 4 颗工作卫星,卫星轨道接近圆形,用户在任何时间都至少能看到 46 颗卫星,定位一次仅需几秒钟,可实现全球范围连续的、近实时的定位、测速与授时。本次设计使用型号为ATK-NEO-6M的 GPS模块。模块实物图如图4.16所示,GPS芯片引脚图如图4.17所示,详细电路连接图参见附录一。 4.16 GPS模块实物图 4.17 GPS芯片引脚图 GPS模块的引脚定义

39、如表4.5所示:表4.5 GPS模块引脚定义表序号名称说明1PPS时钟脉冲输出脚2RXD模块串口接收脚3TXD模块串口发送脚4GND地5VCC电源(3.3V5.0V)4.10 GSM模块4.10.1 SIM900A模块的对外接口电路图4.18 SIM900A对外接口框图SIM900A对外接口框图如图4.18所示,对外接口包括:RS232接口,语音接口,控制线接口、SIM卡接口等。4.10.2 SIM900A模块初始化本系统使用的SIM900A模块是由12V 1A电源供电的,在SIM900A初始化时,先给SIM900A模块上电,然后长按开机按钮,此时开机指示灯会变亮,当开机指示灯快闪时松开开机按

40、钮,此时SIM900A模块正在初始化并且注册网络。当模块上的指示灯由快闪变为慢闪时说明模块网络注册成功,模块可以正常使用。如果长时间快闪没有变成慢,应长按启动键会关机模块,检查天线, SIM卡片的固定情况,还有检查SIM卡片是否能正常使用。SIM900A实物如图4.19,在与单片机通信之前,我们可以通过电脑串口与SIM900A模块通信调试,来检测模块是否能正常工作。在本系统中,我们使用单片机的串口2与GSM模块的TTL接口相连。GSM模块详细电路图参见附录一。4.10.3 AT指令集AT指令集是一个指令的集合,它包含了所有的对GSM模块操作的指令,包括接打电话、收发短信、连接GPRS等等。我们

41、操作GSM模块实际上就是通过AT指令集来操作的。AT指令集必须以AT开头,以空格键结束,通常模块的响应会紧随AT指令之后。在本系统中主要使用了与GPRS功能相关的指令,AT+CGMM命令用来查询模块型号。AT+CIPMUX=0表示表示将模块设置为单链接方式。AT+CIPRXGET=0命令用来设置获取数据的方式,0表示模块自动获取数据。AT+CIPQRCLOSE=1命令用来设置加速远程断开连接。AT+CIPMODE=0命令表明设置TCP应用模式为非透明。AT+CIPSTART=TCP,111.161.48.224,80命令表明建立TCP链接,连接到IP地址111.161.48.224。AT+CI

42、PCLOSE=1命令用来断开TCP链接。AT+CIPSHUT命令用来关闭移动场景。图4.19 SIM900A实物5 软件部分本部分介绍了系统在软件部分的设计思想和典型代码。整个软件部分分为系统开发工具介绍、程序整体框图及思想、文件系统的移植、GUI程序的设计、主要功能的实现共五个部分。下面将对每个部分分别介绍。5.1 开发工具介绍Keil MDK v5,该版本使用uVision5 IDE集成开发环境,是目前针对ARM微控制器,尤其是ARM Cortex-M内核微控制器最佳的一款集成开发工具。MDK v5向后兼容Keil MDK-ARM uVision4,以前的项目同样可以在MDK v5上进行开

43、发, MDK v5同时加强了针对Cortex-M微控制器开发的支持,并且对传统的开发模式和界面进行升级,将分成两个部分,MDK Core和Software Packs。其中,Software Packs可以独立于工具链进行新芯片支持和中间库的升级。MDK Core包含微控制器开发所有的所有组件,包括IDE(uVision5)、编辑器、ARM C/C+编辑器、uVision调试跟踪器和Pack Installer。MDK v5支持完整的微控制器系列,包括MDK v4上的所有芯片系列,如ARM7、ARM9、Cortex-M0、M1、M3、M4等 ARM内核芯片。5.2 程序框图因为可穿戴设备程序的

44、运行流程与用户的实际操作密切相关,因此本设计采用状态机编程的思想,将程序在一个个状态之间切换。软件流程图如图5.1所示:图5.1 程序流程图5.3文件系统的移植FATFS 是一个完全免费开源的 FAT 文件系统模块,专门为小型的嵌入式系统而设计。它完全用标准C 语言编写,所以具有良好的硬件平台独立性,可以移植到 8051、PIC、AVR、SH、Z80、H8、ARM 等系列单片机上而只需做简单的修改。它支持 FATl2、FATl6 和 FAT32,支持多个存储媒介;有独立的缓冲区,可以对多个文件进行读写,并特别对8 位单片机和16 位单片机做了优化。FATFS 的特点有:1、Windows兼容的

45、 FAT 文件系统(支持FAT12/FAT16/FAT32)2、与平台无关,移植简单3、代码量少、效率高4、多种配置选项支持多卷(物理驱动器或分区,最多 10个卷)5、多个ANSI/OEM代码页包括DBCS6、支持长文件名、ANSI/OEM或Unicode7、支持RTOS8、支持多种扇区大小9、只读、最小化的 API和I/O 缓冲区等。FATFS 的这些特点,加上免费、开源的原则,使得 FATFS 应用非常广泛。FATFS 模块的层结构如图5.2所示:图5.2 FATFS模块的层结构图最顶层是应用层,使用者无需理会 FATFS 的内部结构和复杂的 FAT协议,只需要调用FATFS 模块提供给用

46、户的一系列应用接口函数,如 f_open,f_read,f_write 和f_close等,就可以像在PC上读写文件那样简单。中间层FATFS模块,实现了FAT文件读写协议。FATFS模块提供的是ff.c和ff.h。除非有必要,使用者一般不用修改,使用时将头文件直接包含进去即可。需要我们编写移植代码的是 FATFS 模块提供的底层接口,它包括存储媒介读写接口(disk I/O)和供给文件创建修改时间的实时时钟。FATFS 的源码,是从http:/elm-chan.org/fsw/ff/00index_e.html 这个网站下载到,目前最新版本为R0.09a。我选用的是该版本,下载解压后可以得到两个文件夹:doc 和 src。doc 里面主要是对 FATFS 的介绍,而 src 里面才是我们需要的源码。其中,与平台无关的是: ffconf.h FATFS 模块配置文件 ff.h FATFS 和应用模块公用的包含文件 ff.c FATFS 模块 diskio.h FATFS 和dis

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号