童世華,李 毅*,謝 磊
(1.重慶電子工程職業(yè)學院,重慶 401331;2.重慶郵電大學,重慶 400065)
無線傳感器網(wǎng)絡節(jié)點遠程升級設計與實現(xiàn)*
童世華1,李 毅1*,謝 磊2
(1.重慶電子工程職業(yè)學院,重慶 401331;2.重慶郵電大學,重慶 400065)
針對無線傳感器網(wǎng)絡節(jié)點升級困難的現(xiàn)狀,提出了一種基于IAP(In Application Programming)技術(shù)實現(xiàn)對無線傳感器網(wǎng)絡節(jié)點自身程序?qū)嵭羞h程升級的解決方案。方案結(jié)合現(xiàn)有的單片機IAP技術(shù)、無線傳感器網(wǎng)絡技術(shù)以及以太網(wǎng),以網(wǎng)絡控制器為設計核心,設計支持IAP的無線傳感器網(wǎng)絡節(jié)點,并實現(xiàn)基于MFC的上位機軟件用于解析和下發(fā)節(jié)點文件。測試結(jié)果表明,該方案解決了無線傳感器網(wǎng)絡節(jié)點升級困難問題,具有良好的應用前景。
物聯(lián)網(wǎng);無線網(wǎng)絡節(jié)點;遠程升級;IAP;LwIP
無線傳感器網(wǎng)絡(簡稱WSN)被認為是信息感知與采集的一場革命,是21世紀高新技術(shù)領(lǐng)域的四大支柱產(chǎn)業(yè)之一。無線傳感器網(wǎng)絡應用非常廣泛,在實際應用中常常因無線傳感器網(wǎng)絡節(jié)點功能的變化而需要進行升級。無線傳感器網(wǎng)絡往往規(guī)模較大、工作環(huán)境復雜,節(jié)點一旦部署,其管理和維護就會變得十分困難。傳統(tǒng)的節(jié)點升級方式是將部署的節(jié)點全部收回,這樣的方式會耗費巨大的人力和財力。針對無線傳感器網(wǎng)絡節(jié)點升級困難的現(xiàn)狀,提出一種基于IAP的無線傳感器網(wǎng)絡節(jié)點遠程升級的設計方案[1],有較好的應用價值和廣闊的應用市場。
本系統(tǒng)采用基于IAP技術(shù)實現(xiàn)對無線傳感器網(wǎng)絡節(jié)點自身程序?qū)嵭羞h程升級的解決方案。因此,節(jié)點升級采用整個節(jié)點的更新模式,即用新節(jié)點完全覆蓋舊節(jié)點,當新節(jié)點數(shù)據(jù)接收完畢并校驗無誤后,直接對原有的節(jié)點FLASH存儲區(qū)進行擦寫完成節(jié)點升級。遠程更新節(jié)點主要由遠程主機借助以太網(wǎng)和無線傳感網(wǎng)將數(shù)據(jù)轉(zhuǎn)發(fā)至節(jié)點,節(jié)點通過相應的接口(USART、SPI等)接收節(jié)點下發(fā)數(shù)據(jù),再利用的IAP技術(shù)將節(jié)點下發(fā)數(shù)據(jù)在線寫入片內(nèi)FLASH并引導程序指針執(zhí)行新寫入節(jié)點的數(shù)據(jù)完成升級。系統(tǒng)總體設計方案的架構(gòu)如圖1所示[2-5]。其中網(wǎng)絡控制器負責異構(gòu)網(wǎng)數(shù)據(jù)的轉(zhuǎn)發(fā)與存儲,節(jié)點更新數(shù)據(jù)先由遠程主機通過互聯(lián)網(wǎng)下發(fā)至網(wǎng)絡控制器,網(wǎng)絡控制器對接收到的節(jié)點更新數(shù)據(jù)進行校驗與存儲,再通過無線傳感器網(wǎng)絡轉(zhuǎn)發(fā)至目標節(jié)點。
圖1 系統(tǒng)結(jié)構(gòu)示意圖
無線傳感器網(wǎng)絡節(jié)點遠程升級系統(tǒng)由遠程主機、網(wǎng)絡控制器和無線傳感器網(wǎng)絡節(jié)點3部分組成[6-7]。硬件包含網(wǎng)絡控制器和無線網(wǎng)絡節(jié)點兩個部分。網(wǎng)絡控制器硬件由主控、網(wǎng)卡和無線通信模塊3個部分組成。其中,網(wǎng)卡負責實現(xiàn)以太網(wǎng)數(shù)據(jù)收發(fā),無線通信模塊實現(xiàn)網(wǎng)絡控制器接入無線傳感器網(wǎng)絡,二者通過通信接口與主控通信。軟件部分包含網(wǎng)絡控制器軟件設計、節(jié)點軟件設計以及上位機軟件設計。網(wǎng)絡控制器通過移植嵌入TCP/IP協(xié)議棧實現(xiàn)以太網(wǎng)通信;節(jié)點軟件包括無線通信協(xié)議、射頻驅(qū)動和傳感器驅(qū)動,在此基礎(chǔ)上設計Bootloader程序完成節(jié)點IAP過程;上位機主要完成節(jié)點更新數(shù)據(jù)解析與下發(fā),創(chuàng)建Socket套接字監(jiān)聽來自網(wǎng)絡控制器的連接請求,利用微軟MFC的CFile類庫實現(xiàn)目標文件的解析。
圖3 無線通信模塊插座原理圖
2.1 網(wǎng)絡控制器硬件設計
網(wǎng)絡控制器采用STM32F107VC為核心處理器,外圍配備電源電路、調(diào)試下載電路、I/O通信接口、晶振電路、無線通信模塊以及PHY芯片,硬件結(jié)構(gòu)示意圖如圖2所示。PHY芯片以RMII模式連接MCU的MAC控制器,并通過RJ45網(wǎng)口接入以太網(wǎng);無線通信模塊通過串口連接MCU,以射頻方式接入無線傳感器網(wǎng)絡。
圖2 網(wǎng)絡控制器硬件結(jié)構(gòu)示意圖
2.2 節(jié)點硬件設計
根據(jù)節(jié)點升級方案進行了節(jié)點設計,與常用節(jié)點比較唯一區(qū)別在于附加片外FLASH存儲器,用于存儲APP節(jié)點程序,由傳感單元、通信單元、處理單元、電源單元及存儲單元構(gòu)成。
節(jié)點與無線網(wǎng)絡通信采用支持315 MHz、433 MHz和470 MHz 3頻段的無線通信模塊。該模塊以STM32F103RBT6為處理器,自帶有時鐘電路、復位電路、下載電路、串口、SPI接口以及GPIO口。節(jié)點僅需設計電源電路、FLASH存儲電路、傳感器接口、無線通信模塊插座。無線通信模塊插座如圖3所示,用于接插無線通信模塊并為模塊供電,同時具有GPIO、USART1、SPI2、I2C等通信接口。考慮到節(jié)點的穩(wěn)定性,節(jié)點采用有源設計。即設計鋰電池供電,用以防掉電對節(jié)點硬件造成損害以及對升級可能造成的影響。
供電電路如圖4所示。片外FLASH存儲器存儲APP節(jié)點數(shù)據(jù)用以支持節(jié)點的IAP節(jié)點升級,以SPI的方式與無線通信模塊主控通信。傳感器采集數(shù)據(jù)通過GPIO接口實現(xiàn)上傳。
圖4 節(jié)點電源充電電路原理圖
3.1 μC/OS-Ⅱ操作系統(tǒng)的移植
軟件設計包含網(wǎng)絡控制器軟件設計、節(jié)點軟件設計以及上位機軟件設計[9-12]。為了實現(xiàn)串口數(shù)據(jù)處理及以太網(wǎng)數(shù)據(jù)處理、系統(tǒng)快速響應及高效的運行效率,網(wǎng)絡控制器的操作系統(tǒng)采用μC/OS-Ⅱ,開發(fā)環(huán)境為MDK-ARM5.12。μC/OS-Ⅱ是一種基于優(yōu)先級的搶占式多任務實時操作系統(tǒng),包含任務調(diào)度、任務管理、時間管理、任務間同步與通信(信號、郵箱和消息隊列)、內(nèi)存管理等功能,包括可裁剪、可固化、任務可剝奪、多任務等特點,具有足夠的安全性與穩(wěn)定性。
3.2 節(jié)點IAP程序設計
節(jié)點遠程升級采用在線編程,利用單片機支持的在線FLASH編程實現(xiàn)。即節(jié)點正常工作時運行功能程序區(qū),當接收到APP節(jié)點數(shù)據(jù)時,將其寫入片外FLASH。待節(jié)點接收完畢,單片機軟件復位進入Bootloader程序區(qū),Bootloader程序負責將片外FLASH中存儲的APP節(jié)點寫入功能程序區(qū)覆蓋原功能程序,再強制程序指針跳轉(zhuǎn)執(zhí)行新寫入的功能程序,完成節(jié)點升級。實現(xiàn)過程涉及到3個關(guān)鍵技術(shù):節(jié)點分片數(shù)據(jù)校驗與重組、FLASH在線編程、片內(nèi)FLASH分區(qū)與跳轉(zhuǎn)執(zhí)行[12]。
節(jié)點遠程升級過程如圖5所示。本設計將STM32的FLASH分成Bootloader、標志位和功能程序3個區(qū)。當節(jié)點MCU重啟時執(zhí)行BOOT程序,首先讀取片內(nèi)FLASH的標志位區(qū)的IAP標志。若該標志位有效則說明節(jié)點需要更新節(jié)點程序,讀取片外FLASH中的節(jié)點程序數(shù)據(jù)并將其寫入片內(nèi)功能程序區(qū),再將IAP標志位清0,然后跳轉(zhuǎn)執(zhí)行新功能程序。若BOOT程序檢測到的IAP標志無效則直接跳轉(zhuǎn)執(zhí)行功能程序。在節(jié)點執(zhí)行功能程序時若接收到APP分片數(shù)據(jù)則進行CRC校驗,校驗成功則將其寫入片外FLASH并反饋成功標志到網(wǎng)絡控制器,并請求下發(fā)下一個分片,校驗失敗則反饋失敗標志并請求重發(fā)該分片。當APP所有分片數(shù)據(jù)接收完畢,將IAP標志位置位,再軟件復位MCU,重啟后由BOOT程序完成節(jié)點新程序?qū)懭肱c跳轉(zhuǎn)執(zhí)行。
圖5 節(jié)點IAP實現(xiàn)流程圖
3.3 基于MFC的上位機軟件設計
上位機軟件采用VS2010進行設計,VS2010的工具箱提供了豐富的控件如Static Text、Edit Control、Group Box、IP Address Control等,上位機軟件設計所用到的控件均可從工具箱中拖出。打開VS2010新建MFC應用程序,在向?qū)У摹皯贸绦蝾愋汀苯缑婧汀案呒壒δ堋苯缑娣謩e勾選“基于對話框”和“Windows套接字”,點擊完成按鈕即完成基于對話框的應用程序創(chuàng)建。勾選“Windows套接字”后,會自動生成MFC Socket支持的頭文件afxsock.h,并在應用程序類的成員函數(shù)InitInstance()內(nèi)自動調(diào)用AfxSocketInit(),對Windows Sockets進行初始化。
4.1 系統(tǒng)功能測試驗證
為了驗證無線傳感網(wǎng)絡節(jié)點的遠程升級性能,搭建了如圖6所示的測試系統(tǒng),該系統(tǒng)包括6個節(jié)點、網(wǎng)絡控制器、思科路由器和PC機,PC機與網(wǎng)絡控制器通過路由器組建局域網(wǎng)。上位機的協(xié)議類型選擇TCP_Server,主機地址自動獲取,監(jiān)聽端口設置為3001,點擊“啟動服務器”開啟監(jiān)聽模式。客戶端與服務器端建立TCP連接后,節(jié)點上傳數(shù)據(jù)至上位機,上位機根據(jù)接收數(shù)據(jù)中的地址信息判斷在線節(jié)點,并加入在線節(jié)點列表。選擇需要升級的節(jié)點,并載入目標文件(選擇溫濕度傳感器節(jié)點SHT75.bin),點擊“發(fā)送文件”啟動文件并等待升級結(jié)果,結(jié)果如圖7所示。
圖6 系統(tǒng)功能測試圖
圖7 升級成功上位機界面
分別對5個節(jié)點進行升級測試,每個節(jié)點測10次,并統(tǒng)計升級成功率與平均耗時。測試結(jié)果表明:在理想條件下節(jié)點的升級成功率為100%,受WIA-PA網(wǎng)絡傳輸效率的限制升級較慢,平均用時約為70 s。同時測試了對歷史節(jié)點升級功能,測試結(jié)果表明:本設計支持歷史節(jié)點快速升級,即通過上位機下發(fā)升級指令,節(jié)點接收到指令后將片外FLASH存儲器中的節(jié)點直接寫入片內(nèi)FLASH完成升級,用時僅為1.3 s。
4.2 系統(tǒng)性能測試驗證
在分片數(shù)據(jù)下發(fā)過程中,接收端會對數(shù)據(jù)進行CRC校驗,并將校驗反饋至發(fā)送端。當校驗結(jié)果為成功時發(fā)送端繼續(xù)下發(fā)下一個分片,校驗結(jié)果失敗則重發(fā)當前分片。重發(fā)次數(shù)超過5次則認為本次升級失敗,并把結(jié)果反饋至上位機。
測試時,由上位機載入節(jié)點(以煙霧傳感器節(jié)點驅(qū)動為例,節(jié)點大小為57.9 kbyte),進行測試。5個節(jié)點4種傳輸距離,每組測試20次共進行10組,并統(tǒng)計升級成功率及平均升級耗時。測試數(shù)據(jù)如表1所示。
表1 升級結(jié)果統(tǒng)計表
測試結(jié)果表明,WIA-PA網(wǎng)絡傳輸數(shù)據(jù)丟包率較低,當通信距離為1.2 km時丟包率僅為0.7%。當數(shù)據(jù)校驗失敗時自動請求重發(fā),連續(xù)失敗5次則認為出現(xiàn)異常終止升級。當丟包率維持在較低水平時,同一分片數(shù)據(jù)連續(xù)重傳5次均出錯的幾率很低,升級成功率較高。當通信距離在2 km以內(nèi)時丟包率低升級成功率較高;當通信距離超過3 km時,升級成功率下降明顯。
本設計是在無線傳感器網(wǎng)絡的應用越來越廣泛、無線傳感器網(wǎng)絡節(jié)點更新困難的背景下,依據(jù)現(xiàn)有的IAP技術(shù)、以太網(wǎng)技術(shù)和無線傳感網(wǎng)技術(shù)提出的基于IAP的無線傳感器網(wǎng)絡節(jié)點遠程升級技術(shù)設計與實現(xiàn)方案。該方案支持節(jié)點遠程一鍵升級,相比傳統(tǒng)的節(jié)點回收更新方法節(jié)省人力財力且效率高。具有較好的應用和推廣價值。
[1] 霍文文. 無線傳感器網(wǎng)絡在線升級系統(tǒng)設計和實現(xiàn)[D]. 濟南:山東大學,2012:45-49.
[2] 洪萬帆,蘇淑靖. 基于無線傳感器網(wǎng)絡的數(shù)據(jù)采集系統(tǒng)設計[J]. 電子器件,2016,39(1):180-185.
[3] 譚勵,楊朝玉,楊明華,等. 改進的非均勻有向傳感器網(wǎng)絡節(jié)點部署方法[J]. 傳感技術(shù)學報,2015,28(12):1835-1840.
[4] 張智威,孫子文. 基于蟻群算法的無線傳感器網(wǎng)絡節(jié)點可信安全路由[J]. 傳感技術(shù)學報,2016,29(2):256-263.
[5] 李興鶴,蔡亮,宋吉波,等. STM32用戶基于IAP的程序更新技術(shù)[J]. 單片機與嵌入式系統(tǒng)應用,2012,12(1):74-75.
[6] 李景林. 基于IEEE802.15.4g的無線傳感網(wǎng)模塊設計[D]. 重慶:重慶郵電大學,2015:51-54.
[7] 吳瑞娜,張建奇,梁喜軍. 基于STM32的GPRS遠程在線升級系統(tǒng)設計與實現(xiàn)[J]. 自動化技術(shù)與應用,2015,34(12):34-37.
[8] 陸旭. 基于μC/OS-Ⅱ和LwIP的嵌入式設備監(jiān)控平臺研究[D]. 重慶:重慶大學,2013:32-34.
[9] Chan J,Su T,Li M C. Method and Apparatus for Logic Read in Flash Memory:US8614920[P]. 2013.
[10] Shen J,Shang-Chang M A,Zhang S J,et al. Serial Port Equipment Networking Technology Research Based on UCOS-Ⅱ and Lw IP[J]. Electronic Design Engineering,2015,2(10):75-78.
[11] Wang X,Liu T. Research on Subsystem Hybrid Scheduling and Priority Inversion Based uCOS-Ⅱ[J]. Journal of System Simulation,2012,19(3):117-121.
[12] Shi X F,Feng T,Zhang X M. Remote Data Acquisition System Based on Embedded RT-Thread[J]. Applied Mechanics and Materials,2012,21(24):2238-2241.
DesignandImplementationofRemoteUpgradeofWirelessSensorNetworkNode*
TONGShihua1,LIYi1*,XIELei2
(1.Chongqing College of Electronic Engineering,Chongqing 401331,China;2. Chongqing University of Posts and Telecommunications,Chongqing 400065,China)
Aiming at the difficult situation of Wireless sensor network node upgrade,a solution based on IAP(In Application Programming)technology is proposed to realize remote upgrade of wireless sensor network node’s own program. Combined with existing microcontroller IAPtechnology,wireless sensor network technology and Ethernet,the scheme uses network controller as a core and designs the wireless sensor network nodes supporting IAP and achieves PC software based MFC for analysis and distribution of firmware files. The test results show that the scheme solves the difficult problem of wireless sensor network node upgrade and has good application prospects.
internet of things;wireless network node;remote upgrade;IAP;LWIP
10.3969/j.issn.1005-9490.2017.05.045
項目來源:重慶市教育委員會2016年度科學技術(shù)研究項目(KJ1602910)
2016-08-31修改日期2016-10-22
TP273
A
1005-9490(2017)05-1287-05
童世華(1980-),男,漢族,四川瀘縣,重慶電子工程職業(yè)學院,副教授,主要從事物聯(lián)網(wǎng)、智能家居等方向研究,108457135@qq.com;
李毅(1974-),男,漢族,重慶電子工程職業(yè)學院,副教授,主要從事計算機技術(shù)應用等方向研究;
謝磊(1990-),男,漢族,重慶郵電大學,碩士研究生,主要從事物聯(lián)網(wǎng)技術(shù)應用研究。