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