基于Fusion模數(shù)混合FPGA芯片的心電儀片上系統(tǒng)開發(fā)
摘 要: 利用Actel公司的基于Flash構(gòu)架的模數(shù)混合型Fusion系列FPGA芯片,設(shè)計(jì)了一款低功耗片上的心電監(jiān)護(hù)儀采集顯示系統(tǒng)。結(jié)合Fusion系列的FPGA芯片的各種資源,實(shí)現(xiàn)了心電采集預(yù)處理模塊、數(shù)據(jù)的處理和顯示模塊的系統(tǒng)集成,完整地形成了片上系統(tǒng)。
關(guān)鍵詞: 心電監(jiān)護(hù);FPGA;片上系統(tǒng)
心電監(jiān)護(hù)儀器的研制起源于國外,目前由于我國醫(yī)院用的心電監(jiān)護(hù)儀體積大、價(jià)格昂貴、維護(hù)費(fèi)用高,使用起來極其不便,因此儀器無法滿足家庭與鄉(xiāng)鎮(zhèn)醫(yī)院的使用要求。針對這種狀況,一種小型、價(jià)格低廉、便于維護(hù)的多功能心電監(jiān)護(hù)儀具有相當(dāng)?shù)氖袌龈偁幜1]。
Fusion系列的FPGA是世界上首個(gè)基于Flash構(gòu)架的模數(shù)混合的FPGA,即在數(shù)字FPGA的基礎(chǔ)上加入了模擬電路部分,解決了傳統(tǒng)模擬電路和FPGA分離給設(shè)計(jì)帶來的諸多問題,降低了PCB板的制作難度,縮小了產(chǎn)品的體積。FPGA的可編程性使得系統(tǒng)易于升級。同時(shí)在數(shù)字系統(tǒng)中引入模擬電路,簡化了系統(tǒng)電路設(shè)計(jì)。
1 Fusion FPGA介紹
Fusion FPGA的主要特點(diǎn)主要體現(xiàn)在:
(1)單芯片:無需配置芯片;
(2)高安全性:晶體管受7層金屬保護(hù),具有AES和Flash Lock加密技術(shù);
(3)高可靠性:對高能量粒子轟擊具有免疫作用,具有很強(qiáng)的固件錯(cuò)誤免疫功能;
(4)上電即行:上電時(shí)間非常短,一般只有幾十個(gè)微秒左右;
(5)低功耗:無論是動態(tài)功耗還是靜功耗都低于競爭對手,IGLOO最低可達(dá)5 ?滋W;
(6)低系統(tǒng)成本:無需配置芯片,小功率電源芯片,無需加密芯片,PCB面積更小。
Fusion系列FPGA內(nèi)部框架如圖1所示。
2 片上系統(tǒng)的實(shí)現(xiàn)原理
具體片上系統(tǒng)框圖如圖2所示。經(jīng)過心電信號采集傳感器采集的心電信號接入12位ADC,ADC將心電模擬信號轉(zhuǎn)換成數(shù)字信號被BUF鎖存,然后送給Core8051供其采集處理。Core8051中設(shè)計(jì)算法,將ADC傳來的數(shù)據(jù)轉(zhuǎn)換成VGA可以顯示的數(shù)據(jù),然后送給VGA驅(qū)動模塊。
2.1 ADC模塊設(shè)計(jì)
Fusion FPGA內(nèi)含采樣精度和轉(zhuǎn)換時(shí)間可以靈活配置的AD轉(zhuǎn)換器,為靈活的AD轉(zhuǎn)換方案提供了可能性。作為一種逐次逼近型ADC,這種轉(zhuǎn)換器具有高達(dá)600 Ks/s采樣率,器件內(nèi)部具有2.56 V的參考源,誤差在12位模式下為±6 LSB,具有自動校準(zhǔn)功能。
利用FPGA內(nèi)部邏輯單元對ADC進(jìn)行配置:設(shè)置ADC精度為12位,參考電壓采用幅值為2.56 V精度為1%片內(nèi)電壓源供電,同時(shí)FPGA內(nèi)部的ADC具有Prescaler(預(yù)處理器),所以可以靈活地設(shè)置采樣電壓的范圍,更進(jìn)一步保證了AD轉(zhuǎn)換的精確度。ADC初始化工作過程如下:
(1)等待ADCRESET管腳釋放無效;
(2)ADCRESET管腳釋放無效后,ADC上電自校準(zhǔn);
(3)上電校準(zhǔn)后(CALIBRATE=1),對ACM 進(jìn)行配置;
(4)配置完成后,通過ADC_START來使ADC工作。
FPGA內(nèi)部邏輯單元進(jìn)行ADC的配置和初始化工作,從而控制ADC采樣,具體過程如圖3所示。
2.2 控制核心Core8051模塊設(shè)計(jì)
FPGA內(nèi)部可以嵌入高速的Core8051處理器內(nèi)核,它是整個(gè)系統(tǒng)的核心,負(fù)責(zé)有序地調(diào)用其余各功能模塊,同時(shí)又兼有數(shù)據(jù)處理任務(wù),負(fù)責(zé)將ADC傳來的數(shù)據(jù)轉(zhuǎn)換成VGA可以顯示的數(shù)據(jù)。Core8051的硬件配置非常靈活,時(shí)鐘速度可以達(dá)到33 MHz,ROM的大小可以根據(jù)需要靈活地設(shè)置,該設(shè)計(jì)配置為64 KB。片內(nèi)DATA RAM僅需256 B即可完成驅(qū)動VGA的功能,也可以擴(kuò)展外部64 KB RAM,從而完成更強(qiáng)大的軟件功能。系統(tǒng)中設(shè)置單片機(jī)的片內(nèi)DATA RAM為256 B,并通過系統(tǒng)總線擴(kuò)展了外部64 KB的SRAM,系統(tǒng)框圖如圖4所示。
2.3 彩色顯示驅(qū)動模塊
比較成熟的TFT_LCD顯示驅(qū)動的開發(fā)大多數(shù)基于ARM[2-3]、DSP[4]的平臺。然而本系統(tǒng)使用的處理器是Coer8051,所以沒有辦法移植原有的驅(qū)動模塊。又因?yàn)閳D像數(shù)據(jù)比較大,對處理器運(yùn)算能力的要求比較高,所以結(jié)合Core8051和FPGA的特點(diǎn)重新設(shè)計(jì)了一種算法,降低需要處理的數(shù)據(jù)量,從而在Core8051的能力范圍內(nèi)來完成心電圖像信息的顯示。
為了顯示一幅完整的圖像,按照液晶掃描的時(shí)鐘順序?qū)⑹孪葴?zhǔn)備好的一幀圖像數(shù)據(jù)逐次地輸入到數(shù)據(jù)端口,從而完成一幀圖像的顯示。由于要顯示的圖像只有心電信號是動態(tài)變化的,而其他的都是相對靜止不動的,也就是每一次掃描時(shí)數(shù)據(jù)信息是不變化的,整幅的圖像被分成動態(tài)的(心電圖像)和靜態(tài)的(背景、標(biāo)度)兩部分。動態(tài)的由Core8051產(chǎn)生,并在特定時(shí)刻輸入到TFT_LCD;靜態(tài)的圖像信息事先存儲到FPGA中的存儲器中,每掃描一次都按照特定的順序輸入到LCD。通過這種方法,Core805就只需處理心電信號的信息,從而大大地減少了圖像數(shù)據(jù)的處理量,并完成圖像的顯示。該模塊的設(shè)計(jì)完成了低端處理器很難完成的實(shí)時(shí)彩色界面的驅(qū)動,即僅使用帶有256 B RAM的Core8051就可以顯示256色界面。
根據(jù)上述設(shè)想,可將液晶屏分成動態(tài)部分和靜態(tài)部分,如圖5所示。
圖5中除了“心電信號動態(tài)顯示區(qū)”中顯示出動態(tài)的心電圖像,其他部分包括“動態(tài)顯示區(qū)”中的背景圖像信息全部事先存儲在FPGA內(nèi)部的Flash存儲器中。
動態(tài)顯示區(qū)可以用兩組數(shù)據(jù)來標(biāo)注,設(shè)為:x0,y0,x1,y1,則這個(gè)動態(tài)顯示區(qū)每個(gè)定點(diǎn)的坐標(biāo)就可以表示為(x0,y0)(x0,y1)(x1,y0)(x1,y1)。如圖5所示, 橫坐標(biāo)表示時(shí)間t/s,縱坐標(biāo)表示心電信號的幅值大小U/v,(x0,y0)處為(0,0)坐標(biāo)點(diǎn)。在Core8051的基礎(chǔ)上設(shè)計(jì)編碼算法,對采集到的心電信號進(jìn)行編碼,然后將心電信號轉(zhuǎn)換成顯示屏的坐標(biāo)信號,然后根據(jù)坐標(biāo)信號計(jì)算出心電圖像的數(shù)據(jù),并在掃描時(shí)鐘的控制下逐次將數(shù)據(jù)按照順序輸入到LCD中, 這樣即可實(shí)現(xiàn)動態(tài)的心電圖像的顯示。
心電信號動態(tài)顯示區(qū)的設(shè)計(jì)采用了3種方法,分別為:
(1)移位寄存器法。在FPGA內(nèi)部構(gòu)建一個(gè)240位移位寄存器作為心電圖像的緩存,Core8051實(shí)時(shí)地采集數(shù)據(jù)然后發(fā)送到移位寄存器內(nèi)部,同時(shí)CRT驅(qū)動模塊按照自己的時(shí)序來不斷地掃描移位寄存器,從而顯示出心電圖像。這種方法的缺點(diǎn)是動態(tài)曲線顯示的連續(xù)性不好。
(2)雙RAM緩存法[5]。利用Core8051外部擴(kuò)展的64 KB
RAM作為心電波形信號的緩存,同時(shí)在CRT驅(qū)動模塊中再設(shè)計(jì)一個(gè)心電波形顯示緩存,這樣Core8051就可以先采集心電信號存儲在外部擴(kuò)展的64 KB RAM中,達(dá)到某一數(shù)量后,連續(xù)地發(fā)送給CRT驅(qū)動模塊中的緩存,從而顯示出動態(tài)的心電信號圖像。該設(shè)計(jì)的一個(gè)最大優(yōu)點(diǎn)是圖像顯示連續(xù)(沒有拋棄任何時(shí)刻的心電數(shù)據(jù)),同時(shí)又可以根據(jù)需要選擇觀察采集到的任何時(shí)刻的心電波形。但由于要采集一定數(shù)量的心電波形數(shù)據(jù),因此心電波形的顯示會有一定時(shí)間的延時(shí)。
(3)單RAM緩存法。在Core8051沒有擴(kuò)展外部64 KB RAM的前提下設(shè)計(jì)的,利用一個(gè)雙端口的RAM作為動態(tài)顯示區(qū)的圖像緩存,Core8051通過其中的一個(gè)寫端口向圖像緩存中寫入數(shù)據(jù),VGA控制器通過另外一個(gè)端口從圖像緩存中讀出數(shù)據(jù),兩者互不影響。同時(shí)設(shè)計(jì)算法使雙端口RAM具有位讀寫能力,即利用Core8051來靈活地讀寫雙端口RAM中的任何一位,這樣對圖像數(shù)據(jù)的處理就非常靈活了。這種設(shè)計(jì)的最大優(yōu)點(diǎn)是如方法(1)一樣可以實(shí)時(shí)地顯示。
本文結(jié)合(2)、(3)兩種方法進(jìn)行系統(tǒng)的設(shè)計(jì),彌補(bǔ)了各種方案的缺點(diǎn),實(shí)現(xiàn)了動態(tài)、實(shí)時(shí)顯示的功能,使得片上系統(tǒng)的功能變得完善。這種設(shè)計(jì)結(jié)合了FPGA的可編程性成功解決了低端8位處理器無法驅(qū)動彩色TFT_LCD動態(tài)、實(shí)時(shí)顯示的問題。在此基礎(chǔ)上,還可以利用FPGA和Core8051的資源開發(fā)其他的功能模塊,例如與PC機(jī)的通信、SD卡大量心電數(shù)據(jù)存儲、心電分析與報(bào)警等。
3 系統(tǒng)測試及結(jié)果
心電信號能力集中在中低頻段,隨著頻率的升高,響應(yīng)的能量也逐漸降低[6]。利用信號發(fā)生器產(chǎn)生不同頻率和幅值的正弦信號來模擬心電信號,并將其加到心電信號輸入端口,可以看到CRT顯示器上顯示出和輸入信號完全一致的正弦波形,沒有任何失真。
Fution模數(shù)混合信號芯片的誕生給小型化、便攜式片上系統(tǒng)的設(shè)計(jì)帶來了可能,本文通過對FPGA各種資源的綜合應(yīng)用完成了一種心電監(jiān)護(hù)儀的片上系統(tǒng)的設(shè)計(jì),通過實(shí)際的測試驗(yàn)證了它的準(zhǔn)確性。系統(tǒng)的所有功能都是在FPGA上完成的,所以它的單芯片性和FPGA可編程性,給產(chǎn)品的升級帶來了極大的便利。
參考文獻(xiàn)
[1] 呂德剛,李軍.微型心電監(jiān)護(hù)儀的開發(fā)[J].電子世界,2008,30(12).
[2] 葉一初,胡方明.基于ARM7的心電采集與遠(yuǎn)程傳輸系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2009,17(6):83-85.
[3] 侯立亞.基于ARM的心電采集系統(tǒng)的設(shè)計(jì)[J].醫(yī)療衛(wèi)生裝備,2006,27(1).
[4] 李曉燕.基于DSP的便攜心電數(shù)據(jù)采集處理系統(tǒng)[J].工業(yè)控制計(jì)算機(jī),2006,19(9):54-55.
[5] 龔小年,張興敢.雙口RAM的發(fā)展及在現(xiàn)代數(shù)字系統(tǒng)中的應(yīng)用[J].微處理機(jī),2007(4):110-111.
[6] 何偉.心電信號及各組分的頻率分布和有效帶寬研究[J].生物醫(yī)學(xué)工程學(xué),1996,12(4):336-340.