《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 無線傳感器網(wǎng)絡(luò)與TCP/IP網(wǎng)絡(luò)互聯(lián)通信技術(shù)研究
無線傳感器網(wǎng)絡(luò)與TCP/IP網(wǎng)絡(luò)互聯(lián)通信技術(shù)研究
來源:微型機與應(yīng)用2011年第5期
高小能,舒文超
(浙江萬里學院 電子信息學院,浙江 寧波 315100)
摘要: 提出了無線傳感器網(wǎng)絡(luò)與Internet互聯(lián)通信技術(shù)的代理服務(wù)器系統(tǒng)結(jié)構(gòu)。設(shè)計了具有網(wǎng)絡(luò)接口功能的代理網(wǎng)關(guān)節(jié)點。該節(jié)點作為無線傳感器網(wǎng)絡(luò)與Internet互聯(lián)通信的代理網(wǎng)關(guān),實現(xiàn)了遠程訪問和獲取傳感器網(wǎng)絡(luò)監(jiān)測的信息。給出了精簡化的TCP/IP互聯(lián)協(xié)議,以及代理網(wǎng)關(guān)主處理程序的軟件實現(xiàn)。
Abstract:
Key words :

摘  要: 提出了無線傳感器網(wǎng)絡(luò)Internet互聯(lián)通信技術(shù)的代理服務(wù)器系統(tǒng)結(jié)構(gòu)。設(shè)計了具有網(wǎng)絡(luò)接口功能的代理網(wǎng)關(guān)節(jié)點。該節(jié)點作為無線傳感器網(wǎng)絡(luò)與Internet互聯(lián)通信的代理網(wǎng)關(guān),實現(xiàn)了遠程訪問和獲取傳感器網(wǎng)絡(luò)監(jiān)測的信息。給出了精簡化的TCP/IP互聯(lián)協(xié)議,以及代理網(wǎng)關(guān)主處理程序的軟件實現(xiàn)。
關(guān)鍵詞: 無線傳感器網(wǎng)絡(luò);代理網(wǎng)關(guān);Internet互聯(lián);網(wǎng)絡(luò)接口;簡化的TCP/IP協(xié)議棧

 無線傳感器網(wǎng)絡(luò)WSN(Wireless Sensor Networks)是由大量傳感器節(jié)點通過無線通信技術(shù)組成的自組織網(wǎng)絡(luò)。WSN具有成本低、功耗低、靈活性高、可擴展等優(yōu)點[1],在民用和軍事領(lǐng)域都具有廣泛的應(yīng)用前景。特別是WSN接入到Internet已成為全新的研究熱點。如果能夠?qū)SN與Internet互聯(lián)起來,則可以通過Internet遠程訪問和控制WSN,而且WSN也可以將信息傳輸給遠端感興趣的用戶,不僅實現(xiàn)了網(wǎng)絡(luò)遠程監(jiān)控、診斷和系統(tǒng)升級的功能,而且也促進了用戶端共享更多的網(wǎng)絡(luò)信息資源。而這也將進一步促進WSN在環(huán)境監(jiān)測、醫(yī)療監(jiān)護、城市交通管理、倉儲管理、軍事偵察等領(lǐng)域的應(yīng)用。
1 無線傳感器網(wǎng)絡(luò)與Internet的互聯(lián)方案分析
 無線傳感器網(wǎng)絡(luò)具有以下特點:節(jié)點可供開發(fā)片上資源(如內(nèi)存等)不多;部分應(yīng)用情形下節(jié)點數(shù)量眾多;節(jié)點可以靜止也可以移動等。因此WSN與Internet的互聯(lián)技術(shù)較之一般的設(shè)備連接Internet技術(shù)有更多的難點。隨著技術(shù)的發(fā)展,提出了越來越多的方案,這些方案在不同的場合有不同的應(yīng)用。綜合起來可以分為以下幾種。
 (1)通過IPv6進行互聯(lián)
 在某些應(yīng)用中,無線傳感器網(wǎng)絡(luò)應(yīng)用中所需的節(jié)點數(shù)量非常多,如果每一個節(jié)點都分配一個IP地址,則需要的IP地址數(shù)量眾多[2]。但實際應(yīng)用中沒有足夠的IP資源可用。而IPv6是下一代網(wǎng)絡(luò)協(xié)議,具有地址資源豐富,可以自動配置IP地址等優(yōu)點,可以滿足無線傳感器網(wǎng)絡(luò)節(jié)點對IP地址數(shù)量大的需求,所以在WSN互聯(lián)Internet技術(shù)中使用IPv6協(xié)議成為一個研究方向。但是由于Internet還是基于IPv4的TCP/IP協(xié)議,所以采用IPv6的WSN與Internet互聯(lián)需要進行地址轉(zhuǎn)換[3],并且目前使用IPv6的WSN還處于實驗網(wǎng)階段。
 (2)通過GSM/CDMA網(wǎng)絡(luò)進行互聯(lián)
 許多WSN網(wǎng)絡(luò)應(yīng)用在偏遠區(qū)域,那里除了移動通信網(wǎng)絡(luò)設(shè)施外沒有其他的通信基礎(chǔ)設(shè)施,因此在這類區(qū)域中WSN互聯(lián)Internet必須借助于移動通信網(wǎng)。移動通信網(wǎng)覆蓋范圍廣,并且已過渡到3G CDMA網(wǎng)絡(luò),都已經(jīng)能夠連接到Internet。因此WSN通過移動通信網(wǎng)很容易連接到Internet。但通過移動通信網(wǎng)互聯(lián),要求WSN節(jié)點有較強的無線射頻發(fā)射和接收功率,這將使WSN節(jié)點能耗大大增加,需要增加額外的射頻硬件或發(fā)射天線。且須支持無線通信接口的相關(guān)協(xié)議。
 (3)代理服務(wù)器結(jié)構(gòu)
 由于傳感器節(jié)點片上資源太少,無法在傳感器上完整實施與Internet互聯(lián)的TCP/IP協(xié)議,因此在傳感器網(wǎng)絡(luò)與TCP/IP網(wǎng)絡(luò)之間設(shè)置一個代理服務(wù)器是比較常用的方法。使用代理服務(wù)器的WSN與Internet互聯(lián)網(wǎng)結(jié)構(gòu)如圖1所示。

 代理服務(wù)器結(jié)構(gòu)的缺點是,如果代理服務(wù)器失效,則整個傳感器網(wǎng)絡(luò)都無法接入到Internet。為了避免發(fā)生這種情況,可以再使用一個備份代理網(wǎng)關(guān)。
 (4)直接實施TCP/IP協(xié)議
 在傳感器網(wǎng)絡(luò)節(jié)點上實施TCP/IP協(xié)議,并與Internet直接互聯(lián)是一種比較理想的方案。網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。這種方案的優(yōu)點是不需要通過代理網(wǎng)關(guān)就能夠?qū)崿F(xiàn)與Internet無縫連接,減少傳輸時延。但是考慮到傳感器節(jié)點自身因素,這種方法大規(guī)模實施起來難度很大[5]。主要原因有:
?、僖驗門CP/IP協(xié)議簇龐大,在傳感器無法直接使用TCP/IP協(xié)議,只能根據(jù)網(wǎng)絡(luò)互聯(lián)要求實施實現(xiàn)互聯(lián)功能的主要部分協(xié)議,這要求程序設(shè)計人開發(fā)出一套簡化的TCP/IP協(xié)議組件。
?、诓糠謧鞲衅骶W(wǎng)絡(luò)應(yīng)用于離城市較遠的偏僻地區(qū),這些地區(qū)沒有連接到Internet的基礎(chǔ)設(shè)施,因此即使傳感器網(wǎng)絡(luò)各節(jié)點實施了簡化的TCP/IP協(xié)議組件,仍沒有可連接的Internet接入點。
?、蹖τ跀?shù)量眾多的WSN網(wǎng)絡(luò),每個WSN節(jié)點都分配一個IP地址,則地址數(shù)量過于龐大,目前的IPv4無法滿足要求。
 ④TCP協(xié)議是根據(jù)有線網(wǎng)絡(luò)設(shè)計的,有線網(wǎng)絡(luò)極少出現(xiàn)網(wǎng)絡(luò)差錯,數(shù)據(jù)包的丟失主要是由于網(wǎng)絡(luò)發(fā)生擁塞。而無線網(wǎng)絡(luò)與有線網(wǎng)絡(luò)的最大不同是,無線網(wǎng)絡(luò)極易發(fā)生高比特率錯誤,即由于無線鏈路的原因可能導致數(shù)據(jù)包連續(xù)丟失,這種情況會使TCP協(xié)議無法工作。因此TCP協(xié)議直接應(yīng)用于無線網(wǎng)絡(luò),其效率極其低下。

 由于上述原因,這種WSN網(wǎng)絡(luò)與Internet的直接互聯(lián)目前處于研究起步階段,諸多問題還有待解決。
2 本系統(tǒng)采用的方案及設(shè)計
 比較分析上述各種WSN與Internet互聯(lián)的方案,考慮到傳感器的硬件特點,結(jié)合目前技術(shù)發(fā)展的成熟度,本項目采用代理服務(wù)器結(jié)構(gòu)來連接Internet,如圖1所示。本結(jié)構(gòu)的關(guān)鍵是代理服務(wù)器或網(wǎng)關(guān)完成的功能及系統(tǒng)設(shè)計。本系統(tǒng)中的代理網(wǎng)關(guān)主要完成兩個功能。一是在傳感器網(wǎng)絡(luò)和Internet之間起協(xié)議轉(zhuǎn)換作用。傳感器網(wǎng)絡(luò)中的節(jié)點并不直接和外部Internet的主機進行通信,所有節(jié)點和外部主機的通信都通過代理網(wǎng)關(guān)進行,同時外部主機想要查找某個傳感器節(jié)點上的數(shù)據(jù)時,也是首先連接到代理網(wǎng)關(guān),由代理網(wǎng)關(guān)進行后續(xù)處理。代理網(wǎng)關(guān)的另一個功能是作為傳感器網(wǎng)絡(luò)的特殊節(jié)點, 它可以周期性地主動訪問并接收其他傳感器節(jié)點的數(shù)據(jù)信息,并將這些信息存儲起來。當外部客戶端想要獲得傳感器網(wǎng)絡(luò)中某個特定傳感器節(jié)點的數(shù)據(jù)信息時,可以立即從代理網(wǎng)關(guān)中存儲的信息中查找得到,從而加快獲得信息的響應(yīng)時間。很明顯,WSN的內(nèi)部各節(jié)點數(shù)據(jù)通信方法可以自由選擇,完全可以采用已經(jīng)成熟的Ad-hoc網(wǎng)絡(luò)的各種路由技術(shù)。
 代理網(wǎng)關(guān)節(jié)點設(shè)計如圖3所示。傳感器、無線收發(fā)器、單片機組成普通的WSN節(jié)點模塊(圖3的方框內(nèi)部分)。AVR ATmegal128L單片機[6]是WSN節(jié)點的主控芯片,是節(jié)點數(shù)據(jù)通信的處理器。傳感器起數(shù)據(jù)采集作用,采集數(shù)據(jù)經(jīng)A/D轉(zhuǎn)換連接到單片機。WSN節(jié)點之間的通信通過無線收發(fā)器nRF905進行。考慮到傳感器節(jié)點通信過程的數(shù)據(jù)處理量較大,所以外接一個存儲器來存儲或暫存自己采集的或需要轉(zhuǎn)發(fā)的其他節(jié)點傳輸過來的數(shù)據(jù)。WSN與Internet互聯(lián)的代理網(wǎng)關(guān)則是在普通的WSN節(jié)點模塊基礎(chǔ)上,增加CS8900A以太網(wǎng)絡(luò)控制器,可以連接到局域網(wǎng),從而與Internet互聯(lián)。同時代理網(wǎng)關(guān)節(jié)點通過MAX232連接到計算機。由于代理網(wǎng)關(guān)的數(shù)據(jù)通信處理量比普通的WSN節(jié)點要大得多,所以可以再增加一個RAM存儲器。

3 互聯(lián)協(xié)議實現(xiàn)
 TCP/IP協(xié)議簇是使Internet中的計算機能互聯(lián)通信的一組協(xié)議。這些協(xié)議協(xié)同工作,各自完成不同的功能,能夠為用戶提供多達幾十種網(wǎng)絡(luò)應(yīng)用。在高級應(yīng)用場合,操作系統(tǒng)中一般需要支持完整的TCP/IP協(xié)議簇,但在相對單一應(yīng)用的場所,只需要實現(xiàn)某一種功能的工業(yè)應(yīng)用領(lǐng)域,完整實現(xiàn)TCP/IP協(xié)議簇顯得沒有必要。首先是因為工業(yè)應(yīng)用芯片沒有足夠多的硬件資源,其次是過多的不需要的功能會減慢系統(tǒng)響應(yīng)速度。對于本項目的傳感器網(wǎng)絡(luò)與Internet的互聯(lián),管理人員僅需要傳感器網(wǎng)絡(luò)節(jié)點監(jiān)測到的相關(guān)數(shù)據(jù),一般通過交互式Web服務(wù)器就可以得到,所以只需要應(yīng)用層實現(xiàn)HTTP協(xié)議就可以了,其他應(yīng)用層程序都可以舍棄不予實現(xiàn)。
 目前國際上許多嵌入式產(chǎn)品供應(yīng)商都根據(jù)嵌入式產(chǎn)品所實現(xiàn)功能的需要,在TCP/IP協(xié)議套件的基礎(chǔ)上進行簡化,根據(jù)具體的應(yīng)用提供不同的協(xié)議模塊,保留基本的網(wǎng)絡(luò)通信功能,在可移植性方面做了各具特色的改進。本項目對TCP/IP協(xié)議的精簡參考了他們的做法[7],在協(xié)議程序代碼的實現(xiàn)過程中,主要考慮了以下兩點:
 (1)精簡代碼。根據(jù)傳感器網(wǎng)絡(luò)互聯(lián)Internet的應(yīng)用要求,盡量簡化TCP/IP協(xié)議簇,只實現(xiàn)基本的、必要的功能,使生成的二進制代碼盡量精簡,這樣做能夠顯著提高系統(tǒng)與傳感器網(wǎng)絡(luò)的交互能力,能夠適應(yīng)傳感器節(jié)點上有限的內(nèi)存空間以及芯片處理速度。如圖4所示,本系統(tǒng)實現(xiàn)的互聯(lián)協(xié)議如圖中的灰色方框中的協(xié)議所示,實現(xiàn)的是TCP/IP協(xié)議簇的一部分協(xié)議。

 (2)強移植性。傳感器的類型和型號眾多。精簡后的協(xié)議程序應(yīng)盡量能夠應(yīng)用于不同類型的傳感器元件。如果精簡后的程序在一種類型的傳感器上運行良好,而在另一種類型的傳感上無法實現(xiàn)互聯(lián),需要重新進行復雜的軟件開發(fā)工作,則大大增加開發(fā)的工作量。因此精簡后代碼的可移植性是非常重要的。這樣,在對傳感器節(jié)點進行升級或者更換時,除了與硬件直接相關(guān)的部分代碼需要重新開發(fā)外,不需要對整個互聯(lián)協(xié)議進行大的修改。
 本項目精簡后的互聯(lián)協(xié)議組件稱為sip,意義為一個小型(small)TCP/IP協(xié)議組件。在本文第4節(jié)的代理網(wǎng)關(guān)主處理程序中出現(xiàn)的sip就是本系統(tǒng)開發(fā)的簡化互聯(lián)協(xié)議組件。
4 代理網(wǎng)關(guān)主處理程序
 代理網(wǎng)關(guān)實際上相當于一個協(xié)議轉(zhuǎn)換程序。它能夠接收WSN網(wǎng)絡(luò)節(jié)點傳輸過來的數(shù)據(jù)信息,并將其按照TCP/IP協(xié)議的要求轉(zhuǎn)換成合適的數(shù)據(jù)格式。如果得到返回給WSN網(wǎng)絡(luò)節(jié)點的數(shù)據(jù),則按照WSN的要求將其轉(zhuǎn)換成適合于傳感器節(jié)點傳輸?shù)臄?shù)據(jù)格式。代理網(wǎng)關(guān)的功能相對復雜,其硬件和軟件設(shè)計在前面兩節(jié)中已討論過,這里只給出代理網(wǎng)關(guān)的主處理程序。
 主處理程序的主要功能是通過簡化的互聯(lián)協(xié)議,實現(xiàn)與傳感器節(jié)點、Ethernet網(wǎng)絡(luò)接口的數(shù)據(jù)交互。因此在主處理程序的開始部分,首先對定時器、串口接口、Ethernet接口初始化。硬件初始化成功以后,開始啟動簡化的TCP/IP互聯(lián)協(xié)議,接著對arp協(xié)議和應(yīng)用程序進行初始化。初始化完成后,主處理程序?qū)⒉煌5剡M行查詢,如果接收到新的數(shù)據(jù)包則發(fā)送給eth_send()函數(shù)進行處理,如果沒有新數(shù)據(jù)包到達,則由sip_periodic()函數(shù)處理定時事件。主處理程序的部分程序代碼如下。
void main(void)
{init _timer ();     //用戶自定義定時器初始化程序
 init_serial ();    //用戶自定義串口初始化程序
 init_8900a();    //Enternet接口初始化,需用戶定義
 sip_init();       //對簡化的互聯(lián)協(xié)議sip初始化
 init_httpd ();     //定義web應(yīng)用程序
 sip_arp_init();       
 while(1)
  {sip_len=eth_reve;  
  if(sip_len==0)     //無數(shù)據(jù)接收,開始定時輪詢
     {for(i=0;i<SIP_CONNS;i++)   
       {sip_periodic(i);           
         if(sip_len>0)           
               {sip_arp_out();      
               eth_send();        
                }
         }
   }
else if(sip_len>0)      //接收并處理數(shù)據(jù)
         {sip_arp_ipin();                             
     sip_len=sizeof(struct sip_eth_hdr);           
     sip_input();                              
     if(sip_len>0)          
           {uip_arp_out();     
              eth_send();
             }
           }
}
 簡化后的互聯(lián)協(xié)議棧的鏈路層部分由網(wǎng)絡(luò)控制器CS8900A完成,網(wǎng)絡(luò)層和傳輸層由單片機來處理。應(yīng)用層則根據(jù)需要可以在單片機內(nèi)完成,也可以由單片機轉(zhuǎn)給用戶或終端設(shè)備完成。除了WEB服務(wù)之外,盡管其他應(yīng)用層服務(wù)像SMTP協(xié)議支持功能也可以根據(jù)需要編寫相應(yīng)的代碼[8],但一般不需要添加額外太多的應(yīng)用層服務(wù)。
本項目設(shè)計的無線傳感器網(wǎng)絡(luò)與Internet的互聯(lián)系統(tǒng),在實際中得到了成功應(yīng)用。筆者下一步工作重點是在系統(tǒng)中增加支持通過無線局域網(wǎng)互聯(lián)到Internet的功能,以使本系統(tǒng)能夠應(yīng)用于那些通過無線局域網(wǎng)互聯(lián)到Internet的環(huán)境。
參考文獻
[1] 孫利民,李建中,陳渝,等.無線傳感器網(wǎng)絡(luò)[M].北京:清華大學出版社,2005,5.
[2] 王曉楠,唐振民,錢煥延.無線傳感器網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò)的互聯(lián)通信[J].計算機工程,2009,35(24).
[3] 侯惠峰,劉湘雯,于宏毅,等.無線傳感器網(wǎng)絡(luò)與IPv6網(wǎng)絡(luò)的互聯(lián)方式研究[J].電信科學,2006,22(6).
[4] 鄭增威,吳朝暉,林懷忠,等.可靠傳感網(wǎng)聚類路由算法研究[J].浙江大學學報(工學版),2005,39(10).
[5] Comer DE.用TCP/IP進行網(wǎng)際互連(第一卷第五版)[M].北京:電子工業(yè)出版社,2007,5.
[6] 陳冬云.ATmega128單片機原理與開發(fā)指導[M].北京:機械工業(yè)出版社,2006,1.
[7] uIP協(xié)議棧研究網(wǎng).http://www.sics.se/~adam/uip/index.php/Main_Page.
[8] 鄭靈翔.嵌入式系統(tǒng)設(shè)計與應(yīng)用開發(fā)[M].北京:北京航空航天大學出版社,2006,7.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。