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