摘 要: 設(shè)計(jì)了一種彩色點(diǎn)陣LED大屏幕的控制器,該控制器采用單片機(jī)讀取存儲(chǔ)在SD上的點(diǎn)陣數(shù)據(jù)文件,按幀串行地輸出到LED控制芯片并刷新LED屏幕顯示。該控制器能夠存儲(chǔ)并動(dòng)態(tài)顯示靈活多樣的文字或者動(dòng)畫,具有性價(jià)比高、體積小等優(yōu)點(diǎn)。
關(guān)鍵詞: 點(diǎn)陣LED屏幕;控制器;ATmega644
0 引言
隨著國(guó)民經(jīng)濟(jì)的發(fā)展,商品的廣告以多種多樣的方式呈現(xiàn)在消費(fèi)者面前。其中,戶外的點(diǎn)陣LED式廣告牌越來越受到商家的歡迎,其樣式多種多樣,可任意顯示各種文字和圖形,并具有高亮度、防水、節(jié)能、壽命長(zhǎng)等優(yōu)點(diǎn),用途越來越廣泛[1-3]。
點(diǎn)陣LED屏幕控制器負(fù)責(zé)對(duì)LED顯示內(nèi)容進(jìn)行控制和實(shí)時(shí)更新,是LED屏幕工作的必需部分。LED控制器的工作原理、顯示內(nèi)容存儲(chǔ)或獲取方式、刷新速度等因素都關(guān)系到LED廣告牌的顯示效果和工作的便利性[4-5]??紤]到目前點(diǎn)陣LED屏幕控制器市場(chǎng)存在較多問題,本文基于單片機(jī)、彩色點(diǎn)陣LED驅(qū)動(dòng)控制芯片和SD卡,設(shè)計(jì)了一種彩色點(diǎn)陣LED屏幕控制器。設(shè)計(jì)的彩色點(diǎn)陣LED屏幕控制器能夠選擇并循環(huán)顯示存儲(chǔ)在SD卡上的點(diǎn)陣數(shù)據(jù)文件,能調(diào)節(jié)顯示速度,并能夠根據(jù)需求并聯(lián)工作,實(shí)現(xiàn)對(duì)更大規(guī)模的點(diǎn)陣LED的控制,具有調(diào)節(jié)和更換顯示內(nèi)容方便、結(jié)構(gòu)簡(jiǎn)單、可擴(kuò)展、可靠性高等優(yōu)點(diǎn)。
1 系統(tǒng)概述
彩色點(diǎn)陣LED屏幕控制器主要由單片機(jī)、SD卡、電源及相應(yīng)的輸出電路組成。另外在點(diǎn)陣LED驅(qū)動(dòng)部分,采用與LED集成在一起的控制芯片進(jìn)行控制,專用的橫流電源為其供電。其結(jié)構(gòu)框圖如圖1所示。
單片機(jī)主要負(fù)責(zé)讀取SD卡內(nèi)存儲(chǔ)的點(diǎn)陣數(shù)據(jù),讀取完一幀數(shù)據(jù)后,通過驅(qū)動(dòng)電路串行地發(fā)送給LED控制芯片。此LED控制芯片能夠接收并存儲(chǔ)9 B的點(diǎn)陣數(shù)據(jù),分別對(duì)應(yīng)相鄰3個(gè)像素點(diǎn)的RGB亮度數(shù)據(jù)。當(dāng)單片機(jī)發(fā)送過來的數(shù)據(jù)超過9 B時(shí),LED控制芯片會(huì)把數(shù)據(jù)串行地發(fā)送給相鄰的下一級(jí)控制芯片,直至所有的控制芯片都接收到點(diǎn)陣數(shù)據(jù),就可以進(jìn)行一次顯示。
2 硬件設(shè)計(jì)
在彩色點(diǎn)陣LED控制器的硬件上,主要設(shè)計(jì)了基于ATmega644單片機(jī)、SD卡最小系統(tǒng)及其驅(qū)動(dòng)電路等。而在LED控制芯片上則選用Titan Micro公司生產(chǎn)的TM1809的具有9通道LED驅(qū)動(dòng)控制專用芯片。
以下將分別介紹ATmega644單片機(jī)及SD卡最小系統(tǒng)、驅(qū)動(dòng)電路和LED控制電路。
2.1 ATmega644最小系統(tǒng)
ATmega644單片機(jī)是美國(guó)ATMEL公司生產(chǎn)的8位RISC結(jié)構(gòu)的單片機(jī),具有64 KB的閃存、4 KB的內(nèi)存,最高運(yùn)行頻率為20 MHz。該單片機(jī)的指令為單周期指令,執(zhí)行效率很高,支持在線下載。ATmega644單片機(jī)及SD卡最小系統(tǒng)的原理圖如圖2所示。
ATMega644單片機(jī)最小系統(tǒng)由5 V供電電源、晶振、復(fù)位電路和程序在線下載電路組成。ATMega644的復(fù)位電路由電阻、電容、二極管和一個(gè)微動(dòng)開關(guān)組成,能起到延時(shí)啟動(dòng),按下開關(guān)瞬時(shí)重啟的作用。單片機(jī)系統(tǒng)的晶振采用的是11.059 2 MHz的晶振,也可根據(jù)需要更換為20 MHz的晶振以提高運(yùn)行速度。與ISP在線下載電路相連的是單片機(jī)的SPI接口和復(fù)位接口。單片機(jī)的供電電源為5 V,還需要額外的電源芯片轉(zhuǎn)換為3.3 V電源供給SD使用。
SD與單片機(jī)相連接的電路也是SPI接口,可以用單片機(jī)的SPI接口方便地與SD卡進(jìn)行數(shù)據(jù)的讀寫操作。單片機(jī)的在線編程接口和SD卡與單片機(jī)通信用到的都是SPI接口,但是由于在線編程是SPI接口與復(fù)位接口配合使用的,因此并不會(huì)產(chǎn)生沖突。另外,由于單片機(jī)接口與SD卡接口的電源電壓分別為5 V和3.3 V,并不兼容,因此在線路上串接有100 Ω的電阻,以達(dá)到可靠通信的目的。另外在靠近SD卡端的所有數(shù)據(jù)線上都加上了上拉電阻,以提高通信的可靠性。
2.2 驅(qū)動(dòng)電路
由于單片機(jī)接口的負(fù)載能力有限,很難驅(qū)動(dòng)距離較遠(yuǎn)的芯片,因而需要提高其驅(qū)動(dòng)能力后再連接后續(xù)電路,以便達(dá)到信號(hào)可靠傳輸?shù)哪康摹1疚牟捎玫尿?qū)動(dòng)電路原理圖如圖3所示。
該驅(qū)動(dòng)電路采用的芯片為74HC245,是一種三態(tài)輸出、八路信號(hào)收發(fā)器,其接口的輸入、輸出電流能夠達(dá)到35 mA,在設(shè)計(jì)中,采取兩路收發(fā)器共同發(fā)送同一個(gè)信號(hào),其最大能夠輸出或輸入70 mA的電流,保證了信號(hào)的可靠傳輸。由于該電路的信號(hào)傳輸是單向的,由單片機(jī)到LED控制電路,因此74HC245方向控制端接高電平,數(shù)據(jù)傳輸方向由端口A到B。
2.3 LED控制電路
LED控制芯片上則選用的是Titan Micro公司生產(chǎn)的TM1809,該芯片內(nèi)部集成有MCU數(shù)字接口、數(shù)據(jù)鎖存器、LED高壓驅(qū)動(dòng)等電路,通過外圍MCU控制實(shí)現(xiàn)該芯片的每路單獨(dú)輝度、級(jí)聯(lián)控制實(shí)現(xiàn)戶外大屏的彩色點(diǎn)陣發(fā)光控制。該芯片共有9個(gè)輸出端口,能夠連接9個(gè)LED,實(shí)現(xiàn)控制3個(gè)RGB像素的24位色彩控制。通過多級(jí)串聯(lián),完全能夠?qū)崿F(xiàn)對(duì)彩色點(diǎn)陣LED顯示屏的控制。LED控制電路原理圖如圖4所示。
在圖4中,TM1809的14腳為串行數(shù)據(jù)輸入腳,連接單片機(jī)驅(qū)動(dòng)電路上的DAT1腳;其第3腳為串行數(shù)據(jù)輸出腳,連接下一級(jí)TM1809的14腳,按照這種連接方式實(shí)現(xiàn)級(jí)聯(lián)控制。在接收點(diǎn)陣數(shù)據(jù)時(shí),每一級(jí)芯片接收完9 B的點(diǎn)陣數(shù)據(jù)后會(huì)自動(dòng)把數(shù)據(jù)串行地發(fā)送給下一級(jí)控制芯片。
3 軟件設(shè)計(jì)
LED控制器的正常運(yùn)行需要編寫相應(yīng)的單片機(jī)軟件。本文設(shè)計(jì)的LED控制器中,單片機(jī)的主要功能是通過SPI接口初始化和讀取SD卡內(nèi)的數(shù)據(jù),并通過單片機(jī)端口串行地把數(shù)據(jù)發(fā)送給TM1809,直到發(fā)送完整幀的數(shù)據(jù),然后控制TM1809輸出當(dāng)前幀數(shù)據(jù)給LED顯示,接下來再處理下一幀數(shù)據(jù)。
設(shè)計(jì)單片機(jī)軟件的難點(diǎn)在于SD卡數(shù)據(jù)的讀取和驅(qū)動(dòng)TM1809。其中,SD卡中存儲(chǔ)數(shù)據(jù)文件用到的是FAT32文件系統(tǒng),需要單片機(jī)軟件根據(jù)FAT表的信息判斷文件存儲(chǔ)的位置、幀大小、每扇區(qū)幀數(shù)等信息,以便完整地讀取所需要的文件內(nèi)容。
由于單片機(jī)向TM1809發(fā)送數(shù)據(jù)采用的是單線串行發(fā)送,因此需要準(zhǔn)確地控制數(shù)據(jù)時(shí)序。TM1809對(duì)數(shù)字“0”的規(guī)定為600 ns的高電平,緊接著1 200 ns的低電平;對(duì)數(shù)字“1”的規(guī)定為1 200 ns的高電平,緊接著600 ns的低電平;10 μs以上的持續(xù)低電平為復(fù)位信號(hào)。當(dāng)發(fā)送完一幀數(shù)據(jù)后,緊接著發(fā)送一個(gè)復(fù)位信號(hào),TM1809會(huì)將當(dāng)前存儲(chǔ)的數(shù)據(jù)發(fā)送到LED顯示。
單片機(jī)程序的流程圖如圖5所示。單片機(jī)上電后首先進(jìn)行端口、SPI接口和SD卡的初始化工作,這些工作完成后將讀取SD卡起始幀的數(shù)據(jù),并以此判斷分區(qū)格式、分區(qū)表的位置等信息。讀取分區(qū)表內(nèi)容,根據(jù)撥碼開關(guān)決定所需讀取數(shù)據(jù)的文件名,并由分區(qū)表判斷此文件起始幀的位置。接下來就可以讀取數(shù)據(jù)文件的第一幀,其第一幀并不是點(diǎn)陣數(shù)據(jù),而是點(diǎn)陣數(shù)據(jù)的行數(shù)、列數(shù)、幀數(shù)等信息,第二幀才是點(diǎn)陣數(shù)據(jù),讀取后發(fā)送給TM1809顯示。在接續(xù)讀取和發(fā)送點(diǎn)陣數(shù)據(jù)之前要判斷撥碼開關(guān)是否變化,變化意味著要切換顯示文件;還要判斷是否是最后一幀數(shù)據(jù),如果都不是,則接續(xù)讀取下一幀數(shù)據(jù)。
除此之外,本文還設(shè)計(jì)了點(diǎn)陣數(shù)據(jù)文件的存儲(chǔ)格式。點(diǎn)陣數(shù)據(jù)文件在SD卡中以512 B為單位進(jìn)行存儲(chǔ)。其第一個(gè)512 B存儲(chǔ)的數(shù)據(jù)為點(diǎn)陣數(shù)據(jù)的行數(shù)、列數(shù)、幀數(shù)等數(shù)據(jù),不足512 B的空間將以0xFF補(bǔ)滿。從第二個(gè)512 B開始將是點(diǎn)陣數(shù)據(jù),若一幀點(diǎn)陣數(shù)據(jù)不足512 B,同樣以0xFF補(bǔ)滿,超出512 B將占用第二個(gè)直至更多個(gè)512 B,不足512 B的空間將以0xFF補(bǔ)滿。
4 結(jié)論
本文設(shè)計(jì)了一種彩色點(diǎn)陣LED屏幕控制器,該控制器通過單片機(jī)讀取SD卡中的點(diǎn)陣數(shù)據(jù),串行地發(fā)送到LED控制芯片中,刷新LED顯示動(dòng)態(tài)圖像。同時(shí),該控制器能夠通過撥碼開關(guān)調(diào)節(jié)顯示內(nèi)容和顯示速度,并能夠通過并行連接多個(gè)控制器同步工作實(shí)現(xiàn)更大規(guī)模的顯示屏控制;并具有性價(jià)比高、體積小等優(yōu)點(diǎn)。
參考文獻(xiàn)
[1] 王有乾,佘焱,姜建國(guó).LED大屏幕異步控制器多窗口顯示的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,23(20):104-106.
[2] 田秀偉,鄭喜鳳,丁鐵夫.基于SOPC的LED顯示屏控制器設(shè)計(jì)[J].液晶與顯示,2007,22(6):737-741.
[3] 呂常智,范迪.基于CPLD的LED點(diǎn)陣顯示控制器[J].微計(jì)算機(jī)信息,2006,22(32):218-219,233.
[4] 梁志明,李斌.基于FPGA的大屏幕全彩LED掃描控制器設(shè)計(jì)[J].液晶與顯示,2007,22(4):477-481.
[5] 陳雁,安建平,徐紹劍.基于FPGA的全彩色大屏幕LED控制器設(shè)計(jì)[J].電子器件,2007,30(6):2155-2158.