- 相關推薦
基于Small RTOS51的腸營養液輸液系統
來源:單片機及嵌入式系統應用 作者:北京航空航天大學 陳杰峰 王自強摘要:介紹一種基于Small RTOS51嵌入式操作系統的醫療儀器——智能型腸營養液輸液泵。首先介紹系統的功能及硬件組成,然后重點介紹如何利用Small RTOS51來設計系統軟件。最后,給出應用Small RTOS51嵌入式操作系統制造的智能型腸營養液輸液泵的試驗數據。 關鍵詞:Small RTOS51實時操作系統 腸營養液泵 嵌入式操作系統引言隨著各種電子系統在各個領域中應用的不斷深入,對電子系統本身的要求也越來越高,尤其對于控制系統軟件設計的可靠性、實時響應等各個方面的性能有了更嚴格的要求。單片機的程序設計不再是前后臺的運行模式,而是采用多任務實時操作系統的設計思想。由于使用嵌入式操作系統,可以將具體應用分解成多個任務,簡化了應用系統軟件的設計,使控制系統的實時性得到保證,使其達到理想狀態。良好的多任務設計,還有助于提高系統的穩定性和可靠性。目前,國內應用最多的是以51系列單片機為主的8位單片機。在51系列單片機系統中,可以進行移植的嵌入式操作系統為數不多。其中,Keil自帶的RTX51沒有源代碼,使用起來很不方便;uC/OSII雖然有源代碼,也有移植成的例子,但是,它對于51系列單片機系統的資源占用過大,需要外擴RAM,而且要保證每個函數的可重入性,使用起來比較勉強。Small RTOS51是專門為小RAM系統設計的占先式內核,占用資源少、實時性好,應用在本系統上非常合適。1 系統功能及硬件描述1.1 系統的功能描述對于處于昏迷狀態或食道進行手術的病人,需要一種按時、按量對病人進行腸營養液輸入的智能型腸營養液輸液泵,以達到維持病人生命的目的。本文介紹的智能型腸營養輸液泵(以下簡稱營養泵)主要實現以下功能:*根據要求,可以設定輸入營養液的總量、流速、溫度等參數,并且在運行過程中可以任意修改;*根據指令,自動檢測和控制營養液的流量和流速,并將數據反饋給主程序;*根據設定營養液的溫度,自動檢測和控制營養液的溫度,并將溫度數據反饋給主程序;*在出現營養液的溫度、流量和流速異常時,發出聲、光報警信號;*使用LCD顯示各種數據,隨時查看已經輸入營養液的數量、溫度、流量和流速;*營養泵主要由220VAC供電,同時備有應急充電電池,一次充電可以連續運行12小時以上,以備醫院緊急停時使用。1.2 系統的硬件描述本營養泵的電路原理框圖如圖1所示。
系統的主控CPU采用Philips公司的89C51RD2,實現系統的多任務控制;LCD采用北京青云的LCM12232B液晶模塊,顯示液體的控制參數;控制溫度的DAC采用TI公司的TLC5615,使營養液溫度誤差達到0.1℃以內;電池容量和溫度的反饋值均為模擬電壓,采用A/D,轉換后,送入CPU;A/D轉換器使用的是TI公司的TLC1543;應急電池充電電路,采用Linear公司的LTC4006,充電電壓為12.6V,電池容量為4000mAh;營養液流量反饋,采用紅外線對管,直接由CPU記數;營養泵電機使用直流電動機,采用控制電機運行和停止時間的方法對轉速進行閉環控制,以達到控制液體流量的目的。2 Small RTOS51簡介Small RTOS51是一個專門為51系列單片機設計的嵌入式實時操作內核,使用Keil編譯器可以直接使用其代碼,它有如下特點。①公開源代碼。只要遵循許可協議,任何人可以免費獲得源泉代碼,便于用戶的二次開發。②可移植性。用戶可以把與CPU有關的控制指令壓縮到最小,把大部分精力放在CPU的控制程序上?梢允褂肁NSI C編寫應用程序,不僅簡化了編程手段,而且便于程序移植。③可固化性。Small RTOS51為嵌入式系統設計,可以嵌入到產品中,成為產品的一部分。④占先式運行。Small RTOS51可以管理16個用戶任務,每個任務可以設置不同的優先級。Small RTOS51總是運行優先級最高的任務。⑤中斷管理。采用中斷管理方式,當有更高級的中斷申請時,將目前正在執行的任務掛起。如果優先級更高的任務被中斷喚醒,則高優先級的任務在中斷嵌套結束后立刻執行。中斷嵌套層數可達255層。如果需要,還可以禁止中斷的嵌套管理。⑥RAM需求小。SmallRTOS51為小RAM的系統設計,因而對RAM的需求只有幾百字節,相應的系統服務也少。3 系統的軟件實現按照系統所要實現的功能,將整個系統劃分為幾個并行的任務,占先式操作內核對任務的調度是按照任務優先權的高低進行。本文中,將系統劃分為9個任務,按其優先級從高到低的順序排列依次是:報警任務、溫控任務、按鍵輸入任務、主控制任務、電機運行任務、流量控制任務、記時任務、液晶顯示任務和電池電量檢測任務。系統上電以后進入主程序,首先對系統進行自檢并任務,啟動9個程,此時系統的運行就由Small RTOS51來接管。3.1 報警任務由于本文所述的營養泵,主要應用在危重病人的看護中,所以將報警任務在放在最重要的位置。報警程序由一個全局變量setbaojing來控制,其不斷檢測溫控程序、流量控制程序和電池電量檢測程序的輸出值。當上述程序出現故障報警信號時,setbaojing為1,報警程序立即使蜂鳴器和報警燈工作,并在液晶屏幕上顯示出現故障的名稱,直到有人來清除故障后,才可以正常運行。3.2 溫控任務由于人體對于溫度的變化非常敏感,而腸營養液是直接輸入到人的小腸當中,所以系統對溫度的要求非常高,為此,本系統將溫控任務放在第二位。先將設定的溫度參數輸入給CPU,經過PI計算,發出數字信號,再用TLC5615轉換成模擬量,控制加溫電路給營養液加溫。營養液的實際溫度,由溫度反饋電路轉換成電壓信號,再通過A/D轉換成數字信號反饋給CPU,由CPU進行閉環控制。3.3 控制輸入任務按鍵是實現人機交互的重要設備,要求實時性較高。從系統軟件的設計角度,不僅要讀出按鍵的狀態,還需要具有對按鍵的抖動、連擊、串鍵等特殊情況進行處理。系統按鍵輸入任務流程如圖2所示,本任務使用消息隊列指令KeyReadBuf[16],向主控制程序發送按鍵的相關信息。3.4 主控制任務主控制任務應用SmallRTOS51提供的系統函數OSQPend(KeyTemp,KeyRead Buf,0)來查錄按鍵輸入任務提供的信息,一旦發覺Key
【基于Small RTOS51的腸營養液輸液系統】相關文章:
基于WEB的在線考試系統03-09
基于VEGA的碼頭漫游系統03-07
基于網絡的遠程測控系統的研究03-07
基于DSP的智能座椅系統的設計03-07
基于企業系統觀的本錢分析02-27
基于PLC的電機調速系統設計12-07
基于Web技術的網絡考試系統03-18
基于RTLinux的實時控制系統03-20
基于ISD語音芯片的報警系統03-07