以ARM+FPGA結(jié)構(gòu)驅(qū)動(dòng)高分辨率液晶顯示設(shè)計(jì)與效果測(cè)試
摘 要: 結(jié)合ARM操作靈活和FPGA實(shí)時(shí)處理的優(yōu)點(diǎn),提出采用ARM+FPGA結(jié)構(gòu)驅(qū)動(dòng)高分辨率RGB888液晶顯示屏。ARM接口豐富、操作靈活可以滿(mǎn)足客戶(hù)操作方便的需求;FPGA模塊采用FPGA+DDR形式,數(shù)據(jù)存取速度達(dá)到400 MB/s可以滿(mǎn)足畫(huà)面刷新速度較快的需求;FPGA操作DDR方式采用雙端口64 bit模式,設(shè)計(jì)32 bit數(shù)據(jù)讀取寬度,實(shí)現(xiàn)RGB888數(shù)據(jù)無(wú)失真顯示。通過(guò)ARM處理器LPC1788和Xilinx公司XC6SLX9硬件平臺(tái)搭建形成產(chǎn)品,在很大程度上滿(mǎn)足了工業(yè)液晶顯示市場(chǎng)的需求。
傳統(tǒng)工業(yè)液晶顯示方案一般采用ARM結(jié)構(gòu)[1],即ARM響應(yīng)用戶(hù)操作的同時(shí)又驅(qū)動(dòng)液晶顯示屏,實(shí)現(xiàn)人機(jī)交互操作。隨著工業(yè)液晶顯示的不斷提高,高分辨率顯示屏應(yīng)用于工業(yè)場(chǎng)合,傳統(tǒng)ARM方案驅(qū)動(dòng)高分辨率顯示屏已力不從心,操作反應(yīng)遲鈍、刷屏速度慢、顯示效果差等缺點(diǎn)暴露出來(lái)。為解決上述缺點(diǎn),本文給出一種ARM+FPGA結(jié)構(gòu)驅(qū)動(dòng)高分辨率液晶顯示設(shè)計(jì)方案。
1 方案設(shè)計(jì)及工作原理本文方案架構(gòu)如圖1所示,主要分為ARM操作處理和FPGA接收顯示數(shù)據(jù)兩大部分,其核心是用FPGA取代ARM內(nèi)部顯示緩沖區(qū),提高ARM處理速度的同時(shí),將ARM顯示數(shù)據(jù)寬度由16 bit提升到32 bit,從整體上提升工業(yè)液晶顯示器性能。
1.1 ARM操作處理
ARM操作處理結(jié)構(gòu)如圖2所示。畫(huà)面信息通過(guò)人機(jī)交互接口和MCU下載到NAND Flash中,需要顯示時(shí),MCU將畫(huà)面讀出,根據(jù)要求送出需要顯示的數(shù)據(jù)至FPGA。為達(dá)到高畫(huà)質(zhì)、刷屏速度快的效果,NAND Flash及SDRAM采用32 bit數(shù)據(jù)寬度的設(shè)計(jì),MCU內(nèi)部處理使用32 bit模式,需要顯示的數(shù)據(jù)直接送出32 bit。
1.2 FPGA接收顯示數(shù)據(jù)
FPGA操作處理結(jié)構(gòu)如圖3所示。FPGA主要完成以下任務(wù):根據(jù)液晶顯示時(shí)序產(chǎn)生讀寫(xiě)顯示控制部分;將接收的數(shù)據(jù)存儲(chǔ)到DDR中;從DDR中讀取需要顯示的數(shù)據(jù),將需要顯示的數(shù)據(jù)轉(zhuǎn)換為L(zhǎng)VDS信號(hào)格式,輸出驅(qū)動(dòng)液晶顯示屏。
1.2.1讀寫(xiě)顯示控制單元設(shè)計(jì)
根據(jù)液晶顯示時(shí)序設(shè)計(jì)讀寫(xiě)顯示控制單元。各種液晶顯示屏雖然時(shí)序有差異,但原理[2]相同,如圖4所示,包括顯示時(shí)鐘DCLK、顯示數(shù)據(jù)RGB_data、場(chǎng)頻Vs、行頻Hs、場(chǎng)消隱和行消隱,只要滿(mǎn)足以上條件即可驅(qū)動(dòng)顯示屏。在行消隱期間將每行需要顯示的數(shù)據(jù)從DDR中讀取到讀FIFO中用于該行的顯示,完成每行的讀操作后將寫(xiě)FIFO中數(shù)據(jù)存儲(chǔ)到DDR中。
1.2.2 LVDS信號(hào)設(shè)計(jì)
LVDS信號(hào)中傳輸?shù)臄?shù)據(jù)是按照LVDS信號(hào)格式排列顯示的,LVDS信號(hào)設(shè)計(jì)就是將需要顯示的RGB888數(shù)據(jù)、DE使能信號(hào)和時(shí)鐘信號(hào)轉(zhuǎn)換為圖5所示的LVDS信號(hào)格式[3]。
硬件設(shè)計(jì)主要分為ARM硬件設(shè)計(jì)模塊和FPGA硬件設(shè)計(jì)模塊。
2.1 ARM硬件設(shè)計(jì)
ARM硬件設(shè)計(jì)部分主要由ARM芯片1788、4片8 bit NAND Flash存儲(chǔ)芯片及兩片16 bit SDRAM組成,如圖6所示。LPC1788通過(guò)并口、串口或者USB接口接收畫(huà)面信息,經(jīng)過(guò)處理預(yù)先存儲(chǔ)到NAND Flash中;根據(jù)用戶(hù)需求再?gòu)腘AND Flash中讀取將要顯示的畫(huà)面信息,同時(shí)配合SDRAM操作,將需要顯示的畫(huà)面送至FPGA硬件設(shè)計(jì)模塊,進(jìn)行下一步驅(qū)動(dòng)顯示屏操作。
2.2 FPGA硬件模塊設(shè)計(jì)
FPGA硬件設(shè)計(jì)模塊主要由一片Xilinx公司的XC6SLX9芯片和一片鎂光公司的MT46V32M16-5B組成,如圖7所示。在XC6SLX9內(nèi)部需要設(shè)計(jì)的硬件結(jié)構(gòu)包括:接收LPC1788送出的需要顯示的數(shù)據(jù);從MT46V32M16-5B中讀取顯示數(shù)據(jù)轉(zhuǎn)換至LVDS驅(qū)動(dòng)顯示屏。
為方便處理,保證系統(tǒng)穩(wěn)定可靠,F(xiàn)PGA芯片XC6SLX9內(nèi)部時(shí)鐘資源分配如圖8所示。外部時(shí)鐘40 MHz輸入到FPGA內(nèi)部時(shí)鐘鎖相環(huán),經(jīng)設(shè)計(jì)分別輸出200 MHz至MT46V32M16-5B;80 MHz至DDR操作控制單元、寫(xiě)FIFO的讀時(shí)鐘和讀FIFO的寫(xiě)時(shí)鐘;400 MHz至LVDS信號(hào)產(chǎn)生模塊的同時(shí),經(jīng)7分頻輸出57.14 MHz至讀FIFO中的讀時(shí)鐘。其中,寫(xiě)FIFO的寫(xiě)時(shí)鐘來(lái)自L(fǎng)PC1788的MCU_CLK。