基于SOPC技術(shù)的醫(yī)用呼吸機(jī)主控系統(tǒng)設(shè)計
掃描二維碼
隨時隨地手機(jī)看文章
呼吸機(jī)是可以代替人的呼吸功能或輔助人的呼吸功能的儀器。它適用于呼吸衰竭、甚至停止呼吸的病人做人工呼吸之用。它能幫助病人糾正缺氧和排出二氧化碳,是挽救某些危重病人生命的重要工具。
現(xiàn)有的呼吸機(jī)產(chǎn)品,其主控系統(tǒng)大多基于單片機(jī)來實(shí)現(xiàn),對于功能強(qiáng)一些的產(chǎn)品就需要使用高端單片機(jī),這樣使得系統(tǒng)的成本比較高,而且外圍的接口模塊較多,結(jié)構(gòu)復(fù)雜。使用SOPC(可編程片上系統(tǒng))技術(shù)設(shè)計主控系統(tǒng),可充分利用IP核的強(qiáng)大功能,精簡外設(shè)數(shù)量,與此同時只占用了很小部分的資源,大大提高了系統(tǒng)的性價比。
本文利用SOPC技術(shù)設(shè)計了持續(xù)氣道正壓通氣呼吸機(jī)的主控系統(tǒng),使用了Altera公司的Nios II軟核處理器以及一些通用的IP核,筆者基于Avalon總線規(guī)范定制了組件,將控制邏輯全部集成至單片F(xiàn)PGA內(nèi)。
醫(yī)用呼吸機(jī)
正壓呼吸機(jī)是利用增加氣道內(nèi)壓力的方法將空氣送入肺內(nèi),肺內(nèi)的壓力增大使肺腔擴(kuò)張。當(dāng)壓力失去后,由于肺腔組織的彈性,將肺恢復(fù)到原來的形狀,而使經(jīng)過交換的一部分空氣呼出體外。目前,大部分呼吸機(jī)都是利用這種增加氣道內(nèi)壓力的方法給病人送氣的。
呼吸機(jī)所需的氣壓采用直流電機(jī)來提供,直流電機(jī)的控制信號為PWM信號,根據(jù)PWM信號的占空比和周期來控制電機(jī)的轉(zhuǎn)速。外部接口提供按鍵來接受命令,設(shè)定各種參數(shù)。提示信息、狀態(tài)信息、參數(shù)信息通過字符型LCD顯示。為了便于對系統(tǒng)進(jìn)行測試,使用UART為命令控制接口,對系統(tǒng)進(jìn)行直接控制,該接口在成品后即被隱去。
系統(tǒng)結(jié)構(gòu)
以SOPC技術(shù)為核心的呼吸機(jī)主控系統(tǒng)框圖如圖1所示。
圖1 呼吸機(jī)系統(tǒng)硬件結(jié)構(gòu)框圖
主控系統(tǒng)的核心FPGA采用Altera公司Cyclone系列的EP1C6T144C8。CPU即為Nios II軟核處理器,對整個系統(tǒng)進(jìn)行統(tǒng)一管理。折線框內(nèi)為主控板,除下載、調(diào)試用的PC機(jī)外,對直流電機(jī)及主控板需單獨(dú)供電。直流電機(jī)工作后將氣流送至面罩內(nèi),電機(jī)根據(jù)端的信號來調(diào)節(jié)氣流的大小。在面罩內(nèi)裝有壓力檢測模塊,通過A/D轉(zhuǎn)換返回至主控板,用來對氣流進(jìn)行回饋調(diào)節(jié)。面罩供患者使用。
直流電機(jī)控制
系統(tǒng)使用PWM信號對直流電機(jī)進(jìn)行控制。在SOPC Builder提供的標(biāo)準(zhǔn)IP核中是沒有PWM組件的,需要自行定制,PWM組件的輸出信號是方波,方波的周期及占空比可調(diào)。PWM任務(wù)邏輯結(jié)構(gòu)示于圖2。
圖2 PWM任務(wù)邏輯結(jié)構(gòu)
PWM組件的任務(wù)邏輯有:
●PWM任務(wù)邏輯由一個輸入時鐘、一個輸出信號、一個允許位、一個32位計數(shù)器和一個32位的比較器組成;
●時鐘驅(qū)動32位計數(shù)器,建立輸出信號的周期;
●比較器用來對32位比較器的當(dāng)前值和占空比值進(jìn)行比較,決定所輸出的信號;
●若當(dāng)前值小于或等于占空比值,則輸出邏輯信號為0,否則為1。
PWM組件的寄存器文件:
●clock_divde 在PWM的一個周期中的時鐘周期數(shù);
●duty_cycle PWM輸出為低電平的時鐘周期數(shù);
●enable PWM輸出的允許/禁止。0到1的上升沿使能PWM組件。
將PWM定義寄存器的頭文件和驅(qū)動程序封裝有:
altera_avalon_pwm_init(); //PWM模塊初始化,包括周期設(shè)置
altera_avalon_pwm_enable(); //PWM模塊使能
altera_avalon_p wm_disable(); //PWM模塊禁止
altera_avalon_ pwm_change_duty _cycle(); //PWM模塊占空比調(diào)整
對于直流電機(jī)來說,PWM占空比需要達(dá)到一定量才能使電機(jī)工作,低于閾值(PWM_DUTY_THRESHOLD)的PWM信號不能驅(qū)動電機(jī),這部分能量會轉(zhuǎn)化為熱量損害電機(jī),所以,設(shè)定PWM值的時候需要注意將值設(shè)在閾值以上,在altera_avalon_pwm_change_duty_cycle()中對所設(shè)定的值進(jìn)行判斷,如果值低于PWM_DUTY_THRESHOLD則調(diào)整為PWM_DUTY_THRESHOLD+1。
以上的設(shè)計全部完成后,在SOPC Builder內(nèi)將其封裝成為SOPC組件。
輸出及指示模塊
系統(tǒng)需要輸入設(shè)置、控制以及顯示提示,這部分功能包括有按鍵輸入、LED指示燈輸出、蜂鳴器輸出、液晶輸出等。