基于SOPC的医用呼吸机主控系统设计
直流电机控制
系统使用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指示灯输出、蜂鸣器输出、液晶输出等。
评论