《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 新型高分辨率LCD控制器的設(shè)計與實現(xiàn)
新型高分辨率LCD控制器的設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2011年第6期
陳 重, 李 浩, 陳 曦
(電子科技大學(xué) 電子科學(xué)技術(shù)研究院,四川 成都 611731)
摘要: 為了解決ARM等嵌入式處理器驅(qū)動大屏幕LCD困難的問題,提出了一種基于FPGA的大屏幕LCD控制器解決方案。該控制器通過搭建合理的架構(gòu)設(shè)計及巧妙的總線仲裁機制,解決了大屏幕顯示所需的高刷新率和高更新率問題。同時,多個內(nèi)部寄存器使其支持各種型號的LCD顯示器,并成功地驅(qū)動了15英寸的LCD顯示器。
關(guān)鍵詞: 大屏幕LCD LCD控制器 XC6SLX45
中圖分類號: TP334
文獻標識碼: A
文章編號: 0258-7998(2011)06-123-04
Design and implementation of large-screen LCD controller
Chen Zhong, Li Hao, Chen Xi
Research Institute of Electronic Science and Technology, UESTC, Chengdu 611731, China
Abstract: This paper provides a design of large-screen LCD controller to solve the problem that ARM and other embedded processors can’t drive large-screen LCD. The controller resolves the conflict between high refresh rate and high update rate, that the large screen display needs, by building a rational architecture and bus arbitration mechanism. The registers in the LCD controller make the LCD controller support various types of LCD displays. This LCD controller has driven a 15-inch LCD monitor successfully.
Key words : large-screen LCD; FPGA; LCD controller


    隨著電子技術(shù)的發(fā)展,大屏幕LCD顯示器越來越多地成為各種電子設(shè)備的顯示終端。但是現(xiàn)有的大部分嵌入式處理器,因為其自身的總線速率限制了驅(qū)動大屏幕LCD的能力。例如自帶LCD控制器的ARM嵌入式處理器(三星的2440),其系統(tǒng)總線的時鐘頻率最高只能達到133 MHz[1],除了要傳輸顯示LCD屏的數(shù)據(jù)外,系統(tǒng)總線還要提供其他設(shè)備的數(shù)據(jù)吞吐,所以它的數(shù)據(jù)傳輸量只能滿足小屏幕的顯示,無法滿足高分辨率屏幕的數(shù)據(jù)顯示。
    市場上有很多專用的LCD控制芯片,但是其價格較高、配置不靈活。因此,本文基于能夠高速運行的FPGA[2]為處理核心,以SDRAM作為顯示緩存,設(shè)計LCD控制器,既能夠?qū)RM的系統(tǒng)總線上的顯示數(shù)據(jù)取出,并驅(qū)動大屏幕顯示數(shù)據(jù),又能夠解決專用芯片的弊端。成功地解決了嵌入式處理器在驅(qū)動大屏幕LCD時的資源緊張問題,并可提供清晰穩(wěn)定的圖像顯示。

1 架構(gòu)選擇及硬件實現(xiàn)
1.1 架構(gòu)分析選擇

 根據(jù)嵌入式處理器的工作原理,有三種架構(gòu)形式可以實現(xiàn)LCD控制器的設(shè)計[3],如圖1所示。架構(gòu)2和架構(gòu)3采用了與CPU共用顯示存儲器的方式,在顯示過程中,CPU和LCD控制器需要間斷地釋放對共用存儲器的訪問,以完成刷新數(shù)據(jù)和更新數(shù)據(jù)在存儲器中的交互。這兩種架構(gòu)中,CUP對存儲器的訪問會直接影響到顯示數(shù)據(jù)的更新及LCD顯示器的顯示效果。盡管架構(gòu)2增加了本地存儲器,提高了系統(tǒng)性能,但是同樣受到架構(gòu)模式的制約。而架構(gòu)1避免了共用顯示存儲器的模式,將LCD控制器作為總線上的一個外設(shè),CPU將需要更新顯示的數(shù)據(jù)通過存儲器接口發(fā)送給總線上的LCD控制器,LCD控制器控制LCD顯示。本文系統(tǒng)即采用了架構(gòu)1形式的架構(gòu)。
1.2 系統(tǒng)硬件設(shè)計
 基于架構(gòu)1設(shè)計了圖2所示的硬件結(jié)構(gòu)。整個系統(tǒng)以FPGA對更新數(shù)據(jù)和刷新數(shù)據(jù)的仲裁處理為核心,配合SDRAM的操作及顯示數(shù)據(jù)的傳輸標準轉(zhuǎn)換(LVDS轉(zhuǎn)換)完成其大屏幕顯示器驅(qū)動的任務(wù),實現(xiàn)顯示功能。
 XC6SLX45是XILINX公司新推出的一款FPGA,屬于SPARTAN6系列,具有很高的性價比優(yōu)勢。利用FPGA配置靈活的特點,在硬件方面FPGA主要實現(xiàn)四個接口:CPU接口、SDRAM接口、FPGA配置接口和LCD接口。其中,SDRAM接口[4]和LCD接口都是常用的標準接口,這里不再贅述。FPGA的配置接口用于對FPGA的被動串行配置,采用FPGA的這種配置方式可以很好地提高該控制器的可移植性,又可以節(jié)省FPGA的配置芯片的成本。LCD控制器通過CPU接口連接到AMBA總線上[5],并以存儲器的方式被嵌入式處理器訪問。

 

 

 HY57V283220是一款32 bit數(shù)據(jù)總線寬度的SDRAM,采用32 bit的數(shù)據(jù)總線能夠很好地提高本控制器的數(shù)據(jù)處理速度和其驅(qū)動能力。DS90C38是一款通用的大屏幕LCD顯示器LVDS接口轉(zhuǎn)換芯片,可以適用于大部分差分接口的LCD顯示器,設(shè)計中,可以很好地將FPGA產(chǎn)生的RGB格式的數(shù)據(jù)轉(zhuǎn)換成高速串行差分數(shù)據(jù)格式。
1.3 硬件接口電路設(shè)計
 控制器與CPU的接口是ARM的存儲器訪問接口,接口采用異步通信方式并由26 bit地址線、32 bit數(shù)據(jù)總線接入讀寫片選線組成,其接入接口硬件圖如圖3所示。


 顯示屏接口采用標準的大屏幕LVDS接口,通過LVDS轉(zhuǎn)換芯片與外圍LCD屏幕連接,將FPGA產(chǎn)生的RGB等信號轉(zhuǎn)換成高速差分串行輸出信號。LCD顯示器接口如圖4所示?! ?/p>


2 FPGA軟件設(shè)計
        FPGA軟件模塊及功能示意圖如圖5所示,其軟件設(shè)計分為4個模塊:(1)DCM時鐘管理模塊。主要功能是利用FPGA內(nèi)部DCM產(chǎn)生其他模塊所需的時鐘;(2)接收模塊。主要用來接收CPU發(fā)送來的需要更新的顯示數(shù)據(jù),作適當(dāng)處理后進行數(shù)據(jù)緩存;(3)顯存管理模塊。主要用來解決CPU寫入數(shù)據(jù)和LCD顯示器讀出數(shù)據(jù)之間的沖突;(4)LCD驅(qū)動模塊。主要用于產(chǎn)生LCD顯示器需要的時序。

2.1 接收模塊
    接收模塊的程序流程圖如圖6(a)所示。系統(tǒng)上電復(fù)位后,接收模塊進入等待接收數(shù)據(jù)狀態(tài),當(dāng)有來自CPU的數(shù)據(jù)請求時,接收模塊通過CPU接口通信協(xié)議接收數(shù)據(jù),數(shù)據(jù)包括顯示數(shù)據(jù)和存儲地址。接收數(shù)據(jù)后,首先對地址進行譯碼。地址分為顯示數(shù)據(jù)地址和寄存器地址:當(dāng)?shù)刂窞榧拇嫫鞯刂窌r,接收數(shù)據(jù)對寄存器進行操作,用來對LCD屏的屬性進行配置和控制,以增強LCD控制器對不同LCD屏的兼容性;當(dāng)?shù)刂窞閿?shù)據(jù)地址時,將CPU傳遞的線性地址譯碼為SDRAM寫入操作的bank地址、行地址和列地址。地址譯碼后,將地址和數(shù)據(jù)進行封包組幀,并且加入自動預(yù)充電標志位,以提高SDRAM的寫入數(shù)據(jù)速度。判斷預(yù)充電標志位是否有效的依據(jù)是:數(shù)據(jù)地址是SDRAM的“行末”地址、后一個數(shù)據(jù)不與當(dāng)前數(shù)據(jù)的行地址相同,然后將封號幀的數(shù)據(jù)依次傳入接收緩存(FIFO)中,等待顯存管理模塊的讀取。數(shù)據(jù)的幀格式如表1所示。


2.2 顯存管理模塊
 顯存管理模塊分為:SDRAM接口模塊和SDRAM控制模塊。SDRAM接口模塊根據(jù)SDRAM的操作時序建立SDRAM訪問接口;SDRAM控制模塊仲裁CPU的顯示更新數(shù)據(jù)和LCD的顯示刷新數(shù)據(jù)在SDRAM中的讀寫操作,其操作機制如圖6 (b)所示。系統(tǒng)上電復(fù)位后進入監(jiān)控狀態(tài),然后進入SDRAM讀操作狀態(tài),將LCD顯示緩存中存入一定量的顯示數(shù)據(jù)后,管理模塊進行N次的SDRAM刷新操作,刷新結(jié)束后顯存管理模塊將一直監(jiān)視接收緩存,直到顯示緩存中數(shù)據(jù)不足時則循環(huán)進行讀操作。
    SDRAM是動態(tài)存儲器,合理的操作機制可以提高SDRAM的讀寫速度。本控制器在SDRAM的操作上引入了如下機制以提高系統(tǒng)的性能:
  (1)讀寫操作分開獨立連續(xù)進行:將SDRAM中數(shù)據(jù)連續(xù)讀出固定個數(shù)的數(shù)據(jù),然后進入連續(xù)寫入狀態(tài)。
  (2)連續(xù)兩個數(shù)據(jù)不同行時,采用自動預(yù)充電讀寫操作,同行則不進行預(yù)充電操作。
    (3)在空閑狀態(tài)進行手動刷新SDRAM,
本系統(tǒng)的讀操作是周期進行的,在每次讀操作后進行固定周期數(shù)的刷新操作,既保證了刷新次數(shù),又節(jié)省了刷新時間。
  (4)采用32 bit的SDRAM,以增加位寬換取速度。
2.3 LCD驅(qū)動模塊
  該模塊根據(jù)LCD標準的時序要求產(chǎn)生行時鐘、場時鐘和數(shù)據(jù)使能信號,并且配合像素時鐘將LCD顯示緩存中的32 bit數(shù)據(jù)以16 bit讀出。
3  實驗驗證
  本設(shè)計采用的SDRAM的工作時鐘為133 MHz,為了減少異步時鐘造成的問題,F(xiàn)PGA的系統(tǒng)工作時鐘也采用了相同頻率的工作時鐘,并且成功地應(yīng)用于某船載導(dǎo)航雷達的現(xiàn)實界面的實現(xiàn)上。在雷達圖像顯示中,ARM與LCD控制器之間的數(shù)據(jù)量為30 MB/s,屏幕采用了日立公司TMS150XG1-10TB型號的TFT-LCD顯示器,LCD屏幕的分辨率為1 024×768,像素時鐘為65 MHz。實驗結(jié)果證明,LCD控制器的工作性能良好,屏幕顯示清晰穩(wěn)定。利用chipscope抽取主要的數(shù)據(jù)如圖7所示。抽取結(jié)果顯示,接收到的ARM數(shù)據(jù)經(jīng)過組幀最后正確地產(chǎn)生了用于顯示的數(shù)據(jù)。

    本文介紹了新型高分辨率LCD控制器,解決了大屏幕顯示所需的高刷新率和高更新率問題。同時,多個內(nèi)部寄存器使其支持各種型號的LCD顯示器,并已成功地驅(qū)動了15英寸的LCD顯示器。
參考文獻
[1] ELECTRONICS S. S3C2440A 32-bit CMOS microcontroller user′s manual(R).2004.
[2] 王順利,戴明,孫麗娜. 基于FPGA的一種新型8通道數(shù)據(jù)采集系統(tǒng)[J].電子技術(shù)應(yīng)用,2009,35(11).
[3] MOTION S. SM502 mobile multimedia companion chip Databook(R).2006.
[4] 李衛(wèi),王杉,魏急波. SDRAM控制器的FPGA設(shè)計與實現(xiàn)[J]. 電子工程師,2004,30(10).
[5] 曹志香,桑愛兵,丁黃勝,等.基于AMBA總線的嵌入式彩色LCD控制器的設(shè)計及FPGA實現(xiàn)[J].電子器件,
2004,27(1).

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