在小規(guī)模圖形液晶顯示模塊上使用液晶顯示驅(qū)動控制器組成液晶顯示驅(qū)動和控制系統(tǒng),是當(dāng)今低成本,低功耗,高集成化設(shè)計(jì)的最好選擇,SED1520是當(dāng)前最常用的一種液晶顯示驅(qū)動控制器,這類圖形液晶顯示模塊的規(guī)模為32行,本文用到的液晶模塊CM12232即是內(nèi)置SED1520的液晶顯示模塊,該模塊的驅(qū)動控制系統(tǒng)由兩片SED1520組成。
FPGA即現(xiàn)場可編程門陣列器件,這是一種超大規(guī)模集成電路,具有在電路可重配置的能力(in circuit reconfigurable,ICR)。設(shè)計(jì)者設(shè)計(jì)的邏輯可在編譯、適配后變成網(wǎng)絡(luò)表下載到FPGA芯片上之后,F(xiàn)PGA即可執(zhí)行設(shè)計(jì)的邏輯功能。因此,F(xiàn)PGA在芯片控制、接口邏輯設(shè)計(jì)等各個(gè)方面的應(yīng)用越來越廣泛。
系統(tǒng)硬件設(shè)計(jì)
本方案采用的FPGA為Altera公司的ACEX1K30芯片,它可提供系統(tǒng)的時(shí)鐘及讀寫控制,ACEX系列的FPGA由邏輯陣列塊LAB(Logic array block)、嵌入式陣列塊EAB(embedded array block)、快速互聯(lián)以及IO單元構(gòu)成,每個(gè)邏輯陣列塊包含8個(gè)邏輯單元LE(logic element)和一個(gè)局部互聯(lián)[1]。每個(gè)邏輯單元則由一個(gè)4輸入查找表(LUT)、一個(gè)可編程觸發(fā)器、快速進(jìn)位鏈、級連鏈組成,多個(gè)LAB和多個(gè)EAB則可通過快速通道互相連接。EAB是ACEX系列器件在結(jié)構(gòu)設(shè)計(jì)上的一個(gè)重要部件,他是輸入端口和輸出端口都帶有觸發(fā)器的一種靈活的RAM塊,其主要功能是實(shí)現(xiàn)一些規(guī)模不太大的FIFO、ROM、RAM和雙端口RAM等。在本液晶顯示接口電路中,EAB主要用宏功能模塊實(shí)現(xiàn)片上ROM。它通過調(diào)用FPGA上的EAB資源來實(shí)現(xiàn)漢字的顯示和字符的存儲,并根據(jù)控制信號產(chǎn)生的地址值從ROM中讀取字符值,然后送LCD顯示器進(jìn)行顯示。
由于所用的圖形點(diǎn)陣液晶塊內(nèi)置有SED1520控制器,所以,其電路特性實(shí)際上就是SED1520的電路特性。SED1520的主要特性如下[2]:
具有液晶顯示行驅(qū)動器,具有16路行驅(qū)動輸出,并可級聯(lián)實(shí)現(xiàn)32行驅(qū)動。
具有液晶顯示列驅(qū)動器,共有61路列驅(qū)動輸出。
內(nèi)置時(shí)序發(fā)生器,其占空比可設(shè)置為1/16和1/32兩種。
內(nèi)藏顯示存儲器,顯示存儲器內(nèi)的數(shù)據(jù)可直接顯示,"1"為顯示,"0"為不顯示。
接口總線時(shí)序可適配8080系列或M6800系列,并可直接與計(jì)算機(jī)接口。
操作簡單,有13條控制指令。
采用CMOS工藝,可在電壓低至2.4-7.0V時(shí)正常工作,功耗僅30μW。
本設(shè)計(jì)所用的字符液晶模塊CM12232由兩塊SED1520級連驅(qū)動,其中一個(gè)工作在主工作方式下,另一個(gè)工作在從方式下,主工作方式SED1520負(fù)責(zé)上半屏16行的驅(qū)動和左半屏的61列驅(qū)動,從工作方式的SED1520則負(fù)責(zé)下半屏16行的驅(qū)動和右半屏的61列驅(qū)動,使能信號E1、E2用來區(qū)分具體控制的是那一片SED1520,其系統(tǒng)的硬件連接圖如圖1所示。
由圖1可見,該系統(tǒng)的硬件部分連接十分簡單,其中FPGA部分沒畫出,而液晶與FPGA的接口則可直接以網(wǎng)表的形式給出,將它們直接與FPGA的普通I/O引腳相連即可。
系統(tǒng)的軟件接口實(shí)現(xiàn)
具體實(shí)現(xiàn)的重點(diǎn)是如何從存放有字符的ROM塊中讀出數(shù)據(jù),并按照液晶的時(shí)序正確的寫入,在介紹具體實(shí)現(xiàn)方法前,首先要熟悉SED1520的指令。
SED1520的控制指令表
begin if clk2'event and clk2=`1'then case conv_integer (data)is when 0|2|4|6|8|10|12|13|138|139|264|265|390|391=>A01<=`0';cs11<=`0';cs21<=`1';
when 1|3|5|7|9|11|75|76|201|202|327|328|453|454=>A01<=`0';cs11<=`1';cs21<=`0'; end if; end process3; a0<=a01; cs1<=cs11 or csflag; cs2<=cs21 or csflag; ad<=data; end Behavioral;
其中的關(guān)鍵程序?yàn)镻rocess3;在該過程中,A01負(fù)責(zé)該數(shù)據(jù)寫到液晶數(shù)據(jù)線上顯示還是寫到液晶的控制寄存器進(jìn)行控制,A01為0時(shí)為寫命令,A01為1時(shí)為寫數(shù)據(jù)。 本方案以FPGA為控制核心實(shí)現(xiàn)了對字符點(diǎn)陣液晶的控制,該方案硬件電路簡單,軟件程序簡潔,對液晶的控制簡單而且穩(wěn)定,且可靈活改動,若要改變液晶顯示的漢字,只需改變ROM表中的字模即可,實(shí)踐證明,該設(shè)計(jì)是對液晶應(yīng)用的一種行之有效的方法。 |