《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于SoPC和Nios II處理器的醫(yī)用呼吸機主控系統(tǒng)設(shè)計
基于SoPC和Nios II處理器的醫(yī)用呼吸機主控系統(tǒng)設(shè)計
摘要: 現(xiàn)有的呼吸機產(chǎn)品,其主控系統(tǒng)大多基于單片機來實現(xiàn),對于功能強一些的產(chǎn)品就需要使用高端單片機,這樣使得系統(tǒng)的成本比較高,而且外圍的接口模塊較多,結(jié)構(gòu)復(fù)雜。使用SoPC(可編程片上系統(tǒng))技術(shù)設(shè)計主控系統(tǒng),可充分利用IP核的強大功能,精簡外設(shè)數(shù)量,與此同時只占用了很小部分的資源,大大提高了系統(tǒng)的性價比。
關(guān)鍵詞: SoPC NIOS II Altera
Abstract:
Key words :

 

         以Altera公司FPGA芯片為平臺,利用SoPC技術(shù)和Nios II處理器設(shè)計并實現(xiàn)了醫(yī)用呼吸機的主控系統(tǒng)。
 
  呼吸機是可以代替人的呼吸功能或輔助人的呼吸功能的儀器。它適用于呼吸衰竭、甚至停止呼吸的病人做人工呼吸之用。它能幫助病人糾正缺氧和排出二氧化碳,是挽救某些危重病人生命的重要工具。
 
  現(xiàn)有的呼吸機產(chǎn)品,其主控系統(tǒng)大多基于單片機來實現(xiàn),對于功能強一些的產(chǎn)品就需要使用高端單片機,這樣使得系統(tǒng)的成本比較高,而且外圍的接口模塊較多,結(jié)構(gòu)復(fù)雜。使用SoPC(可編程片上系統(tǒng))技術(shù)設(shè)計主控系統(tǒng),可充分利用IP核的強大功能,精簡外設(shè)數(shù)量,與此同時只占用了很小部分的資源,大大提高了系統(tǒng)的性價比。
 
  本文利用SoPC技術(shù)設(shè)計了持續(xù)氣道正壓通氣呼吸機的主控系統(tǒng),使用了Altera公司的Nios II軟核處理器以及一些通用的IP核,筆者基于Avalon總線規(guī)范定制了組件,將控制邏輯全部集成至單片F(xiàn)PGA內(nèi)。
 
  醫(yī)用呼吸機
 
  正壓呼吸機是利用增加氣道內(nèi)壓力的方法將空氣送入肺內(nèi),肺內(nèi)的壓力增大使肺腔擴張。當(dāng)壓力失去后,由于肺腔組織的彈性,將肺恢復(fù)到原來的形狀,而使經(jīng)過交換的一部分空氣呼出體外。目前,大部分呼吸機都是利用這種增加氣道內(nèi)壓力的方法給病人送氣的。
 
  呼吸機所需的氣壓采用直流電機來提供,直流電機的控制信號為PWM信號,根據(jù)PWM信號的占空比和周期來控制電機的轉(zhuǎn)速。外部接口提供按鍵來接受命令,設(shè)定各種參數(shù)。提示信息、狀態(tài)信息、參數(shù)信息通過字符型LCD顯示。為了便于對系統(tǒng)進(jìn)行測試,使用UART為命令控制接口,對系統(tǒng)進(jìn)行直接控制,該接口在成品后即被隱去。
 
  系統(tǒng)結(jié)構(gòu)
 
  以SOPC技術(shù)為核心的呼吸機主控系統(tǒng)框圖如圖1所示。
 
 
圖1  呼吸機系統(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機外,對直流電機及主控板需單獨供電。直流電機工作后將氣流送至面罩內(nèi),電機根據(jù)端的信號來調(diào)節(jié)氣流的大小。在面罩內(nèi)裝有壓力檢測模塊,通過A/D轉(zhuǎn)換返回至主控板,用來對氣流進(jìn)行回饋調(diào)節(jié)。面罩供患者使用。
 
  直流電機控制
 
  系統(tǒng)使用PWM信號對直流電機進(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)整
 
  對于直流電機來說,PWM占空比需要達(dá)到一定量才能使電機工作,低于閾值(PWM_DUTY_THRESHOLD)的PWM信號不能驅(qū)動電機,這部分能量會轉(zhuǎn)化為熱量損害電機,所以,設(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指示燈輸出、蜂鳴器輸出、液晶輸出等。
 
  按鍵輸入是用戶與系統(tǒng)交互的重要接口,鍵盤板上共設(shè)有4個按鍵,一個為“On/Off”鍵,一個為“Set”鍵,一個為“Up”鍵,一個為“Down”鍵。“On/Off”功能鍵用于系統(tǒng)開機、關(guān)機;“Set”功能鍵用于LCD中參數(shù)設(shè)置時確定;“Up”和“Down”功能鍵用于改變當(dāng)前選項的內(nèi)容。
 
 
  按鍵輸出模塊在Nios II內(nèi)使用SOPC Builder提供的PIO模塊搭建,由于要實時響應(yīng)按鍵內(nèi)容,需要開中斷,對按鍵的上升沿進(jìn)行捕捉,當(dāng)有中斷到來時,進(jìn)入中斷寄存器判斷中斷的來源和類型,根據(jù)現(xiàn)在的模式信息決定系統(tǒng)的動作。
 
  LED顯示及蜂鳴器輸出也使用PIO模塊搭建,為使得電流充裕采用共陽極接法。
 
  LCD顯示使用的是1602的通用液晶模塊,在SOPC Builder內(nèi)提供有相應(yīng)的IP核。液晶為16×2的形式,可顯示英文字母及數(shù)字,字庫在液晶模塊內(nèi)部含有。
 
  與PC機通訊的接口
 
  系統(tǒng)與PC通訊有兩個接口,JTAG接口和UART接口。JTAG接口用來對FPGA進(jìn)行配置及程序下載;UART接口則作為命令控制接口,對完成的程序進(jìn)行系統(tǒng)的調(diào)試。這兩個組件在SOPC Builder內(nèi)均有提供,可直接使用。JTAG接口無需過多配置,外部硬件連接完成后,在內(nèi)部添加組件即可使用,對JTAG端口的操作由Quartus軟件內(nèi)部完成。
 
  UART接口與PC機通過RS-232協(xié)議進(jìn)行通訊,可以改變其波特率、奇偶校驗位、停止位、傳輸?shù)臄?shù)據(jù)位以及其他可選的RTS-CTS流控制信號等。實際應(yīng)用中波特率使用115200,8位數(shù)據(jù)位,1位停止位,帶奇偶校驗位,流控制則設(shè)為none。外部硬件連接使用MAX3232作為電平轉(zhuǎn)換芯片。
 
  存儲及配置單元
 
  FPGA使用AS配置模式,配置芯片為EPCS4。EPCS4芯片中的存儲區(qū)可分為兩個區(qū):FPGA配置存儲區(qū)用來保存FPGA配置的數(shù)據(jù),通用存儲區(qū)用來存放系統(tǒng)啟動代碼以及程序數(shù)據(jù)。除了SOPC Builder提供的EPCS組件外,Nios II IDE中的Flash Programmer實用程序可把數(shù)據(jù)固化到EPCS芯片中。
 
  FPGA芯片內(nèi)部開出一塊4K大小的RAM,作為程序運行時的緩存區(qū)。
 
  定時器
 
  SOPC Builder提供的定時器是一個32位的間隔定時器,與我們常見到的單片機內(nèi)部的定時器模塊類似,有遞增計數(shù)模式和遞減計數(shù)模式,在計數(shù)器為0時可生成中斷,也可令周期脈沖發(fā)生器輸出一個脈沖。對periodl和periodh寄存器進(jìn)行寫操作可設(shè)定定時器的周期。系統(tǒng)中使用定時器模塊計時,用來判斷命令執(zhí)行時間的長短,按鍵時長等功能,開中斷后可實現(xiàn)長按鍵開關(guān)機或Shift鍵功能。
 
  A/D采樣
 
  A/D采樣主要是為了檢測面罩壓力并反饋,根據(jù)反饋值對壓力進(jìn)行再調(diào)節(jié)。壓力檢測后壓力信號通過Maxim公司的A/D芯片MAX197進(jìn)行采樣。
 
  與PWM組件類似,SOPC Builder也沒有提供相應(yīng)的A/D組件IP核,需自行定制,定制過程與PWM組件相同。 
 
  系統(tǒng)軟件設(shè)計
 
  系統(tǒng)的工作流程如圖3所示。
 
 
圖3  呼吸機工作流程
 
  工作狀態(tài)
 
  設(shè)置狀態(tài):只能在系統(tǒng)斷電后,重新上電時進(jìn)入。除此之外,系統(tǒng)在任何情況下都無法進(jìn)入設(shè)置狀態(tài)。并且從設(shè)置狀態(tài)只能返回到關(guān)機狀態(tài)。“Up”,“Down”鍵改變選項,“Set”鍵進(jìn)入設(shè)置或確認(rèn)設(shè)置,“On/Off”取消設(shè)置或退出當(dāng)前這層設(shè)置界面,當(dāng)已退到最初設(shè)置界面時,再按“On/Off”為關(guān)機;
 
  關(guān)機狀態(tài):液晶顯示“Off”,且只響應(yīng)開機鍵和命令;
 
  待機狀態(tài):液晶顯示治療壓力的延時;
 
  治療狀態(tài):響應(yīng)“On/Off”鍵, “Up”鍵和“Down”鍵。其中,“On/Off”鍵用于“啟動/停止”治療;“Up”和“Down”用于以0.5厘米水柱的壓力為步長調(diào)整當(dāng)前工作壓力。
 
  對這四種狀態(tài)的切換都基于不同時段不同按鍵的組合,設(shè)計時考慮到治療操作的簡便性,把大多數(shù)操作都放到設(shè)置狀態(tài)內(nèi)進(jìn)行,治療時只需要根據(jù)實際情況略作調(diào)節(jié)即可。
 
  壓力反饋
 
  對于呼吸機這種直接面對病患的醫(yī)療器械,安全性是非常重要的,另外,對所加壓力的精度要求也比較高,就算是5%的壓力變化對于一個病人的呼吸系統(tǒng)來說也是不小的壓力。在電機有輸出有波動的時候,加一級反饋來對壓力進(jìn)行補償輸出,可以防止突然間的誤動作以及供電電壓波動帶來的壓力精度偏移。
 
  將A/D采樣的結(jié)果與預(yù)先設(shè)定的值進(jìn)行比較,如果低于設(shè)定值,則對輸出值進(jìn)行相應(yīng)的提升;如果高于設(shè)定值,則減少輸出值。對壓力輸出的調(diào)節(jié)要逐步進(jìn)行,根據(jù)實驗結(jié)果設(shè)定步長PWM_T_STEP,每次變化只增減PWM_T_STEP的值,這樣不會使得氣流忽大忽小,讓患者的呼吸系統(tǒng)感到不適。
 
按鍵及顯示
 
  系統(tǒng)中對按鍵的要求比較多,除了正常的單次按鍵外,還有開關(guān)機時的長按鍵、進(jìn)入設(shè)置狀態(tài)的組合鍵等。這些特殊功能的按鍵也是基于單次按鍵的基礎(chǔ)上進(jìn)行的。
 
 
  長按鍵需要對按鍵的觸發(fā)的上升沿和下降沿都進(jìn)行判斷,單次按鍵的下降沿中斷來到后,計數(shù)器開始計數(shù),到上升沿中斷到來為止,如果計數(shù)大于某一閾值則認(rèn)為該次按鍵為長按鍵。閾值的確定要根據(jù)系統(tǒng)的時鐘頻率以及所需要的延時長度。
 
  系統(tǒng)的顯示主要依靠LCD,16×2的液晶上只能顯示兩行菜單,但菜單的總條數(shù)遠(yuǎn)大于兩條,為此,菜單數(shù)組的顯示和執(zhí)行就需要兩套指針來實現(xiàn),顯示時單行滾動顯示,以便于觀察。
 
  結(jié)語
 
  本文所述的醫(yī)用呼吸機主控系統(tǒng),樣機已制出,現(xiàn)正進(jìn)行性能測試,目前運行正常。整個系統(tǒng)的設(shè)計重點在定制基于SOPC技術(shù)的嵌入式Nios II軟核處理器設(shè)計和電機驅(qū)動的實現(xiàn)上,與傳統(tǒng)的基于單片機的方案相比,Nios II只占用了FPGA芯片內(nèi)的一小部分資源,卻完成了包括單片機及相當(dāng)數(shù)量外設(shè)的功能,這樣既簡化了電路板設(shè)計,減少外圍器件的配置,又有效地控制了系統(tǒng)軟硬件的復(fù)雜度,降低了成本,縮短開發(fā)周期,更便于對未來產(chǎn)品的升級換代。
 
  參考文獻(xiàn):
 
  1.  李蘭英,Nios II嵌入式軟核——SOPC設(shè)計原理及應(yīng)用,北京航空航天大學(xué)出版社,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.  彭澄廉,挑戰(zhàn)SOC—基于Nios的SOPC設(shè)計與實踐,清華大學(xué)出版社,2004
 
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。