• 全国客户服务热线:4006-054-001 疑难解答:173-0411-9111(7X24受理投诉、建议、合作、售前咨询),155-4267-2990(售前),传真:0411-83767788,微信:543646
当前位置:主页 > 技术方案 > 环境传感

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

时间:2023-09-25 22:56来源: 作者: 点击:
>CSMA协议在无线传感器网络中的实现

 通过基本规则和扩展规则已经可以得出一个准确性较高的信道活动状态判定,扩展规则弥补了基本规则可能会出现的错误。在实际的测试中,如果两个阈值的初值选择得很合适,那么一般并不会进入扩展采样。若阈值初值选择得不贴切,如mingSignal初值过大,则noiseLevel初值过小时都会导致进入扩展采样。

  这里还需要说明的是m的取值。本文中采样定时器设置为1ms,即1ms采样一次。扩展采样次数m取值越大,准确性自然就越高,但是整个性能有所下降(花去的额外时间过多)。m的值也不能过小,不然extCSVal统计值就不能发挥其作用。由于本文使用的初始阈值是经过大量测试确定的精确值(参照信号强度阈值初值的选择),因此使用该初始阈值进行的测试结果显示:只有极少情况进入扩展采样(约5000次监测进入一次扩展采样)。鉴于这种实际情况,m的取值不需要很大,本文取其值为3。如果初始阈值不能精确设定,那么可将m值放大。

  3 信号强度阈值的选择和更新维护

  从信道监测的基本规则和扩展规则可以看出,信号强度的两个阈值对信道状态的判定十分重要,因此这两个阈值的初始值选择必须十分慎重;而且必须要根据当前信道状态动态更新阈值的机制。

  3.1 信号强度阈值的更新机制

  阈值的动态更新必须使用大量的实时RSSI值作为统计值,且需要把RSSI值分为两类:一类是信道繁忙时的RSSI,本文称为busyRSSI;另一类是信道空闲时的RS2SI值,本文称为noiseRSSI。这两个值可以在物理层每接收到一个数据包时获取,因为CC2420接收到一个数据包时将在数据包的倒数第二个字节(FCS域)自动填充接收时的RSSI值,因此busyRSSI值就无条件地得到了;而在刚接收完数据包后信道一般都是空闲的,所以这时立即读取当前的RSSI值,就可以得到noiseRSSI值。为避免例外,可将得到的noiseRSSI值与minSignal进行比较,如果大于等于minSignal就丢弃。

  在获得busyRSSI和noiseRSSI后就对其进行统计操作,为这个目的需要维护一个统计变量avgSignal,用来统计所有的busyRSSI值。avgSignal的初值等于min2Signal的初值即初始阈值,并按1/4的权重进行统计,即avgSignal=(avgSignalm1)+((avgSignal+busyRSSI)m2)。noiseRSSI的值并不需要统计,这是因为读出nois2eRSSI的值很稳定几乎不变。

  noiseLevel阈值的更新相对简单,因为噪声信号强度十分稳定,因此不必对noiseRSSI做统计,每次读取noise2RSSI后可直接对noiseLevel进行更新。更新规则也是采用1/4权重,即noiseLevel=(noiseLevelm1)+((noiseLevel+noiseRSSI)m2)。

  minSignal阈值需要针对两种互补的情况来进行更新调整。第一种情况是一段时间内的采样结果全是信道空闲,说明所有的采样值都小于minSignal,因此有可能min2Signal的值过高,应对其调整将其适当降低。该情况在监测信道结果为空闲时触发更新,更新方法是直接利用当前的busyRSSI来更新;只要busyRSSI的值小于当前的minSignal值,那么就将busyRSSI的值作为最新的min2Signal值。这样做是因为在busyRSSI的信号强度下已经能够接收数据了,而busyRSSI又比当前的minSignal要小,所以更接近实际的阈值。

  第二种情况是对第一种情况的补充。在做了第一种情况的修改后,如果长时间内监测到的都是信道繁忙(如载波监听几次回退后都返回繁忙),那么就可能是minSig2nal的值设置得太低,因此要适当调高该值,以避免使用第一种更新方式后由于设置的minSignal值太低而导致不能使用信道的情况。该情况提供一个接口由上层(MAC层)来调用更新。更新需要借助统计量avgSignal,更新的伪代码如下(其中initBusySingal指的是minSignal的最初值):

  initBusySignal的选择将在后面介绍,它的选择对更新机制尤为重要。因为minSignal的更新机制建立的基础就是initBusySignal非常接近实际临界值。initBusySignal本身也是经过大量测试后选择的一个信道活动最小强度值,而它肯定会大于(最小等于)实际的临界值,所以min2Signal更新后应该比initBusySignal小才对。



>CSMA协议在无线传感器网络中的实现
热门服务和内容