基于Fution模數(shù)混合FPGA芯片的心電儀片上系統(tǒng)開發(fā)
2.2 控制核心Core8051模塊設(shè)計
FPGA內(nèi)部可以嵌入高速的Core8051處理器內(nèi)核,它是整個系統(tǒng)的核心,負(fù)責(zé)有序地調(diào)用其余各功能模塊,同時又兼有數(shù)據(jù)處理任務(wù),負(fù)責(zé)將ADC傳來的數(shù)據(jù)轉(zhuǎn)換成VGA可以顯示的數(shù)據(jù)。Core8051的硬件配置非常靈活,時鐘速度可以達(dá)到33 MHz,ROM的大小可以根據(jù)需要靈活地設(shè)置,該設(shè)計配置為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è)計了一種算法,降低需要處理的數(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è)計完成了低端處理器很難完成的實(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ū)每個定點(diǎn)的坐標(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)點(diǎn)。在Core8051的基礎(chǔ)上設(shè)計編碼算法,對采集到的心電信號進(jìn)行編碼,然后將心電信號轉(zhuǎn)換成顯示屏的坐標(biāo)信號,然后根據(jù)坐標(biāo)信號計算出心電圖像的數(shù)據(jù),并在掃描時鐘的控制下逐次將數(shù)據(jù)按照順序輸入到LCD中, 這樣即可實(shí)現(xiàn)動態(tài)的心電圖像的顯示。
評論