关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于无线传感器网络的桥梁监测系统研究

基于无线传感器网络的桥梁监测系统研究

作者:时间:2012-12-05来源:网络收藏

5.1 CTP协议的实现

CTP协议是树的多跳协议。把中的节点抽象为树,每棵树有一个根节点, 负责收集这棵树所有节点的信息。中节点通过路由梯度值(ETX)逐跳地选择路由, 直至到达根节点。根节点的ETX为0, 每个子节点的ETX值等于父节点的ETX值加上该节点到它父节点的路径ETX值。因此, ETX值是沿着往根节点的方向递减的, CTP选择路径ETX值最小的路径作为路由。

CTP的实现是下层链路估计结果的。链路估计会维护一个邻节点表, 表中存储了每个邻节点的路径ETX 值。CTP协议中的CtpRoutingEngine 组件实现了路由的选择, 它根据邻节点的ETX值为数据传输选择下一个路由。另一个关键的组件函数CtpForwardingEngine, 该组件主要是维护一个消息发送队列, 往下层发送本地产生的或者转发过来的数据包; 该组件还能够检测重复发送的数据包, 以抑制重复发包。

实现的四个关键函数是: 数据包接收(SubReceive.receive())、数据包转发(forward())、包传输(sendTask())和发送完成事件(SubSend.sendDone())。

函数SubReceive.receive ()决定是否要转发包。通过维护一个最近收到的包缓存来检查是否有重复包。如果判定一个包不是重复包, 则调用forward()函数。

forward()函数封装好要发送的包。这个函数同时检查是否有回环。发送时将包放到发送队列中去, 若队列满了, 就丢弃该包, 并把C位置1。如果队列为空, 则立即post 发送任务。

sendTask()检查发送队列头部的数据包, 封装好后提交给AM层。发送完成后, sendDone()函数检查发送的结果。如果该数据包已经被确认过了, 则将该包从队列中取出。如果是本地的包, 发送事件通知给上层的客户。如果是转发来的包, 则将它放到转发消息池中。如果队列中还有包的话, 就启动一个随机时钟, 重新post发送任务。

5.2 LEEP协议的实现

LEEP 是一种链路估计交换协议, 主要是用来计算某节点与邻节点之间的双向链路质量。节点A→B的链路质量是指B成功接收到A发送的数据包的概率。节点(A, B)间的双向链路质量是A→B的链路质量(in-bound 链路质量)与B→A的链路质量(out-bound 链路质量) 的乘积。

6 结束语

结构健康,我们对节点的设计和支持运行的嵌入式操作TinyOS的移植问题进行了。还有两个问题需要进一步深入,一个是网络的休眠节能技术需要解决网络各节点的同步问题;第二个问题是建立结构健康*估专家系统,能够根据传感器网络汇总的大量结构信息作出准确的分析判断,从而实现事故预报警,预防突发性灾难,确保桥梁安全。

光纤传感器相关文章:光纤传感器原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭