《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 基于FPGA的多功能LCD顯示控制器設(shè)計(jì)

基于FPGA的多功能LCD顯示控制器設(shè)計(jì)

2015-10-15

  摘要:通過對(duì)LCD1602/LCD12864顯示模塊控制時(shí)序和指令集的對(duì)比分析,,利用Verilog HDL描述語言完成了多功能LCD顯示控制模塊的IP核設(shè)計(jì),所設(shè)計(jì)的LCD顯示控制器具有很好的可移植性,,只需通過端口的使能參數(shù)配置便可以驅(qū)動(dòng)LCD1602/LCD12864模塊實(shí)現(xiàn)字符或圖形的實(shí)時(shí)顯示,,并且該多功能LCD控制器的可行性也在CycloneⅡ系列的EP2C5T144C8 FPGA芯片上得到了很好的驗(yàn)證。
  關(guān)鍵詞:FPGA,;LCD顯示控制器,;IP棱有限狀態(tài)機(jī)
  在許多嵌入式系統(tǒng)應(yīng)用領(lǐng)域,,都需要友好的人機(jī)信息界面,,傳統(tǒng)的數(shù)碼管或者發(fā)光二極管顯示方式已經(jīng)不能滿足實(shí)際的顯示需求,,而LCD1602/LCD12864液晶顯示模塊具有低壓微功耗、壽命長(zhǎng),、顯示信息量大,、超薄等顯著優(yōu)點(diǎn),被廣泛應(yīng)用于智能儀器,、儀表等各種便攜式電子信息產(chǎn)品上來實(shí)現(xiàn)數(shù)字,、字符和圖形的可視化信息顯示。目前,,針對(duì)LCD1602/LCD12864液晶模塊的顯控技術(shù)主要有兩種方式,,首先是基
  于各種微處理器(8051/ARM/NoisⅡ/SPCE061)的微程序控制方式,這種軟件組態(tài)的LCD模塊控制技術(shù)應(yīng)用廣泛,,但是這種控制方式會(huì)占用處理器資源,、速度慢、實(shí)時(shí)顯示性能較差,。其次,,就是使用CPLD/FPGA開發(fā)的獨(dú)立顯示控制器,這種純硬件結(jié)構(gòu)的獨(dú)立顯示控制器,,速度快,、實(shí)時(shí)顯示性能好;但是這種獨(dú)立顯示控制器可移植性差,、功能單一,很難適應(yīng)不同類型的液晶屏及不同的顯示模式,。
  因此,,文中就提出了一個(gè)基于FPGA的多功能LCD顯示控制器設(shè)計(jì)方案,只需通過端口的使能參數(shù)配置便可以驅(qū)動(dòng)LCD1602模塊顯示字符,、LCD12864模塊實(shí)現(xiàn)字符或圖形的實(shí)時(shí)顯示,,并在FPGA開發(fā)板(EP2C5T144C8)上進(jìn)行了該設(shè)計(jì)的可行性驗(yàn)證。
  1 多功能顯示控制器的端口設(shè)計(jì)
  要設(shè)計(jì)能夠驅(qū)動(dòng)LCD1602/LCD12864兩種液晶模塊的多功能顯示控制器,,就必須同時(shí)兼顧這二者的封裝端口引腳和用途,;對(duì)多功能顯示控制器的端口做出兼容性設(shè)計(jì)。
  LCD1602液晶模塊是一款最常用,、最便宜的工業(yè)字符型液晶顯示屏,,它可以顯示16x2個(gè)、5x7的點(diǎn)陣字符,,模塊的字模存儲(chǔ)器CGROM(Chara cter Generator ROM)中固化192個(gè)常用字符的字模,,另外還有8個(gè)允許用戶自定義的字符存儲(chǔ)器CGRAM(Character Generator RAM)??梢杂糜谏倭康淖远x圖形顯示(如漢字),。由于顯示單元位間隔和行間隔的存在而導(dǎo)致顯示效果不好,,因此LCD1602模塊主要用于西文、ASCII碼字符的顯示,,該模塊擁有1個(gè)16引腳的單排插針外接端口,,端口的功能定義如表1所示。
  

50.png

  目前,,常用的LCD12864模塊是一種內(nèi)部含有國標(biāo)一級(jí),、二級(jí)簡(jiǎn)體中文字庫的點(diǎn)陣型圖形液晶顯示模塊;具有串/并多種接口方式,,內(nèi)置了8 192個(gè)16x16點(diǎn)漢字和128個(gè)16x8點(diǎn)ASCⅡ字符集,,它在字符顯示模式下可以顯示8x4個(gè)16x16點(diǎn)陣的漢字或16x4個(gè)16x8點(diǎn)陣的西文(ASCH)字符;它也可以在圖形工作模式下顯示分辨率為128x64的二值化圖形,,該模塊擁有1個(gè)20引腳的單排插針外接端口,,端口的功能定義與LCD1602的對(duì)比如表1所示。
  通過表1所示的LCD12864和LCD1602兩種液晶模塊的端口對(duì)比可以看出,,它們的端口定義基本相同,,LCD12864模塊只比LCD16021模塊多了PSB(串并選擇)和RST(復(fù)位端)端口,因此,;可以完全按照LCD12864的端口要求來設(shè)計(jì)多功能LCD顯示控制器的端口,;PSB和RST端口在驅(qū)動(dòng)LCD 1602模塊時(shí)閑置或懸空(也可以用來充當(dāng)某些特殊LCD1602屏的電源開關(guān)和背光開關(guān)信號(hào))。
  2 多功能顯示控制器的操作時(shí)序
  如果LCD12864液晶模塊工作在并口的數(shù)據(jù)傳輸模式(PSB=1,、RST=1)下,,就和LCD1602液晶模塊具有完全相同的控制時(shí)序,這就要求多功能控制器產(chǎn)生的E,、RW,、RS控制信號(hào)具有正確的時(shí)序,LED模塊的讀/寫操作時(shí)序由使能信號(hào)E完成:對(duì)讀/寫操作的識(shí)別是判斷RW信號(hào)上的電平狀態(tài),;RS信號(hào)用于識(shí)別數(shù)據(jù)總線DB0~DB7上的數(shù)據(jù)是指令代碼還是屬于顯示數(shù)據(jù),,控制信號(hào)的操作時(shí)序如圖1所示。
 

49.png

  在如圖1所示的操作時(shí)序圖形中,,LCD模塊都給出了關(guān)鍵時(shí)間參數(shù)(不同廠商產(chǎn)品有差異),,一般要求數(shù)據(jù)讀寫周期TC≥13μs;使能脈沖寬度TPW≥1.5 μs,;數(shù)據(jù)建立時(shí)間TDSW≥1μs,;數(shù)據(jù)保持時(shí)間TH≥20 ns;地址建立和保持時(shí)間(TAS和TAH)不得小于1.5μs,,因此在多功能LCD顯示控制器IP核的設(shè)計(jì)中,,必須設(shè)置有延時(shí)配置參數(shù)以滿足控制器的多種模塊驅(qū)動(dòng)調(diào)試。

  LCD12864和LCD1602液晶模塊都有自己一套嚴(yán)格用戶指令集,用戶就是通過這些指令來初始化液晶模塊來選擇顯示模式,,這就要求多功能的LCD顯示驅(qū)動(dòng)器同時(shí)包含多種顯示模式的用戶配置指令,,LCD12864和LCD1602液晶模塊字符、圖形顯示模式的初始化指令如表2所示,,對(duì)于指令的解釋在此不再詳述,。
  通過表2的指令對(duì)比可以看出兩種顯示模塊的字符顯示初始化指令完全一致,僅僅是顯示行的起始地址有所不同,;這就需要在LCD多功能顯示控制器中設(shè)置參數(shù)跳轉(zhuǎn),,來根據(jù)模塊配置參數(shù)自動(dòng)加載相應(yīng)的行起始地址,而對(duì)于LCD模塊的圖形顯示模式需要用到擴(kuò)展指令集,,并且需要分成上下兩個(gè)半屏設(shè)置起始地址,,上半屏垂直坐標(biāo)Y:8’h80~9’h9F(32行),水平坐標(biāo)X:8’h80,;下半屏垂直坐標(biāo)和上半屏相同,,而水平坐標(biāo)X:8’h88。
  3 多功能顯示控制器的狀態(tài)機(jī)設(shè)計(jì)
  基于FPGA設(shè)計(jì)LCD顯示控制器,,關(guān)鍵在于采用硬件描述語言設(shè)計(jì)有限狀態(tài)機(jī)(FSM)來控制LCD模塊的跳轉(zhuǎn),,文獻(xiàn)中就是使用FSM實(shí)現(xiàn)了對(duì)LCD模塊的顯示控制,但是它們都是針對(duì)一種類型LCD模塊的某種顯示模式,,不具有多模式的顯示控制能力,。因此,多功能LCD顯示控制器的有限狀態(tài)機(jī)就需要設(shè)置更多的條件轉(zhuǎn)換,,來實(shí)現(xiàn)多種控制模式,,狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖如圖2所示。
  在圖2所示的狀態(tài)轉(zhuǎn)換圖中,,系統(tǒng)上電后,,首先完成持續(xù)大約0.1 s(根據(jù)時(shí)鐘頻率配置)的自動(dòng)復(fù)位,然后才根據(jù)模塊的端口參數(shù)選擇不同顯示模式所對(duì)應(yīng)的初始化命令,,在狀態(tài)機(jī)中設(shè)置有初始化命令、起始行地址和屏顯示數(shù)據(jù)3條轉(zhuǎn)換路徑來適應(yīng)LCD屏的工作狀態(tài),,同時(shí)也在關(guān)鍵轉(zhuǎn)換路徑上設(shè)置有可以配置的延時(shí)循環(huán),,這樣既能方便LCD模塊的工作調(diào)試,又能使LCD模塊一直工作在寫屏模式(RW=0),。對(duì)于LCD屏的顯示數(shù)據(jù)存儲(chǔ)可以完全采用FPGA內(nèi)嵌的ROM/RAM單元實(shí)現(xiàn),,如果使用雙口RAM(存儲(chǔ)器讀寫?yīng)毩?就能實(shí)現(xiàn)LCD模塊的動(dòng)態(tài)實(shí)時(shí)顯示。
  4 多功能顯示控制器的設(shè)計(jì)驗(yàn)證
  使用康芯KX7C5T FPGA開發(fā)板(Altera CycleⅡEP2C5T144C8),、KBl2864KZK,、RT1602C和4x4鍵盤組成多功能LCD控制器的硬件測(cè)試平臺(tái);設(shè)計(jì)項(xiàng)目經(jīng)過QuartusⅡ9.1開發(fā)工具的工程編譯和芯片下載配置后得到的實(shí)際顯示效果圖如圖3所示,,其中圖3(a)是LCD1602模塊的字符顯示效果圖,;屏的第1行顯示靜態(tài)字符,,第2行實(shí)時(shí)顯示鍵盤輸入鍵值。圖3(b)是LCD12864模塊的中西文混合字符顯示效果圖,,第4行也是實(shí)時(shí)顯示鍵盤輸入鍵值,。圖3(c)是LCD12864模塊的靜態(tài)圖片顯示效果圖(ROM存儲(chǔ));圖3(d)是LCD12864模塊的實(shí)時(shí)動(dòng)態(tài)圖形顯示效果圖(雙口RAM存儲(chǔ)),,這是用多功能LCD顯示控制器實(shí)現(xiàn)的邏輯分析儀界面,。
  5 結(jié)論
  文中設(shè)計(jì)的多功能LCD顯示控制器,在FPGA開發(fā)板上的驗(yàn)證結(jié)果表明,,它完全具有能夠驅(qū)動(dòng)LCD1602模塊顯示字符,、LCD12864模塊顯示字符和實(shí)時(shí)顯示圖形的功能;并能夠通過端口參數(shù)配置而實(shí)現(xiàn)控制器的系統(tǒng)移植,。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]