接下來(lái),看一下Zigbee網(wǎng)絡(luò)包的基本結(jié)構(gòu),這個(gè)與TCP/IP包結(jié)構(gòu)比較類似,如下:

其中縮寫(xiě)意義(從下層往上):
- SHR:Synchronization Header 同步頭標(biāo)志
- PHR:Physical Header
- PHY Payload:包負(fù)載,即實(shí)際內(nèi)容,后來(lái)在TI Packet Sniffer中經(jīng)常見(jiàn)到這個(gè)單詞。
- 綜上所示,HR表示Header,因此有MHR(MAC Header),NHR(NWK HEADER)
- MFR:MAC footer,主要包括一個(gè)16位的FCS(Frame Check Sequence,CRC算法的一種),用于數(shù)據(jù)校驗(yàn)。
- 應(yīng)用層復(fù)雜一點(diǎn),AHR即APS Header應(yīng)用支持子層,包括應(yīng)用層地址及控制消息;Auxiliary HDR包括相關(guān)的安全機(jī)制;
- MIC:Message Integrity Code消息完整性代碼 也是用于安全機(jī)制的。
下面具體描述一下各層的任務(wù):
- 物理層:激活硬件發(fā)送和接收數(shù)據(jù);選擇Channel Frequency;
- MAC層:負(fù)責(zé)生成Beacon(信標(biāo))及同步相應(yīng)設(shè)備;提供Association 及Dissociation服務(wù);MAC Frame定義了四種結(jié)構(gòu)如下:

- Ack frame(最簡(jiǎn)單的MAC幀,不包含任何Payload,用于提示成功接收到數(shù)據(jù)包。)

- MAC Command Frame(MAC Commands包括Association Request或者Data Request )

以TI Sniffer抓到的數(shù)據(jù)包為例,顯示的包格式如下(其中不同的顏色顯示了不同的帔類型):

其中,左邊是MAC層(包括時(shí)間、長(zhǎng)度及Frame Control字段,比如上面類型是Data,因此是Data Frame;還有系列號(hào)及源目的地址),中間黃色顯示MAC Payload,右邊藍(lán)色顯示NWK數(shù)據(jù)信息。
3. 網(wǎng)絡(luò)層:負(fù)責(zé)形成網(wǎng)絡(luò)及路由信息的建立。其中路由信息由協(xié)調(diào)器及路由節(jié)點(diǎn)建立,而終端節(jié)點(diǎn)不負(fù)責(zé)這個(gè)。此外,協(xié)調(diào)器的NWK層還負(fù)責(zé)建立新的網(wǎng)絡(luò)及選擇網(wǎng)絡(luò)拓?fù)洌ㄐ切危瑯?shù)形及網(wǎng)狀結(jié)構(gòu))、分配節(jié)點(diǎn)地址等功能。
4. 應(yīng)用層:主要是提供Application Objects,即應(yīng)用實(shí)體,每個(gè)設(shè)備可以提供多達(dá)240個(gè)AO,感覺(jué)有點(diǎn)類似TCP/IP中的端口概念。Zigbee標(biāo)準(zhǔn)提供用Application Profile(AP)來(lái)開(kāi)發(fā)一個(gè)應(yīng)用。一個(gè)AP是關(guān)于特定應(yīng)用消息格式和處理行為的一組規(guī)范,這樣做的好處是提供不同應(yīng)用間的互操作性(Interoperability),相關(guān)應(yīng)用程序間的標(biāo)準(zhǔn)化。
最后,要提到的一點(diǎn)是上述Frame最后的16Bits的CRC校驗(yàn)碼是用的ITU方法,以兩個(gè)多項(xiàng)式系數(shù)相除的余數(shù)作為校驗(yàn)碼。