無線傳感器網(wǎng)絡與TCP/IP網(wǎng)絡互聯(lián)通信技術研究
無線傳感器網(wǎng)絡WSN(Wireless Sensor Networks)是由大量傳感器節(jié)點通過無線通信技術組成的自組織網(wǎng)絡。WSN具有成本低、功耗低、靈活性高、可擴展等優(yōu)點[1],在民用和軍事領域都具有廣泛的應用前景。特別是WSN接入到Internet已成為全新的研究熱點。如果能夠?qū)SN與Internet互聯(lián)起來,則可以通過Internet遠程訪問和控制WSN,而且WSN也可以將信息傳輸給遠端感興趣的用戶,不僅實現(xiàn)了網(wǎng)絡遠程監(jiān)控、診斷和系統(tǒng)升級的功能,而且也促進了用戶端共享更多的網(wǎng)絡信息資源。而這也將進一步促進WSN在環(huán)境監(jiān)測、醫(yī)療監(jiān)護、城市交通管理、倉儲管理、軍事偵察等領域的應用。
1 無線傳感器網(wǎng)絡與Internet的互聯(lián)方案分析
無線傳感器網(wǎng)絡具有以下特點:節(jié)點可供開發(fā)片上資源(如內(nèi)存等)不多;部分應用情形下節(jié)點數(shù)量眾多;節(jié)點可以靜止也可以移動等。因此WSN與Internet的互聯(lián)技術較之一般的設備連接Internet技術有更多的難點。隨著技術的發(fā)展,提出了越來越多的方案,這些方案在不同的場合有不同的應用。綜合起來可以分為以下幾種。
(1)通過IPv6進行互聯(lián)
在某些應用中,無線傳感器網(wǎng)絡應用中所需的節(jié)點數(shù)量非常多,如果每一個節(jié)點都分配一個IP地址,則需要的IP地址數(shù)量眾多[2]。但實際應用中沒有足夠的IP資源可用。而IPv6是下一代網(wǎng)絡協(xié)議,具有地址資源豐富,可以自動配置IP地址等優(yōu)點,可以滿足無線傳感器網(wǎng)絡節(jié)點對IP地址數(shù)量大的需求,所以在WSN互聯(lián)Internet技術中使用IPv6協(xié)議成為一個研究方向。但是由于Internet還是基于IPv4的TCP/IP協(xié)議,所以采用IPv6的WSN與Internet互聯(lián)需要進行地址轉(zhuǎn)換[3],并且目前使用IPv6的WSN還處于實驗網(wǎng)階段。
(2)通過GSM/CDMA網(wǎng)絡進行互聯(lián)
許多WSN網(wǎng)絡應用在偏遠區(qū)域,那里除了移動通信網(wǎng)絡設施外沒有其他的通信基礎設施,因此在這類區(qū)域中WSN互聯(lián)Internet必須借助于移動通信網(wǎng)。移動通信網(wǎng)覆蓋范圍廣,并且已過渡到3G CDMA網(wǎng)絡,都已經(jīng)能夠連接到Internet。因此WSN通過移動通信網(wǎng)很容易連接到Internet。但通過移動通信網(wǎng)互聯(lián),要求WSN節(jié)點有較強的無線射頻發(fā)射和接收功率,這將使WSN節(jié)點能耗大大增加,需要增加額外的射頻硬件或發(fā)射天線。且須支持無線通信接口的相關協(xié)議。
(3)代理服務器結(jié)構(gòu)
由于傳感器節(jié)點片上資源太少,無法在傳感器上完整實施與Internet互聯(lián)的TCP/IP協(xié)議,因此在傳感器網(wǎng)絡與TCP/IP網(wǎng)絡之間設置一個代理服務器是比較常用的方法。使用代理服務器的WSN與Internet互聯(lián)網(wǎng)結(jié)構(gòu)如圖1所示。
代理服務器結(jié)構(gòu)的缺點是,如果代理服務器失效,則整個傳感器網(wǎng)絡都無法接入到Internet。為了避免發(fā)生這種情況,可以再使用一個備份代理網(wǎng)關。
(4)直接實施TCP/IP協(xié)議
在傳感器網(wǎng)絡節(jié)點上實施TCP/IP協(xié)議,并與Internet直接互聯(lián)是一種比較理想的方案。網(wǎng)絡結(jié)構(gòu)如圖2所示。這種方案的優(yōu)點是不需要通過代理網(wǎng)關就能夠?qū)崿F(xiàn)與Internet無縫連接,減少傳輸時延。但是考慮到傳感器節(jié)點自身因素,這種方法大規(guī)模實施起來難度很大[5]。主要原因有:
?、僖驗門CP/IP協(xié)議簇龐大,在傳感器無法直接使用TCP/IP協(xié)議,只能根據(jù)網(wǎng)絡互聯(lián)要求實施實現(xiàn)互聯(lián)功能的主要部分協(xié)議,這要求程序設計人開發(fā)出一套簡化的TCP/IP協(xié)議組件。
?、诓糠謧鞲衅骶W(wǎng)絡應用于離城市較遠的偏僻地區(qū),這些地區(qū)沒有連接到Internet的基礎設施,因此即使傳感器網(wǎng)絡各節(jié)點實施了簡化的TCP/IP協(xié)議組件,仍沒有可連接的Internet接入點。
?、蹖τ跀?shù)量眾多的WSN網(wǎng)絡,每個WSN節(jié)點都分配一個IP地址,則地址數(shù)量過于龐大,目前的IPv4無法滿足要求。
④TCP協(xié)議是根據(jù)有線網(wǎng)絡設計的,有線網(wǎng)絡極少出現(xiàn)網(wǎng)絡差錯,數(shù)據(jù)包的丟失主要是由于網(wǎng)絡發(fā)生擁塞。而無線網(wǎng)絡與有線網(wǎng)絡的最大不同是,無線網(wǎng)絡極易發(fā)生高比特率錯誤,即由于無線鏈路的原因可能導致數(shù)據(jù)包連續(xù)丟失,這種情況會使TCP協(xié)議無法工作。因此TCP協(xié)議直接應用于無線網(wǎng)絡,其效率極其低下。
由于上述原因,這種WSN網(wǎng)絡與Internet的直接互聯(lián)目前處于研究起步階段,諸多問題還有待解決。
2 本系統(tǒng)采用的方案及設計
比較分析上述各種WSN與Internet互聯(lián)的方案,考慮到傳感器的硬件特點,結(jié)合目前技術發(fā)展的成熟度,本項目采用代理服務器結(jié)構(gòu)來連接Internet,如圖1所示。本結(jié)構(gòu)的關鍵是代理服務器或網(wǎng)關完成的功能及系統(tǒng)設計。本系統(tǒng)中的代理網(wǎng)關主要完成兩個功能。一是在傳感器網(wǎng)絡和Internet之間起協(xié)議轉(zhuǎn)換作用。傳感器網(wǎng)絡中的節(jié)點并不直接和外部Internet的主機進行通信,所有節(jié)點和外部主機的通信都通過代理網(wǎng)關進行,同時外部主機想要查找某個傳感器節(jié)點上的數(shù)據(jù)時,也是首先連接到代理網(wǎng)關,由代理網(wǎng)關進行后續(xù)處理。代理網(wǎng)關的另一個功能是作為傳感器網(wǎng)絡的特殊節(jié)點, 它可以周期性地主動訪問并接收其他傳感器節(jié)點的數(shù)據(jù)信息,并將這些信息存儲起來。當外部客戶端想要獲得傳感器網(wǎng)絡中某個特定傳感器節(jié)點的數(shù)據(jù)信息時,可以立即從代理網(wǎng)關中存儲的信息中查找得到,從而加快獲得信息的響應時間。很明顯,WSN的內(nèi)部各節(jié)點數(shù)據(jù)通信方法可以自由選擇,完全可以采用已經(jīng)成熟的Ad-hoc網(wǎng)絡的各種路由技術。
代理網(wǎng)關節(jié)點設計如圖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)關則是在普通的WSN節(jié)點模塊基礎上,增加CS8900A以太網(wǎng)絡控制器,可以連接到局域網(wǎng),從而與Internet互聯(lián)。同時代理網(wǎng)關節(jié)點通過MAX232連接到計算機。由于代理網(wǎng)關的數(shù)據(jù)通信處理量比普通的WSN節(jié)點要大得多,所以可以再增加一個RAM存儲器。
3 互聯(lián)協(xié)議實現(xiàn)
TCP/IP協(xié)議簇是使Internet中的計算機能互聯(lián)通信的一組協(xié)議。這些協(xié)議協(xié)同工作,各自完成不同的功能,能夠為用戶提供多達幾十種網(wǎng)絡應用。在高級應用場合,操作系統(tǒng)中一般需要支持完整的TCP/IP協(xié)議簇,但在相對單一應用的場所,只需要實現(xiàn)某一種功能的工業(yè)應用領域,完整實現(xiàn)TCP/IP協(xié)議簇顯得沒有必要。首先是因為工業(yè)應用芯片沒有足夠多的硬件資源,其次是過多的不需要的功能會減慢系統(tǒng)響應速度。對于本項目的傳感器網(wǎng)絡與Internet的互聯(lián),管理人員僅需要傳感器網(wǎng)絡節(jié)點監(jiān)測到的相關數(shù)據(jù),一般通過交互式Web服務器就可以得到,所以只需要應用層實現(xiàn)HTTP協(xié)議就可以了,其他應用層程序都可以舍棄不予實現(xiàn)。
目前國際上許多嵌入式產(chǎn)品供應商都根據(jù)嵌入式產(chǎn)品所實現(xiàn)功能的需要,在TCP/IP協(xié)議套件的基礎上進行簡化,根據(jù)具體的應用提供不同的協(xié)議模塊,保留基本的網(wǎng)絡通信功能,在可移植性方面做了各具特色的改進。本項目對TCP/IP協(xié)議的精簡參考了他們的做法[7],在協(xié)議程序代碼的實現(xiàn)過程中,主要考慮了以下兩點:
(1)精簡代碼。根據(jù)傳感器網(wǎng)絡互聯(lián)Internet的應用要求,盡量簡化TCP/IP協(xié)議簇,只實現(xiàn)基本的、必要的功能,使生成的二進制代碼盡量精簡,這樣做能夠顯著提高系統(tǒng)與傳感器網(wǎng)絡的交互能力,能夠適應傳感器節(jié)點上有限的內(nèi)存空間以及芯片處理速度。如圖4所示,本系統(tǒng)實現(xiàn)的互聯(lián)協(xié)議如圖中的灰色方框中的協(xié)議所示,實現(xiàn)的是TCP/IP協(xié)議簇的一部分協(xié)議。
(2)強移植性。傳感器的類型和型號眾多。精簡后的協(xié)議程序應盡量能夠應用于不同類型的傳感器元件。如果精簡后的程序在一種類型的傳感器上運行良好,而在另一種類型的傳感上無法實現(xiàn)互聯(lián),需要重新進行復雜的軟件開發(fā)工作,則大大增加開發(fā)的工作量。因此精簡后代碼的可移植性是非常重要的。這樣,在對傳感器節(jié)點進行升級或者更換時,除了與硬件直接相關的部分代碼需要重新開發(fā)外,不需要對整個互聯(lián)協(xié)議進行大的修改。
本項目精簡后的互聯(lián)協(xié)議組件稱為sip,意義為一個小型(small)TCP/IP協(xié)議組件。在本文第4節(jié)的代理網(wǎng)關主處理程序中出現(xiàn)的sip就是本系統(tǒng)開發(fā)的簡化互聯(lián)協(xié)議組件。
4 代理網(wǎng)關主處理程序
代理網(wǎng)關實際上相當于一個協(xié)議轉(zhuǎn)換程序。它能夠接收WSN網(wǎng)絡節(jié)點傳輸過來的數(shù)據(jù)信息,并將其按照TCP/IP協(xié)議的要求轉(zhuǎn)換成合適的數(shù)據(jù)格式。如果得到返回給WSN網(wǎng)絡節(jié)點的數(shù)據(jù),則按照WSN的要求將其轉(zhuǎn)換成適合于傳感器節(jié)點傳輸?shù)臄?shù)據(jù)格式。代理網(wǎng)關的功能相對復雜,其硬件和軟件設計在前面兩節(jié)中已討論過,這里只給出代理網(wǎng)關的主處理程序。
主處理程序的主要功能是通過簡化的互聯(lián)協(xié)議,實現(xiàn)與傳感器節(jié)點、Ethernet網(wǎng)絡接口的數(shù)據(jù)交互。因此在主處理程序的開始部分,首先對定時器、串口接口、Ethernet接口初始化。硬件初始化成功以后,開始啟動簡化的TCP/IP互聯(lián)協(xié)議,接著對arp協(xié)議和應用程序進行初始化。初始化完成后,主處理程序?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應用程序
sip_arp_init();
while(1)
{sip_len=eth_reve;
if(sip_len==0) //無數(shù)據(jù)接收,開始定時輪詢
{for(i=0;iSIP_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)絡控制器CS8900A完成,網(wǎng)絡層和傳輸層由單片機來處理。應用層則根據(jù)需要可以在單片機內(nèi)完成,也可以由單片機轉(zhuǎn)給用戶或終端設備完成。除了WEB服務之外,盡管其他應用層服務像SMTP協(xié)議支持功能也可以根據(jù)需要編寫相應的代碼[8],但一般不需要添加額外太多的應用層服務。
本項目設計的無線傳感器網(wǎng)絡與Internet的互聯(lián)系統(tǒng),在實際中得到了成功應用。筆者下一步工作重點是在系統(tǒng)中增加支持通過無線局域網(wǎng)互聯(lián)到Internet的功能,以使本系統(tǒng)能夠應用于那些通過無線局域網(wǎng)互聯(lián)到Internet的環(huán)境。
參考文獻
[1] 孫利民,李建中,陳渝,等.無線傳感器網(wǎng)絡[M].北京:清華大學出版社,2005,5.
[2] 王曉楠,唐振民,錢煥延.無線傳感器網(wǎng)絡與IPv6網(wǎng)絡的互聯(lián)通信[J].計算機工程,2009,35(24).
[3] 侯惠峰,劉湘雯,于宏毅,等.無線傳感器網(wǎng)絡與IPv6網(wǎng)絡的互聯(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)設計與應用開發(fā)[M].北京:北京航空航天大學出版社,2006,7.
傳感器相關文章:傳感器工作原理
tcp/ip相關文章:tcp/ip是什么
通信相關文章:通信原理
風速傳感器相關文章:風速傳感器原理
評論