蓋之華+蔣瑾
摘要:本文設(shè)計了一套通過無線通信技術(shù)控制LED顯示屏的系統(tǒng),利用WSCN節(jié)點程序的在線維護(hù)功能,通過PC端監(jiān)控軟件將要顯示的文字發(fā)送到控制板,實現(xiàn)對顯示屏顯示內(nèi)容的修改,實現(xiàn)LED顯示屏控制板程序代碼的遠(yuǎn)程更新,與人工現(xiàn)場更新相比,顯著地提高了更新的效率,簡化了更新的工作量。
關(guān)鍵詞:WSCN;遠(yuǎn)程代碼更新;通信協(xié)議
中圖分類號:TP319 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)01-0229-02
隨著社會發(fā)展,越來越多場合需要LED顯示屏進(jìn)行文字、圖片或視頻的顯示,LED顯示屏的穩(wěn)定顯示是由控制板程序決定,傳統(tǒng)的LED顯示屏控制板燒寫好程序后,可通過串口或網(wǎng)口進(jìn)行顯示屏內(nèi)容的更新,但無法對控制板程序進(jìn)行代碼更新,因此當(dāng)程序發(fā)生錯誤或者需要對顯示效果進(jìn)行功能升級時,只能取下控制板進(jìn)行程序的擦除和燒寫。
一般情況下,LED顯示屏都被安裝在復(fù)雜的地理環(huán)境下,例如高樓外墻上、高速路段,當(dāng)顯示屏控制板上主控芯片程序出問題或需要功能升級時,需要現(xiàn)場取下控制板。然而為了防水等因素,通??刂瓢灞辉O(shè)計在LED顯示屏背部,取下它比較麻煩,會耗費大量的人力物力。因此,對LED顯示屏控制板的程序?qū)崿F(xiàn)在線更新具有很大的應(yīng)用前景和價值。
1遠(yuǎn)程更新系統(tǒng)設(shè)計
基于物聯(lián)網(wǎng)三層體系結(jié)構(gòu)設(shè)計了遠(yuǎn)程代碼更新系統(tǒng),系統(tǒng)結(jié)構(gòu)如圖1所示。其中感知層包括無線傳感器控制網(wǎng)絡(luò)中的傳感節(jié)點(WSCN節(jié)點)和連接無線傳感器控制網(wǎng)絡(luò)、移動通信網(wǎng)絡(luò)的網(wǎng)關(guān)。網(wǎng)絡(luò)層主要是數(shù)據(jù)傳輸?shù)拿浇?,包括移動通信網(wǎng)絡(luò)和互聯(lián)網(wǎng)。
感知層的WSCN節(jié)點選擇了基于IEEE802.15.4標(biāo)準(zhǔn)的硬件,通過更新引導(dǎo)程序的設(shè)計來實現(xiàn)具體的代碼更新。感知層的網(wǎng)關(guān)選擇了GPRS移動通信技術(shù)將感知層采集獲取的數(shù)據(jù)傳輸?shù)椒?wù)器。網(wǎng)關(guān)主要包括三個實體部分:主控模塊、移動通信模塊和路由節(jié)點。網(wǎng)關(guān)與服務(wù)器間雙向通信通過移動通信模塊實現(xiàn),網(wǎng)關(guān)與WSCN節(jié)點間雙向通信通過路由節(jié)點實現(xiàn)。
2 WSCN節(jié)點代碼更新機(jī)制設(shè)計
基于遠(yuǎn)程更新系統(tǒng)設(shè)計,可實現(xiàn)LED顯示屏控制板程序的無線更新。具體實現(xiàn)方法是對LED顯示屏的控制板程序進(jìn)行重新設(shè)計,在FLASH首地址加入更新引導(dǎo)程序[1],將原先的LED控制程序進(jìn)行相應(yīng)修改配合更新引導(dǎo)程序的運行。
為模擬網(wǎng)關(guān)更新WSCN節(jié)點的程序,本研究設(shè)計了節(jié)點代碼更新機(jī)制,并給出了一套串口和無線射頻等技術(shù)相結(jié)合的WSCN節(jié)點代碼更新簡易結(jié)構(gòu)。用戶可以在PC機(jī)代碼更新軟件上選擇相應(yīng)WSCN節(jié)點進(jìn)行高效、可靠的代碼更新,結(jié)構(gòu)如圖2所示。其中,PC機(jī)與路由節(jié)點相當(dāng)于網(wǎng)關(guān)的主控模塊和路由節(jié)點,PC機(jī)通過路由節(jié)點實現(xiàn)與WSCN節(jié)點的數(shù)據(jù)交互。PC機(jī)與路由節(jié)點間通過USB轉(zhuǎn)串口線進(jìn)行連接,線的USB口端連接PC機(jī),線的串口端連接路由節(jié)點的串口。路由節(jié)點和WSCN節(jié)點使用硬件相同的無線射頻模塊[2]。
整個更新機(jī)制的過程為PC機(jī)代碼更新軟件打開并解析待傳輸?shù)臋C(jī)器碼文件,分包組幀后通過路由節(jié)點轉(zhuǎn)發(fā)給WSCN節(jié)點,WSCN節(jié)點接收完成且校驗正確后實現(xiàn)代碼更新。整個架構(gòu)中WSCN節(jié)點的程序設(shè)計是整個遠(yuǎn)程代碼更新系統(tǒng)的關(guān)鍵,路由節(jié)點及PC機(jī)軟件的設(shè)計是為了驗證WSCN節(jié)點程序設(shè)計的正確性。
通過PC機(jī)代碼更新軟件打開待更新的機(jī)器碼,解析并提取出有效數(shù)據(jù),分組組幀后通過串口發(fā)送給轉(zhuǎn)發(fā)節(jié)點。轉(zhuǎn)發(fā)節(jié)點將收到的命令或數(shù)據(jù)幀通過Sub-1G無線通信技術(shù)發(fā)送給LED顯示屏的控制節(jié)點,控制節(jié)點收到幀數(shù)據(jù)后會比較目標(biāo)節(jié)點地址與自身地址,若兩個地址相同則節(jié)點接收該命令或數(shù)據(jù)幀,否則丟棄。LED顯示屏控制節(jié)點開始收到的是更新命令幀,此時控制節(jié)點會調(diào)用內(nèi)核頭文件中的軟件復(fù)位函數(shù)進(jìn)行軟件復(fù)位,程序從用戶程序跳轉(zhuǎn)到從FLASH首地址存放的更新引導(dǎo)程序中執(zhí)行[3]。
LED顯示屏系統(tǒng)中控制板程序代碼更新軟件直接使用了WSCN節(jié)點更新機(jī)制架構(gòu)中PC機(jī)代碼更新軟件,后期可將該軟件的功能移植到LED顯示屏監(jiān)控軟件中,方便LED顯示屏內(nèi)容的更改和控制板程序的無線更新。
3 LED系統(tǒng)的遠(yuǎn)程更新設(shè)計
基于上述遠(yuǎn)程代碼更新系統(tǒng)的設(shè)計,只需在LED顯示屏控制系統(tǒng)中增加網(wǎng)關(guān)和服務(wù)器端監(jiān)控軟件,網(wǎng)關(guān)主要用于進(jìn)行遠(yuǎn)程數(shù)據(jù)的傳輸,服務(wù)器端監(jiān)控軟件主要進(jìn)行遠(yuǎn)程代碼更新的控制和數(shù)據(jù)命令的發(fā)送接收。同時,LED顯示屏控制程序中也需增加更新引導(dǎo)程序并修改用戶程序配合更新引導(dǎo)程序的執(zhí)行。LED顯示屏控制系統(tǒng)的遠(yuǎn)程代碼更新結(jié)構(gòu)如圖3所示。
服務(wù)器的管理軟件和LED顯示屏控制節(jié)點間通信需要經(jīng)過服務(wù)器通信軟件和網(wǎng)關(guān)。通信軟件與網(wǎng)關(guān)間的通信協(xié)議為RCUCP,網(wǎng)關(guān)與控制LED顯示屏的WSCN節(jié)點間的通信協(xié)議為WCUCP[4]。用戶通過管理軟件實現(xiàn)對LED顯示屏控制板程序的更新,當(dāng)通信軟件收到更新命令則將機(jī)器碼解析組幀后通過GPRS技術(shù)發(fā)送給網(wǎng)關(guān),網(wǎng)關(guān)接收數(shù)據(jù)處理后再通過Sub-1G無線通信技術(shù)發(fā)送給各WSCN節(jié)點[5]。丟幀重傳和防沖突機(jī)制保證了各控制LED屏顯示的WSCN節(jié)點接收到所有的數(shù)據(jù)幀,進(jìn)而更新引導(dǎo)程序能實現(xiàn)代碼的可靠更新。
LED顯示屏控制系統(tǒng)的遠(yuǎn)程更新結(jié)構(gòu)搭建好后,選取了實驗室的兩塊LED顯示屏,分別對它們的控制板程序進(jìn)行代碼更新,其中更新的機(jī)器碼大小為41KB。經(jīng)過10次試驗,兩塊LED顯示屏控制板程序成功更新的時間相近,平均值分別為361秒和358秒。實驗結(jié)果表明,遠(yuǎn)程代碼更新技術(shù)適用于遠(yuǎn)程更新LED顯示屏的控制板程序且效果良好。PC端顯示屏監(jiān)控軟件界面見圖4:
4 小結(jié)
為了驗證本文設(shè)計的WSCN代碼更新機(jī)制及遠(yuǎn)程代碼更新系統(tǒng)的可行性,本研究為LED顯示屏控制系統(tǒng)中增加了無線代碼更新技術(shù),實現(xiàn)了LED顯示屏控制板程序的無線更新。同時,本研究也將設(shè)計好的服務(wù)器端軟件及網(wǎng)關(guān)加入到LED顯示屏控制系統(tǒng)中,驗證了遠(yuǎn)程代碼更新系統(tǒng)的實用性。
參考文獻(xiàn):
[1] 王宜懷,朱仕浪,郭蕓.嵌入式技術(shù)基礎(chǔ)與實踐(第3版)[M].北京:清華大學(xué)出版社,2013.
[2] 胡宗棠,王宜懷,沈忱.面向MC1321X的低開銷無線重編程機(jī)制的研究與設(shè)計[J].計算機(jī)應(yīng)用與軟件,2014,31(12):272-277.
[3] 顧會光,王宜懷,史新峰.數(shù)據(jù)無損的遠(yuǎn)程代碼更新的設(shè)計與研究[J].計算機(jī)工程與設(shè)計,2015(10):2633-2639.
[4] 黃海寶,吳學(xué)杰,高艷艷.基于STM32F103局域網(wǎng)遠(yuǎn)程更新技術(shù)的實現(xiàn)[J].工業(yè)控制計算機(jī),2012(12):97-98.
[5] 王方方,易靈芝,陳海燕等.基于以太網(wǎng)的嵌入式交流伺服驅(qū)動系統(tǒng)實現(xiàn)[J].計算機(jī)工程,2012,38(13):218-220,227.