劉 婭 ,石 雄
(武漢工業(yè)學(xué)院電氣信息工程系,湖北武漢 430023)
隨著科技的快速發(fā)展,人類(lèi)已經(jīng)置身于信息時(shí)代。而作為信息獲取最重要和最基本的技術(shù)——傳感器技術(shù),也得到了極大的發(fā)展。早在上世紀(jì) 70年代,就出現(xiàn)了將傳統(tǒng)傳感器采用點(diǎn)對(duì)點(diǎn)傳輸、連接傳感控制器而構(gòu)成傳感器網(wǎng)絡(luò)雛形。隨著相關(guān)科技的不斷發(fā)展,傳感器網(wǎng)絡(luò)同時(shí)還具有了獲取多種信息信號(hào)的綜合處理能力。無(wú)線傳感器網(wǎng)絡(luò)是新一代的傳感器網(wǎng)絡(luò),具有眾多類(lèi)型的傳感器,可探測(cè)包括地震、電磁、溫度、濕度、噪聲、光強(qiáng)度、壓力、土壤成分、移動(dòng)物體的大小、速度和方向等周邊環(huán)境中多種多樣的現(xiàn)象,能夠?qū)崟r(shí)監(jiān)測(cè)和采集網(wǎng)絡(luò)分布區(qū)域內(nèi)的各種檢測(cè)對(duì)象的信息,并將這些信息發(fā)送到網(wǎng)關(guān)節(jié)點(diǎn),以實(shí)現(xiàn)復(fù)雜的指定范圍內(nèi)目標(biāo)檢測(cè)與跟蹤,在軍事、工農(nóng)業(yè)、環(huán)境監(jiān)測(cè),醫(yī)療護(hù)理、搶險(xiǎn)救災(zāi)、危險(xiǎn)區(qū)域遠(yuǎn)程控制以及智能家居等領(lǐng)域都有潛在的使用價(jià)值,已經(jīng)引起了許多國(guó)家學(xué)術(shù)界和工業(yè)界的高度重視[1]。
無(wú)線傳感器網(wǎng)絡(luò)可以看成是由數(shù)據(jù)獲取網(wǎng)絡(luò)、數(shù)據(jù)分布網(wǎng)絡(luò)和控制管理中心三部分組成的。其主要組成部分是集成有傳感器、數(shù)據(jù)處理單元和通信模塊的微小節(jié)點(diǎn),各節(jié)點(diǎn)通過(guò)協(xié)議組成一個(gè)分布式無(wú)線網(wǎng)絡(luò),借助于節(jié)點(diǎn)中內(nèi)置的傳感器測(cè)量周邊環(huán)境中的熱、紅外、聲納、雷達(dá)和地震波信號(hào),從而探測(cè)包括溫度、濕度、噪聲、光強(qiáng)度、壓力、振動(dòng)、速度和方向等物質(zhì)現(xiàn)象,再將采集來(lái)的數(shù)據(jù)通過(guò)優(yōu)化后經(jīng)無(wú)線電波傳輸給控制管理中心[2]。傳感器網(wǎng)絡(luò)的應(yīng)用前景十分廣闊,本文的研究背景是應(yīng)用于高速公路的無(wú)線傳感網(wǎng)絡(luò),即在高速公路的路面以下隨機(jī)地遍撒上若干個(gè)傳感器模塊,用以感知和測(cè)試覆蓋區(qū)域內(nèi)的高速公路路面上的溫度、濕度、壓力、振動(dòng)和加速度等參量,并將各傳感器模塊收集到的測(cè)試數(shù)據(jù)經(jīng)過(guò)A/D轉(zhuǎn)換后以無(wú)線的方式傳送給控制中心。而各傳感器模塊要想將數(shù)據(jù)準(zhǔn)確無(wú)誤地傳送給控制中心,通信協(xié)議的設(shè)計(jì)就顯得尤為重要了。
高速公路的無(wú)線傳感網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)如圖1所示,由如下幾個(gè)部分組成。
圖1 無(wú)線傳感網(wǎng)絡(luò)體系結(jié)構(gòu)
是一種非常小型的計(jì)算機(jī),由處理器和內(nèi)存、各類(lèi)傳感電路 (感知溫度、濕度、壓力、加速度等)、無(wú)線收發(fā)設(shè)備、電池及各種串行并行接口構(gòu)成,主要完成對(duì)環(huán)境的感知和監(jiān)測(cè),并將監(jiān)測(cè)到的測(cè)量數(shù)據(jù)以無(wú)線通信的方式發(fā)送出去。其中傳感電路由傳感器、放大器及調(diào)制電路組成,完成被測(cè)非電信號(hào)向電信號(hào)的轉(zhuǎn)換,并進(jìn)行初步處理,例如信號(hào)的整形、放大等,然后送到通用電路,完成模擬量向數(shù)據(jù)量的轉(zhuǎn)換并進(jìn)行適當(dāng)?shù)奶幚砗笏屯鶡o(wú)線收發(fā)模塊。無(wú)線收發(fā)設(shè)備用于傳感器節(jié)點(diǎn)間的數(shù)據(jù)通信,解決無(wú)線通信中載波頻段的選擇、信號(hào)調(diào)制方式、數(shù)據(jù)傳輸速率,編碼方式等,并通過(guò)天線進(jìn)行節(jié)點(diǎn)間、節(jié)點(diǎn)與工作站間數(shù)據(jù)的發(fā)送和接收。電源部分一般為電池,它為整個(gè)傳感器節(jié)點(diǎn)提供所需要的能量。
用于接收監(jiān)測(cè)區(qū)域內(nèi)各傳感器節(jié)點(diǎn)發(fā)送來(lái)的數(shù)據(jù)。
在計(jì)算機(jī)通信網(wǎng)絡(luò)中,若干臺(tái)計(jì)算機(jī)之間要彼此通信、傳送信息,就應(yīng)該在通信系統(tǒng)中規(guī)定一個(gè)統(tǒng)一的通信標(biāo)準(zhǔn),即通信的內(nèi)容是什么、如何通信、何時(shí)通信,都必須在通信的實(shí)體之間達(dá)成大家都能接受的協(xié)定,這些協(xié)定就被稱(chēng)為通信協(xié)議[3]。概括地說(shuō),通信協(xié)議就是對(duì)數(shù)據(jù)傳送方式的規(guī)定,包括對(duì)數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯(cuò)方式以及控制字符定義等問(wèn)題做出統(tǒng)一規(guī)定,通信雙方必須共同遵守。無(wú)線傳感器網(wǎng)絡(luò)中的傳感器節(jié)點(diǎn)要和匯聚單元 (或控制中心)之間進(jìn)行正常的信息發(fā)送和接收,必須也要規(guī)定出一套通信協(xié)議,無(wú)線傳感器網(wǎng)絡(luò)的通信協(xié)議既可以采用自定義的通信協(xié)議,也可以采用已經(jīng)形成標(biāo)準(zhǔn)的通信協(xié)議。比如 Zig-Bee、藍(lán)牙和 Wi-Fi,這三種無(wú)線通信技術(shù)標(biāo)準(zhǔn)都是短距離的無(wú)線通信,它們?cè)诟鞣矫嫘阅苤g差異較大。藍(lán)牙技術(shù)所能通信的距離非常短,限制了其應(yīng)用范圍;Wi-Fi協(xié)議棧所占內(nèi)存很大、功耗高使其在很多場(chǎng)合不實(shí)用。究竟選用什么通信標(biāo)準(zhǔn),還需要根據(jù)系統(tǒng)需求來(lái)定。自定義的通信協(xié)議一般采用分層設(shè)計(jì),參考 OSI參考模型的結(jié)構(gòu),可以提高系統(tǒng)的靈活性,在保持各層協(xié)議之間接口不變的情況下,各層協(xié)議可以獨(dú)立進(jìn)行開(kāi)發(fā),并嘗試不同的算法。整個(gè)協(xié)議可分為 4層:①物理層:提供簡(jiǎn)單但健壯的信號(hào)調(diào)制和無(wú)線收發(fā)技術(shù);②MAC層,負(fù)責(zé)數(shù)據(jù)成幀、幀檢測(cè)、媒體訪問(wèn)和差錯(cuò)控制;③網(wǎng)絡(luò)層,主要負(fù)責(zé)路由生成和路由選擇;④應(yīng)用層,包括一系列基于監(jiān)測(cè)任務(wù)的應(yīng)用層軟件。
在無(wú)線通信系統(tǒng)中,由于外部環(huán)境的干擾,通信誤碼率通常會(huì)很高,因此通信協(xié)議的設(shè)計(jì)對(duì)保證通信的可靠性十分重要。對(duì)于通信協(xié)議而言,最重要的就是幀結(jié)構(gòu)的設(shè)計(jì),它可以復(fù)雜也可以簡(jiǎn)單,但要與我們所設(shè)計(jì)系統(tǒng)要達(dá)到的目標(biāo)相符合[4]。第一步我們要考慮如何設(shè)計(jì)切實(shí)可用的幀結(jié)構(gòu);第二步為了增強(qiáng)網(wǎng)絡(luò)傳輸?shù)目煽啃?我們要采用糾錯(cuò)的措施,并且還要有握手信號(hào)以便使控制臺(tái)能夠和所有的傳感器節(jié)點(diǎn)相互通信,各傳感器節(jié)點(diǎn)可以主動(dòng)呼叫控制臺(tái),告知其監(jiān)測(cè)區(qū)域的任何情況,控制臺(tái)也能根據(jù)監(jiān)測(cè)數(shù)據(jù)發(fā)命令告訴各節(jié)點(diǎn)采取什么樣的動(dòng)作。
對(duì)于物理層的協(xié)議,這里不做設(shè)計(jì),由于本無(wú)線傳感器網(wǎng)絡(luò)采用的無(wú)線數(shù)據(jù)收發(fā)設(shè)備主芯片是美國(guó)AT MEL公司生產(chǎn)的 ATA5823,其使用頻段為 314—316 MHz,屬于業(yè)余頻段,信號(hào)采用 FSK(移頻鍵控)進(jìn)行調(diào)制,數(shù)據(jù)傳輸?shù)乃俾蕿?20Kbit/s,這些參數(shù)都是由硬件決定的,無(wú)法更改,因此,協(xié)議設(shè)計(jì)的重點(diǎn)是MAC層和網(wǎng)絡(luò)層的設(shè)計(jì)。由于控制臺(tái)與各傳感器節(jié)點(diǎn)之間采用無(wú)線通信的頻段只有一個(gè)可用,因此只能采用分時(shí)共享該頻段的方式來(lái)實(shí)現(xiàn)數(shù)據(jù)的收發(fā),也就是說(shuō)控制臺(tái)與不同的傳感器節(jié)點(diǎn)之間進(jìn)行數(shù)據(jù)和命令的收發(fā)在時(shí)間上必須是分開(kāi)的,以避免沖突,采用輪叫輪詢(xún)的方式來(lái)解決沖突問(wèn)題。
幀結(jié)構(gòu)的設(shè)計(jì)是協(xié)議設(shè)計(jì)的重點(diǎn),每個(gè)傳感器節(jié)點(diǎn)通過(guò)傳感裝置所獲取到的數(shù)據(jù),經(jīng)過(guò)節(jié)點(diǎn)處理后形成我們?cè)O(shè)計(jì)的幀,而后將此幀發(fā)控制臺(tái),控制臺(tái)收到數(shù)據(jù)后經(jīng)串口交給 PC機(jī)進(jìn)行統(tǒng)計(jì)、分析。本方案設(shè)計(jì)了兩種格式的幀:命令幀和數(shù)據(jù)幀。
2.2.1 命令幀
命令幀由控制臺(tái)發(fā)給傳感器節(jié)點(diǎn)。其幀結(jié)構(gòu)如表1所示。
表1 命令幀的幀結(jié)構(gòu)
幀頭:也就是命令幀的起始字節(jié),它標(biāo)志著幀結(jié)構(gòu)的開(kāi)始。
地址:存放目的地址,也就是某一傳感器節(jié)點(diǎn)的節(jié)點(diǎn)號(hào)。
命令類(lèi)型:表示要進(jìn)行什么操作,比如讀或者寫(xiě)數(shù)據(jù)的操作。
校驗(yàn):用于檢錯(cuò)糾錯(cuò),提高數(shù)據(jù)傳輸?shù)目煽啃浴_@里我們采用奇偶校驗(yàn)法。
幀尾:也就是命令幀的結(jié)束字節(jié),它標(biāo)志著幀結(jié)構(gòu)的結(jié)束。
2.2.2 數(shù)據(jù)幀
數(shù)據(jù)幀由傳感器節(jié)點(diǎn)發(fā)送給控制臺(tái)。其幀結(jié)構(gòu)如表2所示。
表2 數(shù)據(jù)幀的幀結(jié)構(gòu)
源地址:存放發(fā)送數(shù)據(jù)的傳感器節(jié)點(diǎn)的節(jié)點(diǎn)號(hào)。
測(cè)試數(shù)據(jù):存放傳感器所測(cè)得的數(shù)據(jù),包括溫度、濕度、壓力、振動(dòng)、加速度等參量,每一個(gè)參量經(jīng)A/D轉(zhuǎn)換后變成 2字節(jié)的數(shù)字信號(hào)。測(cè)試數(shù)據(jù)存放的順序需固定,這樣方便 PC機(jī)進(jìn)行讀取和統(tǒng)計(jì)。
幀尾:與命令幀的幀尾可能不同。當(dāng)傳感器節(jié)點(diǎn)測(cè)試的數(shù)據(jù)較多,一幀傳不完的時(shí)候,需要多傳幾幀,這時(shí)用幀尾來(lái)標(biāo)記所傳的幀的序號(hào)。比如,正常情況下,一幀就傳完所有數(shù)據(jù)的時(shí)候,幀尾用 DDH來(lái)標(biāo)識(shí);如果一幀傳不完,第一幀的幀尾就用 01H,第二幀的幀尾用 02H,依次類(lèi)推,最后一幀用 DDH來(lái)標(biāo)識(shí),這樣控制臺(tái)就能夠根據(jù)幀尾的標(biāo)識(shí)來(lái)判別該傳感器節(jié)點(diǎn)的數(shù)據(jù)是否傳送完畢 (只有接收到幀尾為 DDH的數(shù)據(jù)幀時(shí)才表示數(shù)據(jù)傳送完畢)。
在測(cè)試中,采用了三個(gè)無(wú)線傳感器節(jié)點(diǎn)來(lái)構(gòu)建對(duì)等網(wǎng)絡(luò)。其中,一個(gè)節(jié)點(diǎn)通過(guò)串口和 PC相連,作為控制臺(tái),通過(guò)它可以將采集到的數(shù)據(jù)傳給 PC機(jī)。無(wú)線數(shù)據(jù)收發(fā)芯片采用美國(guó) AT MEL公司的ATA5823。實(shí)驗(yàn)結(jié)果表明:由控制臺(tái)向傳感器節(jié)點(diǎn)發(fā)送傳數(shù)據(jù)的指令后,其他兩個(gè)無(wú)線傳感器節(jié)點(diǎn)都能夠正常的發(fā)送和接收數(shù)據(jù)。同時(shí),控制臺(tái)可以把接收到的傳感器節(jié)點(diǎn)傳送過(guò)來(lái)的數(shù)據(jù)交由 PC機(jī)處理。數(shù)據(jù)傳送情況如圖2、圖3所示。
圖2 PCI總線數(shù)據(jù)傳輸界面
圖3 測(cè)試數(shù)據(jù)接收界面
本系統(tǒng)是基于高速公路的無(wú)線傳感器網(wǎng)絡(luò)進(jìn)行的串行通信協(xié)議的設(shè)計(jì),簡(jiǎn)單、易行,通過(guò)測(cè)試基本實(shí)現(xiàn)了控制臺(tái)和各傳感器節(jié)點(diǎn)之間的數(shù)據(jù)收發(fā),能夠保證數(shù)據(jù)傳送的可靠性,成本低,較適用于中小型的無(wú)線傳感器網(wǎng)絡(luò),對(duì)于節(jié)點(diǎn)眾多的大型無(wú)線傳感器網(wǎng)絡(luò),本協(xié)議尚有進(jìn)一步完善改進(jìn)的必要。
[1] 王殊,閻毓杰,胡富平.無(wú)線傳感器網(wǎng)絡(luò)的理論及應(yīng)用[M].北京:航空航天大學(xué)出版社,2007.
[2] 孫利民.無(wú)線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
[3] Holger Karl,Andreas Willig.無(wú)線傳感器網(wǎng)絡(luò)協(xié)議與體系結(jié)構(gòu) [M].北京:電子工業(yè)出版社,2007.
[4] 李文仲,段朝玉.短距離無(wú)線數(shù)據(jù)通信入門(mén)與實(shí)戰(zhàn)[M].北京:航空航天大學(xué)出版社,2006.