版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于STM32F103芯片和MAX30100传感器的血氧饱和度检测器设计目录摘要 3第1章绪论 51.1课题研究的意义 51.2国内外研究现状 51.2.1血氧饱和度检测系统国外研究概述 51.2.2血氧饱和度检测系统国内研究概述 61.3本文主要研究内容 6第2章血氧饱和度检测的相关理论 72.1血氧饱和度检测方法 72.2血氧饱和度检测原理 72.2.1血氧饱和度简介 72.2.2检测原理 8第3章血氧饱和度检测系统硬件设计 93.1血氧饱和度检测系统硬件总体设计方案 93.2主控芯片 103.2.1主控芯片选择 103.2.2STM32F103系列单片机的优点 103.2.3主控芯片电路设计 103.3血氧饱和度传感器 113.3.1血氧饱和度传感器选型 113.3.2血氧饱和度传感器简介 123.3.3传感器外围电路设计 133.4显示模块 133.4.1显示模块的选择 133.4.2显示模块电路设计 143.5通信模块 153.5.1通信模块选择 153.5.2模块简介 153.5.3通信模块电路设计 15第4章血氧饱和度检测系统软件设计 164.1开发环境简介 164.2软件设计流程 164.2.1系统主程序设计 164.2.2传感器模块程序设计 174.2.3OLED显示模块程序设计 184.2.4通讯模块程序设计 18第5章系统功能测试 195.1系统调试 195.2系统功能验证 19第6章总结与讨论 216.1总结 216.2设计展望 21参考文献 22附录 23摘要结合当前医疗监护仪器的发展现状,以及传统便携式监护仪器的优缺点。本文将以人体血氧饱和度作为研究对象,设计了一款能够实时监测人体血氧饱和度的便携式健康检测系统。本设计选取STM32F103系列的MCU作为系统的主控芯片,然后通过MAX30100传感器对信号进行采集,将得到的模拟信号进行处理、转换、滤波,并发送到主控芯片进行血氧饱和度值的计算,利用其内部的存储控制器以及OLED显示器等资源实现数据的实时显示,同时使用ESP8266WIFI模块将数据传输到OneNet云平台,进行实时的数据记录。用户可通过网页版OneNet或者OneNet对应的手机APP进行登录,实时查看数据分析,对自身的身体状况做出预判。当上传到平台的数据低于所设定的阈值时,平台会对用户发出报警,以邮件的形式提醒用户进行及时调整或者就医,改善身体状况。最后通过综合调试,本设计完成了对人体血氧饱和度的实时检测,实现了数据的实时上传和报警功能,达到了本设计的预期目的。关键词:STM32血氧饱和度MAX30100传感器ESP8266OLED第1章绪论1.1课题研究的意义伴随着社会不断的发展和进步,各种各样的慢性病不断涌现,能够随时进行自我检测的各类医疗监护检测仪器,已经成为自我诊断和治疗不可或缺的工具。其主要功能是诊断人体的各项身体参数,对疾病进行预防和控制。其中,血氧饱和度的健康参数在衡量我们身体各项健康指标中占据着非常重要的地位。人体生命和其所有生理活动都离不开氧的支持,所以氧是人体生命至关重要的物质。人体缺氧会使器官功能下降,严重时会对身体健康以及生命造成不小的伤害。例如血液中氧气含量的降低,会导致人们疲劳、思维变慢、注意力降低、记忆力减退。长期或严重的缺氧更会增加慢性低血氧症、肺心病、低血糖等一系列疾病的患病概率,尤其是针对老年人这一弱势群体。血氧饱和度作为身体健康的重要指标,直接反映了人体的呼吸循环以及心脑血管等系统的生理状况,在临床医学检测和医疗监护领域有重要的参考价值。所以血氧饱和度的实时监测,对患有慢性呼吸病和心脑血管疾病的患者起到了很好的预防和控制作用。因而,结合日益苛刻的血氧动态监护要求,深入研究血氧饱和度检测技术,具有很重要的科学意义和广阔的应用前景。1.2国内外研究现状早在20世纪以前,很多国外的学者就已经开始研究有关于血氧饱和度的采集和处理,并做了大量的研究和实验,取得了巨大的进步。相比于国内,国外的技术更为成熟先进,在创新性、实用性等方面都处于遥遥领先的地位。1.2.1血氧饱和度检测系统国外研究概述在国外,最早对于血氧饱和度检测系统的研究可以追溯到十九世纪,开始于朗伯-比尔定律的提出。早在1929年,美国生理学家GlenMillian研究了血氧饱和度的测量原理,他提出了“Oximeter”的概念,即血氧仪是一种光电测量仪器,这种仪器利用光穿透血管,以人体内动脉血氧饱和度进行连续测量;1935年,维也纳生理学教授Matthes研制出第一个双波长的无创血氧仪,其原理是利用双波长光源(红光和绿光)照射耳部进行测量,但是这种仪器测量速度较慢,需要频繁、复杂的仪器校准;1938年,Hertzman第一次提出了光电容积脉搏波扫描原理,这为随后运用光电容积脉搏波检测血氧饱和度打下坚实的基础;1942年,科学家MilliKan研制了一款用于检测飞行员血氧饱和度的血氧仪,这款设计一度成为当时的一个热点,这对血氧饱和度检测系统研究的快速发展,起到了巨大的促进作用;1949年,美国的科学家Wood利用朗伯-比尔定律,设计了一种通过耳垂测量血氧饱和度的方法,然而因为每个人的血液成分不同,使得它的测量过程较为复杂,测量结果也不够准确,因此没有得到实际的应用;直到1964年,同样是美国的外科医生ShawR,研制出一种可以避免繁琐仪器调整过程的八波长自调节脉搏血氧仪,基于这种原理研制的血氧仪,避免了繁杂的仪器校准过程,并且可以有效的减少色素、皮肤的吸收干扰,使该血氧仪在临床上取得成功,但是这个血氧仪体积庞大、结构特殊,患者长期佩戴会使耳部产生不适并且容易受伤,另外它的精度也只达到了70%,这些缺点极大程度上影响了它的普及;1972年,日本科学家Aoyagi提出了用搏动式的光的变化去测量动脉中的血氧饱和度。该血氧仪的原理是利用发光二极管发出的红光和红外光穿过测量部位的动脉血管,根据氧合血红蛋白和脱氧血红蛋白对光的吸收特点,直接计算出脉搏血氧饱和度,从而达到减少了血氧探头的体积和简化仪器复杂程度的目的;随后利用此方法研制的血氧仪,顺利投入商业化的应用,并且迅速在市场上得到了推广;直至1982年,Nellcor研制出了精度更高而且功能更加优越的脉搏血氧饱和度检测仪N-100,成为了现代血氧饱和度检测仪设计的一种标准。从这以后,依据这种标准模式设计的各种血氧饱和度检测仪不断被研制出来,并广泛使用在临床医疗和家庭保健等方面,成为了一种不可或缺的医疗检测仪器;2010年,RammohanV.Maikala对朗伯-比尔定律进行了修正,成功的利用修正后的朗伯-比尔定律研制了一种基于反射式检测原理的血氧仪。1.2.2血氧饱和度检测系统国内研究概述在国内,虽然对于这项技术的研究还比较落后,但依旧有许多大学和科研机构对这项技术进行了深入的研究,并且取得了显著的成果。例如中国航天工业总公司的第十三研究所研究出的无创伤脉率血氧饱和度监护仪,这款监护仪在抗干扰等方面有了新的提高,但是精度方面还是略显不足;厦门大学的团队设计了一种主控为PIC单片机的脉搏血氧检测仪,很好的控制了噪声干扰等问题,但是由于体积偏大,便携性较差。综上,虽然我国在血氧饱和度检测系统的功能研发上发展迅速,但还是会在受到各种外界干扰时,对系统的性能产生影响。譬如在运动时抖动会导致测量结果准确性较低。此外,中高端产品的价格、耗能较高。因此,在提高精度、消除干扰、提高稳定性、降低耗能、减少成本,缩小体积等方面还有待进一步的提升。1.3本文主要研究内容本设计结合传统便携式医疗监护设备,旨在研发一种精度高、低成本、低耗能、能够实时监测的便携式血氧饱和度医疗监护仪器。下面将对本文的主要研究内容进行详细阐述:通过血氧传感器MAX30100获取用于计算血氧饱和度的光信号,并且利用芯片内部的转换器将光信号转化为电信号,这些电信号经过处理、转化、滤波后传输给主控芯片;然后运用主控芯片来完成血氧饱和度值的计算;最后经由OLED显示模块将测量数据进行实时显示,并且利用ESP8266WIFI模块将检测数据实时传输到OneNet物联网云平台进行记录与实时监测。利用OneNet手机APP或者网页版OneNet云平台进行数据的记录,用户能够随时查看过往的检测数据,对用户自身的身体状况做出预判。如果当上传到平台的数据低于所设定的阈值时,平台会以邮件报警的形式告知用户。通过与标准血氧仪的对比验证,本设计所测得的数据精度基本达到ISO医学血氧饱和度检测仪的标准。
第2章血氧饱和度检测的相关理论2.1血氧饱和度检测方法血氧饱和度检测的方法分为电化学法和光化学法,即有创和无创两种方法。早期的血氧饱和度检测大都是采用电化学法。这种方法需要先采集血液,然后利用血气分析仪对采集到的血液进行电化学分析,然后计算血氧饱和度的值。尽管这种检测方法得到的结果比较精准,但是会给被检测者造成创伤。而且这种方法操作繁琐、耗费时间,不能实时检测。因此,目前在临床治疗上这种方法已经很少被使用。目前,应用最广泛的血氧饱和度测量方法是光化学法。这种检测方式主要是以朗伯-比尔定律为基础,运用光谱学的方法对生物组织进行无损害检测。这种测量方式操作简单,不会给检测者带来伤害,同时还能进行实时、连续的检测。这种方法目前在临床治疗上已经大量普及。通常依据朗伯-比尔定律来进行的血氧饱和度测量,按照使用的传感器类型又可以分为透射式和反射式。当光源与光电检测器位于人体组织的同一侧时为反射式;当光源与光电检测器位于人体组织两侧时为透射式。两种方式的结构图如图2-1所示。图2-1传感器结构示意图透射式的传感器主要应用于临床的监护,目前这种设备的应用也比较广泛,但是在测量过程中会受到测量部位的限制。反之,反射式的传感器则不会受到这种限制,反而在某些特定的场合得到了大量的普及。本设计所应用的就是反射式血氧饱和度测量的方法。2.2血氧饱和度检测原理2.2.1血氧饱和度简介血氧饱和度()是血液中被氧气结合的氧合血红蛋白()的容量占全部可结合的血红蛋白()容量的百分比,即血液中血氧的浓度,它是呼吸循环的重要生理参数。血氧饱和度()的表达式如式(2.1):(2.1)人体的新陈代谢过程是生物氧化过程,而新陈代谢过程中所需要的氧,是通过呼吸系统进入人体血液,与血液红细胞中的血红蛋白结合成氧合血红蛋白,在输送到人体各部分组织细胞中去。为了使血液循环和呼吸系统正常运行,常用血氧饱和度来判断人体中血氧含量。血氧饱和度在人体的呼吸循环中起到了非常重要的作用,血液携带输送氧气的能力即用血氧饱和度来衡量,并且可以估计肺的氧合血红蛋白的携氧能力。2.2.2检测原理当检测血氧饱和度时,主要依据人体动脉血吸收入射光的量会随动脉血管收缩或扩张的变化而变化的原理。在血氧饱和度检测时,血管的脉动会影响血液对光的吸收度,这种变化就是交流量。同时像皮肤、肌肉等对入射光吸收的比例基本是恒定的,受到外界的干扰也会很小,这种变化称为直流量。朗伯-比尔定律即,物质在一定波长处所吸收光的量与照射物质的光强度无关,而是与物质的浓度和吸光层的厚度相关。在相同光程的照射下,厚度相同的每一层介质,它们所吸收光的比例相同。从朗伯-比尔定律可知,人体血液中的氧含量越充沛,则吸收入射光容量就越多;而相反血液中的氧含量越稀少,则吸收入射光容量就会相应减少。因此,只需选择合适波长的光,就可通过测量吸光度求得物质的浓度。朗伯-比尔定律如式(2.2)。(2.2)式中I0为单色光的强度;C为介质的浓度;I为通过样品后的透射光强度;A为吸光度;d为光程,即介质的厚度;k为光被吸收的比例系数,与介质的浓度无关;T为透射比,即透射光强度与入射光强度的比值。公式说明光在人体介质的传输过程中,其吸光度只与光吸收比例系数、人体介质浓度和其光程成正比例关系。
第3章血氧饱和度检测系统硬件设计3.1血氧饱和度检测系统硬件总体设计方案本设计的硬件部分由主控模块、血氧传感器、OLED显示模块、通信模块等组成。本设计使用的是模块化设计,这样可以使系统更加简洁,操作变得更为简单,通过显示器就可以直观的读出测量所得到的数据。此外,该系统采用USB数据线与电脑USB接口直接相连的供电的方式。在目前,普遍都使用USB接口供电,这样既提高了电源的可靠性,并且也能够通过手机充电器供电,给用户的使用带来了便利。图3-1为本设计的整体电路设计。图3-1整体电路结构图系统的首要前提是采集到精确的血氧饱和度参数,通过精确的数据来有效地监测用户的身体状况。因此,在器件的选择、电路的设计过程中,每一个步骤都是至关重要的,每一个细节都可能是导致失败的原因。以下将对各个模块的选型、功能以及硬件电路设计做出详细的阐述和解释。3.2主控芯片3.2.1主控芯片选择作为整个血氧饱和度检测系统的控制核心,处理器的综合性能一定要高。现如今市面上设计出了很多种类的单片机,在速度、功能等方面也是层次不齐,常用到的主要有51、STM32、STC等主流单片机。针对血氧饱和度检测系统的便携性、低耗能和精度高等要求,经过大量的筛选与对比,本设计的主控模块最终选用的是意法半导体(ST)公司生产的STM32F103系列MCU。这款处理器采用小体积的LQF48引脚封装,大小为10mm×10mm。供电采用2V-3.6V,融合了多种先进的工艺,而且支持引脚复用和重映射功能。此外,它具有丰富的开发工具、片上资源以及接口、强大的计算能力、大量的开发资料等优势,是便携式嵌入式设备主控芯片的最佳选择。STM32F103C8T6芯片实物如图3-2所示。图3-2STM32F103C8T6芯片实物3.2.2STM32F103系列单片机的优点相较于51等其它系列的单片机,STM32系列单片机占据着明显的优势。因为它的开发难度较为简单,同时具有结构简单、集成度高、实时处理问题的能力强等优点,在各种嵌入式电子产品设备开发中得到了普遍的使用。STM32F103系列单片机的主要优势有以下几点:1.片上集成了从256K-512K字节的FLASH和64KB的SRAM程序运行空间,可以保证程序流畅的运行。2.多达13个通信接口,保证单片机可以和不同类型通信协议接口的器件进行通信,增强了硬件的可扩展性。3.12个通道的DMA控制器,能满足ADC、USART、SPI、IIC、USB2.0和SDIO等外设的数据传输,可以节省CPU资源,提高数据的传输效率。4.片上集成多个12位精度的ADC,每个ADC含有21个外部通道,每个通道都能够实现单次、多次、连续扫描模式执行AD采样。根据不同的需求可以对采样时间进行修改,可以满足大多数情况的采样。3.2.3主控芯片电路设计设计选用STM32F103C8T6单片机作为主控芯片,主要电路包括电源电路、时钟电路和复位电路。STM32的时钟可以由内部的晶振提供,也可以外接时钟电路。其中STM32F103C8T6的引脚图如图3-3所示:图3-3STM32F103C8T6的引脚图由上图可以看出STM32F103C8T6含有48个引脚,并且每个引脚对应着相应的功能和复用功能,要完成对血氧饱和度数据的采集、传输、处理与显示的功能,就要将模块与芯片的每一个引脚都对应连接好。复位电路如图3-4所示,只要几个简单的电容组合在一起就可以构成复位电路,实现复位的功能。在单片机工作状态时,按下RESET键,就能实现系统的复位功能。图3-4复位电路3.3血氧饱和度传感器3.3.1血氧饱和度传感器选型血氧饱和度传感器的主要工作是对信号进行高效的采集,并且将信号经过AD转换传输到控制器。所以,在选择血氧饱和度检测的传感器时,主要的考虑因素有传感器感光面积和光谱灵敏度,其次要具有便携性和低耗能性。综合以上所叙述的特点,本文选用的是美信公司生产的传感器芯片MAX30100。这款芯片是一款高集成的血氧饱和度检测芯片,可以省去大量外围电路设计,并且芯片本身还带有对信号采集和预处理的功能。该器件集成了两个LED光电检测器(红光LED和红外光LED)、光检测器和带有环境光抑制的低噪声模拟信号处理器。它的实物如图3-5所示:图3-5MAX301003.3.2血氧饱和度传感器简介MAX30100芯片内部电路的供电采用1.8V,芯片上的LED则需要3.3V电源电压。芯片测量血氧饱和度的工作原理是通过内部预先设置好LED驱动器的时序,驱动芯片上的LED交替扫描检测部位。该芯片的通信方式是IIC通信,将采集到的信号通过IIC传输到主控芯片进行计算。此外,该芯片的断电还可以通过软件来实现,待机时消耗的电流仅为0.7uA,是目前业内功耗较低的血氧饱和度检测芯片。该传感器芯片也被大量应用在三星、苹果等品牌手机中。MAX30100传感器管脚分布如图3-6所示,各管脚功能如表3-1所示。图3-6MAX30100管脚分布表3-1MAX30100各管脚功能管脚名管脚功能VIN电源输入1.8V-3.3VSCLIIC-SCLSDAIIC-SDAINT低电平有效中断IRDIRLED阴极与LED驱动连接点RDRedLED阴极与LED驱动连接点GND接地3.3.3传感器外围电路设计本设计选用的MAX30100传感器模块电路如图3-7所示。集成芯片MAX30100提供了标准的IIC兼容通信接口,外部器件通过IIC来进行通信。供电采用1.8V-3.3V。IIC在空闲的时候,为保证IIC正常的工作,IIC兼容通信接口需要将SCL和SDA置为高电平,因此需要在后续的采集电路里给SDA和SCL引脚接4.7KΩ的上拉电阻。传感器的IIC时钟线SCL与单片机的PC15引脚相连,数据线SDA与单片机的PC14引脚相连。图3-7传感器模块电路3.4显示模块3.4.1显示模块的选择目前市场上主要的显示器件有LCD、OLED等。LCD具有低功耗、节省空间、对视力的危害较小、辐射低等特点,但是LCD存在视角窄、响应速度慢、适温范围窄、需背光等缺点。OLED作为一种新型的显示模块,具备自发光、不需背光源、超广可视角度、可用于挠曲面板、适温范围宽、结构及制作简单等优异的特性。如今,大量的检测仪器已经普遍开始使用OLED作为显示模块。表3-2对比了LCD和OLED的一些特性参数。表3-2LCD和OLED特性的比较特性参数LCDOLED发电方式需要背光源自发光耗电量背光源面板耗电量大约为LCD的2/3面板厚度含背光源时为5mm1-1.8mm反应时间40us10us操作温度(℃)0~50-40~60因此,本设计最终选定OLED作为系统的显示模块,该模块具有128*64的高分辨率,模块内含128*64bit的显示RAM,其中的每一位数据都对应着屏幕上一点的明暗状态。显示模块引脚列表如表3-3:表3-3显示模块引脚列表引脚功能说明13.3V电源输入2GND地输入3-8并行数据口D2-D79并行数据口D0(串行时CLK)10并行数据口D1(串行时DATA)11WR,写控制,低电平有效12RD,读控制,低电平有效13RES,复位引脚,低电平有效14DC,高电平发数据,低电平发指令15CS,片选,低电平有效16P/S模式选择,高为并行,低为串行3.4.2显示模块电路设计本设计选取以SSD1306作为驱动芯片的OLED显示模块。本模块共有四种数据通信协议方式:两个并行接口(8080和6800)、IIC模式和4-wrieSPI模式。它们通过设置模块的BS0、BS1和BS2三个引脚的高低电平来区分不同的数据通信方式。通信模式选择如表3-4所示:表3-4SH1106通信方式选择通信协议8080IIC68004-wireSPIBS00000BS11100BS21010本设计使用的OLED是四针的IIC模块,接口相对较为简单,只含有四个引脚:电源(VCC),地线(GND),时钟管脚(SCL)和数据管脚(SDA)。本模块自身含有升压的功能,不需设计额外的电路。OLED模块引脚连接如图3-8所示,在该电路图中,单片机的PB6引脚接OLED的时钟管脚SCL,单片机的PB7引脚接OLED的数据管脚SDA。图3-8OLED引脚连接图3.5通信模块3.5.1通信模块选择本文设计的实时血氧饱和度医疗监测设备,对数据传输方式的要求主要是能够对数据进行实时、高效的传输。目前主要的传输方式有WIFI、ZigBee、蓝牙等。ZigBee可以自组网,协议简单、功耗低,但是ZigBee的传输速率较慢。蓝牙这种无线传输技术很早就被广泛使用,操作简单,但是传输距离较短,远不能满足用户的需求。WIFI的传输速率高,传输距离较长,支持多媒体的数据传输。WIFI无线通讯相比于其他方式,应用的领域更为广泛,而且具有体积小、功耗低、传输稳定、安全等方面的优势。因此,本文选用的是ESP88266WIFI集成通信模块。3.5.2模块简介ESP8266-01是一款具有高性能、低成本、低功耗等特点的无线通讯模块。内置32位MCU,可兼作主控芯片;超小的封装体积,仅有10mm*10mm;它的适温范围宽,可在-40℃—125℃的温度范围内工作;另外ESP8266是一款集成度特别高的芯片,仅需极少的外部电路设计,因此只占用极少的PCB空间。而且ESP8266-01无线传输模块硬件接口丰富,可支持UART、GPIO、ADC等。目前,这种通信模块在国内与国外的物联网研发中已经得到了大量的使用。模块实物如图3-9所示。图3-9ESP8266实物图3.5.3通信模块电路设计ESP8266-01模块的管脚排列图如图3-10所示。图3-10ESP8266管脚排列图模块的UTXD管脚与STM32单片机的PA3引脚相连;模块的URXD管脚与STM32单片机的PA2引脚相连;模块的RST管脚为复位引脚,低电平复位,高电平工作,与STM32单片机的PA1引脚相连;VCC为模拟电源引脚,供电电压为3.3V;GND为电源地,与STM32单片机的GND引脚相连。
第4章血氧饱和度检测系统软件设计4.1开发环境简介在软件设计中,开发环境的选择对前期软件的编程和后期实现系统性能起着关键性的作用。在本文的设计中,择了KEIL公司的KeiluVision5集成开发环境,是目前针对ARM处理器和Cortex-M内核处理器最佳的开发工具。相较于其它开发环境,KEIL具有以下几点优势:1.可以自动生成启动码,提高了开发的效率2.具有高效率的RealView编译器。3.具有集成的Flash烧写软件,可以通过仿真器直接进行Flash烧写。使用KEIL开发软件项目可以分为下几个步骤:1.新建一个工程,选择对应的单片机芯片,对工程编译环境进行配置。2.在工程中添加C文件和H文件,编写C语言程序代码。3.编译源程序。4.调试程序,修改程序中的错误。5.将程序下载到硬件里,进行联机调试。4.2软件设计流程本设计首先对传感器模块、OLED显示模块以及通信模块等硬件进行驱动程序的编写。但是这些硬件的程序只能使系统进行正常的工作,使得各模块能够不断的进行检测工作。单是这样还不能实现系统的主要功能,因此,接下来编写了算法程序,将传感器检测到的信号传输到主控芯片进行算法处理,然后求得血氧饱和度的值。最后实现数据的显示和上传功能。4.2.1系统主程序设计首先进行了系统和传感器模块MAX30100、OLED显示模块、通讯模块等硬件外设的初始化。之后MCU通过IIC驱动MAX30100进行血氧饱和度检测,读取对应的电信号参数,将数据进行模数转换成数字量。最后,MCU通过IIC控制OLED显示模块将测量结果实时显示出来;同时,控制通讯模块将检测到的数据上传到OneNet物联网云平台。系统主程序设计流程如图4-1所示:图4-1主程序设计框图4.2.2传感器模块程序设计本文选用的传感器上有两个集成的光源和一个光电探测器。首先对传感器模块的内部时钟以及端口进行初始化;然后通过内部预先设置的LED驱动器时序,来驱动芯片上的LED交替扫描检测部位,测得的光信号经过芯片内部的模数转换和放大滤波处理后,转换为数字量。将测量到的数据存储到芯片内部的FIFO寄存器中,然后对IIC接口进行初始化,进行数据的读取与传输。芯片的工作原理如图4-2所示。在血氧模式下,IIC命令设置为{2:0},只有当FIFO寄存器存满的时候,才会产生中断,但是这时会留一个空间给FIFO寄存器产生中断。只有寄存器的数据被读取时,中断才会离开。图4-2MAX30100工作原理图4.2.3OLED显示模块程序设计本设计选取的OLED显示模块使用IIC总线进行数据传输。数据传输时会使用IIC的串行时钟线(SCL)和串行数据线(SDA)。显示模块的程序设计中,首先需要对模块的系统进行初始化;然后对模块的显示区间进行程序编写;最后对数据的显示程序进行编写。显示模块程序设计如图4-3所示。图4-3OLED显示流程图4.2.4通讯模块程序设计开始首先对通讯模块ESP8266-01进行模块内部、时钟及端口的初始化;第二步,进行模块的参数配置;第三步,在参数配置好之后,WIFI模块开始进行连接请求;第四步,如果连接成功,则需要等待串口数据;最后将ESP8266介入到TCP服务端,进行数据的传输。通讯模块程序设计如图4-4所示。图4-4通讯模块流程图
第5章系统功能测试5.1系统调试对系统进行调试的目的是为了发现设计过程中的错误并且进行及时的改正,确保系统能够达到预想的要求。调试阶段是整个系统设计的最后环节,也是最关键的一个环节。本设计使用的模块有主控模块、传感器模块、显示模块和通讯模块。为提高系统调试的效率,本文的调试过程使用的是分块调试法。这种方法可以缩小电路故障发生的范围,能够及时的对故障进行改正,使解决问题变得更加容易。首先调试的是系统的主控芯片,检测系统的输出电路是否正常;然后对血氧饱和度检测传感器进行调试,验证传感器能否正常进行数据采集;然后对OLED显示模块的电路进行调试,观测OLED模块能否正常的显示检测结果;最后对通信模块进行调试,检测数据是否能够实时上传。在整个测试过程中对各个模块的功能进行逐级检测,最后如果系统各个模块都可以正常工作,将程序下载到系统中进行综合的调试,检测程序在编写的过程中所出现的错误,并进行及时的改正。5.2系统功能验证完成整个设计的电路搭建后,将程序下载到主控芯片的最小系统里,对整个系统进行综合的测试,验证是否能够达到预期的设计效果。首先将检测部位放到传感器上,通过传感器进行信号采集,芯片内部会对信号进行模数转换,然后进行数字滤波,通过IIC通信上传到主控芯片进行血氧饱和度值的计算;最后主控芯片控制显示模块对数据进行实时显示,同时通讯模块也能正常将数据传输到OneNet云平台。当上传平台的数据小于所设定的阈值时,平台会以邮件的形式对用户做出报警。当上面一系列步骤都能正常工作时,说明设计达到了预期的目的。本设计正常工作实物图如图5-1所示,系统数据采集如图5-2所示:图5-1硬件工作实物图图5-2数据采集图
第6章总结与讨论6.1总结目前,能够对人体生理健康参数进行实时监测的家用医疗仪器,已经成为自我诊断和治疗不可或缺的工具。因此,结合当前医疗监护仪器的发展现状,以及传统便携式监护仪器的优缺点,设计了一种用于检测血氧饱和度的医疗监护仪器。首先结合血氧饱和度对人体健康的重要性,阐述了血氧饱和度检测系统设计在医疗监护领域的重要意义。针对国内外对血氧饱和度检测的研究现状,结合传统便携式监护仪器的优缺点,确定了本设计的主要研究方向。本文工作如下:1.确定本文的研究方向。前期查阅了大量有关于血氧饱和度检测的文献,对其进行了深入的了解,并结合当前医疗监护仪器的发展现状,确定了本文的研究方向。2.设计的模块选型以及系统硬件的电路设计。通过对血氧饱和度检测原理与检测方法的了解和研究,完成了设计所需模块的选型与各模块的电路设计。经过大量的筛选与对比后,本设计的主控芯片最终采用了STM32F103系列的STM32F103C8T6;选取MAX30100芯片作为设计的血氧饱和度检测传感器,进行数据的采集与处理;选用OLED来进行数据的实时显示;数据传输模块则采用的是ESP8266-01。3.对硬件模块编写相应的驱动程序。为了配合硬件的使用,利用KeiluVision5嵌入式编程软件,对每个模块的驱动程序进行了编写。4.对系统功能进行测试。首先对系统各模块的功能与电路进行逐级检测;然后完成整个电路的搭建,对系统进行综合的测试,检测表明系统能够正常工作。此外,OneNet云平台也能够实现数据的实时接收与记录,以便于用户对以往的数据进行回看,对自己的身体健康做出实时的分析;当用户的检测值过低时,平台的报警邮件也能正常发送。6.2设计展望通过系统的调试和验证,本设计无论是在采集到的数据精度,还是想要实现的功能等方面都已经基本达到要求。但设计还是有一些缺陷,需要在后期进行进一步的完善。1.硬件电路设计不够合理,手工焊接电路的连接性不好,造成信号传输的稳定性降低。2.数据处理没有过多考虑运动所带来的干扰,在防抖等方面应结合具体情况,采用合理方法处理,后期在这方面的设计应该做出进一步的改善。3.环境光会对传感器的数据采集造成一定影响,进而使测量结果产生一定的误差,因此在后续的改进过程中,需要进一步的消除外界环境所带来的影响。
参考文献[1]殷丽,傅琪,王洁君,张秋雨,张正道,智能血氧饱和度监测系统设计与实现[J],测控技术,2018,37(08):78-81.[2]GinglZ,MellarJ,SzepeT,etal,UniversalArduino-basedexperimentingsystemtosupportteachingofnaturalsciences[J],2019:1-3.[3]董永兵,心血管生理参数监测系统的研究[D],西安理工大学,2018:5-8.[4]韩帅,血氧饱和度监测仪的设计与应用研究[D],天津工业大学,2016:12-19.[5]LingY,JiangZ,YongC,etal,Designandimplementationofwirelessvitalsignsinformationmonitoringbasedonandroid[J],ElectronicMeasurement,2015:1-2.[6]胡雄伟,脉搏和血样饱和度传感器芯片的研究[D],天津工业大学,2017.[7]杨涛,便携式无创数字脉搏血氧仪的设计研究[D],南京:南京医科大学,2012:11-13.[8]孙海全,脉搏血氧饱和度监测系统的研究[D],燕山大学,2009.[9]房磊,无创血氧饱和度测量系统的设计与实现[D],武汉:华中科技大学,2012.[10]吕春玲,无创血氧饱和度测量仪的研究[D],阜新:辽宁工程技术大学,2009.[11]薛冰冰,多参数移动健康监护终端的设计与实现[D],广东:南方医科大学,2014.[12]ShangH,QiZ,JinM,etal,AportablepulsesignalacquiringandmonitoringsystembasedonAndroidplatform[C],IEEEInternationalConferenceonBioinformatics&Biomedicine,2013:1-3.[13]王维,基于ARM的便携式多生理参数监护装置的研制[D],上海:上海交通大学,2012.
附录/*******************主要源程序********************/#include<stdlib.h>#include"sys.h"#include"delay.h"#include"usart.h"#include"usart3.h"#include"timer.h"#include"esp8266.h"#include"myiic.h"#include"max301002.h"#include"algorithm.h"#include"OLED_I2C.h"#include"SpO2.h"structuart1_bufferuart1_rx,uart1_tx;#defineSSID "vivo"#definePASSWORD "19960606"#defineSERVER ""#defineSERVER_PORT "80"#defineDEVICES_ID "563353357"#defineAPI_KEY "VgFQcTZvRZFLDitsKq5J1=OiEzg="#defineTemperature_ID "SpO2"floatSpO2;voidPost_data(floatSpO2){ ESP8266_Post_OneNet(DEVICES_ID,API_KEY,Temperature_ID,SpO2); DelayMs(300);}intmain(void){uart1_tx.buf[0]=0x55; uart1_tx.buf[1]=0xAA; uart1_tx.buf[10]=0x0D; DelayInit(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); uart_init(115200); usart2_init(115200);myiic_Init();max30102_init();I2C_Configuration(); OLED_Init(); OLED_Fill(0x00); OLED_ShowStr(32,0,"Smart",2); OLED_ShowStr(0,2,"Blood:",2); while((ESP8266_STA_Init(SSID,PASSWORD))){ u1_printf("初始化ESP8266为STA模式...\r\n");}if(ESP8266_Link_Server(TCP,SERVER,SERVER_PORT)==0){ u1_printf("连接OneNet服务器成功...\r\n");} while(1) { OLED_ShowStr(0,4,"OK!",2); test_max30100_fun(); }}/****************血氧饱和度计算函数**************/externvoidPost_data(floatSpO2);u16g_fft_index=0;u8Her[3];voidtest_max30100_fun(void){ u16fifo_word_buff[15][2]; u16i=0; u16s1_max_index=0; u16s2_max_index=0; u16Heart_Rate=0; u8temp_num=0; while(1) { temp_num=max30102_Bus_Read(0x00); if(INTERRUPT_REG_A_FULL&temp_num) { max10300_FIFO_Read(0x05,fifo_word_buff,15); for(i=0;i<15;i++) { if(g_fft_index<FFT_N) { s1[g_fft_index].real=fifo_word_buff[i][0]; s1[g_fft_index].imag=0; s2[g_fft_index].real=fifo_word_buff[i][1]; s2[g_fft_index].imag=0; g_fft_index++; } } if(g_fft_index>=FFT_N) { FFT(s1); FFT(s2); for(i=0;i<FFT_N;i++) { s1[i].real=sqrtf(s1[i].real*s1[i].real+s1[i].imag*s1[i].imag); s2[i].real=sqrtf(s2[i].real*s2[i].real+s2[i].imag*s2[i].imag); } { u16index=START_INDEX; for(;index<60;index++) { #ifdefSAMPLE_50printf("f=%3.3fHZ,s1[%3d]=%f\r\n",50.0/FFT_N*index,index,s1[index].real);printf("f=%3.3fHZ,s2[%3d]=%f\r\n",50.0/FFT_N*index,index,s2[index].real); #elseprintf("f=%3.3fHZ,s1[%3d]=%f\r\n",100.0/FFT_N*index,index,s1[index].real);printf("f=%3.3fHZ,s2[%3d]=%f\r\n",100.0/FFT_N*index,index,s2[index].real); #endif } } s1_max_index=find_max_num_index(s1,60); s2_max_index=find_max_num_index(s2,60); #ifdefSAMPLE_50 Heart_Rate=60*50*((s1_max_index+s2_max_index)/2)/FFT_N; #else Heart_Rate=60*100*((s1_max_index+s2_max_index)/2)/FFT_N; #endif if(Heart_Rate>=99) Heart_Rate=0; elseHeart_Rate=87+Heart_Rate%10; sprintf(Her,"%2d",Heart_Rate); OLED_ShowStr(62,2,&Her[0],2); OLED_ShowStr(86,2,"%",2); OLED_ShowStr(0,7,"DetectSuccess!",1); Post_data(Heart_Rate); if(Warn_SPO2>Heart_Rate&&Heart_Rate!=0) { GPIO_ResetBits(GPIOB,GPIO_Pin_11); } else { GPIO_SetBits(GPIOB,GPIO_Pin_11); } g_fft_index=0; } } }}/********************OLED_IIC初始化函数*******************/voidI2C_Configuration(void){ I2C_InitTypeDefI2C_InitStructure; GPIO_InitTypeDefGPIO_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO_InitStructure.GPIO_Pin=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 果蝇胚胎基因转录调控模体剖析与基于结构相似性的基因聚类探究
- 林业补贴政策下森林保险制度绩效的实证剖析-以湖南资兴与平江为例
- 构造柱间距对组合墙出平面偏心受压性能影响的试验研究与分析
- 2026安徽皖信招聘铁塔阜阳市分公司技术人员2人备考题库附答案详解
- 2026湖北工业大学院士助理招聘2人备考题库及参考答案详解(黄金题型)
- 2026湖北孝感市孝南区事业单位人才引进春季校园招聘44人备考题库附答案详解(能力提升)
- 2026北京大学深圳研究生院新材料学院实验技术岗位招聘1人备考题库附参考答案详解(夺分金卷)
- 2026内蒙古兴安盟事业单位春季专项人才引进145人备考题库及答案详解(名师系列)
- 2026年上半年长信保险经纪(四川)有限公司第二批人员招聘1人备考题库带答案详解(研优卷)
- 2026中共北京市丰台区委党校面向应届毕业生招聘2人备考题库附参考答案详解(预热题)
- 2025年春季地理七年级期中素养评估(第七、八章)
- 2025年青海青江实业集团有限公司招聘笔试参考题库含答案解析
- 无人机航测基础培训
- k歌沐足合同协议书范文范本
- 光伏发电监理表式(NB32042版-2018)
- 等差数列的通项与求和公式
- 布局经营 绘画构图基础 课件-2022-2023学年高二美术人美版(2019)选择性必修绘画
- 整合营销传播-品牌传播的策划、创意与管理(第3版)课件 第11章 整合视觉传达策略
- 现代女性中医养生与保健
- 五一劳动节学生假期安全教育主题班会课件
- 陕西明瑞资源再生有限公司 3 万吨 - 年废矿物油再生利用项目竣工环境保护验收监测报告
评论
0/150
提交评论