基于CC2530無(wú)線(xiàn)傳感網(wǎng)絡(luò )系統的設計
2 軟件設計與實(shí)現
2.1 協(xié)調器節點(diǎn)程序
在網(wǎng)絡(luò )中,每個(gè)節點(diǎn)都有一個(gè)64位的物理長(cháng)地址和一個(gè)16位的短地址,短地址用于本網(wǎng)絡(luò )的設備通信,而長(cháng)地址則可以與本網(wǎng)絡(luò )之外的其他網(wǎng)絡(luò )進(jìn)行通信。數據傳送采用主從節點(diǎn)方式,與計算機相連作為主節點(diǎn)(協(xié)調器),其他節點(diǎn)作為從節點(diǎn)(終端節點(diǎn)),從節點(diǎn)可以向主節點(diǎn)發(fā)送中斷請求。
協(xié)調器端程序流程如圖4所示,協(xié)調器上電后,首先進(jìn)行設備初始化,包括硬件電路初始化,寄存器初始化,協(xié)議棧初始化,操作系統初始化。然后進(jìn)入到執行操作系統,進(jìn)入無(wú)限循環(huán)的任務(wù)執行程序中。本文引用地址:http://dyxdggzs.com/article/159405.htm
終端程序的大體流程,終端的初始化過(guò)程和協(xié)調器類(lèi)似。首先判斷節點(diǎn)是否加入一個(gè)網(wǎng)絡(luò ),如果是,則可以發(fā)送所采集的信息。如果沒(méi)有加入網(wǎng)絡(luò ),則判斷是否作為老節點(diǎn)加入網(wǎng)絡(luò ),如果作為老節點(diǎn)加入網(wǎng)絡(luò ),則終端節點(diǎn)通過(guò)保留以前加入網(wǎng)絡(luò )的地址來(lái)加入網(wǎng)絡(luò )。如果作為新的節點(diǎn)加入網(wǎng)絡(luò ),則需要掃描網(wǎng)絡(luò ),然后加入其中最優(yōu)秀的一個(gè)網(wǎng)絡(luò )。
2.2 組網(wǎng)
組網(wǎng)的過(guò)程主要如下:
(1)協(xié)調器首先上電,完成網(wǎng)絡(luò )的初始化,選擇一個(gè)合適的信道,并且為自己的網(wǎng)絡(luò )選擇一個(gè)PAN_ID(網(wǎng)絡(luò )標識符),然后周期的向周?chē)l(fā)送beacon request的數據包。
(2)再將終端節點(diǎn)上電,終端節點(diǎn)會(huì )首先向周?chē)沫h(huán)境做一個(gè)信道能量掃描選擇一個(gè)能量比較合適的信道進(jìn)行網(wǎng)絡(luò )搜尋。
(3)當協(xié)調器接收到終端節點(diǎn)的beacon request數據包之后會(huì )發(fā)送一個(gè)包含自己IEEE MAC地址的超幀。
(4)終端節點(diǎn)接收到超幀之后,將協(xié)調器的MAC地址保存,并利用這個(gè)地址向協(xié)調器發(fā)送一個(gè)Association Request的數據包,此包目的是尋求加入網(wǎng)絡(luò )。
(5)當協(xié)調器接收到Data Request之后,首先經(jīng)過(guò)NWK層的算法為其分配一個(gè)惟一的網(wǎng)絡(luò )短地址,然后向終端節點(diǎn)發(fā)送一個(gè)包含其網(wǎng)絡(luò )短地址的包,這個(gè)包是通過(guò)MAC地址發(fā)送的。
(6)當終端節點(diǎn)接收到這個(gè)包之后,配置自己的短地址為0xXXXX,此時(shí)可用這個(gè)短地址和協(xié)調器進(jìn)行應用層的通信,至此終端節點(diǎn)已經(jīng)成功加入到網(wǎng)絡(luò )。
2.3 數據傳輸
本研究采用了直接尋址(通用單播),用于設備間的通信。設備直接尋址必須知道接收方的短地址或者長(cháng)地址。
當節點(diǎn)接收到一個(gè)單播的消息,其APS層就會(huì )激活APSDE_DATA_indication原語(yǔ)處理消息。如果接收到的是一個(gè)確認幀,則APS層應該發(fā)送APSDE_DATA。
Indication原語(yǔ)來(lái)接收命令,然后將溫度信息通過(guò)APSDE-DATA.request原語(yǔ)發(fā)送回協(xié)調器,協(xié)調器同樣通過(guò)APSDE-DATA.indication原語(yǔ)來(lái)接收信息。如圖5所示。
3 系統測試
對網(wǎng)絡(luò )的測試,主要集中于兩個(gè)方面:功能測試,如組網(wǎng),點(diǎn)對點(diǎn)的通信,系統整體測試等;靜態(tài)測試,如節點(diǎn)的性能指標,程序的實(shí)現和數據收發(fā)的正確率等。
3.1 功能測試
首先將協(xié)調器程序燒入一個(gè)節點(diǎn)作為協(xié)調器;將傳感節點(diǎn)程序燒入幾個(gè)節點(diǎn)作為傳感器終端。經(jīng)系統測試,所有終端都能加入網(wǎng)絡(luò ),并能進(jìn)行正常的數據收發(fā),功能測試顯示系統完好。
3.2 節點(diǎn)測試
3.2.1 無(wú)障礙傳輸距離測試
測試在室外空曠的環(huán)境下進(jìn)行,打開(kāi)協(xié)調器,建立無(wú)線(xiàn)網(wǎng)絡(luò )后,再打開(kāi)一個(gè)終端節點(diǎn)設備,此設備作為溫度和電壓信息的參考節點(diǎn)。最后打開(kāi)另一個(gè)終端節點(diǎn),對該節點(diǎn)加以移動(dòng),分別選取5個(gè)測試距離,測試移動(dòng)中該節點(diǎn)數據接收效果,數據由計算機保存記錄,測試完畢統計分析數據。結果見(jiàn)表1。
3.2.2 有障礙傳輸距離測試
測試在室內隔墻的環(huán)境下進(jìn)行測試,步驟與無(wú)障礙傳輸距離測試方法一樣。打開(kāi)協(xié)調器,建立無(wú)線(xiàn)網(wǎng)絡(luò )后,在協(xié)調器一旁打開(kāi)一個(gè)終端節點(diǎn)設備,此設備作為溫度和電壓信息的參考節點(diǎn)。最后打開(kāi)另一個(gè)終端節點(diǎn),對該節點(diǎn)加以移動(dòng),分別選取5個(gè)測試距離,測試移動(dòng)中該節點(diǎn)數據接收效果,數據由上位機軟件保存記錄,測試完畢統計分析數據,如表1所示。
在進(jìn)行無(wú)障礙傳輸距離測試和障礙傳輸距離測試,在有墻相隔的時(shí)候信號不強,這與天線(xiàn)設計有關(guān),本文終端設備的天線(xiàn)為PCB天線(xiàn),如果使用帶桿狀天氣的射頻模塊,接收效果就能夠更好。
4 結論
隨著(zhù)計算成本的下降以及微處理器體積越來(lái)越小,無(wú)線(xiàn)傳感器網(wǎng)絡(luò )開(kāi)始投入使用,如環(huán)境的監測和保護、醫療護理、目標跟蹤,本文所采用的基于CC2530無(wú)線(xiàn)傳感網(wǎng)絡(luò )系統設計方案不失為一種較為高效、節能、抗干擾能力強的廉價(jià)組網(wǎng)方案。提高該無(wú)線(xiàn)網(wǎng)絡(luò )的傳輸距離、增強網(wǎng)絡(luò )的自愈能力,提高ZigBee和Wi—Fi及其他2.4 GHz系統的共存時(shí)的互不干擾能力,將該方案推向工業(yè)現場(chǎng)是今后研究的重點(diǎn)。
評論