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