<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 醫療電子 > 設計應用 > 基于Small RTOS51的腸營(yíng)養液輸液系統

基于Small RTOS51的腸營(yíng)養液輸液系統

作者: 時(shí)間:2008-03-24 來(lái)源: 收藏

  引言

本文引用地址:http://dyxdggzs.com/article/80513.htm

  隨著(zhù)各種電子系統在各個(gè)領(lǐng)域中應用的不斷深入,對電子系統本身的要求也越來(lái)越高,尤其對于控制系統軟件設計的可靠性、實(shí)時(shí)響應等各個(gè)方面的性能有了更嚴格的要求。單片機的程序設計不再是前后臺的運行模式,而是采用多任務(wù)實(shí)時(shí)操作系統的設計思想。由于使用嵌入式操作系統,可以將具體應用分解成多個(gè)任務(wù),簡(jiǎn)化了應用系統軟件的設計,使控制系統的實(shí)時(shí)性得到保證,使其達到理想狀態(tài)。良好的多任務(wù)設計,還有助于提高系統的穩定性和可靠性。

  目前,國內應用最多的是以51系列單片機為主的8位單片機。在51系列單片機系統中,可以進(jìn)行移植的嵌入式操作系統為數不多。其中,Keil自帶的RTX51沒(méi)有源代碼,使用起來(lái)很不方便;uC/OSII雖然有源代碼,也有移植成的例子,但是,它對于51系列單片機系統的資源占用過(guò)大,需要外擴RAM,而且要保證每個(gè)函數的可重入性,使用起來(lái)比較勉強。是專(zhuān)門(mén)為小RAM系統設計的占先式內核,占用資源少、實(shí)時(shí)性好,應用在本系統上非常合適。

  1 系統功能及硬件描述

  1.1 系統的功能描述

  對于處于昏迷狀態(tài)或食道進(jìn)行手術(shù)的病人,需要一種按時(shí)、按量對病人進(jìn)行腸營(yíng)養液輸入的智能型腸營(yíng)養液輸液泵,以達到維持病人生命的目的。本文介紹的智能型腸營(yíng)養輸液泵(以下簡(jiǎn)稱(chēng)營(yíng)養泵)主要實(shí)現以下功能:

  根據要求,可以設定輸入營(yíng)養液的總量、流速、溫度等參數,并且在運行過(guò)程中可以任意修改;

  根據指令,自動(dòng)檢測和控制營(yíng)養液的流量和流速,并將數據反饋給主程序;

  根據設定營(yíng)養液的溫度,自動(dòng)檢測和控制營(yíng)養液的溫度,并將溫度數據反饋給主程序;

  在出現營(yíng)養液的溫度、流量和流速異常時(shí),發(fā)出聲、光報警信號;

  使用LCD顯示各種數據,隨時(shí)查看已經(jīng)輸入營(yíng)養液的數量、溫度、流量和流速;

  營(yíng)養泵主要由220VAC供電,同時(shí)備有應急充電電池,一次充電可以連續運行12小時(shí)以上,以備醫院緊急停時(shí)使用。

  1.2 系統的硬件描述

  本營(yíng)養泵的電路原理框圖如圖1所示。

  

本營(yíng)養泵的電路原理框圖

 

  系統的主控CPU采用Philips公司的89C51RD2,實(shí)現系統的多任務(wù)控制;LCD采用北京青云的LCM12232B液晶模塊,顯示液體的控制參數;控制溫度的DAC采用TI公司的TLC5615,使營(yíng)養液溫度誤差達到0.1℃以?xún)?電池容量和溫度的反饋值均為模擬電壓,采用A/D,轉換后,送入CPU;A/D轉換器使用的是TI公司的TLC1543;應急電池充電電路,采用Linear公司的LTC4006,充電電壓為12.6V,電池容量為4000mAh;營(yíng)養液流量反饋,采用紅外線(xiàn)對管,直接由CPU記數;營(yíng)養泵電機使用直流電動(dòng)機,采用控制電機運行和停止時(shí)間的方法對轉速進(jìn)行閉環(huán)控制,以達到控制液體流量的目的。

  2 簡(jiǎn)介

  是一個(gè)專(zhuān)門(mén)為51系列單片機設計的嵌入式實(shí)時(shí)操作內核,使用Keil編譯器可以直接使用其代碼,它有如下特點(diǎn)。

  公開(kāi)源代碼。只要遵循許可協(xié)議,任何人可以免費獲得源泉代碼,便于用戶(hù)的二次開(kāi)發(fā)。

  可移植性。用戶(hù)可以把與CPU有關(guān)的控制指令壓縮到最小,把大部分精力放在CPU的控制程序上??梢允褂肁NSI C編寫(xiě)應用程序,不僅簡(jiǎn)化了編程手段,而且便于程序移植。

  可固化性。Small RTOS51為嵌入式系統設計,可以嵌入到產(chǎn)品中,成為產(chǎn)品的一部分。

  占先式運行。Small RTOS51可以管理16個(gè)用戶(hù)任務(wù),每個(gè)任務(wù)可以設置不同的優(yōu)先級。Small RTOS51總是運行優(yōu)先級最高的任務(wù)。

  中斷管理。采用中斷管理方式,當有更高級的中斷申請時(shí),將目前正在執行的任務(wù)掛起。如果優(yōu)先級更高的任務(wù)被中斷喚醒,則高優(yōu)先級的任務(wù)在中斷嵌套結束后立刻執行。中斷嵌套層數可達255層。如果需要,還可以禁止中斷的嵌套管理。

  RAM需求小。SmallRTOS51為小RAM的系統設計,因而對RAM的需求只有幾百字節,相應的系統服務(wù)也少。

  3 系統的軟件實(shí)現

  按照系統所要實(shí)現的功能,將整個(gè)系統劃分為幾個(gè)并行的任務(wù),占先式操作內核對任務(wù)的調度是按照任務(wù)優(yōu)先權的高低進(jìn)行。本文中,將系統劃分為9個(gè)任務(wù),按其優(yōu)先級從高到低的順序排列依次是:報警任務(wù)、溫控任務(wù)、按鍵輸入任務(wù)、主控制任務(wù)、電機運行任務(wù)、流量控制任務(wù)、記時(shí)任務(wù)、液晶顯示任務(wù)和電池電量檢測任務(wù)。系統上電以后進(jìn)入主程序,首先對系統進(jìn)行自檢并任務(wù),啟動(dòng)9個(gè)程,此時(shí)系統的運行就由Small RTOS51來(lái)接管。

  3.1 報警任務(wù)

  由于本文所述的營(yíng)養泵,主要應用在危重病人的看護中,所以將報警任務(wù)在放在最重要的位置。報警程序由一個(gè)全局變量setbaojing來(lái)控制,其不斷檢測溫控程序、流量控制程序和電池電量檢測程序的輸出值。當上述程序出現故障報警信號時(shí),setbaojing為1,報警程序立即使蜂鳴器和報警燈工作,并在液晶屏幕上顯示出現故障的名稱(chēng),直到有人來(lái)清除故障后,才可以正常運行。

  3.2 溫控任務(wù)

  由于人體對于溫度的變化非常敏感,而腸營(yíng)養液是直接輸入到人的小腸當中,所以系統對溫度的要求非常高,為此,本系統將溫控任務(wù)放在第二位。先將設定的溫度參數輸入給CPU,經(jīng)過(guò)PI計算,發(fā)出數字信號,再用TLC5615轉換成模擬量,控制加溫電路給營(yíng)養液加溫。營(yíng)養液的實(shí)際溫度,由溫度反饋電路轉換成電壓信號,再通過(guò)A/D轉換成數字信號反饋給CPU,由CPU進(jìn)行閉環(huán)控制。

  3.3 控制輸入任務(wù)

  按鍵是實(shí)現人機交互的重要設備,要求實(shí)時(shí)性較高。從系統軟件的設計角度,不僅要讀出按鍵的狀態(tài),還需要具有對按鍵的抖動(dòng)、連擊、串鍵等特殊情況進(jìn)行處理。系統按鍵輸入任務(wù)流程如圖2所示,本任務(wù)使用消息隊列指令KeyReadBuf[16],向主控制程序發(fā)送按鍵的相關(guān)信息。

  

系統按鍵輸入任務(wù)流程

 

  3.4 主控制任務(wù)

  主控制任務(wù)應用SmallRTOS51提供的系統函數OSQPend(KeyTemp,KeyRead Buf,0)來(lái)查錄按鍵輸入任務(wù)提供的信息,一旦發(fā)覺(jué)KeyReadBuf[16]中有了相關(guān)信息,立刻運行輸入程序。根據按鍵的命令,控制電機運行程序、流量控制程序、液晶顯示程序的運行及停止,每當有一組按鍵信息進(jìn)入消息隊列中,本程序就修改一次運行指令。

  3.5 電機運行任務(wù)

  電機運行任務(wù)一直處于等待的狀態(tài),當主控制程序給它發(fā)關(guān)字相應的指令才開(kāi)始運行。在運行過(guò)程中,電機運行任務(wù)受到主控制程序和流量控制程序的控制,一旦有停止運行的命令,或流量有異常,就立刻停止電機的運行。

  3.6 流量控制任務(wù)

  液量控制任務(wù)主要由CPU來(lái)控制輸入營(yíng)養液的流量及流速。正常運行情況下,流量控制程序會(huì )向液晶顯示程序發(fā)送流量及流速的信息,使液晶上顯示已經(jīng)輸入營(yíng)養液的數量、流量及流速。一旦發(fā)生異常情況,如流速過(guò)快、一段時(shí)間營(yíng)養液沒(méi)有流動(dòng)等故障,立刻向電機運行程序發(fā)出指令,停止電機的運行,同時(shí)將setbaojing置1,使報警程序運行。

  3.7 記時(shí)任務(wù)

  記時(shí)任務(wù)主要是為系統提供一個(gè)同步時(shí)鐘,為系統提供同步運行的基準。

  3.8 液晶顯示任務(wù)

  液晶顯示任務(wù)主要由主控制程序、報警程序、流量控制程序、電池電量檢測程序傳遞到消息隊列中的參數。通過(guò)運行顯示程序,在液晶上顯示相關(guān)的漢字和字符,本身不向其它任務(wù)發(fā)送命令。

  3.9 電池電量檢測任務(wù)

  一旦發(fā)生220VAC市電斷電的情況,營(yíng)養泵會(huì )立刻自動(dòng)切換到內置的鋰電池供電,電池可以連續使用12小時(shí)以上。電池電量檢測程序會(huì )自動(dòng)運行,檢測電池的電量。在電量低的情況,電池電量檢測程序會(huì )發(fā)出報警信號,但不會(huì )主動(dòng)停止系統的運行。

  4 試驗數據

  用本文所述的智能腸營(yíng)養液泵對目前市場(chǎng)上常用的幾種營(yíng)養袋進(jìn)行實(shí)驗。

  以上實(shí)驗數據表明,本智能腸營(yíng)養液泵的輸液量精度遠遠高于目前市場(chǎng)上10%的通用標準,并且對各種品牌的營(yíng)養液袋都能控制在足夠的精度范圍內。

  結語(yǔ)

  在腸營(yíng)養液泵的設計中,使用了Small TROS51,大大簡(jiǎn)化了程序設計的難度,增強了系統的可靠性和安全性,滿(mǎn)足系統實(shí)時(shí)性要求。本設計達到了國家標準,并且已經(jīng)在臨庫中開(kāi)始使用。

蜂鳴器相關(guān)文章:蜂鳴器原理


關(guān)鍵詞: Small RTOS51

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>