【《基于STM32的健康监测手环的硬件和软件系统设计案例》5300字(论文)】_第1页
【《基于STM32的健康监测手环的硬件和软件系统设计案例》5300字(论文)】_第2页
【《基于STM32的健康监测手环的硬件和软件系统设计案例》5300字(论文)】_第3页
【《基于STM32的健康监测手环的硬件和软件系统设计案例》5300字(论文)】_第4页
【《基于STM32的健康监测手环的硬件和软件系统设计案例》5300字(论文)】_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

基于STM32的健康监测手环的硬件和软件系统设计案例目录TOC\o"1-3"\h\u21893基于STM32的健康监测手环的硬件和软件系统设计案例 1304551手环硬件设计 2274391.1手环硬件总体设计 242351.2主控模块硬件设计 2141741.3RTC时钟模块硬件设计 3264611.4体温测量模块硬件设计 4282701.5心率监测模块硬件设计 5181161.6姿态感知模块硬件设计 574451.7显示模块硬件设计 6174921.8数据通讯模块硬件设计 7141901.9按键设置模块硬件设计 7115972手环软件设计 82832.1手环软件开发环境介绍 8155182.2手环软件总体设计 881302.3体温测量程序设计 9179202.4心率监测程序设计 10292372.5数据通讯程序设计 1099762.6按键设置程序设计 11230352.7姿态感知程序设计 1253042.7.1加速度传感器读取 12210252.7.2摔倒状态监测程序设计 13220722.7.3运动量监测程序设计 141手环硬件设计1.1手环硬件总体设计本设计的硬件主要包含主控模块、RTC时钟模块、体温测量模块、心率监测模块、姿态感知模块、显示模块、数据通讯模块、按键设置模块。初始化硬件系统后,系统主控模块控制数据通讯模块进行无线通信,建立连接。设计体温测量模块对老年人的体温进行实时测量,并将数据传输至中控模块进行数据预处理;设计运动状态感知模块对使用者姿态进行感知,当使用者摔倒时,将姿态异常发送给通讯模块模块;设计心率监测模块,通过内部时钟定时器中断对使用者心率数据进行实时采集;设计通讯模块将主控模块预处理后的数据运用LoRa通讯协议,由内部时钟定时器进行中断发送至接收端。按键设置模块通过按键实现中断对日期、显示界面、步数进行设置。手环硬件总体设计如图3-1所示。图3-1手环硬件总体设计框图Fig.3-1BandsOverallDesignDiagram1.2主控模块硬件设计本系统主控模块控制芯片采用STM32F103系列微控制器,最大支持具有512K容量flash,适合高级的集成电路开发。且其不需要外部挂载定时器,可满足本项目各项功能开发。根据功能需求,减少系统功耗及成本,选用STM32F103C8T6芯片作为主控,供电电压只需1.0-1.6V[5],便携设备的供电系统能够支持其正常运行。主控模块中除微控制芯片外,还需要复位电路、晶振电路等组成完整的控制系统,故设计选用本次设计选型用LQPF44封装的STM32F103C8T6最小系统模块为主控,STM32F103C8T6最小系统模块的引管脚如图3-2所示,运用单片机编程技术,可实现对其他各系统模块的控制与采集数据的处理。图3-2STM32F103C8T6最小系统模块的引管脚图Fig3-2PipePinDiagramofSTM32F103C8T6MinimumSystemModule1.3RTC时钟模块硬件设计为实现手环日期、时间显示功能设计RTC时钟模块,由于本设计选用的主控芯片STM32F103C8T6具备内部RTC时钟功能,但是产品需要实现实时时钟功能,就要具备时钟掉电走时特性,要完成主控芯片掉电走时是在STM32的后备寄存器进行处理[6],则在STM32的VBAT引脚加上一个纽扣电池。如下图3-3所示为本次设计的RTC时钟电路设计图,当系统上电时,1.3V电源经由D1IN4148二极管,由于二极管具有单向导电性,该二极管导通,STM32的VBAT脚通电,T1为纽扣电池,此时经由D2二极管,由于D1的作用,此时D2处于截止状态,故而系统上电时VBAT由系统供电;当系统断电时,D1二极管处于未工作状态,D2二极管处于导通状态,通电至VBAT脚,此时VBAT由纽扣电池T1供电;由此不管系统断电还是通电VBAT脚始终处于通电状态,故而达到保持掉电走时的功能[7]。图3-3RTC时钟电路设计图Fig3-3RTCclockcircuitdesign1.4体温测量模块硬件设计体温测量模块需要对老人体温进行实时感知,选用适当的温度传感器尤为重要。在传统的测温方式选择中,通常选用热敏电阻或数字温度芯片等对温度进行测量,在本项目中如采用热敏电阻温度传感器通过其感温效应对温度进行测量,因其输出为模拟信号,需经过A/D转换才能实现对计算机的数据传输,为了提高精度需增加放大电路等,会使产品内部结构更加复杂,数据链路冗长,导致手环体积,能耗等参数难以满足设计需要。故选用数字温度芯片DS18B20,测量温度后直接输出数字信号,并采用单总线数据传输方式,可直接被主控模块控制并对数据进行处理,避免了需额外设计外部电路的问题。因其各项性能稳定,可测量0至100摄氏度,且温度误差小于0.05摄氏度,可满足各极端场景下的老人体温测量[8]。数字温度传感器芯片DS18B20具有3个引脚,设计中采用DS18B20采集温度,并与主控模块相连,通过主控模块中的STM32单片机的I/O串口读取数字温度传感器DS18B20获取的数据,并转换为实际的温度值。数字温度传感器DS18B20是以“单总线”的方式驱动,一根数据线既是输出也是输入[9]。主控模块中的STM32单片机通过PA6串口与DS18B20数据线连接,同时数据脚需要一个10K电阻上拉,如上图R1选用10K电阻上拉到1.3V。下图3-4为体温测量模块硬件设计电路连接图。图3-4体温测量模块模块电路设计图Fig3-4Circuitdesignoftemperaturesensormodule1.5心率监测模块硬件设计心率监测模块选用pulsesensor反射式红外心率传感器,该模块内部集成了信号放大电路、路滤波电路等,输出波形也很好,获得的数据更为准确。而通常用于医疗心率监测的透射型光电式传感器,透射型是指由光电传感器的上端的红外发射二极管发出红外光线,由于红外线穿透能力强,进过手指透射进过血液循环,由于血液随心跳的流动具有舒张和收缩作用导致不同的变化,手指内的血液浓度从而跳动,在跳动时,底部的红外接收二极管接收到信号,从而产生不同的光电信号[10]。但透射型光电传感器只能用于测量手指处采集心率数据,如应用于手环会造成使用不便的问题,对比之下选择pulsesensor反射式红外心率传感器,可适用于身体多个部位测量,以满足手环正常使用方便的设计需求。设计中采用的PulseSensor心率传感器模块,该模块是一款光电式传感器,LED发光信号波长为515nm,模块可工作在1.3V,在进行正常工作时,检测的信号为光反射信号,进过模块内部放大、整形、滤波等处理,最终从输出脚输出模拟信号。由于本次设计采用STM32F103C8T6芯片为主控制,该芯片具有1个16通道的12位ADC模数转换器,可利用该A/D转换直接读取心率传感器的内部信号,将模拟量转换为数字量,最终通过心率算法计算出心率[11]。该心率传感器具有三个脚,VCC、GND、信号输出脚。如下图3-5中1脚信号输出脚接STM32F103C8T6的ADC引脚,PA0为STM32F103C8T6的ADC0通道0的转换脚,通过控制A/D转换寄存器从而实现心率采集。2脚接电源1.3V,1脚接GND进行电路设计。图3-5心率监测模块电路设计图Fig3-5Circuitdesignofsensormodule1.6姿态感知模块硬件设计姿态感知模块主要由AXL345数字加速度传感器组成,设计选用的ADXL345数字加速度传感器,其内部是经过容压变换器、增益放大器、滤波器和温度补偿后以电压输出的方式输出,最终通过内部芯片将模拟量读取,通过数字接口输出实际的数据。使用者在行走过程中身体自然上下活动;摔倒时身体会高速度的倾倒,设计程序对相关状态进行读取处理得到使用者当前运动姿态。ADXL345加速度传感器具有加速度测量精度高、元器件体积小的特点[12]。应用于手环产品中可实现对老人身体姿态的判断,从而监测老人是否摔倒及运动量步数的数据采集。本次设计采用的是CY-291ADXL345模块,该模块已经集成了ADXL345芯片的功能。如下图3-6为姿态感知模块电路设计图。图中P3为模块的接口引脚,模块一共有8个引脚,分别是GND、VCCC、CS、INT1、INT2、SDO、SDA、SCL。采用时钟中断计数,模块电源接5V。图3-6姿态感知模块电路设计图Fig3-6Circuitdesigndiagramofattitudesensingmodule1.7显示模块硬件设计本次采用低功耗的0.96寸OLED显示屏作为本次可穿戴设备的显示器,OLED即有机发光二极管(OrganicLight-EmittingDiode)。该OLED具有轻薄、低功耗的特点,在MP3播放器上被广泛应用。本次设计选取的显示屏应用于手环,应当选用低功耗类显示屏,故OLED12864满足显示模块的设计需求。该OLED具有多种驱动方式,常用的方式主要有SPI和IIC驱动,本次采用IIC接口的方式,IIC只需要两根数据线即可驱动显示,使用原理简单。显示模块电路设计如图3-7所示,VCC接电源1.3V供电,GND接地线,SCL接STM32F103C8T6的IICSCL脚PB6,SDA接STM32F103C8T6的IICSDA脚PB5。图3-7显示模块电路设计图Fig3-7Circuitdesigndiagramofdisplaymodule1.8数据通讯模块硬件设计相对于传统的通讯模块如Wifi、蓝牙通讯,LoRa通讯方式依靠其低频传输特性,对遮挡的穿透性更强。设计选用的LoRa通讯为SX1278射频芯片[13]。控制模块的STM32F103C8T6单片机的串口PA10(RXD)、PA9(TXD)分别接LoRa通讯模块的TXD、RXD,数据脚交叉连接。如下图3-8为数据通讯模块的电路设计图。图3-8数据通讯模块电路设计图Fig3-8Circuitdesigndiagramofdatacommunicationmodule1.9按键设置模块硬件设计本设计为实现时间调整、步数清除、界面切换功能等功能采用按键操作执行,下图中3-9为按键设置模块电路设计图,图中四个按键一端接公共端GND,另一端分别接单片机的I/O。三个按键接口分别接单片机的PB12、PB13、PB14、PB15引脚,当单片机的相应引脚检测到低电平时,说明该引脚被触发,从而实现相应的动作[14]。分别对应实现退出及设置、设置加、设置减、摔倒状态重置、页面切换等操作。图3-9按键设置模块电路设计图Fig3-9Circuitdesignofkeysettingmodule

2手环软件设计2.1手环软件开发环境介绍本次设计采用STM32为主控,软件以KEIL5MDK为开发平台,该开发平台特点众多,具有界面美观、使用效率高、实用性强等特点,且调试方便,是STM32开发的首选平台。2.2手环软件总体设计通过本章节根据电路原理以及设计要求写出软件程序,本设计的设计功能具体如下:(1)显示模块具备日期,时间等数据显示功能,实现全天候佩戴;(2)体温测量模块能够通过DS18B20温度传感器对老人体温进行实时监测;(3)心率监测模块能够通过PulseSensor心率传感器对老人的心率体征进行实时监控;(4)姿态感知模块能够利用ADXL345三轴加速度传感器通过算法,对老人是否摔倒进行感知,如使用者出现摔倒状态,则进行异常状态报告;(5)主控模块能够通过算法对获取的姿态数据进行处理,得到老人的步数,监测老人每日运动量;(6)当体征数据获取后,唤醒数据通讯模块将数据发送至接收端;手环软件流程框如图4-1所示图4-1手环软件流程框Fig4-1Bandssoftwareflowbox2.3体温测量程序设计设计体温测量程序使体温测量模块对使用者实现实时测温。硬件设计选用的测温传感器只需一个数据线的传感器温度测量,由于每一个传感器都具有内部ROM,同时具有唯一的ID号,程序中通过识别ID号来实现读取那一路温度[15],具体流程如下:首先提前写好读取传感器的ID的程序,读出ID显示,并将ID号记录下来,记录传感器的ID号后,并发送相应的ROM指令,就可以实现温度的读取了。体温测量程序流程如图4-2所示。图4-2体温测量程序流程图Fig4-2Flowchartoftemperaturemeasurementprocedure2.4心率监测程序设计设计心率监测程序实现对使用者体温的实时监测。程序首先对A/D定时器进行初始化启动,并通过内部时钟进行2ms中断,并在中断时采集数据并进行A/D转换,并通过相关心率算法得出实际心率数据[16],同时在OLED上显示出来。其流程图如下图4-3所示。图4-3心率监测模块流程图Fig4-3Flowchartofheartratemonitoringmodule2.5数据通讯程序设计本次设计采用的是LoRa通讯SX1278射频芯片,实现该养老辅助手环与服务器接收端的通信,利用LoRa接收模块与该设备相连,实现连接,连接后,手环主控模块单片机通过串口将数据发到LoRa通讯模块,LoRa通讯模块将数据透传至服务器接收端。首先需要配置单片机的串口相关寄存器,并设置接收端接收波特率为9600bps,这一部分为串口的初始化操作。接下通过程序内部定时器,定时时间为2秒,系统则每2秒发送一次步数、心率、体温、摔倒状态数据到LoRa通讯模块[17],从而发送到服务器接收端。数据通讯程序流程如图4-4所示。图4-4数据通讯程序流程图Fig4-4Flowchartofdatacommunicationprogram2.6按键设置程序设计按键设置程序在本系统中主要起到校准时间、手动清除步数、摔倒状态重置、切换界面等功能,在软件设计中,首先将STM32的相应I/O设置为上拉输入,上拉输入取决于电路硬件公共端接地线[18]。工作流程如下:首先在正常工作状态下,按下设置键,进入设置菜单界面,OLED显示时间、日期信息,通过设置加键、设置减键实现数据年月日、时分秒的设置。设置完成后最后按下设备键会进行保存,将设置好的数据写入RTC时钟后备寄存器[19]。2.7姿态感知程序设计2.7.1加速度传感器读取设计中姿态感知功能采用的是ADXL345加速度传感器模块实现三轴加速度数据的采集,通过IIC接口读取ADXL345的原始三轴加速度数据,IIC总线是一种标准总线接口,读取ADXL345采用IIC。以下为ADXL345读取三轴加速度数据的流程。首先进行初始化配置,初始化IIC,然后检测ADXL345是否存在,若存在则进入下一步。接下来进入循环读取数据,读取数据时,首先发送一个开始信号,发送器件地址等待响应,然后发送寄存器地址,再次等待响应,接着发送读器件指令,等待ADXL345响应输出数据,三轴加速度的数据都是16位数据,故而读取6次数据存在缓存区中,最

温馨提示

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

评论

0/150

提交评论