基于ARM9的心電除顫模擬發(fā)生系統(tǒng)設計
隨著社會的發(fā)展,人們的醫(yī)療保健意識越來越強,所以醫(yī)生的培訓也就成為非常重要的環(huán)節(jié)。心電除顫技術作為醫(yī)生培訓的一個主要方面,若操作規(guī)范,動作熟練,往往在緊急關頭可以救人于危難之間,在培訓的時候,如果能夠真實地模擬急救除顫的場景,將會起到良好的學習效果。因此,在急救、有創(chuàng)性臨床操作訓練上,醫(yī)學模擬教學日益顯示出其成本低、重復性高、教學效率高以及符合醫(yī)學倫理要求等優(yōu)勢。
除顫模擬發(fā)生系統(tǒng)可以任意選擇34種狀態(tài)(包括成人和兒童兩大類)時也可以連接醫(yī)用監(jiān)護儀,使除顫模擬更加逼真。學員可以進行不同能量的除顫練習,同時這也便于老師檢驗學員的學習效果。
該系統(tǒng)是根據(jù)心電圖的有關原理以及監(jiān)護儀的信號合成原理研制的,嚴格按照醫(yī)學的相關規(guī)定,產生的波形達到醫(yī)學教學的目的。在相關病態(tài)心電圖的關鍵點處達到比較逼真的效果,當系統(tǒng)接收到高壓除顫信號以后,根據(jù)系統(tǒng)的預設置,進行相應的波形變換。系統(tǒng)可以用于醫(yī)療培訓機構的培訓工具,使學員快速掌握心電除顫的方法。該系統(tǒng)與急救模擬人、監(jiān)護儀配合使用,具有廣闊的市場前景。
本文介紹的心電除顫模擬發(fā)生系統(tǒng)是以ARM9為控制核心,充分利用ARM9豐富的I/O資源和強大的處理功能。它采用嵌入式的開發(fā)方案,并綜合考慮系統(tǒng)的通用性和使用性,系統(tǒng)輸出信號的幅度為0~5 mV可以連續(xù)輸出室性、室上性早搏型號等,還可以產生周期為1 s,脈寬為100 ms,幅度為1 mV的方波。便于對監(jiān)護儀進行校準,信號均采用三導聯(lián)的同步信號輸出。
1 系統(tǒng)結構和設計方案
系統(tǒng)主要包括ARM9中央處理單元、高壓除顫信號采集模塊、D/A轉換模塊,與監(jiān)護儀信號匹配模塊以及心電波形仿真和數(shù)據(jù)的提取,應用程序的設計等幾個部分。本系統(tǒng)采用ARM9嵌入式開發(fā)平臺,以下是ARM9處理器的主要結構及其特點。
(1)32 b定點RISC處理器,改進型ARM/Thumb代碼交織,增強性乘法器設計,支持實時(real-TIme)調試;
(2)片內指令和數(shù)據(jù)SRAM,而且指令和數(shù)據(jù)的存儲器容量可調;
(3)片內指令和數(shù)據(jù)高速緩沖器(Cache)容量從4 KB~l MB:
(4)設置保護單元(Protoction Unit),非常適合嵌入式應用中對存儲器進行分段和保護;
(5)采用AMBA AHB總線接口,為外設提供統(tǒng)一的地址和數(shù)據(jù)總線;
(6)支持外部協(xié)處理器,指令和數(shù)據(jù)總線有簡單的握手信令支持;
(7)支持標準基本邏輯單元掃描測試方法;
(8)支持BIST(Built-in-self-test);
(9)支持嵌入式跟蹤宏單元,支持實時跟蹤指令和數(shù)據(jù)。
心電除顫模擬發(fā)生系統(tǒng)總體設計方案,如圖1所示。
2 系統(tǒng)硬件部分設計
該部分主要分為ARM9硬件平臺、D/A轉換、濾波電路、高壓除顫信號的采集,其系統(tǒng)硬件連接圖如圖2所示。系統(tǒng)在ARM9的控制下,由D/A轉換把波形數(shù)據(jù)轉換為模擬量進行輸出。當接收到高壓采集信號后,處理器就會轉換輸出另一種心電波形圖。
2.1 D/A轉換和電阻衰減網絡
該部分是系統(tǒng)的核心,為了保證系統(tǒng)的穩(wěn)定和ECG信號的要求,D/A轉換芯片采用8位并行的DAC0832芯片,由12 V單電源供電,每個DAC有各自獨立的基準輸入,對ARM9提供的數(shù)據(jù)進行變換,輸出部分采用4階巴特沃斯濾波,輸出的波形經衰減后得到所要求的心電信號,經有源濾波后輸出波形的峰值可達到10 V,通過電阻分壓網絡得到0~5 mV的電壓輸出范圍。考慮到要采用三路D/A,如果每一路獨占8個I/O端口,再加上若干控制端口,處理器提供的I/O端口數(shù)遠不能滿足要求,所以計劃采用共用數(shù)據(jù)端口,外接I/O口片選的方式來實現(xiàn),這樣可以節(jié)約16個I/O口,也滿足了信號輸出同步性的要求。
2.2 高壓信號采集電路設計
該部分采集除顫器上的高壓放電信號,由于高壓除顫信號具有的放電電流具有雙向性,且放電時間只有4 ms,瞬態(tài)電壓可達到3 000 V,所以在安全性能上要充分考慮。該部分電路圖如圖3所示。
電路中采用大功率電阻和瞬態(tài)抑制二極管對高壓放電信號進行預處理,將高壓信號降低到比較小的范圍,通過整流電路把電流變?yōu)閱蜗蛄鲃樱缓笸ㄟ^光耦隔離輸入到ARM9的I/O口中,起到保護處理器的作用。
3 軟件設計
系統(tǒng)的硬件為基本功能和擴展功能的實現(xiàn)奠定了牢固的基礎,軟件系統(tǒng)的設計就是要充分利用硬件平臺的資源,實現(xiàn)軟件操作的有序運行。
軟件開發(fā)工作涉及到以下兩個方面:接口驅動程序的修改和完善;應用層軟件的開發(fā)。應用層的程序全部用C++開發(fā)完成的。
圖4是整個系統(tǒng)的軟件模塊結構圖。
3.1 D/A驅動程序和高壓信號采集驅動部分
設備驅動程序是操作系統(tǒng)內核和機器硬件之間的接口。設備驅動程序為應用程序屏蔽了硬件的細節(jié),這樣在應用程序看來,硬件設備只是一個設備文件,應用程序可以像操作普通文件一樣對硬件設備進行操作,以往在開發(fā)應用程序時都有一個main函數(shù)作為程序的入口點,而在驅動開發(fā)時卻沒有main函數(shù),模塊在調用insmod命令時被加載,此時的入口點是init module函數(shù),通常在該函數(shù)中完成沒備的注冊。同樣,模塊在調用rmmod函數(shù)時被卸載,此時的入口點是cleanup module函數(shù),在該函數(shù)中完成設備的卸載。在設備完成注冊加載之后,用戶的應用程序就可以對該設備進行一定的操作,如read,write等,而驅動程序就是用于實現(xiàn)這些操作,在用戶應用程序調用相應入口函數(shù)時執(zhí)行相關的操作,init roodule入口點函數(shù)則不需要完成其他如read,write之類功能。
驅動程序主要函數(shù)如下:
3.2 系統(tǒng)應用程序設計與實現(xiàn)
該系統(tǒng)的應用程序是基于Qt/Embedded設計的,目前使用的嵌入式GUI系統(tǒng)存在Microwindows,MiniGUI,Qt/Embedded,Qt/Embedded延續(xù)了Qt的強大功能,可以運行在多種不同的處理器上部署的嵌入式Linux操作系統(tǒng)。Qt/Embedded提供了信號和插槽的編程機制,該部分采用的Qt是一個創(chuàng)建GUI程序的C++類庫,編寫Qt應用程序的主要工作是基于已有的Qt類編寫用戶類。該部分主要分為波形界面的實現(xiàn)和用戶按鍵控制的實現(xiàn),波形顯示采用Qt的函數(shù)類庫Qpainter,由于波形界面顯示兩路心電波形,會產生延遲效果,所以引入了多線程機制協(xié)調,Qt支持多線程,有獨立于平臺的線程類,線程安全方式的時間傳遞和一個全局Qt庫互斥量允許不同的線程調用Qt方法。
4 結語
本系統(tǒng)設計采用三星2440嵌入式處理器作為核心搭建了硬件平臺,并采用嵌入式Linux操作系統(tǒng)并結合外圍的D/A轉換部分、與監(jiān)護儀匹配網絡、高壓信號采集部分、應用程序控制部分等實現(xiàn)了心電除顫模擬發(fā)生系統(tǒng)的設計。該系統(tǒng)可以很好地模擬醫(yī)學除顫的過程,并可以與醫(yī)用監(jiān)護儀相連接,輸出符合醫(yī)學標準的34種常見異常心率波形,由于系統(tǒng)使用嵌入式實時多任務操作系統(tǒng),因此該設計具有很高的實時性、穩(wěn)定性和可靠性。
評論