基于AT91M42800A的LED顯示系統(tǒng)設(shè)計(jì)
關(guān)鍵詞:LED顯示系統(tǒng) ARM微處理器 SPI
引 言:
最近,筆者在某工廠大型生產(chǎn)線上基于現(xiàn)場(chǎng)總線的物流呼叫系統(tǒng)項(xiàng)目中發(fā)現(xiàn),由于所需要顯示的信息流比較大,用現(xiàn)有的基于AT89C51芯片組成的LED顯示屏控制系統(tǒng),由于受到微處理器的處理速度、體系架構(gòu)、尋址范圍、外圍接口資源等諸多限制,已難以在要求顯示較多像素、顯示內(nèi)容幀頻較高、動(dòng)態(tài)顯示效果復(fù)雜的情況下,得到良好的動(dòng)態(tài)視覺效果。針對(duì)以上情況,在利用現(xiàn)有資源的基礎(chǔ)上,重新設(shè)計(jì)和研制了一種全新的,由32位高性能ARM微處理器組成的LED顯示屏控制圖1系統(tǒng)的硬件結(jié)構(gòu)框圖系統(tǒng),并通過RS485接口與現(xiàn)場(chǎng)總線中的上位機(jī)進(jìn)行實(shí)時(shí)數(shù)據(jù)通信,實(shí)現(xiàn)整個(gè)系統(tǒng)的信息顯示。
1 系統(tǒng)硬件結(jié)構(gòu)
該系統(tǒng)的硬件組成框圖如圖1所示。圖1中,微處理器是Atmel公司生產(chǎn)的AT91M42800A,它采用基于ARM7TDMI內(nèi)核的高性能32位RISC架構(gòu)的處理器,有著豐富的外圍接口資源。AT91M42800A有2個(gè)USART外圍接口,系統(tǒng)用USART0口和MAX485組成485接口電路,具體的接口電路如圖2所示。AT91M42800A還有2個(gè)SPI口,每個(gè)SPI口有4根片選信號(hào),通過片選均可以支持外接15個(gè)設(shè)備。該系統(tǒng)的做法是將2個(gè)SPI口分別接到列驅(qū)動(dòng)電路和行驅(qū)動(dòng)電路上,并利用各自的2個(gè)片選信號(hào)CS0和CS1完成驅(qū)動(dòng)電路的信號(hào)鎖存和允許輸出控制,SPI的CLK輸出作為驅(qū)動(dòng)電路的時(shí)鐘信號(hào)輸入,工作頻率為4 MHz。
SRAM接口電路由2塊HY57V641620芯片并聯(lián)組成,HY57V641620是Hynix公司生產(chǎn)的4 Banks1M16位的SDRAM芯片,單片HY57V641620存儲(chǔ)容量為4組16 M位(8 MB),支持自動(dòng)刷新,16位數(shù)據(jù)寬度。為充分發(fā)揮32位CPU的數(shù)據(jù)處理能力,系統(tǒng)用2塊8 ns的HY57V641620組成32位SDRAM存儲(chǔ)器系統(tǒng)。Flash存儲(chǔ)器接口電路由1塊HY29LV160芯片組成。HY57V641620是Flash存儲(chǔ)器芯片,單片存儲(chǔ)容量為16 M圖2485接口電路、A6B595和A6276級(jí)聯(lián)電路原理圖位(2 MB),8/16位數(shù)據(jù)寬度,本系統(tǒng)采用16位數(shù)據(jù)寬度的工作方式。具體的電路連接可參閱參考文獻(xiàn)[1]。
行驅(qū)動(dòng)電路由Allegro公司的36片A6B595級(jí)聯(lián)組成,顯示屏背面每行數(shù)據(jù)線由串入并出移位寄存器A6B595級(jí)聯(lián)而成,A6B595片內(nèi)集成有MOS管構(gòu)成的驅(qū)動(dòng)器,足夠驅(qū)動(dòng)發(fā)光二極管發(fā)光。列驅(qū)動(dòng)電路由Allegro公司的24片A6276級(jí)聯(lián)組成,A6276是16位帶鎖存的串入并出移位LED驅(qū)動(dòng)芯片。A6B595和A6276級(jí)聯(lián)時(shí)引腳和聯(lián)接方法如圖2所示,電路都較為簡單(其中帶端口框標(biāo)的為AT91M42800A的相應(yīng)引腳)。其他詳細(xì)的性能資料,請(qǐng)查閱Atmel和Allegro公司的相關(guān)產(chǎn)品文檔[2,3]。AT91M42800A的SPI口均采用16位串行輸出工作方式,利用32位ARM處理器的高速性能,能夠充分提高數(shù)據(jù)傳輸速度。
圖1系統(tǒng)的硬件結(jié)構(gòu)框圖
圖2 485接口電路、A6B595和A6276級(jí)聯(lián)電路原理圖
2 工作原理
該系統(tǒng)與上位機(jī)的通信由AT91M42800A的USART0口與485接口電路完成,上位機(jī)僅需將要顯示的數(shù)據(jù),傳送至AT91M42800A即可。開機(jī)后,AT91M42800A初始化,讀入啟動(dòng)代碼后,將保存在Flash存儲(chǔ)器內(nèi)的程序代碼和所要顯示的字模數(shù)據(jù),重映射到SDRAM中,使得系統(tǒng)的數(shù)據(jù)存取全部在高速SDRAM中完成。在接收到上位機(jī)的數(shù)據(jù)后,AT91M42800A將要顯示的數(shù)據(jù),轉(zhuǎn)換成相對(duì)應(yīng)的LED屏顯示驅(qū)動(dòng)信號(hào),再加入相應(yīng)的動(dòng)態(tài)顯示效果控制程序(畫面左移、上移、開幕、覆蓋、閃爍和直顯等)后,用SPI口分別輸出給行、列驅(qū)動(dòng)電路。同時(shí),若有需要,上位機(jī)所傳來的數(shù)據(jù)或圖像畫面,也可以保存在Flash存儲(chǔ)器中。
顯示屏采用1/16動(dòng)態(tài)逐次行掃描方式,先將SPIA端口中的24個(gè)字節(jié)數(shù)據(jù)依此串行移入對(duì)應(yīng)的24個(gè)A6276列驅(qū)動(dòng)電路,并鎖存。接著,SPIB端口再將一行行選通信號(hào)串行移入行驅(qū)動(dòng)電路,完成一行的LED顯示。然后依理,逐次的顯示LED屏的各行。
二極管亮滅時(shí)間的占空比可用軟件進(jìn)行設(shè)定,以選取合適亮度,提高發(fā)光二極管的使用壽命。在現(xiàn)場(chǎng)實(shí)際安裝的LED顯示屏,有效顯示面積約為4.6 m2,共有288384=110 592個(gè)像素,滿幀刷新時(shí)間最短可小于8 ms,換幀頻率125 Hz以上,比傳統(tǒng)的用單片機(jī)組成的顯示系統(tǒng)提高了10倍以上的幀頻,保證了動(dòng)態(tài)顯示時(shí)的視覺效果。同時(shí),在相同的條件下,還可以使得實(shí)際可視像素點(diǎn)增多。
3 軟件部分簡述
本系統(tǒng)的軟件采用μC/OSII操作系統(tǒng),使得系統(tǒng)具有強(qiáng)大的多任務(wù)管理、定時(shí)器管理、中斷管理、存儲(chǔ)管理等功能,通過對(duì)相關(guān)寄存器的實(shí)時(shí)監(jiān)控,可以大大提高系統(tǒng)的穩(wěn)定性,這些是以往用單片機(jī)和部分DSP處理器所無法實(shí)現(xiàn)的。
顯示應(yīng)用程序采用定時(shí)器中斷方法,通過設(shè)置合適的進(jìn)入中斷時(shí)間常數(shù),即可以得到高于40 Hz的LED刷新幀頻,使人眼得到穩(wěn)定的動(dòng)態(tài)視覺效果。
畫面的實(shí)時(shí)動(dòng)態(tài)處理,即各種動(dòng)態(tài)顯示方式均以子程序形式編寫,每種顯示方式都是獨(dú)立的子程序。具體的動(dòng)態(tài)顯示方式有:畫面左、右移,上、下移,拉幕,覆蓋,閃爍,直顯等多種方式。
4 本系統(tǒng)的優(yōu)點(diǎn)
① 使用高性能32位RISC架構(gòu)的ARM微處理器,硬件上克服了傳統(tǒng)8/16位單片機(jī)在處理能力、系統(tǒng)架構(gòu)、尋址范圍和外圍接口能力上的不足;軟件上使用實(shí)時(shí)多任務(wù)操作系統(tǒng),使系統(tǒng)的管理功能強(qiáng)大,可進(jìn)行實(shí)時(shí)監(jiān)控,實(shí)現(xiàn)復(fù)雜的程序控制,程序的開發(fā)和擴(kuò)展也很方便。和以往單片機(jī)組成的類似系統(tǒng)相比,本系統(tǒng)的軟件穩(wěn)定性和可靠性都得到了很大提高。
?、?該系統(tǒng)省去了傳統(tǒng)做法中LED顯示部分的總線驅(qū)動(dòng)和譯碼電路,不像其他一些單片機(jī)系統(tǒng),為提高顯示速度而采用多處理器,使用雙端口RAM,或是采用將LED屏分為多塊的方案。系統(tǒng)使用AT91M42800A的SPI接口直接實(shí)現(xiàn)LED顯示邏輯驅(qū)動(dòng),不僅電路簡單,并且簡化了軟件的相關(guān)編程,節(jié)省了MCU的GPIO硬件資源。
?、?AT91M42800A的SPI接口可以采用16位傳輸方式,配以A6276高速的16位專用LED驅(qū)動(dòng)芯片,使得LED的顯示刷屏速度比傳統(tǒng)的單片機(jī)有了極大提高。
結(jié)語
由32位嵌入式 RISC微處理器組成的大屏幕 LED顯示系統(tǒng),與傳統(tǒng)的基于 8/16位單片機(jī)的 LED顯示系統(tǒng)相比,在不顯著增加系統(tǒng)成本的情況下,性能有了極大提高。而與采用DVI接口方式的顯示系統(tǒng)相比,省去了視頻處理的相關(guān)電路,又具有硬件結(jié)構(gòu)簡單、成本低廉等優(yōu)勢(shì)。采用本設(shè)計(jì)方案,可節(jié)省單片機(jī)的端口資源,有效簡化顯示屏的電路結(jié)構(gòu),提高了整個(gè)顯示系統(tǒng)的可靠性。在單色視頻、動(dòng)畫、文字等LED信息顯示方面,本系統(tǒng)有一定的應(yīng)用價(jià)值。經(jīng)過在某大型物流生產(chǎn)線上的長期實(shí)際運(yùn)行,證明其設(shè)計(jì)方案是成功的。
參考文獻(xiàn)
1 李駒光.ARM應(yīng)用系統(tǒng)開發(fā)詳解――基于S3C4510B的系統(tǒng)設(shè)計(jì).北京:清華大學(xué)出版社,2003.
2 Allegro Corp. A6B595 A6276 Products Datasheet. 2004
3 Atmel Corp. AT91M42800A Series ARM Thumb Microcontrollers Datasheet. 2002
4 張華,樊慶文,候力.基于工業(yè)以太網(wǎng)的大屏幕LED顯示系統(tǒng).機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2004.17(2):28~30
5 李駒光,張華,李眾立.AVR高速單片機(jī)LED顯示系統(tǒng).電子技術(shù),2002(5)
6 杜春雷.ARM體系結(jié)構(gòu)與編程.北京:清華大學(xué)出版社,2003
評(píng)論