《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 業(yè)界動(dòng)態(tài) > 基于Linux和MiniGUI的心電監(jiān)護(hù)儀設(shè)計(jì)

基于Linux和MiniGUI的心電監(jiān)護(hù)儀設(shè)計(jì)

2017-04-19

  0 引言

  隨著人們生活節(jié)奏加快,,人口逐漸老齡化,心臟疾病成為危害人類健康和生命的主要疾病之一,。心電監(jiān)護(hù)系統(tǒng)為心臟病人診斷和治療提供了一個(gè)有效的手段,,對(duì)心臟疾病的防治和診斷具有重大的意義,,本介紹一種基于LinuxMiniGUI 的心電監(jiān)護(hù)系統(tǒng),能夠滿足患者隨時(shí)隨地對(duì)心電進(jìn)行方便快捷的監(jiān)測(cè),,及時(shí)地發(fā)現(xiàn)異常情況并采取有效的措施,,從而更好地保護(hù)人們的身體健康。

  1 硬件系統(tǒng)設(shè)計(jì)

  本系統(tǒng)采用S3C2440 處理器作為控制中心,,S3C2440 是基于ARM920T 內(nèi)核的16 /32 位RISC 嵌入式處理器,,最高主頻可達(dá)532MHz,提供64MSDRAM,、64M Nand Flash 以及2M Nor Flash 的存儲(chǔ)設(shè)備,,獨(dú)立的16kB 指令緩存和16kB 數(shù)據(jù)緩存,LCD 控制器,,3通道的異步串口,,SPI 同步串口,117 位通用的I /O 口,,1個(gè)內(nèi)部時(shí)鐘,,8通道10 位的ADC,觸摸屏接口,,以太網(wǎng)控制器,、PCMCIA 接口、USB 接口等,,具有高性能,、低功耗、高性價(jià)比等特點(diǎn),,主要用于視頻會(huì)議,、網(wǎng)絡(luò)監(jiān)控,GPS 定位/導(dǎo)航儀等,,特別是醫(yī)療電子設(shè)備,。系統(tǒng)的整體硬件結(jié)構(gòu)如圖1 所示,能夠?qū)崿F(xiàn)對(duì)心電信號(hào)采集,、處理,、顯示,、存儲(chǔ)等功能。

526b6026b6ec8018c6192f023c29e2a4.jpg

  圖1 系統(tǒng)總體硬件結(jié)構(gòu)

  2 軟件系統(tǒng)設(shè)計(jì)

  2. 1 構(gòu)建嵌入式Linux

  心電界面的開發(fā)是基于MiniGUI 的嵌入式Linux系統(tǒng),。在各種嵌入式操作系統(tǒng)中,,Linux 以其結(jié)構(gòu)清晰、源代碼公開,、功能強(qiáng)大,、又易于移植得到廣泛的使用。本系統(tǒng)內(nèi)核采用2. 6 版本的內(nèi)核,,Linux 2. 6 內(nèi)核在性能,、模塊支持、可用性,、可測(cè)量性等方面有大幅度的提高,。一個(gè)完整的嵌入式Linux 系統(tǒng)主要包括BootLoader( 引導(dǎo)程序) 、內(nèi)核和根文件系統(tǒng)3 個(gè)方面,。本系統(tǒng)中Bootloader 采用VVi,,文件系統(tǒng)采用Yaffs。根據(jù)目標(biāo)平臺(tái)實(shí)際的需要,,對(duì)引導(dǎo)程序,、內(nèi)核和文件系統(tǒng)進(jìn)行裁減、配置,,最后把編譯好的ViVi 以及生成的Linux 內(nèi)核和文件系統(tǒng)的鏡像文件燒錄到平臺(tái)中并運(yùn)行,,嵌入式Linux 構(gòu)建完畢。

  2. 2 圖形用戶界面MiniGUI

  MiniGUI 是基于Linux 的輕量級(jí)的圖形用戶界面支持系統(tǒng),,是由原清華大學(xué)教師魏永明主持開發(fā),,遵循GPL 公約。所支持的操作系統(tǒng)已不僅僅限于Linux,,它還可以在uClinux,、uC /OS-Ⅱ、eCos 和Vx-Works 等系統(tǒng)上運(yùn)行,。已驗(yàn)證的硬件平臺(tái)包括Intelx86,,ARM ( ARM/AMR9 /StrongARM/xScale ) ,Power-PC,,MIPS,,M68K ( DragonBall /ColdFire ) 等。對(duì)MiniGUI 移植,,首先下載MiniGUI 的源代碼libminigui-1. 6. 10. tar. gz ( MiniGUI 函數(shù)庫(kù)源代碼) 和minigui-minigui-res-1. 6. 10. tar. gz( MiniGUI 所使用的資源,,包括基本字體、圖標(biāo)、位圖和鼠標(biāo)光標(biāo)) ,,然后編譯安裝并將MiniGUI 的資源拷貝到目標(biāo)平臺(tái)上,,最后修改目標(biāo)平臺(tái)的/etc /MiniGUI. cfg 文件,對(duì)目標(biāo)平臺(tái)MiniGUI 的運(yùn)行環(huán)境進(jìn)行配置,。

  2. 3 心電采集界面設(shè)計(jì)

  2. 3. 1 主界面

  MiniGUI 中有3 種窗口類型: 主窗口,、對(duì)話框和控件窗口,心電采集界面是采用對(duì)話框進(jìn)行設(shè)計(jì),,對(duì)話框編程是一種快速構(gòu)建用戶界面的技術(shù),,MiniGUI提供了一種基于模板的機(jī)制,,利用DLGTEMPLATE和CTRLDATA 兩個(gè)結(jié)構(gòu)體來(lái)表示,,DLGTEMPLATE用來(lái)定義對(duì)話框本身,結(jié)構(gòu)體CTRLDATA 用來(lái)定義控件,。利用這兩個(gè)結(jié)構(gòu)體模板,,用戶可以根據(jù)需要在程序中定義自己的對(duì)話框和控件。主界面的對(duì)話框定義如下:

  static DLGTEMPLATE DlgInitProgress =

  {

  WS_BORDER WS_CAPTION,,

  WS_EX_NONE,,

  0,0

  ,, 240,, 320,

  " 歡迎使用心電信號(hào)采集系統(tǒng)" ,,

  0,,0

  ,

  10,,NULL,,

  0

  } ;

  用CTRLDATA 定義對(duì)話框中所有的控件并用數(shù)組表示,對(duì)話框常常使用控件來(lái)實(shí)現(xiàn)提示或者設(shè)置等功能,,定義控件數(shù)組模型如下:

  static CTRLDATA CtrlInitProgess[]=

  {

  { CTRL_STATIC,,

  WS_CHILD|WS_VISIBLE| SS_NOTIF

  |WS_BORDER,

  0,,0

  ,, 240,

  30

  IDC_STATIC1,,

  “歡迎使用心電信號(hào)采集系統(tǒng)”,,

  0

  }

  ;

  {

  …

  } ;

  …

  } ;

  通過(guò)上述方法生成的心電監(jiān)護(hù)儀主界如圖2 所示。心電采集界面主要有心電數(shù)據(jù)采集與顯示,、存儲(chǔ),、分析等功能,采用多線程編程,為采集,、顯示,、存儲(chǔ)、分析各建立一個(gè)專門的線程,。多線程進(jìn)行數(shù)據(jù)采集可以有效地加快程序的反應(yīng)速度,、增加執(zhí)行的效率。

7b9d5e5fe7b6a11a28fe6fdc1e941b62.jpg

  圖2 電監(jiān)護(hù)儀主界面

  在MiniGUI 中,,使用消息驅(qū)動(dòng)作為應(yīng)用程序的創(chuàng)建構(gòu)架,。在消息驅(qū)動(dòng)的應(yīng)用程序中,計(jì)算機(jī)外設(shè)發(fā)生的事件都由支持系統(tǒng)收集,,將以事先的約定格式翻譯為特定的消息,。應(yīng)用程序一般包含有自己的消息隊(duì)列,系統(tǒng)將消息發(fā)送到應(yīng)用程序的消息隊(duì)列中,。從消息隊(duì)列中讀取這些消息,,并由窗口過(guò)程函數(shù)來(lái)處理這些消息。本系統(tǒng)界面通過(guò)鼠標(biāo)鍵的按擊,,翻譯成特定的消息,,若收到的是控件消息,則判斷ID,,根據(jù)應(yīng)用程序進(jìn)行相應(yīng)的消息處理,。

  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)行心電界面開發(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à)值,。

  分享到:QQ空間新浪微博騰訊微博人人網(wǎng)微信

  歡迎分享本文,轉(zhuǎn)載請(qǐng)保留出處:http://www.eechina.com/thread-156056-1-1.html     【打印本頁(yè)】


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。