亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C#的無線傳感網(wǎng)絡(luò)軟件升級(jí)技術(shù)研究

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

        譚靖宇 施偉斌

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

        關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);C#;可變長(zhǎng)數(shù)據(jù)包;軟件升級(jí)系統(tǒng);TinyOS;CC2430

        DOI:10. 11907/rjdk. 182765 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

        中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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

        作者簡(jiǎn)介:譚靖宇(1993-),女,上海理工大學(xué)光電信息與計(jì)算機(jī)工程學(xué)院碩士研究生,研究方向?yàn)闊o線傳感器網(wǎng)絡(luò);施偉斌(1967-),男,上海理工大學(xué)光電信息與計(jì)算機(jī)工程學(xué)院副教授、碩士生導(dǎo)師,研究方向?yàn)闊o線傳感器網(wǎng)絡(luò)。本文通訊作者:譚靖宇。

        0 引言

        隨著無線通信技術(shù)、傳感器技術(shù)、嵌入式技術(shù)的日趨進(jìn)步,具有小尺寸、低功耗、價(jià)格低廉等優(yōu)點(diǎn)的微型傳感器節(jié)點(diǎn)越來越多地運(yùn)用在各種場(chǎng)景中。這些節(jié)點(diǎn)分布于檢測(cè)區(qū)域內(nèi),能以無線方式自組成傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSNs)[1]。由于這些節(jié)點(diǎn)能夠感知和處理周圍環(huán)境消息并將數(shù)據(jù)通過無線的方式傳播,因此針對(duì)這一特點(diǎn)的研究很多,推動(dòng)了環(huán)境監(jiān)測(cè)、智能家居、醫(yī)療健康等領(lǐng)域的發(fā)展[2]。

        代碼分發(fā)[3-4]是大量嵌入式設(shè)備升級(jí)軟件時(shí)面臨的首要問題。在一些檢測(cè)場(chǎng)景中節(jié)點(diǎn)數(shù)量龐大,部署環(huán)境惡劣,手動(dòng)升級(jí)節(jié)點(diǎn)程序不但效率低下,而且任務(wù)繁重,通過無線傳感器網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程軟件升級(jí)能較好解決這一問題。

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

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

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

        1 軟件升級(jí)過程

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

        圖1 WSN軟件升級(jí)過程

        1.1 主計(jì)算機(jī)代碼傳輸

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

        圖2 主計(jì)算機(jī)窗體軟件界面

        可根據(jù)iHex文件的結(jié)構(gòu)特點(diǎn)調(diào)整每個(gè)數(shù)據(jù)包的大小。圖3為iHex文件存儲(chǔ)格式。iHex文件是一個(gè)十六進(jìn)制文件,每行第一字節(jié)為起始符號(hào)“:”,之后每?jī)蓚€(gè)十六進(jìn)制數(shù)代表一個(gè)字節(jié)。第一個(gè)字節(jié)代表本行所含數(shù)據(jù)字節(jié)的個(gè)數(shù),第二第三字節(jié)代表本行的存儲(chǔ)地址。大部分?jǐn)?shù)據(jù)的存儲(chǔ)地址是連續(xù)的,基于這個(gè)特點(diǎn),可將多行合并為同一個(gè)數(shù)據(jù)包傳輸。本文主計(jì)算機(jī)軟件可選擇每個(gè)數(shù)據(jù)包中包含的行數(shù),1-12行不等。

        圖3 iHex文件存儲(chǔ)格式

        1.2 存儲(chǔ)空間映射

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

        代碼存儲(chǔ)空間分為統(tǒng)一映射和非統(tǒng)一映射,由MEMCTR寄存器的MUNIF位進(jìn)行控制。芯片復(fù)位時(shí)從0x0000開始運(yùn)行。

        外部數(shù)據(jù)存儲(chǔ)器主要對(duì)硬件寄存器以及SRAM進(jìn)行讀寫操作。讀取Flash需要改變代碼存儲(chǔ)空間的映射方式,把高位地址映射到對(duì)應(yīng)的Bank,即可從此Bank里讀取數(shù)據(jù),讀取數(shù)據(jù)后要返回代碼運(yùn)行現(xiàn)場(chǎng)。因?yàn)榇a存儲(chǔ)器為只讀形式,所以對(duì)Flash執(zhí)行寫操作只能通過CC2430內(nèi)部的Flash控制器進(jìn)行。在寫Flash過程中不能執(zhí)行讀Flash操作,而正常情況下讀操作的代碼在Flash內(nèi)部,為了順利寫入代碼,需要把寫操作相關(guān)的函數(shù)以十六進(jìn)制符號(hào)的形式存入CC2430的SRAM中,具體寫操作代碼如下:

        將寫代碼放入SRAM中,用統(tǒng)一的方式映射代碼存儲(chǔ)空間,程序跳轉(zhuǎn)至SRAM的寫函數(shù)執(zhí)行寫操作,完成后跳回Flash內(nèi)的代碼處,并改為非統(tǒng)一映射方式。

        此外,為了增加代碼存儲(chǔ)空間,需添加啟動(dòng)引導(dǎo)模塊。啟動(dòng)引導(dǎo)程序作為一個(gè)完整的程序放在 Bank0中,節(jié)點(diǎn)啟動(dòng)后讀取啟動(dòng)信息,按啟動(dòng)信息進(jìn)行設(shè)置并跳轉(zhuǎn)。啟動(dòng)引導(dǎo)程序有讀取版本信息、映射到版本所在 Bank、跳轉(zhuǎn)到0x8000地址執(zhí)行新版本程序3個(gè)步驟,如圖4所示。

        圖4 Flash存儲(chǔ)器空間配置

        1.3 代碼分發(fā)協(xié)議

        TinyOS系統(tǒng)自帶Trickle[19]及Deluge[20]兩種分發(fā)協(xié)議,兩種協(xié)議都有優(yōu)點(diǎn)和缺點(diǎn),將其結(jié)合能更好地發(fā)揮作用。

        Trickle協(xié)議是一種通過動(dòng)態(tài)調(diào)整參數(shù)適應(yīng)不同網(wǎng)絡(luò)環(huán)境的自適應(yīng)協(xié)議。該協(xié)議分為維護(hù)階段和更新階段。協(xié)議中每個(gè)節(jié)點(diǎn)周期性對(duì)外廣播信息。維護(hù)階段全網(wǎng)絡(luò)節(jié)點(diǎn)版本一致,不需要傳輸新數(shù)據(jù),所以應(yīng)盡可能延長(zhǎng)廣播周期以降低開銷,分發(fā)階段要盡可能縮短廣播周期以便快速分發(fā)。因?yàn)門rickle協(xié)議具有動(dòng)態(tài)調(diào)整廣播周期的能力,使用偵聽和抑制發(fā)送技術(shù),所以即使在節(jié)點(diǎn)密度較高的環(huán)境下也可實(shí)現(xiàn)高效率運(yùn)行。

        Deluge協(xié)議屬于泛洪式分發(fā)協(xié)議,即分發(fā)代碼時(shí)通過廣播的形式擴(kuò)散至各節(jié)點(diǎn)。Deluge協(xié)議有對(duì)全網(wǎng)絡(luò)節(jié)點(diǎn)下達(dá)分發(fā)代碼、重啟節(jié)點(diǎn)和啟用新版本命令的功能;還擁有將代碼分割成多頁,進(jìn)行代碼分發(fā)的功能。其中代碼分發(fā)過程為流水線模式,即使節(jié)點(diǎn)沒有接收到全部的頁,也可以廣播已完整接收的頁,顯著提高了更新效率。

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

        (1)網(wǎng)關(guān)節(jié)點(diǎn)利用Trickle協(xié)議發(fā)送CTL消息,將該消息發(fā)送至整個(gè)網(wǎng)絡(luò),其中包含最新版本號(hào)和最新版本文件大小。

        (2)各節(jié)點(diǎn)隨機(jī)發(fā)送ADV消息,ADV消息中包含當(dāng)前節(jié)點(diǎn)的版本信息。在節(jié)點(diǎn)發(fā)現(xiàn)網(wǎng)絡(luò)中存在新版本信息后會(huì)盡快廣播ADV消息,以便周圍節(jié)點(diǎn)知道是最新版本。

        (3)節(jié)點(diǎn)A、B接收到網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送的ADV消息,得知網(wǎng)關(guān)節(jié)點(diǎn)有待發(fā)送的新版本文件后即進(jìn)入RX狀態(tài),節(jié)點(diǎn)A先一步向網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送REQ消息。

        (4)從節(jié)點(diǎn)A接收到REQ消息后,網(wǎng)關(guān)節(jié)點(diǎn)進(jìn)入TX狀態(tài)并廣播Data數(shù)據(jù)。

        圖5 WSN軟件升級(jí)流程

        2 實(shí)驗(yàn)

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

        以最高115 200bps的串口傳輸速率,每個(gè)數(shù)據(jù)包最大包含12行數(shù)據(jù)情況下耗時(shí)最少,為7.042s,證明使用可變長(zhǎng)數(shù)據(jù)包的傳輸方式最高能節(jié)省93.87%的傳輸時(shí)間。

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

        再對(duì)網(wǎng)關(guān)節(jié)點(diǎn)通過WSN分發(fā)程序代碼進(jìn)行實(shí)驗(yàn)。使用SmartRF[21]進(jìn)行調(diào)試,使用網(wǎng)關(guān)節(jié)點(diǎn)和多個(gè)傳感器節(jié)點(diǎn),傳感器節(jié)點(diǎn)隨機(jī)分布在網(wǎng)關(guān)節(jié)點(diǎn)周圍,可直接與網(wǎng)關(guān)節(jié)點(diǎn)通信及相互通信。實(shí)驗(yàn)分發(fā)代碼大小為29.34KB,傳感器節(jié)點(diǎn)的數(shù)量從1開始到24逐漸增加,分發(fā)位置如圖6所示。網(wǎng)關(guān)節(jié)點(diǎn)從主計(jì)算機(jī)接收指令并進(jìn)行分發(fā)。

        圖6 單跳節(jié)點(diǎn)位置

        圖7顯示更新整個(gè)網(wǎng)絡(luò)中不同數(shù)量節(jié)點(diǎn)的代碼所需時(shí)間。當(dāng)網(wǎng)絡(luò)中只有一個(gè)節(jié)點(diǎn)時(shí),需要140s。發(fā)送REQ的等待時(shí)間是隨機(jī)的,當(dāng)整個(gè)網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量增加時(shí),整個(gè)REQ時(shí)間將相對(duì)減少,并且分發(fā)速度將更快。當(dāng)網(wǎng)絡(luò)中存在丟包情況時(shí),如果一個(gè)節(jié)點(diǎn)接收到ADV消息而另一個(gè)節(jié)點(diǎn)沒有接收到,則仍然可以確保該節(jié)點(diǎn)向網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送REQ消息,不必等待網(wǎng)關(guān)節(jié)點(diǎn)第二次發(fā)送ADV消息,這也加快了分發(fā)速度。

        圖7 節(jié)點(diǎn)更新時(shí)間

        當(dāng)傳感器節(jié)點(diǎn)數(shù)增加到11時(shí),分配速度開始下降。無線信道相對(duì)于有線傳輸?shù)姆€(wěn)定性差,當(dāng)節(jié)點(diǎn)數(shù)量增加時(shí),分組丟失的可能性增加,即網(wǎng)絡(luò)中的重傳次數(shù)增加,導(dǎo)致分發(fā)速度降低。在同時(shí)更新多個(gè)節(jié)點(diǎn)過程中,如果節(jié)點(diǎn)A沒有接收到某個(gè)分組,則其對(duì)重傳信息的請(qǐng)求可能被其它節(jié)點(diǎn)淹沒。也就是說,其它節(jié)點(diǎn)搶先從網(wǎng)關(guān)節(jié)點(diǎn)請(qǐng)求數(shù)據(jù)分組。如果節(jié)點(diǎn)A不需要其它節(jié)點(diǎn)請(qǐng)求的數(shù)據(jù)包,則節(jié)點(diǎn)A不能直接從網(wǎng)關(guān)節(jié)點(diǎn)獲取數(shù)據(jù)包,必須等到其它節(jié)點(diǎn)更新后才能繼續(xù)從丟失數(shù)據(jù)的位置接收新數(shù)據(jù)。因此,在節(jié)點(diǎn)數(shù)量增加后,單個(gè)節(jié)點(diǎn)的數(shù)據(jù)包丟失將增加整個(gè)網(wǎng)絡(luò)更新時(shí)間。

        在無線信道環(huán)境足夠理想的情況,更新數(shù)量較多的節(jié)點(diǎn)(如19個(gè)以上),其更新速度與更新節(jié)點(diǎn)數(shù)量無關(guān)。

        在多跳實(shí)驗(yàn)中,每個(gè)節(jié)點(diǎn)位于圖8位置,并且網(wǎng)關(guān)節(jié)點(diǎn)和上位計(jì)算機(jī)放置在實(shí)驗(yàn)室中,傳感器節(jié)點(diǎn)A放置在實(shí)驗(yàn)室門上,傳感器節(jié)點(diǎn)B放置在走廊中。傳感器節(jié)點(diǎn)A可直接與網(wǎng)關(guān)節(jié)點(diǎn)和傳感器節(jié)點(diǎn)B通信,網(wǎng)關(guān)節(jié)點(diǎn)和傳感器節(jié)點(diǎn)B不能直接相互通信。在更新過程中,網(wǎng)關(guān)節(jié)點(diǎn)首先將代碼分發(fā)給傳感器節(jié)點(diǎn)A,然后傳感器節(jié)點(diǎn)A將代碼分發(fā)給傳感器節(jié)點(diǎn)B,待更新代碼的大小同樣為29.34KB。

        圖8 多跳節(jié)點(diǎn)位置

        在分發(fā)過程中,為了形成多跳網(wǎng)絡(luò),節(jié)點(diǎn)之間的距離被設(shè)置得很遠(yuǎn),接收信號(hào)強(qiáng)度被削弱,更容易受到干擾,因此丟包的概率顯著增加。傳感器節(jié)點(diǎn)A多次向網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送重發(fā)請(qǐng)求, 225s后,網(wǎng)關(guān)節(jié)點(diǎn)到傳感器節(jié)點(diǎn)A的更新完成,另外使用了508s完成所有更新,共計(jì)733s。

        將一跳的節(jié)點(diǎn)放置在傳感器節(jié)點(diǎn)A和傳感器節(jié)點(diǎn)B的旁邊,此時(shí)完成多跳網(wǎng)絡(luò)更新時(shí)間縮短為487s。與僅有的2個(gè)傳感器節(jié)點(diǎn)相比,更新速度得到較大提高。當(dāng)節(jié)點(diǎn)數(shù)量增加時(shí),接收分組的概率也相對(duì)增加,從而縮短了更新所花費(fèi)的時(shí)間。多跳網(wǎng)絡(luò)的理想更新時(shí)間是當(dāng)前網(wǎng)絡(luò)跳躍乘以單跳網(wǎng)絡(luò)時(shí)間。通常會(huì)發(fā)生丟包,并且當(dāng)數(shù)據(jù)無法正常傳輸?shù)焦?jié)點(diǎn)時(shí)更新時(shí)間會(huì)延長(zhǎng)。

        3 結(jié)語

        本文研究了基于C#的無線傳感網(wǎng)絡(luò)軟件升級(jí)技術(shù),通過C#編寫窗體應(yīng)用程序?qū)崿F(xiàn)可變長(zhǎng)數(shù)據(jù)包傳輸功能,提高了主計(jì)算機(jī)與網(wǎng)關(guān)節(jié)點(diǎn)通過串口傳輸數(shù)據(jù)的效率,在最好的情況下代碼傳輸時(shí)長(zhǎng)僅為7.042s,對(duì)比傳統(tǒng)的按行傳輸方式節(jié)省了高達(dá)93.87%的傳輸時(shí)間,效果顯著。整個(gè)WSN軟件升級(jí)系統(tǒng)基于CC2430芯片的存儲(chǔ)特點(diǎn),將存儲(chǔ)空間劃分為引導(dǎo)部分和程序部分,方便根據(jù)不同存儲(chǔ)器映射方式進(jìn)行版本切換。此外還對(duì)TinyOS操作系統(tǒng)自有代碼分發(fā)協(xié)議進(jìn)行改進(jìn),結(jié)合Trickle協(xié)議和Deluge協(xié)議,增加軟件升級(jí)系統(tǒng)在維護(hù)狀態(tài)和更新狀態(tài)時(shí)切換的靈活性。通過實(shí)驗(yàn)驗(yàn)證了本文WSN軟件升級(jí)系統(tǒng)的更新功能,從單個(gè)節(jié)點(diǎn)更新到多個(gè)節(jié)點(diǎn)更新乃至多跳更新,系統(tǒng)都能順利完成。

        參考文獻(xiàn):

        [1] 錢志鴻,王義君. 面向物聯(lián)網(wǎng)的無線傳感器網(wǎng)絡(luò)綜述[J]. 電子與信息學(xué)報(bào),2013,35(1):215-227.

        [2] 孫龍. 無線傳感器網(wǎng)絡(luò)應(yīng)用系統(tǒng)最新進(jìn)展綜述[J]. 中國(guó)新通信,2015,17(6):112-115.

        [3] 任萬春. 無線傳感器網(wǎng)絡(luò)重編程技術(shù)研究與設(shè)計(jì)[D]. 南京:南京信息工程大學(xué),2014.

        [4] 張國(guó)萍. 無線傳感器網(wǎng)絡(luò)在線代碼分發(fā)最新研究進(jìn)展[J]. 浙江理工大學(xué)學(xué)報(bào),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] 任萬春,馬廷淮,劉琦. 一種基于多播分發(fā)樹的無線傳感器網(wǎng)絡(luò)代碼分發(fā)協(xié)議[J]. 傳感器與微系統(tǒng),2014,33(11):149-152.

        [10] 侯彤. 無線傳感器網(wǎng)絡(luò)空中加載技術(shù)的研究[D]. 西安:西安電子科技大學(xué), 2011.

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

        [12] 孟碩培. 無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)重編程研究與設(shè)計(jì)[D]. 杭州:浙江大學(xué),2008.

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

        [14] 何偉賢,劉建明,李宏周,等. TinyOS遠(yuǎn)程動(dòng)態(tài)代碼更新方法[J]. 儀表技術(shù)與傳感器,2013(1):19-22.

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

        [16] 錢歡,施偉斌. 基于Android的無線傳感器網(wǎng)絡(luò)代碼更新系統(tǒng)設(shè)計(jì)[J]. 軟件導(dǎo)刊,2017,16(12):125-127.

        [17] 高山,袁杰. 基于無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的串行通信技術(shù)[J]. 現(xiàn)代電子技術(shù),2010,33(18):151-153.

        [18] 何偉賢,劉建明,彭智勇,等. TinyOS跨平臺(tái)移植方法研究與實(shí)現(xiàn)[J]. 微計(jì)算機(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.

        (責(zé)任編輯:杜能鋼)

        国产午夜精品av一区二区麻豆| 黑丝美女喷水在线观看| 亚洲中文字幕精品久久久| 亚洲成av人片不卡无码| 怡红院a∨人人爰人人爽| 亚洲欧洲国产日产国码无码| 丝袜美腿亚洲综合玉足| 精品人妻一区三区蜜桃| 人妻无码一区二区视频| 国产午夜福利精品| 成人在线视频亚洲国产| 多毛小伙内射老太婆| 国产真实夫妇交换视频| 欧美成人免费看片一区| 男生自撸视频在线观看| 国产极品视觉盛宴| 精品熟女日韩中文十区| 91尤物在线看| 亚洲国产av一区二区三区天堂| 免费人成网站在线观看欧美| 伊人影院综合在线| 久久精品中文字幕免费| 国产白浆一区二区三区性色| 怡红院免费的全部视频| 亚洲福利天堂网福利在线观看| 日本大片一区二区三区| 色一情一乱一伦麻豆| 呻吟国产av久久一区二区| 亚洲av偷拍一区二区三区| 日本一区二区三区视频国产| 中文成人无码精品久久久不卡| 在线观看一区二区女同| 日本妇女高清一区二区三区| 精品成在人线av无码免费看| 亚洲精品国产综合一线久久| 国产蜜臀精品一区二区三区| 天天综合天天爱天天做| 中文字幕乱码免费视频| 亚洲精品综合在线影院| 成人免费在线亚洲视频| 真人无码作爱免费视频禁hnn |