摘要:設(shè)計并實現(xiàn)了一款基于Windows CE" title="Windows CE">Windows CE的嵌入式心電圖" title="心電圖">心電圖機軟件系統(tǒng),。該系統(tǒng)采用Windows CE所支持的多線程" title="多線程">多線程,、實時性" title="實時性">實時性等技術(shù),,能夠?qū)π碾姅?shù)據(jù)進行實時采集、顯示和存儲并能進行數(shù)據(jù)實時處理與自動分析" title="自動分析">自動分析,,并具有界面美觀,、操作人性化、高性能,、多功能等特點,。
關(guān)鍵詞:Windows CE;心電圖,;多線程,;實時性;自動分析
0 引言
據(jù)世界衛(wèi)生組織的數(shù)據(jù),,心血管病已經(jīng)成為造成全球人口死亡的主要因素,。由于心電圖檢查在診斷此病上具有準確可靠、方法簡便,、對病人無損害等特點,,在臨床上被廣泛應用。然而目前普遍采用的基于PC機平臺的心電圖機,,雖功能全面,,但體積龐大、成本較高,。而市場上便攜式心電圖機大多采用低檔單片機實現(xiàn),,無操作系統(tǒng),處理能力弱,,功能簡單,,只能進行心電信號的采集、顯示與簡單的數(shù)據(jù)處理,,人機界面不友好,。隨著大規(guī)模的專用集成電路和計算機芯片的發(fā)展,基于32 bit微處理器的嵌入式系統(tǒng)以低成本,、較高的性能和可靠性等諸多優(yōu)勢,,應用日益廣泛,。基于這種現(xiàn)狀,,本文提出了一款高性能,、多功能的便攜式心電圖機,采用AU1250處理器與Windows CE操作系統(tǒng),,全面提升了產(chǎn)品的處理能力,,并使用具有觸摸功能的大型LCD顯示屏,能同步整體顯示十二導聯(lián)同一心動周期的波形,,讓醫(yī)生可以更加準確地作出判斷,,從而提高了準確率。該機并能對心電波形數(shù)據(jù)進行測量分析,、存儲,、回放、編輯,、打印等,。
1 硬件系統(tǒng)簡介
系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
本系統(tǒng)選擇AU1250作為控制核心,。AU1250是一款高性能,、低功耗(<400 mW@400 MHz)、高集成度的嵌入式處理器,。AU1250屬于MIPS架構(gòu),,集成USB(OTG)、SD卡等接口,。也是目前市場上為數(shù)不多的支持分辨率為1 280*800大型LCD顯示屏的處理器之一,。
基于軟件系統(tǒng)對實時處理以及永久保存大量數(shù)據(jù)的需要,以AU1250為核心的主板配備了128 MB的SDRAM,、2 MB的NOR FLASH以及2 GB的NAND FLASH等存儲芯片,。并對外提供USB、SD卡(可用于外擴數(shù)據(jù)存儲),、UART,、100 Mb/s以太網(wǎng)口等通信接口,實現(xiàn)對采集卡,、熱敏打印、數(shù)據(jù)存儲等模塊的調(diào)度,。
2 軟件系統(tǒng)設(shè)計
本軟件系統(tǒng),,主要由兩部分組成:
(1)Windows CE嵌入式實時操作系統(tǒng);
(2)心電圖應用程序,。
2.1 Windows CE嵌入式實時操作系統(tǒng)
Windows CE系統(tǒng)是一種緊湊,、高效,、可伸縮的32位的操作系統(tǒng),其所具有的多線程,、多任務,、完全搶占式的特點是專為各種有很嚴格資源限制的硬件系統(tǒng)所設(shè)計的。其模塊化的設(shè)計使嵌入式系統(tǒng)和應用程序開發(fā)者能夠方便地加以定制以適應一系列產(chǎn)品,。
綜合考慮到軟件的性能要求,,以及操作系統(tǒng)對硬件的支持及二次開發(fā)的簡便性等方面,本系統(tǒng)采用了微軟公司的Windows CE,。并利用Pl-atform Builder5.0集成開發(fā)環(huán)境,,根據(jù)產(chǎn)品的需要及硬件資源的考慮,裁剪內(nèi)核,、添加所需的驅(qū)動,,定制一款精簡的符合產(chǎn)品需求的操作系統(tǒng)。
2.2 心電圖應用程序設(shè)計
心電圖應用程序整體框圖如圖2所示,,主要包括以下幾個主要功能:
(1)人機交互
(2)數(shù)據(jù)采集
(3)波形顯示
(4)數(shù)據(jù)處理與測量分析
(5)數(shù)據(jù)存儲
其中數(shù)據(jù)采集,、波形顯示和人機交互三個功能要求能夠并發(fā)的同步進行,否則系統(tǒng)會有比較大的延時現(xiàn)象,。所以本應用程序利用多個線程分別完成不同的任務,。
2.2.1 人機交互
本系統(tǒng)的人機交互包括機器面板的功能鍵以及用戶圖形界面兩部分,作為響應用戶的操作,,并接收消息控制各個模塊的運行,。
(1)功能鍵部分:包括ID鍵,開始/停止記錄鍵,,模式切換鍵等,。其響應處理的實現(xiàn)方式為:事件+注冊表。底層驅(qū)動利用中斷的方式,,檢測按鍵的動作,,如鍵按下便把對應的鍵值寫到注冊表,然后通過SctEvent()方式通知應用程序,。應用程序首先開辟一個線程,,利用WaitF-orSingleObject()等待按鍵事件的發(fā)生,然后讀取并判斷注冊表的鍵值,,調(diào)用對應的功能函數(shù),。考慮到驅(qū)動進程與應用程序有可能同時訪問并改寫注冊表,,為了保證數(shù)據(jù)訪問的安全性,,在讀寫注冊表時,使用Mutex同步機制來確保一次只有一個進程使用該資源,。
(2)用戶圖形界面:根據(jù)市場發(fā)展需求,,并形成競爭力,,產(chǎn)品界面須既美觀時尚,又方便易用,?;诖朔矫娴目紤]以及軟硬件系統(tǒng)的支持,本系統(tǒng)圖形界面的按鈕均采用加載位圖的方式,,把絢麗的圖片應用于各個按鈕,。字體方面,也使用AddFontResource()函數(shù)動態(tài)加載了微軟雅黑與華康圓體字庫,。并綜合醫(yī)生意見,,簡化操作流程,使整個操作界面極富人性化,。
2.2. 2 數(shù)據(jù)采集
為了保證數(shù)據(jù)的采集不被其他線程中斷,,本系統(tǒng)開辟了一個優(yōu)先級較高的線程來采集數(shù)據(jù)。
(1)數(shù)據(jù)接收
由于采集卡的采樣率為1 000次/秒,,數(shù)據(jù)量較大,,為了提高其與上位機傳輸數(shù)據(jù)的速度以及考慮到接口的可擴展性,本系統(tǒng)的數(shù)據(jù)采集卡集成了USB控制器FT245芯片,,并在軟件系統(tǒng)中加載了FTD2XX.DLL驅(qū)動,,實現(xiàn)了以USB協(xié)議傳輸數(shù)據(jù)、上位機模擬串口接收數(shù)據(jù)的方式,。采集線程只需打開串口不斷接收數(shù)據(jù),,爾后再根據(jù)定義的數(shù)據(jù)包協(xié)議分別解出各個通道的數(shù)據(jù)以及導聯(lián)脫落狀態(tài)信息,并送到數(shù)據(jù)預處理模塊進行濾波及導聯(lián)脫落處理,。
(2)數(shù)據(jù)同步采集的方法
數(shù)據(jù)預處理完畢后,,采用SetEvent()的方式通知顯示線程讀取數(shù)據(jù)顯示。為了保證公共數(shù)據(jù)緩沖區(qū)數(shù)據(jù)的正確性,,采用臨界區(qū)Critical Section來實現(xiàn)采集與顯示線程的同步,。
2.2.3 波形顯示
本系統(tǒng)采用了醫(yī)療系統(tǒng)中較常見的實時顯示方法,即掃描式,,從左到右畫,,新進的點覆蓋原來的點,中間有一段緩沖區(qū)刷掉舊點,,畫到最右端時,,又從最左端畫下一幅圖,不斷重復,。同時為了防止閃爍,,采用了雙緩存技術(shù)。
心電圖機一般需顯示的波形有兩種:導聯(lián)波形顯示,如12導聯(lián)同步顯示,;節(jié)律波形顯示,如檢查心率不齊時,,長時間連續(xù)的顯示單一和多通道導聯(lián)波形,。為了方便醫(yī)生在導聯(lián)與節(jié)律兩種模式下切換觀察,本系統(tǒng)創(chuàng)建了兩個后臺繪圖線程,。當為導聯(lián)顯示模式時,,把所繪導聯(lián)波形的內(nèi)存DC不斷拷貝到屏幕DC上顯示,節(jié)律繪圖線程仍然后臺運行,。反之,,為節(jié)律顯示模式。
2.2.4 數(shù)據(jù)存儲
(1)病人基本信息及分析結(jié)果存儲:
SQLite是一個輕量級的嵌入式關(guān)系數(shù)據(jù)庫,,可以較為方便地運用于嵌入式系統(tǒng)中,。相對于傳統(tǒng)數(shù)據(jù)庫,SQLite具有更好的實時性,、系統(tǒng)開銷小,、底層控制能力強的特性。
由于本系統(tǒng)的病人基本信息及分析結(jié)果的存儲,,只涉及建立表格,、查詢、修改,、插入,、刪除、排序等操作,,因此采用精干高效的SQLite完全能夠滿足本平臺的要求,,并利用其支持的SQL命令及提供的API接口,操作十分方便,。
(2)病人心電數(shù)據(jù)存儲:
鑒于心電數(shù)據(jù)量比較大,,為了快速存儲以及便于管理,采用了文件的存儲方式,。首先在SQLite中建立心電數(shù)據(jù)PatiemEcgData表,,包括病人ID、姓名,、心電數(shù)據(jù)長度,、心電數(shù)據(jù)文件的相對路徑等字段,心電數(shù)據(jù)以文件方式保存的同時,,將該文件的相對路徑存到數(shù)據(jù)庫,。當進行歷史波形回放時,只需根據(jù)病人ID,,搜索心電數(shù)據(jù)文件路徑,,讀取文件數(shù)據(jù)進行繪圖顯示即可,。
2.2.5 數(shù)據(jù)處理與檢測分析
2.2.5.1 數(shù)據(jù)濾波處理
ECG和絕大多數(shù)的生物數(shù)字信號一樣,都是信噪比很低的微弱信號,,往往混有很強的背景噪聲,,如工頻干擾、肌電干擾,、基線漂移等,。噪聲嚴重時可完全淹沒ECG信號或使基線漂移劇烈。因此必須從硬件設(shè)備消除噪聲影響的同時,,也要從軟件上去消除,,本系統(tǒng)的數(shù)據(jù)濾波處理主要根據(jù)各噪聲的頻率特性設(shè)計不同的數(shù)字濾波器予以濾除。
2.2.5.2 數(shù)據(jù)檢測分析
(1)特征提取
進行自動分析前,,首先要進行特征提取,。特征提取包括兩部分:(1)波形識別,對ECG所包括的P波,、T波和QRS波群進行識別,。(2)測量出各波形的幅度和間期,以便提供給后面的分析程序,。
準確地檢測每一個QRS波是波形識別的首要任務,,如果QRS波檢測出現(xiàn)錯誤,其后進行的T,、P波檢測,,各種參數(shù)測量及診斷分類均失去了意義?;谇度胧狡脚_的特點,,QRS波群檢測算法上采用了傳統(tǒng)差分閾值法,可實現(xiàn)實時檢測,。
QRS波一旦識別,,便可根據(jù)PQPST各波斜率特性,計算并定位各自的分界點,。爾后進行各種參數(shù)測量和計算,,包括心率、P波時限,、P-R(P-Q)間期,、QRS時限、Q-T(QTC)間期,、平均心電軸,、各波振幅等。
(2)自動分析:
圖3所示的是整個ECG分析方法。將特征提取過程產(chǎn)生的測量參數(shù)作為輸入量,,進入決策邏輯或統(tǒng)計過程,。決策邏輯是基于規(guī)則的專家系統(tǒng)來模仿專家的決策過程以確定和描述病人的病情。這些規(guī)則集是根據(jù)醫(yī)學專家的知識來開發(fā)的,,通過一組IF-THEN語句,,最后成為一個或多個分析結(jié)果語句,并打印在分析結(jié)果報告上,。
3 總結(jié)
本文簡要介紹了基于wince的心電圖機硬件系統(tǒng)的組成,以及對整個軟件系統(tǒng)的設(shè)計進行了分模塊的闡述與分析,。目前已完成第一版本產(chǎn)品樣機的開發(fā),,經(jīng)測試系統(tǒng)運行良好,分析算法也以美國的MIT心電數(shù)據(jù)庫為標準進行測試,,其準確性達到符合臨床診斷要求,。該產(chǎn)品已準備進入工廠量產(chǎn)階段。