关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > CSMA协议在无线传感器网络中的实现

CSMA协议在无线传感器网络中的实现

作者:时间:2011-08-05来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/161636.htm

  3.2 信号强度阈值初始值的选择

  信号强度阈值的初始值必须根据实际测试绲拇罅壳慷戎道瓷瓒ǎ如果设置失误,将导致信道状态判断不准确。本文假设两个初值分别是initNoiseSignal和init2BusySignal。下面给出部分测试强度的数据,如表1所列。

  测试时使用两个节点,且两个节点都是使用新电池(即电源充沛)。表中,“阻隔”指的是一堵大约10cm厚的墙。

  在双方节点能通信的前提下,本文测到的busyRSSI的最小值为0x54。根据上一小节的论述,initBusySignal的值可以略高,但因为该值是在电量充足且有阻隔的情况下测试绲淖钚∏康髦担因此可以直接取为busyRSSI的最小值,即initBusySignal的值设置为0x54。对于init2NoiseSignal的取值,从表1可以看出,检测到的RSSI值非常稳定,信道空闲时噪声强度幅度不大,因此取值比0x4D略大就可以了。本文中initNoiseSignal取值为0x4E。

  3.3 本文的信道监测机制的优点

  本文的信道监测机制比较完善且十分灵活。完善是指信道活动状态判定规则十分完备,不仅有基本判定和扩展判定,而且还有阈值更新机制,进一步确保了判定结果的正确性;灵活是指向调用方提供了采样窗口数的设置,使得调用方可以在每次监测时使用不同的采样窗口数,可以被LPL、B2MAC等有特殊要求的基于竞争的MAC直接调用。

  4 

  本文实现的CAMA是基于使用广泛的非持续性协议的,即节点在发送数据包之前先监测信道,如果监测到信道空闲,则该节点就自己开始发送数据包。反之,如果监测结果为信道繁忙,即信道已经被邻居节点占用,则该节点回退一段随机时间后,再次开始监测,重复上面的操作。

  在具体实现协议时,本文结合信道监测提供的接口对协议做了一些优化调整。另外,由于中节点间距离很短,一般忽略传播延迟,因此具体的实现与标准的CSMA协议有些不同,但原理一致,其实现如下:

  如果节点要发送数据包,需要先进行载波监听,首先随机选择一个采样窗口数(即信道采样次数),该采样数属于某一个范围,本文选择为8~32。采样数随机选择的目的是减少冲突,举例说明:假设信道目前空闲,A、B、C三个节点都是邻居节点,且A、B节点有数据包要发送给节点C;A、B两个邻居节点同时开始监测,如果采样窗口数固定,根据信道监测的规则,信道空闲必须等到采样数用完才能下结论,那么A、B节点都在用完所有的采样数后得缧诺揽障械慕崧郏然后都发送数据包,这样数据在节点C处就发生了冲突,最后A、B两节点就必须依靠随机回退一段时间后再次监测信道。采用随机的采样窗口数可以降低上面情况的发生率。因为采样窗口数小的节点(假设为节点A)先得出信道空闲的结论并发送数据包,采样窗口数大的节点B在后面的采样中发现信道繁忙(因为节点A已经占用了信道)就回退,避免了发生冲突。

  回退时间的选择也是值得推敲的一个参数。CC2420是以数据包为单位发送的射频芯片,其最大数据包的长度为128字节,加上同步头5字节,总共是133字节。

  CC2420的发送速率是250kb/s,即发送一个字节的时间为32μs,因此发送一个最大数据包的时间为133×32=4256μs。根据信道采样规则,只要一采样到信道占用,就可以结束本次监测并得出信道繁忙的结论,因此回退时间应该要大于数据包的发送时间。又因为采样窗口数已经采用了随机选取,所以回退时间可以使用固定值。因此可以将回退时间固定为4.5ms,回退功能的具体实现只需要一个定时器辅助就可以了。

  最后,要处理信道强度阈值更新的问题。如果MAC层连续对信道监测的结果都是繁忙,且累计超过一个预设的阈值Y,就必须要调用MAC层提供的接口来对minSig2nal阈值进行更新,参照上节信号强度阈值的更新机制。

  根据实际的测试分析,Y的取值一般为30~60。

  5 结语

  本文灵活利用CC2420射频芯片的特点,设计并实现了一整套从物理层到MAC层的CSMA协议的实现;并详细阐述了协议中信道监测使用的所有判定规则及各关键阈值参数的选择。经过实际的多节点通信测试,该CSMA协议可以正确、稳定地进行信道活动监测,并实时动态地调整阈值;并且该CSMA协议的设计可以完全嵌入应用到其他MAC层协议中,辅助其他协议完成信道竞争或信道检测。

 CSMA协议是中运用得最为广泛的竞争协议,因此网络的MAC层大多使用CSMA机制来提供竞争信道的功能。随着IEEE802.15.4标准的制定,各射频芯片厂家也纷纷推出了性能更好、功能更强的射频芯片。TI公司(原Chipcon)推出CC2420来替代原来无线传感器网络使用最多的射频芯片CC1000。由于各射频芯片特性功能各不相同,为了使CSMA协议达到更好的性能,根据射频芯片的具体特性来重新优化设计CSMA机制也就变得很有必要。

  本文使用TI公司的MSP4301611超低功耗MCU,以及CC2420射频芯片作为硬件实验平台,充分利用CC2420部分IEEE802.15.4协议MAC封装的特性,设计并实现了一个全新的、灵活的CSMA协议。

  1 信道监测的设计

  实现CSMA协议的最基本的条件就是物理层必须提供可靠、实用的信道监测手段,因此首先要了解射频芯片的一些特性。

  1.1 CC2420的相关特性

  CC2420是TI公司推出的2.4GHz射频芯片,其硬件封装支持部分IEEE802.15.4的MAC层协议规定。

  CC2420的功能结构如图1所示,CC2420的数字接口具有自动CRC校验、自动加密的功能,并维护两个缓冲区(一个接收FIFO,一个发送FIFO)。数字接口通过SPI通信接口与微处理器相连。CC2420是以数据包为单位的射频芯片,即必须从微处理器收满一个数据包,才会发送该数据包。

  数字接口收满一整包后,自动添加CRC校验,并送入调制模块进行数据调制和整形,最后发送出去。当监测到信道有数据时,将数据经过模/数转换后送入数字解调器中进行帧同步;如果同步就将数据填入接收缓冲区中,最后填充当前信道内的RSSI(ReceiveSignalStrengthIn2dicator,接收信号强度指示器)信息。

  CC2420提供一个读取RSSI值的命令,开发者可以调用该命令来得到当前信道的信号强度值,并通过对该值的解析来判定当前信道是空闲还是繁忙。另外,CC2420在接收到数据包时,可以自动在数据包的倒数第二个字节里填充当前接收数据包时的RSSI值。这种特性对于信号强度阈值的更新维护十分有用。



评论


相关推荐

技术专区

关闭