我们知道总线型局域网在MAC层的标准协议是CSMA/CD,即载波侦听多点接入/冲突检测(Carrier Sense Multiple Access with Collision Detection)。但由于无线产品的适配器不易检测信道是否存在冲突,因此802.15全新定义了一种新的协议,即载波侦听多点接入/避免冲撞CSMA/CA(with Collision Avoidance)。一方面,载波侦听----查看介质是否空闲;另一方面,避免冲撞----通过随机的时间等待,使信号冲突发生的概率减到最小,当介质被侦听到空闲时,优先发送。不仅如此,为了系统更加稳固,802.15还提供了带确认帧ACK的CSMA/CA。在一旦遭受其他噪声干扰,或者由于侦听失败时,信号冲突就有可能发生,而这种工作于MAC层的ACK此时能够提供快速的恢复能力。
以太网属于广播形式的网络,当一个站点发送信息时,网络中的所有站点都能接收到,容易形成数据堵塞,导致网络速度变慢,甚至发生系统瘫痪。为了尽量减少数据的传输碰撞和重试发送。以太网中使用了CSMA/CA(载波监听多路访问/冲突检测)工作机制。以防止各站点无序地争用信道。无线局域网中采用了与CSMA/CD相类似的CSMA/CA(载波监听多路访问/冲突防止)协议,当其中一个站点要发送信息时。首先监听系统信道空闲期间是否大于某一帧的间隔。若是,立即发送,否则暂不发送,继续监利。CSMA/CA通信方式将时间域的划分与帧格式紧密联系起来,保证某一时刻只有一个站点发送,实现了网络系统的集中控制。
因为传输介质的不同,所以传统的CSMA/CD与无线局域网中的CSMA/CA在工作方式上存在着差异。CSMA/CD的检测方式是通过电缆中电压的变化来测得,当数据传输发生碰撞时,电缆中的电压就舍随着发生变化,而CSMA/CA使用空气作为传输介质.必须采用其他的碰撞检测机制。CSMA/CA采取了三种检测信道空阁的方式:能量检测(ED)、载波检测(CS)和能量载波混台检测。
能量检测(ED) 接收端对接收到的信号进行能量大小的判断,当功率大于某一确定值时,表示有用户在占用信道,否则信道为空。
载波检测(CS)接收端将接收到的信号与本机的伪随机码(PN码)进行运算比较,如果其值超过某一极限时,表示有用户在占用信道,否刚认为信道为空。
能量载波检测。它是能量检测和载波检测两种工作方式的结合。
在IEEE 802.15.4 CSMA/CA机制中,网络协调器在网络中,会发出信标给所有的可感应节点,而对于有数据需传送的设备来说,它们会向网络协调器要求进行传送,由于在一个时间内只能有一个设备进行传输,因此所有想要传输的节点设备就会通过CSMA/CA机制来竞争传输媒体的使用权。所有准备传输数据的设备,会监测目前的无线传输媒体是否有其他设备在使用中,如果为宅闲,此时,这些设备会产生一个倒退延迟时间,来错开这些设备同时送出数据从而造成碰撞的可能。若目前的无线传输媒体是忙碌中的,则这些设备将会在监测到媒体为空闲后,再进行CSMA/CA的竞争。
在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次。图2.19是CSMA/CA算法流程;其中在步骤(3)是完成CCA的部分。