徐振方 孟艷花 王艷
(河南工業(yè)大學(xué)電氣工程學(xué)院,河南鄭州 450007)
LED顯示屏是八十年代后期在全球迅速發(fā)展起來的新型信息傳播媒體,是集微電子技術(shù)、光電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理技術(shù)于一體的大型顯示系統(tǒng)。它以其色彩鮮艷、動態(tài)范圍廣、亮度高、壽命長、工作性能穩(wěn)定而日漸成為顯示媒體中的佼佼者,廣泛應(yīng)用于廣告、證券、信息傳播、新聞發(fā)布等方面,是目前國際上較為先進(jìn)的宣傳顯示媒體[1]。本文提出了一種主從式單片機(jī)的LED顯示屏解決方案,該設(shè)計(jì)方案利用 AVR單片機(jī)自身的FLASH ROM和 RAM,外部無需任何存儲電路,電路結(jié)構(gòu)簡單。
AVR單片機(jī)是增強(qiáng)型內(nèi)置 FLASH的 RISC(ReducedInstruction Set CPU)精簡指令集高速8位單片機(jī),硬件采用哈佛 (Harward)結(jié)構(gòu),達(dá)到一個(gè)時(shí)鐘周期可以執(zhí)行一條指令,絕大部分指令都為單周期指令。支持在系統(tǒng)編程ISP,其中 MEGA系列還支持在應(yīng)用編程 IAP。內(nèi)置的FLASH程序存儲器可擦寫1000次以上,給用戶的開發(fā)生產(chǎn)和維護(hù)帶來方便??刹翆?0萬次E PROM,為掉電后數(shù)據(jù)的保存帶來方便[2,3]。AVR單片機(jī)有豐富的片內(nèi)資源,如 RTC、WATCHDOG、A/D轉(zhuǎn) 換 器、PWM 、USART、SPI、TWI接口等,I/O口功能強(qiáng)、驅(qū)動能力強(qiáng)。
本設(shè)計(jì)采用AVR系列單片機(jī)ATMEGA16作為主控制器,以DS1302時(shí)鐘芯片和16M的外置晶振提供準(zhǔn)確時(shí)間標(biāo)準(zhǔn)、很方便的現(xiàn)實(shí)和校準(zhǔn)時(shí)間。ATMEGA32的內(nèi)核具有豐富的指令集和32個(gè)通用工作寄存器。所有的寄存器都直接與算邏單元(ALU)相連接,使得一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)訪問兩個(gè)獨(dú)立的寄存器。[4]采用74HC245存儲器作為信號功率放大。通過2片74HC595移位寄存器實(shí)現(xiàn)對數(shù)據(jù)的播放格式,ATMEGA32卡內(nèi)帶32MFLASH,用戶可用專用上位機(jī)軟件對要顯示的內(nèi)容按照預(yù)定的顯示格式進(jìn)行編輯后,通過RS485或RS232接口,向顯示屏控制卡發(fā)送。發(fā)送結(jié)束后,控制卡可以脫開計(jì)算機(jī),自動按照用戶設(shè)定的模式顯示所輸入的內(nèi)容,從而通過LED顯示屏來顯示你所需要的內(nèi)容。直到下一次數(shù)據(jù)更新,所顯示的內(nèi)容一直保持。
LED點(diǎn)陣顯示系統(tǒng)由計(jì)算機(jī)、RS-232通訊電路、控制電路和LED點(diǎn)陣顯示電路構(gòu)成,結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)框圖
上位機(jī)完成把圖像和文字轉(zhuǎn)換成為顯示屏的顯示碼,并且把顯示信息發(fā)通過RS232送到控制電路上。控制電路選用具有32KB片內(nèi)FLASH ROM和2 KB片內(nèi)RAM的AT2mega32單片機(jī),沒有外掛存儲器。如果要存儲更多的顯示信息,可以選用具有64 KB片內(nèi) FLASH ROM的 AT2mega64或者具有128 kB片內(nèi) FLASH ROM的 AT2mega128,也可以外掛存儲器來增大存儲能力。[5、6]控制電路主要完成對顯示數(shù)據(jù)的滾動和分割處理,然后通過異步串行口發(fā)送到每個(gè)單元板中。每塊單元板用16×32單色點(diǎn)陣塊拼成的點(diǎn)陣屏,控制電路更新顯示單元板的顯示內(nèi)容時(shí),對所有單元板按地址逐個(gè)發(fā)送顯示數(shù)據(jù),更新完所有子模塊數(shù)據(jù)后,再發(fā)送一個(gè)特殊的地址字0xFF作為控制字,使所單元板同時(shí)更新顯示數(shù)據(jù),這樣可以避免當(dāng)屏幕較大,單元板數(shù)量較多時(shí)各子模塊畫面更新不同步的問題。對本設(shè)計(jì)中完成的2×10個(gè)單元板而言,由于通訊速率限制,畫面更新速度最高可達(dá)56800/(129×24+1)=18134幀/s,由于主控制電路還要完成全屏數(shù)據(jù)的分割和顯示內(nèi)容的移動控制,所以其實(shí)際幀數(shù)低于上述值,不過用于普通的圖片顯示已經(jīng)可以達(dá)到要求。
Atmega32是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以及單時(shí)鐘周期指令執(zhí)行時(shí)間,Atmega32的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。[7]
Atmega32有32K字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀寫的能力,即 RWW),512字節(jié)EEPROM,1K字節(jié)SRAM,32個(gè)通用I/O口線,32個(gè)通用工作寄存器,用于邊界掃描的JTAG接口,支持片內(nèi)調(diào)試與編程,三個(gè)具有比較模式的靈活的定時(shí)器/計(jì)數(shù)器 (T/C),片內(nèi)/外中斷,可編程串行USART,有起始條件檢測器的通用串行接口,具有片內(nèi)振蕩器的可編程看門狗定時(shí)器,一個(gè)SPI串行端口,以及六個(gè)可以通過軟件進(jìn)行選擇的省電模式。[8]
單元顯示驅(qū)動電路由RS232轉(zhuǎn)換電路、子模塊地址標(biāo)識電路和點(diǎn)陣驅(qū)動電路組成。RS232轉(zhuǎn)換電路和主機(jī)板中一樣,同樣采用 MAX485作電平轉(zhuǎn)換。[9]由于采用單片機(jī)的異步串行口進(jìn)行多機(jī)通信進(jìn)行數(shù)據(jù)傳輸,單元模塊應(yīng)該有和其位置相對應(yīng)的地址標(biāo)識地址標(biāo)識電路采用8位并進(jìn)串出芯片74HC595和8位撥碼開關(guān)組成,因此本系統(tǒng)最多可以容納255個(gè)子模塊 (地址0xFF作為更新子模塊顯示的控制字)。
LED點(diǎn)陣采用動態(tài)掃描法進(jìn)行驅(qū)動,并且實(shí)現(xiàn)16階灰度顯示,為了節(jié)省單片機(jī)程序中掃描程序的時(shí)間消耗,提高掃描速度,顯示數(shù)據(jù)采用并行輸出的方法。驅(qū)動電路采用譯碼器 74HC138和74HC245,分別實(shí)現(xiàn)行選和位選。
系統(tǒng)軟件設(shè)計(jì)包括上位機(jī)軟件的設(shè)計(jì)、下位機(jī)程序設(shè)計(jì)兩部分。
上位機(jī)軟件完成圖像和文字的編輯,通過計(jì)算機(jī)串行接口把顯示數(shù)據(jù)傳送到控制卡上。控制卡接收上位機(jī)的數(shù)據(jù)并通過內(nèi)部Boot Loader區(qū)的程序進(jìn)行FLASH ROM內(nèi)顯示數(shù)據(jù)的自更新。[10]控制卡把顯示數(shù)據(jù)進(jìn)行分割處理后發(fā)送給每個(gè)單元板,并且完成顯示數(shù)據(jù)不同方式處理。
下位機(jī)軟件設(shè)計(jì)分為兩大功能塊:顯示部分和通信部分。顯示部分采用動態(tài)掃描的方式,實(shí)現(xiàn)對顯示屏要顯示的漢字、圖象、字符等數(shù)據(jù)信息進(jìn)行傳輸控制以及顯示等功能。與PC機(jī)的實(shí)時(shí)通信部分主要是利用單片機(jī)串口中斷接收和發(fā)送數(shù)據(jù)信息,實(shí)現(xiàn)與計(jì)算機(jī)的實(shí)時(shí)數(shù)據(jù)信息傳輸。程序可以實(shí)現(xiàn)與計(jì)算機(jī)的通信,可非常方便地任意修改所要顯示的漢字、圖像等;并使顯示屏可按你選擇顯示方式進(jìn)行漢字或表格顯示。設(shè)計(jì)程序的流程圖如圖2所示。
圖2 系統(tǒng)程序流程圖
軟件系統(tǒng)采用模塊化結(jié)構(gòu),包括主程序、顯示子程序和串口中斷服務(wù)程序。主程序?yàn)轫樞蚪Y(jié)構(gòu),完成堆棧、中斷、串口的初始化設(shè)置后,循環(huán)調(diào)用顯示子程序,以及響應(yīng)串行接收或發(fā)送中斷指令;顯示子程序從顯示緩沖區(qū)取出字模,輸出行選通信號至P0口并通過一個(gè)通用邏輯陣列74HC00D輸出,配合列掃描信號,進(jìn)行動態(tài)掃描顯示;中斷服務(wù)程序串口接收PC機(jī)發(fā)送的漢字機(jī)內(nèi)碼數(shù)據(jù),實(shí)現(xiàn)與計(jì)算機(jī)實(shí)時(shí)通信。[11,12]程序各部分的功能,由各個(gè)模塊分別實(shí)現(xiàn)。程序模塊有:串口初始化模塊、數(shù)據(jù)輸入模塊、漢字首地址計(jì)算模塊、取字模塊、顯示模塊和移動模塊。系統(tǒng)顯示流程圖如圖3所示。
圖3 系統(tǒng)顯示流程圖
上位機(jī)軟件使用可視化編程工具Visual Basic.NET開發(fā),主要完成圖像的取點(diǎn)、線性補(bǔ)償和點(diǎn)陣數(shù)據(jù)生成。首先將圖像文件轉(zhuǎn)換為96×64分辨率、256階色深的單色灰度圖像,由于使用占空比驅(qū)動的LED其占空比/亮度為對數(shù)特性,所以需加入指數(shù)特性調(diào)整為線性之后才能交付顯示系統(tǒng)進(jìn)行顯示。通過 MSComm控件實(shí)現(xiàn) PC機(jī)與單元板的通信。系統(tǒng)主界面如圖4所示。
圖4 上位機(jī)主界面
本系統(tǒng)設(shè)計(jì)著重于對單色屏的研究,對于灰度不同的真彩色LED顯示屏的設(shè)計(jì)以及設(shè)備的驅(qū)動,有待于進(jìn)一步的學(xué)習(xí)探討。而且本設(shè)計(jì)所用的控制卡只能控制顯示屏的單色顯示,如果能顯示雙色,甚至三色那就更方便了。LED顯示屏可以顯示變化的數(shù)字、文字、圖形圖像,不僅可以用于室內(nèi)環(huán)境還可以用于室外環(huán)境,具有投影儀、電視墻、液晶顯示屏無法比擬的優(yōu)點(diǎn)。LED甚至可以在信息指示燈、大屏幕顯示、液晶顯示 (LCD)的背照明等新技術(shù)中應(yīng)用。它是未來智能交通系統(tǒng)的顯示手段之一。
由于LED顯示屏的分析、設(shè)計(jì)與實(shí)際應(yīng)用環(huán)境及應(yīng)用目的有很大關(guān)系,所以對其控制系統(tǒng)的要求也是不同的。如果顯示屏的面積要求很大,屏幕顯示的信息量超大,那么要傳輸?shù)臄?shù)據(jù)量也隨之增大,如何設(shè)計(jì)出更理想的字模保存方法以及數(shù)據(jù)傳輸時(shí)的壓縮算法需要進(jìn)一步的研究和探討。
[1]謝宋和.單片機(jī)在LED顯示屏中的應(yīng)用 [J].電子與自動化,1998,19(4):23~29
[2]李愛國.模塊化LED電子大屏幕的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)應(yīng)用研究,1998,01(3):17~21
[3]褚昌晨.LED顯示屏系統(tǒng)原理及工程技術(shù) [M].成都:電子科技大學(xué)出版社,2000
[4]馬黎.單片機(jī)控制的漢字點(diǎn)陣大屏幕顯示 [J].計(jì)算機(jī)應(yīng)用研究,1999,13(3):11~16
[5]張曉東.如何解決LED應(yīng)用中的一些難題 [J].計(jì)算機(jī)應(yīng)用研究,1998,13(3):26~30
[6]LarryA.Coldren,Scottw.Corzine[M].Diode Lasers and Photonic Integrated Circuits,北京:北京郵電大學(xué)出版社,2006
[7]鄔寬明.單片機(jī)外圍器件實(shí)用手冊 [J].北京:北京航空航天大學(xué)出版社,1998,16(3):16~20
[8]梁純.基于MCS-51單片機(jī)的LED點(diǎn)陣圖文顯示屏設(shè)計(jì) [J].工礦自動化,2005,11(1):07~21
[9]謝宋和.單片機(jī)在LED顯示屏中的應(yīng)用 [J].電子與自動化,1998,17(2):01~29
[10]李愛國.模塊化 LED電子大屏幕的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)應(yīng)用研究,1998,37(9):11~30
[11]Kwangyong Lee,Chaedeok Lim A.Design and Implemen tation of a Remote Debugging Environment for Embed dedInterne Software [J].LectureNotes in Computer Science,2003
[12]Denise Ombres,Jack Rosenzweig.TMS320VC5471/TMS 320 VC5470 Inter Processor.Application Report SPRA818[J].2002