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