《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM+FPGA高分辨率液晶顯示系統(tǒng)的設計與實現(xiàn)
基于ARM+FPGA高分辨率液晶顯示系統(tǒng)的設計與實現(xiàn)
來源:微型機與應用2014年第6期
張占來,任紅光,季新明
(上海朗睿電子科技有限公司 鄭州研發(fā)中心,河南 鄭州450002)
摘要: 結合ARM操作靈活和FPGA實時處理的優(yōu)點,提出采用ARM+FPGA結構驅動高分辨率RGB888液晶顯示屏。ARM接口豐富、操作靈活可以滿足客戶操作方便的需求;FPGA模塊采用FPGA+DDR形式,數(shù)據(jù)存取速度達到400 MB/s可以滿足畫面刷新速度較快的需求;FPGA操作DDR方式采用雙端口64 bit模式,設計32 bit數(shù)據(jù)讀取寬度,實現(xiàn)RGB888數(shù)據(jù)無失真顯示。通過ARM處理器LPC1788和Xilinx公司XC6SLX9硬件平臺搭建形成產品,在很大程度上滿足了工業(yè)液晶顯示市場的需求。
Abstract:
Key words :

摘  要: 結合ARM操作靈活和FPGA實時處理的優(yōu)點,提出采用ARM+FPGA結構驅動高分辨率RGB888液晶顯示屏。ARM接口豐富、操作靈活可以滿足客戶操作方便的需求;FPGA模塊采用FPGA+DDR形式,數(shù)據(jù)存取速度達到400 MB/s可以滿足畫面刷新速度較快的需求;FPGA操作DDR方式采用雙端口64 bit模式,設計32 bit數(shù)據(jù)讀取寬度,實現(xiàn)RGB888數(shù)據(jù)無失真顯示。通過ARM處理器LPC1788和Xilinx公司XC6SLX9硬件平臺搭建形成產品,在很大程度上滿足了工業(yè)液晶顯示市場的需求。
關鍵詞: ARM+FPGA; 工業(yè)液晶顯示器; 高分辨率; 全彩

    傳統(tǒng)工業(yè)液晶顯示方案一般采用ARM結構[1],即ARM響應用戶操作的同時又驅動液晶顯示屏,實現(xiàn)人機交互操作。隨著工業(yè)液晶顯示的不斷提高,高分辨率顯示屏應用于工業(yè)場合,傳統(tǒng)ARM方案驅動高分辨率顯示屏已力不從心,操作反應遲鈍、刷屏速度慢、顯示效果差等缺點暴露出來。為解決上述缺點,本文給出一種ARM+FPGA結構驅動高分辨率液晶顯示設計方案。
1 方案設計及工作原理
    本文方案架構如圖1所示,主要分為ARM操作處理和FPGA接收顯示數(shù)據(jù)兩大部分,其核心是用FPGA取代ARM內部顯示緩沖區(qū),提高ARM處理速度的同時,將ARM顯示數(shù)據(jù)寬度由16 bit提升到32 bit,從整體上提升工業(yè)液晶顯示器性能。

1.1 ARM操作處理
     ARM操作處理結構如圖2所示。畫面信息通過人機交互接口和MCU下載到NAND Flash中,需要顯示時,MCU將畫面讀出,根據(jù)要求送出需要顯示的數(shù)據(jù)至FPGA。為達到高畫質、刷屏速度快的效果,NAND Flash及SDRAM采用32 bit數(shù)據(jù)寬度的設計,MCU內部處理使用32 bit模式,需要顯示的數(shù)據(jù)直接送出32 bit。
1.2 FPGA接收顯示數(shù)據(jù)
      FPGA操作處理結構如圖3所示。FPGA主要完成以下任務:根據(jù)液晶顯示時序產生讀寫顯示控制部分;將接收的數(shù)據(jù)存儲到DDR中;從DDR中讀取需要顯示的數(shù)據(jù),將需要顯示的數(shù)據(jù)轉換為LVDS信號格式,輸出驅動液晶顯示屏。

1.2.1讀寫顯示控制單元設計
    根據(jù)液晶顯示時序設計讀寫顯示控制單元。各種液晶顯示屏雖然時序有差異,但原理[2]相同,如圖4所示,包括顯示時鐘DCLK、顯示數(shù)據(jù)RGB_data、場頻Vs、行頻Hs、場消隱和行消隱,只要滿足以上條件即可驅動顯示屏。在行消隱期間將每行需要顯示的數(shù)據(jù)從DDR中讀取到讀FIFO中用于該行的顯示,完成每行的讀操作后將寫FIFO中數(shù)據(jù)存儲到DDR中。

1.2.2 LVDS信號設計
    LVDS信號中傳輸?shù)臄?shù)據(jù)是按照LVDS信號格式排列顯示的,LVDS信號設計就是將需要顯示的RGB888數(shù)據(jù)、DE使能信號和時鐘信號轉換為圖5所示的LVDS信號格式[3]。

2 硬件設計
     硬件設計主要分為ARM硬件設計模塊和FPGA硬件設計模塊。
2.1 ARM硬件設計
    ARM硬件設計部分主要由ARM芯片1788、4片8 bit NAND Flash存儲芯片及兩片16 bit SDRAM組成,如圖6所示。LPC1788通過并口、串口或者USB接口接收畫面信息,經(jīng)過處理預先存儲到NAND Flash中;根據(jù)用戶需求再從NAND Flash中讀取將要顯示的畫面信息,同時配合SDRAM操作,將需要顯示的畫面送至FPGA硬件設計模塊,進行下一步驅動顯示屏操作。

2.2 FPGA硬件模塊設計
    FPGA硬件設計模塊主要由一片Xilinx公司的XC6SLX9芯片和一片鎂光公司的MT46V32M16-5B組成,如圖7所示。在XC6SLX9內部需要設計的硬件結構包括:接收LPC1788送出的需要顯示的數(shù)據(jù);從MT46V32M16-5B中讀取顯示數(shù)據(jù)轉換至LVDS驅動顯示屏。

 

 

    為方便處理,保證系統(tǒng)穩(wěn)定可靠,F(xiàn)PGA芯片XC6SLX9內部時鐘資源分配如圖8所示。外部時鐘40 MHz輸入到FPGA內部時鐘鎖相環(huán),經(jīng)設計分別輸出200 MHz至MT46V32M16-5B;80 MHz至DDR操作控制單元、寫FIFO的讀時鐘和讀FIFO的寫時鐘;400 MHz至LVDS信號產生模塊的同時,經(jīng)7分頻輸出57.14 MHz至讀FIFO中的讀時鐘。其中,寫FIFO的寫時鐘來自LPC1788的MCU_CLK。

3 系統(tǒng)方案設計和整體顯示效果測試
3.1系統(tǒng)方案設計要點及解決方法

    FPGA程序時序邏輯基于Xilinx ISE軟件提供的編程環(huán)境和相關資源[4],通過VHDL語言編寫完成。結合系統(tǒng)特點,在進行時序邏輯設計時需要解決以下問題。
    (1)ARM送出的顯示數(shù)據(jù)是一種隨機位置的像素點,所以在存儲數(shù)據(jù)時只能是單個數(shù)據(jù)的存儲,不能批量操作,否則會導致存取速度降低。
    (2)高分辨率顯示屏像素點一般在1 280×1 024以上,此類顯示屏要求驅動數(shù)據(jù)是奇偶列數(shù)據(jù)分離驅動,即雙路LVDS接口(見圖5)。因此在實現(xiàn)LVDS數(shù)據(jù)接口操作時,就需要將顯示的數(shù)據(jù)進行奇偶分離處理,同時送出至顯示屏。
    為解決上述問題,本方案采用雙端口操作DDR控制器模塊,即其中一個端口負責ARM送出奇地址數(shù)據(jù)的接收至DDR和奇地址顯示屏數(shù)據(jù)的讀取至讀奇FIFO;同時,另一端口負責偶地址的存取并最終至讀偶FIFO。在進行顯示時,采用雙路LVDS信號轉換方式,同時送出LVDS信號驅動液晶顯示屏。
3.2 系統(tǒng)方案硬件搭建
    LCD液晶顯示屏采用三星公司的LTM170ET01。系統(tǒng)采用ARM底板+FPGA核心板組合的方式實現(xiàn),ARM模塊電路板(底板)如圖9所示,F(xiàn)PGA模塊電路板(核心板)如圖10所示。在圖9中,上位機通過USB接口或者串口與ARM實現(xiàn)人機交互,ARM將需要顯示的數(shù)據(jù)送至FPGA模塊;FPGA將接收到的數(shù)據(jù)根據(jù)需要通過LVDS接口送出至LCD液晶顯示屏。

3.3顯示效果評測
    傳統(tǒng)ARM顯示處理模式為16 bit,即RGB656結構。顯示屏接口數(shù)據(jù)為RGB888結構,就需要將RGB565結構通過高位補低位的方式擴展到RGB888模式。而本文設計的數(shù)據(jù)接口為32 bit,即xRGB8888模式,實現(xiàn)了與顯示屏接口的無損失對接,顯示全彩無失真,如圖11所示。

    傳統(tǒng)ARM方式既要響應用戶操作,又要驅動顯示屏,占用了ARM較多的資源。而本文采用ARM+FPGA結構,將顯示部分由FPGA完成,節(jié)省了ARM資源的同時,提高了ARM的響應速度。
    為了節(jié)約成本,將LVDS信號接口放在FPGA內部實現(xiàn),省掉外部專用LVDS接口轉換芯片,降低了產品硬件成本,提高了產品競爭力。
參考文獻
[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.

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。