專(zhuān)利名稱(chēng)::基于中間件思想實(shí)現(xiàn)節(jié)點(diǎn)軟件的傳感器網(wǎng)絡(luò)及通信方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及基于中間件思想實(shí)現(xiàn)節(jié)點(diǎn)軟件的傳感器網(wǎng)絡(luò)及通信方法,屬于無(wú)線(xiàn)傳感器網(wǎng)絡(luò)領(lǐng)域。技術(shù)背景無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(WirelessSensorNetwork——WSN)是由大量密集部署在檢測(cè)區(qū)域的自治節(jié)點(diǎn)構(gòu)成的自組織網(wǎng)絡(luò)及無(wú)線(xiàn)通信系統(tǒng)。它綜合了大量復(fù)雜的技術(shù)和學(xué)科,如傳感器技術(shù)、嵌入式計(jì)算技術(shù)、網(wǎng)絡(luò)及通信技術(shù)、分布式系統(tǒng)及分布式計(jì)算技術(shù)。它既是多學(xué)科高度交叉的具有高度挑戰(zhàn)性的前沿研究領(lǐng)域,也是國(guó)內(nèi)外公認(rèn)的具有廣闊發(fā)展前景的高技術(shù)產(chǎn)業(yè)。近年來(lái),隨著傳感器技術(shù)、嵌入式技術(shù)以及低功耗無(wú)線(xiàn)通信技術(shù)的發(fā)展,無(wú)線(xiàn)傳感器網(wǎng)絡(luò)在環(huán)境監(jiān)測(cè)、建筑物結(jié)構(gòu)監(jiān)測(cè)、工業(yè)智能控制、戰(zhàn)場(chǎng)監(jiān)視以及交通流量監(jiān)測(cè)等諸多方面的應(yīng)用廣泛地使用了無(wú)線(xiàn)傳感器網(wǎng)絡(luò)技術(shù)。傳感器網(wǎng)絡(luò)具有可靠、準(zhǔn)確、靈活、低廉、易于部署等優(yōu)良特性,使其具有廣闊的應(yīng)用前景,因此,傳感器網(wǎng)絡(luò)得到越來(lái)越多的關(guān)注。但是,目前的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)仍存在下列問(wèn)題需要解決1.傳統(tǒng)的傳感器網(wǎng)絡(luò)節(jié)點(diǎn),將微處理器同傳感器探頭集成在一塊電路板上,這樣雖然增加了節(jié)點(diǎn)的可靠性,但是降低了系統(tǒng)功能的靈活性。當(dāng)需要檢測(cè)的數(shù)據(jù)類(lèi)型發(fā)生改變,或者傳感器節(jié)點(diǎn)部署環(huán)境發(fā)生改變時(shí)必須重新制作電路版,將新的探頭和微處理器整合到一起,并需要重寫(xiě)相應(yīng)的傳感器節(jié)點(diǎn)軟件。2.當(dāng)前的傳感器節(jié)點(diǎn),有些直接在嵌入式系統(tǒng)中實(shí)現(xiàn)相應(yīng)接口的驅(qū)動(dòng)程序,并按照探頭所提供的通信協(xié)議進(jìn)行數(shù)據(jù)采集和解析,還有一些節(jié)點(diǎn)在嵌入式系統(tǒng)中移植了已有的一些嵌入式操作系統(tǒng)如MC/0S,TinyOS等等,之后利用操作系統(tǒng)提供的一些API對(duì)接口進(jìn)行操作,并實(shí)現(xiàn)相應(yīng)探頭的通信協(xié)議完成數(shù)據(jù)采集工作。這兩種方式下,上層應(yīng)用程序都需要隨著傳感器探頭的改變而修改代碼,從而為系統(tǒng)的擴(kuò)展帶來(lái)了極大的麻煩。3.傳感器網(wǎng)絡(luò)的重要應(yīng)用是監(jiān)測(cè)應(yīng)用,比如農(nóng)田作物監(jiān)測(cè)、建筑物監(jiān)測(cè)、湖泊水質(zhì)監(jiān)測(cè)等。在這些應(yīng)用中,節(jié)點(diǎn)需要每隔一定時(shí)間間隔對(duì)被監(jiān)測(cè)對(duì)象進(jìn)行感知,并將所采集的數(shù)據(jù)以多跳的方式發(fā)送到匯聚節(jié)點(diǎn)上去。在同一無(wú)線(xiàn)廣播區(qū)域,可能會(huì)導(dǎo)致嚴(yán)重的包碰撞、網(wǎng)絡(luò)擁塞、包丟失,在最嚴(yán)重的情況下甚至發(fā)生擁塞崩潰。而節(jié)點(diǎn)間負(fù)載的不平衡會(huì)進(jìn)一步加重這種不良效應(yīng)的程度,造成能量消耗熱點(diǎn)。負(fù)載過(guò)高的節(jié)點(diǎn)會(huì)因迅速消耗完它們的電能而過(guò)早死亡,而且可能使整個(gè)網(wǎng)絡(luò)過(guò)早死亡或陷于癱瘓。為了解決這個(gè)問(wèn)題,必須要從網(wǎng)絡(luò)的底層加以解決。4.目前國(guó)內(nèi)已有的傳感器網(wǎng)絡(luò),例如中科院計(jì)算技術(shù)研究所開(kāi)發(fā)的EZ210節(jié)點(diǎn),在組網(wǎng)過(guò)程中傳感器節(jié)點(diǎn)同匯聚節(jié)點(diǎn)直接相連,整個(gè)網(wǎng)絡(luò)是一個(gè)圖7所示的星型結(jié)構(gòu),其網(wǎng)絡(luò)層過(guò)于簡(jiǎn)單,不能適合大規(guī)模的無(wú)線(xiàn)傳感器節(jié)點(diǎn)組網(wǎng),不適用于復(fù)雜環(huán)境下的實(shí)時(shí)檢測(cè)目標(biāo)
發(fā)明內(nèi)容本發(fā)明的發(fā)明目的是解決大規(guī)模傳感器網(wǎng)絡(luò)下的傳感器節(jié)點(diǎn)多跳路由組網(wǎng)問(wèn)題,提升傳感器網(wǎng)絡(luò)系統(tǒng)擴(kuò)展便捷性,以及降低多種類(lèi)型數(shù)據(jù)檢測(cè)的處理復(fù)雜度。本發(fā)明采用的技術(shù)方案為一種基于中間件思想實(shí)現(xiàn)節(jié)點(diǎn)軟件的傳感器網(wǎng)絡(luò),是由匯聚節(jié)點(diǎn)和多個(gè)傳感器節(jié)點(diǎn)組成的網(wǎng)絡(luò),其中傳感器節(jié)點(diǎn)的硬件由處理器、射頻模塊、存儲(chǔ)器、傳感器探頭和電源模塊組成,射頻模塊、存儲(chǔ)器、傳感器探頭和處理器相連,電源模塊為各模塊提供電源;傳感器節(jié)點(diǎn)的軟件包括網(wǎng)絡(luò)協(xié)議棧、標(biāo)準(zhǔn)接口驅(qū)動(dòng)模塊、信息交換處理模塊及上層應(yīng)用相關(guān)邏輯模塊,其中,由標(biāo)準(zhǔn)接口驅(qū)動(dòng)模塊構(gòu)成的標(biāo)準(zhǔn)接口驅(qū)動(dòng)程序?qū)釉诰W(wǎng)絡(luò)協(xié)議棧之上,每一個(gè)標(biāo)準(zhǔn)接口對(duì)應(yīng)一個(gè)驅(qū)動(dòng)程序模塊;由信息交換處理模塊構(gòu)成的信息交換處理層負(fù)責(zé)從各個(gè)標(biāo)準(zhǔn)接口讀取數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)化,對(duì)多個(gè)傳感器傳來(lái)的數(shù)據(jù)進(jìn)行數(shù)據(jù)融合處理,并且在一定時(shí)間間隔之后對(duì)傳感器節(jié)點(diǎn)進(jìn)行時(shí)間同步,之后將處理好的數(shù)據(jù)上傳給應(yīng)用層進(jìn)行進(jìn)一步處理;底層硬件同上層應(yīng)用之間以中間件層進(jìn)行隔離;傳感器節(jié)點(diǎn)之間以及傳感器節(jié)點(diǎn)與匯聚節(jié)點(diǎn)之間以多跳形式構(gòu)成網(wǎng)絡(luò)。一種在上述無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中的通信方法,包括如下步驟當(dāng)傳感器節(jié)點(diǎn)通過(guò)探頭采集環(huán)境數(shù)據(jù)后,首先由處理器將數(shù)據(jù)讀入存儲(chǔ)器中,將數(shù)據(jù)劃分成幀,附加幀頭信息,傳遞給無(wú)線(xiàn)射頻模塊,由該模塊以無(wú)線(xiàn)的形式發(fā)送出去;在匯聚節(jié)點(diǎn)或其他負(fù)責(zé)轉(zhuǎn)發(fā)的傳感器節(jié)點(diǎn)處,通過(guò)無(wú)線(xiàn)射頻模塊將數(shù)據(jù)接收進(jìn)來(lái),并生成中斷,通知該節(jié)點(diǎn)上的處理器讀數(shù)據(jù),處理器讀取無(wú)線(xiàn)射頻模塊的接收緩存;如果是轉(zhuǎn)發(fā)的傳感器節(jié)點(diǎn)接收數(shù)據(jù),則按照自己本地的路由表將報(bào)文轉(zhuǎn)發(fā)出去;如果是匯聚節(jié)點(diǎn)接收到數(shù)據(jù),則將數(shù)據(jù)讀入并去掉幀頭,進(jìn)行解析,最后將數(shù)據(jù)通過(guò)RS232接口提供給上位機(jī)處理,完成整個(gè)通信過(guò)程。在本發(fā)明的實(shí)施措施中所述中間件層包括CommMapping層、SensorMapping層、socket模塊、Local模塊、Remote模塊、RoutingModule模塊,其中不同的硬件接口協(xié)議通過(guò)CommM邵ping層進(jìn)行屏蔽,使得不同接口的操作可以以統(tǒng)一的方式進(jìn)行操作;socket模塊向上層應(yīng)用提供統(tǒng)一的操作接口,向下則調(diào)用CommMapping層提供的針對(duì)不同接口屏蔽后使用的統(tǒng)一的一套操作接口;對(duì)于不同傳感器探頭所使用的通信協(xié)議通過(guò)SensorMa卯ing層進(jìn)行映射,使之映射到標(biāo)準(zhǔn)socket的操作上;-Local模塊負(fù)責(zé)處理socket模塊接收的針對(duì)本地資源的相應(yīng)操作;Remote模塊負(fù)責(zé)處理socket模塊接收到的對(duì)遠(yuǎn)程資源的使用請(qǐng)求;RoutingModule模塊根據(jù)路由算法生成路由表,負(fù)責(zé)將遠(yuǎn)程資源使用請(qǐng)求路由轉(zhuǎn)發(fā)到指定節(jié)點(diǎn)。所述網(wǎng)絡(luò)協(xié)議棧由物理層、媒體接入控制層、負(fù)責(zé)報(bào)文路由轉(zhuǎn)發(fā)的網(wǎng)絡(luò)層、傳輸控制層組成,其中-物理層負(fù)責(zé)完成無(wú)線(xiàn)鏈路的連接,確保原始的數(shù)據(jù)可在物理媒體上完成傳輸;媒體接入層負(fù)責(zé)判斷當(dāng)前是否可以向物理層發(fā)送數(shù)據(jù),如果可以發(fā)送,則向數(shù)據(jù)報(bào)文添加控制信息,將數(shù)據(jù)和控制信息以規(guī)定的格式發(fā)送到物理層,在接收數(shù)據(jù)時(shí)首先判斷輸入的信息并是否發(fā)生傳輸錯(cuò)誤,如果沒(méi)有錯(cuò)誤,則去掉控制信息再發(fā)送至上層;網(wǎng)絡(luò)層根據(jù)獲取到的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)拓?fù)湫畔⑸陕酚杀?,在接收到?bào)文后,根據(jù)目的地址和本地路由表對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā),完成點(diǎn)到點(diǎn)可靠傳輸;傳輸控制層的作用是將數(shù)據(jù)報(bào)文加上必要的報(bào)文頭部,包括源地址、目的地址、報(bào)文序列號(hào)、確認(rèn)報(bào)文序號(hào)等傳輸控制信息,保證端到端的可靠傳輸。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為1.對(duì)于上層應(yīng)用來(lái)說(shuō),底層硬件接口以及傳感器探頭相關(guān)的實(shí)現(xiàn)全都不用關(guān)心,只需要在中間件middleware和應(yīng)用Application之間定義用于交互的數(shù)據(jù)結(jié)構(gòu)即可完成對(duì)傳感器數(shù)據(jù)的使用,極大地提高了無(wú)線(xiàn)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的擴(kuò)展能力。2.傳感器節(jié)點(diǎn)的探頭可以以即插即用的方式進(jìn)行更換,根據(jù)要檢測(cè)的數(shù)據(jù)類(lèi)型不同,可以調(diào)整傳感器節(jié)點(diǎn)上連接的傳感器探頭。圖1是傳感器節(jié)點(diǎn)的硬件體系結(jié)構(gòu)框架;圖2是基于中間件思想的傳感器網(wǎng)絡(luò)節(jié)點(diǎn)軟件結(jié)構(gòu)圖;圖3是傳感器節(jié)點(diǎn)軟件總體結(jié)構(gòu)圖;圖4是傳感器節(jié)點(diǎn)網(wǎng)絡(luò)協(xié)議棧;圖5是本發(fā)明傳感器節(jié)點(diǎn)同匯聚節(jié)點(diǎn)形成的網(wǎng)絡(luò)拓?fù)?;圖6是傳感器節(jié)點(diǎn)同匯聚節(jié)點(diǎn)通信過(guò)程。具體實(shí)施方式本發(fā)明的基于中間件思想實(shí)現(xiàn)節(jié)點(diǎn)軟件的傳感器網(wǎng)絡(luò),是一種由匯聚節(jié)點(diǎn)和多個(gè)傳感器節(jié)點(diǎn)組成的網(wǎng)絡(luò)。其硬件的總體結(jié)構(gòu)圖如圖1所示,傳感器節(jié)點(diǎn)由圖中所示的以nRF905為核心芯片實(shí)現(xiàn)的射頻模塊、以ARM7為內(nèi)核的處理器芯片、片載存儲(chǔ)器ROM和RAM、多類(lèi)型的傳感器探頭、以及電源模塊組成。射頻模塊、存儲(chǔ)器、傳感器探頭和處理器相連,電源模塊為各模塊提供電源。傳感器節(jié)點(diǎn)的處理器芯片選用由Philip公司生產(chǎn)的ARM7內(nèi)核的微處理器LPC22節(jié),無(wú)線(xiàn)通信部分的核心芯片選用Nordfc公司生產(chǎn)的nRF9—05芯片,具體的制版及編程方法見(jiàn)這兩款芯片的用戶(hù)手冊(cè)。其中利用ARM7芯片提供的I/0管腳可以實(shí)現(xiàn)RS232、SPI、UART以及RS485等標(biāo)準(zhǔn)接口。無(wú)線(xiàn)通信方面,nRF905芯片帶有C—Sense管腳,可以利用這個(gè)管腳實(shí)現(xiàn)載波偵聽(tīng);并且nRF905芯片還可以靈活地設(shè)置通信頻點(diǎn)、發(fā)送功率等參數(shù),為傳感器節(jié)點(diǎn)的良好通信提供了可能。本發(fā)明將傳感器探頭同處理器電路版作為兩個(gè)獨(dú)立的部分進(jìn)行處理,兩部分通過(guò)標(biāo)準(zhǔn)接口進(jìn)行連接。這樣可克服現(xiàn)有技術(shù)中的第一個(gè)問(wèn)題。為克服現(xiàn)有技術(shù)中的第二個(gè)問(wèn)題,我們將中間件思想用到無(wú)線(xiàn)傳感器網(wǎng)絡(luò)領(lǐng)域,將上層應(yīng)用同底層的傳感器操作以及接口協(xié)議隔離開(kāi),使得傳感器的改變不影響應(yīng)用程序代碼的修改,為整個(gè)系統(tǒng)的擴(kuò)展提供極大的便捷。因此在其軟件方面引入了中間件思想,設(shè)計(jì)middleware層用來(lái)隔離底層的硬件同上層的應(yīng)用,使得上層應(yīng)用能夠以透明的方式對(duì)底層的數(shù)據(jù)進(jìn)行訪問(wèn)。本節(jié)點(diǎn)中間件層結(jié)構(gòu)圖如圖2所示。硬件接口協(xié)議的不同通過(guò)CommMapping層(通信映射層)進(jìn)行屏蔽,使得不同接口的操作如打開(kāi)、關(guān)閉、讀、寫(xiě)、查詢(xún)狀態(tài)等操作可以以統(tǒng)一的方式進(jìn)行操作。例如RS232串口,根據(jù)其通信協(xié)議以及A固7的指令系統(tǒng)、接口涉及到的寄存器、編碼規(guī)則,實(shí)現(xiàn)RS232接口的通信協(xié)議。數(shù)據(jù)接收以中斷方式實(shí)現(xiàn)。當(dāng)有使用RS232接口與處理器通信的傳感探頭接入節(jié)點(diǎn)時(shí),當(dāng)中斷產(chǎn)生后,在中斷處理函數(shù)中可以接收到數(shù)據(jù),并且能夠感知有一個(gè)探頭通過(guò)RS232接口連接進(jìn)入節(jié)點(diǎn)。中斷處理函數(shù)將數(shù)據(jù)封裝并調(diào)用SensorMapping(傳感映射層)模塊的Receive接口通知SensorMapping模塊有數(shù)據(jù)從底層RS232接口傳入SensorMapping模塊。對(duì)于不同傳感器探頭所使用的通信協(xié)議則通過(guò)SensorMapping進(jìn)行映射,使之映射到標(biāo)準(zhǔn)socket的操作上。首先,在SensorMapping初始化時(shí)讀取傳感器探頭的數(shù)據(jù)格式描述文件,該文件需要包含所有在該應(yīng)用中可能連接到傳感器節(jié)點(diǎn)的傳感探頭。其次,當(dāng)SensorMapping模塊接收到Co誦Mapping模塊發(fā)送來(lái)的數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行解析,識(shí)別出接入節(jié)點(diǎn)的探頭類(lèi)型。再次,第一次通過(guò)某個(gè)硬件接口接收到特定探頭的數(shù)據(jù)時(shí)需要在模塊內(nèi)記錄如表1所示的SensorMapping模塊探頭信息,并分配節(jié)點(diǎn)內(nèi)部唯一的標(biāo)識(shí),32位IP地址。IPPhysicalInterfaceSensorType192.168.0.1RS232nultraSonic表l<table>tableseeoriginaldocumentpage7</column></row><table>表2<table>tableseeoriginaldocumentpage7</column></row><table>器、CPU、各種接口,RF模塊)的相應(yīng)操作,Remote模塊(遠(yuǎn)程請(qǐng)求模塊)負(fù)責(zé)處理socket模塊接收到的對(duì)遠(yuǎn)程資源的使用請(qǐng)求。socket模塊向上層應(yīng)用提供統(tǒng)一的操作接口,向下則調(diào)用CommMapping層提供的針對(duì)不同接口屏蔽后使用的統(tǒng)一的一套操作接口。RoutingModule(路由模塊)根據(jù)路由算法生成路由表,負(fù)責(zé)將遠(yuǎn)程資源使用請(qǐng)求路由轉(zhuǎn)發(fā)到指定節(jié)點(diǎn)。傳感器節(jié)點(diǎn)的軟件總體結(jié)構(gòu)如圖3所示,主要由網(wǎng)絡(luò)協(xié)議棧、標(biāo)準(zhǔn)接口驅(qū)動(dòng)、信息處理以及上層應(yīng)用相關(guān)邏輯幾個(gè)模塊組成,這些模塊均對(duì)應(yīng)到中間件中相應(yīng)模塊的具體實(shí)現(xiàn)。以上圖2和圖3均說(shuō)明了本發(fā)明的軟件結(jié)構(gòu),其中,圖2重點(diǎn)從中間件思想角度闡述軟件結(jié)構(gòu),突出中間件思想,屏蔽應(yīng)用和底層硬件的差異性。針對(duì)本節(jié)點(diǎn)所采用的芯片,傳感器探頭,硬件接口來(lái)闡述各個(gè)模塊的設(shè)計(jì),將圖3中闡述的通用傳感器節(jié)點(diǎn)軟件結(jié)構(gòu)具體化,在中間件層還提出將對(duì)各種資源的訪問(wèn)操作統(tǒng)一的socket上的思想。這些都需要將中間件層的軟件結(jié)構(gòu)進(jìn)行細(xì)化闡述。圖3則重點(diǎn)從功能角度闡述軟件結(jié)構(gòu),突出一個(gè)傳感器節(jié)點(diǎn)軟件所需要具備的必要的功能,圖3為傳感器節(jié)點(diǎn)的通用結(jié)構(gòu),通用結(jié)構(gòu)中的各個(gè)模塊所具有的功能都可以在中間件層中找到相應(yīng)的對(duì)應(yīng)模塊網(wǎng)絡(luò)協(xié)議棧由圖4所示的物理層(在nRF905芯片中已經(jīng)包含了物理層協(xié)議的相關(guān)功能)、媒體接入控制層、負(fù)責(zé)報(bào)文路由轉(zhuǎn)發(fā)的網(wǎng)絡(luò)層、傳輸控制等協(xié)議組成。其中物理層負(fù)責(zé)完成無(wú)線(xiàn)鏈路能夠連接,確保原始的數(shù)據(jù)可在物理媒體上完成傳輸;媒體接入層的主要功能是判斷當(dāng)前是否可以向物理層發(fā)送數(shù)據(jù),如果可以發(fā)送需要向數(shù)據(jù)報(bào)文添加控制信息,最終將數(shù)據(jù)以及控制信息以規(guī)定的格式發(fā)送到物理層,在接收數(shù)據(jù)時(shí)MAC協(xié)議首先判斷輸入的信息并是否發(fā)生傳輸錯(cuò)誤,如果沒(méi)有錯(cuò)誤,則去掉控制信息發(fā)送至上層;網(wǎng)絡(luò)層的主要功能是,根據(jù)獲取到的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)拓?fù)湫畔?,生成路由表,在接收到?bào)文后根據(jù)目的地址和本地路由表對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā),完成點(diǎn)到點(diǎn)可靠傳輸;傳輸控制層,將數(shù)據(jù)報(bào)文加上必要的報(bào)文頭部,包括源地址、目的地址、報(bào)文序列號(hào)、確認(rèn)報(bào)文序號(hào)等傳輸控制信息,保證端到端的可靠傳輸。在網(wǎng)絡(luò)協(xié)議棧之上是標(biāo)準(zhǔn)接口驅(qū)動(dòng)程序?qū)?,每一個(gè)標(biāo)準(zhǔn)接口對(duì)應(yīng)一個(gè)驅(qū)動(dòng)程序模塊,完成對(duì)該接口的讀寫(xiě)等操作,以便從相應(yīng)的接口連接的傳感器探頭讀取數(shù)據(jù)。信息交換處理層,負(fù)責(zé)從各個(gè)標(biāo)準(zhǔn)接口讀取數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)化,對(duì)多個(gè)傳感器傳來(lái)的數(shù)據(jù)進(jìn)行數(shù)據(jù)融合處理。并且在一定時(shí)間間隔之后對(duì)傳感器節(jié)點(diǎn)進(jìn)行時(shí)間同步,還可以根據(jù)應(yīng)用的需要對(duì)傳感器的物理位置進(jìn)行定位。之后將處理好的數(shù)據(jù)上傳給應(yīng)用層進(jìn)行進(jìn)一步處理。本發(fā)明采用圖5所示傳感器網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),傳感器節(jié)點(diǎn)之間以及傳感器節(jié)點(diǎn)同匯聚節(jié)點(diǎn)以多跳形式構(gòu)成復(fù)雜的網(wǎng)絡(luò)拓?fù)?。在這種拓?fù)浣Y(jié)構(gòu)下,傳感器節(jié)點(diǎn)不僅要負(fù)責(zé)檢測(cè)環(huán)境數(shù)據(jù),向外發(fā)送,而且還要接收其他傳感器節(jié)點(diǎn)傳來(lái)的數(shù)據(jù),并負(fù)責(zé)路由轉(zhuǎn)發(fā),在每個(gè)傳感器節(jié)點(diǎn)中都要保存一份整個(gè)傳感器網(wǎng)絡(luò)的拓?fù)湫畔⒒蚵酚杀?。也就是說(shuō),在本發(fā)明中傳感器節(jié)點(diǎn)除了承擔(dān)傳統(tǒng)傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)所要承擔(dān)的感知數(shù)據(jù)的職責(zé)外,還要承擔(dān)路由器的職責(zé)。本發(fā)明采用多跳路由的方式進(jìn)行組網(wǎng),不僅擴(kuò)大了傳感器節(jié)點(diǎn)同匯聚節(jié)點(diǎn)之間的距離,而且使得傳感器網(wǎng)絡(luò)節(jié)點(diǎn)在部署時(shí)受到的限制更少,擴(kuò)大了整個(gè)傳感器網(wǎng)絡(luò)能夠覆蓋的區(qū)域。圖6為傳感器節(jié)點(diǎn)同匯聚節(jié)點(diǎn)之間的通信過(guò)程。當(dāng)傳感器節(jié)點(diǎn)通過(guò)探頭采集環(huán)境數(shù)據(jù)后,首先由處理器將數(shù)據(jù)讀入片載ROM、R層中,將數(shù)據(jù)劃分成幀,附加幀頭信息,傳遞給無(wú)線(xiàn)射頻模塊,由該模塊以無(wú)線(xiàn)的形式發(fā)送出去。在匯聚節(jié)點(diǎn)或其他負(fù)責(zé)轉(zhuǎn)發(fā)的傳感器節(jié)點(diǎn)處,通過(guò)無(wú)線(xiàn)射頻模塊將數(shù)據(jù)接收進(jìn)來(lái),并生成中斷,通知該節(jié)點(diǎn)上的處理器讀數(shù)據(jù),處理器讀取無(wú)線(xiàn)射頻模塊接收緩存。如果是轉(zhuǎn)發(fā)的傳感器節(jié)點(diǎn)接收數(shù)據(jù),需要按照自己本地的路由表將報(bào)文轉(zhuǎn)發(fā)出去,如果是匯聚節(jié)點(diǎn)接收到數(shù)據(jù)則將數(shù)據(jù)讀入并去掉幀頭,進(jìn)行解析,最后將數(shù)據(jù)通過(guò)RS232接口提供給PC或其他上位機(jī)處理。完成整個(gè)通信過(guò)程。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。權(quán)利要求1.一種基于中間件思想實(shí)現(xiàn)節(jié)點(diǎn)軟件的傳感器網(wǎng)絡(luò),是由匯聚節(jié)點(diǎn)和多個(gè)傳感器節(jié)點(diǎn)組成的網(wǎng)絡(luò),其特征在于-傳感器節(jié)點(diǎn)的硬件由處理器、射頻模塊、存儲(chǔ)器、傳感器探頭和電源模塊組成,射頻模塊、存儲(chǔ)器、傳感器探頭和處理器相連,電源模塊為各模塊提供電源;傳感器節(jié)點(diǎn)的軟件包括網(wǎng)絡(luò)協(xié)議棧、標(biāo)準(zhǔn)接口驅(qū)動(dòng)模塊、信息交換處理模塊及上層應(yīng)用相關(guān)邏輯模塊,其中,由標(biāo)準(zhǔn)接口驅(qū)動(dòng)模塊構(gòu)成的標(biāo)準(zhǔn)接口驅(qū)動(dòng)程序?qū)釉诰W(wǎng)絡(luò)協(xié)議棧之上,每一個(gè)標(biāo)準(zhǔn)接口對(duì)應(yīng)一個(gè)驅(qū)動(dòng)程序模塊;由信息交換處理模塊構(gòu)成的信息交換處理層負(fù)責(zé)從各個(gè)標(biāo)準(zhǔn)接口讀取數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)化,對(duì)多個(gè)傳感器傳來(lái)的數(shù)據(jù)進(jìn)行數(shù)據(jù)融合處理,并且在一定時(shí)間間隔之后對(duì)傳感器節(jié)點(diǎn)進(jìn)行時(shí)間同步,之后將處理好的數(shù)據(jù)上傳給應(yīng)用層進(jìn)行進(jìn)一步處理;底層硬件同上層應(yīng)用之間以中間件層進(jìn)行隔離;傳感器節(jié)點(diǎn)之間以及傳感器節(jié)點(diǎn)與匯聚節(jié)點(diǎn)之間以多跳形式構(gòu)成網(wǎng)絡(luò)。2.如權(quán)利要求1所述的基于中間件思想實(shí)現(xiàn)節(jié)點(diǎn)軟件的傳感器網(wǎng)絡(luò),其特征在于所述中間件層包括Co,Mapping層(通信映射層)、SensorMapping層(傳感映射層)、socket模塊(套接字模塊)、Local模塊(本地請(qǐng)求模塊)、Remote模塊(遠(yuǎn)程請(qǐng)求模塊)、RoutingModule模塊(路由模塊),其中不同的硬件接口協(xié)議通過(guò)CommMapping層進(jìn)行屏蔽,使得不同接口的操作可以以統(tǒng)一的方式進(jìn)行操作;socket模塊向上層應(yīng)用提供統(tǒng)一的操作接口,向下則調(diào)用CoramMapping層提供的針對(duì)不同接口屏蔽后使用的統(tǒng)一的一套操作接口;對(duì)于不同傳感器探頭所使用的通信協(xié)議通過(guò)SensorMapping層進(jìn)行映射,使之映射到標(biāo)準(zhǔn)socket的操作上;Local模塊負(fù)責(zé)處理socket模塊接收的針對(duì)本地資源的相應(yīng)操作;Remote模塊負(fù)責(zé)處理socket模塊接收到的對(duì)遠(yuǎn)程資源的使用請(qǐng)求;RoutingModule模塊根據(jù)路由算法生成路由表,負(fù)責(zé)將遠(yuǎn)程資源使用請(qǐng)求路由轉(zhuǎn)發(fā)到指定節(jié)點(diǎn)。3.如權(quán)利要求1或2所述的基于中間件思想實(shí)現(xiàn)節(jié)點(diǎn)軟件的傳感器網(wǎng)絡(luò),其特征在于所述網(wǎng)絡(luò)協(xié)議棧由物理層、媒體接入控制層、負(fù)責(zé)報(bào)文路由轉(zhuǎn)發(fā)的網(wǎng)絡(luò)層、傳輸控制層組成,其中物理層負(fù)責(zé)完成無(wú)線(xiàn)鏈路的連接,確保原始的數(shù)據(jù)可在物理媒體上完成傳輸;媒體接入層負(fù)責(zé)判斷當(dāng)前是否可以向物理層發(fā)送數(shù)據(jù),如果可以發(fā)送,則向數(shù)據(jù)報(bào)文添加控制信息,將數(shù)據(jù)和控制信息以規(guī)定的格式發(fā)送到物理層,在接收數(shù)據(jù)時(shí)首先判斷輸入的信息并是否發(fā)生傳輸錯(cuò)誤,如果沒(méi)有錯(cuò)誤,則去掉控制信息再發(fā)送至上層;網(wǎng)絡(luò)層根據(jù)獲取到的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)拓?fù)湫畔⑸陕酚杀恚诮邮盏綀?bào)文后,根據(jù)目的地址和本地路由表對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā),完成點(diǎn)到點(diǎn)可靠傳輸;傳輸控制層的作用是將數(shù)據(jù)報(bào)文加上必要的報(bào)文頭部,包括源地址、目的地址、報(bào)文序列號(hào)、確認(rèn)報(bào)文序號(hào)等傳輸控制信息,保證端到端的可靠傳輸。4.一種在基于中間件思想實(shí)現(xiàn)節(jié)點(diǎn)軟件的傳感器網(wǎng)絡(luò)中的通信方法,其特征在于包括如下步驟當(dāng)傳感器節(jié)點(diǎn)通過(guò)探頭采集環(huán)境數(shù)據(jù)后,首先由處理器將數(shù)據(jù)讀入存儲(chǔ)器中,將數(shù)據(jù)劃分成幀,附加幀頭信息,傳遞給無(wú)線(xiàn)射頻模塊,由該模塊以無(wú)線(xiàn)的形式發(fā)送出去;在匯聚節(jié)點(diǎn)或其他負(fù)責(zé)轉(zhuǎn)發(fā)的傳感器節(jié)點(diǎn)處,通過(guò)無(wú)線(xiàn)射頻模塊將數(shù)據(jù)接收進(jìn)來(lái),并生成中斷,通知該節(jié)點(diǎn)上的處理器讀數(shù)據(jù),處理器讀取無(wú)線(xiàn)射頻模塊的接收緩存;如果是轉(zhuǎn)發(fā)的傳感器節(jié)點(diǎn)接收數(shù)據(jù),則按照自己本地的路由表將報(bào)文轉(zhuǎn)發(fā)出去;如果是匯聚節(jié)點(diǎn)接收到數(shù)據(jù),則將數(shù)據(jù)讀入并去掉幀頭,進(jìn)行解析,最后將數(shù)據(jù)通過(guò)RS232接口提供給上位機(jī)處理,完成整個(gè)通信過(guò)程。全文摘要本發(fā)明涉及多類(lèi)型探頭具有路由組網(wǎng)能力的多信息融合無(wú)線(xiàn)傳感器網(wǎng)絡(luò)及通信方法,屬于無(wú)線(xiàn)傳感器網(wǎng)絡(luò)領(lǐng)域。其傳感器節(jié)點(diǎn)的硬件由處理器、射頻模塊、存儲(chǔ)器、傳感器探頭和電源模塊組成;傳感器節(jié)點(diǎn)的軟件包括網(wǎng)絡(luò)協(xié)議棧、標(biāo)準(zhǔn)接口驅(qū)動(dòng)模塊、信息交換處理模塊及上層應(yīng)用相關(guān)邏輯模塊,其中,由標(biāo)準(zhǔn)接口驅(qū)動(dòng)模塊構(gòu)成的標(biāo)準(zhǔn)接口驅(qū)動(dòng)程序?qū)釉诰W(wǎng)絡(luò)協(xié)議棧之上,每一個(gè)標(biāo)準(zhǔn)接口對(duì)應(yīng)一個(gè)驅(qū)動(dòng)程序模塊;由信息交換處理模塊構(gòu)成的信息交換處理層負(fù)責(zé)從各個(gè)標(biāo)準(zhǔn)接口讀取數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)化,對(duì)多個(gè)傳感器傳來(lái)的數(shù)據(jù)進(jìn)行數(shù)據(jù)融合處理,并且在一定時(shí)間間隔之后對(duì)傳感器節(jié)點(diǎn)進(jìn)行時(shí)間同步,之后將處理好的數(shù)據(jù)上傳給應(yīng)用層進(jìn)行進(jìn)一步處理;底層硬件同上層應(yīng)用之間以中間件層進(jìn)行隔離;傳感器節(jié)點(diǎn)之間以及傳感器節(jié)點(diǎn)與匯聚節(jié)點(diǎn)之間以多跳形式構(gòu)成網(wǎng)絡(luò)。本發(fā)明可提升傳感器網(wǎng)絡(luò)系統(tǒng)擴(kuò)展便捷性,以及降低多種類(lèi)型數(shù)據(jù)檢測(cè)的處理復(fù)雜度。文檔編號(hào)H04L29/08GK101146129SQ20071017663公開(kāi)日2008年3月19日申請(qǐng)日期2007年10月31日優(yōu)先權(quán)日2007年10月31日發(fā)明者威吳,忠周,靖曹,趙沁平,健高申請(qǐng)人:北京航空航天大學(xué)