在IEEE 802.15.4 CSMA/CA算法中,CSMA/CA算法是用于节点问数据传输时的信道争用机制,此算法中有三个重要的参数由每个要传送数据的设备去维护:Nb、CW和BE。
Nb(后退次数,Number Of Back):Nb的初始值为0,当设备有数据要传送时,经过一段后退时间后,发送CCA检测,若检测到信道忙,则会再一次产生倒退时间,此时Nb值会加1,在IEEE802.15.4中,Nb值最大定义为4,当信道在经过4次的后退延迟时间后仍为忙,刚放弃此次的传送,以避免过大开销。
CW (碰撞窗口的长度,content window length):也就是后退延迟时间的长度,单位是Backoff,一个后退周期的定义在MAC PIB中由参数aUnitBackofPeriod给出,为20symbol的时间。CW的初始值为2,最大值为31。
BE(后退指数,Backoff exponent):取值范围为0~5,15.4推荐的默认值为3,最大值为5。当BE设为0时,则只进行一次碰撞检测。在IEEE 802.15.4中,失败的次数(重传)最多3次。
ZIGBEE网络工作方式为信标网络和非信标网络,对不同的网络工作方式将采用不同的信道接入机制。
非时隙CSMA-CA信道接入机制:等待一个任意的退避时间。
有时隙CSMA-CA信道接入机制:退避时隙与信标传输的起始时间对准,以退避时隙为基准单位。
详细如下:
在非信标网络工作方式情况下,采用非时隙CSMA-CA信道接入机制,采用该机制的设备,在每次发送数据桢或MAC层命令时,要等待一个任意长的周期,在这个任意的退避时间之后,如果设备发现信道空闲,就会发送数据桢和MAC层命令;反之,如果设备发现信道正忙,将等待任意长的周期后,再次尝试接入信道。而对于确认桢,在发送时,不采用CSMA-CA机制,即在接受到数据桢后,接受设备直接发送确认桢,而不管当前信道是否存在冲突,发送设备根据是否接受到正确的确认桢来判断数据是否发送成功。
在信标网络工作方式情况下,采用有时隙的CSMA-CA信道接入机制,在该网络中,退避时隙恰好有信标传输的起始时间对准。在CAP期间发送数据桢时,首先,设备要锁定下一个退避时隙的边界位置,然后,在等待任意个退避时隙后,如果检测到信道忙,则设备要在等待任意个退避时隙,才能尝试再次接入信道。如果信道空闲,设备将在下一个空闲的退避时隙发送数据。对于确认桢和信标桢的发送,则不需要采用CSMA-CA机制。