基于SOPC的醫用呼吸機主控系統設計
直流電機控制
系統使用PWM信號對直流電機進(jìn)行控制。在SOPC Builder提供的標準IP核中是沒(méi)有PWM組件的,需要自行定制,PWM組件的輸出信號是方波,方波的周期及占空比可調。PWM任務(wù)邏輯結構示于圖2。
圖2 PWM任務(wù)邏輯結構
PWM組件的任務(wù)邏輯有:
●PWM任務(wù)邏輯由一個(gè)輸入時(shí)鐘、一個(gè)輸出信號、一個(gè)允許位、一個(gè)32位計數器和一個(gè)32位的比較器組成;
●時(shí)鐘驅動(dòng)32位計數器,建立輸出信號的周期;
●比較器用來(lái)對32位比較器的當前值和占空比值進(jìn)行比較,決定所輸出的信號;
●若當前值小于或等于占空比值,則輸出邏輯信號為0,否則為1。
PWM組件的寄存器文件:
●clock_divde 在PWM的一個(gè)周期中的時(shí)鐘周期數;
●duty_cycle PWM輸出為低電平的時(shí)鐘周期數;
●enable PWM輸出的允許/禁止。0到1的上升沿使能PWM組件。
將PWM定義寄存器的頭文件和驅動(dòng)程序封裝有:
altera_avalon_pwm_init(); //PWM模塊初始化,包括周期設置
altera_avalon_pwm_enable(); //PWM模塊使能
altera_avalon_p wm_disable(); //PWM模塊禁止
altera_avalon_ pwm_change_duty _cycle(); //PWM模塊占空比調整
對于直流電機來(lái)說(shuō),PWM占空比需要達到一定量才能使電機工作,低于閾值(PWM_DUTY_THRESHOLD)的PWM信號不能驅動(dòng)電機,這部分能量會(huì )轉化為熱量損害電機,所以,設定PWM值的時(shí)候需要注意將值設在閾值以上,在 altera_avalon_pwm_change_duty_cycle()中對所設定的值進(jìn)行判斷,如果值低于PWM_DUTY_THRESHOLD 則調整為PWM_DUTY_THRESHOLD+1。
以上的設計全部完成后,在SOPC Builder內將其封裝成為SOPC組件。
輸出及指示模塊
系統需要輸入設置、控制以及顯示提示,這部分功能包括有按鍵輸入、LED指示燈輸出、蜂鳴器輸出、液晶輸出等。
評論