am188EM在便攜式心電監(jiān)護(hù)儀中的應(yīng)用
在世界著名的醫(yī)療儀器制造商設(shè)計(jì)生產(chǎn)的心電監(jiān)護(hù)儀中,,很多選用的是Motorola公司的MC6800/68000,;隨著技術(shù)的進(jìn)步,DSP也成為新選擇,。然而,,MC6800/68000等微處理器需要較多的外圍控制芯片協(xié)同工作才能發(fā)揮其優(yōu)異的性能,組成系統(tǒng)時(shí)結(jié)構(gòu)比較復(fù)雜,,同時(shí),,它需要專用的開發(fā)軟件和開發(fā)工具,這都給開發(fā)應(yīng)用帶來一定的難度,。DSP在大規(guī)模數(shù)據(jù)和事務(wù)管理方面性能并不是最佳的,,它對外圍器件的要求也較高,同時(shí),,也需要專用開發(fā)軟件和開發(fā)工具,,這都在一定程度上制約了它在某些方面的應(yīng)用。
嵌入式處理器從一定程度上克服了上述缺陷,,使我們在使用處理器時(shí)又多了一種選擇,,在設(shè)計(jì)便攜式心電監(jiān)護(hù)儀時(shí)我們選用了AMD公司的am188EM處理器,。
am188EM的主要特點(diǎn):
(1) 與Intel公司的x86系列處理器在指令上完全兼容,可以借助于Microsoft公司的宏匯編工具M(jìn)ASM或其它編程語言在PC機(jī)上很方便地開發(fā)應(yīng)用軟件,。
(2) 可選擇16MHz,、25MHz、33MHz,、40MHz的工作頻率,,鎖相環(huán)(PLL)倍頻技術(shù)的應(yīng)用和優(yōu)化的指令處理過程使處理器運(yùn)行速度成倍提高。
(3) 處理器片內(nèi)集成一個(gè)全雙工的同步串行通信口和一個(gè)全雙工的異步通信口,,同步串口可同時(shí)連接兩個(gè)外設(shè),,異步串口與RS-232通信口標(biāo)準(zhǔn)兼容。
(4)處理器片內(nèi)集成一個(gè)中斷控制器,,與標(biāo)準(zhǔn)的中斷控制器8259完全兼容,,單獨(dú)工作時(shí)可管理5個(gè)外部中斷源,也可以與外部標(biāo)準(zhǔn)的中斷控制器8259級聯(lián),,管理更多的中斷源,。
圖1為系統(tǒng)組成框圖。人體心電信號通過導(dǎo)線輸入到模擬部分,,在模擬部分放大,、A/D轉(zhuǎn)換后經(jīng)光電耦合電路輸出到數(shù)據(jù)采集部分,。數(shù)字化的心電信號在數(shù)據(jù)采集部分經(jīng)過預(yù)處理后被am188EM讀取,,am188EM對心電數(shù)據(jù)作出分析、計(jì)算,,一方面輸送到顯示控制部分去顯示,,另一方面送往數(shù)據(jù)資料存儲管理部分保存,如果發(fā)現(xiàn)異常信號,,通過顯示器和聲光報(bào)警電路發(fā)出報(bào)警,。通過通信口,am188EM可以與計(jì)算機(jī)通信,,也可以用普通串行打印機(jī)打印監(jiān)護(hù)報(bào)告,。
模擬部分主要完成心電信號的擷取、放大,、A/D轉(zhuǎn)換,、光電耦合等功能,如圖2所示,。由于人體皮膚的阻抗很大,,心電信號又很微弱,再加上周圍環(huán)境的電磁噪聲很強(qiáng),,心電信號預(yù)放大電路使用了高輸入阻抗,、高共模抑制比,、低噪聲的儀表運(yùn)算放大器INA128,以利于采集人體微弱的心電信號,;預(yù)放大的心電信號通過壓控增益放大器作必要的增益調(diào)整后,,再經(jīng)電平調(diào)整,輸出到串行ADC進(jìn)行A/D轉(zhuǎn)換,,之后心電數(shù)據(jù)通過光電耦合輸出到數(shù)據(jù)采集部分作進(jìn)一步處理,。
am188EM對心電放大器增益的控制主要通過它的同步串行通信口進(jìn)行。am188EM通過此口輸出串行的控制數(shù)據(jù),,光電耦合后經(jīng)串行DAC轉(zhuǎn)換成壓控增益放大器的控制電壓,,從而調(diào)整整個(gè)心電放大器的增益。出于對患者安全的考慮,,在模擬部分采用浮地技術(shù),,系統(tǒng)電源通過隔離DC-DC變換器向模擬部分提供±5V電源,所有進(jìn)出模擬部分的信號均通過光電耦合器與其它部分耦合,。
數(shù)據(jù)采集部分主要完成心電信號的數(shù)字濾波,、波形整形、壓縮等功能,。通過簡單的數(shù)字濾波,,濾除50Hz工頻干擾和大于1KHz的高頻干擾,消除心電波形上的“毛刺”,,然后運(yùn)用特定的心電數(shù)據(jù)壓縮算法,,對整形后心電數(shù)據(jù)進(jìn)行壓縮,壓縮后的心電數(shù)據(jù)和壓縮前的心電數(shù)據(jù)分別緩沖到先進(jìn)先出存儲器(FIFO),。當(dāng)FIFO中緩沖一定數(shù)量的心電數(shù)據(jù)后,,數(shù)據(jù)采集電路在am188EM的第一個(gè)中斷輸入腳INT0上發(fā)出一個(gè)負(fù)向脈沖,從而觸發(fā)am188EM進(jìn)入中斷服務(wù)程序,。在中斷服務(wù)程序中,,程序設(shè)置am188EM中集成的第一個(gè)DMA通道DMA0的源地址(指向FIFO)、目標(biāo)地址(指向內(nèi)部隨機(jī)存儲器的心電波形緩沖區(qū)),、數(shù)據(jù)數(shù)量等參數(shù),然后啟動(dòng)DMA0,,使FIFO中緩沖的心電數(shù)據(jù)在不占用處理器時(shí)間的情況下,高速輸入處理器所控制的內(nèi)部隨機(jī)存儲器,。
數(shù)據(jù)資料存儲管理部分主要實(shí)現(xiàn)異常心電數(shù)據(jù)以及病人一般資料的存儲和管理,,另外,整個(gè)系統(tǒng)應(yīng)用軟件的存儲和管理也由這部分完成,。數(shù)據(jù)資料存儲管理部分的核心是一大容量的閃速存貯器(FLASH)29F040,容量為512KB,,與程序存貯器28C64復(fù)合占用am188EM的高端地址。
如圖3所示,,程序存儲器28C64與閃速存貯器29F040是通過am188EM的可編程I/O口的0位PIO0控制邏輯電路實(shí)現(xiàn)地址復(fù)用的,。當(dāng)PIO0被置為“1”時(shí),, 28C64的片選信號隨am188EM的高端地址片選信號UCS變化而變化,29F040的片選信號則保持高電平,,于是am188EM便能對程序存貯器28C64進(jìn)行操作,;當(dāng)PIO0被置為“0”時(shí),29F040的片選信號隨am188EM的高端地址片選信號UCS變化而變化,,28C64的片選信號保持高電平,,am188EM對程序存儲器28C64的操作便被禁止而只能對29F040進(jìn)行操作。通常在系統(tǒng)上電時(shí),,由于PIO0被復(fù)位為“1”,,處理器總是能夠?qū)?8C64操作,從其中讀取指令而完成啟動(dòng)引導(dǎo)過程,。
顯示控制部分主要實(shí)現(xiàn)心電信號波形和相關(guān)的圖形,、字符的顯示,它由數(shù)字邏輯電路,、視頻存儲器以及必要的模擬電路組成,。
為了保證所顯示的心電信號波形的穩(wěn)定性,只有在視頻掃描的幀回掃間期才可以刷新心電信號波形數(shù)據(jù),,這實(shí)現(xiàn)起來有一定的困難,。考慮到視頻掃描的幀回掃間期很短且較難以捕捉,,我們將幀同步信號輸入到am188EM的第二個(gè)中斷輸入腳INT1,,當(dāng)幀回掃間期到來時(shí),幀同步信號觸發(fā)am188EM,,使之響應(yīng)中斷,,在中斷服務(wù)程序中,程序設(shè)置am188EM中集成的第二個(gè)DMA通道DMA1的源地址(指向內(nèi)部隨機(jī)存儲器的心電波形緩沖區(qū)),、目標(biāo)地址(指向視頻存儲器)、數(shù)據(jù)數(shù)量等參數(shù),然后啟動(dòng)DMA1,,使心電波形數(shù)據(jù)在不占用處理器時(shí)間的情況下,、高速地傳輸?shù)揭曨l存儲器。
am188EM片內(nèi)集成一個(gè)全雙工的異步通信口,,它的數(shù)據(jù)格式(包括起始位,、停止位、數(shù)據(jù)位,、奇偶校驗(yàn)位等)與標(biāo)準(zhǔn)RS-232通信口完全兼容,,僅需要作簡單的電平轉(zhuǎn)換,將數(shù)字邏輯的+5V轉(zhuǎn)換為RS-232的-10V,、將數(shù)字邏輯的0V轉(zhuǎn)換為RS-232的+10V即可,。電平轉(zhuǎn)換的接口電路種類很多,,功能與應(yīng)用的復(fù)雜程度也各不相同。我們選用的是Maxim公司的MAX202CPA,,它具有體積小,、功耗低、外圍電路簡單(僅需要四個(gè)0.1mF的電容),、可*性高等優(yōu)點(diǎn),。
由于am188EM提供獨(dú)立的20條地址總線和多條由內(nèi)部集成的可編程地址譯碼器譯碼產(chǎn)生的片選信號,所有的外圍電路直接使用這些地址總線和片選信號,,因此,,它的外圍電路部分的設(shè)計(jì)十分簡單,如圖4所示,。
由于am188EM與Intel公司的x86系列處理器在指令上完全兼容,,因此可以借助Microsoft公司的宏匯編工具或其它編程語言在PC機(jī)上很方便地編寫系統(tǒng)的應(yīng)用軟件。系統(tǒng)軟件的編制采用模塊化結(jié)構(gòu),,對于硬件的各個(gè)功能塊編寫了類似于Windows 95/98系統(tǒng)的設(shè)備驅(qū)動(dòng)程序,。
系統(tǒng)軟件主要分為:
1、數(shù)據(jù)采集模塊,,它主要通過DMA完成從數(shù)據(jù)預(yù)處理電路讀取預(yù)處理后的ECG各導(dǎo)聯(lián)的波形數(shù)據(jù),。
2、ECG波形參數(shù)計(jì)算模塊,,它主要根據(jù)獲得的各導(dǎo)聯(lián)的ECG波形數(shù)據(jù)計(jì)算出ECG的各種參數(shù)如P,、R波高,P-R間期,,R波群寬度,,ST段的高低等。
3,、智能診斷模塊,,它主要根據(jù)臨床心血管疾病專家數(shù)據(jù)庫,對ECG的表現(xiàn)作出初步診斷,。
4,、顯示驅(qū)動(dòng)模塊,它主要配合顯示控制電路完成ECG波形及字符,、圖形的顯示,。
5、通信模塊,,它主要通過異步串行通信口實(shí)現(xiàn)與PC的各種通信,,包括輸出系統(tǒng)的各種檢測數(shù)據(jù)和從PC機(jī)輸入各種系統(tǒng)指令和資料。
6,、增益控制模塊,,它主要根據(jù)ECG的波高參數(shù)自動(dòng)調(diào)整系統(tǒng)模擬部分主放大器的增益,,以得到最佳的ECG波形。
在組織整機(jī)系統(tǒng)軟件時(shí),,考慮到儀器在用戶使用過程中智能診斷程序的升級問題,,特地安排了EEPROM-FLASH的程序存儲結(jié)構(gòu)。在EEPROM中,,僅存儲系統(tǒng)引導(dǎo)程序和基本I/O程序(BIOs),,當(dāng)儀器開機(jī)時(shí),首先進(jìn)入EPROM中的引導(dǎo)程序,,引導(dǎo)程序查看FLASH中的標(biāo)志位及串行通信口,,若FLASH中無應(yīng)用程序,則提示用戶通過PC機(jī)下載應(yīng)用程序,,或當(dāng)發(fā)現(xiàn)串行通信口接收到PC機(jī)的升級應(yīng)用程序的指令,,則從PC機(jī)中下載程序并存儲于FLASH中;若FLASH中有應(yīng)用程序并且串行通信口未接收到PC機(jī)的升級應(yīng)用程序的指令,,引導(dǎo)程序?qū)⒁龑?dǎo)CPU執(zhí)行FLASH中的程序,。
雖然am188EM應(yīng)用非常方便、簡單,,但是有幾個(gè)問題要加以注意,,否則,易造成處理器不運(yùn)行,、死機(jī)甚至燒毀,。
⑴ 當(dāng)單片使用am188EM時(shí),它的HOLD片腳一定接地,,否則處理器將被掛起而不能運(yùn)行程序,。
⑵同步數(shù)據(jù)就緒片腳(SRDY)和異步數(shù)據(jù)就緒片腳(ARDY)如果有一個(gè)或全部未使用時(shí),未使用的片腳一定要接地,。
⑶ 不可屏蔽中斷輸入腳在不使用時(shí)一定要接地,。
⑷ 如果使用集成晶振為處理器提供系統(tǒng)時(shí)鐘,那么信號應(yīng)通過X1腳輸入,,令X2腳浮空,。
⑸ 所有的未使用的輸出片腳要保持浮空,不能拉高或拉低,。
⑹由于系統(tǒng)復(fù)位后執(zhí)行的第一條指令從0FFFF0h地址處讀取,因此必須在此處設(shè)置一條跳轉(zhuǎn)指令,,使處理器跳轉(zhuǎn)到軟件的入口處執(zhí)行程序,。