心電模擬波形發(fā)生系統(tǒng)的設(shè)計(jì)
隨著現(xiàn)在社會(huì)的發(fā)展,人們也日益開(kāi)始關(guān)注健康事業(yè)的發(fā)展,對(duì)醫(yī)學(xué)技術(shù)的要求也越來(lái)越高。現(xiàn)實(shí)中很多病例無(wú)法通過(guò)現(xiàn)實(shí)病例學(xué)習(xí),更多的醫(yī)生培養(yǎng)只能通過(guò)模擬設(shè)備進(jìn)行,心電波形模擬波形發(fā)生系統(tǒng)的設(shè)計(jì)就是其中一個(gè)例子。
心電模擬發(fā)生系統(tǒng)使用4種不同頻率的標(biāo)準(zhǔn)心電波形及用于測(cè)試的方波、鋸齒波、三角波和正弦波,通過(guò)算法擬合出病人的34種異常心電波形(包括成人和兒童的),各周期波形可采用插入不同的延時(shí)子程序來(lái)實(shí)現(xiàn)。提取醫(yī)院病人的異常心電波形,通過(guò)擬合的方法可以模擬和轉(zhuǎn)換除顫后的正常波形,依據(jù)此方法設(shè)計(jì)出一個(gè)心電信號(hào)發(fā)生系統(tǒng),系統(tǒng)可以采集、模擬任意導(dǎo)聯(lián)心電信號(hào),并將結(jié)果存儲(chǔ)到心電數(shù)據(jù)庫(kù)供研究分析使用。最后設(shè)計(jì)出一種用微控制器和波形輸出以及鍵盤(pán)轉(zhuǎn)換電路構(gòu)成的心電模擬波形發(fā)生器。
該系統(tǒng)是根據(jù)標(biāo)準(zhǔn)心電圖的有關(guān)原理,利用數(shù)字技術(shù)和軟件仿真相結(jié)合的原理研制而成的,嚴(yán)格按照醫(yī)學(xué)的相關(guān)規(guī)定,產(chǎn)生的模擬心電波形完全滿(mǎn)足醫(yī)學(xué)教學(xué)的目的,在各種病人異常心電圖的關(guān)鍵點(diǎn)處達(dá)到幾乎逼真的效果。當(dāng)系統(tǒng)接收到高壓除顫信號(hào)以后,根據(jù)系統(tǒng)的預(yù)設(shè)置,將異常心電波形轉(zhuǎn)換成正常的心電波形,這就模擬了一次正常的高壓除顫過(guò)程。該系統(tǒng)可以用于醫(yī)療培訓(xùn)機(jī)構(gòu),使學(xué)員快速掌握心電除顫的原理和方法,省去了很多不必要的麻煩,具有廣闊的市場(chǎng)前景。
1 系統(tǒng)設(shè)計(jì)
心電模擬波形系統(tǒng)主要以ARM9處理單元為核心,另外還有高壓除顫采集電路、D/A轉(zhuǎn)換模塊、波形輸出電路、鍵盤(pán)接口電路與監(jiān)護(hù)儀信號(hào)匹配以及應(yīng)用程序的設(shè)計(jì)等幾個(gè)部分。
ARM微處理器是一種高性能、低功耗的32位微處器,它被廣泛應(yīng)用于嵌入式系統(tǒng)中。ARM9代表了ARM公司主流的處理器,已經(jīng)在手持電話(huà)、機(jī)頂盒、數(shù)碼像機(jī)、GPS、個(gè)人數(shù)字助理以及因特網(wǎng)設(shè)備等方面有了廣泛的應(yīng)用。
本系統(tǒng)采用的ARM9嵌入式開(kāi)發(fā)平臺(tái),主要利用ARM9豐富的I/O資源和快速處理的強(qiáng)大功能。ARM9處理器的主要結(jié)構(gòu)及其特點(diǎn)如下:
(1)32 b定點(diǎn)RISC處理器,改進(jìn)型ARM/Thumb代碼交織,增強(qiáng)性乘法器設(shè)計(jì)。支持實(shí)時(shí)(real-time)調(diào)試。
(2)片內(nèi)指令和數(shù)據(jù)SRAM,而且指令和數(shù)據(jù)的存儲(chǔ)器容量可調(diào)。
(3)片內(nèi)指令和數(shù)據(jù)高速緩沖器(cache)容量從4 KB~1 MB。
(4)設(shè)置保護(hù)單元(protcction unit),非常適合嵌入式應(yīng)用中對(duì)存儲(chǔ)器進(jìn)行分段和保護(hù)。
(5)采用AMBA AHB總線(xiàn)接口,為外設(shè)提供統(tǒng)一的地址和數(shù)據(jù)總線(xiàn)。
(6)支持外部協(xié)處理器,指令和數(shù)據(jù)總線(xiàn)有簡(jiǎn)單的握手信令支持。
(7)支持標(biāo)準(zhǔn)基本邏輯單元掃描測(cè)試方法學(xué),而且支持BIST(built-in-self-test)。
(8)支持嵌入式跟蹤宏單元,支持實(shí)時(shí)跟蹤指令和數(shù)據(jù)。
新一代的ARM9處理器通過(guò)全新的設(shè)計(jì),采用更多的晶體管,能夠達(dá)到高于ARM7處理器兩倍以上的處理能力。這種處理能力的提高是通過(guò)增加時(shí)鐘頻率和減少指令執(zhí)行周期實(shí)現(xiàn)的。
2 硬件電路和原理
該部分主要分為ARM9硬件平臺(tái)、D/A轉(zhuǎn)換、波形輸出電路、信號(hào)的采集以及右腳驅(qū)動(dòng)電路的共模負(fù)反饋電路。系統(tǒng)在ARM9處理單元的控制下,D/A轉(zhuǎn)換電路把波形數(shù)據(jù)轉(zhuǎn)換為模擬量進(jìn)行輸出。當(dāng)接收到高壓除顫信號(hào)后,處理器就會(huì)把異常心電波形采集轉(zhuǎn)換成為正常的心電波形圖。
系統(tǒng)硬件連接圖如圖1所示。
2.1 D/A轉(zhuǎn)換原理
心電模擬信號(hào)就必須通過(guò)采樣量化為數(shù)字量并將其存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器內(nèi),供軟件進(jìn)行分析使用。這個(gè)過(guò)程必須通過(guò)AD轉(zhuǎn)換器來(lái)實(shí)現(xiàn)。有數(shù)字量轉(zhuǎn)化為模擬量的D/A轉(zhuǎn)換模式:
(1)采用D/A轉(zhuǎn)換芯片;
(2)采用PWM方式,即脈寬調(diào)制;
(3)采用f-v方式,即頻率電壓轉(zhuǎn)換。
通過(guò)對(duì)心電圖信號(hào)波形的分析可知,波形變化周期大約是1 s,因此采用頻率電壓轉(zhuǎn)換方式已經(jīng)具備足夠的數(shù)模轉(zhuǎn)換精度,頻率轉(zhuǎn)換指標(biāo)也滿(mǎn)足要求,而且該方式所用硬件少,一般都是用軟件來(lái)實(shí)現(xiàn)的。
該部分是系統(tǒng)的核心,為了實(shí)現(xiàn)數(shù)字系統(tǒng)對(duì)這些電模擬量進(jìn)行檢測(cè)、運(yùn)算和控制,需要一個(gè)模擬量與數(shù)字量之間的相互轉(zhuǎn)換的過(guò)程,即常常需要將數(shù)字量轉(zhuǎn)換成模擬量,簡(jiǎn)稱(chēng)D/A轉(zhuǎn)換,完成這種轉(zhuǎn)換的電路為數(shù)模轉(zhuǎn)換器(Digital to Analog Converter,DAC)。
為了保證系統(tǒng)的穩(wěn)定和信號(hào)的要求,D/A轉(zhuǎn)換芯片采用8位并行的DAC0832芯片,由12 V單電源供電,每個(gè)DAC有各自獨(dú)立的基準(zhǔn)輸入。 DAC0832芯片結(jié)構(gòu)框圖如圖2所示。
芯片內(nèi)有一個(gè)8位DAC寄存器,形成兩級(jí)緩沖方式,這樣可使DAC在轉(zhuǎn)換輸出前一個(gè)數(shù)據(jù)的同時(shí),采集下一個(gè)數(shù)據(jù)并送到8位輸入寄存器,以提高D/A的轉(zhuǎn)換速度。更重要的是,能夠在多個(gè)轉(zhuǎn)換器分時(shí)進(jìn)行D/A轉(zhuǎn)換時(shí),可以同時(shí)輸出模擬信號(hào),使多個(gè)轉(zhuǎn)換器并聯(lián)工作,以增加轉(zhuǎn)換位數(shù),達(dá)到提高轉(zhuǎn)換精度目的??紤]到要采用三路D/A,如果每一路獨(dú)占8個(gè)I/O端口,再加上若干控制端口,處理器提供的I/O端口數(shù)遠(yuǎn)不能滿(mǎn)足要求。所以計(jì)劃采用共用數(shù)據(jù)端口,外接I/O口片選的方式來(lái)實(shí)現(xiàn)。這樣可以節(jié)約16個(gè)I/O口,也滿(mǎn)足了信號(hào)輸出同步性的要求。
2.2 信號(hào)采集電路
根據(jù)除顫高壓發(fā)生器的要求,當(dāng)有高壓放電信號(hào)時(shí),由于高壓除顫信號(hào)具有的放電電流具有雙向性,并且是在5ms時(shí)間內(nèi)將電壓由12 V直流電壓轉(zhuǎn)換為4 000 V以上的高壓,使電容容量達(dá)到較高的程度,所以在安全性能上要充分考慮。
由除顫的高壓特性可以知道,除顫高壓發(fā)生器采用單端正激式升壓控制模式,除顫高壓有兩個(gè)明顯的特性:
(1)變壓比較大,由12 V直接升到4 000 V以上;
(2)對(duì)充電速度要求也比較高。
正激式變換優(yōu)點(diǎn)是電路比較簡(jiǎn)單,工作穩(wěn)定,可靠性高,不存在由于電路不平衡造成的偏飽和問(wèn)題。
2.3 波形輸出電路
選擇4個(gè)不同心率的正常心電波形作為信號(hào)源,模擬輸出Ⅰ,Ⅱ,Ⅲ,aVR,aVL,aVF心電信號(hào)。設(shè)探測(cè)電極在左上肢(LA)、右上肢(RA)、左下肢(LL)各點(diǎn)的電位分別為VL,VR,VF。
標(biāo)準(zhǔn)肢體導(dǎo)聯(lián)關(guān)系式如下:
威爾遜中心電端電壓為0,故有:
2.4 右腿驅(qū)動(dòng)電路
右腿驅(qū)動(dòng)電路是將采集到的心電信號(hào)進(jìn)行反向放大,傳到右腿驅(qū)動(dòng)電極,對(duì)共模干擾信號(hào)來(lái)說(shuō)這是個(gè)負(fù)反饋,因此可有效地削弱人體上感應(yīng)的共模干擾信號(hào),以達(dá)到較強(qiáng)抑制頻率干擾的目的,采用右腿驅(qū)動(dòng),還可以使干擾電壓降到1%以下,能夠很好地達(dá)到所要求的效果。
3 系統(tǒng)軟件
系統(tǒng)軟件設(shè)計(jì)主要是在嵌入式Linux硬件平臺(tái)的基礎(chǔ)上完成的。系統(tǒng)軟件主要有主程序和產(chǎn)生的各種波形的子程序構(gòu)成以及系統(tǒng)硬件驅(qū)動(dòng)程序的編寫(xiě)。主程序主要是對(duì)各個(gè)子程序的調(diào)用和組織,使整個(gè)系統(tǒng)能夠有序運(yùn)行。驅(qū)動(dòng)程序是為了能讓系統(tǒng)內(nèi)核和系統(tǒng)之間的接口正常運(yùn)行的。軟件也配合硬件電路進(jìn)行心電采集、傳輸和模擬等。
3.1 應(yīng)用程序的設(shè)計(jì)界面
軟件開(kāi)發(fā)工作主要涉及界面程序的開(kāi)發(fā)。界面程序的編寫(xiě)主要是用Qt來(lái)完成的,驅(qū)動(dòng)主要是用C編寫(xiě)的。界面設(shè)計(jì)是兩種波形同時(shí)輸出,反映正常的心電除顫過(guò)程。
系統(tǒng)的軟件界面設(shè)置框圖如圖3所示。
3.2 系統(tǒng)應(yīng)用程序設(shè)計(jì)
嵌入式Linux系統(tǒng)的有代表性的GUI系統(tǒng)主要有MiniGUI,MicroWindows,Tiny X以及Qt/Embedded,這些GUI系統(tǒng)在接口定義、體系結(jié)構(gòu)、功能特性等方面存在著很大的差別。而Qt/Embedded延續(xù)了Qt的強(qiáng)大功能,可以運(yùn)行在多種不同的處理器上部署的嵌入式Linux操作系統(tǒng)。Qt/Embedded是著名的Qt庫(kù)開(kāi)發(fā)商Trolltech的面向嵌入式系統(tǒng)的Qt版本。這個(gè)版本的主要特點(diǎn)是可移植性較好,許多基于Qt的X Window程序可以非常方便地移植到嵌入式系統(tǒng)。
Qt/Embedded以原始Qt為基礎(chǔ),并做了許多出色的調(diào)整以適用于嵌入式環(huán)境。Qt/Embedded通過(guò)QtAPI與Linux I/O設(shè)施直接交互,成為嵌入式Linux端口。同Qt/X11相比,Qt/Embedded很省內(nèi)存,因?yàn)樗恍枰粋€(gè)X服務(wù)器或是Xlib庫(kù),它在底層摒棄了Xlib,采用framebu-ffer作為底層圖形接口。同時(shí),將外部輸入設(shè)備抽象為keyboard和mouse輸入事件。Qt/Embedded的應(yīng)用程序可以直接寫(xiě)內(nèi)核緩沖幀,這避免開(kāi)發(fā)者使用繁瑣Xlib/Server系統(tǒng)。該部分主要分為波形界面實(shí)現(xiàn)和用戶(hù)按鍵控制的實(shí)現(xiàn)。波形顯示采用Qt的函數(shù)類(lèi)庫(kù)Qpainter,由于波形界面顯示兩路心電波形,會(huì)產(chǎn)生延遲效果,所以引入了多線(xiàn)程機(jī)制協(xié)調(diào),Qt支持多線(xiàn)程,有獨(dú)立于平臺(tái)的線(xiàn)程類(lèi),線(xiàn)程安全方式的時(shí)間傳遞和一個(gè)全局Qt允許不同的線(xiàn)程調(diào)用Qt方法。
程序?qū)崿F(xiàn)的流程圖如圖4所示。
4 結(jié)語(yǔ)
ARM系列處理器是當(dāng)今在國(guó)內(nèi)最流行的嵌入式處理器之一。Linux操作系統(tǒng)是一個(gè)開(kāi)源的操作系統(tǒng),開(kāi)發(fā)人員可以免費(fèi)獲取Linux內(nèi)核的源代碼。因此系統(tǒng)設(shè)計(jì)采用嵌入式Linux操作系統(tǒng)并結(jié)合外圍的D/A轉(zhuǎn)換電路、高壓信號(hào)采集、右腿驅(qū)動(dòng)、低通濾波和應(yīng)用程序控制部分等實(shí)現(xiàn)了心電波形模擬發(fā)生系統(tǒng)的設(shè)計(jì)。該系統(tǒng)可以很好地模擬心電除顫的過(guò)程,并且輸出符合醫(yī)學(xué)標(biāo)準(zhǔn)的34種常見(jiàn)異常心率波形,用于正常的醫(yī)學(xué)教學(xué)。
本系統(tǒng)的優(yōu)點(diǎn)是由于系統(tǒng)使用嵌入式Linux實(shí)時(shí)多任務(wù)操作系統(tǒng),因此設(shè)計(jì)具有很高的實(shí)時(shí)性、穩(wěn)定性和可靠性,并且可以實(shí)時(shí)采集顯示心電波形。結(jié)合心電除顫的過(guò)程以及病人心電波形設(shè)計(jì)一套心電模擬波形發(fā)生系統(tǒng),極大地方便醫(yī)學(xué)培訓(xùn)機(jī)構(gòu)的教學(xué),具有很高的使用價(jià)值和廣闊的應(yīng)用前景。