基于ARM處理器的顯示屏控制器的設(shè)計(jì)
1 引言
LED顯示屏是利用發(fā)光二極管點(diǎn)陣模塊或像素單元組成的平面式顯示屏幕,主要應(yīng)用在公眾場(chǎng)合的信息發(fā)布。它具有發(fā)光效率高、使用壽命長(zhǎng)、組態(tài)靈活、色彩豐富以及對(duì)室內(nèi)外環(huán)境適應(yīng)能力強(qiáng)等優(yōu)點(diǎn)。本文提出了一款基于32位高性能ARM處理器和μC/OS-II的顯示屏控制器的設(shè)計(jì)方案。它充分利用了μC /OS-II高效的多任務(wù)管理功能和ARM處理器強(qiáng)大的運(yùn)算能力,實(shí)現(xiàn)了單屏幕多窗口的任意位置顯示,使得屏幕顯示內(nèi)容變得更加豐富,顯示方式變得更加靈活。從而使得控制器同步化。
2 控制器硬件總體結(jié)構(gòu)設(shè)計(jì)
本控制器的硬件結(jié)構(gòu)框圖如圖1所示。數(shù)據(jù)處理模塊由MCU,一片SRAM和一片F(xiàn)LASH存儲(chǔ)器組成。MCU選用基于32位ARM內(nèi)核的 LPC2214處理器,它有著豐富的外圍接口資源和強(qiáng)大的運(yùn)算能力,是整個(gè)控制器的核心。SRAM作為MCU進(jìn)行特技處理時(shí)的緩存使用。FLASH存儲(chǔ)器用于存儲(chǔ)顯示的點(diǎn)陣信息和一些必要的參數(shù)。掃描控制模塊由CPLD和顯存組成。顯存為一片SRAM,它用于保存當(dāng)前正在顯示的一幀數(shù)據(jù)。通信模塊包括以太網(wǎng)模塊和串口通信模塊,可以實(shí)現(xiàn)PC與控制器的RS232、RS485以及工業(yè)以太網(wǎng)通信。
圖1 控制器的硬件結(jié)構(gòu)框圖
3 控制器硬件詳細(xì)設(shè)計(jì)
1、RTC電路。LPC2214內(nèi)部集成了RTC功能模塊,但由于其時(shí)鐘源為VPB時(shí)鐘,故其不能在芯片斷電時(shí)使用,故其不適合由電池供電的系統(tǒng)。故我們?cè)谶@里采用了外置的RTC芯片--HOLTEK公司生產(chǎn)的低功耗串行實(shí)時(shí)時(shí)鐘芯片HT1381。HT1381采用串行傳輸方式與微處理器接口,只需三根引線(xiàn)就可以實(shí)現(xiàn)微處理器對(duì)HT1381訪(fǎng)問(wèn)控制。RTC部分電路原理圖如圖2所示,圖中,C1、C2、G1及X1和X2內(nèi)部的振蕩器組成了 HT1381的時(shí)鐘發(fā)生電路。D1、D2、D3以及3V的可充電電池,+3.3V的電源組成了HT1381的供電電路。系統(tǒng)采用外部供電時(shí),D3、D2 導(dǎo)通,D1截止,外部電源一方面向芯片供電,另一方面對(duì)充電電池進(jìn)行充電。當(dāng)系統(tǒng)電源停止供電時(shí),D3截止,D1導(dǎo)通,芯片由電池來(lái)供電。
圖2 RTC電路
2、溫度傳感器電路。DS18B20是單總線(xiàn)數(shù)字溫度傳感器。DS18B20采用3腳封裝,從DS18B20讀出或?qū)懭霐?shù)據(jù)僅需要一根I/O線(xiàn)。并且以串行通信的方式與微控制器進(jìn)行數(shù)據(jù)通信。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲(chǔ)器等集成在一個(gè)很小的電路芯片上,傳感器直接輸出的就是溫度信號(hào)的數(shù)字值。信號(hào)傳輸采用兩芯(或三芯)電纜構(gòu)成的單總線(xiàn)結(jié)構(gòu)。一條單總線(xiàn)電纜上可以?huà)旖尤舾蓚€(gè)數(shù)字溫度傳感器,每個(gè)傳感器有一個(gè)唯一的地址編碼。微控制器通過(guò)對(duì)器件的尋址,就可以讀取某一個(gè)傳感器的溫度值,從而簡(jiǎn)化了信號(hào)采集系統(tǒng)的電路結(jié)構(gòu)。采集端口的連接線(xiàn)減少了50倍,既節(jié)省了造價(jià),又給現(xiàn)場(chǎng)施工帶來(lái)極大的方便。
3、串行接口電路。雖然,現(xiàn)如今以太網(wǎng)通信的使用已非常普及,但由于串行通信接線(xiàn)少、成本低,所以其在數(shù)據(jù)采集和控制系統(tǒng)中仍然有著非常廣泛的應(yīng)用。RS232和RS485兩種標(biāo)準(zhǔn)的主要區(qū)別與使用平衡信號(hào)和非平衡信號(hào)有關(guān)。RS232采用非平衡信號(hào),而RS485采用平衡信號(hào)。究竟采用哪一種, 主要取決于傳輸距離和電器噪聲兩個(gè)因素。在傳輸距離小于30米,并且環(huán)境電器噪聲較小情況下,最好采用非平衡的RS232,在傳輸距離較長(zhǎng),但小于300 米時(shí),或者環(huán)境電器噪聲影響必需考慮時(shí),最好采用RS485。并且RS485的二線(xiàn)制通訊方式可實(shí)現(xiàn)真正的多點(diǎn)雙向通信。
4、自動(dòng)調(diào)亮電路。在環(huán)境光線(xiàn)較弱時(shí),LED屏的亮度應(yīng)相應(yīng)降低,否則會(huì)顯得刺眼。而在環(huán)境光線(xiàn)較強(qiáng)時(shí),LED屏的亮度也應(yīng)相應(yīng)提高,否則屏幕顯示內(nèi)容會(huì)看不清楚。所以控制器需根據(jù)周?chē)饩€(xiàn)的亮度來(lái)自動(dòng)調(diào)整量度。為了實(shí)現(xiàn)上述功能,系統(tǒng)采用了光敏電阻,與一定值電阻串聯(lián),當(dāng)外界環(huán)境光線(xiàn)變化時(shí),光敏電阻阻值發(fā)生變化,R2所分電壓也跟著發(fā)生變化,然后根據(jù)此電壓值來(lái)調(diào)整屏幕亮度,具體電路如圖3所示。LPC2214具有8路10位ADC轉(zhuǎn)換器,其參考電壓為3.3V,參考電壓的精度會(huì)影響ADC的轉(zhuǎn)換結(jié)果。R1為I/O口保護(hù)電阻,用于保證電路不產(chǎn)生短路故障。
圖3 自動(dòng)調(diào)亮電路
5、LED顯示屏掃描驅(qū)動(dòng)電路。LED顯示屏的掃描邏輯由CPLD來(lái)實(shí)現(xiàn),CPLD采用 Altera的EPM1270。EPM1270屬于Altera的MAX II系列。MAX II是Altera推出的迄今為止成本最低的CPLD器件。
3 LED掃描邏輯設(shè)計(jì)
LED掃描邏輯采用CPLD來(lái)實(shí)現(xiàn),它具有很好的組合邏輯和時(shí)序邏輯功能,能夠完成LED顯示所需要的掃描控制信號(hào)。CPLD設(shè)計(jì)框圖如圖4所示, 它主要包括以下幾個(gè)模塊:⑴ 時(shí)鐘進(jìn)程:產(chǎn)生各種頻率的時(shí)鐘;⑵ FIFO:CPLD與MCU之間的接口部分,用作數(shù)據(jù)緩沖,它使得MCU可以對(duì)顯存進(jìn)行全速寫(xiě)操作;⑶ 寫(xiě)入地址及數(shù)據(jù)產(chǎn)生器:產(chǎn)生向顯存進(jìn)行寫(xiě)操作的地址和數(shù)據(jù);⑷ 讀地址產(chǎn)生器:掃描方式不同,從顯存中讀取數(shù)據(jù)時(shí)的尋址方式也不同,讀地址產(chǎn)生器,可根據(jù)掃描方式的不同,產(chǎn)生不同的讀顯存的地址,從而完成1/16、1 /8、1/4等掃描方式;⑸ 掃描控制電路:在不同的掃描方式下,根據(jù)從顯存中讀取的數(shù)據(jù)產(chǎn)生相應(yīng)的掃描控制信號(hào);⑹ 讀寫(xiě)切換電路:對(duì)顯存的讀寫(xiě)狀態(tài)進(jìn)行切換。
圖4 CPLD設(shè)計(jì)框圖
4 基于μc/OS-II控制器軟件設(shè)計(jì)
為了實(shí)現(xiàn)單屏幕、多窗口任意位置的顯示,軟件部分我們基于μc/OS-II進(jìn)行設(shè)計(jì),這樣可以充分利用操作系統(tǒng)高效的任務(wù)調(diào)度算法,將每個(gè)窗口的顯示都交由單個(gè)任務(wù)來(lái)完成,從而極大地提高系統(tǒng)的運(yùn)行速度和可靠性,并且使得程序的開(kāi)發(fā)和擴(kuò)展變得更加方便。程序的結(jié)構(gòu)如圖5所示,控制器上電后,首先進(jìn)行系統(tǒng)初始化,然后從 FLASH 中讀取屏參數(shù),進(jìn)行參數(shù)初始化。然后建立任務(wù)TaskControl,TaskControl用于對(duì)各窗口顯示任務(wù)進(jìn)行實(shí)時(shí)管理,它擁有比各窗口顯示任都高的優(yōu)先級(jí)。它每隔1s對(duì)reset標(biāo)志進(jìn)行一次查詢(xún),如果reset=1,則刪除原先建立的各窗口顯示任務(wù),然后從FLASH中讀取新的窗口個(gè)數(shù),然后依此建立新任務(wù),將每個(gè)窗口的顯示交由單個(gè)任務(wù)來(lái)控制。
圖5 系統(tǒng)程序結(jié)構(gòu)圖
1、RS485總線(xiàn)的集群通訊協(xié)議。其具體過(guò)程如下:首先,PC向控制器發(fā)送地址幀,地址幀采用MARK校驗(yàn)。它包括6個(gè)字節(jié),第一個(gè)字節(jié)為地址碼,控制器接收到這個(gè)字節(jié)后,先判斷其是否與自己的地址相同,如果相同則繼續(xù)接收下一個(gè)字節(jié),否則就退出中斷,每個(gè)控制器的地址可通過(guò)控制器上的撥碼開(kāi)關(guān)來(lái)設(shè)置。接下來(lái)的三個(gè)字節(jié)為屏參數(shù),他主要包括屏的橫向點(diǎn)數(shù)、縱向點(diǎn)數(shù)和顯示屏的色彩(單、雙色)。控制器接收到這幾個(gè)參數(shù)后,先與自身參數(shù)進(jìn)行比較,如果參數(shù)不相同則退出中斷,否則繼續(xù)接收下一個(gè)字節(jié)。接下來(lái)發(fā)送的一個(gè)字節(jié)為操作碼,它主要是告訴控制器下面是要進(jìn)行什么樣的操作,這些操作包括加載屏參、系統(tǒng)復(fù)位、加載數(shù)據(jù)、開(kāi)關(guān)機(jī)等??刂破鲿?huì)根據(jù)操作碼來(lái)對(duì)Flash進(jìn)行操作。
2、GUI接口的設(shè)計(jì)。GUI為Graphic User Interface的縮寫(xiě),即圖形用戶(hù)接口。它是建立在計(jì)算機(jī)圖形學(xué)基礎(chǔ)上的產(chǎn)物,它可用于提高人機(jī)交互友好性,在LED屏上我們可以用它來(lái)實(shí)現(xiàn)許多意想不到的效果。這里提供了在LED屏上最基本的畫(huà)點(diǎn)、線(xiàn)、圓等功能。
(1) 畫(huà)點(diǎn)函數(shù)。一切圖形都是由一個(gè)一個(gè)點(diǎn)來(lái)組成的,它是圖形的最基本元素,描述一個(gè)點(diǎn)時(shí)需要使用其坐標(biāo)值(X,Y)和顏色。對(duì)于雙色LED屏顏色值0表示綠色,1表色紅色,2表示黃色。在畫(huà)點(diǎn)時(shí),先把指定的點(diǎn)坐標(biāo)值轉(zhuǎn)換為顯存上的對(duì)應(yīng)字節(jié),然后對(duì)相應(yīng)字節(jié)進(jìn)行顏色處理。然后在將此字節(jié)寫(xiě)入顯存完成該點(diǎn)的顯示。(2) 畫(huà)線(xiàn)函數(shù)。對(duì)于直線(xiàn)的繪畫(huà),分為水平線(xiàn)、垂直線(xiàn)和一般直線(xiàn)3種繪畫(huà)方法。其實(shí)一般直線(xiàn)就包括水平直線(xiàn)和垂直線(xiàn),但由于這兩種直線(xiàn)較為特殊,繪畫(huà)操作不需要像其他直線(xiàn)一樣須進(jìn)行較多的運(yùn)算,故將它們分開(kāi)有利于提高繪畫(huà)的速度。
本文作者創(chuàng)新點(diǎn)
本文主要介紹了一款基于32位高性能ARM處理器和μC/OS-II的顯示屏控制器的設(shè)計(jì)方案。本系統(tǒng)充分利用了μC/OS-II高效的多任務(wù)管理功能和ARM處理器強(qiáng)大的運(yùn)算能力,實(shí)現(xiàn)了單屏幕多窗口的任意位置顯示,使得屏幕顯示內(nèi)容變得更加豐富,顯示方式變得更加靈活,使得控制器同步化。
參考文獻(xiàn):
[1] 龔兆崗.基于ARM處理器的LED可變情報(bào)板嵌入式控制器[J].現(xiàn)代顯示.2006, (06)
[2] 張叔猛.嵌入式系統(tǒng)和FPGA在LED顯示屏中的應(yīng)用研究與實(shí)現(xiàn)[J].武漢理工大學(xué).2005
[3] Jean. Labrosse著,邵貝貝等譯.嵌入式操作系統(tǒng)μC/OS-II(第二版)[M].北京航空航天大學(xué)出版社.2005年
[4] 宋暉, 高小明. 基于ARM的嵌入式操作系統(tǒng)μC/OS-II的移植[J]. 微計(jì)算機(jī)信息, 2006,2-2: 135-136





