基于MAX II系列CPLD 的LCD控制器設計
0前言
液晶顯示屏(LCD)是薄型平面顯示設備,由排列在光源或者反射器之前一定數量的彩色或者單色象素構成。這類(lèi)顯示屏已經(jīng)成為大部分嵌入式系統不可缺少的組成部分。但是在嵌入式系統中八位和十六位微處理器大多沒(méi)有內置的LCD控制器,又由于LCD屏的分辨率很高,即使有內置的LCD控制器,也較難進(jìn)行控制;另外內置LCD控制器對內存帶寬的占用較高,使控制器所能支配的資源也會(huì )變得非常有限。因此在微處理器和LCD屏之間加上一個(gè)LCD控制器是非常必要的。常用的LCD控制器主要有兩種:專(zhuān)用的控制芯片和基于可編程器件的控制器。本文采用Altera公司的MAX II系列CPLD器件來(lái)實(shí)現LCD控制器。CPLD一般使用外加的串行EEPROM來(lái)存儲非易失信息,而MAX II CPLD是唯一具有用戶(hù)閃存(UFM)的CPLD,它支持用戶(hù)存儲高達8Kbits的非易失信息,因此不需要采用外部存儲器,并且在實(shí)現LCD控制器時(shí)還可以利用CPLD的內部UFM振蕩器來(lái)滿(mǎn)足時(shí)鐘需求,從而避免了采用外部時(shí)鐘信號。這些獨特的功能使MAX II CPLD成為實(shí)現LCD控制器最好的目標器件。
1 嵌入式系統的LCD接口電路結構
基于MAX II CPLD的LCD接口電路一般采用圖1所示結構。圖中LCD接口電路負責接受微處理器的配置,通過(guò)總線(xiàn)把DRAM上保存的顯示數據讀出,然后按照屏類(lèi)型和顯示設置轉換為需要的格式,并按照屏時(shí)序要求發(fā)送出去。在設計顯示控制器時(shí),需要注意如下幾個(gè)方面:支持的屏類(lèi)型、總線(xiàn)類(lèi)型的選擇、同微處理器之間的交互方式、動(dòng)態(tài)圖像顯示和中斷設計?;贑PLD的LCD控制器可以提供合適的顯示單元,它產(chǎn)生需要的時(shí)序信號,滿(mǎn)足LCD的時(shí)序要求,同時(shí)卸載了微處理器和控制器繁重的LCD處理任務(wù),從而提高了處理器和控制器執行其他操作的效率。
2 LCD 控制器組成與接口信號
2.1 LCD 控制器組成
由圖1可知,LCD控制器有三個(gè)主要模塊:有限狀態(tài)機(FSM)、時(shí)鐘分頻器和用戶(hù)閃存(UFM)模塊。
1、初始化LCD和有限狀態(tài)機模塊
FSM模塊有8個(gè)不同的狀態(tài)。它用于初始化LCD,初始化完成后顯LCD進(jìn)行讀寫(xiě)操作。圖2所示為L(cháng)CD模塊的初始化步驟。為簡(jiǎn)化初始化過(guò)程,每次發(fā)送一條命令后,延時(shí)15ms(而不是檢查忙標志的狀態(tài))。但是向LCD模塊寫(xiě)入數據時(shí),每一數據寫(xiě)操作之后,要檢查忙標志的狀態(tài)。這樣就加速了寫(xiě)操作過(guò)程。
2、時(shí)鐘分頻器模塊
時(shí)鐘分頻器模塊主要是降低內部振蕩器輸出頻率,從而滿(mǎn)足了LCD模塊的時(shí)序要求以及控制器的性能要求。該模塊把振蕩器輸出信號osc的頻率由.5MHz降低到43kHz左右。降低頻率以后的信號(即Clk信號)從時(shí)鐘分頻器模塊輸出(見(jiàn)圖3)。該模塊主要代碼為:
module divider (osc, clk);
input osc;
output clk;
reg clk;
reg [6:0]count;
initial
begin
count = 7'b0000000;
end
always @ (posedge(osc))
begin
count = count + 7'b0000001;
clk = count[6];
end
endmodule
3、用戶(hù)閃存模塊
MAX II CPLD中的用戶(hù)閃存UFM模塊主要用于存儲LCD控制器打開(kāi)之后,需要在LCD屏上顯示的信息。采用十六進(jìn)制(Intel格式)文件(.hex)對UFM進(jìn)行設置,并利用UFM宏功能進(jìn)行例化。
UFM模塊接口信號主要有addr、nread、do、dv、osc和clk信號:
Addr為9位地址總線(xiàn),用于選擇UFM的某一存儲位置。
nread 若該信號設置為0,以讀取地址總線(xiàn)所指向存儲器的內容。
do 為數據輸出信號。8位數據總線(xiàn),保持地址總線(xiàn)所指向16位存儲器的高8位。
dv 為數據有效信號。該信號指示8位數據總線(xiàn)上的數據有效并且可讀。
osc 為UFM模塊內部振蕩器輸出。輸出信號到時(shí)鐘分頻器,輸出頻率為5.5MHz。
2.2 LCD 控制器接口信號
1、LCD控制器與LCD屏之間的接口信號
LCD控制器與LCD模塊之間的接口信號有E、RS、RW 、DB0-DB7:
E為使能選通信號。該信號下降沿將雙向總線(xiàn)上的數據鎖存到數據或者命令寄存器中,反之亦然。
RS為寄存器選擇信號。用于選擇LCD模塊的數據和命令寄存器。當RS=0時(shí)為命令寄存器;
RS=1時(shí)為數據寄存器。
RW為區分讀寫(xiě)操作的讀寫(xiě)信號。RW=0:寫(xiě)操作;RW=1:讀操作
DB0-DB7為8位雙向總線(xiàn),承載LCD模塊的數據和命令。
2、LCD控制器與微處理器之間的接口信號
LCD控制器與微處理器之間的接口信號有DATA0-DATA7、RST、WE、ACK:
DATA0-DATA7 為處理器和控制器的8位總線(xiàn),承載LCD模塊上顯示的ASCII字符值。
RST 為復位信號。該信號用于復位控制器,再次初始化LCD模塊。
WE 為寫(xiě)使能信號。該信號指示寫(xiě)周期的開(kāi)始。應將它設為低電平,使能對LCD模塊的寫(xiě)操作。
ACK 為應答信號。該信號指示數據已經(jīng)成功地發(fā)送到LCD模塊,準備接收后面的數據。
在此信號變?yōu)榈碗娖街鞍l(fā)送的任何數據都被控制器忽略。
3設計與仿真
本設計通過(guò)MAX II CPLD EPM240ZM成功地實(shí)現了處理器和LCD模塊的接口,圖5-圖7分別給出了LCD控制器的整體模塊、綜合結果和仿真波形。
4結論
本設計采用MAX II系列CPLD器件EPM240ZM來(lái)實(shí)現LCD控制器,解決了微處理器與LCD顯示模塊之間的接口問(wèn)題,并在OptrexSC1602D 16×2字符LCD模塊上實(shí)現了嵌入式系統的顯示功能。由于是使用一片MAX II CPLD芯片完成LCD全部的時(shí)序控制、顯示控制等功能,所以是接口電路變得更加簡(jiǎn)潔、可靠,具有很好的應用價(jià)值。
本文作者創(chuàng )新點(diǎn): 使用唯一具有用戶(hù)閃存(UFM)的MAX II CPLD,不需要采用外部存儲器就實(shí)現了LCD 全部的時(shí)序控制、顯示控制等功能,使LCD 接口電路變得更加簡(jiǎn)潔、可靠。
評論