摘 要: 結(jié)合ARM操作靈活和FPGA實(shí)時(shí)處理的優(yōu)點(diǎn),提出采用ARM+FPGA結(jié)構(gòu)驅(qū)動(dòng)高分辨率RGB888液晶顯示屏。ARM接口豐富、操作靈活可以滿足客戶操作方便的需求;FPGA模塊采用FPGA+DDR形式,數(shù)據(jù)存取速度達(dá)到400 MB/s可以滿足畫(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)品,在很大程度上滿足了工業(yè)液晶顯示市場(chǎng)的需求。
關(guān)鍵詞: ARM+FPGA; 工業(yè)液晶顯示器; 高分辨率; 全彩
傳統(tǒng)工業(yè)液晶顯示方案一般采用ARM結(jié)構(gòu)[1],即ARM響應(yīng)用戶操作的同時(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)消隱和行消隱,只要滿足以上條件即可驅(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]。
2 硬件設(shè)計(jì)
硬件設(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ù)用戶需求再?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)自LPC1788的MCU_CLK。
3 系統(tǒng)方案設(shè)計(jì)和整體顯示效果測(cè)試
3.1系統(tǒng)方案設(shè)計(jì)要點(diǎn)及解決方法
FPGA程序時(shí)序邏輯基于Xilinx ISE軟件提供的編程環(huán)境和相關(guān)資源[4],通過(guò)VHDL語(yǔ)言編寫(xiě)完成。結(jié)合系統(tǒng)特點(diǎn),在進(jìn)行時(shí)序邏輯設(shè)計(jì)時(shí)需要解決以下問(wèn)題。
(1)ARM送出的顯示數(shù)據(jù)是一種隨機(jī)位置的像素點(diǎn),所以在存儲(chǔ)數(shù)據(jù)時(shí)只能是單個(gè)數(shù)據(jù)的存儲(chǔ),不能批量操作,否則會(huì)導(dǎo)致存取速度降低。
(2)高分辨率顯示屏像素點(diǎn)一般在1 280×1 024以上,此類(lèi)顯示屏要求驅(qū)動(dòng)數(shù)據(jù)是奇偶列數(shù)據(jù)分離驅(qū)動(dòng),即雙路LVDS接口(見(jiàn)圖5)。因此在實(shí)現(xiàn)LVDS數(shù)據(jù)接口操作時(shí),就需要將顯示的數(shù)據(jù)進(jìn)行奇偶分離處理,同時(shí)送出至顯示屏。
為解決上述問(wèn)題,本方案采用雙端口操作DDR控制器模塊,即其中一個(gè)端口負(fù)責(zé)ARM送出奇地址數(shù)據(jù)的接收至DDR和奇地址顯示屏數(shù)據(jù)的讀取至讀奇FIFO;同時(shí),另一端口負(fù)責(zé)偶地址的存取并最終至讀偶FIFO。在進(jìn)行顯示時(shí),采用雙路LVDS信號(hào)轉(zhuǎn)換方式,同時(shí)送出LVDS信號(hào)驅(qū)動(dòng)液晶顯示屏。
3.2 系統(tǒng)方案硬件搭建
LCD液晶顯示屏采用三星公司的LTM170ET01。系統(tǒng)采用ARM底板+FPGA核心板組合的方式實(shí)現(xiàn),ARM模塊電路板(底板)如圖9所示,F(xiàn)PGA模塊電路板(核心板)如圖10所示。在圖9中,上位機(jī)通過(guò)USB接口或者串口與ARM實(shí)現(xiàn)人機(jī)交互,ARM將需要顯示的數(shù)據(jù)送至FPGA模塊;FPGA將接收到的數(shù)據(jù)根據(jù)需要通過(guò)LVDS接口送出至LCD液晶顯示屏。
3.3顯示效果評(píng)測(cè)
傳統(tǒng)ARM顯示處理模式為16 bit,即RGB656結(jié)構(gòu)。顯示屏接口數(shù)據(jù)為RGB888結(jié)構(gòu),就需要將RGB565結(jié)構(gòu)通過(guò)高位補(bǔ)低位的方式擴(kuò)展到RGB888模式。而本文設(shè)計(jì)的數(shù)據(jù)接口為32 bit,即xRGB8888模式,實(shí)現(xiàn)了與顯示屏接口的無(wú)損失對(duì)接,顯示全彩無(wú)失真,如圖11所示。
傳統(tǒng)ARM方式既要響應(yīng)用戶操作,又要驅(qū)動(dòng)顯示屏,占用了ARM較多的資源。而本文采用ARM+FPGA結(jié)構(gòu),將顯示部分由FPGA完成,節(jié)省了ARM資源的同時(shí),提高了ARM的響應(yīng)速度。
為了節(jié)約成本,將LVDS信號(hào)接口放在FPGA內(nèi)部實(shí)現(xiàn),省掉外部專(zhuān)用LVDS接口轉(zhuǎn)換芯片,降低了產(chǎn)品硬件成本,提高了產(chǎn)品競(jìng)爭(zhēng)力。
參考文獻(xiàn)
[1] NXP Semiconductors. LPC178x/7x.32-bit ARM Cortex-M3 microcontrolle r; up to 512 KB Flash and 96 KB SRAM; USB Device/Host/OTG;Ethernet;LCD;EMC.Rev.00.08.1.[Z]. 2011.
[2] Lux Display. AT070TN83 V.1[Z].
[3] Samaung Electronics.Samaung TFT-LCD.LTM-170ET01[Z].21.2009.
[4] Xilinx. Spartan-6 FPGA memory controller UG388(v2.3)[Z]. 2010.