基于可编程片上系统的智能电子血压计设计
扫描二维码
随时随地手机看文章
对以往电子血压计的不足,介绍了一种基于可编程片上系统(SOPC)的智能电子血压计的设计,血压测量的方法采用基于充气过程的示波法。该系统采用Cyclone II系列低成本FPGA,并嵌NNIOS II软核作为核心处理器,可以完成自动测量血压、信息显示、数据存储、查看和删除历史数据等功能。由于采用了FPGA,从而简化了电路的设计,提高了系统的可靠性和稳定性,并且使系统具有较强的可扩展性,有利于系统的升级。
血压是反映心血管系统状态的重要生理参数,合适的血压是维持人体正常新陈代谢的必要条件。随着人民生活水平的不断提高以及城市老龄化程度的提高,人们自我保健意识逐渐增强,电子血压计具有低成本、小型化、自动化程度高等优点,如今已作为家庭必备的保健用品,倍受人们的青睐。SOPC(可编程片上系统)是 Altera公司提出的一种灵活、高效的SOC解决方案。用可编程逻辑技术把整个系统放到一块硅片上,称作SOPC。它可以将MCU、DSP和FPGA完美结合,有非常好的发展前景。
1 人体血压测量原理
1.1血压测量
血压测量方法有很多,最常用的无创血压测量方法为柯氏音法和示波法。本文设计所采用的是基于充气的示波法。基于示波法的充气测量恰好是放气测量的逆过程,如图1所示,在压力增加(充气)过程中,检测静压力和袖带内气体的振荡波,振荡波起源于血管壁的搏动。压力较小时,在袖带静压力小于舒张压Pd之前,动脉管壁在舒张期已充分扩展,管壁刚性增加,因而波幅维持在较小的水平。随着压力的增加,当袖带压力高于收缩压Ps时,动脉被压闭,此时因近端脉搏的冲击而呈现细小的振荡波;当袖带静压等于平均压时,波幅达到最大值;振荡波的包络线所对应的袖带静压力就间接地反映了动脉血压。
1.2 心率计算
心率指心脏每分钟搏动的次数,由于心脏与脉搏搏动一致,所以在测量血压的同时可以测得心率。心率的测定关键判断脉搏波的峰值,然后根据在一定时间内测定有多少个脉搏波,从而计算出心率。
2 SOPC系统的硬件设计
SOPC系统的硬件设计框图如图2所示。
2.1 SOPC系统电路
该部分电路由FPGA芯片、存储器以及其他外围元件组成,是信号处理的核心部分。由SOPC Builder硬件开发环境构建包括CPU、存储器接口和I/O外设的嵌入式微处理器系统。完成系统设计后,可以用SOPC Builder来生成系统。下图为在SOPC Builder中构建的系统内容配置。
SOPC系统中添加了EPCS设备控制器核,这样做的目的是做到充分利用系统资源,将FPGA的配置数据以及Nios II的软件程序固化到EPCS芯片中,为Flash芯片节省出更多的空间来存储测量结果。这时Nios II处理器的复位地址要设置为EPCS控制器的基地址,当系统复位后固化到EPCS芯片中的程序将自动下载到SDRAM中运行。
图4为由SOPC Builder硬件开发环境生成的SOPC系统的顶层模块图。
2.2 压力测量电路
2.2.1 压力传感器选型
本设计的压力传感器选择的是Motorola公司生产的MPXV5050GP压力传感器。其内部含有信号运放,具有信号调节功能,有良好的线性度,可以直接将动脉血液对血管壁的压力转换为0.2~4.7V的电信号,对应的血压值为0~375mmHg,与血压计的设计要求非常匹配。
2.2.2 驱动电路的设计
控制气泵和电磁阀工作的信号是由FPGA发出的,气泵需要的工作驱动电流为450mA,电磁阀为75mA,而FPGA的数字I/O输出电流不能满足要求。因此,为给气泵和电磁阀提供合适的驱动电流,采用达林顿管阵列ULN2803驱动电路来驱动气泵和电磁阀工作。ULN2803可输出500mA的电流,分别利用ULN2803的第一路、第二路来驱动电磁阀和气泵,第三路驱动一个LED用来指示脉搏波信号。如图5所示。
2.3 传感器输出信号的提取
从压力传感器出来的信号是脉搏波的振荡信号和静压力信号的混合信号,还夹杂着来自外界的高频干扰、直流或低频分量。我们将混合信号分为两个部分,一部分经过低通滤波器后进行A/D转换,从而提取出袖带压信号,另一部分则通过带通滤波、放大电路,得到放大的脉搏波数据后再送入A/D转换模块。信号提取部分的具体电路如图6所示。
这里采用截止频率为0.48Hz的二阶低通巴特沃斯滤波器,将低通滤波器增益设为1,这样做可以尽量减少误差的放大。采用具有信号放大能力的有源滤波器对脉搏波信号的提取,通带频率范围设计为0.48~4.8Hz。脉搏波信号放大滤波后,要使其最大幅度尽量接近A/D转换模块的允许上限,这样有助于提高采集数据的精度。
由于需要对静压信号和脉搏波信号分别进行A/D转换,因此需要两个采样通道。人体的臂动脉血压,收缩压一般在95~140mmHg范围内,平均值为 110~120mmHg,舒张压为60~90mmHg,平均值为80mmHg,考虑到高血压等疾病情况,血压计的测量范围应该在0~250mmHg内,则对A/D转换器的要求至少为8位(28=256)。
2.4 键盘电路与显示电路
本系统用1个按键作为系统复位开关,5个按键作为系统操作键盘,分别完成测量血压、查看记录、上翻记录、下翻记录和删除记录的功能。显示部分采用的是128×64点阵LCD显示器,具有操作简便,界面友好的特点。系统软件流程设计
本系统的软件工作流程框图如图7所示。其中信号处理算法部分主要是对采样的脉搏信号进行处理,包括采用数字滤波算法对各种干扰噪声信号进行识别与去除,改善脉搏波的包络线等,以提高电子血压计在测量血压时的抗干扰能力与测量精度。
当用户测量血压时,按下“测量”按键,SOPC系统发出控制信号给气泵,开始加压充气。充气的过程中,来自压力传感器的血压信号经放大、滤波后送入A/D 转换模块,信号经A/D转换后送入SOPC系统执行相应的信号处理算法,计算出心率、收缩压和舒张压的值。SOPC计算出测量值以后,保存本次测试结果至 Flash芯片(写Flash),如果测量结果正常,则LCD显示出所测的数据并执行快速放气操作;如果测量出的结果超出正常范围,则显示相应提示信息,同时发出警报声音和放气控制信号。如果在测量过程中出现错误,系统将停止充气并启动电磁阀进行放气,蜂鸣器也会发出报警声音,同时显示测量出错的提示信息。
用户可按下相应按键来完成“查看”(读Flash芯片)、“删除”(擦除Flash芯片中当前存储区的内容)等功能。若用户想退出当前操作或者是测量过程中出现错误,直接按下复位键系统即可回到初始化状态等待新的操作信息。
4 测量结果对比与分析
为了检验本设计的测量结果,我们将此电子血压计与市面上评价比较好的欧姆龙HEM-7012型电子血压计分别对不同的个体进行了测量,结果如表1所示:
从多组测量结果的对比可以看出,虽然测量结果存在一定的误差,但本血压计对不同的测量者具有良好的个体适应性。与欧姆龙电子血压计相比,本血压计测得的血压结果略有偏大,这是因为电子血压计采用基于充气过程的示波法,特征点的确定只能依赖采集样本的统计归纳,有一定的离散性,此外,在测量过程中,压力传感器输出信号以及放大、滤波等电路的输出信号都可能与真实值之间存在一些小的差异,因此会存在一定的误差。
5 结束语
本文所提出的电子血压计设计方案采用的是基于充气测量的方法。具有操作简单方便、界面友好、测量精度较高、个体适应性强等优点,而且由于采用充气过程测量,放气速度很快,因此缩短了测量时间,提高了用户的测量舒适度。