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

发布者:liliukan最新更新时间:2011-06-01 关键字:SOPC  PWM 手机看文章 扫描二维码
随时随地手机看文章

  呼吸机是可以代替人的呼吸功能或辅助人的呼吸功能的仪器。它适用于呼吸衰竭、甚至停止呼吸的病人做人工呼吸之用。它能帮助病人纠正缺氧和排出二氧化碳,是挽救某些危重病人生命的重要工具。

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

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

医用呼吸机

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

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

系统结构

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

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

  直流电机控制

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

[page]

  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指示灯输出、蜂鸣器输出、液晶输出等。

 

 

关键字:SOPC  PWM 引用地址:基于SOPC技术的医用呼吸机主控系统设计

上一篇:浅谈频程及滤波器的Q值计算应用
下一篇:节能LCD电视的LED背光区域调光

推荐阅读最新更新时间:2024-05-02 21:25

LD7209:PWM调光LED驱动器
LD7209是一款LED驱动器, 该系列组件能驱动3~8颗WLED背光, 提供38V开路电压保护,可应用于锂电供电之小尺寸屏幕背光LED等便携式产品, 如手机、PDA、、GPS、笔记本电脑及数码相框。 LD7209采用1MHZ高频PWM开关频率设计, 可有效减外部电感及电容器的体积,并利用PWM输入(200HZ~200KHZ)调节LED亮度, 使LED电流正比于PWM责任比。 除了可灵活控制亮度外, LD7209同时整合了可靠的保护特性; 内建软激活可消除激活期间的浪涌电流,并具备LED开路保护、电流过载限制和过热保护。并且在切断模式下, 仅消耗0.1mA, 减少电池功耗。 LD7209效率最高可达90%以上, 内部提供0.
[电源管理]
LD7209:<font color='red'>PWM</font>调光LED驱动器
软件产生PWM控制直流电机C程序
//软件产生PWM控制直流电机C程序 //软件版本: ICCAVR ver 7.05 // Target : M48 // Crystal: 8.0000MHz #include iom48v.h #include macros.h unsigned int Pwmw; unsigned int adc_v; //ADC 转换函数 unsigned int adc_get(void) { ADCSRA |= (1 ADSC); //启动ADC转换 while( ADCSRA & (1 ADSC)); //判断ADC转换是否结束 return ADC; //取ADC的转换结果 } //电机驱动、调速子程序 void PWMsub(
[单片机]
STM32 基础系列教程 6 - PWM
前言 学习stm32 基本定时器的使用,用基本定时器产生定时PWM, 来控制LED,通过并控制PWM波的占空比,实现呼吸灯效果 示例详解 基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。 本示例所用的最小系统板原理图: 关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置: 系统时钟树 定时器配置 开启PWM通道1 设置定时器周期为100us, 计数时钟间隔为 1us. 引脚配置 工程代码 分别在
[单片机]
STM32 基础系列教程 6 - <font color='red'>PWM</font>
MSL2164:16串LED驱动器设计指南详解
MSL2164和MSL2166器件以高电流精度和LED串匹配来驱动外部MOSFET, 这些器件具有爱特梅尔LED驱动器产品系列中最宽的调光分辨率,能够提高对比度,与其它解决方案相比,功耗降低至少20%。 过去,TV OEM厂商必须计算合适的参数,以便有效地照亮所要求的显示屏背光区域。LED驱动器将生成算法以设置合适的LED串相位,优化背光与LCD面板的同步。 OEM厂商必须经常执行附加算法以调节LED串相位,确保背光在帧刷新期间完全同步。MSL2164和MSL2166具有多种脉宽调制(PWM)模式, 包括正向、逆向、拖尾和中心,由于新器件中集成了定时算法,设计复杂性得以降低,这确保背光在所有LCD像素已经稳定的最佳时刻照亮。
[电源管理]
MSL2164:16串LED驱动器设计指南详解
RT8458 PWM Buck LED驱动器应用电路
The RT8458 is a PWM controller with an integrated high side floating gate driver. It is used for step down converters by well controlling the external MOSFET and regulating a constant output current. The output duty cycle of the RT8458 can be up to 100% for wider input voltage application, such as E27 and PAR30 off-l
[电源管理]
RT8458 <font color='red'>PWM</font> Buck LED驱动器应用电路
Maxim推出3/2相Quick-PWM VID控制器
Maxim推出支持IMVP-6.5笔记本电脑CPU的3/2相、交错工作、降压VID电源控制器MAX17030/MAX17036。2个集成驱动器支持2相标准电压(SV)内核,一个可选的外部驱动器配置支持3相终极版本(XE)内核。这种独特的特性允许MAX17030/MAX17036用于IMVP-6.5 XE和SV内核,大大提高了设计灵活性。 3个相位以120°错相工作,降低了输入/输出的滤波要求,并且提高了效率,降低了EMI。检流电阻和低失调放大器保持3个相位的电流均衡。通过在3个相位间共享电流,器件减少了每个相位的输入瞬态电流,从而降低了输入电压纹波。MAX17036包含额外的瞬态抑制功能,可降低上冲/下冲电压。
[电源管理]
51单片机测量PWM脉冲宽度LCD1602显示当前PWM占空比频率
此程序通过两个定时器一个外部中断,测量PWM高电平时间以及周期,计算并在1602显示出占空比 周期 高电平时间,只需让脉冲在P3^2口输入即能测得数据。。 单片机源程序如下: #include reg52.h #include LCD1602.h typedef unsigned char uint8; typedef unsigned int uint16;//数据类型重定义 uint8 count = 0; //计进入外部中断次数 bit flag = 1; //捕获结束标志位 long Pwm_All; //PWM的周期 long Pwm_High; //PWM的高电平时间 占空比=Pwm_Hi
[单片机]
怎么用STM32配置产生PWM
STM32产生PWM是非常的方便的,要需要简单的设置定时器,即刻产生!当然,简单的设置对于新手来讲,也是麻烦的,主要包括: (1)使能定时器时钟: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); (2)定义相应的GPIO: /* PA2,3,4,5,6输出- Key_Up,Key_Down,Key_Left,Key_Right,Key_Ctrl */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6; GPIO_InitStruct
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

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