《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 顯示光電 > 設(shè)計應(yīng)用 > 基于CPLD的雙屏結(jié)構(gòu)液晶控制器的研究與設(shè)計[圖]
基于CPLD的雙屏結(jié)構(gòu)液晶控制器的研究與設(shè)計[圖]
摘要: 隨著集成電路技術(shù)的發(fā)展,, 在現(xiàn)代電子設(shè)計中,,可編程邏輯器件的運(yùn)用越來越多,原因在于其規(guī)模大,體積小,,功能強(qiáng),價格便宜。CPLD可擦寫上萬次,使得硬件設(shè)計像軟件設(shè)計一樣靈活方便,。Verilog HDL語言作為硬件描述語言有其獨特的優(yōu)勢:在門級描述的底層,描述的設(shè)計思想,、電路結(jié)構(gòu)和邏輯關(guān)系清晰明了,,設(shè)計語言簡練、易學(xué)易用,,模塊化分層結(jié)構(gòu)在大規(guī)模設(shè)計時具有優(yōu)勢,。如果使用Verilog把控制功能集成在一片CPLD芯片里,整個電路將會變得更簡潔,、實用,。
關(guān)鍵詞: Verilog CPLD 液晶控制器
Abstract:
Key words :
1. 引言

隨著集成電路技術(shù)的發(fā)展, 在現(xiàn)代電子設(shè)計中,,可編程邏輯器件的運(yùn)用越來越多,,原因在于其規(guī)模大,體積小,,功能強(qiáng),,價格便宜。CPLD可擦寫上萬次,,使得硬件設(shè)計像軟件設(shè)計一樣靈活方便,。Verilog HDL語言作為硬件描述語言有其獨特的優(yōu)勢:在門級描述的底層,描述的設(shè)計思想,、電路結(jié)構(gòu)和邏輯關(guān)系清晰明了,,設(shè)計語言簡練、易學(xué)易用,,模塊化分層結(jié)構(gòu)在大規(guī)模設(shè)計時具有優(yōu)勢,。如果使用Verilog把控制功能集成在一片CPLD芯片里,整個電路將會變得更簡潔,、實用,。

2. 液晶控制器原理

液晶控制器用于單片機(jī)和液晶屏的接口,一方面不斷地把顯存的數(shù)據(jù)刷新到液晶屏上,,另一方面控制單片機(jī)對顯存數(shù)據(jù)的更新,。

雙屏結(jié)構(gòu)液晶控制器內(nèi)部主要的計數(shù)器,分別是4bit時鐘同步字符計數(shù)器,、行計數(shù)器和幀計數(shù)器,,它們在系統(tǒng)時鐘FCLK的控制下同時計數(shù),主要是用來產(chǎn)生行同步信號LP 和幀同步信號FP ,,分別用來控制液晶屏換行和換頁,。液晶屏就是在這三個信號的控制下反復(fù)地把顯存里的數(shù)據(jù)刷新到屏幕上。

本設(shè)計采用Altera 公司生產(chǎn)的EPM7128SCPLD芯片來實現(xiàn)LCD 控制器以及它的外圍

邏輯時序的全部功能,使用的液晶屏為640×480雙屏顯示結(jié)構(gòu),,即上半屏和下半屏同時顯示,,RAM為一片SRM20512LLTM78(62512)。

液晶屏刷新速度的計算公式為FFRP = FCLK/ ( Hn×Nx ),。

其中,,F(xiàn)FRP為液晶屏顯示幀掃描頻率,一般要大于70 Hz ,,Hn為一行顯示的4bit同步字符數(shù)640/4=160,,Nx為一屏幀掃描的行數(shù)480/2=240,F(xiàn)CLK為系統(tǒng)的工作時鐘頻率,,采用晶振提供頻率11.05926MHz,,將其四分頻得到2.764815MHz即可作為系統(tǒng)時鐘FCLK。

系統(tǒng)構(gòu)成如下圖所示:

基于CPLD的雙屏結(jié)構(gòu)液晶控制器的研究與設(shè)計

3. 實現(xiàn)過程

1)液晶刷新時序產(chǎn)生

此部分主要產(chǎn)生行同步和幀同步信號,,完成行和幀同步,。

由于雙屏結(jié)構(gòu)液晶屏以4bit為單位上下同時顯示,可以在CPLD內(nèi)定義兩個寄存器,,行含4bit字符寄存器scp_reg,,值為640/4=160, 幀含行寄存器lp_reg,,值為480/2=240,。字符時鐘同步計數(shù)器scp_count為4bit字符的計數(shù)器,在系統(tǒng)時鐘scp_clk作用下計數(shù)加一,,與行含字符寄存器內(nèi)容比較,,若等,表示一行結(jié)束,,開始下一行,,scp_count清零,行計數(shù)器lp_count加一,,lp_flag置一,,產(chǎn)生行同步信號LP。行計數(shù)器lp_count與幀含行寄存器內(nèi)容比較,,若等,,表示一幀結(jié)束,,開始下一幀,,scp_count, lp_count 清零,,fp_flag置一,,產(chǎn)生幀同步信號FP。實現(xiàn)的程序如下:

always@(posedge scp_clk)

begin

scp_count=scp_count+1;

if(scp_count==scp_reg)

begin

lp_count=lp_count+1;

lp_flag=1;

scp_count=0;

if(lp_count==lp_reg)

begin

fp_flag=1;

lp_count=0;

scp_count=0;

end

else fp_flag=0;

end

else lp_flag=0;

end

操作lcd時,scp_reg=160,,lp_reg=240,。仿真時取scp_reg=3,lp_reg=4,,如下:

基于CPLD的雙屏結(jié)構(gòu)液晶控制器的研究與設(shè)計

2)單片機(jī)寫數(shù)據(jù)至RAM

此部分為單片機(jī)通過CPLD更新RAM數(shù)據(jù),。

單片機(jī)寫信號WR有效,CPLD判斷數(shù)據(jù)線上內(nèi)容為指令還是數(shù)據(jù),,若為指令,,則將DB內(nèi)容存入指令寄存器CMDREG,若為數(shù)據(jù),,判斷指令寄存器CMDREG內(nèi)容以指示狀態(tài),。若CMDREG為8’h00或8’h02,表示DB為低或高八位地址,,分別存入低高八位地址寄存器addl和addh,,若為8’h04,表示DB為要寫入RAM的數(shù)據(jù),,存入數(shù)據(jù)寄存器ioreg,。

CMDREG       DB內(nèi)容
       8’h00          低八位地址
       8’h02          高八位地址
       8’h04           數(shù)據(jù)
 
      if(a0==1)  cmdreg="db";

else  begin

if(cmdreg==8'h00)      addl="db";

&nb

sp;      else if(cmdreg==8'h02)

 

begin

addh="db";

p={addh,addl};

end

else if(cmdreg==8'h04)       ioreg="db";

end

3)顯存的數(shù)據(jù)刷新到液晶屏

此部分完成RAM數(shù)據(jù)到LCD的正確映射,。

RAM存儲和LCD對應(yīng)關(guān)系如下圖所示:

基于CPLD的雙屏結(jié)構(gòu)液晶控制器的研究與設(shè)計

正確的將RAM中的數(shù)據(jù)送入LCD,,使液晶屏上下半屏隨著時鐘同時顯示,必須理清RAM存儲和LCD顯示間的地址關(guān)系,。LCD為640×480,,所以下半屏起始地址對應(yīng)的內(nèi)容應(yīng)為640×240/8=19200,即RAM0x4b00中的內(nèi)容,。

由于4bit字符同步時鐘scp_clk內(nèi)含四個周期computerclk,,可以在computerclk的二三周期,分別將RAM地址0x0000的內(nèi)容AB和0x4b00的內(nèi)容EF傳至八位寄存器reg1和reg2,,在余下的第四周期,,將reg1和reg2的高四位即A和E傳至上下半屏數(shù)據(jù)寄存器ud_reg和ld_reg,lcd將同時顯示上半屏A下半屏E,。下一個scp_clk時,,只需將reg1和reg2的低四位即B和F傳至ud_reg和ld_reg,則lcd將同時顯示上半屏B下半屏F,。以后每兩個scp_clk,,RAM地址加一,同樣的方式取數(shù)據(jù)刷新lcd,。

仿真圖中藍(lán)線指示為RAM地址加一后上述一個循環(huán)的開始,。

基于CPLD的雙屏結(jié)構(gòu)液晶控制器的研究與設(shè)計

4)數(shù)據(jù)選擇器

單片機(jī)對RAM數(shù)據(jù)的更新,,CPLD刷新LCD對RAM的讀取,可以通過一個二選一數(shù)據(jù)選擇器完成,。

當(dāng)單片機(jī)寫時,,置選擇信號sel為1,存放MCU操作的地址寄存器addl,、addh和數(shù)據(jù)寄存器ioreg與RAM地址數(shù)據(jù)總線連接,,完成MCU對RAM數(shù)據(jù)的更新;當(dāng)sel為0,,刷新液晶屏的地址寄存器q和數(shù)據(jù)寄存器ud_reg,、ld_reg與RAM地址數(shù)據(jù)總線連接,刷新LCD,。

4. 結(jié)束語

以上主要介紹了Verilog HDL設(shè)計CPLD作為液晶控制器的幾個基本部分,,經(jīng)過驗證,所設(shè)計控制器在單片機(jī)作用下正確完成液晶的顯示,。本設(shè)計創(chuàng)新點在于控制器設(shè)計使用硬件描述語言Verilog而非傳統(tǒng)設(shè)計方法設(shè)計,,易于理解,易于維護(hù),,調(diào)試電路速度快,,有許多易于掌握的仿真綜合布局布線工具。若使用其他液晶屏,,只需修改程序中相關(guān)參數(shù),,更多功能的擴(kuò)充,也只需增添CPLD中的模塊即可實現(xiàn),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。