【《基于单片机的血糖检测仪设计》14000字】_第1页
【《基于单片机的血糖检测仪设计》14000字】_第2页
【《基于单片机的血糖检测仪设计》14000字】_第3页
【《基于单片机的血糖检测仪设计》14000字】_第4页
【《基于单片机的血糖检测仪设计》14000字】_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-38-1引言1.1研究背景随着社会发展与和生活质量的增长,百姓的生活越来越丰富。肥胖症和三高等疑难疾病的发病率也随之增加和趋于低龄化。如果这类疾病没有及时送医治疗,很容易引起严重的并发症,以至于危害到患者生命。在现如今的医疗水平下糖尿病不能从根本上治疗[1],所以严控血糖,降低糖尿病并发症的几率是如今糖尿病人的首要任务[2]。但是我们无法直接的感受到血糖浓度,所以必须依靠血糖浓度检测仪才能精准控制血糖浓度。在这种情况下,血糖监测技术处于不断地进步中,上世纪五十年代的试纸方便了患者的自我检测,而后发展出了如今常见的便携式血糖检测仪。通常情况下,血糖检测技术采用的是体外的间断检测,此种方法对于血糖检测的时效性不高,信息量少,无法完成动态检测,也就无法得到及时的治疗与处理。所以从上世纪八十年代开始,连续血糖监测技术开始兴起[3]。按传感器所处位置可以分为佩戴型与植入型。植入型是将血糖传感器、供电、控制和发送电路通过手术整个植入到体内,将所测血糖数据传输到外部接收模块,具有连续检测、创伤小、创伤次数少等优点。在此种情形下,本文将血糖检测与蓝牙模块相结合,将所采集的血糖数据进行传输,发送到移动设备端,以便对于血糖浓度实时监测与控制。1.2国内外研究情况1923年,弗雷德里克和麦克劳德因在胰岛素提取中有了重大突破,替代了当时的糖尿病饥饿疗法,解决了当时糖尿病患者们为了控制血糖浓度所挨饿的痛苦情况。自此科学家们对于血糖监测开启了各种研究。1965年,AMES公司发明了一种检测血糖的试纸,只要将患者的血滴到试纸上,间隔一段时间再洗掉后,就能对比比色卡检测出血糖。虽然这种方式会出现所测试的颜色处在两种对比色之间而导致读数不精确,但却是血糖监测的一个里程碑。1968年,汤姆克莱斯曼发明了血糖检测仪并申请专利,至此拉开了血糖监测的帷幕。在1987年就有植入家兔的有线血糖连续检测实验[4]。在柱状体表面固化酶和合金工作电极,组合为植入式的血糖传感器,通过手术将其植入家兔的腹膜腔内,用导线提供电源,传输信号。在经过27天和24天后,其测量结果表明了在150mg/dL以上测量不精确,且氧含量对于结果也有不小的影响。上世纪九十年代初的加州大学圣迭戈分校其中某一小组实现了一种可植入血管的血糖检测器[5]。利用葡萄糖氧化酶反应原理中需要消耗氧,再通过计算两个电极间的电流得到血糖浓度的原理,解决了之前存在的传感器附近的氧含量对于计算结果造成的误差的问题。该传感器植入在六只狗的上腔静脉右心房入口处,进行了六个多月的实验,其测量结果说明该血糖监测器在其0-11mmol/L的测量范围内具有线性相关。但由于植入到血管内的手术风险大,所以不便于推广临床实验。2010年,这个研究小组采用同样的原理研究出了一种植入于皮下的血糖传感器[6],通过无线传输的方法持续监测血糖222天和520天。基于微分电化学氧检测原理,该装置采取了酶电极来检测血糖浓度,以降低体表因素和酶失活带来的误差。通过其测量结果表明了装置的可靠性,但与成品相比还没有特别完善[7]。通过31年在动物体内的测试,该小组的装置被证实能连续工作一年以上,且效果理想。2018年6月Senseonics公司的植入性血糖监测系统获得了美国食品药品监督管理局的批准,EversenseCGM系统选取的传感器能够通过手术植入到皮下组织。植入后,传感器会定期测量糖尿病患者的血糖浓度90天[8]。植入式传感器通过荧光原理来检测血糖浓度,通过无线传输到移动设备,在血糖浓度变化过大时提醒患者。该系统提供每五分钟的实时血糖检测,然后按照血糖浓度值,输入适量胰岛素。1.3本论文主要研究内容与结构本论文主要研究基于CC2540的植入式血糖检测系统,与边钰涵同学所研究的磁耦合谐振无线供电相结合,拟植入于生物的皮肤下,使葡萄糖传感器采集其中血糖浓度,再经过三电极电路把血糖浓度信号转化成电信号,经过12位AD转换后,在CC2540中把数字信号转化为相对应的血糖浓度,通过蓝牙把数据传输到外部接收端,通过OLED与移动设备端对血糖浓度进行实时显示分析。 本论文的结构框架如下:阐述了该设计的研究背景与意义,讨论了国内外相关的研究情况以及现状。对植入式葡萄糖的含义及优点进行介绍,论述了葡萄糖传感器的原理及其类别,以及所用的无线供电技术原理。对该设计的各个硬件进行介绍选择。对该研究的各个模块进行设计。对实验的结果分析。总结本文研究成果及经验教训。2概述2.1植入式血糖检测简介植入式血糖检测技术是指将葡萄糖传感器植入到生物体的皮下部分或者血管内,通过传感器即可持续获得血糖浓度的技术。这种技术相较于常见的血糖测试,优点在于能够连续采集病患血糖浓度信息,再根据已有数据预判血糖浓度变化走向。植入式血糖检测系统分为半植入式与全植入式,半植入式的方法在使用时可能存在连接线与皮肤植入处出现炎症[9],在进行其他活动例如运动洗澡时,也会产生不便。而全植入式是在半植入式技术上不断完善来的。全植入式血糖监测系统一般是将血糖传感器、检测电路、信号传输系统和供电系统植入到生物体内,通过传感器连续测量皮下组织液获得血糖浓度值。这种方法优点在于通过一次外科手术就可以1.连续监测血糖浓度,不会有测量时间的缺失,检测人员容易对血糖变化进行分析总结。2.避免了每次测量的重复性伤害行为,减少了应激反应产生的可能性,使得测量结果更加精确。2.2葡萄糖传感器的原理及分类葡萄糖传感器是植入式连续血糖监测的核心模块,其所基于的化学原理是将所测葡萄糖浓度信号转化为相应的电信号或光信号[10]。从传感器原理的方向划分,葡萄糖传感器分为电化学酶法测量和无酶的荧光检测方法。(1).催氧化葡萄糖的酶有很多种,但是其他酶要么选择性不好,要么反应催化后需要助剂帮助才能恢复活性,所以在植入体内的情况下,我们只有选择葡萄糖氧化酶。该工作机制是葡萄糖氧化酶催化葡萄糖后,通过加入过氧化氢酶将其分解成氧气和水,再用氧传感器检测反应区域和正常区域的氧浓度,通过浓度差就可以得到葡萄糖浓度[11],这种方法对于酶活性与氧浓度依赖较低,但因其酶层结构复杂,并未投入临床使用。电极结构上,常见使用恒电位法的三电极体系,通过增加电极的测量数量,避免了某一电极对附近组织中氧的过度消耗,同时该方法还能够减少误差拓展线性范围。经过文献论证,该理论结果被初步证实,且在线性范围上提升效果显著。总的来说电化学酶法测量方法优点在于专一性好,精准度高,且技术相对于其他来说更为成熟。目前该方法在动物实验中表现良好,但也存在生物相容性问题,影响传感器的灵敏度和寿命。(2).无酶的荧光检测方法是由上世纪八十年代密歇根大学的Schultz提出[12],其原理是伴刀豆球蛋白(ConcanvalinA,ConA)与葡萄糖结合后,带有荧光标记的葡聚糖就无法与伴刀豆球蛋白相结合形成带荧光活性的结合体,结合物的荧光活性就降低了,再根据荧光强度的改变就可以得到葡萄糖浓度变化[13],具有高灵敏,少用量,可循环利用,便捷有效等优点。2011年东京大学就在光纤里植入荧光蛋白[14],使其发出和葡萄糖浓度有关的荧光。将纤维植入小鼠体内后进行测试,140天后使用植入的PEG键合PAM水凝胶纤维连续检测血糖,纤维的荧光强度仍与血糖浓度相同。这一技术说明了荧光检测的应用前景,但其外部激发和测量的抗干扰能力仍待提高。2.3无线供电技术1890年特斯拉发表了无线电能传输的理念,在随后三年的世博会上,特斯拉向世界呈现出他所研究的无线磷光照明灯,他完全不连接一根导线,依据无线电能传输原理为灯泡成功供电。无线供电技术是利用其他介质替换电导体将电能源从供电处传输到接收端的新型技术,由于其采用的非接触式传输方式,相较于传统接触式传输有着建设和维护的经济成本、摆脱繁琐的充电线等优点。现在按照无线电能传输原理,无线传输有电磁感应式,辐射式和磁耦合谐振式。在本文主要介绍磁耦合无线供电技术。磁耦合谐振式无线能量传输技术是使用一对具备一样谐振频率的线圈,和一个谐振电容相并联形成谐振体,通过振荡形成磁场,该电容形成的电场与两个线圈形成的磁场连续进行能量交换,这时发射线圈与接收线圈在一定范围内发生强磁耦合,以形成耦合谐振系统以此实现能量的传输。磁耦合谐振比磁耦合充电传输距离更远,也难以受到非磁性物的干扰,所以障碍物对于整个系统的影响很小,所以便于实现一定距离下的高效率传输。磁耦合谐振式无线能量传输技术传输距离在几分米到几米间不等,传输功率相较于感应式稍低,电能传输效率在40%~90%,在大部分方向上相比都有更为显著的特点。2007年.来自MIT的马林·索尔贾希克教授团队通过两个铜线圈在10MHz下产生共振让一盏60W灯泡在2.16m处成功发光,且传输效率为40%。马林·索尔贾希克教授首次引出了磁耦合谐振式无线能量传输技术的概念,引领了电能传输效率技术研究的新领域,并掀起了世界科学家们对电能传输效率研究的热潮。2010年,我国海尔公司在国际消费电子展上展示了全球第一台不用任何信号线的“无尾电视”。在电视背面装配了一英尺的线圈,在1米左右可提供100瓦电。这款产品所采用的的无线技术对人体无危害,还让使用者免受电源插座危害。产品的全部安全参数均满足国际上的FCC、IEEE和国内的3C标准。在保证了绝对安全的情况下,无线供电方式将能够有效解决房间布线繁乱、家电位置固定化、居室墙面被插座破坏等问题,为人们的生活提供更多的便利;同时,还将大量节省布线所用的铜、塑料等材料,节约了资源,减少了污染。利用磁耦合谐振式无线能量传输技术进行无线电能传输可以有效地解决以往供电方式的许多问题,使各种电器设备摆脱电缆束缚变成可能,给百姓的日常生活带来相当大的便捷。磁耦合谐振式无线能量传输技术的蓬勃发展会使人们在电能应用方面提升灵活性和多样性。图2.3-1磁共振方式2.4本设计方案思路在STM32F103最小系统基础上,搭建硬件平台。选用葡萄糖电化学传感器模块SOF-SENSOR,通过单片机的ADC引脚,将葡萄糖电化学传感器采集的数据传输到单片机;选用蓝牙模块HC-08,通过串口将传感器采集到的数据发送到PC端保存并分析、显示;选用128*64点阵OLED显示屏制作菜单,通过按键选择并进入相应的功能,以及显示相关数据。 3硬件设计3.1主机部分3.1.1单片机选型STM32F103系列的性价比相对较高,究其原因在于:使用型号为ARM32位Cortex-M3CPU,是第一款基于ARMv7结构的32位处理器,选用了基于哈佛结构的三级内核,具备单独的指令总线和数据总线。其工作频率可达72MHz,在存储器零存取周期访问时最高到1.25DMips。配备32位除法指令,弥补缺陷,改进了乘法运算,只用一个时钟周期即可完成32位乘32位乘法操作。存储器上集成了256KB到512KB的Flash存储器和6-64KB的静态随机存取存储器。在系统时钟、复位和电源上,电压正常情况下工作范围在2.0V到3.6V间,所以外设供电选择3.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至3.6V的AD转换器,转换时间为1μs并且具有三倍采样与保持功能,在其片上还集成了一个温度传感器。调试方式可分为串行单线调试与JTAG接口调试其功能框图如图3-1-1所示:图3.1-1STM32F103ZET6功能框图51单片机的优势在于片内RAM段设有双功能地址段,也允许乘除指令,使操作编程更加便捷。工作电压与工作电流相对较小,便于设计可携带物品。在一定价位内,51单片机具有相对较高的性能与运行速率。51单片机功能有:(1)64kb地址空间。(2)2K-64K只读存储器和128B-1K随机存储器。(3)具有21个专用存储器和2个可编程计数器。考虑到STM32F1相较于51单片机资源更丰富,外围接口功能更强大,时钟频率也更高,运行速度快,所以本次实验选择了STM32单片机进行实验。该系列利用高端外设、高性能、低成本、普通的架构和工具完成了高集成度。图3.1-2STM32F1实物图3.1.2显示屏选型目前市面上主流显示屏还是LCD,但是OLED逐渐呈替代趋势。传统的LCD屏由两块1毫米厚的玻璃板夹隔着5微米的液晶材料,因为液晶材料不自带光源,所以在显示屏两侧都设置了灯管而显示屏背后也有一块提供背景光源的匀光板和反光膜。LCD利用分层结构将背景光源的光线转化为三原色。而OLED由阴极、阳极、地基及有机分子或聚合物构成的发射层和导电层所构成,当电压供应足够时,正极空穴和阴极电荷就会产生电子-空穴复合,其中每个OLED的显示单元都可控的发出三种不同颜色的光,发射层中不同有机分子可以发出不同颜色的光,其光亮大小与所流经电流大小呈正相关。OLED具有优点如下:1.可弯曲,具有很强的柔性,曲面屏和可穿戴器件的流行已经表明了具有柔性的OLED是显示技术发展的趋势;2.有黑色画面时会关闭黑色画面的像素,且在亮度高时,比LED发光效率更高,续航能力更强;3.无需偏光板等元器件,原材料成本价格低,规模效应高于LED,所以制作成本更低。所以本研究选择了OLED显示屏。图3.2-1OLED实物图3.2从机部分3.2.1CC2540在芯片的选择方面,需要考虑到传输数据速度、芯片体积、工作功耗、抗干扰能力和传输距离等情况。在数据传输功耗一定时,数据传输效率相对来说需要相对较高。需要考虑植入生物体内,所以需要芯片能够在生物体内所受数据传输干扰小,在实验室的传输距离下有足够的传输速率,而抗干扰能力体现在数据传输时,整个运行过程的稳定性以及采集数据的正确性。按正常每分钟采样一个12位的数据,并每15分钟传输一次样本数据,紫蜂技术、蓝牙2.0及蓝牙4.0均能满足102.4bps的最低速率。但是紫蜂在该速率时所消耗的电能较高,蓝牙2.0在效率上与蓝牙4.0相比,电源效率相对较低。所以在综合上述情况后,我选择了蓝牙4.0-BLE作为本次研究的无线传输方法。蓝牙4.0是现在蓝牙协议的最新版本,它是一种低功耗蓝牙,与蓝牙3.0相比,其成本更低,3毫秒低延时,超长的有效连接距离,支持AES-128加密技术。但单模蓝牙4.0不提供向下兼容。在综合考虑后,美国TI公司的CC2540比较符合本实验的研究要求。CC2540是一种集成了微控制器、主机和应用于一体的单晶片系统,通过低成本建立主控或从属式节点,在工作模式下的状态切换时间也比较短。图3.3-1蓝牙模块实物图它具有的优势归纳如下:(1).6毫米×6毫米封装面积。(2).支持蓝牙4.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读取。图3.3-2CC2540功能框图近年来电子垃圾成为了对环境污染的一大难题,如何降低功耗成为整个系统设计中的重要部分。降低功耗,其意义主要在于减少集成电路的能耗,节约能源,与此同时,也可以大幅度的提高集成电路的速度。所以选用低功耗蓝牙模块对于环境保护不可或缺。3.2.2DS18B20在本次实验中,由于现实因素,葡萄糖传感器大都集成为一体了,市面上没有单独的葡萄糖传感器可购买,所以只有采用温度传感器来替代。本实验采用了DS18B20数字温度传感器。DS18B20是DAALLAS公司所研发的单总线数字温度计芯片,它接线简洁,有多种封装方式,可以根据情况选择不同的封装方式和外观。和以往的测量方式相异的是,它的温度转化结果能够从数据线得到。通过数据总线也能得到温度变换功率,而总线也能为接入的DS18B20供电,不用外部其他电源。DS18B20的主要特点有:(1)通过使用单总线接口,使用一条口线连接到CPU就能实现CPU和DS18B20双向通讯。并且单总线结构组建传感器网络简单,系统抗干扰能力更强,使用更加便捷。(2)温度测量范围广,测量精度较高。其测量范围在-55℃—+125℃,在-10℃到85℃范围内,元件精度可达±0.0625℃。(3)不用其他外围元件,所有传感元件和电路都集成在了集成电路里。(4)可提供多点组网功能,多个温度传感器可并联在三线上,完成多处测温。(5)电源两极反接时,芯片暂停工作,但不会发烫而烧坏。(6)内部集成带电可擦可编程只读存储器,其温度值和分辨率不会随着掉电而消失。(7)具有多种封装方式,可以适用于各种硬件系统。图3.4-1DS18B20实物图DS18B20内部由四部分构成:64位ROM、温度传感器存储器RAM与EEPRAM和配置寄存器。其中每个ROM的序列号都不一样,使他们分别开来,这样可以进行几个DS18B20同时连接到一条总线上的活动。DS18B20的温度传感器对温度测量后将数据转化为16位二进制形式。DS18B20的配置寄存器是通过改变配置位数来改变温度和数字的转化。图3.4-2DS18B20内部结构图DS18B20所得温度值的位数因分辨率而异,温度转换的延时也由2s变为750ms。如下图所示,低温度系数晶振的振荡频率随温度变化所受干扰较小,将所生成的频率脉冲信号传输给计数器。高温度系数晶振的振荡频率在温度的改变下发生显著变化,然后将生成的信号传输给计数器。测温前将零下五十五摄氏度所匹配的值设置在计数器1与温度寄存器里,低温度系数晶振所生成的信号传输到计数器1进行计数,当计数器1的先设数为0时,温度寄存器的先设数加1。然后计数器1数值重置,重复此行为,当计数器2先设数变为0时,此时温度寄存器当前数值就为测量温度。图中斜率累加器输出可以更正计数器1的先设数。图3.4-3DS18B20测温原理图3.3CH340使用CH340与串口都可以实现主机与单片机的通信,但采用CH340可以更加便捷。CH340是一个用于USB转接异步串口和打印口的转接芯片。在本次实验中,CH340所采用的的波特率为115200bps。CH340可以工作在5V电压或3.3V电压环境下。当在5V电压下工作时,CH340的VCC外接5V电压源,同时V3引脚接入0.1μF退耦电容,用于消除电路耦合。当在3.3V电压下工作时,其V3引脚和VCC一起接入3.3V电压源,同时其他电路的电压不能大于3.3V。CH340的主要特性有:在Windows系统下,可以对标准串口进行仿真,对于多数串口应用程序兼容。内部设置了单独的数据收发缓冲区,支持同时发送和接收数据。可接收波特率在50bps~2Mbps。通过电平转换电路可以增加RS232等接口。图3.5-13.4时钟电路时钟电路在电路设计中是不可或缺的部类,单片机实现的所有命令都要在时钟电路的操控下运行。如图3.6-1所示,此图为STM32F103型号单片机的数据手册所推荐的外部电路设计图,通过数据手册可得,STM32F103型号单片机具有内部和外部两种时钟源,内部时钟源在对STM32单片机的时钟精度没有很严格的要求时且需要缩小板子体积时,可以采用内部时钟源,这样可以很大程度上节省板子面积,降低成本。STM32还具有一个可输入的外部高精度时钟源引脚,我们可以通过配置此引脚得到一个高精度高频率低噪声稳定的时钟源。通过数据手册可得外部时钟源输入引脚输入时钟频率应该在4MHz到16MHz之间。市面上常见的时钟晶振有…HZ的晶振,由于8MHz晶振最常用且性价比相对较高,因此本设计选择8MHz晶振,如下图所示晶振还需要并联两个负载电容才能起振,通过查询8MHz晶振数据手册可以知道此负载电容应为20pf,为了使晶振更稳定工作,减少外界干扰,需要在晶振上并联一个1MΩ的电阻。由于晶振是高频信号源,所以在画PCB时必须保证晶振、电容、并联电阻的走线短而直,如果条件允许时,可在时钟电路周围进行包地处理,吸收干扰电磁波信号。图3.4-1时钟电路结构综上所述,如图3.4-2所示,此图为本设计的STM32型号单片机的时钟电路,电路图C13、C14为20pf负载电容,辅助晶振Y2起振,电阻R6增大负载电阻,起到了减少寄生电容,稳定晶振工作的作用。图3.4-2时钟电路原理图3.5复位电路复位电路的功能就是让系统返回到初始状态,MCU一共存在三种复位方式:上电复位,系统复位,备份区域复位。复位电路的原理图具体如下:图3.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开始采集温度,蓝牙将所采集温度传输回主机。4.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)完备的开发工具帮助文档,设备数据表和用户使用向导。4.2HC-08蓝牙传输模块本系统使用的蓝牙模块分为主机与从机两部分,作为主机的蓝牙模块与STM32连接,作用是给从机发送采集数据指令、接收从机传输的数据、接收APP传输的指令、发送采集并处理好的数据发送回APP。作为从机的蓝牙模块内部集成了51单片机的内核,可以通过编程此内核用来控制DS18B20采集数据,并将数据传回给主机。本部分只描述蓝牙的驱动代码及处理代码。DS18B20的数据采集代码见DS18B20温度采集模块部分。4.2.1蓝牙驱动代码 要让HC-08能够传输数据,首先需要配置蓝牙的工作模式。使用串口调试助手SSCOM和USB转串口工具配置AT指令,分别修改蓝牙的工作模式为主从机,需要手机主动去连接;修改蓝牙的串口波特率为115200,1位停止位,无校验位,以适配单片机的串口速率。最后对蓝牙进行复位,就可以连接单片机与手机进行数据传输了。 HC-08和单片机之间通过串口进行数据传输,只需要配置串口相关的驱动就可以通信了。配置单片机的串口1作为通信串口,波特率为115200,8位字长,1位停止位,无校验位,配置串口模式为收发模式,不开启串口中断。具体代码如下:图4.2-14.2.2主函数实现 主程序通过中断来发送数据,开启定时器更新中断,每100ms将串口发送标志位置1。在主函数中循环检测,若发现串口发送标志位为1,清除标志位以便下一次再次进入,并将采集到的温度通过数据包的形式发送。具体代码如下:图4.2-2 数据包由包头、数据位、校验位和包尾组成,包头为固定值0xA5;数据位是1个浮点数,由4个字节组成;校验位由数据位的各个字节之和的低八位组成;包尾为固定值0x5A。数据的打包过程如下:(1)开始将数据打包,需传入定义好的数组(需保证数组长度足以存放要发送的数据)。(2)向数据包中放入各类数据。(3)结束打包,函数将返回数据包的总长度。(4)发送数据。4.2.3上位机软件编写 上位机采用蓝牙调试器编写,首先配置接收数据包结构,在浮点数中添加变量用来接收单片机发送的温度数据,配置数据接收合并间隔为100ms,和单片机每100ms发送一次数据相吻合。然后编辑控件,在屏幕上添加一个Y-T一维波形图,横坐标是时间,每一格代表1s;纵坐标是温度,每一格代表1℃。具体界面如下图4.2-3所示:图4.2-3上位机界面截图4.3DS18B20温度采集模块4.3.1DS18B20驱动 DS18B20采用单总线驱动,要从DS18B20中获取温度,我们需要对它编写相应的时序代码。要让DS18B20正常工作,首先要对其进行初始化,在初始化序列期间,总线控制器拉低总线并保持480us以发出一个复位脉冲,然后释放总线,进入接收状态(等待DS18B20应答)。总线释放后,单总线由上拉电阻拉到高电平。当DS18B20探测到I/O引脚上的上升沿后,等待15-60us,然后其以拉低总线60-240us的方式发出存在脉冲。至此,初始化时序完毕。初始化函数如下:图4.3-1 单片机需要向DS18B20中写入相应的时序,才能让它开始采集温度,因此我们需要编写相应的写时序代码。首先要将数据线从高电平拉至低电平,从而产生写起始信号。然后需要在15us之内将所需写的位送到数据线上,并在此之后,在15~60us之间对数据线进行采样,如果是高电平就写1,低写0发生,连续采集8次可以得到一个字节,但要注意的是在开始另一个写周期前必须有1us以上的高电平恢复期。写时序函数如下:图4.3-2 同样的,单片机需要向DS18B20写入读时序才能从传感器中读取温度,因此我们需要编写相应的读时序代码。首先要将主机数据线先从高拉至低电平1us以上,再使数据线升为高电平,从而产生读信号。每个读周期最短的持续时间为60us,各个读周期之间必须有1us以上的高电平恢复期,连续读取8次就可以得到一个字节的信息,最后返回得到的一个字节的数据。写时序函数如下:图4.3-3 编写完读写时序后就可以操作读写时序函数获取温度了。先对DS18B20初始化,跳过读序列号操作后启动温度转换。之后便可以读取温度寄存器,得到两个字节的数据tempL和tempH。若温度为负,则需要对它进行补码转换。通过转换可以得到测得的温度值,在主函数中只需要调用该函数即可,部分代码如下:图4.3-44.3.2主函数实现 主程序通过中断来采集温度,开启定时器更新中断,每10ms将温度标志位置1。在主函数中循环检测,若发现温度标志位为1,清除标志位以便下一次再次进入,并将采集到的温度保存在浮点数类型的变量中,以便调用。具体代码如下:图4.3-54.4OLED显示模块我们通过软件模拟IIC的方式驱动OLED屏显示相应的内容,首先需要编写IIC时序代码,这部分代码主要在ssd1306_i2c.c文件中,其中包括了IIC时序开始、结束、延时的代码,以及通过IIC写入字节的代码,通过该C文件可以使用IIC向ssd1306写入数据。其次需要编写ssd1306的驱动函数,这部分代码主要在ssd1306.c文件中。通过ssd1306有两种写入方式,分别是写命令和写数据,通过写入命令和地址,可以在OLED屏上点亮或熄灭一个个像素点。为了在屏幕向显示字符、汉字或者图片,我们就需要导入他们的字库。字库中包含了要显示的字符的像素点位置,这部分代码在F08_ASCII.c文件中。最后我们在GUISlim.c文件中编写了具体的显示函数,通过调用字库和ssd1306.c中的API函数,可以在屏幕上显示需要的内容。下面介绍一些常用的显示函数:(1)GUI_Init(),这是OLED初始化函数,包括GUI图形库的初始化和液晶屏初始化,确定屏幕大小、显示颜色、字体大小等等。(2)GUI_Clear(),这是OLED清屏函数,用与熄灭OLED屏上的像素点。(3)GUI_DispStringAt(),这是OLED显示函数,通过这个函数可以在指定的位置显示字符串。(4)GUI_Update(),这是OLED刷新函数,通过这个函数可以一次性的将需要显示的内容更新到显示屏上。 主程序通过中断来显示OLED内容,开启定时器更新中断,每100ms将OLED显示标志位置1。在主函数中循环检测,若发现OLED显示标志位为1,清除标志位以便下一次再次进入,在switch语句中判断显示的类型,若标志位为1,OLED显示温度。具体代码如下:图4.4-1 软件编译后,可以在屏幕上显示温度,如图4.4-2所示:图4.4-2OLED显示温度5制作调试与系统仿真由于无法购得葡萄糖传感器,所以在传感器模块部分采用了温度传感器进行替代。 为了得到准确的温度值,需要用标准温度计测出当前环境的实际温度,然后用本系统测得的温度与标准温度进行对比,得到矫正函数矫正测得的温度。把本系统的温度计和标准温度计同时放在40℃的水中,每隔5秒钟测定一次温度并记录。图5.1-1实际温度测试图图5.1-2测量温度测试图在Excel中绘制了水温为40℃时的温度变化曲线图,如图5.1-3所示图5.1-340℃下标准温度与测定温度变化曲线 在Excel中将测定温度作为横坐标,把实际温度作为纵坐标,绘制函数曲线。选择添加趋势线,使用线性趋势线拟合曲线,并显示函数。具体函数曲线如图5.1-4所示:图5.1-4矫正曲线 通过矫正曲线,在软件中使用矫正函数,对测得的温度进行矫正。使用矫正后的测定温度和实际温度进行比较,测试结果见表5.1-5所示:标准温度/℃校准后测定温度/℃准确度2019.8899.40%4040.0399.93%6060.199.83%8081.0698.68%100103.2396.77% 表5.1-5准确度测试表总体准确度达到98.92%,基本符合预期设计指标,分析误差产生的原因是:(1)DS18B20的内部寄存器最大为12位,因此每次温度变化之间的间隔为0.0625℃,导致测定的温度值不准确。(2)在拟合曲线时使用的数据点过少,导致拟合曲线不准确;拟合曲线使用最简单的线性函数拟合,存在误差较大。(3)在温度过高或过低的区域,只能通过拟合函数预测,导致其误差较大。(4)所采用实际温度计精度为0.1℃,缺少数据导致精度不高。6结论本文首先对以往血糖检测所存在的缺点进行了分析,确定了此次研究所要创新的地方,对连续血糖检测的优点进行了描述。并依据上面的阐述,提出了基于CC2540的植入式连续血糖检测。然后对于整个血糖检测的各个模块进行研究,对单片机以及蓝牙模块的特点进行分析,然后按照设计所需对元器件进行筛选,单片机选择了功能齐全,运行速度相对较快的STM32F1O3,通讯模块采用了支持蓝牙4.0版本的CC2540芯片。在无线供电方面采用了磁耦合谐振式无线能量传输技术。由于葡萄糖传感器在市面上无法购买,所以只有选择温度传感器进行代替,因此本文采用了DS18B20数字温度传感器。选用OLED进行数据显示。通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论