1、引言
以往的LED 異步控制器只能把一個屏幕作為一個完整的區域來進行顯示, 或者簡單的加上時間區域或游走字幕區域,這樣對于用戶來講往往缺乏足夠的靈活性, 尤其在屏幕較大的時候。針對以上情況, 本文提出了一款基于32 位高性能ARM處理器和uc/OS- II 的設計方案。它充分利用了uc/OS-II 高效的多任務管理功能和ARM處理器強大的運算能力, 實現了單屏幕多窗口的任意位置顯示, 使得顯示內容變得更加豐富, 顯示方式變得更加靈活。
2、LED控制系統的工作原理
典型的LED 異步控制系統主要由PC 應用軟件、通信模塊、數據處理模塊、掃描控制模塊、驅動模塊和LED 屏幾部分組成,如圖1 所示。
?
首先, PC 應用軟件將文本或圖片轉化為具有特定格式的點陣信息。然后, 通過通信模塊將此點陣信息發送給數據處理模塊。數據處理模塊對這些點陣信息進行各種特技處理, 最后通過掃描控制模塊和驅動模塊將畫面在LED 屏上進行正確顯示。
本文所指的LED 異步控制器包括通信模塊、數據處理模塊和掃描控制模塊三部分。
3、控制器軟件部分的設計
本控制器的硬件結構如圖2 所示。數據處理模塊由MCU,一片SRAM和一片FLASH 存儲器組成。MCU 選用PHILIPS 的基于32 位ARM內核的LPC2214 處理器, 它有著豐富的外圍接口資源和強大的運算能力, 是整個控制器的核心。SRAM作為MCU 進行特技處理時的緩存使用。FLASH 存儲器用于存儲點陣信息和一些必要的參數。
![](/uploads/allimg/111114/1HT61142-1.jpg)
?
掃描控制模塊由CPLD 和顯存組成。顯存為一片SRAM, 它用于保存當前顯示的一幀點陣信息。CPLD 通過地址總線和16位數據總線與MCU 相連, 它把從MCU 接收到的16 位數據按指定地址寫入顯存, 然后再按一定的尋址方式從顯存中讀出點陣信息進行掃描。MCU 只能通過CPLD 對顯存進行以字(2byte)為單位的寫操作。通信模塊包括以太網模塊和串口通信模塊, 用于實現PC 與控制器之間的RS232、RS485 以及工業以太網通信。
4、控制器軟件部分的設計
為了實現單屏幕、多窗口任意位置的顯示, 軟件部分我們基于uc/OS- II 進行設計, 這樣可以充分利用操作系統高效的任務調度算法, 將每個窗口的顯示都交由單個任務來完成, 從而極大地提高系統的運行速度和可靠性, 并且使得程序的開發和擴展變得更加方便。
在進行具體的程序設計之前, 首先要確定數據的組織方案。
因為好的數據組織方案, 對于程序編寫來說往往可以達到事半功倍的效果。
4.1 顯存的數據組織方案:
對于雙色屏, 一個像素點需要紅、綠兩位數據來描述。為了便于處理, 我們將橫向連續的8 個像素點組成一個字(2byte)來進行存儲, 其中一個字節為紅數據, 一個字節為綠數據。數據存儲順序為從左到右, 從上到下。如圖3 所示, 假如屏幕寬度為160 個像素點, 顯存起始地址為0x83000000, 則屏幕第一行的前8 個像素點映射到顯存中地址為0x83000000 和0x83000001 的兩個字節, 第二行的前8 個像素點映射到顯存中地址為0x83000028 和0x83000029 的兩個字節, 依此類推。
![](/uploads/allimg/111114/1HTAG8-2.jpg)
?