基于ZigBee技術(shù)的機動車綜合檢測系統(tǒng)的研究
CC2430與主控制器是通過SPI連接的,其中主控制器處于主模式,CC2430處于從模式。LPC2292還有4個I/O與CC2430相連,主要作用為必要時查詢CC2430的狀態(tài)。CC2430使用SFD、 FIFO、 FIFOP和CCA 4個引腳表示收發(fā)數(shù)據(jù)的狀態(tài)。SFD腳高電平表示處于接收狀態(tài);FIFO和FIFOP引腳表示接收FIFO緩存區(qū)的狀態(tài);CCA引腳在信道有信號時輸出高電平,它只在接收狀態(tài)下有效。CC2430是一個半雙工的RF芯片,在同一時刻只處于一種工作狀態(tài)。CC2430有15個命令寄存器,每個寄存器都有一個固定的地址。發(fā)送緩沖與接收緩沖是分開的:TXFIFO、RXFIFO各128 bit。
協(xié)調(diào)器的硬件結(jié)構(gòu)與終端節(jié)點類似,在此不再贅述。數(shù)據(jù)傳輸?shù)母袷揭?guī)定如表1,幀數(shù)據(jù)格式為:檢測工位編號(1B)+數(shù)據(jù)內(nèi)容(4B)。
2.1 硬件數(shù)據(jù)發(fā)送程序
發(fā)送程序首先通過查詢狀態(tài)字來確保CC2430允許發(fā)送,若允許發(fā)送,程序先把殘留在TXFIFO中的信息清空,然后將待發(fā)送的數(shù)據(jù)包通過SPI寫入TXFIFO中。然后通過SPI接口觸發(fā)發(fā)送命令,即STROBE_ STXONCCA。通過狀態(tài)位來判斷是否發(fā)送成功,若不成功則調(diào)用CSMS/CA的算法多次嘗試;若發(fā)送成功,則向上層返回發(fā)送成功的原語。程序流程如圖3所示。本文引用地址:http://2s4d.com/article/197661.htm
2.2 硬件數(shù)據(jù)接收程序
當(dāng)CC2430接收到一個有效的數(shù)據(jù)包后,會通過拉高FIFOP引腳電平指示數(shù)據(jù)包的到來。主控制器檢測到FIFOP的高電平會觸發(fā)外部中斷,利用中斷函數(shù)來接收數(shù)據(jù),此中斷優(yōu)先級設(shè)為最高。程序流程如圖4所示。
3 網(wǎng)絡(luò)建立與通信
本文設(shè)計的網(wǎng)絡(luò)系統(tǒng)未使用ZigBee聯(lián)盟定義的標(biāo)準(zhǔn)配置文件,而在應(yīng)用程序中對網(wǎng)絡(luò)進(jìn)行配置。設(shè)置節(jié)點的最大子節(jié)點數(shù)為5,網(wǎng)絡(luò)深度為3,子節(jié)點中最大路由器個數(shù)為3,由此可計算出網(wǎng)絡(luò)最大節(jié)點數(shù)為66。
在ZigBee技術(shù)定義的LR-WPAN中,網(wǎng)絡(luò)建立的起點是PAN網(wǎng)絡(luò)協(xié)調(diào)器(PAN Coordinator)。節(jié)點在兩種情況下將建立一個新的PAN網(wǎng)絡(luò): (1)在主動掃描時沒有收到任何信標(biāo)幀; (2)收到的信標(biāo)幀參數(shù)與自身節(jié)點能力不相匹配。
建立PAN網(wǎng)絡(luò)步驟如下:
(1)協(xié)調(diào)器節(jié)點加電后,首先由網(wǎng)絡(luò)層發(fā)布NLME-NETWORK-FORMATION.request 原語,之后由網(wǎng)絡(luò)層管理實體(NLME)請求MAC層檢測網(wǎng)絡(luò)信道,通過發(fā)布MLME-SCAN.request 原語掃描有效信道能量,掃描完成后的結(jié)果由MLME-SCAN.confirm 原語返回至網(wǎng)絡(luò)層管理實體。NLME根據(jù)能量檢測結(jié)果將能量水平較低的信道丟棄不用,之后對選出的信道進(jìn)行主動掃描,最終找出建立網(wǎng)絡(luò)的最佳信道(默認(rèn)為18信道)。
(2)選擇網(wǎng)絡(luò)標(biāo)識。每一個網(wǎng)絡(luò)都分配有一個獨立的網(wǎng)絡(luò)標(biāo)識PAN ID。網(wǎng)絡(luò)中的設(shè)備根據(jù)此標(biāo)識來確認(rèn)自己所屬的網(wǎng)絡(luò)。在完成第一步的工作之后,協(xié)調(diào)器節(jié)點在此信道上選擇一個隨機的網(wǎng)絡(luò)標(biāo)識,并開始偵聽該信道。本系統(tǒng)采用18號信道對應(yīng)的PAN ID編號0x1aab。
(3)設(shè)定網(wǎng)絡(luò)地址。一旦網(wǎng)絡(luò)標(biāo)識被選定,NLME將選擇一個16位網(wǎng)絡(luò)地址,同時通過發(fā)布MLME-SET. request原語修改MAC子層的PIB屬性macShortAddress,與其保持一致。此時NLME將向MAC層發(fā)布MLME START.request 原語開始一個新的PAN的操作。然后,網(wǎng)絡(luò)層管理實體(NLME)通過發(fā)送NLME-NETWORK-FORMATION.confirm 原語將初始化ZigBee協(xié)調(diào)器的執(zhí)行結(jié)果通知上一層。
在ZigBee協(xié)調(diào)器設(shè)備建立網(wǎng)絡(luò)后,終端設(shè)備可作為子節(jié)點加入?yún)f(xié)調(diào)器建立的網(wǎng)絡(luò),子節(jié)點加入網(wǎng)絡(luò)的方式有兩種:通過MAC層關(guān)聯(lián)方式加入網(wǎng)絡(luò);通過指定的父節(jié)點直接方式加入網(wǎng)絡(luò)。本文取前種方式。
評論