摘要:提出了一種基于FPGA和T6963C模塊來控制液晶顯示的實現(xiàn)方法。介紹了液晶顯示控制器T6963C的性能特點,給出了FPGA與液晶顯示屏WG240128B的硬件接口電路、軟件設(shè)計流程和液晶顯示程序。
0引言
由于液晶顯示具有可編程驅(qū)動、接口控制方便、體積小、功耗低、具有良好的可視化人機界面等優(yōu)點。因而在移動通信終端、便攜計算機、GPS衛(wèi)星定位系統(tǒng)等領(lǐng)域,尤其是便攜式儀器儀表中得到了廣泛應(yīng)用。FPGA的超大規(guī)模集成優(yōu)勢和內(nèi)部邏輯單元的可重復(fù)配置特點。使得其在芯片控制和接口設(shè)計中成為一種頗具吸引力的高性價比控制器件。本文給出了一種基于FPGA控制WG240128B顯示屏工作的液晶顯示模塊的設(shè)計方法。該方法通過VHDL語言編程來控制液晶顯示器的顯示,在實際應(yīng)用中有一定的參考價值。
1 硬件系統(tǒng)
本設(shè)計采用Altera公司的Cyclone III系列FPGA芯片EP3C25和內(nèi)置T6963C液晶控制器的WG240128B顯示模塊組成硬件系統(tǒng)。
1.1 液晶顯示模塊簡介
液晶顯示模塊(LCM)WG240128B是WINSTAR公司生產(chǎn)的、內(nèi)置T6963C液晶控制器的240128圖形點陣顯示模塊。內(nèi)置T6963C控制器的液晶顯示模塊是目前應(yīng)用比較多的顯示模塊,其驅(qū)動控制系統(tǒng)由液晶顯示控制器T6963C及其周邊電路、行驅(qū)動器組、列驅(qū)動器組以及液晶驅(qū)動偏壓電路組成。WG240128B主要由1片LCM控制器T6963C、2片行驅(qū)動器T*0 (第二片只用前60路)、3片列驅(qū)動器T6A39、1片32kB的顯示存儲器CMOS SRAM BS62LV25和1塊240x128點陣液晶顯示屏組成。該顯示模塊的特性實際就是T6963C的電路特性。T6963C的初始化在上電時已通過引腳電平設(shè)置完畢,所以,軟件操作主要集中在顯示操作上。T6963C顯示緩沖區(qū)RAM單元主要包括文本顯示區(qū)、圖形顯示區(qū)(包含文本特性區(qū))、2kB CGRAM區(qū)。該模塊在液晶上的顯示過程,也就是把對應(yīng)的數(shù)據(jù)寫入相應(yīng)的3個顯示緩沖區(qū)的過程。
WG240128B的邏輯電源由VSS和VDD兩個引腳來提供;驅(qū)動電源由V0和VEE提供;背光電源則由LEDA和LEDK提供。VSS和LEDK接地,VDD和LEDA接+5 V,DD-VO<21.7V,根據(jù)具體環(huán)境可選擇VEE是否外接負壓來驅(qū)動顯示屏。其管腳功能如表1所列。
1.2 FPGA控制器簡介
通過編程可配置FPGA內(nèi)部的邏輯單元,從而用軟件實現(xiàn)液晶顯示控制器的設(shè)計。本方案中的FPGA主要負責液晶顯示模塊的系統(tǒng)時序、讀寫控制和顯示數(shù)據(jù)的存取。其內(nèi)部的嵌入式陣列塊EAB是輸入端口和輸出端口都帶有觸發(fā)器的RAM塊,可實現(xiàn)小容量的FIFO、ROM和RAM,使用時,通過調(diào)用這些EAB即可實現(xiàn)字符的存儲,并通過地址值讀取數(shù)據(jù)以供LCD顯示器顯示。
為了滿足FPGA的工作條件,設(shè)計時還必須完成外部電路的設(shè)計,如外部存儲器、工作電源以及外部輸入時鐘(即晶振)電路的設(shè)計,圖1所示是FPGA電路的組成框圖。
l.3 液晶顯示模塊與FPGA的接口設(shè)計
通常計算機和內(nèi)嵌T6963C的液晶顯示器都有兩種連接方式,即直接和間接方式。直接方式是把LCM直接掛在計算機總線上,模塊的數(shù)據(jù)線接計算機的數(shù)據(jù)總線,片選和寄存器信號由計算機的地址總線提供,讀和寫操作由計算機的讀寫操作信號控制,這種方式可廣泛用于單片機控制的液晶顯示系統(tǒng)。間接方式是將計算機的8位并行口與模塊的數(shù)據(jù)線連接,另外3個并行I/O接口作為LCM的時序控制線,這樣,由于并行口是專用的,所以片選信號可以直接接地。由于VEE可以提供LCD驅(qū)動負壓,設(shè)計中可采用外接負壓的方式:將VO接變阻器的調(diào)節(jié)端,然后調(diào)節(jié)適當電壓,并驅(qū)動液晶顯示從而達到最好的對比度效果:C/D和DO~D7分別由FPGA分配通用I/O接口,F(xiàn)S接地是為了選用8x8的顯示字體,其硬件接口連接圖如圖2所示。
2 軟件實現(xiàn)
本系統(tǒng)的軟件設(shè)計可基于VHDL語言編寫。軟件設(shè)計的關(guān)鍵在控制器時序的基礎(chǔ)上完成液晶顯示器與FPGA之間數(shù)據(jù)和指令的讀寫和狀態(tài)的檢測。對液晶顯示器的顯示控制實際上就是FPGA與T6963C控制器的數(shù)據(jù)交換。T6963C的部分指令如表2所列。
對狀態(tài)字的標志位而言,經(jīng)常判斷的是S0和Sl。在寫指令和一次讀寫數(shù)據(jù)時,S0和S1要同時有效,即都要為1,否則表示控制器忙。根據(jù)地址指針指令,可以設(shè)置光標地址、CGRAM偏置地址和顯示地址。顯示區(qū)域設(shè)置指令則可設(shè)置字符和圖形顯示區(qū)首地址和寬度。顯示區(qū)域設(shè)置指令用于設(shè)置文本和圖形合成顯示的邏輯關(guān)系。位操作指令可對當前顯示地址指針所指的顯示單元中的數(shù)據(jù)的任一位寫“0”或?qū)?ldquo;1”。數(shù)據(jù)寫操作就是向數(shù)據(jù)通道里寫數(shù)據(jù)。一次寫數(shù)據(jù)或參數(shù)時,數(shù)據(jù)將寫入數(shù)據(jù)棧中,再由緊接寫入的指令代碼決定該數(shù)據(jù)是寫入當前顯示地址指針所指的單元內(nèi),還是寫入相應(yīng)的寄存器中。數(shù)據(jù)讀操作就是從數(shù)據(jù)通道里讀取數(shù)據(jù)。
完成FPGA與液晶控制器的數(shù)據(jù)交換必須建立在T6963C接口操作的時序之上,其操作時序如圖3所示。
控制時序和讀寫顯示程序部分代碼如下:
圖4所示是其控制系統(tǒng)原理如圖。
3 結(jié)束語
利用硬件描述語言VHDL可編程設(shè)計FPGA以控制LCM顯示。本液晶顯示控制器與FPGA組成顯示系統(tǒng)后,即可先由FPGA將顯示數(shù)據(jù)寫入FPGA內(nèi)部設(shè)計的FIFO寄存器中,當FPGA與LCM控制器進行數(shù)據(jù)交換后,再將顯示數(shù)據(jù)讀出并與控制信號同步送到LCM中,從而實現(xiàn)圖形的顯示。