新聞中心

EEPW首頁 > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 基于MAX II CPLD 的LCD控制器設(shè)計(jì)

基于MAX II CPLD 的LCD控制器設(shè)計(jì)

作者: 時(shí)間:2010-11-11 來源:網(wǎng)絡(luò) 收藏

摘要:采用MAX II系列CPLD器件來實(shí)現(xiàn)控制器。由于MAX II CPLD是唯一具有用戶閃存(UFM)的CPLD,因此用一片芯片就可完成全部的時(shí)序控制、顯示控制等功能,這樣無需再加入其它的接口器件,使微處理器和顯示模塊之間的接口電路變得更加簡潔。 本文對(duì)LCD控制器的硬件及軟件都給出了較詳細(xì)的說明,并在EPM240ZM上實(shí)現(xiàn)了LCD控制器的功能。
關(guān)鍵詞:CPLD,LCD 控制器,用戶閃存

本文引用地址:http://butianyuan.cn/article/169156.htm

0前言
液晶顯示屏(LCD)是薄型平面顯示設(shè)備,由排列在光源或者反射器之前一定數(shù)量的彩色或者單色象素構(gòu)成。這類顯示屏已經(jīng)成為大部分嵌入式系統(tǒng)不可缺少的組成部分。但是在嵌入式系統(tǒng)中八位和十六位微處理器大多沒有內(nèi)置的LCD控制器,又由于LCD屏的分辨率很高,即使有內(nèi)置的LCD控制器,也較難進(jìn)行控制;另外內(nèi)置LCD控制器對(duì)內(nèi)存帶寬的占用較高,使控制器所能支配的資源也會(huì)變得非常有限。因此在微處理器和LCD屏之間加上一個(gè)LCD控制器是非常必要的。常用的LCD控制器主要有兩種:專用的控制芯片和基于可編程器件的控制器。本文采用Altera公司的MAX II系列CPLD器件來實(shí)現(xiàn)LCD控制器。CPLD一般使用外加的串行EEPROM來存儲(chǔ)非易失信息,而MAX II CPLD是唯一具有用戶閃存(UFM)的CPLD,它支持用戶存儲(chǔ)高達(dá)8Kbits的非易失信息,因此不需要采用外部存儲(chǔ)器,并且在實(shí)現(xiàn)LCD控制器時(shí)還可以利用CPLD的內(nèi)部UFM振蕩器來滿足時(shí)鐘需求,從而避免了采用外部時(shí)鐘信號(hào)。這些獨(dú)特的功能使MAX II CPLD成為實(shí)現(xiàn)LCD控制器最好的目標(biāo)器件。
1 嵌入式系統(tǒng)的LCD接口電路結(jié)構(gòu)
基于MAX II CPLD的LCD接口電路一般采用圖1所示結(jié)構(gòu)。圖中LCD接口電路負(fù)責(zé)接受微處理器的配置,通過總線把DRAM上保存的顯示數(shù)據(jù)讀出,然后按照屏類型和顯示設(shè)置轉(zhuǎn)換為需要的格式,并按照屏?xí)r序要求發(fā)送出去。在設(shè)計(jì)顯示控制器時(shí),需要注意如下幾個(gè)方面:支持的屏類型、總線類型的選擇、同微處理器之間的交互方式、動(dòng)態(tài)圖像顯示和中斷設(shè)計(jì)。基于CPLD的LCD控制器可以提供合適的顯示單元,它產(chǎn)生需要的時(shí)序信號(hào),滿足LCD的時(shí)序要求,同時(shí)卸載了微處理器和控制器繁重的LCD處理任務(wù),從而提高了處理器和控制器執(zhí)行其他操作的效率。

2 LCD 控制器組成與接口信號(hào)
2.1 LCD 控制器組成
由圖1可知,LCD控制器有三個(gè)主要模塊:有限狀態(tài)機(jī)(FSM)、時(shí)鐘分頻器和用戶閃存(UFM)模塊。
1、初始化LCD和有限狀態(tài)機(jī)模塊
FSM模塊有8個(gè)不同的狀態(tài)。它用于初始化LCD,初始化完成后顯LCD進(jìn)行讀寫操作。圖2所示為LCD模塊的初始化步驟。為簡化初始化過程,每次發(fā)送一條命令后,延時(shí)15ms(而不是檢查忙標(biāo)志的狀態(tài))。但是向LCD模塊寫入數(shù)據(jù)時(shí),每一數(shù)據(jù)寫操作之后,要檢查忙標(biāo)志的狀態(tài)。這樣就加速了寫操作過程。
2、時(shí)鐘分頻器模塊
時(shí)鐘分頻器模塊主要是降低內(nèi)部振蕩器輸出頻率,從而滿足了LCD模塊的時(shí)序要求以及控制器的性能要求。該模塊把振蕩器輸出信號(hào)osc的頻率由.5MHz降低到43kHz左右。降低頻率以后的信號(hào)(即Clk信號(hào))從時(shí)鐘分頻器模塊輸出(見圖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


上一頁 1 2 3 4 下一頁

關(guān)鍵詞: CPLD LCD

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉