1. 引言
隨著液晶技術的日益成熟,液晶顯示器在顯示技術中得到了越來越廣泛的應用.當前LCD顯示技術已經成為新一代平板技術顯示技術的主流.LCD顯示屏幕主要包括液晶屏幕,驅動電路以及控制驅動電路的系統。我們設計的LCD控制器主要是用來控制RGB模式的數據以及MCU模式的命令,參數的傳輸,實現LCD的控制功能. RGB模式主要有16bit輸入,16bit輸出; 16bit輸入,18bit輸出; 18bit輸入,16bit輸出;18bit輸入,18bit輸出;4種模式的傳輸。本文就LCD的驅動進行分析,介紹,提出硬件電路的設計以及驗證方法。
2. LCD驅動器的介紹
2.1整體結構
LCD的控制系統是采用ARM公司的ARM926EJ-S,根據需求通過APB總線來控制LCD驅動電路的寄存器并設置相應的值,從而驅動LCD的顯示屏幕。根據LCD顯示屏的需求,LCD的驅動電路設計了2種接口模式:RGB和MCU。RGB在傳輸時,采用的同步方式,由LCD驅動電路產生象素時鐘,處理數據的速度比較快,多用于同步通信中。MCU在傳輸時采用的是異步處理方式,處理數據的速度相比RGB而言要慢一些。
2.2驅動器的內部結構
LCD驅動電路的內部如圖2所示,APB總線是由ARM系統輸出的控制信號線來配置整個LCD驅動電路的寄存器,實現輸出信號的控制。IRQ和ACK等幾根信號是跟DMA相連的,主要是中斷的產生及清楚,如一幀發送完畢,FIFO里面數據為空,都會產生中斷信號。 FIFO主要用來存儲并轉發數據,由于ARM的時鐘在頻率上要比LCD驅動的時鐘信號快很多。FIFO就先把ARM寫的數據存儲起來.然后再根據LCD驅動的要求把數據轉發出去。Timing Controller用來控制行同步, 幀同步,象素時鐘,數據使能等信號的產生。 LCD驅動輸出只有1種模式,為了減少引腳,在信號輸出的時,把RGB和MCU模式的引腳復用在一起。
2.3控制流程
RGB控制:當模塊處于IDLE狀態時,首先配置分頻寄存器,幀同步寄存器,行同步寄存器,然后配置控制寄存器把相應位設置成RGB模式,并啟動傳輸位。在RGB模式啟動后,就開始往數據寄存器里寫數據。
MCU控制:在模塊處于IDLE狀態時,首先配置分頻寄存器,然后啟動控制寄存器。啟動模塊之后,就在MCU命令寄存器里面輸入要完成的功能。
3. LCD的測試平臺
LCD的驗證平臺主要是以事務處理的方式產生激勵,檢查測試響應。在Testbench中,LCD的激勵由ARM產生,向LCD輸入想要產生的事務,經過LCD輸入的接口產生一系列響應,然后檢查響應對應的數值是否正確。
由于思路的局限性和重復性,模塊的設計和仿真一般不由同一個人設計,要做到設計和仿真相分離。仿真人員不必了解里面代碼里面具體實現過程,只需要了解所要完成的功能,實現的是黑盒測試。在這種層次上測試可以認為模塊的接口是由一個輸入和一個輸出接口構成的。測試平臺的目的就是向輸入接口產生輸入,從輸出接口檢查輸出。模塊端口的這些動作并不是隨機的,在大多數數字系統中,對于某些端口只會產生有限的事務處理。通常的情況下,這些事務處理就是對模塊中的存儲單元進行讀寫數據的操作。
3.3LCD輸出的時序圖
3.3.1RGB控制部分
在RGB模式中,LCD數據的掃描是以行為單位的。HSYNC是水平同步信號。PCLK是象素時鐘。ENABLE是數據使能信號,當它為高時,在PCLK的上升沿輸出有效數據。P_DATA是輸出的數據。
水平同步信號的上升沿到ENABLE的上升沿的間隔稱為HBP。把ENABLE的下降沿到水平同步信號的下升沿的間隔稱為HFP。把水平同步信號的低電平(非有效電平)持續時間稱為HSW。
HSW存在的必要性:水平同步信號為低電平有效。在水平同步信號有效時,需要等待HBP的時間,才從數據線取數。由于水平同步信號的有效電平持續時間通常比無效電平長,因此占空比不是50%。無效電平短些比較好。
HBP和HFP存在的必要性:從道理上說,LCD使用矩陣尋址這兩個階段完全可以沒有。但是考慮到從前CRT電子槍行掃描時,需要一個返回時間,而且目前的制式中,在有效信號的兩端分別加入了消隱時間。就是為了做到一致,這二者才出來的。
3.3.2MCU控制部分
當lcd_conf[1]為1的時候啟動了MCU模式, MCU模式只有2種操作, 往LCD里面寫數據或者從LCD里面讀數據. 首先在IDLE狀態判斷是進行寫操作還是讀操作. 如果是進行寫操作, 就轉到寫狀態去, 把數據寫到LCD里面去, 輸出的寫信號置為低狀態, 當計數器等于低狀態設置周期數的時候,把寫信號置為高狀態。當計數器等于高狀態設置周期數的時候, 表示一個寫操作已經完成. 讀操作也是同樣的道理。
4. 結束語
經過測試和驗證等,LCD輸出的引腳HSYCN,VSYNC,DATA,CS等一些基本信號測試的結果跟設計的功能完全吻合,表明代碼的設計已經完成,接下來要做的工作就是跑綜合進行時序分析,最后就是后端布局布線等。