多參數監護儀簡介
duō cān shù jiān hù yí
多參數重量監護儀能為醫學臨床診斷提供重要的病人信息,可實時檢測人體的心電信號、心率、血氧飽和度、血壓、呼吸頻率和體溫等重要參數,實現對各參數的監督報警。信息存儲和傳輸,是壹種監護病人的重要設備,但目前國內的監護儀壹般功能單壹,多為CRT顯示,體積較大,移動不方便,存在著不足。該便攜式微電腦參數生理監護儀,檢測參數多,設計緊湊,體積小巧,攜帶方便,既可用於病房,也可用於室外,可以定時、連續、長時間地檢測病人的重要生命特征參數,它在保障病人的生命安全方面具有重要的臨床使用價值。
2 工作原理 2.1 1.系統工作原理便攜式微電腦多參數生理監護儀的主機由兩個16位微控制器80C196組成。
系統通過信號檢測與預處理模塊將生物醫學信號轉換成電信號,並進行幹擾抑制、信號濾波和放大等預處理。然後,通過數據提取與處理模塊進行采樣、量化,並對各參數進行計算分析,結果與設定閾值比較,進行監督報警,將結果數據實時存儲到RAM,並可實時傳送至PC機上,在PC機上可實時顯示各參數值。
2.2 2.系統結構系統原理框圖如圖1所示。該監護儀由兩個單片機組成雙CPU系統。
單片機1完成對體溫、心電波形、脈搏脈形的信號檢測、處理、數據存儲,並通過LCD顯示屏對各波形、參數進行定時顯示、報警。
單片機2承擔其中耗時較長的血壓測量及血氧飽和度的檢測,使之不影響整個系統的正常工作,同時還承擔對心率、呼吸頻率的測定。
兩個單片機間的信息交換通過1個8位的並行口進行,由2根I/O口實現通信控制。具體是用P1口,配合兩個高速輸入、輸出I/O口(HIS.0、HSO.0),用作兩個單片機之間的數據傳送。這種雙機間的連續方式屬於松耦合的多處理機系統(參考文獻8),在硬件實現上較為簡單,只需在軟件編程時,為其通信方式設計必要的通信協議、數據傳輸方式等。
2.3 3.系統硬件設計(1)系統采用EEPROM 28C64作為程序存儲器;采用壹片非易失性靜態存儲器(NASRAM)作為數據存儲器。NASRAM具有靜態存儲器的優點,同時具有非易失性的特點。非易失性的特點是指存儲芯片在掉電的情況下,能夠正確無誤地保存所有數據,保存時間長達10年。采用芯片的非易失性的特點可以不用為此芯片提供掉電備用電源,即可實現掉電數據保護。
(2)液晶顯示模塊
為了對心電波形、脈搏波形及其它生理參數進行顯示,而且對波形顯示具有足夠的分辨率,為此系統采用圖形液晶顯示屏。為了減少儀器的體積,實現系統低成本,功耗小的要求,選用了特別適用於便攜式監護儀的單色LCD顯示屏。
該顯示屏為日立LMG70520XNGR液晶顯示屏,點陣數為640×200,點尺寸為0.22×0.30,其驅動電源為+5V和20~21V,耗電僅8mW,能滿足本系統的要求。
為控制該顯示屏的顯示,我們選取了適用於該顯示屏的顯示控制器SED1330。該芯片是用於計算機的指令與數據,並產生相應的時序及數據控制液晶顯示屏的顯示。該控制器自帶RAM,自行管理顯示緩沖區,與CPU之間通過8位數據並行傳輸,與顯示屏之間是4位數據並行傳輸。
(3)鍵盤輸入模塊
系統設計的功能鍵采用中斷方式輸入。當有任壹功能鍵按下時,產生鍵盤中斷,CPU執行中斷程序,讀取鍵碼,執行相應操作;沒有鍵按下時,不占用CPU的運行時間,提高了CPU的運行效率。
鍵盤采用兩片74LS373構成矩陣軟件編碼鍵盤,鍵盤部分直接掛在單片機1的總線上。不占用單片機I/O口線,也不必為此擴展系統I/O口,可減少系統消耗功率。
通過為鍵盤分配相應的I/O地址,可采用讀寫該地址的方式獲得鍵碼。硬件實現簡單,軟件編程方便。
(4)電源系統
基於低功耗和便於攜帶使用的考慮,系統采用電池供電及外接ACDC變換器件供電的方式。設計采用三節1.5V電池供電。該電壓通過穩壓器件提供+5V的電壓給系統工作。同時采用DCDC電壓變換器+5V的電壓變換至18~24V電壓,以提供給LCD顯示屏工作。
選擇電池作為電源是基於如下考慮:具有高輸出能力、小型結構、標準尺寸和低價格。
(5)外圍器件控制
系統各外圍器件的片選信號由74LS373鎖存的地址信號,經芯片GAL16V8C譯碼產生。GAL芯片是可編程邏輯陣列,通過對其引腳的編程,將其作為譯碼器,依據P4口高字節8位地址進行片選,其編程方便,使用靈活。系統除用作譯碼器外,在單片機2中,還用作控制氣泵和氣閥的開關。
通過簇已分配給氣泵或氣閥I/O口地址,寫上“0”或“1”,則輸出引腳OUT1、OUT2為低或高電平。該電平將保持,直到再次往同壹地址寫“1”或“0”,如此,可定時控制氣泵或氣閥開關。
2.4 4.系統軟件設計系統軟件的主要特點是,以實時數據為核心,以功能獨立化、結構模塊化為軟件設計模式。系統開發采用了結構化的,從上到下的模塊劃分及從底到上的硬件功能封裝的軟件開發設計方法。本系統采用C96語言進行軟件系統開發。
(1)數據采集程序
數據采集到整個系統最重要的問題。如何實現數據采集,保證數據采集的實時性,並且能高效率地進行數據采集,盡可能少的時間占用少的系統資源,對於多參數同時監護的情況下,是確保系統處理的實時性的重要因素。
在軟件設計中,我們利用硬件定時器及軟件定時器,進行定時中斷,進行多通道、多采樣點的數據采集流程設計。由於人體生理信號的變化較緩慢,采用此種方法已經可以確保高精度、實時性的數據采集。
(2)液晶顯示控制
系統顯示功能的實現,實際上是對顯示控制器SED1330的編程控制。SED1330控制器具有系統控制、顯示操作、繪制操作、存儲操作等***15條指令。
在進行系統顯示模塊的編程時,我們利用C96語言對SED1330的指令功能進行分類組合、封裝,編制了壹個基本的顯示控制圖函數庫。通過對子函數的調用,非常方便地實現了復雜的人機界面程序設計。
設計的子函數如下:
lnitCD(); /*初始化SED1330*/
ClearDispBufffer(); /*對顯示緩存區清零*/
ChooseScreen(screen); /*選擇顯示緩存區*/
SetCsrAbsAddr(addr); /*設置光標絕對位置*/
SetCsrDir(dir); /*設置光標移動方向*/
PutChar16xy(x,y,data); /*顯示點陣為16×16的字體*/
SetPutPixel(x,y); /*在顯示屏上顯示壹點*/
H_line(x1,x2,y,linestyle); /*畫水平線*/
V_line(x1,y1,x2,y2); /*畫垂直線*/
lnvert(x1,y1,x2,y2); /*對矩形區域反顯*/
Clear(left,top,right,bottom); /*清除矩形區域*/
部分液晶顯示子程序示例如下:
# include 80c196.h
# include “data.dat”
# include init.c
# define UP 0x4e
# define DOWN 0x4f
# define LEFT 0x4d
# define RIGHT 0x4c
# define AP 80
# define SA1 0
# define SAD2 0x3e80
# define Max_X 640
# define Max_Y 200
# define ECQ_Y 128
# define PLUSE_Y 50
# define NORMAL ox4f
# define DOT_1 0xaa
# define DOT_2 0x66
unsigned char * m_reg;
unsigned char * pram_reg;
unsigned int_sad;
/************************/
/* var screensvalue is:1 or 2.*/
ChooseScreen(screen)
Unsigned char screen;
{
switch(screen){
case 1:
_sadSAD1;break;
case 2:
_sadSAD2;break;
defaulf:
_sadSAD1;}
}
/*************************/
lnitl_CD()
{
* m_reg0x40; /*SYSTEM SET */
* pram_reg0x34;/P1 CGRAM font dot array(now is:8x16)*/
* pram_reg0x87; /*P2 */
* pram_reg0x07;
* pram_reg80;
* pram_reg93; /*P5 93 */
* pram_reg200;
* pram_reg80; /*P7 */
* pram_reg0; /*P8 */
* m_reg0x44; /*SetSooll() */
/*set SAD1 */
* pram_reg0x0; /*P1 */
* pram_reg200; /*P3 */
/* set SAD2 */
* pram_reg0x80; /*P4 */
* pram_reg0x3e;
* pram_reg200; /*P6 */
/*set SAD3 */
* pram_reg0x00; /*P7 */
* pram_reg0x7d; /*P8 */
/*set SAD4 */
┆
* m_reg0xf58; /*Set Display(OFF)*/
/* *pram_reg0; */
* m_reg0x5d; /*SetCsrForm()*/
* pram_reg6;
* pram_reg0x86;
* m_reg0x5a; /*set HDOT SCR*/
* pram_reg0; /*must be clear*/
* m_reg0x4c; /*set csr dis is:RIGHT*/
* m_reg0x5b; /*SetOvlay */
* pram_reg0x1c; /*three graphics display zone*/
* m_reg0x5c; /*SetCGRAM(addr)*/
* pram_reg0xf0; /*turn off the CGAM */
* pram_reg0;
* m_reg0x59; /*SetDisplay(ON)*/
* pram_reg0x16;
ClearDispBuffer();
}
………………
利用LCD顯示屏進行顯示時,需要解決的問題是清除圖形間斷現象。模擬波形是連續圖形,但顯示屏是以離散點加以顯示的,這樣會造成波形快速升降沿間斷的現象。
為此,我們設計了壹比較子程序。當相鄰兩列的點的幅值差大於2時,就將兩點間的所有點“點亮”,使顯示的圖形連續。
(3)中斷系統的應用
本系統功能的實現,主要由中斷程序程序實現。如采用鍵盤輸入中斷、數據采集中斷、雙機通信、上下位機間的通信等中斷服務。中斷服務在整個系統軟件中起著不可缺少的作用。