基于Linux和MiniGUI的心電監(jiān)護(hù)儀設(shè)計(jì)
2. 3. 2 心電采集與顯示
心電數(shù)據(jù)采集采用定時(shí)器進(jìn)行采集和顯示,定時(shí)器使用SetTimer 函數(shù)創(chuàng)建,創(chuàng)建時(shí)需要指定定時(shí)器標(biāo)識(shí)號(hào)以及定時(shí)時(shí)間,當(dāng)定時(shí)時(shí)間到達(dá)時(shí),定時(shí)器將會(huì)產(chǎn)生MSG _ TIMER 消息,本系統(tǒng)的心電采集頻率為200Hz。
從A/D 寄存器讀取三通道的數(shù)據(jù)存入數(shù)組中,并將數(shù)組中的數(shù)據(jù)在液晶顯示器上繪出。在MiniGUI 中實(shí)時(shí)繪圖采用GDI,GUI 系統(tǒng)的一個(gè)重要組成部分就是GDI,即圖形設(shè)備接口( Graphics Device
Interface) 。通過(guò)GDI,GUI 程序就可以在計(jì)算機(jī)屏幕上,或者其它的顯示設(shè)備上進(jìn)行圖形輸出,包括基本繪圖和文本輸出。所有繪圖相關(guān)的函數(shù)均需要有一個(gè)設(shè)備上下文,為了提高繪圖效率,在這里建立私有設(shè)備上下文,所建立的設(shè)備上下文在整個(gè)窗口生存期內(nèi)有效,從而免除了獲取和釋放的過(guò)程。利用hdc =GetPrivateClientDC( hDlg) 可獲得私有設(shè)備上下文。然后調(diào)用MoveTo ( HDC hdc, int x, int y) 和LineTo( HDC hdc, int x, int y) 對(duì)數(shù)組中的數(shù)據(jù)進(jìn)行畫線,由于采集到的心電數(shù)據(jù)較小,因此在對(duì)其進(jìn)行畫線之前根據(jù)顯示區(qū)域?qū)λ袛?shù)據(jù)進(jìn)行適當(dāng)放大,這樣可以使心電波形在液晶顯示器上直觀顯示。
2. 3. 3 心電數(shù)據(jù)分析
在心電數(shù)據(jù)顯示和分析線程中,由于心電信號(hào)容易受到各種干擾的影響,為了濾除心電信號(hào)中的干擾成分,首先要進(jìn)行數(shù)字濾波處理,采用FFT 濾波和滑動(dòng)平均濾波的方法使圖像得以平滑,并采用差分方法進(jìn)行R 波檢測(cè)。當(dāng)采集到5 秒的數(shù)據(jù)的時(shí)候,程序啟動(dòng)心電數(shù)據(jù)分析線程,對(duì)存儲(chǔ)在數(shù)組中的心電數(shù)據(jù)進(jìn)行分析,主要進(jìn)行R 波檢測(cè),并且在液晶顯示器上顯示。
2. 3. 4 心電界面程序的編譯
心電界面程序首先是在PC 機(jī)上編寫的,為了能夠在目標(biāo)平臺(tái)上運(yùn)行,必須先進(jìn)行交叉編譯,編譯
如下:
#arm-linux-gcc -I /home /include -L/home /lib-O2 -oxindian xindian.c -lminigui -lmgext -lm -ljpeg-lpthread-lpng
這時(shí)生成心電界面程序的可執(zhí)行文件,將其下載到目標(biāo)平臺(tái)中即可運(yùn)行。
3 結(jié)束語(yǔ)
本文研制的心電監(jiān)護(hù)儀采用高性能的ARM9 微處理器為核心,在其上移植Linux 操作系統(tǒng),并用
MiniGUI 進(jìn)行心電界面開(kāi)發(fā),能夠?qū)π碾娦盘?hào)進(jìn)行采集、波形顯示及處理,實(shí)現(xiàn)心電信號(hào)的實(shí)時(shí)監(jiān)護(hù)的目的。該心電監(jiān)護(hù)儀結(jié)合了目前現(xiàn)有的心電監(jiān)護(hù)儀的優(yōu)點(diǎn),體積小、重量輕,并且具有操作界面簡(jiǎn)潔、可擴(kuò)展性強(qiáng)等優(yōu)點(diǎn),對(duì)各種心率失常及各種心臟病變有較高的診斷價(jià)值。本文引用地址:http://www.biyoush.com/article/148229.htm linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論