長江大學(xué)電子信息學(xué)院 盛象飛
基于FPGA的液晶顯示控制器的設(shè)計與實(shí)現(xiàn)
長江大學(xué)電子信息學(xué)院 盛象飛
介紹一種基于FPGA的液晶顯示控制器的設(shè)計與實(shí)現(xiàn)。該設(shè)計采用Verilog HDL硬件描述語言,以Alter公司的Cyclone 系列的EP1C6Q240C8芯片為載體,實(shí)現(xiàn)了對1602字符型液晶顯示器的控制。該方法可靠性高,移植性好,便于調(diào)試與升級。文章給出了FPGA對1602字符型液晶顯示器的測試結(jié)果,表明了該設(shè)計的可實(shí)現(xiàn)性和可靠性。
FPGA;1602字符型液晶顯示器;Verilog HDL;Cyclone EP1C6Q240C8
在小型智能化電子產(chǎn)品中,普通的7段LED數(shù)碼管只能用來顯示數(shù)字。若遇到要顯示英文字母、圖像或漢字時,則必須選擇使用液晶顯示器(簡稱LCD)。LCD顯示器的應(yīng)用很廣,如復(fù)印機(jī)和傳真機(jī),以及一些娛樂器材、醫(yī)療儀器上,常??煽匆奓CD的足跡[1]。隨著人機(jī)界面(GUI)在醫(yī)療、工業(yè)以及消費(fèi)電子各應(yīng)用領(lǐng)域需求的日益增長,高集成度、高性能的TFT液晶顯示方案成為電子產(chǎn)品設(shè)計開發(fā)的重要組成部分[2]。為此本文提出了一種基于FPGA對字符型液晶顯示器的控制方案。該方案不僅操作簡單方便,而且占用資源少。
本設(shè)計中的液晶顯示控制器以EP1C6Q240C8芯片作為控制芯片,用Verilog HDL硬件描述語言編程,通過JTAG下載器下載,并利用Quartus II軟件進(jìn)行調(diào)試,實(shí)現(xiàn)了FPGA對1602字符型液晶顯示模塊的控制。
圖1為總體結(jié)構(gòu)。本設(shè)計是基于FPGA的LCD顯示模塊的控制。LCD顯示模塊接收來自于FPGA的控制信號和數(shù)據(jù),FPGA同時讀取LCD顯示模塊中的相關(guān)信息,這樣才能實(shí)現(xiàn)對LCD顯示模塊的控制。FPGA的最小系統(tǒng)包括電源、復(fù)位、時鐘、SDRAM、JTAG。FPGA一般先通過PC機(jī)使用JTAG下載器把程序燒寫到FPGA芯片上,不過這種方式在斷電以后程序會丟失,但是充分利用了FPGA的無限擦寫性。而通過AS(Active Serial Programming)模式下載,這樣便不會斷電丟失。所不同的是用AS模式下載時,需先編程配置芯片(如EPCS1),然后再配置FPGA,這種模式適合于待產(chǎn)品開發(fā)成熟時選用[3]。
2.1 FPGA選型
FPGA(Field—Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在可編程陣列邏輯PAL(Programmable Array Logic)、通用陣列邏輯GAL(Generic Array Logic)、復(fù)雜可編程邏輯器件CPLD(Complex Programmable Logic Device)等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。
本設(shè)計采用的是Altera公司的Cyclone低成本系列FPGA——EP1C6Q240C8,其工作電壓為3.3V,內(nèi)核電壓1.5V,內(nèi)部有2個鎖相環(huán),20個內(nèi)嵌乘法器,5980個邏輯單元(LEs),185個用戶I/O口,8個全局時鐘,資源豐富,可很好地滿足設(shè)計需要。
2.2 LCD顯示模塊
以深圳市創(chuàng)顯達(dá)電子有限公司的5V 1602字符型液晶顯示器作為本設(shè)計中的LCD顯示模塊。1602 LCD顯示模塊是指可以顯示兩行,每行16個字符的液晶顯示模塊。模塊內(nèi)置有顯示數(shù)據(jù)的DDRAM、字符發(fā)生存儲器CGROM和CGRAM。CGROM已經(jīng)存儲了160個不同的點(diǎn)陣字符圖,每一個字符都有一個固定的代碼。只需要向DDRAM輸入相應(yīng)字符的地址,就能從CGROM中讀取數(shù)據(jù),液晶屏就會輸出顯示相應(yīng)的字符[4]。
2.3 軟件設(shè)計
本設(shè)計是PC機(jī)通過JTAG下載器向FPGA發(fā)送指令來控制LCD顯示模塊。該設(shè)計的軟件部分采用Verilog HDL硬件描述語言。與之前較為熟悉的C語言相比,該語言的最大優(yōu)點(diǎn)是:它是一種非常容易掌握的硬件描述語言,語法與C語言類似。用Verilog HDL建模的最大優(yōu)點(diǎn)就是與工藝沒有關(guān)系,便于設(shè)計人員的修改設(shè)計,極大地提高了設(shè)計效率。
1602字符型液晶顯示器是低頻顯示器件。一般51單片機(jī)控制該顯示器沒有問題,因?yàn)閱纹瑱C(jī)的時鐘頻率較低。該板卡用的晶振是50MHz,假如用它控制1602字符型液晶顯示器的話,那晶振頻率過高,由于液晶顯示器控制時序由于需要較長的建立時間,假如不進(jìn)行分頻的話,顯示器則不能正常顯示。該軟件設(shè)計把FPGA系統(tǒng)50MHz分頻為500Hz作為LCD顯示模塊的控制時鐘。
本軟件設(shè)計主要分為兩大模塊:時鐘分頻模塊CLK50M_500、顯示驅(qū)動模塊LCD_show。其中時鐘分頻模塊CLK50M_500解決了FPGA驅(qū)動LCD顯示模塊的時鐘頻率匹配問題。顯示驅(qū)動模塊LCD_show解決的是LCD顯示模塊第一行、第二行字符以及漢字的顯示問題,為LCD顯示模塊的正常顯示提供了核心軟件支持。
本文采用有限狀態(tài)機(jī)來實(shí)現(xiàn)顯示驅(qū)動的核心邏輯[5]。有限狀態(tài)機(jī)是建立系統(tǒng)模型最為有效的手段,有著廣泛的應(yīng)用。綜合工具可以非常有效地將HDL語言描述的狀態(tài)機(jī)行為轉(zhuǎn)換成門級電路[6]。
狀態(tài)轉(zhuǎn)換如圖2所示。各狀態(tài)分別是:空閑模式、清屏、顯示開關(guān)設(shè)置、輸入方式設(shè)置、功能設(shè)置、寫數(shù)據(jù)模式狀態(tài)。初始狀態(tài)為空閑模式,開始寫數(shù)據(jù)時首先對LCD清屏,然后設(shè)置LCD的顯示開關(guān)以及輸入方式設(shè)置,再然后進(jìn)行功能設(shè)置,最后再寫入數(shù)據(jù)。在寫數(shù)據(jù)的同時檢測數(shù)據(jù)是否已寫完,若未寫完繼續(xù)寫數(shù)據(jù),若數(shù)據(jù)已寫完則進(jìn)入顯示開關(guān)設(shè)置狀態(tài),等待下一輪的數(shù)據(jù)讀寫。
圖2 狀態(tài)轉(zhuǎn)換圖
在該實(shí)驗(yàn)板上功能和時序驗(yàn)證成功之后,需要把編程之后的文件通過專用JTAG下載器燒寫至FPGA板卡。本設(shè)計在該實(shí)驗(yàn)板上輸出了“To my friend 田木”其中第一行是“To my friend”,第二行是“田木”,包括了英文字母和中文,達(dá)到了預(yù)期理論目標(biāo)。實(shí)際效果如圖3所示。
通過修改該Verilog程序可以改變LCD顯示模塊的顯示效果,效果如圖4所示。
當(dāng)然,還可以做些其他效果變化,例如光標(biāo)閃爍、文字更改、左移或者右移等等變化。如有興趣的可以自己做下,在此就不一一做演示。
圖3 顯示效果
圖4 顯示效果
本文利用Cyclone系列FPGA器件,實(shí)現(xiàn)液晶控制功能模塊的設(shè)計。采用Verilog HDL語言,運(yùn)用FPGA技術(shù),經(jīng)過一系列的模塊設(shè)計,從行為級和RTL級上進(jìn)行綜合描述,并經(jīng)過Quartus II的編譯、綜合、驗(yàn)證、下載等過程,實(shí)現(xiàn)了核心設(shè)計方案的所有功能,最終在一片F(xiàn)PGA芯片上完成了對1602字符型液晶顯示模塊的控制。實(shí)際測試結(jié)果表明,本系統(tǒng)滿足對液晶顯示模塊的控制要求,達(dá)到了設(shè)想的效果。該接口控制器設(shè)計簡潔可靠,在一些低速和低端的液晶顯示應(yīng)用中具有一定的使用價值。
[1]周興華.手把手教你學(xué)單片機(jī)C程序設(shè)計[M].北京:北京航空航天大學(xué)出版社,2008.
[2]邵青.基于STM32F4x9的LCD顯示設(shè)計方案[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014,14(6):82-83.
[3]華清遠(yuǎn)見嵌入式培訓(xùn)中心.FPGA應(yīng)用開發(fā)入門與典型實(shí)例[M].北京:人民郵電出版社,2008.
[4]陳立克,許存祿,辛遙,等.基于FPGA技術(shù)的液晶顯示控制器設(shè)計[J].微電子學(xué),2011,41(6):852-855.
[5]曹勇,沈斌,熊偉.SOPC中NiosII的LCD顯示驅(qū)動IP設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010,10(6):16-18.
[6]杜慧敏,李宥謀,趙全良.基于Verilog的FPGA設(shè)計基礎(chǔ)[M].西安:西安電子科技大學(xué)出版社,2006.
盛象飛(1991—),男,河南駐馬店人,碩士研究生,主要研究方向:fpga、單片機(jī)、硬件電路。