版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机血糖检测仪的硬件和软件系统设计案例目录TOC\o"1-3"\h\u13655单片机血糖检测仪的硬件和软件系统设计案例 1294841硬件设计 1233501.1主机部分 1275611.1.1单片机选型 164071.1.2显示屏选型 429381.2从机部分 5164871.2.1CC2540 5186891.2.2DS18B20 752511.3CH340 9122221.4时钟电路 970991.5复位电路 11148284软件设计 12100632.1开发平台介绍 13317332.2HC-08蓝牙传输模块 1424352.2.1蓝牙驱动代码 14226642.2.2主函数实现 15301752.2.3上位机软件编写 15272192.3DS18B20温度采集模块 1693362.1.1DS18B20驱动 16309042.1.2主函数实现 18226212.4OLED显示模块 181硬件设计1.1主机部分1.1.1单片机选型STM32F103系列的性价比相对较高,究其原因在于:使用型号为ARM32位Cortex-M3CPU,是第一款基于ARMv7结构的32位处理器,选用了基于哈佛结构的三级内核,具备单独的指令总线和数据总线。其工作频率可达72MHz,在存储器零存取周期访问时最高到1.25DMips。配备32位除法指令,弥补缺陷,改进了乘法运算,只用一个时钟周期即可完成32位乘32位乘法操作。存储器上集成了256KB到512KB的Flash存储器和6-64KB的静态随机存取存储器。在系统时钟、复位和电源上,电压正常情况下工作范围在2.0V到1.6V间,所以外设供电选择1.3V。还具有4到16MHz的晶振。内部嵌入了8MHz和40KHz的RC振荡电路,还具有32KHz的有校准功能的RTC振荡器。内部还嵌入了POR\PDR和可编程电压探测器、用于CPU的锁相环等。在功耗模式上具有三种低功耗模式。当内核不用再运行时就可以根据消耗、重启时间等选择不同的低功耗模式。通过暂停内核与时钟进入睡眠模式,保存之前的数据,Cortex-M3外设仍正常运行;通过关闭全部时钟与外设,仅开启1.2V的电源,保存内核寄存器数据进入停止模式;通过关闭所有时钟及电源,进入待机模式。在其他条件一定的情况下,待机模式电流最低。拥有112个IO端口:全部端口和16个外部设置中断向量均能相对应。绝大多数端口均可接受5V耐压。通讯接口最多高至13个,具有两个I2C接口,五个USART接口,3个SPI接口,CAN接口,2.0标准的USB全速接口和SDIO接口,其中两个SPI接口可以同时作为I2C接口使用。具有11个定时器:四个16位定时器,每个定时器有4个IC/OC/PWM或脉冲计数的通道,两个看门狗定时器,24位自减型计数器、两个用于驱动数字模拟转换器的16位基本定时器和两个16位的6通道高级控制定时器。具有三个12位测量范围为0至1.6V的AD转换器,转换时间为1μs并且具有三倍采样与保持功能,在其片上还集成了一个温度传感器。调试方式可分为串行单线调试与JTAG接口调试其功能框图如图3-1-1所示:图1.1-1STM32F103ZET6功能框图51单片机的优势在于片内RAM段设有双功能地址段,也允许乘除指令,使操作编程更加便捷。工作电压与工作电流相对较小,便于设计可携带物品。在一定价位内,51单片机具有相对较高的性能与运行速率。51单片机功能有:(1)64kb地址空间。(2)2K-64K只读存储器和128B-1K随机存储器。(3)具有21个专用存储器和2个可编程计数器。考虑到STM32F1相较于51单片机资源更丰富,外围接口功能更强大,时钟频率也更高,运行速度快,所以本次实验选择了STM32单片机进行实验。该系列利用高端外设、高性能、低成本、普通的架构和工具完成了高集成度。图1.1-2STM32F1实物图1.1.2显示屏选型目前市面上主流显示屏还是LCD,但是OLED逐渐呈替代趋势。传统的LCD屏由两块1毫米厚的玻璃板夹隔着5微米的液晶材料,因为液晶材料不自带光源,所以在显示屏两侧都设置了灯管而显示屏背后也有一块提供背景光源的匀光板和反光膜。LCD利用分层结构将背景光源的光线转化为三原色。而OLED由阴极、阳极、地基及有机分子或聚合物构成的发射层和导电层所构成,当电压供应足够时,正极空穴和阴极电荷就会产生电子-空穴复合,其中每个OLED的显示单元都可控的发出三种不同颜色的光,发射层中不同有机分子可以发出不同颜色的光,其光亮大小与所流经电流大小呈正相关。OLED具有优点如下:1.可弯曲,具有很强的柔性,曲面屏和可穿戴器件的流行已经表明了具有柔性的OLED是显示技术发展的趋势;2.有黑色画面时会关闭黑色画面的像素,且在亮度高时,比LED发光效率更高,续航能力更强;1.无需偏光板等元器件,原材料成本价格低,规模效应高于LED,所以制作成本更低。所以本研究选择了OLED显示屏。图1.2-1OLED实物图1.2从机部分1.2.1CC2540在芯片的选择方面,需要考虑到传输数据速度、芯片体积、工作功耗、抗干扰能力和传输距离等情况。在数据传输功耗一定时,数据传输效率相对来说需要相对较高。需要考虑植入生物体内,所以需要芯片能够在生物体内所受数据传输干扰小,在实验室的传输距离下有足够的传输速率,而抗干扰能力体现在数据传输时,整个运行过程的稳定性以及采集数据的正确性。按正常每分钟采样一个12位的数据,并每15分钟传输一次样本数据,紫蜂技术、蓝牙2.0及蓝牙2.0均能满足102.4bps的最低速率。但是紫蜂在该速率时所消耗的电能较高,蓝牙2.0在效率上与蓝牙2.0相比,电源效率相对较低。所以在综合上述情况后,我选择了蓝牙2.0-BLE作为本次研究的无线传输方法。蓝牙2.0是现在蓝牙协议的最新版本,它是一种低功耗蓝牙,与蓝牙1.0相比,其成本更低,3毫秒低延时,超长的有效连接距离,支持AES-128加密技术。但单模蓝牙2.0不提供向下兼容。在综合考虑后,美国TI公司的CC2540比较符合本实验的研究要求。CC2540是一种集成了微控制器、主机和应用于一体的单晶片系统,通过低成本建立主控或从属式节点,在工作模式下的状态切换时间也比较短。图1.3-1蓝牙模块实物图它具有的优势归纳如下:(1).6毫米×6毫米封装面积。(2).支持蓝牙2.0以及250Kbps、500Kbps、1Mbps及2Mbps数据传输模式。(3).具有高性能、低功耗的8051微控制器内核,低发射、接收电流和低睡眠电流并且兼容了2.4GHz低功耗的RF收发器。(4).集成了128/256KB的Flash存储器和8KB的SRAM,可进行在各种供电情况下的数据存储。(5).具备AES-128协处理器。(6).带有独立的48位IEEE地址,便于辨识每个设备。(7).组网需求少,外接器件需求少。(8).具备快闪记忆体及具有弹性的元件。下图是CC2540的功能模块框图,它分为CPU模块,电源,时钟模块和射频模块。CC2540的外设包含了定时器、串口通讯、中断控制器等。其中可以通过debug接口对flash进行烧录、控制使用哪路晶振,开始停止运行用户指令。I/0控制器支持3组通用I/O引脚,每组具备8个引脚,引脚可以配置为通用输入/输出,上拉/下拉,中断,DMA控制器。睡眠定时器是一个可记录32KHz晶振周期具有极低功耗的计数器,可以在32KHz晶振下除PM3以外的电源模式下工作。ADC可以在4kHz带宽的情况下进行12bit量化,在30KHz带宽下进行7bit量化。随机数生成器可以通过16bit线性反馈移位寄存器来生成伪随机数,然后被CPU读取。图1.3-2CC2540功能框图近年来电子垃圾成为了对环境污染的一大难题,如何降低功耗成为整个系统设计中的重要部分。降低功耗,其意义主要在于减少集成电路的能耗,节约能源,与此同时,也可以大幅度的提高集成电路的速度。所以选用低功耗蓝牙模块对于环境保护不可或缺。1.2.2DS18B20在本次实验中,由于现实因素,葡萄糖传感器大都集成为一体了,市面上没有单独的葡萄糖传感器可购买,所以只有采用温度传感器来替代。本实验采用了DS18B20数字温度传感器。DS18B20是DAALLAS公司所研发的单总线数字温度计芯片,它接线简洁,有多种封装方式,可以根据情况选择不同的封装方式和外观。和以往的测量方式相异的是,它的温度转化结果能够从数据线得到。通过数据总线也能得到温度变换功率,而总线也能为接入的DS18B20供电,不用外部其他电源。DS18B20的主要特点有:(1)通过使用单总线接口,使用一条口线连接到CPU就能实现CPU和DS18B20双向通讯。并且单总线结构组建传感器网络简单,系统抗干扰能力更强,使用更加便捷。(2)温度测量范围广,测量精度较高。其测量范围在-55℃—+125℃,在-10℃到85℃范围内,元件精度可达±0.0625℃。(3)不用其他外围元件,所有传感元件和电路都集成在了集成电路里。(4)可提供多点组网功能,多个温度传感器可并联在三线上,完成多处测温。(5)电源两极反接时,芯片暂停工作,但不会发烫而烧坏。(6)内部集成带电可擦可编程只读存储器,其温度值和分辨率不会随着掉电而消失。(7)具有多种封装方式,可以适用于各种硬件系统。图1.4-1DS18B20实物图DS18B20内部由四部分构成:64位ROM、温度传感器存储器RAM与EEPRAM和配置寄存器。其中每个ROM的序列号都不一样,使他们分别开来,这样可以进行几个DS18B20同时连接到一条总线上的活动。DS18B20的温度传感器对温度测量后将数据转化为16位二进制形式。DS18B20的配置寄存器是通过改变配置位数来改变温度和数字的转化。图1.4-2DS18B20内部结构图DS18B20所得温度值的位数因分辨率而异,温度转换的延时也由2s变为750ms。如下图所示,低温度系数晶振的振荡频率随温度变化所受干扰较小,将所生成的频率脉冲信号传输给计数器。高温度系数晶振的振荡频率在温度的改变下发生显著变化,然后将生成的信号传输给计数器。测温前将零下五十五摄氏度所匹配的值设置在计数器1与温度寄存器里,低温度系数晶振所生成的信号传输到计数器1进行计数,当计数器1的先设数为0时,温度寄存器的先设数加1。然后计数器1数值重置,重复此行为,当计数器2先设数变为0时,此时温度寄存器当前数值就为测量温度。图中斜率累加器输出可以更正计数器1的先设数。图1.4-3DS18B20测温原理图1.3CH340使用CH340与串口都可以实现主机与单片机的通信,但采用CH340可以更加便捷。CH340是一个用于USB转接异步串口和打印口的转接芯片。在本次实验中,CH340所采用的的波特率为115200bps。CH340可以工作在5V电压或1.3V电压环境下。当在5V电压下工作时,CH340的VCC外接5V电压源,同时V3引脚接入0.1μF退耦电容,用于消除电路耦合。当在1.3V电压下工作时,其V3引脚和VCC一起接入1.3V电压源,同时其他电路的电压不能大于1.3V。CH340的主要特性有:在Windows系统下,可以对标准串口进行仿真,对于多数串口应用程序兼容。内部设置了单独的数据收发缓冲区,支持同时发送和接收数据。可接收波特率在50bps~2Mbps。通过电平转换电路可以增加RS232等接口。图1.5-11.4时钟电路时钟电路在电路设计中是不可或缺的部类,单片机实现的所有命令都要在时钟电路的操控下运行。如图1.6-1所示,此图为STM32F103型号单片机的数据手册所推荐的外部电路设计图,通过数据手册可得,STM32F103型号单片机具有内部和外部两种时钟源,内部时钟源在对STM32单片机的时钟精度没有很严格的要求时且需要缩小板子体积时,可以采用内部时钟源,这样可以很大程度上节省板子面积,降低成本。STM32还具有一个可输入的外部高精度时钟源引脚,我们可以通过配置此引脚得到一个高精度高频率低噪声稳定的时钟源。通过数据手册可得外部时钟源输入引脚输入时钟频率应该在4MHz到16MHz之间。市面上常见的时钟晶振有…HZ的晶振,由于8MHz晶振最常用且性价比相对较高,因此本设计选择8MHz晶振,如下图所示晶振还需要并联两个负载电容才能起振,通过查询8MHz晶振数据手册可以知道此负载电容应为20pf,为了使晶振更稳定工作,减少外界干扰,需要在晶振上并联一个1MΩ的电阻。由于晶振是高频信号源,所以在画PCB时必须保证晶振、电容、并联电阻的走线短而直,如果条件允许时,可在时钟电路周围进行包地处理,吸收干扰电磁波信号。图1.4-1时钟电路结构综上所述,如图1.4-2所示,此图为本设计的STM32型号单片机的时钟电路,电路图C13、C14为20pf负载电容,辅助晶振Y2起振,电阻R6增大负载电阻,起到了减少寄生电容,稳定晶振工作的作用。图1.4-2时钟电路原理图1.5复位电路复位电路的功能就是让系统返回到初始状态,MCU一共存在三种复位方式:上电复位,系统复位,备份区域复位。复位电路的原理图具体如下:图1.5-1复位电路原理图VCC通过上拉电阻与地相连接,其中C2电容可以通过电容滤波帮助消除按键抖动,防止在按下或者松开按键时引起主控芯片执行复位指令。低电平复位是当单片机通电时,因为电容电压无法突然发生改变,所以在短时间内RESET的电压会处于低电平,然后单片机开始复位,此时RESET电压会因为C2充电而开始升高,单片机实现正常工作状态,最终RESET与VCC电压相同。在按键按下时,RESET直接与地连接实现低电平复位。4软件设计本章将描述本系统的软件设计部分,该系统主要分为三个功能模块:温度采集模块、OLED显示模块以及HC-08数据传输模块。温度模块主要采集温度并保存在缓存中,以便OLED显示模块和数据传输模块调用数据;OLED显示模块通过驱动SSD1306在128*64个像素块中点亮相应的像素点,从而显示相关内容。HC-08蓝牙模块的主芯片采用cc2540蓝牙芯片,引脚与单片机的串口相连,编写串口收发函数即可实现手机和蓝牙的数据传输。系统整体结构如图4-1所示:图4-1整体结构图如图4-2所示为主机流程图:图4-2主机流程图主机上电后,对系统进行初始化,循环检测,等待接收APP发送采集指令,当APP发送指令后,主机将指令传输到从机进行温度采集,然后主机接收从机所传输的数据并在OLED上显示采集温度,随后将所接收数据发送到APP上进行显示。如图4-3所示,为从机流程图:图4-3从机流程图CC2540上电后,首先系统开始初始化,然后等待上位机发送传输指令,主机发送指令后,DS18B20开始采集温度,蓝牙将所采集温度传输回主机。2.1开发平台介绍近几年来意法半导体公司大力推荐STM32CubeMX作为STM32的芯片图形化配置工具,其目的就是为了方便用户,通过图形界面简单配置下,生成初始化代码,并对外设做了进一步的抽象,让开发人员更只专注应用的开发,从而大大减轻开发工作,时间和费用,提高开发效率。目前STM32CubeMX几乎覆盖了STM32全系列芯片,因此通过CubeMX配置的初始C代码和HAL库一起,可以更方便的用于移植程序。CubeMX以图形化的方式配置引脚及外设,打开CubeMX后,首先选择器件,本系统采用的STM32F103ZET6。进入设计界面后,在Pinout&Configuration选项卡下,首先配置SystemCore,单片机采用外部时钟,需要在RCC中配置HSE为外部信号源;系统调试采用SWD方式,在SYS中配置Debug为SerialWire。系统基本信息配置完成后,就可以配置外设和引脚了。本系统需要用到串口和定时器,就在Timers和Connectivity中使能相应的外设,同样的,在GPIO中配置相应的引脚信息并在NVIC中统一配置它们的中断优先级。单片机的时钟也是系统配置当中重要的一环,在ClockConfiguration选项卡中可以对单片机的主频时钟和各个总线下的独立的时钟做相应的配置。Keil是德国知名软件公司Keil(现已并入ARM公司)开发的微控制器软件开发平台,是目前ARM内核单片机开发的主流工具。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境将这些功能组合在一起。μVision界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。相较于其他IDE,Keil的优势明显:(1)功能齐全的源代码编辑器,(2)用于配置开发工具的设备库,(3)用于创建工程和维护工程的项目管理器,(4)所有的工具配置都采用对话框进行,(5)集成了源码级的仿真调试器,包括高速CPU和外设模拟器,(6)用于往FlashROM下载应用程序的Flash编程工具,(7)完备的开发工具帮助文档,设备数据表和用户使用向导。2.2HC-08蓝牙传输模块本系统使用的蓝牙模块分为主机与从机两部分,作为主机的蓝牙模块与STM32连接,作用是给从机发送采集数据指令、接收从机传输的数据、接收APP传输的指令、发送采集并处理好的数据发送回APP。作为从机的蓝牙模块内部集成了51单片机的内核,可以通过编程此内核用来控制DS18B20采集数据,并将数据传回给主机。本部分只描述蓝牙的驱动代码及处理代码。DS18B20的数据采集代码见DS18B20温度采集模块部分。2.2.1蓝牙驱动代码 要让HC-08能够传输数据,首先需要配置蓝牙的工作模式。使用串口调试助手SSCOM和USB转串口工具配置AT指令,分别修改蓝牙的工作模式为主从机,需要手机主动去连接;修改蓝牙的串口波特率为115200,1位停止位,无校验位,以适配单片机的串口速率。最后对蓝牙进行复位,就可以连接单片机与手机进行数据传输了。 HC-08和单片机之间通过串口进行数据传输,只需要配置串口相关的驱动就可以通信了。配置单片机的串口1作为通信串口,波特率为115200,8位字长,1位停止位,无校验位,配置串口模式为收发模式,不开启串口中断。具体代码如下:图2.2-12.2.2主函数实现 主程序通过中断来发送数据,开启定时器更新中断,每100ms将串口发送标志位置1。在主函数中循环检测,若发现串口发送标志位为1,清除标志位以便下一次再次进入,并将采集到的温度通过数据包的形式发送。具体代码如下:图2.2-2 数据包由包头、数据位、校验位和包尾组成,包头为固定值0xA5;数据位是1个浮点数,由4个字节组成;校验位由数据位的各个字节之和的低八位组成;包尾为固定值0x5A。数据的打包过程如下:(1)开始将数据打包,需传入定义好的数组(需保证数组长度足以存放要发送的数据)。(2)向数据包中放入各类数据。(3)结束打包,函数将返回数据包的总长度。(4)发送数据。2.2.3上位机软件编写 上位机采用蓝牙调试器编写,首先配置接收数据包结构,在浮点数中添加变量用来接收单片机发送的温度数据,配置数据接收合并间隔为100ms,和单片机每100ms发送一次数据相吻合。然后编辑控件,在屏幕上添加一个Y-T一维波形图,横坐标是时间,每一格代表1s;纵坐标是温度,每一格代表1℃。具体界面如下图2.2-3所示:图2.2-3上位机界面截图2.3DS18B20温度采集模块2.1.1DS18B20驱动 DS18B20采用单总线驱动,要从DS18B20中获取温度,我们需要对它编写相应的时序代码。要让DS18B20正常工作,首先要对其进行初始化,在初始化序列期间,总线控制器拉低总线并保持480us以发出一个复位脉冲,然后释放总线,进入接收状态(等待DS18B20应答)。总线释放后,单总线由上拉电阻拉到高电平。当DS18B20探测到I/O引脚上的上升沿后,等待15-60us,然后其以拉低总线60-240us的方式发出存在脉冲。至此,初始化时序完毕。初始化函数如下:图2.3-1 单片机需要向DS18B20中写入相应的时序,才能让它开始采集温度,因此我们需要编写相应的写时序代码。首先要将数据线从高电平拉至低电平,从而产生写起始信号。然后需要在15us之内将所需写的位送到数据线上,并在此之后,在15~60us之间对数据线进行采样,如果是高电平就写1,低写0发生,连续采集8次可以得到一个字节,但要注意的是在开始另一个写周期前必须有1us以上的高电平恢复期。写时序函数如下:图2.3-2 同样的,单片机需要向DS18B20写入读时序才能从传感器中读取温度,因此我们需要编写相应的读时序代码。首先要将主机数据线先从高拉至低电平1us以上,再使数据线升为高电平,从而产生读信号。每个读周期最短的持续时间为60us,各个读周期之间必须有1us以上的高电平恢复期,连续读取8次就可以得到一个字节的信息,最后返回得到的一个字节的数据。写时序函数如下:图2.3-3 编写完读写时序后就可以操作读写时序函数获取温度了。先对DS18B20初始化,跳过读序列号操作后启动温度转换。之后便可以读取温度寄存器,得到两个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人工智能证券监管
- 高中体育与健康(高二年级)核心力量系统性训练知识清单
- 高中二年级语文:人民至上 生命至上-“抗疫医护精神”深度解读与叙事探究教案
- 高中美术鉴赏知识清单:中国民间美术的文化密码与审美特征
- 初中生物学七年级上册:基于深度互动与情境探究的课堂活力激升教案
- 文秘工作总结
- 脑水肿相关测试题目及答案解析
- 2026年无线网络运维试题(附答案)
- 2026-2027学年统编版九年级语文上册第五单元综合检测卷(含答案)
- 2025-2026学年安徽省亳州市涡阳县义门学区中心学校等校八年级(下)期末物理试卷(含答案)
- 2026秋新北师大版三年级上册小学数学教学计划含进度表
- 格力集团基层员工形薪酬满意度对离职意愿的影响研究
- DB35∕T 1894-2020 数字福建电子政务项目审查规范
- 电梯安全管理员责任制度
- 2026年甘肃省武威市高职单招职业技能考试题库与答案详解
- (正式版)DB51∕T 1235-2011 《香樟用材林栽培技术规程》
- 中国抗病毒洗衣液临床效果验证与医疗渠道拓展战略报告
- 区域供冷供热行业分析报告
- 《废弃物绿色再利用碳减排量核算技术规范》征求意见稿
- 研发费用归集管理办法
- 医学检验质量安全管理培训
评论
0/150
提交评论