1 引言
随着人们健康意识的逐渐增强,户外运动越来越受到重视。然而运动量过强或不足都不能达到锻炼的目的,甚至会危害身体。这里介绍一种多功能实时生理参数监测仪的设计方法,该监测仪具有廉价、实用、便携,并有语音播报测量值及越限报警等多种功能。
2 总体结构与工作原理
该监测仪以凌阳16位单片机SPCE061A为控制核心,通过温度传感器、水银开关、压电陶瓷片获得人体温度、跑步者的步数及脉搏跳动情况,再由CPU实时计算测量值并将结果送至液晶显示器显示,同时进行语音播报。系统设有键盘、人工复位和自动上电复位及硬件看门狗电路。SPCE061A内部带有硬件乘法器功能,可方便地实现测量数据的记录、计算和语音播报功能。系统总体结构框图如图1所示。
3 硬件电路设计
3.1 体温测量模块
温度传感器采用DALLAS的DS18B20,该器件无需外部元件,通过数据线供电即可提供最高12位的温度读数,器件的温度信息经单线接口送入DS18B20或从DS18B20送出,从CPU到DS18B20仅需连接1条线。读、写和完成温度变换所需的电源由数据线本身提供,测量范围为-55℃~+125℃,增量值为0.
0625(以12位数值方式读出温度),在1s(典型值)内把温度变换为数字,具有用户可定义的非易失性温度告警设置。输出的温度数值由单片机的IOA15口读入,如图2所示。
经单线接口访问DS18B20的协议如下:
(1)初始化单线总线上的所有处理均从初始化序列开始。初始化序列包括:总线主机发出一个复位脉冲,接着从属器件送出存在脉冲,程序清单见初始化DS18B20子程序intInit_1820(void)。
(2)ROM操作命令一旦总线主机检测到从属器件便可发出,ROM操作命令,ROM操作命令均为8位长,程序见读DS18B20子程序unsignedintRead_1820_Byte(void)和写DS18B20子程序voidWrite_1820_Byte(unsignedintData)。
(3)存储器操作命令程序清单见读DS18B20子程序unsignedintRead_1820_Byte(void)和写DS18B20子程序voidWrite_1820_Byte(unsignedintData)。
(4)处理数据程序清单见温度转换子程序voidRead_Temp(unsignedint*Data)。温度测量程序如下:
3.2 心率测量模块
心率测量模块如图3所示。首先将人体的脉搏通过压电陶瓷片HTD27A-1转换为可处理的电信号,经高阻输入级隔离和电压放大级放大后将信号送入带通滤波器以滤除噪声及高次谐波,经集成运放放大及施密特触发器整形后再进入单片机外部中断EXT2进行计数,即可得出心率。
压电传感器的基本原理是利用压电材料的压电效应,一定的压力作用会使压电材料石英晶体的两个极板间产生一定的电压。沿石英晶体电轴方向施加作用力Fx时,在与电轴垂直的表面上将产生电荷:
式中,d11=2.31×10-12C/N,为石英晶体电轴方向受力压电系数。
压电传感器相当于一个以压电材料为介质的电容器:
式中,A为极板面积(m2),h为压电体厚度(m),ε为压电材料介电常数(F/m)。
采用石英晶体为压电材料,其相对介电常数为εr,而标准介电常数为ε0,则石英晶体的介电常数为ε=εrε0。设压电体两极板间(沿电轴方向)承受一个大气压的压力,则与电轴垂直的表面产生电荷qx=d11Fx=2.31×10-12×9.8×A,两极板间产生电压Ux=qx/C。压电陶瓷片产生的电压很小,因此在电压信号送至后级电路处理前必须经高阻输入级以尽量减少电荷泄放,确保获取电压信号的准确性。由于运算放大器通常具有极高的输入阻抗,采用运放实现高阻输入级,如图4所示。
据后级电路处理要求,要放大采集的电压信号。为滤除电压信号中的噪声信号,便于后级数字电路处理获得的信号,后端电路采用20~200Hz的带通滤波器进一步处理信号,经施密特触发器整形后再送入单片机计数,即可得到心率。
3.3 跑步步数测量模块
跑步步数测量电路如图5所示,图中EXT1为外部时钟源输入。跑步或走路时,手臂摆动,水银开关随之通断,通过单片机进行计数,再乘以步长,即可得到行走距离和速度。
数学模型得到预测公式,即可预测能量消耗量。系统根据性别、体重、身高、年龄等生理指标,采用Harris-Benedict预测公式计算能量损耗:
BEE(男)=(66.4730+13.7516W+5.0033H-6.7550A)×4.1840
BEE(女)=(655.0955+9.5634W+1.8496H-4.6756A)×4.1840
式中,BEE为基础能量消耗;W为体重(kg);H为身高(cm);A为年龄(岁)。
3.4 键盘显示单元
显示单元选用128×64字符点阵液晶模块SPLC501组件,由LCD显示器、LCD控制板和偏压产生电路组成。分4行显示当前体温值、心率、速度、行程等信息,如图6所示。
键盘模块主要用于设定初始值(包括体重、步长等)、报警值(心率、体温等)。KEY1键为确定/取消功能,KEY2键为上调功能,KEY3键为下调功能。光标闪烁为设定状态,当设定好后停止按键,5s后系统自动重新开始测量,液晶显示关闭以节省电能,为防止误按键,键盘锁定,按任意键,液晶显示打开,按KEY1键一下,再按KEY3键两下,再按KEY1键一下,键盘解锁,按KEY1键超过2s,进入初始值、报警值的设定。
4 软件设计
软件采用模块化设计方法,由主程序及键盘处理、数据采集、报警、语音和液晶显示5个子程序组成。图7为系统主程序流程。系统上电后首先初始化,然后进行各参数的测定、显示判断超量报警等操作,同时检测按键情况,若有按键按下,执行显示和语音播报等功能。此系统编译环境为unSPIDE2.6.2D,使用汇编语言与C语言混合编写,其中中断服务程序及液晶显示等相关底层程序由汇编语言编写,测量及语音播报等程序由C语言完成。键盘处理子程序通过定时器中断方式调用。参数输入采用菜单方式设定,包括步伐长度(计算行走速度及行程),体重、性别、身高、年龄(能量消耗计算),体温上下限,心率上下限,行程提醒等。当测得温度、心率超过上下限时报警;当测得行程达到行程提醒设定值时提醒。
5 结语
经实际测量表明,此设计方案具有低成本、低功耗、操作简单等特点。该测量仪可根据要求改变设定值,适于各年龄段人群的生理参数测量。随着人们对健康的关注,这种多功能便携式测试仪将会有更广阔的应用前景。本文的创新点在于集人体各种参数测量与安全报警功能为一体,液晶显示和语音播报相结合,非常人性化。