陳 希,勾 榮,李 農(nóng)
傳統(tǒng)的大屏幕顯示技術(shù)以簡(jiǎn)單的8位或者16位單片微控制器為核心,其運(yùn)算速度、內(nèi)存容量、存儲(chǔ)空間和通訊方式等方面存在著很大的局限性,難以實(shí)現(xiàn)高難度圖文動(dòng)態(tài)特技顯示和高灰度級(jí)顯示的功能,無(wú)法滿足信息容量大和處理速度很高的。
筆者提出基于LPC2214的控制系統(tǒng)的硬件設(shè)計(jì)。該系統(tǒng)以ARM為核心,將上位機(jī)發(fā)送的內(nèi)容保存在存儲(chǔ)芯片內(nèi),通過(guò)系統(tǒng)處理顯示在LED屏上,實(shí)現(xiàn)全彩LED顯示屏的異步控制,且畫(huà)質(zhì)穩(wěn)定,色彩分辨率高,刷新頻率高。
1.LED工作原理
LED顯示屏利用發(fā)光二極管點(diǎn)陣模塊或像素單元組成的平面式顯示屏幕。[1]每一個(gè)顯示模塊由一組二極管矩陣排列并進(jìn)行封裝而成。
由于LED不能直接用電源供電,一般采用掃描驅(qū)動(dòng)的方式,該顯示方式利用人眼的特性[2],LED以高頻率的電流脈沖進(jìn)行驅(qū)動(dòng)時(shí),人眼感受的是有效亮度的平均值。理論上,LED采用1∶16的方式驅(qū)動(dòng),脈沖電流應(yīng)為恒流值的16倍,能得到相同的亮度效果。
2.異步全彩LED顯示屏系統(tǒng)組成
LED顯示屏由8×4個(gè)顯示模塊組成64×32的點(diǎn)陣,通過(guò)MOS管、3-8線譯碼器、單穩(wěn)態(tài)觸發(fā)器以及電流驅(qū)動(dòng)芯片,實(shí)現(xiàn)對(duì)顯示屏的控制。對(duì)外有CLK、STR、G1、G2、R1、R2、A、B、C等9個(gè)輸入端。其功能如表1所示。
為了顯示更多的內(nèi)容,LED顯示屏預(yù)留了級(jí)聯(lián)端,可以64×32點(diǎn)陣為基數(shù),擴(kuò)展成更多點(diǎn)陣的顯示屏。
表1 LED顯示屏對(duì)外接口功能表
1.系統(tǒng)組成
本系統(tǒng)選用的是NXP公司的LPC2214芯片,該芯片很適合終端類產(chǎn)品的開(kāi)發(fā)。[3]LPC2214芯片引腳配置如圖1所示。
圖1 LPC2214芯片引腳配置圖
本系統(tǒng)由ARM處理器LPC2214完成數(shù)據(jù)的接收控制,顯示屏系統(tǒng)完成LED顯示屏的驅(qū)動(dòng)以及數(shù)據(jù)緩存,系統(tǒng)組成框圖如圖2所示。
圖2 系統(tǒng)組成框圖
2.電源電路
電源系統(tǒng)為整個(gè)系統(tǒng)提供能量,是整個(gè)系統(tǒng)工作的基礎(chǔ),具有極其重要的地位。對(duì)于LPC2214微控制器,只需要兩組3.3V和1.8V,[4]原理圖如圖3和圖4所示。另外部分器件需要5V直流穩(wěn)壓電源。
圖3 輸出3.3V電源電路
圖4 輸出1.8V電源電路
LPC2214微控制器1.8V電源消耗電流的極限值為70mA。為了保證可靠性并為以后升級(jí)留下余量,則電源系統(tǒng)1.8V能夠提供的電流應(yīng)當(dāng)大于300mA。
整個(gè)系統(tǒng)在3.3V上消耗的電流與外部條件有很大的關(guān)系,這里假設(shè)電流不超過(guò)200mA,這樣,電源系統(tǒng)3.3V能夠提供600mA電流即可。分析得到以下參數(shù):3.3V電源設(shè)計(jì)最大電流為600mA;1.8V電源設(shè)計(jì)最大電流為300mA。
3.FLASH存儲(chǔ)器接口電路
FLASH存儲(chǔ)器是一種可在系統(tǒng)進(jìn)行在線擦寫(xiě),掉電后信息不丟失的存儲(chǔ)器。它具有低功耗、大容量、擦寫(xiě)速度快、可整片或分扇區(qū)在系統(tǒng)編程、擦除等特點(diǎn)。[5]與傳統(tǒng)的ROM和EPROM相比,它可以通過(guò)與之相連的微處理器在線編程和擦除。作為一種非易失性存儲(chǔ)器,F(xiàn)LASH在系統(tǒng)中通常用于存放一些在系統(tǒng)掉電后需要保存的用戶數(shù)據(jù)等。
本系統(tǒng)中選用的FLASH存儲(chǔ)器為SST39VF160,其工作電壓為2.7V~3.6V,單片存儲(chǔ)器容量為IM字節(jié),16位數(shù)據(jù)寬度,采用48腳TSOP封裝,可以以8位(字節(jié)模式)或16位(字模式)數(shù)據(jù)寬度的方式工作。該器件提供了70ns、90ns、120ns讀取時(shí)間,無(wú)需高速微處理器插入等待狀態(tài)進(jìn)行速度匹配。
FLASH存儲(chǔ)器在系統(tǒng)中用于存放需要顯示的文字與圖形信息,將LPC2214的PI.0/CS0與SST39VF160的片選信號(hào)CE端相連。此外,應(yīng)將FLASH配置為16位數(shù)據(jù)寬度的工作方式。其接口線為:
數(shù)據(jù)線部分:LPC2214的低16位數(shù)據(jù)總線[P2.0/D0-P2.15/D15]與SST39VF160的[DQO-DQ15]相連。
地址線部分:LPC2214的[P3.1/A1-P3.20/A20]與SST39VF160的[A0-A19]相連。LPC2214的P1.0/CS0接至SST39VF160的片選端CE。
控制線部分: SST39VF160的讀寫(xiě)線OE、WE分別與LPC2214的P1.1/OE、P3.27/WE相連。
圖5 FLASH接口電路示意圖
4.SRAM存儲(chǔ)器接口電路
除了高校自行創(chuàng)作藝術(shù)文化作品以外,還有受到地方政府或國(guó)家政策扶持的藝術(shù)文化作品創(chuàng)作。以河北農(nóng)業(yè)大學(xué)為例,2017年繼李保國(guó)教授去世后,電影《李保國(guó)》、電視連續(xù)劇《太行赤子李保國(guó)》在河北農(nóng)業(yè)大學(xué)相繼開(kāi)始拍攝。在拍攝過(guò)程中,我校學(xué)生通過(guò)參與影片的拍攝以及對(duì)李保國(guó)教授所帶來(lái)的影響的學(xué)習(xí)和感受,使得學(xué)校眾多學(xué)生,對(duì)李保國(guó)精神有了更深層次的理解,對(duì)“太行山精神”“太行山道路”與我校的聯(lián)系有了更深刻的認(rèn)識(shí)和感觸。
SRAM不具有掉電保持?jǐn)?shù)據(jù)的特性,但其存取速度遠(yuǎn)遠(yuǎn)高于FLASH存儲(chǔ)器,且具有讀/寫(xiě)的屬性,同時(shí)利用ARM微處理器存儲(chǔ)器接口提供的SRAM控制器接口。因此,本設(shè)計(jì)采用SRAM用于數(shù)據(jù)存儲(chǔ)空間。[7]當(dāng)系統(tǒng)啟動(dòng)時(shí),CPU首先從復(fù)位地址0×0處讀取啟動(dòng)代碼,在完成系統(tǒng)的初始化后,所有的代碼在片內(nèi)FLASH中運(yùn)行。同時(shí),系統(tǒng)及用戶堆棧則放在片內(nèi)SRAM中。SRAM的容量是根據(jù)全局?jǐn)?shù)據(jù)的最大數(shù)而確定的,本系統(tǒng)中使用的SRAM是IS61LV25616,單片存儲(chǔ)容量為256K字節(jié),16位數(shù)據(jù)寬度,工作電壓為3.3V,訪問(wèn)速度為10ns,采用44腳TS0P封裝。
圖6 SRRAM接口電路示意圖
本設(shè)計(jì)采用C語(yǔ)言和匯編語(yǔ)言嵌套的方式,對(duì)時(shí)間有嚴(yán)格要求的任務(wù)切換函數(shù)、中斷入口和出口程序采用匯編語(yǔ)言編寫(xiě),作為啟動(dòng)代碼的一部分。而由于主程序?qū)崿F(xiàn)功能較多,而且對(duì)時(shí)間要求不太嚴(yán)格,因此采用可讀性和移植性很強(qiáng)的C語(yǔ)言編寫(xiě)。
1.GPIO配置
屏體部分獨(dú)立供電,有CLK、STR、G1、G2、R1、R2、A、B、C等9個(gè)輸入端,可利用LPC2214的GPIO口來(lái)控制。
LPC2214的GPIO為全雙向I/O口,可以獨(dú)立控制每一根I/O口線的狀態(tài)是輸入還是輸出。每個(gè)作為GPIO功能的引腳受到4個(gè)寄存器控制,分別為控制方向的IOxDIR、控制輸出電平狀態(tài)的IOxSET和IOxCLR、反映引腳電平狀態(tài)的IOxPIN。[6]這4個(gè)寄存器構(gòu)成一組,而一組寄存器控制著一個(gè)端口(P0、P1、P2或P3)。
為了便于控制,本設(shè)計(jì)采用P1口與顯示屏系統(tǒng)進(jìn)行連接。具體連接方式為:
#define G1 0x00010000
#define G2 0x00020000
#define C 0x00200000
#define B 0x00400000
#define A 0x00800000
#define STR 0x00100000
設(shè)置引腳值寄存器PINSEL1 = 0x00000000; 控制方向寄存器IO1DIR= 0x01FF0000;
2.顯示代碼
利用數(shù)組對(duì)顯示數(shù)據(jù)進(jìn)行操作,可實(shí)現(xiàn)顯示內(nèi)容的循環(huán)。
if( (word1&0x00008000)!=0)
{if ((16*j+clock-k)<0) point1[16*j+clock-k+64]=1;
else point1[16*j+clock-k]=1;
}
else
{if ((16*j+clock-k)<0) point1[16*j+clock-k+64]=0;
else point1[16*j+clock-k]=0;
}
word1=word1<<1;
字符顯示采用16×16點(diǎn)陣,即每一個(gè)漢字均由16行16列的點(diǎn)陣組成顯示。[7]經(jīng)字符提取軟件,將需顯示的漢字轉(zhuǎn)換為相應(yīng)的字模。編寫(xiě)GPIO口的相關(guān)代碼,進(jìn)行調(diào)試后,將目標(biāo)代碼下載至LPC2214片內(nèi)FLASH,驗(yàn)證顯示信息是否正常。實(shí)踐證明,顯示屏顯示信息,達(dá)到設(shè)計(jì)要求,系統(tǒng)驗(yàn)證成功。由此,該系統(tǒng)可顯示任意內(nèi)容,單屏可顯示2行4列,共8個(gè)漢字。通過(guò)顯示屏的級(jí)聯(lián)端,可以顯示更多的內(nèi)容。通過(guò)改變代碼,可以實(shí)現(xiàn)漢字的滾屏顯示。由于LPC2214指令執(zhí)行速度快,存儲(chǔ)容量大,該系統(tǒng)的刷新頻率高,顯示內(nèi)容穩(wěn)定清晰。
本文重點(diǎn)探討了基于LPC2214的LED顯示屏系統(tǒng)的硬件設(shè)計(jì),主要解決GPIO口與LED屏體的接口問(wèn)題。在此基礎(chǔ)上,通過(guò)軟件設(shè)計(jì),使LED顯示屏在顯示功能上實(shí)現(xiàn)各類動(dòng)態(tài)圖形處理。采用高性能的32位ARM微處理器替代傳統(tǒng)的8/16位單片機(jī),利用FLASH、SRAM設(shè)計(jì)的全彩LED顯示屏控制系統(tǒng),具有更強(qiáng)大的功能和實(shí)時(shí)處理能力。LPC2214豐富的GPIO口可根據(jù)實(shí)際需要進(jìn)行功能擴(kuò)展,能滿足異步全彩LED顯示屏在顯示高灰度、高復(fù)雜性、高速度和大容量數(shù)據(jù)傳輸?shù)娘@示要求,使顯示內(nèi)容更加豐富,展現(xiàn)了很好的顯示效果,在同類產(chǎn)品中具有較高的技術(shù)含量和市場(chǎng)競(jìng)爭(zhēng)力。
[1]李秀忠.基于單片機(jī)的LED顯示屏控制電路設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010(15):200-202.
[2]于慧.基于ARM和CPLD的LED彩屏顯示系統(tǒng)的研究[D].西安:西北工業(yè)大學(xué),2007:4-12.
[3]廣州周立功單片機(jī)發(fā)展有限公司.LPC2214中文手冊(cè)[EB/OL].[2012-02-02].http://wenku.baidu.com/view/607fbd00de80d4d8d15a4f34.html.
[4]周立功.ARM嵌入式系統(tǒng)實(shí)驗(yàn)教程(二)[M].北京:航空航天大學(xué)出版社,2005:4-9.
[5]尤永.基于ARM的全彩LED顯示屏控制系統(tǒng)的設(shè)計(jì)[J].燈與照明,2009(1):47-49.
[6]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程[M].2版.北京:航空航天大學(xué)出版社,2008:179-187.
[7]南京洛普公司.LED顯示屏的檢測(cè)方法[J].現(xiàn)代顯示,2001(1):51-58.