基于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采用串行傳輸方式與微處理器接口,只需三根引線就可以實(shí)現(xiàn)微處理器對(duì)HT1381訪問控制。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)通,芯片由電池來供電。
圖2 RTC電路
2、溫度傳感器電路。DS18B20是單總線數(shù)字溫度傳感器。DS18B20采用3腳封裝,從DS18B20讀出或?qū)懭霐?shù)據(jù)僅需要一根I/O線。并且以串行通信的方式與微控制器進(jìn)行數(shù)據(jù)通信。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲(chǔ)器等集成在一個(gè)很小的電路芯片上,傳感器直接輸出的就是溫度信號(hào)的數(shù)字值。信號(hào)傳輸采用兩芯(或三芯)電纜構(gòu)成的單總線結(jié)構(gòu)。一條單總線電纜上可以掛接若干個(gè)數(shù)字溫度傳感器,每個(gè)傳感器有一個(gè)唯一的地址編碼。微控制器通過對(duì)器件的尋址,就可以讀取某一個(gè)傳感器的溫度值,從而簡(jiǎn)化了信號(hào)采集系統(tǒng)的電路結(jié)構(gòu)。采集端口的連接線減少了50倍,既節(jié)省了造價(jià),又給現(xiàn)場(chǎng)施工帶來極大的方便。
[!--empirenews.page--]
3、串行接口電路。雖然,現(xiàn)如今以太網(wǎng)通信的使用已非常普及,但由于串行通信接線少、成本低,所以其在數(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的二線制通訊方式可實(shí)現(xiàn)真正的多點(diǎn)雙向通信。
4、自動(dòng)調(diào)亮電路。在環(huán)境光線較弱時(shí),LED屏的亮度應(yīng)相應(yīng)降低,否則會(huì)顯得刺眼。而在環(huán)境光線較強(qiáng)時(shí),LED屏的亮度也應(yīng)相應(yīng)提高,否則屏幕顯示內(nèi)容會(huì)看不清楚。所以控制器需根據(jù)周圍光線的亮度來自動(dòng)調(diào)整量度。為了實(shí)現(xiàn)上述功能,系統(tǒng)采用了光敏電阻,與一定值電阻串聯(lián),當(dāng)外界環(huán)境光線變化時(shí),光敏電阻阻值發(fā)生變化,R2所分電壓也跟著發(fā)生變化,然后根據(jù)此電壓值來調(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來實(shí)現(xiàn),CPLD采用 Altera的EPM1270。EPM1270屬于Altera的MAX II系列。MAX II是Altera推出的迄今為止成本最低的CPLD器件。
3 LED掃描邏輯設(shè)計(jì)
LED掃描邏輯采用CPLD來實(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)行全速寫操作;⑶ 寫入地址及數(shù)據(jù)產(chǎn)生器:產(chǎn)生向顯存進(jìn)行寫操作的地址和數(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);⑹ 讀寫切換電路:對(duì)顯存的讀寫狀態(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ù)來完成,從而極大地提高系統(tǒng)的運(yùn)行速度和可靠性,并且使得程序的開發(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)行一次查詢,如果reset=1,則刪除原先建立的各窗口顯示任務(wù),然后從FLASH中讀取新的窗口個(gè)數(shù),然后依此建立新任務(wù),將每個(gè)窗口的顯示交由單個(gè)任務(wù)來控制。
圖5 系統(tǒng)程序結(jié)構(gòu)圖
[!--empirenews.page--]
1、RS485總線的集群通訊協(xié)議。其具體過程如下:首先,PC向控制器發(fā)送地址幀,地址幀采用MARK校驗(yàn)。它包括6個(gè)字節(jié),第一個(gè)字節(jié)為地址碼,控制器接收到這個(gè)字節(jié)后,先判斷其是否與自己的地址相同,如果相同則繼續(xù)接收下一個(gè)字節(jié),否則就退出中斷,每個(gè)控制器的地址可通過控制器上的撥碼開關(guān)來設(shè)置。接下來的三個(gè)字節(jié)為屏參數(shù),他主要包括屏的橫向點(diǎn)數(shù)、縱向點(diǎn)數(shù)和顯示屏的色彩(單、雙色)??刂破鹘邮盏竭@幾個(gè)參數(shù)后,先與自身參數(shù)進(jìn)行比較,如果參數(shù)不相同則退出中斷,否則繼續(xù)接收下一個(gè)字節(jié)。接下來發(fā)送的一個(gè)字節(jié)為操作碼,它主要是告訴控制器下面是要進(jìn)行什么樣的操作,這些操作包括加載屏參、系統(tǒng)復(fù)位、加載數(shù)據(jù)、開關(guān)機(jī)等??刂破鲿?huì)根據(jù)操作碼來對(duì)Flash進(jìn)行操作。
2、GUI接口的設(shè)計(jì)。GUI為Graphic User Interface的縮寫,即圖形用戶接口。它是建立在計(jì)算機(jī)圖形學(xué)基礎(chǔ)上的產(chǎn)物,它可用于提高人機(jī)交互友好性,在LED屏上我們可以用它來實(shí)現(xiàn)許多意想不到的效果。這里提供了在LED屏上最基本的畫點(diǎn)、線、圓等功能。
(1) 畫點(diǎn)函數(shù)。一切圖形都是由一個(gè)一個(gè)點(diǎn)來組成的,它是圖形的最基本元素,描述一個(gè)點(diǎn)時(shí)需要使用其坐標(biāo)值(X,Y)和顏色。對(duì)于雙色LED屏顏色值0表示綠色,1表色紅色,2表示黃色。在畫點(diǎn)時(shí),先把指定的點(diǎn)坐標(biāo)值轉(zhuǎn)換為顯存上的對(duì)應(yīng)字節(jié),然后對(duì)相應(yīng)字節(jié)進(jìn)行顏色處理。然后在將此字節(jié)寫入顯存完成該點(diǎn)的顯示。(2) 畫線函數(shù)。對(duì)于直線的繪畫,分為水平線、垂直線和一般直線3種繪畫方法。其實(shí)一般直線就包括水平直線和垂直線,但由于這兩種直線較為特殊,繪畫操作不需要像其他直線一樣須進(jìn)行較多的運(yùn)算,故將它們分開有利于提高繪畫的速度。
本文作者創(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