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