|
引言 液晶顯示驅(qū)動有多種方法,通常采用的方法為基于專用集成電路的方法和基于通用微處理器的方法。本文研究了一種基于FPGA (EP1K30QC208-3)的液晶顯示驅(qū)動方法,與專用集成電路比, FPGA 更靈活;與通用微處理器相比, FPGA 的速度更快。利用硬件描述語言,編制了液晶顯示驅(qū)動的IP核,開發(fā)了32×32 可變寬度像素點的液晶顯示驅(qū)動電路,指出,基于FPGA的驅(qū)動方法能夠滿足液晶顯示驅(qū)動時序上的要求,且具有控制靈活的特點,在外擴(kuò)片外SRAM 或SDRAM 后,容易移植在更多可變寬度像素點的液晶顯示器的驅(qū)動上。因FPGA 液晶顯示驅(qū)動器的像素時鐘為25.175MHz ,普通的單片機難以滿足要求,故選用ALTERA 公司的ACEX 系列FPGA 作為驅(qū)動電路的核心部件。FPGA即現(xiàn)場可編程門陣列器件,是一種超大規(guī)模集成電路,具有在電路可重配置能力(in circuit reconfigurable , ICR) 。設(shè)計者設(shè)計的邏輯在編譯、適配后變成網(wǎng)絡(luò)表,下載到FPGA 芯片上之后, FPGA 即可執(zhí)行設(shè)計邏輯的功能。因此,F(xiàn)PGA 非常適合于進(jìn)行快速原型設(shè)計,設(shè)計者可完全控制產(chǎn)品開發(fā)過程中由邏輯設(shè)計到最終產(chǎn)品的全過程。 設(shè)計與實現(xiàn) 本液晶顯示屏采用了商用的CJM10C11 系列TFT 液晶顯示屏,該顯示屏是一種用非晶硅作為開關(guān)器件的有源矩陣液晶顯示器,其接口為TTL 電平,分辨率為640×480 像素,像素尺寸為100μm×300μm ,灰度級為64級灰度,用18bit數(shù)據(jù)信號能顯示262144 色。 圖1 液晶顯示驅(qū)動系統(tǒng)總體框圖 液晶顯示驅(qū)動電路總體框圖如圖1 所示。驅(qū)動電路通過串口和上位機進(jìn)行通訊,數(shù)據(jù)通過串口傳輸?shù)紽PGA 的片上ROM 中,傳輸結(jié)束后FPGA 上的液晶顯示驅(qū)動電路開始工作,控制信號發(fā)生器產(chǎn)生控制信號及地址, 并將由片上ROM 讀出的各可變寬度像素點的灰度值送LCD顯示器顯示。在本方案中,與上位機的串行接口、片上ROM、像素時鐘發(fā)生器以及控制信號發(fā)生器都是在一片F(xiàn)PGA (ACEX1 K30) 上實現(xiàn)的。 ACEX 系列的FPGA 由排成行和列的邏輯陣列塊LAB (logic array block) 、每行之中嵌入的嵌入式陣列塊EAB (embedded array block) 、快速互連以及IO 單元構(gòu)成。每個邏輯陣列塊包含8 個邏輯單元LE (logic element ) 和一個局部互聯(lián)。每個邏輯單元則由一個4 輸入查找表(LUT) ,一個可編程觸發(fā)器,快速進(jìn)位鏈、級連鏈組成,多個LAB和多個EAB通過快速通道互相連接。嵌入式陣列塊是ACEX 系列器件在結(jié)構(gòu)設(shè)計上的一個重要部件。它是輸入端口和輸出端口都帶有觸發(fā)器的一種靈活的RAM塊,其主要功能就是實現(xiàn)一些規(guī)模不太大的FIFO、ROM、RAM 和雙端口RAM 等。 在本液晶顯示驅(qū)動電路中,主要用宏功能模塊實現(xiàn)片上ROM ,它調(diào)用FPGA 上的EAB 資源實現(xiàn)灰度數(shù)據(jù)的存儲,用普通的邏輯單元存儲坐標(biāo)值,實現(xiàn)可變寬度像素的像素寬度存儲。在ACEX1K30 中,共有6塊4096 位的EAB 資源,可實現(xiàn)45×45 可變寬度像素的18 bit 灰度顯示。另外,在綜合時,計數(shù)器、加法器等邏輯器件能夠調(diào)用FPGA 上的快速進(jìn)位鏈等資源,提高設(shè)計的性能。液晶顯示器顯示方案如圖2所示,整個圖像分為消隱區(qū)和可視區(qū),在可視區(qū)中劃分出32×32可變寬度像素的控制顯示區(qū),每個可變寬度像素中是由n×n個像素構(gòu)成的。當(dāng)掃描點位于可視區(qū)內(nèi),控制顯示區(qū)外時,所顯示的灰度為0;當(dāng)掃描信號進(jìn)入控制顯示區(qū)后,根據(jù)控制信號發(fā)生器所產(chǎn)生的地址值,由ROM 中讀取灰度值,送LCD顯示器進(jìn)行顯示。控制顯示區(qū)在可視區(qū)中的坐標(biāo)以及每個可變寬度像素的寬度,即行或列方向上的像素數(shù)都是獨立可調(diào)的,具有很強的靈活性。 圖2 液晶顯示器顯示方案 像素時鐘發(fā)生器 像素時鐘發(fā)生器是LCD 液晶顯示器驅(qū)動IP核中顯示和控制信號發(fā)生器的基準(zhǔn)。該顯示屏的時序信號為由水平和垂直視頻時序組合而成的復(fù)合視頻時序。像素時鐘頻率為25.175MHz ,像素時鐘周期為39.72ns ,行顯示時間為640個時鐘周期,行消隱時間為160個時鐘周期,每個視頻行為800 個時鐘周期,幀顯示時間為480個視頻行周期,幀消隱時間為45個視頻行周期。在FPGA中,將像素時鐘發(fā)生器和控制信號發(fā)生器組合在同一個控制模塊WF 中,用硬件描述語言VHDL實現(xiàn)了該液晶顯示驅(qū)動IP 核,如圖3 所示。CLK腳接25.175 MHz 晶振,產(chǎn)生液晶顯示屏所需要的像素時鐘。控制行、幀顯示及消隱的二進(jìn)制計數(shù)器在行、幀消隱期間復(fù)位,在行、幀顯示期間開始工作,并產(chǎn)生控制信號發(fā)生器所需要的信號。 圖3 液晶顯示器驅(qū)動IP核 控制信號發(fā)生器 控制信號發(fā)生器最主要的部分是地址產(chǎn)生器,它根據(jù)水平和垂直顯示及消隱計數(shù)器的值產(chǎn)生控制信號,其狀態(tài)機如圖4 所示。液晶顯示驅(qū)動器驅(qū)動電路工作后,首先由ROM中讀入控制顯示區(qū)的參照點坐標(biāo)、控制顯示區(qū)每行中的可變寬度像素數(shù)、可變寬度像素的寬度等數(shù)據(jù),在水平顯示及垂直顯示時間, 將水平顯示與垂直顯示計數(shù)器中的值與這些數(shù)據(jù)進(jìn)行比較,判定是否進(jìn)入控制顯示區(qū)域,需要進(jìn)行顯示。如未進(jìn)入控制顯示區(qū)域,即Ent = 0 ,則灰度值為0 ,若Ent = 1 則水平、垂直的可變寬度像素計數(shù)器和像素計數(shù)器開始計數(shù),如垂直的像素計數(shù)器Vis、水平的可變寬度像素計數(shù)器Hsb 和水平的像素計數(shù)器His 都為零,則表示已掃描到一行可變寬度像素的最后一個像素,觸邊計數(shù)器Rre計數(shù)值加1 。根據(jù)觸邊計數(shù)器、水平可變寬度像素計數(shù)器以及每行中的可變寬度像素數(shù)(為常數(shù),本文中為32) ,可確定地址Addr的值。通過此地址即可由ROM 中讀出灰度值,送到TFT 液晶顯示屏后就可以控制每個可變寬度像素的灰度值,即加在每個像素的兩極的電壓,從而實現(xiàn)可變坐標(biāo)、可變像素寬度、可變灰度的顯示。 圖4 控制信號發(fā)生器狀態(tài)機 液晶顯示驅(qū)動IP 核的仿真結(jié)果如圖5 所示,其中enab 為復(fù)合同步信號,fsyn 為幀同步信號。該IP 核在QuartusII 4.2 下編譯通過,占用1K30-3中的458個LE ,最高時鐘頻率為25.71 MHz ,滿足設(shè)計要求。 圖5 幀、行時序仿真結(jié)果 結(jié)語 本方案以FPGA 為核心,實現(xiàn)了液晶顯示器驅(qū)動IP 核,整個系統(tǒng)控制靈活,結(jié)構(gòu)緊湊。當(dāng)然,對于規(guī)模更大的方案,如100×100 像素等,可用片外SRAM 或SDRAM 代替片上ROM。另外,若液晶屏的分辨率更高,如800×600 ,此時像素時鐘為50 MHz ,可用線性反饋移位寄存器型計數(shù)器(LFSR Counter) 代替二進(jìn)制計數(shù)器,以取得更好的顯示效果。 |