当前位置:首页 > 工业控制 > 电子设计自动化

以Altera公司FPGA芯片为平台,利用SoPC技术和Nios II处理器设计并实现了医用呼吸机的主控系统。  呼吸机是可以代替人的呼吸功能或辅助人的呼吸功能的仪器。它适用于呼吸衰竭、甚至停止呼吸的病人做人工呼吸之用。它能帮助病人纠正缺氧和排出二氧化碳,是挽救某些危重病人生命的重要工具。  现有的呼吸机产品,其主控系统大多基于单片机来实现,对于功能强一些的产品就需要使用高端单片机,这样使得系统的成本比较高,而且外围的接口模块较多,结构复杂。使用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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭