徐宏祥,亓愛國,尹冀波,耿 爽,張春宇
(中國電子科技集團公司第四十七研究所,沈陽110032)
液晶顯示器(LCD)由于具有低壓、微功耗、顯示信息量大、體積小等特點,在移動通信終端、便攜計算機、GPS衛(wèi)星定位系統(tǒng)等領(lǐng)域有廣泛用途,成為使用量最大的顯示器件。液晶顯示控制器作為液晶驅(qū)動電路的核心部件通常由集成電路組成,通過為液晶顯示系統(tǒng)提供時序信號和顯示數(shù)據(jù)來實現(xiàn)液晶顯示。本設(shè)計是一種基于FPGA(現(xiàn)場可編程門陣列)的液晶顯示控制器。與集成電路控制器相比,F(xiàn)PGA更加靈活,可以針對不同的液晶顯示模塊更改時序信號和顯示數(shù)據(jù)。FPGA的集成度、復(fù)雜度和面積優(yōu)勢使得其日益成為一種頗具吸引力的高性價比ASIC替代方案。為此提出了將液晶顯示器的控制轉(zhuǎn)換到FPGA來完成的設(shè)計理念,利用VHDL硬件描述語言設(shè)計LCD控制器,實現(xiàn)了替代專用集成電路驅(qū)動控制LCD的作用。
設(shè)計主要以Xilinx公司的Spartan-3E系列FPGA芯片XC3S100E和廣東金鵬電子公司的OCMJ4×8C液晶圖文顯示器為主要器件來完成。FPGA的結(jié)構(gòu)與傳統(tǒng)門陣列相似。器件中大量的可編程邏輯塊(CLB,Configurable Logic Block)在芯片中央按矩陣排列,芯片四周為可編程輸入/輸出塊(IOB,Input/Output Block),CLB行列之間及CLB和IOB之間具有可編程的互連資源(ICR,Inter Connect Resource)。CLB、IOB和ICR都由分布在芯片中的SRAM靜態(tài)存儲單元來控制,SRAM中的數(shù)據(jù)可決定FPGA的功能。這些數(shù)據(jù)可以在系統(tǒng)加電時自動或由命令控制從外部存儲器載入。本設(shè)計實現(xiàn)的LCD控制器硬件結(jié)構(gòu)框圖如圖1所示。
圖1 LCD 控制器硬件結(jié)構(gòu)框圖
采用了廣東金鵬電子公司的OCMJ4×8C液晶圖文顯示器。OCMJ4×8C模塊內(nèi)含GB 2312 16×16點陣國標一級簡體漢字和ASCII 8×8點陣英文字庫,輸入?yún)^(qū)位碼或ASCII碼即可實現(xiàn)文本顯示。它同時為用戶提供位點陣和字節(jié)點陣兩種圖形顯示功能,用戶可以在指定的屏幕位置上以位為單位或以字節(jié)為單位進行圖形顯示。OCMJ4×8C模塊顯示屏幕點陣為128×64,每行可顯示8個漢字或16個字符,其屏幕顯示坐標關(guān)系如圖2所示。其中,漢字坐標X=02H至09H,Y=00至03,ASCII碼坐標X=04H至13H,Y=00至03。
圖2 OCMJ4×8液晶顯示器屏幕顯示坐標關(guān)系
OCMJ4×8C液晶顯示模塊引腳功能說明如表1所示。
表1 OCMJ4×8C液晶顯示模塊引腳功能說明
LEDA/LEDK為背光源引腳,由用戶接上相應(yīng)的電阻調(diào)整LCD背光亮度,電阻阻值一般在10~30Ω之間。
液晶顯示的控制邏輯可由FPGA產(chǎn)生,主要包括初始化模塊、時鐘模塊、寫數(shù)據(jù)模塊以及讀/寫控制等幾部分。
液晶在上電過程中,一般都需要用軟件來初始化。在整個初始化過程中,數(shù)據(jù)都被送入到指令寄存器中。由于液晶的指令和數(shù)據(jù)線是公用的(可利用RS引腳來進行選擇,高電平選擇數(shù)據(jù)寄存器,低電平選擇指令寄存器)。所以,初始化時應(yīng)該將RS置為低電平。下面是OCMJ4×8C液晶顯示模塊的初始化流程:
(1)上電完成以后,進行功能設(shè)置,送數(shù)據(jù)“00110000”,延時2ms;
(2)關(guān)閉液晶顯示,送數(shù)據(jù)“00001000”,延時2ms;
(3)打開液晶顯示,送數(shù)據(jù)“00001100”,延時2ms;
(4)清屏,送數(shù)據(jù)“00000001”,延時2ms;(5)設(shè)定輸入方式,送數(shù)據(jù)“00000110”。
這樣,對液晶的初始化便宣告完成。下面是其部分VHDL程序:
液晶初始化完成以后,便可以寫入數(shù)據(jù)。寫入數(shù)據(jù)時,首先要選擇數(shù)據(jù)寄存器,其次是送入要寫數(shù)據(jù)的地址,最后再送入數(shù)據(jù)。由于數(shù)據(jù)是在使能信號E上升沿的時候送入,但是在使能信號E下降沿的時候才執(zhí)行,所以,送完地址以后要在確定使能信號E為下降沿以后,才能繼續(xù)送入數(shù)據(jù)。否則,數(shù)據(jù)就會被沖掉。數(shù)據(jù)寫入的工作時序如圖3所示。
圖3 寫數(shù)據(jù)時序
寫數(shù)據(jù)過程的部分VHDL程序如下:
利用硬件描述語言VHDL設(shè)計LCD控制器的方法,具有減小電路板尺寸、易于集成到片上系統(tǒng)、縮小系統(tǒng)體積、方便修改、適應(yīng)不同液晶顯示器等特點,具有很好的可重用性;同時也是后續(xù)開發(fā)其他種類液晶顯示控制器的基礎(chǔ)。
在Xilinx的FPGA應(yīng)用開發(fā)系統(tǒng)中,已經(jīng)成功地利用本設(shè)計完成了系統(tǒng)中所需要的LCD顯示功能。實際使用證明,本設(shè)計為嵌入式應(yīng)用系統(tǒng)的人機界面中的LCD控制驅(qū)動與接口設(shè)計提供了一種可靠而實用的方案。表明該液晶顯示控制器成功地替代了傳統(tǒng)的ASIC液晶控制器,具有良好的應(yīng)用前景。
[1] 潘松,黃繼業(yè).EDA技術(shù)實用教程[M].北京:科學(xué)出版社,2002.
[2] 劉乾,陳勁操.OCMJ液晶顯示器的接口設(shè)計與應(yīng)用[J].現(xiàn)代電子技術(shù),2002(8):31-32.
[3] 徐志軍,徐光輝.CPLD/FPGA的開發(fā)與應(yīng)用[M].北京:電子工業(yè)出版社,2002.
[4] 江明,張輝,劉向宇.基于FPGA的LCD控制器設(shè)計與實現(xiàn)[J].電子元器件應(yīng)用,2007,9(2):37-38.
[5] 韓偉,謝憬,毛志剛.基于FPGA的多功能LCD控制器的設(shè)計與實現(xiàn)[J].信息技術(shù),2008(6):58-61.