0 引言
隨著現(xiàn)在社會(huì)的發(fā)展,人們也日益開始關(guān)注健康事業(yè)的發(fā)展,,對(duì)醫(yī)學(xué)技術(shù)的要求也越來越高?,F(xiàn)實(shí)中很多病例無法通過現(xiàn)實(shí)病例學(xué)習(xí),更多的醫(yī)生培養(yǎng)只能通過模擬設(shè)備進(jìn)行,,心電 波形模擬波形發(fā)生 系統(tǒng)的設(shè)計(jì)就是其中一個(gè)例子,。
心電模擬發(fā)生系統(tǒng)使用4種不同頻率的標(biāo)準(zhǔn)心電波形及用于測(cè)試的方波、鋸齒波,、三角波和正弦波,,通過算法擬合出病人的34種異常心電波形(包括成人和兒童的),各周期波形可采用插入不同的延時(shí)子程序來實(shí)現(xiàn)。提取醫(yī)院病人的異常心電波形,,通過擬合的方法可以模擬和轉(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ì)出一種用微控制器和波形輸出以及鍵盤轉(zhuǎn)換電路構(gòu)成的心電模擬波形發(fā)生器,。
1 系統(tǒng)設(shè)計(jì)
心電模擬波形系統(tǒng)主要以ARM9 處理單元為核心,,另外還有高壓除顫采集電路、D/A轉(zhuǎn)換模塊,、波形輸出電路,、鍵盤接口電路與監(jiān)護(hù)儀信號(hào)匹配以及應(yīng)用程序的設(shè)計(jì)等幾個(gè)部分。
ARM微處理器是一種高性能,、低功耗的32位微處器,,它被廣泛應(yīng)用于嵌入式系統(tǒng)中。ARM9代表了ARM公司主流的處理器,,已經(jīng)在手持電話,、機(jī)頂盒、數(shù)碼像機(jī),、GPS,、個(gè)人數(shù)字助理以及因特網(wǎng)設(shè)備等方面有了廣泛的應(yīng)用。
本系統(tǒng)采用的ARM9嵌入式開發(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總線接口,為外設(shè)提供統(tǒng)一的地址和數(shù)據(jù)總線,。
(6)支持外部協(xié)處理器,,指令和數(shù)據(jù)總線有簡(jiǎn)單的握手信令支持。
(7)支持標(biāo)準(zhǔn)基本邏輯單元掃描測(cè)試方法學(xué),,而且支持BIST(built-in-self-test),。
(8)支持嵌入式跟蹤宏單元,,支持實(shí)時(shí)跟蹤指令和數(shù)據(jù)。
新一代的ARM9處理器通過全新的設(shè)計(jì),,采用更多的晶體管,,能夠達(dá)到高于ARM7處理器兩倍以上的處理能力。這種處理能力的提高是通過增加時(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)就必須通過采樣量化為數(shù)字量并將其存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器內(nèi),供軟件進(jìn)行分析使用,。這個(gè)過程必須通過AD轉(zhuǎn)換器來實(shí)現(xiàn),。有數(shù)字量轉(zhuǎn)化為模擬量的D/A轉(zhuǎn)換模式:
(1)采用D/A轉(zhuǎn)換芯片;
(2)采用PWM方式,,即脈寬調(diào)制,;
(3)采用f-v方式,即頻率電壓轉(zhuǎn)換,。
通過對(duì)心電圖信號(hào)波形的分析可知,,波形變化周期大約是1 s,因此采用頻率電壓轉(zhuǎn)換方式已經(jīng)具備足夠的數(shù)模轉(zhuǎn)換精度,,頻率轉(zhuǎn)換指標(biāo)也滿足要求,,而且該方式所用硬件少,一般都是用軟件來實(shí)現(xiàn)的,。
該部分是系統(tǒng)的核心,,為了實(shí)現(xiàn)數(shù)字系統(tǒng)對(duì)這些電模擬量進(jìn)行檢測(cè)、運(yùn)算和控制,,需要一個(gè)模擬量與數(shù)字量之間的相互轉(zhuǎn)換的過程,,即常常需要將數(shù)字量轉(zhuǎn)換成模擬量,簡(jiǎn)稱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所示,。
2 系統(tǒng)硬件部分設(shè)計(jì)
該部分主要分為ARM9硬件平臺(tái),、D/A轉(zhuǎn)換、濾波電路,、高壓除顫信號(hào)的采集,,其系統(tǒng)硬件連接圖如圖2所示。系統(tǒng)在ARM9的控制下,,由D/A轉(zhuǎn)換把波形數(shù)據(jù)轉(zhuǎn)換為模擬量進(jìn)行輸出,。當(dāng)接收到高壓采集信號(hào)后,處理器就會(huì)轉(zhuǎn)換輸出另一種心電波形圖,。
2.1 D/A轉(zhuǎn)換和電阻衰減網(wǎng)絡(luò)
該 部分是系統(tǒng)的核心,,為了保證系統(tǒng)的穩(wěn)定和ECG信號(hào)的要求,D/A轉(zhuǎn)換芯片采用8位并行的DAC0832芯片,,由12 V單電源供電,,每個(gè)DAC有各自獨(dú)立的基準(zhǔn)輸入,對(duì)ARM9提供的數(shù)據(jù)進(jìn)行變換,,輸出部分采用4階巴特沃斯濾波,,輸出的波形經(jīng)衰減后得到所要求的心電信 號(hào),經(jīng)有源濾波后輸出波形的峰值可達(dá)到10 V,,通過電阻分壓網(wǎng)絡(luò)得到0~5 mV的電壓輸出范圍,。考慮到要采用三路D/A,,如果每一路獨(dú)占8個(gè)I/O端口,,再加上若干控制端口,處理器提供的I/O端口數(shù)遠(yuǎn)不能滿足要求,,所以計(jì)劃采 用共用數(shù)據(jù)端口,,外接I/O口片選的方式來實(shí)現(xiàn),這樣可以節(jié)約16個(gè)I/O口,,也滿足了信號(hào)輸出同步性的要求,。
2.2 高壓信號(hào)采集電路設(shè)計(jì)
該部分采集除顫器上的高壓放電信號(hào),由于高壓除顫信號(hào)具有的放電電流具有雙向性,,且放電時(shí)間只有4 ms,,瞬態(tài)電壓可達(dá)到3 000 V,所以在安全性能上要充分考慮,。該部分電路圖如圖3所示,。
電路中采用大功率電阻和瞬態(tài)抑制二極管對(duì)高壓放電信號(hào)進(jìn)行預(yù)處理,將高壓信號(hào)降低到比較小的范圍,,通過整流電路把電流變?yōu)閱蜗蛄鲃?dòng),,然后通過光耦隔離輸入到ARM9的I/O口中,,起到保護(hù)處理器的作用。
3 軟件設(shè)計(jì)
系統(tǒng)的硬件為基本功能和擴(kuò)展功能的實(shí)現(xiàn)奠定了牢固的基礎(chǔ),,軟件系統(tǒng)的設(shè)計(jì)就是要充分利用硬件平臺(tái)的資源,,實(shí)現(xiàn)軟件操作的有序運(yùn)行。
軟件開發(fā)工作涉及到以下兩個(gè)方面:接口驅(qū)動(dòng)程序的修改和完善,;應(yīng)用層軟件的開發(fā),。應(yīng)用層的程序全部用C++開發(fā)完成的。
圖4是整個(gè)系統(tǒng)的軟件模塊結(jié)構(gòu)圖,。
3.1 D/A驅(qū)動(dòng)程序和高壓信號(hào)采集驅(qū)動(dòng)部分
設(shè) 備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核和機(jī)器硬件之間的接口,。設(shè)備驅(qū)動(dòng)程序?yàn)閼?yīng)用程序屏蔽了硬件的細(xì)節(jié),這樣在應(yīng)用程序看來,,硬件設(shè)備只是一個(gè)設(shè)備文件,,應(yīng)用程 序可以像操作普通文件一樣對(duì)硬件設(shè)備進(jìn)行操作,以往在開發(fā)應(yīng)用程序時(shí)都有一個(gè)main函數(shù)作為程序的入口點(diǎn),,而在驅(qū)動(dòng)開發(fā)時(shí)卻沒有main函數(shù),,模塊在調(diào) 用insmod命令時(shí)被加載,此時(shí)的入口點(diǎn)是init module函數(shù),,通常在該函數(shù)中完成沒備的注冊(cè)。同樣,,模塊在調(diào)用rmmod函數(shù)時(shí)被卸載,,此時(shí)的入口點(diǎn)是cleanup module函數(shù),在該函數(shù)中完成設(shè)備的卸載,。在設(shè)備完成注冊(cè)加載之后,,用戶的應(yīng)用程序就可以對(duì)該設(shè)備進(jìn)行一定的操作,如read,,write等,,而驅(qū)動(dòng) 程序就是用于實(shí)現(xiàn)這些操作,在用戶應(yīng)用程序調(diào)用相應(yīng)入口函數(shù)時(shí)執(zhí)行相關(guān)的操作,,init roodule入口點(diǎn)函數(shù)則不需要完成其他如read,,write之類功能。
驅(qū)動(dòng)程序主要函數(shù)如下:
3.2 系統(tǒng)應(yīng)用程序設(shè)計(jì)與實(shí)現(xiàn)
該 系統(tǒng)的應(yīng)用程序是基于Qt/Embedded設(shè)計(jì)的,,目前使用的嵌入式GUI系統(tǒng)存在 Microwindows,,MiniGUI,Qt/Embedded,,Qt/Embedded延續(xù)了Qt的強(qiáng)大功能,,可以運(yùn)行在多種不同的處理器上部署的 嵌入式Linux操作系統(tǒng)。Qt/Embedded提供了信號(hào)和插槽的編程機(jī)制,,該部分采用的Qt是一個(gè)創(chuàng)建GUI程序的C++類庫(kù),,編寫Qt應(yīng)用程序的 主要工作是基于已有的Qt類編寫用戶類,。該部分主要分為波形界面的實(shí)現(xiàn)和用戶按鍵控制的實(shí)現(xiàn),波形顯示采用Qt的函數(shù)類庫(kù)Qpainter,,由于波形界面 顯示兩路心電波形,,會(huì)產(chǎn)生延遲效果,所以引入了多線程機(jī)制協(xié)調(diào),,Qt支持多線程,,有獨(dú)立于平臺(tái)的線程類,線程安全方式的時(shí)間傳遞和一個(gè)全局Qt庫(kù)互斥量允 許不同的線程調(diào)用Qt方法,。
4 結(jié)語(yǔ)
本系統(tǒng)設(shè)計(jì)采用三星2440嵌入式處理器作為核心搭建了硬件平臺(tái),,并采用嵌入式Linux操作系統(tǒng)并結(jié)合外圍的D/A轉(zhuǎn)換部分、與監(jiān)護(hù)儀匹配網(wǎng)絡(luò),、高 壓信號(hào)采集部分,、應(yīng)用程序控制部分等實(shí)現(xiàn)了心電除顫模擬發(fā)生系統(tǒng)的設(shè)計(jì)。該系統(tǒng)可以很好地模擬醫(yī)學(xué)除顫的過程,,并可以與醫(yī)用監(jiān)護(hù)儀相連接,,輸出符合醫(yī)學(xué)標(biāo) 準(zhǔn)的34種常見異常心率波形,由于系統(tǒng)使用嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng),,因此該設(shè)計(jì)具有很高的實(shí)時(shí)性,、穩(wěn)定性和可靠性?! ?/div>
原創(chuàng)聲明: 此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。