基于SOPC技术的医用呼吸机主控系统

2008-07-10 14:12:00来源: 电子产品世界
  呼吸机是可以代替人的呼吸功能或辅助人的呼吸功能的仪器。它适用于呼吸衰竭、甚至停止呼吸的病人做人工呼吸之用。它能帮助病人纠正缺氧和排出二氧化碳,是挽救某些危重病人生命的重要工具。

  现有的呼吸机产品,其主控系统大多基于单片机来实现,对于功能强一些的产品就需要使用高端单片机,这样使得系统的成本比较高,而且外围的接口模块较多,结构复杂。使用SOPC(可编程片上系统)技术设计主控系统,可充分利用IP核的强大功能,精简外设数量,与此同时只占用了很小部分的资源,大大提高了系统的性价比。

  本文利用SOPC技术设计了持续气道正压通气呼吸机的主控系统,使用了Altera公司的Nios II软核处理器以及一些通用的IP核,笔者基于Avalon总线规范定制了组件,将控制逻辑全部集成至单片FPGA内。

医用呼吸机


  正压呼吸机是利用增加气道内压力的方法将空气送入肺内,肺内的压力增大使肺腔扩张。当压力失去后,由于肺腔组织的弹性,将肺恢复到原来的形状,而使经过交换的一部分空气呼出体外。目前,大部分呼吸机都是利用这种增加气道内压力的方法给病人送气的。

  呼吸机所需的气压采用直流电机来提供,直流电机的控制信号为PWM信号,根据PWM信号的占空比和周期来控制电机的转速。外部接口提供按键来接受命令,设定各种参数。提示信息、状态信息、参数信息通过字符型LCD显示。为了便于对系统进行测试,使用UART为命令控制接口,对系统进行直接控制,该接口在成品后即被隐去。

系统结构

  以SOPC技术为核心的呼吸机主控系统框图如图1所示。


图1  呼吸机系统硬件结构框图

  主控系统的核心FPGA采用Altera公司Cyclone系列的EP1C6T144C8。CPU即为Nios II软核处理器,对整个系统进行统一管理。折线框内为主控板,除下载、调试用的PC机外,对直流电机及主控板需单独供电。直流电机工作后将气流送至面罩内,电机根据端的信号来调节气流的大小。在面罩内装有压力检测模块,通过A/D转换返回至主控板,用来对气流进行回馈调节。面罩供患者使用。

  直流电机控制

  系统使用PWM信号对直流电机进行控制。在SOPC Builder提供的标准IP核中是没有PWM组件的,需要自行定制,PWM组件的输出信号是方波,方波的周期及占空比可调。PWM任务逻辑结构示于图2。


图2  PWM任务逻辑结构

  PWM组件的任务逻辑有:

  ●PWM任务逻辑由一个输入时钟、一个输出信号、一个允许位、一个32位计数器和一个32位的比较器组成;

  ●时钟驱动32位计数器,建立输出信号的周期;

  ●比较器用来对32位比较器的当前值和占空比值进行比较,决定所输出的信号;

  ●若当前值小于或等于占空比值,则输出逻辑信号为0,否则为1。

  PWM组件的寄存器文件:

  ●clock_divde 在PWM的一个周期中的时钟周期数;

  ●duty_cycle PWM输出为低电平的时钟周期数;

  ●enable  PWM输出的允许/禁止。0到1的上升沿使能PWM组件。

  将PWM定义寄存器的头文件和驱动程序封装有:
 
  altera_avalon_pwm_init();    //PWM模块初始化,包括周期设置
 
  altera_avalon_pwm_enable();     //PWM模块使能

  altera_avalon_p wm_disable();  //PWM模块禁止

  altera_avalon_ pwm_change_duty _cycle();  //PWM模块占空比调整

  对于直流电机来说,PWM占空比需要达到一定量才能使电机工作,低于阈值(PWM_DUTY_THRESHOLD)的PWM信号不能驱动电机,这部分能量会转化为热量损害电机,所以,设定PWM值的时候需要注意将值设在阈值以上,在altera_avalon_pwm_change_duty_cycle()中对所设定的值进行判断,如果值低于PWM_DUTY_THRESHOLD则调整为PWM_DUTY_THRESHOLD+1。

  以上的设计全部完成后,在SOPC Builder内将其封装成为SOPC组件。

  输出及指示模块

  系统需要输入设置、控制以及显示提示,这部分功能包括有按键输入、LED指示灯输出、蜂鸣器输出、液晶输出等。

  按键输入是用户与系统交互的重要接口,键盘板上共设有4个按键,一个为“On/Off”键,一个为“Set”键,一个为“Up”键,一个为“Down”键。“On/Off”功能键用于系统开机、关机;“Set”功能键用于LCD中参数设置时确定;“Up”和“Down”功能键用于改变当前选项的内容。

  按键输出模块在Nios II内使用SOPC Builder提供的PIO模块搭建,由于要实时响应按键内容,需要开中断,对按键的上升沿进行捕捉,当有中断到来时,进入中断寄存器判断中断的来源和类型,根据现在的模式信息决定系统的动作。

  LED显示及蜂鸣器输出也使用PIO模块搭建,为使得电流充裕采用共阳极接法。

  LCD显示使用的是1602的通用液晶模块,在SOPC Builder内提供有相应的IP核。液晶为16×2的形式,可显示英文字母及数字,字库在液晶模块内部含有。

  与PC机通讯的接口

  系统与PC通讯有两个接口,JTAG接口和UART接口。JTAG接口用来对FPGA进行配置及程序下载;UART接口则作为命令控制接口,对完成的程序进行系统的调试。这两个组件在SOPC Builder内均有提供,可直接使用。JTAG接口无需过多配置,外部硬件连接完成后,在内部添加组件即可使用,对JTAG端口的操作由Quartus软件内部完成。

  UART接口与PC机通过RS-232协议进行通讯,可以改变其波特率、奇偶校验位、停止位、传输的数据位以及其他可选的RTS-CTS流控制信号等。实际应用中波特率使用115200,8位数据位,1位停止位,带奇偶校验位,流控制则设为none。外部硬件连接使用MAX3232作为电平转换芯片。

  存储及配置单元

  FPGA使用AS配置模式,配置芯片为EPCS4。EPCS4芯片中的存储区可分为两个区:FPGA配置存储区用来保存FPGA配置的数据,通用存储区用来存放系统启动代码以及程序数据。除了SOPC Builder提供的EPCS组件外,Nios II IDE中的Flash Programmer实用程序可把数据固化到EPCS芯片中。

  FPGA芯片内部开出一块4K大小的RAM,作为程序运行时的缓存区。

  定时器

  SOPC Builder提供的定时器是一个32位的间隔定时器,与我们常见到的单片机内部的定时器模块类似,有递增计数模式和递减计数模式,在计数器为0时可生成中断,也可令周期脉冲发生器输出一个脉冲。对periodl和periodh寄存器进行写操作可设定定时器的周期。系统中使用定时器模块计时,用来判断命令执行时间的长短,按键时长等功能,开中断后可实现长按键开关机或Shift键功能。

  A/D采样

  A/D采样主要是为了检测面罩压力并反馈,根据反馈值对压力进行再调节。压力检测后压力信号通过Maxim公司的A/D芯片MAX197进行采样。

  与PWM组件类似,SOPC Builder也没有提供相应的A/D组件IP核,需自行定制,定制过程与PWM组件相同。

系统软件设计

  系统的工作流程如图3所示。


图3  呼吸机工作流程

  工作状态

  设置状态:只能在系统断电后,重新上电时进入。除此之外,系统在任何情况下都无法进入设置状态。并且从设置状态只能返回到关机状态。“Up”,“Down”键改变选项,“Set”键进入设置或确认设置,“On/Off”取消设置或退出当前这层设置界面,当已退到最初设置界面时,再按“On/Off”为关机;

  关机状态:液晶显示“Off”,且只响应开机键和命令;

  待机状态:液晶显示治疗压力的延时;

  治疗状态:响应“On/Off”键, “Up”键和“Down”键。其中,“On/Off”键用于“启动/停止”治疗;“Up”和“Down”用于以0.5厘米水柱的压力为步长调整当前工作压力。

  对这四种状态的切换都基于不同时段不同按键的组合,设计时考虑到治疗操作的简便性,把大多数操作都放到设置状态内进行,治疗时只需要根据实际情况略作调节即可。

  压力反馈

  对于呼吸机这种直接面对病患的医疗器械,安全性是非常重要的,另外,对所加压力的精度要求也比较高,就算是5%的压力变化对于一个病人的呼吸系统来说也是不小的压力。在电机有输出有波动的时候,加一级反馈来对压力进行补偿输出,可以防止突然间的误动作以及供电电压波动带来的压力精度偏移。

  将A/D采样的结果与预先设定的值进行比较,如果低于设定值,则对输出值进行相应的提升;如果高于设定值,则减少输出值。对压力输出的调节要逐步进行,根据实验结果设定步长PWM_T_STEP,每次变化只增减PWM_T_STEP的值,这样不会使得气流忽大忽小,让患者的呼吸系统感到不适。

  按键及显示

  系统中对按键的要求比较多,除了正常的单次按键外,还有开关机时的长按键、进入设置状态的组合键等。这些特殊功能的按键也是基于单次按键的基础上进行的。
长按键需要对按键的触发的上升沿和下降沿都进行判断,单次按键的下降沿中断来到后,计数器开始计数,到上升沿中断到来为止,如果计数大于某一阈值则认为该次按键为长按键。阈值的确定要根据系统的时钟频率以及所需要的延时长度。

  系统的显示主要依靠LCD,16×2的液晶上只能显示两行菜单,但菜单的总条数远大于两条,为此,菜单数组的显示和执行就需要两套指针来实现,显示时单行滚动显示,以便于观察。

结语

  本文所述的医用呼吸机主控系统,样机已制出,现正进行性能测试,目前运行正常。整个系统的设计重点在定制基于SOPC技术的嵌入式Nios II软核处理器设计和电机驱动的实现上,与传统的基于单片机的方案相比,Nios II只占用了FPGA芯片内的一小部分资源,却完成了包括单片机及相当数量外设的功能,这样既简化了电路板设计,减少外围器件的配置,又有效地控制了系统软硬件的复杂度,降低了成本,缩短开发周期,更便于对未来产品的升级换代。

参考文献:

  1.  李兰英,Nios II嵌入式软核——SOPC设计原理及应用,北京航空航天大学出版社,2006.11
  2.  Altera. NiosII Processor Reference Handbook [EB/OL].  (2006-05).http://www.altera.com
  3.  Altera. Altera Embedded Peripherals Handbook [EB/OL].  (2006-05).   http://www.altera.com
  4.  彭澄廉,挑战SOC—基于Nios的SOPC设计与实践,清华大学出版社,2004

关键字:高端  单片机  软核  IP核  喜好  PWM

编辑:汤宏琳 引用地址:http://www.eeworld.com.cn/medical_electronics/2008/0710/article_83.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
高端
单片机
软核
IP核
喜好
PWM

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 医学成像 家庭消费 监护/遥测 植入式器材 临床设备 通用技术/产品 其他技术 综合资讯

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved