0 引 言
随着社会的发展,人们的医疗保健意识越来越强,所以医生的培训也就成为非常重要的环节。虽然测量血压是一项较简单的技术,但若操作不规范,所测血压数值与实际血压相比也常出现误差,不能客观真实地反映病人的血压情况。血压测量作为学生的基本考核部分,以往都是通过直接的人体测量,但老师不知道在当时情况下人体的血压状况,同时测量情况又受到外界环境的干扰,所以给考核造成一定的困难。该系统可以随意设置血压情况,使得测量情况更加丰富,以尽快提高医生的血压测量技术。该血压模拟发生器是根据柯劳克氏技术(血压测量时听诊器在动脉上听到的5个时相的声音)以及现代医学的相关规定,严格按照脉搏发生的规律。发出的声音逼真、效果良好,可以在不同的心率下判断血压收缩压和舒张压等各项指标,可以用于医疗培训机构的培训工具,使学员快速掌握血压测量方法。该系统配合血压手臂,压力表,听诊器使用,具有广阔的市场前景。
本文介绍的血压模拟发生器是以凌阳16位单片机SPCE061A为控制核心,充分利用凌阳单片机所带有的强大语音功能,以符合实际情况的顺序播放柯劳克氏音,同时实现电磁阀跳动模拟人体脉搏搏动。可以设置相应的收缩压、舒张压、听诊间隔,还带有误差校准功能,误差值不超过2 mmHg。
l 系统结构和设计方案
系统主要包括凌阳16位单片机SPCE061A,传感器输入模块,电磁阀驱动模块,语音播放模块,液晶显示模块,键盘控制等几个部分。本系统采用凌阳16位单片机SPCE061A作为主控制芯片,该芯片CPU时钟O.32~9.152 MHz(2.6~3.6 V);内置2 KB SRAM和32 KB FLASH;32位可编程的多功能I/O端口;两个16位定时器/计数器;可编程音频处理;系统备用状态下(时钟处于停止状态)耗电仅为2μA;7通道10位电压模/数转换器;双通道10位DAC方式的音频输入功能,只需要外接功放(SPY0030A)即可完成语音的播放,方便实现系统的语音功能;14个中断源可来自定时器A/B时基,2个外部时钟源输入;具备触键唤醒的功能。另外该单片机具有自己的集成开发环境,支持标准的C语言。可以实现C语言与汇编语言的相互调用,并提供了语音播放的库函数,这样很容易就完成语音的播放,为软件开发提供了方便的条件。血压模拟发生器总体系统设计方案如图1所示。
2 系统硬件部分
该部分主要分为SPCE061A系统部分,电源管理模块,电磁阀驱动,气体压力传感器,语音输出,液晶显示,键盘设置。系统在单片机的控制下,由气体压力传感器对压力采集,并进行A/D转换后交给MCU,将测量结果与预设值进行比较,播放脉搏跳动声音。同时电磁阀开始工作。系统硬件连接图如图2所示。
2.1 电源管理模块
电源管理是任何电子产品都无法回避的问题,也是系统的核心部分,随着能源成本的提升,降低功耗成为电子产品的竞争优势之一。以移动性取胜的便携式产品中以电池供电为主,降低能耗成为便携式产品中电源管理急需解决的问题。系统电源部分采用MAX1705升降压芯片和BQ2057充电管理芯片,MAX1705具有低功耗,高效、低噪声的特点,输出电压在2.5~5.5 V范围内。最大输出电流850 mA,完全可以满足大部分便携式仪器的需要。同时还采用了美国TI公司生产的先进锂电池充电管理芯片BQ2057,它适合单节或双节锂离子电池的充电需要,BQ2057可以动态补偿锂电池组的内阻以减少充电时间,带有可选的电池温度监测,利用电池组温度传感器连续检测电池温度,当电池温度超出设定范围时BQ2057关闭对电池充电。内部集成的恒压恒流器带有高/低边电流感测和可编程充电电流,充电状态识别可由输出的LED指示灯或与主控器接口实现,具有自动重新充电、最小电流终止充电、低功耗睡眠等特性。利用该芯片设计的充电器外围电路极其简单,非常适合便携式电子产品的紧凑设计需要。
2.2 气体压力传感器
该模块采用摩托罗拉公司的MPX5100系列气体压力传感器,可以承受0~100 kPa的压强,输出电压在O.5~4.5 V的范围内,可以满足凌阳单片机I/O的电压输入范围,通过凌阳单片机的A/D转换采集气体压力传感器电压的变化,由于血压计压力表的量程范围是0~300 mmHg,根据760 mmHg=101.3 kPa,得到300 mmHg=39.9868 kPa,并且压力传感器的输入与输出为线性关系,根据多次测量得到公式:
ADValue=K1Value*mmHgValue+offset*K2Value
其中:ADValue为电压经过AD转换后的数字量;mmHgValue为压力表上的刻度值;K1Value=1.8;K2Value=329.17;offset=0.2,offset为校准系数,通过调整offset可以使误差控制在2 mmHg。
2.3 电磁阀驱动电路
该部分主要是模拟人体脉搏跳动,为了更好地模拟血压测量环境,带来更加逼真的效果,采用的电磁阀灵敏度高、噪音小,其吸合电流为100 mA,释放电流为12 mA,工作电压为5 V,当系统初始化以后电磁阀便开始根据设定的心率值工作。通过MCU控制其跳动频率,为了增大驱动电流采用达林顿管,其放大倍数是两个三极管放大倍数的乘积,达到小的基极电流控制大的集电极电流的目的,驱动电磁阀工作,如图3所示。
2.4 语音输出模块
凌阳SPCE061A单片机支持语音播放技术所要求的硬件和软件的全部功能。硬件方面,SPCE061A有两类D/A转换通道,一类是直接采用数/模转换的DAC方式,另一类是采用脉宽调制的PWM驱动方式,其结构是由两个DAC通道或一个PWM驱动通道构成。两类实现方式实质都为数/模转换,都是将数字信号转换成模拟电流信号输出。该设计的音频输出采用双通道数/模转换DAC方式,即数字信号通过10位DAC转换成3 mA驱动的模拟电流信号输出,经SPY0030A芯片信号放大后,由扬声器输出。音频电路图如图4所示。
2.5 液晶显示模块
系统采用的CMS-TG94DYSG-w小型液晶显示模块,该128×64点阵液晶显示模块具有20个引脚。价格低廉,数据可读可写,使用方便。其驱动芯片采用三星电子公司生产的KS0713。它是一种小型的大规模集成并带有驱动器的点阵型液晶控制芯片。KS0713体积小,外观尺寸只有42 mm×39 mm,可直接由微处理器控制,数据读写操作不受外部时钟控制,集成化程度高,自带液晶所必需的电源驱动。
2.6 低功耗设计
SPCE06lA在功能上增加了睡眠与唤醒功能。当IC在接受到睡眠信号后关闭系统时钟(PLL振荡器),进入睡眠状态。可以通过对P_SystemClock(写)(7013)单元写入CPUCLKSTOP控制字(CPU睡眠信号)使系统从运行状态转入低功耗睡眠状态。系统进入睡眠状态后,通过设置该单元的第4位可以打开或关闭32 768 Hz实时时钟,同时程序计数器(PC)会停在程序的下一条指令计数上,当有唤醒事件发生后,由此继续执行程序。只有当IOA[7~O]内位的控制字为000,001和010时,相对应位才具有唤醒功能。系统收到唤醒信号后会接通PLL振荡器,同时回响应唤醒事件的处理并初始化。CPU需要200μs的时间完成唤醒,随意唤醒睡眠的频率不能超过5 kHz,否则CPU无法进入睡眠模式。该系统在规定时间内没有接收到按键触发即转入休眠状态。
3 软件设计
SPCE061A单片机内部具有9个中断向量,可安置14个中断源。14个中断源分为两个定时器溢出中断、两个外部中断、一个串行口中断、一个触键唤醒中断、7个时基信号中断、PWM音频输出中断,可以灵活地配置给各个模块使用。图5为主程序流程图。本设计的软件采用C语言编写,整个程序包括主程序、A/D转换、键盘扫描子程序、延时子程序、显示及语音播放子程序等。系统启动后,先进行初始化操作,初始化程序主要完成I/O端口初始化、开定时中断、调用开机显示界面、接收键盘赋值,驱动电磁阀跳动等。然后进入循环,接收传感器输出电压值,与预设值进行比较后,根据设定调用语音播报函数,SPCE061A自带有多种音频压缩算法,具有丰富的语音函数库可分别实现高保真音乐、普通话音等语音效果。本设计采用SACM_A2000音频压缩算法提供音频输出,使用SACM A2000模块的函数进行开发,可直接调用相应的API函数,软件编程容易,可方便地完成语音的播放,大大节省了开发设计的时间。
4 结 语
本文详细介绍了为医疗培训机构开发的便携式血压模拟发生器。功能上主要是把应用越来越广泛的SPCE061A单片机自带的数字语音处理应用于医疗设备。系统利用了SPCE061A单片机强大的处理能力,以及丰富的外围接口,SPCE061A片内有32 KB的FLASH ROM,该系统完成所有功能仅占用一半的FLASH资源,可扩展的空间还很大。系统成本低、操作方便,经大量实验测试表明,其性能稳定,功耗低,并且在系统功能扩展上具有较大的潜力,有很好的应用前景。