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

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

  现有的呼吸机产品,其主控系统大多基于单片机来实现,对于功能强一些的产品就需要使用高端单片机,这样使得系统的成本比较高,而且外围的接口模块较多,结构复杂。使用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
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于NXP LPC2148的微型尿液分析仪
下一篇:基于Nios II的多生理参数处理系统

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
高端
单片机
软核
IP核
喜好
PWM

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 

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

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

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

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