




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于STM32F103芯片和MAX30100传感器的血氧饱和度检测器摘要 1 11.1课题研究的意义 11.2国内外研究现状 21.2.1血氧饱和度检测系统国外研究概述 21.2.2血氧饱和度检测系统国内研究概述 21.3本文主要研究内容 3第2章血氧饱和度检测的相关理论 42.1血氧饱和度检测方法 42.2血氧饱和度检测原理 42.2.1血氧饱和度简介 42.2.2检测原理 5第3章血氧饱和度检测系统硬件设计 63.1血氧饱和度检测系统硬件总体设计方案 63.2主控芯片 73.2.1主控芯片选择 73.2.2STM32F103系列单片机的优点 73.2.3主控芯片电路设计 73.3血氧饱和度传感器 83.3.1血氧饱和度传感器选型 83.3.2血氧饱和度传感器简介 93.3.3传感器外围电路设计 3.4显示模块 3.4.1显示模块的选择 3.4.2显示模块电路设计 3.5通信模块 3.5.1通信模块选择 3.5.2模块简介 3.5.3通信模块电路设计 第4章血氧饱和度检测系统软件设计 4.1开发环境简介 4.2软件设计流程 4.2.1系统主程序设计 4.2.2传感器模块程序设计 4.2.3OLED显示模块程序设计 4.2.4通讯模块程序设计 第5章系统功能测试 5.1系统调试 5.2系统功能验证 第6章总结与讨论 6.2设计展望 摘要结合当前医疗监护仪器的发展现状,以及传统便携式监护仪器的优缺点。本文将以人体血氧饱和度作为研究对象,设计了一款能够实时监测人体血氧饱和度的便携式健康传感器对信号进行采集,将得到的模拟信号进行处理、转换、滤波,并发送到主控芯片进行血氧饱和度值的计算,利用其内部的存储控制器以及OLED显示器等资源实现数据的实时显示,同时使用ESP8266WIFI模块将数据传输到OneNet云平台,进行实时的数据记录。用户可通过网页版OneNet或者OneNet对应的手机APP进行登录,实时查看数据分析,对自身的身体状况做出预判。当上传到平台的数据低于所设定的阈值时,平台会对用户发出报警,以邮件的形式提醒用户进行及时调整或者就医,改善身体状况。最后通过综合调试,本设计完成了对人体血氧饱和度的实时检测,实现了数据的实时上传和报警功能,达到了本设计的预期目的。伴随着社会不断的发展和进步,各种各样的慢性病不断涌现,能够随时进行自我检测的各类医疗监护检测仪器,已经成为自我诊断和治疗不可或缺的工具。其主要功能是诊断人体的各项身体参数,对疾病进行预防和控制。其中,血氧饱和度的健康参数在衡量我们身体各项健康指标中占据着非常重要的地位。人体生命和其所有生理活动都离不开氧的支持,所以氧是人体生命至关重要的物质。人体缺氧会使器官功能下降,严重时会对身体健康以及生命造成不小的伤害。例如血液中氧气含量的降低,会导致人们疲劳、思维变慢、注意力降低、记忆力减退。长期或严重的缺氧更会增加慢性低血氧症、肺心病、低血糖等一系列疾病的患病概率,尤其1.2国内外研究现状早在20世纪以前,很多国外的学者就已经开始研究有关于血氧饱和度的采集和处在国外,最早对于血氧饱和度检测系统的研究可以追溯到十九世纪,开始于朗伯-比尔定律的提出。早在1929年,美国生理学家GlenMillian研究了血氧饱和度的测量较为复杂,测量结果也不够准确,因此没有得到实际的应用;直到1964年,同样是美国的外科医生ShawR,研制出一种可以避免繁琐仪器调整过程的八波长自调节脉搏血这些缺点极大程度上影响了它的普及;1972年,日本科学家Aoyagi提出了用搏动式的红外光穿过测量部位的动脉血管,根据氧合血红蛋白和脱氧测仪N-100,成为了现代血氧饱和度检测仪设计的一种标准。从这以后,依据这种标准比尔定律进行了修正,成功的利用修正后的朗伯-比尔定律研制了一种基于反射式检测在国内,虽然对于这项技术的研究还比较落后,但依旧有许多大学和科研机构对这项技术进行了深入的研究,并且取得了显著的成果。例如中国航天工业总公司的第十三研究所研究出的无创伤脉率血氧饱和度监护仪,这款监护仪在抗干扰等方面有了新的提高,但是精度方面还是略显不足;厦门大学的团队设计了一种主控为PIC单片机的脉搏血氧检测仪,很好的控制了噪声干扰等问题,但是由于体积偏大,便携性较差。综上,虽然我国在血氧饱和度检测系统的功能研发上发展迅速,但还是会在受到各种外界干扰时,对系统的性能产生影响。譬如在运动时抖动会导致测量结果准确性较低。此外,中高端产品的价格、耗能较高。因此,在提高精度、消除干扰、提高稳定性、降低耗能、减少成本,缩小体积等方面还有待进一步的提升。本设计结合传统便携式医疗监护设备,旨在研发一种精度高、低成本、低耗能、能够实时监测的便携式血氧饱和度医疗监护仪器。下面将对本文的主要研究内容进行详细通过血氧传感器MAX30100获取用于计算血氧饱和度的光信号,并且利用芯片内部的转换器将光信号转化为电信号,这些电信号经过处理、转化、滤波后传输给主控芯片;然后运用主控芯片来完成血氧饱和度值的计算;最后经由OLED显示模块将测量数据进行实时显示,并且利用ESP8266WIFI模块将检测数据实时传输到OneNet物联网云平台进行记录与实时监测。利用OneNet手机APP或者网页版OneNet云平台进行数据的记录,用户能够随时查看过往的检测数据,对用户自身的身体状况做出预判。如果当上传到平台的数据低于所设定的阈值时,平台会以邮件报警的形式告知用户。通过与标准血氧仪的对比验证,本设计所测得的数据精度基本达到ISO医学血氧饱和度检测仪的标准。第2章血氧饱和度检测的相关理论血氧饱和度检测的方法分为电化学法和光化学法,即有创和无创两种方法。早期的血氧饱和度检测大都是采用电化学法。这种方法需要先采集血液,然后利用血气分析仪对采集到的血液进行电化学分析,然后计算血氧饱和度的值。尽管这种检测方法得到的结果比较精准,但是会给被检测者造成创伤。而且这种方法操作繁琐、耗费时间,不能实时检测。因此,目前在临床治疗上这种方法已经很少被使用。目前,应用最广泛的血氧饱和度测量方法是光化学法。这种检测方式主要是以朗伯-比尔定律为基础,运用光谱学的方法对生物组织进行无损害检测。这种测量方式操作简单,不会给检测者带来伤害,同时还能进行实时、连续的检测。这种方法目前在临床治疗上已经大量普及。通常依据朗伯-比尔定律来进行的血氧饱和度测量,按照使用的传感器类型又可以分为透射式和反射式。当光源与光电检测器位于人体组织的同一侧时为反射式;当光源与光电检测器位于人体组织两侧时为透射式。两种方式的结构图如图2-1所示。透射式的传感器主要应用于临床的监护,目前这种设备的应用也比较广泛,但是在测量过程中会受到测量部位的限制。反之,反射式的传感器则不会受到这种限制,反而在某些特定的场合得到了大量的普及。本设计所应用的就是反射式血氧饱和度测量的方2.2.1血氧饱和度简介血氧饱和度(SpO₂)是血液中被氧气结合的氧合血红蛋白(HbO₂)的容量占全部可结合的血红蛋白(Hb)容量的百分比,即血液中血氧的浓度,它是呼吸循环的重要生理参数。血氧饱和度(SpO₂)的表达式如式(2.1):人体的新陈代谢过程是生物氧化过程,而新陈代谢过程中所需要的氧,是通过呼吸系统进入人体血液,与血液红细胞中的血红蛋白结合成氧合血红蛋白,在输送到人体各部分组织细胞中去。为了使血液循环和呼吸系统正常运行,常用血氧饱和度来判断人体中血氧含量。血氧饱和度在人体的呼吸循环中起到了非常重要的作用,血液携带输送氧气的能力即用血氧饱和度来衡量,并且可以估计肺的氧合血红蛋白的携氧能力。2.2.2检测原理当检测血氧饱和度时,主要依据人体动脉血吸收入射光的量会随动脉血管收缩或扩张的变化而变化的原理。在血氧饱和度检测时,血管的脉动会影响血液对光的吸收度,这种变化就是交流量。同时像皮肤、肌肉等对入射光吸收的比例基本是恒定的,受到外界的干扰也会很小,这种变化称为直流量。朗伯-比尔定律即,物质在一定波长处所吸收光的量与照射物质的光强度无关,而是与物质的浓度和吸光层的厚度相关。在相同光程的照射下,厚度相同的每一层介质,它们所吸收光的比例相同。从朗伯-比尔定律可知,人体血液中的氧含量越充沛,则吸收入射光容量就越多;而相反血液中的氧含量越稀少,则吸收入射光容量就会相应减少。因此,只需选择合适波长的光,就可通过测量吸光度求得物质的浓度。朗伯-比尔定律如式(2.2)。式中I0为单色光的强度;C为介质的浓度;I为通过样品后的透射光强度;A为吸光度;d为光程,即介质的厚度;k为光被吸收的比例系数,与介质的浓度无关;T为透射比,即透射光强度与入射光强度的比值。公式说明光在人体介质的传输过程中,其吸光度只与光吸收比例系数、人体介质浓度和其光程成正比例关系。第3章血氧饱和度检测系统硬件设计本设计的硬件部分由主控模块、血氧传感器、OLED显示模块、通信模块等组成。本设计使用的是模块化设计,这样可以使系统更加简洁,操作变得更为简单,通过显示器就可以直观的读出测量所得到的数据。此外,该系统采用USB数据线与电脑USB接口直接相连的供电的方式。在目前,普遍都使用USB接口供电,这样既提高了电源的可靠性,并且也能够通过手机充电器供电,给用户的使用带来了便利。图3-1为本设计的整体电路设计。气气UDCccSNDPAIUSART2RTSADC_NI/TPA4SPINSSLSART2CKADC_NPA6/SPIIMSOADC_N6/TPA7SPIMOSLADC_N7/TLMPA8LSARTICKTIMIPAl0LSARTIRXTMI_CH3PA1IUSARTICTSCANRXUSBDMTMICH4PA12USARTI_RTSCANTXUSBDPTMIEPBI/DC2SDAUSART3.RXPA14/JTCKSWCLKPB13SP2SCKUSART3_CTSTMI_CHINPASJTDPB14SP2MSOUSART3RTSTIMICH2NSCOUPDI)NST992324M244s488吉系统的首要前提是采集到精确的血氧饱和度参数,通过精确的数据来有效地监测用户的身体状况。因此,在器件的选择、电路的设计过程中,每一个步骤都是至关重要的,每一个细节都可能是导致失败的原因。以下将对各个模块的选型、功能以及硬件电路设计做出详细的阐述和解释。3.2主控芯片1.片上集成了从256K-512K字节的FLASH和64KB的SRAM程序运行空间,可以保证2.多达13个通信接口,保证单片机可以和不同类型通信协议接口的器件进行通信,3.12个通道的DMA控制器,能满足ADC、USART、SPI、IIC、USB2.0和SDIO等外设的数据传输,可以节省CPU资源,提高数据的传输效率。4.片上集成多个12位精度的ADC,每个ADC含有21个外部通道,每个通道都能够和复位电路。STM32的时钟可以由内部的晶振提供,也可以外接时钟电路。其中PAO-WKUPUSART2CTSADC_NOTDPAl/USART2_RTS/ADC_NLTPA2USART2_TXADC_N2/TN2PA3/USART2_RXADC_N3/DDPA4SPII_NSSUSART2_CKADPA5SPI_NSO/ADC_NSTNGPA11USARTI_CTSCANRXUSBDNTMPA12USARTI_RTSCANTXUSBDP/TNIPB13/SPI2_sCKUSART3_CTSTNI_PB14SPI2_MSOUSART3_RTSTNI_4PB⁷12CL_SDATD4_CH2 NRST94561由上图可以看出STM32F103C8T6含有48个引脚,并且每个引脚对应着相应的功能复位电路如图3-4所示,只要几个简单的电容组合在一起就可以构成复位电路,实外光LED)、光检测器和带有环境光抑制的低噪声模拟信号处理器。它的实物如图3-53.3.2血氧饱和度传感器简介MAX30100芯片内部电路的供电采用1.8V,芯片上的LED则需要3.3V电源电压。芯片测量血氧饱和度的工作原理是通过内部预先设置好LED驱动器的时序,驱动芯片上的LED交替扫描检测部位。该芯片的通信方式是IIC通信,将采集到的信号通过IIC传输到主控芯片进行计算。此外,该芯片的断电还可以通过软件来实现,待机时消耗的电流仅为0.7uA,是目前业内功耗较低的血氧饱和度检测芯片。该传感器芯片也被大量应用在三星、苹果等品牌手机中。MAX30100传感器管脚分布如图3-6所示,各管脚功能如表3-1所示。管脚名管脚功能电源输入1.8V-3.3VIRLED阴极与LED驱动连接点RedLED阴极与LED驱动连接点信号采集信号与处理数据是否达标?Y计算血氧饱和度OLED显示数据上传4.2.2传感器模块程序设计本文选用的传感器上有两个集成的光源和一个光电探测器。首先对传感器模块的内部时钟以及端口进行初始化;然后通过内部预先设置的LED驱动器时序,来驱动芯片上的LED交替扫描检测部位,测得的光信号经过芯片内部的模数转换和放大滤波处理后,转换为数字量。将测量到的数据存储到芯片内部的FIFO寄存器中,然后对IIC接口进行初始化,进行数据的读取与传输。芯片的工作原理如图4-2所示。在血氧模式下,IIC命令设置为{2:0},只有当FIFO寄存器存满的时候,才会产生中断,但是这时会留一个空间给FIFO寄存器产生中断。只有寄存器的数据被读取时,中断才会离开。ADcINTRED+/R左FIFO寄存器环境光清除REDIR4.2.3OLED显示模块程序设计本设计选取的OLED显示模块使用IIC总线进行数据传输。数据传输时会使用IIC的串行时钟线(SCL)和串行数据线(SDA)。显示模块的程序设计中,首先需要对模块的系统进行初始化;然后对模块的显示区间进行程序编写;最后对数据的显示程序进行编写。显示模块程序设计如图4-3所示。OLED初始化设置显示区间4.2.4通讯模块程序设计开始首先对通讯模块ESP8266-01进行模块内部、时钟及端口的初始化;第二步,进行模块的参数配置;第三步,在参数配置好之后,WIFI模块开始进行连接请求;第四步,如果连接成功,则需要等待串口数据;最后将ESP8266介入到TCP服务端,进行数据的传输。通讯模块程序设计如图4-4所示。图4-4通讯模块流程图第5章系统功能测试对系统进行调试的目的是为了发现设计过程中的错误并且进行及时的改正,确保系统能够达到预想的要求。调试阶段是整个系统设计的最后环节,也是最关键的一个环节。本设计使用的模块有主控模块、传感器模块、显示模块和通讯模块。为提高系统调试的效率,本文的调试过程使用的是分块调试法。这种方法可以缩小电路故障发生的范围,能够及时的对故障进行改正,使解决问题变得更加容易。首先调试的是系统的主控芯片,检测系统的输出电路是否正常;然后对血氧饱和度检测传感器进行调试,验证传感器能否正常进行数据采集;然后对OLED显示模块的电路进行调试,观测OLED模块能否正常的显示检测结果;最后对通信模块进行调试,检测数据是否能够实时上传。在整个测试过程中对各个模块的功能进行逐级检测,最后如果系统各个模块都可以正常工作,将程序下载到系统中进行综合的调试,检测程序在编写的过程中所出现的错误,并进行及时的改正。完成整个设计的电路搭建后,将程序下载到主控芯片的最小系统里,对整个系统进行综合的测试,验证是否能够达到预期的设计效果。首先将检测部位放到传感器上,通过传感器进行信号采集,芯片内部会对信号进行模数转换,然后进行数字滤波,通过IIC通信上传到主控芯片进行血氧饱和度值的计算;最后主控芯片控制显示模块对数据进行实时显示,同时通讯模块也能正常将数据传输到OneNet云平台。当上传平台的数据小于所设定的阈值时,平台会以邮件的形式对用户做出报警。当上面一系列步骤都能正常工作时,说明设计达到了预期的目的。本设计正常工作实物图如图5-1所示,系统数据采集如图5-2所示:四二旧需二器二&N&志88&&图5-1硬件工作实物图第6章总结与讨论与各模块的电路设计。经过大量的筛选与对比后,本设计的主控芯片最终采用了STM32F103系列的STM32F103C8为了配合硬件的使用,利用KeiluVision5嵌入式编程软件,对每个模块的驱动程进行综合的测试,检测表明系统能够正常工作。此外,参考文献[2]GinglZ,MellarJ,Szepetosupportteachingofnaturalsciences[J],2019:1-3.[5]LingY,JiangZ,YongC,etal,Designinformationmonitoringbasedonandroid[J],ElectronicMeasurement,2015:1-2.[12]ShangH,QiZ,JinM,etal,AporBioinformatics&Biomedicine,2013:1-3./*******************主要源程序**********structuart1_bufferuart1_rx,uart1_tx;#definePASSWORD{ESP8266_Post_OneNet(DEVICES_ID,API_KEY,Temperature丁丁{uart1_tx.buf[10]=0xNVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);while(ESP8266_STA_Init(SSID,PASSWO{}if(ESP8266_Link_Server(TCP,SERVER,SERV丁{」丁/****************血氧饱和度计算函数****voidtest_max30100_fun(voi{u8temp_num=0;{temp_num=max30102_Bus_Read(0x00);if(INTERRUPT_REG_A_FUL{max10300_FIFO_Read(Ox05,fifo_word_buff{{s1[g_fft_index].real=fifo_ws2[g_fft_index].real=fifo_w}丁{{s1[i].real=sqrtf(s1[i].real*s1[i].real+s1[i]s2[i].real=sqrtf(s2[i].real*s2[i].real+s2[i]丁丁{{#ifdefSAMPLE_50printf("f=%3.3fHZ,s1[%3d]=%f\r\n",50.0/FFT_N*index,index,sl[index].rprintf("f=%3.3fHZ,s2[%3d]=%f\r\n",50.0/FFT_N*index,index,s2[index].rprintf("f=%3.3fHZ,s1[%3d]=%f\r\n",100.0/FFT_N*index,index,sl[index].rprintf("f=%3.3fHZ,s2[%3d]=%f\r\n",100.0/FFT_N*index,index,s2[index].r#endif}}s1_max_index=find_max_num_ins2_max_index=find_max_n#ifdefSAMPLE_50Heart_Rate=60*50*((s1_max_index+s2_max_indeHeart_Rate=60*100*((s1_max_index+s2_max_index)/2)/FFT_N;#endifif(Heart_Rate>=99)elseHeart_Rate=87+HeOLED_ShowStr(0,7,"Detectif(Warn_SPO2>Heart_Rate&&Hea{}{}}}}voidI2C_Configuration({I2C_InitTypeDefI2C_InitStructure;GPIO_InitTypeDefGPIO_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIGPIO_InitStructure.GPIO_Pin=GPIO_Pin_GPIO_InitStructure.GPIO_Speed=GPIO_SpeeGPIO_InitStructure.GPIO_Mode=GPIGPIO_Init(GPIOB,&GPIO_IniI2C_InitStructure.I2C_Mode=I2CI2C_InitStructure.I2C_DutyCycle=I2C_DutyCycle_2;I2C_Ini
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内蒙古美术职业学院《医学免疫学与微生物学》2023-2024学年第二学期期末试卷
- 广东省深圳市福田区耀华实验学校华文部2025年高三下学期第三次(5月)月考数学试题试卷含解析
- 成都锦城学院《星火燎原-长沙红色文化》2023-2024学年第二学期期末试卷
- 黑龙江科技大学《数据通信实训》2023-2024学年第二学期期末试卷
- 常熟理工学院《搜索引擎优化》2023-2024学年第二学期期末试卷
- 广州大学《管理信息系统课程设计》2023-2024学年第二学期期末试卷
- 锡林郭勒市重点中学2025年高三第二次诊断性检测试题数学试题文试卷含解析
- 重庆市合川市2025届小升初考试数学试卷含解析
- 辽宁省瓦房店市2025届高三毕业班摸底考试英语试题含解析
- 电子科技大学中山学院《素描速写》2023-2024学年第二学期期末试卷
- 第2课+古代希腊罗马【中职专用】《世界历史》(高教版2023基础模块)
- 电动葫芦检查项目内容及判定标准
- JTGT F81-01-2004 公路工程基桩动测技术规程
- 出入境知识讲座
- 设计服务项目应急预案
- 义务教育科学课程标准(2022年版)解读
- 大单元教学设计 统编版四年级下册道德与法治 第四单元备课教案
- 运动损伤处理中的抗痛药物选择
- 【可行性报告】2023年水利信息化相关项目可行性研究报告
- 物料承认流程
- 第二章1:公文写作的构成要素
评论
0/150
提交评论