陸偉國,龐馥珊
(1.蘇州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,蘇州 215000, 2.蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院)
?
陸偉國1,龐馥珊2
(1.蘇州大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,蘇州 215000, 2.蘇州經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院)
摘要:設(shè)計了一套基于KW01芯片的無線LED顯示屏控制系統(tǒng),內(nèi)嵌實時操作系統(tǒng)MQX,可以用來無線控制LED顯示屏的字符顯示等。整個系統(tǒng)包括一塊128×256點陣的LED顯示屏、主控模塊和轉(zhuǎn)發(fā)模塊、PC上位機軟件等。本系統(tǒng)以飛思卡爾公司的KW01芯片作為無線通信節(jié)點的收發(fā)芯片,其內(nèi)部集成了一個UHF射頻收發(fā)器SX1233,每個節(jié)點配以一個擴展底座引出其功能引腳,通過無線射頻(Sub-1 GHz頻段)實現(xiàn)PC端與主控端的數(shù)據(jù)傳輸。經(jīng)反復(fù)測試,該系統(tǒng)具有靈活性強、通信穩(wěn)定、操作簡單等特點。
關(guān)鍵詞:LED顯示屏;KW01;無線射頻;MQX
引言
傳統(tǒng)LED顯示屏的控制方式有很多種:一種是通過數(shù)據(jù)線直接連接計算機和LED屏控制器,通常以RS232作為數(shù)據(jù)傳送標準,這種做法不僅有距離限制(一般不超過十幾米),而且最高波特率一般不超過115 200 bps,較低的傳輸速率制約了LED顯示屏的及時更新,因而不能實現(xiàn)遠程信息實時更新;一種是脫機方式(例如U盤式控制卡),如果需要更新顯示內(nèi)容,需要人工更換控制卡上的U盤或者信息存儲卡;另一種是基于GPRS無線通信的控制系統(tǒng),雖然很好地解決了遠程信息發(fā)布和大規(guī)模組網(wǎng)等技術(shù)難題,但其成本較高,而且穩(wěn)定性差[3]。
為此,本文提出了一種基于KW01的無線LED控制系統(tǒng),主要功能是無線更新LED顯示屏內(nèi)容,對無線LED控制的研究具有一定參考價值。
1總體設(shè)計
基于KW01的無線LED控制系統(tǒng)包括LED顯示屏、主控模塊、轉(zhuǎn)發(fā)模塊、PC上位機軟件。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。其中,LED顯示屏由P10單元板通過數(shù)據(jù)線連接組成,共8行,每行8塊;主控模塊及轉(zhuǎn)發(fā)模塊各包括一個KW01節(jié)點和一個擴展底座,兩個KW01節(jié)點應(yīng)該具有相同的硬件過濾地址。PC上位機軟件主要負責(zé)提取字模、發(fā)送數(shù)據(jù)幀。
圖1 LED控制系統(tǒng)框圖
2硬件設(shè)計
2.1LED顯示屏
2.1.174HC595D移位寄存器
采用74HC595DLED實現(xiàn)顯示屏列驅(qū)動電路。74HC595D內(nèi)部集成一個8位的串行輸入移位寄存器和一個8位并行輸出鎖存器。每塊P10單元板有16個74HC595D芯片,每個芯片對應(yīng)4×8個點陣。其操作原理是:時鐘線SHCP產(chǎn)生一個上升沿,觸發(fā)數(shù)據(jù)線Ds引腳接收一位數(shù)據(jù),進入該移位寄存器。如果此時接收到的數(shù)據(jù)超過了8位,那么74HC595D芯片將通過Q7′引腳將溢出的那位數(shù)據(jù)傳遞給下一個級聯(lián)芯片的Ds引腳,并移入74HC595D。鎖存線STcp產(chǎn)生一個上升沿,移位寄存器中的數(shù)據(jù)將鎖存并被發(fā)送至Q0~Q7引腳,準備顯示。OE引腳是低電平使能,如果將使能線OE置低,結(jié)合行選信號,則P10單元板在選中行顯示Q0~Q7引腳上的數(shù)據(jù)。其引腳分布圖略——編者注。
2.1.274HC138D譯碼器
圖2 74HC138D譯碼器引腳分布圖
74HC138D芯片用來實現(xiàn)LED顯示屏的行掃描電路,如圖2所示。74HC138D芯片可以分為3個部分:使能端、選擇端和輸出端。其功能就是接收來自12接口的A、B、C行選線信號,對其特定含義進行“翻譯”,轉(zhuǎn)換成相應(yīng)的行掃描信號,低電平有效。
由于P10單元板屬于1/4掃描方式,所以在74HC138D的輸出端再接4片4953SS以增強行驅(qū)動能力,從而驅(qū)動一組發(fā)光二極管。事實上只用到了A、B兩條行選信號線,經(jīng)譯碼后產(chǎn)生4位輸出信號,每次選擇一片4953SS,掃描對應(yīng)的一組4行的LED燈。
2.1.312接口
本系統(tǒng)使用的P10單元板是單紅色的,使用12接口,兩根數(shù)據(jù)線,僅使用到其中一根。在安裝LED顯示屏之前,應(yīng)該首先確定接口的類型,12接口和08接口直接相連。
實際上12接口相當于連接KW01節(jié)點與P10單元板上相關(guān)芯片的一個橋梁。所以,只要對12接口對應(yīng)的引腳進行編程,就可以實現(xiàn)主控制卡對LED顯示屏的控制。12接口和P10單元板上74HC595D和74HC138D芯片引腳的對應(yīng)關(guān)系略——編者注。
2.1.4工作原理
由于構(gòu)成顯示屏的LED燈數(shù)目較多,因此一般選擇掃描的方式進行信息顯示。P10單元板屬于1/4掃描方式,即每次只掃一行,從第一行開始,按順序?qū)Ω餍羞M行掃描,分4次掃描完成。一個掃描周期之后重新開始對第一行進行掃描,只要刷新的頻率足夠快,由于視覺暫留,就不會感覺到掃描所造成的閃爍。
其驅(qū)動主要分為行掃描驅(qū)動和列掃描驅(qū)動,分別由74HC138D和74HC595D控制。顯示控制可以分為送數(shù)據(jù)過程和顯示過程,控制卡通過12接口將數(shù)據(jù)串行輸入至第一個74HC595D,并級聯(lián)至之后每個74HC595D。直到一整行數(shù)據(jù)接收完畢,才觸發(fā)鎖存信號,將數(shù)據(jù)信號送上列線,配合上行選信號,將當前行的信息顯示出來。
2.2主控模塊
2.2.1MCU芯片選型
芯片的選型是一個關(guān)鍵的步驟,將直接影響到最終產(chǎn)品的整體性能及其可擴展性。本系統(tǒng)中控制LED顯示屏的主控節(jié)點是以KW01芯片為基礎(chǔ)的,該芯片是一款基于ARM Cortex-M0+內(nèi)核的無線射頻芯片解決方案,支持290~340 MHz、424~510 MHz以及862~1020 MHz的無線頻段,具有低功耗、低成本、高度集成、通信穩(wěn)定等特點,適用于諸如智能家居、智能城市等多種物聯(lián)網(wǎng)產(chǎn)品的研究與開發(fā)[4]。
2.2.2射頻模塊
KW01芯片內(nèi)部集成無線射頻收發(fā)器SX1233,工作于Sub-1 GHz無線頻段下,具有極低功耗,接收模式下的電流約為16 mA,待機模式下的電流約為100 nA。按照嵌入式系統(tǒng)硬件構(gòu)件化設(shè)計原則,且考慮到信號增益、低通濾波、信號反射和特性阻抗匹配等設(shè)計要素,采用二階橢圓函數(shù)低通濾波器,并結(jié)合雙L形匹配網(wǎng)絡(luò)的方式設(shè)計射頻前端電路[5],其Sub-1 GHz無線射頻前端電路設(shè)計見圖3。
圖3 無線射頻模塊
2.2.3主控模塊與12接口引腳連線
為了使KW01芯片引腳與12接口引腳相連,通過對引腳的編程實現(xiàn)控制整個128×256點陣的LED顯示屏,設(shè)計了一塊擴展底板。其主要是對核心板的引腳進行對接以及提供核心板的供電電源,基本包含了核心板對外的基本接口及功能。
本系統(tǒng)采用12接口連接方式,其與KW01芯片的引腳連接方式如圖4所示。
圖4 擴展底座12接口
2.3電源供應(yīng)
主控節(jié)點的工作電壓為5 V,與P10單元板上的工作電壓相同,為了保證電壓穩(wěn)定,系統(tǒng)使用4個級聯(lián)的5 V、20 A的電源,每個電源為8塊P10單元板供電,同時給主控節(jié)點提供電源。
3軟件設(shè)計
軟件設(shè)計主要包括PC上位機程序以及主控節(jié)點程序。PC上位機與MCU之間的數(shù)據(jù)幀收發(fā)過程如圖5所示。
圖5 數(shù)據(jù)幀收發(fā)過程
3.1補發(fā)幀機制
在MCU軟件中設(shè)置標記緩沖區(qū)flag_Buf[],共50 B,每一位的值1代表該數(shù)據(jù)幀接收成功;0則代表該幀數(shù)據(jù)丟失,需要補發(fā)。例如緩沖區(qū)第1個字節(jié)flag_Buf[0]第7位代表第1幀數(shù)據(jù)接收狀況,flag_Buf[0]第6位代表第2幀數(shù)據(jù),以此類推,flag_Buf[0]第0位代表第8幀。如圖6所示,第5、10、13幀丟失需要重發(fā)。
主控節(jié)點在成功接收到發(fā)來的數(shù)據(jù)后,寫入Flash空間的同時設(shè)置標志緩沖區(qū):
flag_buf[(幀號-1)/8]=flag_buf[(幀號-1)/8]|(0x01<<(7-(幀號-1)%8))
在接收完所有數(shù)據(jù)后主控MCU反饋接收狀態(tài),然后PC上位機軟件根據(jù)收回的反饋幀找到丟失的幀號,補發(fā)對應(yīng)幀,從而實現(xiàn)丟幀自動補發(fā)的機制。
3.2位操作引擎
由于P10單元板的掃描方式是1/4掃的,所以一旦數(shù)據(jù)量變大,刷新的頻率不夠,人們就會感覺到屏幕上的字符在閃爍,為此用到了位操作引擎。
位操作引擎BME(Bit Manipulation Engine)為基于Cortex-M0+微控制器的外設(shè)地址空間的位進行“讀—改—寫”操作提供了硬件支持,這種架構(gòu)又叫做封裝式存儲[6]。其目標是使外設(shè)寄存器的n個位一起操作,可以通過普通的加載/存儲操作來對某一特定位進行讀/寫[7],使得底層代碼的執(zhí)行效率有了大大提高。
對部分代碼反匯編進行對比,可以發(fā)現(xiàn)使用BME技術(shù)比原有“讀—改—寫”方法占用代碼空間更小,執(zhí)行效率更高。代碼如下:
//BME操作,拉低LED_CLK引腳,即PORTE的19引腳。
U32temp=(*( volatile unsigned long int *)(unsigned long int) 0x4A6FF100);
5c2a: 4b1eldr r3, [pc, #120]; (5ca4
5c2c: 681cldr r4, [r3, #0]
//普通操作,首先找到PORTE的GPIO基地址,然后拉低輸出引腳
volatile uint_32 *PE=(uint_32*)0x400FF100u;
5c20: 4b22ldr r3, [pc, #136]; (5cac
5c22: 60fbstr r3, [r7, #12]
*PE &= ~(1<<19);
5c2a: 68fbldr r3, [r7, #12]
5c2c: 681aldr r2, [r3, #0]
5c2e: 4b20ldr r3, [pc, #128];(5cb0
5c30: 401aands r2, r3
5c32: 68fbldr r3, [r7, #12]
5c34: 601astr r2, [r3, #0]
3.3MQX操作系統(tǒng)
圖6 幀標記
MQX是1989年P(guān)recise Software Technologies公司開發(fā)的一款面向工業(yè)控制、汽車電子等領(lǐng)域的多任務(wù)、多處理器的嵌入式實時操作系統(tǒng)(RTOS)[8],具有代碼開源、成本低、可裁減性和可移植性、占用ROM空間少、外設(shè)驅(qū)動豐富等特點[9]。
任務(wù)(TASK)是RTOS中最重要的操作對象,是操作系統(tǒng)的基本組成元素。任一時刻,有且僅有一個任務(wù)會處于運行狀態(tài),控制CPU資源。把整個LED顯示屏任務(wù)主要分解成3個任務(wù):①task_led任務(wù),負責(zé)控制LED顯示屏顯示字符;②task_rf_recv任務(wù),負責(zé)接收PC端無線發(fā)送過來的數(shù)據(jù)并處理;③task_rf_send任務(wù),返回標志緩沖區(qū)數(shù)據(jù)給PC端,判斷數(shù)據(jù)幀接收狀況。
MQX通過任務(wù)模板列表定義一組初始化模板(其中必須有一個自啟動任務(wù)task_main),基于該模板,任務(wù)可以在處理器上被創(chuàng)建,每個任務(wù)都會有其優(yōu)先級,有時優(yōu)先級可以改變。初始化時,MQX查找任務(wù)模板的自啟動任務(wù)并生成其他任務(wù)。
任務(wù)間的通信機制使得多任務(wù)間能夠相互同步和通信,從而協(xié)調(diào)各個任務(wù)調(diào)用的主要手段[10]。本設(shè)計主要用到了它的事件位機制,例如,主控模塊在接收到數(shù)據(jù)之后,會產(chǎn)生GPIO中斷,此時置RF接收事件位,通知task_rf_recv任務(wù)可以得到執(zhí)行,該任務(wù)狀態(tài)從阻塞態(tài)變?yōu)檫\行態(tài),而之前正在執(zhí)行的任務(wù)將會被阻塞。
4實驗與分析
在編寫程序之前,首先對硬件設(shè)備進行了測試,確保電源電壓模塊正常,使用的LED顯示屏無壞點,RF模塊通信正常。在整套系統(tǒng)建立好之后,就進入了系統(tǒng)的測試環(huán)節(jié)。如圖7所示,打開軟件,單擊“打開串口”按鈕,自動獲取星期及天氣狀況等信息;在文本框中,用戶可根據(jù)需要編輯內(nèi)容,然后單擊“一鍵發(fā)送”即可。接收框中返回LED顯示屏主控模塊的接收狀況。
結(jié)語
通過對以往LED顯示屏控制系統(tǒng)的傳輸控制方式、LED顯示屏的顯示原理進行了分析與研究以后,設(shè)計了一種LED顯示屏控制系統(tǒng)。控制系統(tǒng)選用32位的KW01芯片作為主控芯片,實現(xiàn)了采用Sub-1 GHz進行數(shù)據(jù)傳輸?shù)耐ㄐ欧绞剑栽龃髷?shù)據(jù)傳輸量、簡化字符更新操作、節(jié)約人力成本,用戶可隨時對控制卡進行操作。另外,后期將根據(jù)光敏傳感器所采集的光線強度數(shù)據(jù)來調(diào)整亮暗的顯示時間占空比,從而根據(jù)應(yīng)用環(huán)境,自動更新LED顯示屏的亮度。經(jīng)多次測試表明,該系統(tǒng)通信穩(wěn)定、抗干擾能力強、具有良好的市場前景。
參考文獻
[1] 高敏.LED 顯示屏發(fā)展綜述[J].電子制作, 2015(8).
[2] 路微.LED 顯示屏的特點與發(fā)展趨勢[J].電子世界, 2014(14):9.
[3] 彭俊.基于無線數(shù)據(jù)傳輸?shù)腖ED顯示屏設(shè)計與實現(xiàn)[D].長沙:湖南大學(xué), 2013.
[4] Freescale.MKW01RM.[EB/OL].[2015-07].http://www.freescale.com/,2013.
[5] 胡宗棠.基于Cortex-M0+內(nèi)核Kinetis無線射頻模塊的應(yīng)用研究[D].蘇州:蘇州大學(xué), 2014.
[6] 王宜懷等.嵌入式技術(shù)基礎(chǔ)與實踐—ARM Cortex-M0+ Kinetis L系列微控制器[M].北京:清華大學(xué)出版社,2013.
[7] Freescale.KEA128 Sub-Family Reference Manual Rev 2,2014.
[8] Wikipedia.MQX[EB/OL].[2015-07].http://en.wikipedia.org/wiki/MQX.
[9] Freescale.Freescale MQX RTOS 4.0.0 Release Notes[EB/OL].[2015-07].http://www.freescale.com/mqx.
[10] 程玉娟.嵌入式實時操作系統(tǒng)MQX的內(nèi)核分析及應(yīng)用研究[D].蘇州:蘇州大學(xué), 2011.
陸偉國(研究生)、龐馥珊(講師),從事嵌入式研究工作。
Lu Weiguo1,Pang Fushan2
(1.Compnter Science and Technology, Soochow University, Suzhou 215000, China; 2.Suzhou Institute of Trade)
Abstract:A wireless LED screen control system based on KW01 chip is designed,which is embedded the RTOS MQX and can be used to wireless control the LED display.The system uses Freescale’s KW01 chip as the wireless communication node’s transceiver chip,which integrates a UHF radio transceiver SX1233.Each node comes with a docking that can lead to its function pins.The design can achieve the data transmission between the PC and the master module with the radio frequency(Sub-1 GHz band).The test results prove that the system is flexible,stable to communicate,easy to operate.
Key words:LED screen;KW01;radio frequency;MQX
收稿日期:(責(zé)任編輯:楊迪娜2015-07-20)
中圖分類號:TP302.1
文獻標識碼:A