转自: http://blog.sina.com.cn/s/blog_4c82872301008xv8.html
 
IEEE Address节点的8802.15.4网络地址,也称为长地址。
Network Address
节点的2位网络地址,也称短地址。
PAN
个人局域网。
PAN ID
个人局域网标识符。
HAL
协议栈物理抽象层。
PHY
协议栈物理层。
MAC
协议栈媒体访问控制层。
NWK
协议栈网络层。
APS
协议栈应用支持层。
APL
协议栈应用层。

 

对于广播的设备查找消息,各设备的响应如下:
1Zigbee终端:发送自己的IEEE或者NWK地址
2 Zigbee协调器:发送自己IEEE或者NWK地址和与其相连的所有zigbee协调器的IEEE或者NWK地址
3Zigbee路由器:发送自己的IEEE或者NWK地址和与其相连的所有zigbee路由器的IEEE或者NWK地址
 
Zigbee网络中,节点分为三种类型:协调器、路由器和终端节点。其中ZigBee 协调器(coordinator节点,每个ZigBee网络必须有一个,它的主要作用是初始化网络信息。ZigBee 路由器(router)节点,它的作用是提供路由信息。ZigBee 终端节点(rfd为终端节点),它有没有路由功能,完成的是整个网络的终端任务。

 

ZigBee的体系结构由称为层的各模块组成。每一层为其上层提供特定的服务:即由数据服务实体提供数据传输服务管理实体提供所有的其他管理服务
 
每个服务实体通过相应的服务接入点(SAP)为其上层提供一个接口,每个服务接入点通过服务原语来完成所对应的功能。

1)物理层(PHY

物理层定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务和物理层管理服务。

物理层内容:

1)ZigBee的激活;

2)当前信道的能量检测;

3)接收链路服务质量信息;

4)ZigBee信道接入方式;

5)信道频率选择;

6)数据传输和接收。

2)介质接入控制子层(MAC

     MAC层负责处理所有的物理无线信道访问,并产生网络信号、同步信号;支持PAN连接和分离,提供两个对等MAC实体之间可靠的链路。

MAC层功能:
1 )网络协调器产生信标;
2
)与信标同步;
3
)支持PAN(个域网)链路的建立和断开;
4
)为设备的安全性提供支持;
5
)信道接入方式采用免冲突载波检测多址接入(CSMA-CA)机制;
6
)处理和维护保护时隙(GTS)机制;
7
)在两个对等的MAC实体之间提供一个可靠的通信链路。

3)网络层

    ZigBee协议栈的核心部分在网络层。网络层主要实现节点加入或离开网络、接收或抛弃其他节点、路由查找及传送数据等功能。

网络层功能:
1)网络发现;

2)网络形成;

3)允许设备连接;

4)路由器初始化;

5)设备同网络连接;

6)直接将设备同网络连接;

7)断开网络连接;

8)重新复位设备;

9)接收机同步;

10)信息库维护。

4)应用层

    ZigBee应用层框架包括应用支持层(APS)ZigBee设备对象(ZDO)和制造商所定义的应用对象。

应用支持层的功能包括:维持绑定表、在绑定的设备之间传送消息。

ZigBee设备对象 的功能包括:定义设备在网络中的角色(ZigBee协调器和终端设备),发起和响应绑定请求,在网络设备之间建立安全机制。ZigBee设备对象还负责发现网络中的设备,并且决定向他们提供何种应用服务。
  ZigBee
应用层除了提供一些必要函数以及为网络层提供合适的服务接口外,一个重要的功能是应用者可
在这层定义自己的应用对象
 
---------------------------------------------------------------------

物理层数据服务

---------------------------------------------------------------------

PD-SAP支持两个对等的MAC层实体之间传输MAC协议数据单元(MPDU)。PD-SAP支持的原语一共有三种:PD-DATA.request PD-DATA.confirm PD-DATA.indication

PD-DATA.request原语MAC层发送给本地物理层,请求发送MPDU(即物理层服务数据单元(PSDU))。物理层收到PD-DATA.request原语之后,如果设备处于发射使能状态(TX_ON),则物理层先把请求原语提供的PSDU封装成物理层协议数据单元(PPDU),然后开始发送。数据发送成功后,物理层就向MAC层发出状态为SUCCESS的证实原语PD-DATA.confirm。如果设备处于接收使能状态(RX_ON)或者处于发送关闭状态(TRX_OFF),则物理层向MAC层发送状态为RX_ONTRX_OFF的证实原语PD-DATA.confirm

PD-DATA.confirm原语由物理层发送给MAC层,作为对PD-DATA.request原语的响应。

PD-DATA.indication原语指示一个MPDU从物理层传送到本地MAC层实体。此原语由物理层产生并发送给MAC层以提交接收到的PSDU。如果接收到的psduLength字段为0或者大于内部常数aMaxPHYPacketSize,则物理层不产生原语服务。

---------------------------------------------------------------------

物理层管理服务

---------------------------------------------------------------------

PLME-SAP允许在MLMEPLME之间传送管理命令。PLME-SAP支持的原语有PLME-CCAPLME-EDPLME-GETPLME-SET-TRX-STATEPLME-SET

PLME-CCA.request原语请求PLME执行空闲信道评估(CCA)。收到PLME-CCA.request原语后,如果设备处于接收使能状态,PLME就指示物理层进行信道评估。物理层完成CCA后,PLME就向MLME发送PLME-CCA.confirm原语,根据CCA结果提供信道状态信息(BUSY\IDLE)。如果设备处于关闭状态(TRX_OFF或者发送使能状态(TX_ON,则无法进行信道评估,此时PLMEMLME发送PLME-CCA.confirm原语,指示CCA失败的原因(TRX_OFF或者TX_ON)。

PLME-ED.request原语请求PLME执行能量检测(ED)。收到PLME-ED.request原语后,如果设备处于接收使能状态,PLME就指示物理层进行能量检测。物理层完成ED后,PLME就向MLME发送PLME-ED.confirm原语,报告能量检测成功(SUCCESS)和测得的能量信道等级。如果设备处于关闭状态(TRX_OFF)或者发送使能状态(TX_ON),则无法进行能量检测,此时PLMEMLME发送PLME-ED.confirm原语,指示ED失败的原因(TRX_OFF或者TX_ON)。

PLME-GET.request原语PLME请求PHY PIB中的相关属性的值。收到PLME-GET.request原语后,PLME就到数据库中检索该属性。如果从数据库中检索不到请求的PIB属性标识,则PLME就向MLME发送PLME-GET.confirm原语,状态为不支持的属性(UNSUPPORTED_ATTRIBUTE)。如果从数据库中检索到请求的PIB属性标识,则PLME就向MLME发送PLME-GET.confirm原语,状态为SUCCESS,并返回属性值。

PLME-SET-TRX-STATE.request原语请求PLME改变收发信机的内部工作状态。收到PLME-SET-TRX-STATE.request原语后,如果改变收发信机工作状态的请求被接受,则PLME-SET-TRX-STATE.confirm的状态为SUCCESS

如果设备当前的收发状态就是请求原语请求的状态,则证实原语status的值为收发信机当前状态。如果请求原语请求改变到状态RX_ON或者TRX_OFF,而此时物理层正在发送一个PPDU,则证实原语的status值为BUSY_TX,并在发送结束后改变到请求的收发信机工作状态。

如果请求原语请求改变到状态TX_ON或者TRX_OFF,而此时设备正处于RX_ON状态并且已经接收到有效的帧开始符(FSD),则证实原语的status值为BUSY_RX,并在发送结束后改变到请求的收发信机工作状态。

如果PLME-SET-TRX-STATE.request原语的状态为FORCE_TRX_OFF,则不管物理层当前出于什么状态,收发信机将被强制改变到TRX_OFF状态。

 

PLME-SET.request原语请求PLME设置或者改变PIB属性的值。如果在数据库中找不到PLME-SET.request原语中的PIB属性,则PLME-SET.confirm原语中的状态值为UNSUPPORTED_ATTRIBUTE,如果PLME-SET.request原语中的PIB属性值超出了有效范围,则PLME-SET.confirm原语中的状态值为INVALID_PARAMETER。如果成功设置了PIB属性值,则PLME-SET.confirm原语中的状态值为SUCCESS
 

 

PLME-SET.request原语请求PLME设置或者改变PIB属性的值。如果在数据库中找不到PLME-SET.request原语中的PIB属性,则PLME-SET.confirm原语中的状态值为UNSUPPORTED_ATTRIBUTE,如果PLME-SET.request原语中的PIB属性值超出了有效范围,则PLME-SET.confirm原语中的状态值为INVALID_PARAMETER。如果成功设置了PIB属性值,则PLME-SET.confirm原语中的状态值为SUCCESS

 

 

所谓直接寻址,是指数据包发送时,需要指定数据包的目的地址值。这里的目的地址值分为2种:
1
64-bit地址,又称为MAC地址或IEEE地址。
每个ZigBee节点都应该有全球唯一的64IEEE地址。这个地址需要向IEEE组织申请才能使用。通信时,将待发送的数据包的目的地址设为此64IEEE地址,从而实现数据包的正确投递。
2
16-bit地址,即网络地址,或称为短地址。当一个ZigBee网络形成后,ZigBee网络内的每个节点,都会分配到一个16位的网络地址。通信时,将待发送的数据包的目的地址设为此16位网络地址。

而间接寻址,是使用本地绑定表(local binding table)的方式。协调器或者数据包发送方会保存这个绑定表,而这个绑定表能保存多个目的地。当需要传输数据包时,通过查询绑定表进行投递。