999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C#的無線傳感網絡軟件升級技術研究

2019-10-15 02:21:53譚靖宇施偉斌
軟件導刊 2019年8期

譚靖宇 施偉斌

摘 要:隨著嵌入式技術的不斷發展,智能設備逐漸成為研究熱點,解決智能設備軟件版本升級問題至關重要。節點軟件升級系統一般分為主計算機、網關節點和傳感器節點3個部分。主計算機通過串口將要更新的軟件代碼發送到網關節點,網關節點通過無線傳感器網絡傳遞軟件代碼到傳感器節點并控制節點,以完成新版本升級。研究了CC2430芯片所適用的軟件升級系統。主計算機使用基于C#語言的窗體應用程序,將代碼的iHex文件分割成可變長數據包,提高主機和網關節點之間的代碼傳輸速率。實驗證明,該方法有效減少了主機與網關節點的代碼傳輸時間,提高了寫數據效率,可廣泛應用于智能家居及醫療監測等領域。

關鍵詞:無線傳感器網絡;C#;可變長數據包;軟件升級系統;TinyOS;CC2430

DOI:10. 11907/rjdk. 182765 開放科學(資源服務)標識碼(OSID):

中圖分類號:TP393文獻標識碼:A 文章編號:1672-7800(2019)008-0191-05

Research on Software Upgrade Technology of Wireless Sensor Network Based on C#

TAN Jing-yu,SHI Wei-bin

(College of Photoelectric Information and Computer Engineering,

University of Shanghai for Science and Techology,Shanghai 200093,China)

Abstract: With the continuous development of embedded technology, smart devices for application chips have gradually become a hot field of research, and it is very important to solve the problem of software version upgrade on smart devices. A node software upgrade system can be generally divided into three parts: upper computer, gateway node and sensor node. The host computer transmits the software code to be updated to the gateway node through the serial port, and the gateway node sends the software code to the sensor node through the wireless sensor network and controls the node to complete the new version upgrade. The software upgrade system applied to the CC2430 chip is studied. The form application that is based on the C# language is used to divide the iHex file of the code into variable-length data packets, which improves the code transmission rate between the host computer and the gateway node. The experiment proves that the method effectively reduces the code transmission time of the host computer and the gateway node, improves the efficiency of writing data, and can be widely used in the fields of smart home and medical monitoring.

Key Words:? WSNs;C#;variable length packet;software upgrade system;TinyOS; CC2430

作者簡介:譚靖宇(1993-),女,上海理工大學光電信息與計算機工程學院碩士研究生,研究方向為無線傳感器網絡;施偉斌(1967-),男,上海理工大學光電信息與計算機工程學院副教授、碩士生導師,研究方向為無線傳感器網絡。本文通訊作者:譚靖宇。

0 引言

隨著無線通信技術、傳感器技術、嵌入式技術的日趨進步,具有小尺寸、低功耗、價格低廉等優點的微型傳感器節點越來越多地運用在各種場景中。這些節點分布于檢測區域內,能以無線方式自組成傳感器網絡(Wireless Sensor Networks,WSNs)[1]。由于這些節點能夠感知和處理周圍環境消息并將數據通過無線的方式傳播,因此針對這一特點的研究很多,推動了環境監測、智能家居、醫療健康等領域的發展[2]。

代碼分發[3-4]是大量嵌入式設備升級軟件時面臨的首要問題。在一些檢測場景中節點數量龐大,部署環境惡劣,手動升級節點程序不但效率低下,而且任務繁重,通過無線傳感器網絡實現遠程軟件升級能較好解決這一問題。

代碼分發代表性研究有:針對新版本程序比舊版本改動較少的情況,文獻[5-6]計算新舊鏡像的差異,只傳輸少量差異數據,減少了能耗,但增大了恢復代碼時的計算能耗和實現難度;文獻[7]基于模塊化分析了不同的分發方法,提出了免重啟代碼更新方式,提高了代碼更新效率;文獻[8]基于多跳的Deluge協議提出了一種防止DoS攻擊的分發協議,利用信息驗證機制保證代碼分發過程安全。

隨著WSN的發展,進入遠程代碼分發技術研究階段。文獻[9]提出了基于多播樹的分發協議,各節點建立分發的路由方法,每個節點基于該路由將新數據傳輸給當前節點的子節點,最后完成整個代碼的傳輸;西安電子科技大學研究人員[10]把分發過程分為5個階段,以保證數據能完整傳輸到各節點,并用TOSSIM[11]進行了仿真實驗;浙江大學研究人員[12]將ELF文件格式(可執行與可鏈接格式)特點與WSN結合,使節點接收到新版本文件后再進行鏈接,實現了模塊化更新功能,可適用傳輸差異模塊,達到降低傳輸量的目的;文獻[13-14]同樣利用ELF文件進行代碼差異分析,僅傳輸補丁文件,到達節點后再修補鏈接。

目前研究重點基本都在分發數據的處理方式和分發協議上,一些方式雖然減少了傳輸時間和能耗,但增大了鏈接運算,如ELF為中間文件,需要額外的存儲空間,鏈接完成后不能刪除,要進一步基于文件進行分發。本文在分析代碼分發協議[15-16]基礎上,針對存儲空間較小的芯片進行WSN軟件升級技術研究,將主要的計算任務交給主機,避免了節點做大量運算,提高了軟件升級時代碼傳輸效率。同時將可變長數據包概念引入到代碼分發過程中,通過傳輸更多代碼,減少設備執行次數,提高了效率。

1 軟件升級過程

本文研究的軟件升級系統由主計算機、網關節點和傳感器節點3部分組成。主計算機程序用C#語言編寫,采用Windows平臺的Visual Studio2017進行設計。網關節點和傳感器節點安裝TI的CC2430微控制芯片[17],內置128kB閃存,可存儲多個版本的應用程序。該節點的軟件平臺選用加州大學伯克利分校研發的TinyOS操作系統[11],節點程序用nesC語言編寫[18]。為實現WSN軟件升級,需要對主計算機、網關節點以及傳感器節點分別設計,最終實現代碼從主計算機完整傳給網關節點,網關節點再分發給全網絡的傳感器節點過程。主機使用控制程序通過串口發送命令設置波特率,重啟、分配、停止等到網關節點;網關節點接到指令后作出相應動作,將需要廣播的指令或代碼分發到全網的傳感器節點;傳感器節點1,2使用分發協議接收完整程序,節點3從節點2接收轉發的新版本程序,并在接收到的整個網絡上重啟指令后啟用新版本程序,代碼分發過程如圖1所示。

圖1 WSN軟件升級過程

1.1 主計算機代碼傳輸

代碼分發系統主計算機由C#語言編寫窗體應用程序,包含設置傳輸波特率、設置數據包大小,以及發送分發、重啟、停止命令等功能,如圖2所示。

圖2 主計算機窗體軟件界面

可根據iHex文件的結構特點調整每個數據包的大小。圖3為iHex文件存儲格式。iHex文件是一個十六進制文件,每行第一字節為起始符號“:”,之后每兩個十六進制數代表一個字節。第一個字節代表本行所含數據字節的個數,第二第三字節代表本行的存儲地址。大部分數據的存儲地址是連續的,基于這個特點,可將多行合并為同一個數據包傳輸。本文主計算機軟件可選擇每個數據包中包含的行數,1-12行不等。

圖3 iHex文件存儲格式

1.2 存儲空間映射

CC2430的存儲器空間映射為外部數據存儲空間和代碼存儲空間兩個部分。CC2430有16位尋址能力,無論映射到哪個存儲空間,最大可訪問64KB,最大可訪問地址為0xFFFF,必須通過Bank映射方式才能訪問到整個128KB的Flash。

代碼存儲空間分為統一映射和非統一映射,由MEMCTR寄存器的MUNIF位進行控制。芯片復位時從0x0000開始運行。

外部數據存儲器主要對硬件寄存器以及SRAM進行讀寫操作。讀取Flash需要改變代碼存儲空間的映射方式,把高位地址映射到對應的Bank,即可從此Bank里讀取數據,讀取數據后要返回代碼運行現場。因為代碼存儲器為只讀形式,所以對Flash執行寫操作只能通過CC2430內部的Flash控制器進行。在寫Flash過程中不能執行讀Flash操作,而正常情況下讀操作的代碼在Flash內部,為了順利寫入代碼,需要把寫操作相關的函數以十六進制符號的形式存入CC2430的SRAM中,具體寫操作代碼如下:

將寫代碼放入SRAM中,用統一的方式映射代碼存儲空間,程序跳轉至SRAM的寫函數執行寫操作,完成后跳回Flash內的代碼處,并改為非統一映射方式。

此外,為了增加代碼存儲空間,需添加啟動引導模塊。啟動引導程序作為一個完整的程序放在 Bank0中,節點啟動后讀取啟動信息,按啟動信息進行設置并跳轉。啟動引導程序有讀取版本信息、映射到版本所在 Bank、跳轉到0x8000地址執行新版本程序3個步驟,如圖4所示。

圖4 Flash存儲器空間配置

1.3 代碼分發協議

TinyOS系統自帶Trickle[19]及Deluge[20]兩種分發協議,兩種協議都有優點和缺點,將其結合能更好地發揮作用。

Trickle協議是一種通過動態調整參數適應不同網絡環境的自適應協議。該協議分為維護階段和更新階段。協議中每個節點周期性對外廣播信息。維護階段全網絡節點版本一致,不需要傳輸新數據,所以應盡可能延長廣播周期以降低開銷,分發階段要盡可能縮短廣播周期以便快速分發。因為Trickle協議具有動態調整廣播周期的能力,使用偵聽和抑制發送技術,所以即使在節點密度較高的環境下也可實現高效率運行。

Deluge協議屬于泛洪式分發協議,即分發代碼時通過廣播的形式擴散至各節點。Deluge協議有對全網絡節點下達分發代碼、重啟節點和啟用新版本命令的功能;還擁有將代碼分割成多頁,進行代碼分發的功能。其中代碼分發過程為流水線模式,即使節點沒有接收到全部的頁,也可以廣播已完整接收的頁,顯著提高了更新效率。

本遠程軟件升級系統中的節點使用CC2430芯片,將分發過程分為維護、RX和TX階段。由于Deluge協議的管道技術不會提高代碼傳輸速率,因此系統取消了管道技術。在節點接收到所有頁面然后分發它們之后,減輕了接收端負擔。Trickle協議適用于少量數據分發,如所有節點重新啟動、切換版本、分發代碼等,并且控制命令的內容包含要分發的代碼及版本信息。通過將網絡中的版本信息與節點的當前版本進行比較,可以確定節點是接收還是分發狀態。 更新過程如圖5所示,由網關節點、傳感器節點A、B、C和4個節點組成。其中,節點A和B在網關節點的一跳范圍內,節點C遠離網關節點,不能直接通信。最初,每個節點處于維護狀態并隨機廣播ADV消息,以確保整個網絡中的節點版本一致。某一刻主計算機傳輸新版本代碼至網關節點并發出代碼分發控制命令時,則分發階段開始。分發過程如下:

(1)網關節點利用Trickle協議發送CTL消息,將該消息發送至整個網絡,其中包含最新版本號和最新版本文件大小。

(2)各節點隨機發送ADV消息,ADV消息中包含當前節點的版本信息。在節點發現網絡中存在新版本信息后會盡快廣播ADV消息,以便周圍節點知道是最新版本。

(3)節點A、B接收到網關節點發送的ADV消息,得知網關節點有待發送的新版本文件后即進入RX狀態,節點A先一步向網關節點發送REQ消息。

(4)從節點A接收到REQ消息后,網關節點進入TX狀態并廣播Data數據。

圖5 WSN軟件升級流程

2 實驗

對WSN軟件升級過程進行實驗,首先對主計算機使用可變長數據包傳輸代碼至網關節點的過程進行實驗。在9 600bps的串口傳輸速率下,可變長數據包傳輸與傳統按行傳輸效率(當數據包大小為一行數據時,傳輸時間和傳統按行傳輸時間一致,即表1第1行)對比如表1所示??梢钥闯鍪褂每勺冮L數據包傳輸代碼最高能節省80.61%的時間,且丟包率極低。

以最高115 200bps的串口傳輸速率,每個數據包最大包含12行數據情況下耗時最少,為7.042s,證明使用可變長數據包的傳輸方式最高能節省93.87%的傳輸時間。

表1 波特率為9600時不同包大小傳輸情況

再對網關節點通過WSN分發程序代碼進行實驗。使用SmartRF[21]進行調試,使用網關節點和多個傳感器節點,傳感器節點隨機分布在網關節點周圍,可直接與網關節點通信及相互通信。實驗分發代碼大小為29.34KB,傳感器節點的數量從1開始到24逐漸增加,分發位置如圖6所示。網關節點從主計算機接收指令并進行分發。

圖6 單跳節點位置

圖7顯示更新整個網絡中不同數量節點的代碼所需時間。當網絡中只有一個節點時,需要140s。發送REQ的等待時間是隨機的,當整個網絡中的節點數量增加時,整個REQ時間將相對減少,并且分發速度將更快。當網絡中存在丟包情況時,如果一個節點接收到ADV消息而另一個節點沒有接收到,則仍然可以確保該節點向網關節點發送REQ消息,不必等待網關節點第二次發送ADV消息,這也加快了分發速度。

圖7 節點更新時間

當傳感器節點數增加到11時,分配速度開始下降。無線信道相對于有線傳輸的穩定性差,當節點數量增加時,分組丟失的可能性增加,即網絡中的重傳次數增加,導致分發速度降低。在同時更新多個節點過程中,如果節點A沒有接收到某個分組,則其對重傳信息的請求可能被其它節點淹沒。也就是說,其它節點搶先從網關節點請求數據分組。如果節點A不需要其它節點請求的數據包,則節點A不能直接從網關節點獲取數據包,必須等到其它節點更新后才能繼續從丟失數據的位置接收新數據。因此,在節點數量增加后,單個節點的數據包丟失將增加整個網絡更新時間。

在無線信道環境足夠理想的情況,更新數量較多的節點(如19個以上),其更新速度與更新節點數量無關。

在多跳實驗中,每個節點位于圖8位置,并且網關節點和上位計算機放置在實驗室中,傳感器節點A放置在實驗室門上,傳感器節點B放置在走廊中。傳感器節點A可直接與網關節點和傳感器節點B通信,網關節點和傳感器節點B不能直接相互通信。在更新過程中,網關節點首先將代碼分發給傳感器節點A,然后傳感器節點A將代碼分發給傳感器節點B,待更新代碼的大小同樣為29.34KB。

圖8 多跳節點位置

在分發過程中,為了形成多跳網絡,節點之間的距離被設置得很遠,接收信號強度被削弱,更容易受到干擾,因此丟包的概率顯著增加。傳感器節點A多次向網關節點發送重發請求, 225s后,網關節點到傳感器節點A的更新完成,另外使用了508s完成所有更新,共計733s。

將一跳的節點放置在傳感器節點A和傳感器節點B的旁邊,此時完成多跳網絡更新時間縮短為487s。與僅有的2個傳感器節點相比,更新速度得到較大提高。當節點數量增加時,接收分組的概率也相對增加,從而縮短了更新所花費的時間。多跳網絡的理想更新時間是當前網絡跳躍乘以單跳網絡時間。通常會發生丟包,并且當數據無法正常傳輸到節點時更新時間會延長。

3 結語

本文研究了基于C#的無線傳感網絡軟件升級技術,通過C#編寫窗體應用程序實現可變長數據包傳輸功能,提高了主計算機與網關節點通過串口傳輸數據的效率,在最好的情況下代碼傳輸時長僅為7.042s,對比傳統的按行傳輸方式節省了高達93.87%的傳輸時間,效果顯著。整個WSN軟件升級系統基于CC2430芯片的存儲特點,將存儲空間劃分為引導部分和程序部分,方便根據不同存儲器映射方式進行版本切換。此外還對TinyOS操作系統自有代碼分發協議進行改進,結合Trickle協議和Deluge協議,增加軟件升級系統在維護狀態和更新狀態時切換的靈活性。通過實驗驗證了本文WSN軟件升級系統的更新功能,從單個節點更新到多個節點更新乃至多跳更新,系統都能順利完成。

參考文獻:

[1] 錢志鴻,王義君. 面向物聯網的無線傳感器網絡綜述[J]. 電子與信息學報,2013,35(1):215-227.

[2] 孫龍. 無線傳感器網絡應用系統最新進展綜述[J]. 中國新通信,2015,17(6):112-115.

[3] 任萬春. 無線傳感器網絡重編程技術研究與設計[D]. 南京:南京信息工程大學,2014.

[4] 張國萍. 無線傳感器網絡在線代碼分發最新研究進展[J]. 浙江理工大學學報,2015,33(2):219-227.

[5] CHIANG M L,LU T L. Two-stage diff:an efficient dynamic software update mechanism for wireless sensor networks[C].? 2011 IFIP Ninth International Conference on Embedded and Ubiquitous Computing. IEEE Computer Society,2011:294-299.

[6] LIEN S L,CHIANG M L. Recovery mechanism for diff-based reprogramming in WSNS[C]. Ubiquitous Intelligence&Computing and 9th International Conference on Autonomic&Trusted Computing(UIC/ATC),2012:835-840.

[7] LAW Y W,WANG W C,KUO S Y. Ubiquitous Intelligence&Computing[M]. Berlin:Springer,2011.

[8] CHI T Y,ZHANG Y,JIN J,et al. Secure rateless deluge:pollution-resistant reprogramming and data dissemination for wireless sensor networks[J]. Eurasip Journal on Wireless Communications & Networking, 2011(3):204-218.

[9] 任萬春,馬廷淮,劉琦. 一種基于多播分發樹的無線傳感器網絡代碼分發協議[J]. 傳感器與微系統,2014,33(11):149-152.

[10] 侯彤. 無線傳感器網絡空中加載技術的研究[D]. 西安:西安電子科技大學, 2011.

[11] UNIVERSITY OF CALIFORNIA AT BERKELEY. Tinyos document[EB/OL]. http://tinyos.stanford.edu/tinyos-wiki/index.php/TinyOS_ Tutorials.

[12] 孟碩培. 無線傳感器網絡節點重編程研究與設計[D]. 杭州:浙江大學,2008.

[13] 汪治理,張勇,劉紅. 一種基于代碼克隆檢測技術的WSNs重編程方法[J]. 傳感技術學報,2014, 26(9):1288-1292.

[14] 何偉賢,劉建明,李宏周,等. TinyOS遠程動態代碼更新方法[J]. 儀表技術與傳感器,2013(1):19-22.

[15] 吳濤,施偉斌,張磊. 基于CC2430的代碼更新系統設計[J]. 電子科技,2017,30(1):123-125.

[16] 錢歡,施偉斌. 基于Android的無線傳感器網絡代碼更新系統設計[J]. 軟件導刊,2017,16(12):125-127.

[17] 高山,袁杰. 基于無線傳感器網絡節點的串行通信技術[J]. 現代電子技術,2010,33(18):151-153.

[18] 何偉賢,劉建明,彭智勇,等. TinyOS跨平臺移植方法研究與實現[J]. 微計算機信息,2012,28(9):356-358.

[19] LEVIS P,PATEL N,SHENKER S,et al. Trickle:a self-regulating algorithm for code propagation and maintenance in wireless sensor networks technical report[R]. California: University of California at Berkeley,2003.

[20] CHLIPALA A,HUI J,TOLLE G. Deluge:data dissemination in multi-hop sensor networks[R]. California:University of California at Berkeley,2003.

[21] TEXAS INSTRUMENTS. SmartRFTM packet sniffer user's manual (Rev. G)[EB/OL]. http://www.ti.com/tool/packet-sniffer.

(責任編輯:杜能鋼)

主站蜘蛛池模板: 毛片一级在线| 国产成人综合亚洲网址| 国产成人久久777777| 精品无码国产一区二区三区AV| a毛片在线免费观看| 91视频免费观看网站| 欧美亚洲一区二区三区导航| 久久综合成人| 国产成人综合久久精品下载| 亚洲黄色成人| 国产成人啪视频一区二区三区| 一本无码在线观看| 欧美国产日韩一区二区三区精品影视| 亚洲av无码牛牛影视在线二区| 网友自拍视频精品区| 欧美三级视频在线播放| 欧美一级视频免费| 三级视频中文字幕| 国产精品一区在线麻豆| 亚洲综合一区国产精品| 91在线视频福利| 天堂va亚洲va欧美va国产| AV不卡无码免费一区二区三区| 成人91在线| 亚洲人成网站观看在线观看| 免费A级毛片无码无遮挡| 97久久精品人人做人人爽| 国产人人射| 国产福利在线免费| 亚洲精品午夜无码电影网| 国产91熟女高潮一区二区| 色天天综合久久久久综合片| 国产成人91精品| 91欧美在线| 久久不卡精品| 一本久道久综合久久鬼色| 欧美在线视频不卡| 9cao视频精品| 91青青视频| AV无码一区二区三区四区| 99热这里只有精品久久免费| 一级成人欧美一区在线观看| 亚亚洲乱码一二三四区| 国产极品美女在线播放| 好紧太爽了视频免费无码| 噜噜噜综合亚洲| 色悠久久综合| 青青久视频| 波多野吉衣一区二区三区av| 国产精品13页| 97国产一区二区精品久久呦| 亚洲中文字幕在线一区播放| 国产凹凸视频在线观看| 在线观看精品国产入口| 97视频免费看| 国产一在线| 国产91精品最新在线播放| 日本成人福利视频| 中文字幕日韩丝袜一区| 国产鲁鲁视频在线观看| 久久精品电影| 永久免费无码成人网站| 婷婷中文在线| 亚洲第一成年免费网站| 99热这里都是国产精品| 污网站免费在线观看| 午夜毛片免费观看视频 | 黄色网在线| 久久综合九色综合97网| 日本高清免费不卡视频| 亚洲成a人片在线观看88| 日韩a级毛片| 亚洲欧美激情小说另类| 欧美成人精品高清在线下载| 五月六月伊人狠狠丁香网| 国产97公开成人免费视频| 久久人人爽人人爽人人片aV东京热 | 久久性视频| 美女视频黄频a免费高清不卡| 久久91精品牛牛| 久久性视频| 无码久看视频|