基于SOPC技術(shù)的醫用呼吸機主控系統設計
系統與PC通訊有兩個(gè)接口,JTAG接口和UART接口。JTAG接口用來(lái)對FPGA進(jìn)行配置及程序下載;UART接口則作為命令控制接口,對完成的程序進(jìn)行系統的調試。這兩個(gè)組件在SOPC Builder內均有提供,可直接使用。JTAG接口無(wú)需過(guò)多配置,外部硬件連接完成后,在內部添加組件即可使用,對JTAG端口的操作由Quartus軟件內部完成。
UART接口與PC機通過(guò)RS-232協(xié)議進(jìn)行通訊,可以改變其波特率、奇偶校驗位、停止位、傳輸的數據位以及其他可選的RTS-CTS流控制信號等。實(shí)際應用中波特率使用115200,8位數據位,1位停止位,帶奇偶校驗位,流控制則設為none。外部硬件連接使用MAX3232作為電平轉換芯片。
存儲及配置單元
FPGA使用AS配置模式,配置芯片為EPCS4。EPCS4芯片中的存儲區可分為兩個(gè)區:FPGA配置存儲區用來(lái)保存FPGA配置的數據,通用存儲區用來(lái)存放系統啟動(dòng)代碼以及程序數據。除了SOPC Builder提供的EPCS組件外,Nios II IDE中的Flash Programmer實(shí)用程序可把數據固化到EPCS芯片中。
FPGA芯片內部開(kāi)出一塊4K大小的RAM,作為程序運行時(shí)的緩存區。
定時(shí)器
SOPC Builder提供的定時(shí)器是一個(gè)32位的間隔定時(shí)器,與我們常見(jiàn)到的單片機內部的定時(shí)器模塊類(lèi)似,有遞增計數模式和遞減計數模式,在計數器為0時(shí)可生成中斷,也可令周期脈沖發(fā)生器輸出一個(gè)脈沖。對periodl和periodh寄存器進(jìn)行寫(xiě)操作可設定定時(shí)器的周期。系統中使用定時(shí)器模塊計時(shí),用來(lái)判斷命令執行時(shí)間的長(cháng)短,按鍵時(shí)長(cháng)等功能,開(kāi)中斷后可實(shí)現長(cháng)按鍵開(kāi)關(guān)機或Shift鍵功能。
A/D采樣
A/D采樣主要是為了檢測面罩壓力并反饋,根據反饋值對壓力進(jìn)行再調節。壓力檢測后壓力信號通過(guò)Maxim公司的A/D芯片MAX197進(jìn)行采樣。
與PWM組件類(lèi)似,SOPC Builder也沒(méi)有提供相應的A/D組件IP核,需自行定制,定制過(guò)程與PWM組件相同。
系統軟件設計
系統的工作流程如圖3所示。
圖3 呼吸機工作流程
工作狀態(tài)
設置狀態(tài):只能在系統斷電后,重新上電時(shí)進(jìn)入。除此之外,系統在任何情況下都無(wú)法進(jìn)入設置狀態(tài)。并且從設置狀態(tài)只能返回到關(guān)機狀態(tài)。“Up”,“Down”鍵改變選項,“Set”鍵進(jìn)入設置或確認設置,“On/Off”取消設置或退出當前這層設置界面,當已退到最初設置界面時(shí),再按“On/Off”為關(guān)機;
關(guān)機狀態(tài):液晶顯示“Off”,且只響應開(kāi)機鍵和命令;
待機狀態(tài):液晶顯示治療壓力的延時(shí);
治療狀態(tài):響應“On/Off”鍵, “Up”鍵和“Down”鍵。其中,“On/Off”鍵用于“啟動(dòng)/停止”治療;“Up”和“Down”用于以0.5厘米水柱的壓力為步長(cháng)調整當前工作壓力。
對這四種狀態(tài)的切換都基于不同時(shí)段不同按鍵的組合,設計時(shí)考慮到治療操作的簡(jiǎn)便性,把大多數操作都放到設置狀態(tài)內進(jìn)行,治療時(shí)只需要根據實(shí)際情況略作調節即可。
壓力反饋
對于呼吸機這種直接面對病患的醫療器械,安全性是非常重要的,另外,對所加壓力的精度要求也比較高,就算是5%的壓力變化對于一個(gè)病人的呼吸系統來(lái)說(shuō)也是不小的壓力。在電機有輸出有波動(dòng)的時(shí)候,加一級反饋來(lái)對壓力進(jìn)行補償輸出,可以防止突然間的誤動(dòng)作以及供電電壓波動(dòng)帶來(lái)的壓力精度偏移。
將A/D采樣的結果與預先設定的值進(jìn)行比較,如果低于設定值,則對輸出值進(jìn)行相應的提升;如果高于設定值,則減少輸出值。對壓力輸出的調節要逐步進(jìn)行,根據實(shí)驗結果設定步長(cháng)PWM_T_STEP,每次變化只增減PWM_T_STEP的值,這樣不會(huì )使得氣流忽大忽小,讓患者的呼吸系統感到不適。
按鍵及顯示
系統中對按鍵的要求比較多,除了正常的單次按鍵外,還有開(kāi)關(guān)機時(shí)的長(cháng)按鍵、進(jìn)入設置狀態(tài)的組合鍵等。這些特殊功能的按鍵也是基于單次按鍵的基礎上進(jìn)行的。
長(cháng)按鍵需要對按鍵的觸發(fā)的上升沿和下降沿都進(jìn)行判斷,單次按鍵的下降沿中斷來(lái)到后,計數器開(kāi)始計數,到上升沿中斷到來(lái)為止,如果計數大于某一閾值則認為該次按鍵為長(cháng)按鍵。閾值的確定要根據系統的時(shí)鐘頻率以及所需要的延時(shí)長(cháng)度。
系統的顯示主要依靠LCD,16×2的液晶上只能顯示兩行菜單,但菜單的總條數遠大于兩條,為此,菜單數組的顯示和執行就需要兩套指針來(lái)實(shí)現,顯示時(shí)單行滾動(dòng)顯示,以便于觀(guān)察。
結語(yǔ)
本文所述的醫用呼吸機主控系統,樣機已制出,現正進(jìn)行性能測試,目前運行正常。整個(gè)系統的設計重點(diǎn)在定制基于SOPC技術(shù)的嵌入式Nios II軟核處理器設計和電機驅動(dòng)的實(shí)現上,與傳統的基于單片機的方案相比,Nios II只占用了FPGA芯片內的一小部分資源,卻完成了包括單片機及相當數量外設的功能,這樣既簡(jiǎn)化了電路板設計,減少外圍器件的配置,又有效地控制了系統軟硬件的復雜度,降低了成本,縮短開(kāi)發(fā)周期,更便于對未來(lái)產(chǎn)品的升級換代。
參考文獻:
1. 李蘭英,Nios II嵌入式軟核——SOPC設計原理及應用,北京航空航天大學(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. 彭澄廉,挑戰SOC—基于Nios的SOPC設計與實(shí)踐,清華大學(xué)出版社,2004
評論