前言
随手记录一下学习无线传感器网络一些经典路由协议的心得体会~
TEEN协议于2001年提出,发表在IEEE上,协议全称为阈值敏感节能传感器网络协议(Threshold sensitive Energy Efficient sensor Network protocol)。
TEEN也是受LEACH协议启发所提出的一个协议,与LEACH协议有所不同的是,TEEN协议是针对反应式网络提出的,在这里简述一下反应式网络的概念。
反应式网络:网络节点节点对感测到的属性值的突然且剧烈的变化做出反应。
主动式网络:该网络中的节点定期打开其传感器和发射器,感知环境并传输感兴趣的数据。
TEEN协议是首个针对反应式网络提出的协议,具有良好的参考价值,该文章被引用情况如下图所示。跳转链接:TEEN: a routing protocol for enhanced efficiency in wireless sensor networks | IEEE Conference Publication | IEEE Xplore
一、协议内容
TEEN协议的簇头选举、节点入簇、簇间簇内通信过程与LEACH协议类似,在此不多赘述。
该协议的主要创新点在于:为了适应反应式网络的情况,在每次集群改变时,TEEN协议要求簇头向自己的簇内节点广播两个阈值信息:硬阈值(HT)与软阈值(ST)以控制网络通信。
硬阈值与软阈值的概念与作用如下:
硬阈值(HT):节点感知到的信息(如温度,湿度等)超过该值时才打开其发射器并向其簇头进行通信。
软阈值(ST):节点连续两次感知到信息的差异超过软阈值时才与簇头进行通信。
当节点感知到的参数第一次达到其硬阈值时,节点会打开其发射器并发送感测到的数据。并将该数据存储在节点中,称为感测值(SV)。仅当以下两个条件均成立时,节点才会在当前周期内进行下一次传输数据:
1.感测到的属性的当前值CV大于硬阈值HT。
2.感测到的属性的当前值CV与SV的差异等于或大于软阈值RT。
从上述描述可看出:硬阈值的作用是通过仅当感测到的属性在感兴趣的范围内时允许节点进行传输,以此减少传输次数。而软阈值则通过防止感测属性变化过小时可能发生的传输进一步减少传输的数量。
二、代码实现
1.部分核心代码
以监测一个区域内的温度信息为例来简单验证TEEN协议性能。
定义相关参数:
xm=100;
ym=100;
sink.x=0.5*xm;
sink.y=1.5*ym;
n=100;
p=0.2;
Eo=0.1;
ETX=50*0.000000001;
ERX=50*0.000000001;
Efs=10*0.000000000001;
Emp=0.0013*0.000000000001;
EDA=5*0.000000001;
h=100; % 硬阈值
s=2; % 软阈值
sv=0; % 当前值
tempi=50; % 温度范围
tempf=200;
随机产生温度值,记录CV与SV:
inisv = 0;
cv = tempi + (tempf-tempi).*rand(1,1); %%%%%%Current sensing value C(v)
if (cv >= h)
sv=inisv;
inisv = cv;
end
根据监测到的信息决定是否通信:
for i=1:1:n
if ( S(i).type=='N' && S(i).E>0 )
if(cluster-1>=1)
min_dis=sqrt( (S(i).xd-S(n+1).xd)^2 + (S(i).yd-S(n+1).yd)^2 );
min_dis_cluster=1;
for c=1:1:cluster-1
temp=min(min_dis,sqrt( (S(i).xd-C(c).xd)^2 + (S(i).yd-C(c).yd)^2 ) );
if ( temp<min_dis )
min_dis=temp;
min_dis_cluster=c;
end
end
min_dis;
if (cv >= h)
test = cv-sv;
if (test >= s)
if (min_dis>do)
S(i).E=S(i).E- ( ETX*(4000) + Emp*4000*( min_dis * min_dis * min_dis * min_dis));
end
if (min_dis<=do)
S(i).E=S(i).E- ( ETX*(4000) + Efs*4000*( min_dis * min_dis));
end
end
end
if (cv >= h)
test = cv-sv;
if (test >= s)
if(min_dis>0)
S(C(min_dis_cluster).id).E = S(C(min_dis_cluster).id).E- ( (ERX + EDA)*4000 );
PACKETS_TO_CH(r+1)=n-dead-cluster+1;
end
end
end
S(i).min_dis=min_dis;
S(i).min_dis_cluster=min_dis_cluster;
end
end
end
2.仿真结果
总结
TEEN协议由于数据传输的频率较低,又因为数据传输比数据传感会消耗更多的能量因此,即使节点持续感知,该方案中的能耗也可能比主动网络中的能耗低得多,同时软阈值可以根据感测属性的关键性和目标网络而改变,例如:较小的软阈值可以更准确地描述网络,但代价是增加能量消耗。
该协议的主要缺点是:如果没有达到阈值,节点将永远不会通信,用户不会从网络获取任何数据,即使所有节点都死亡也不会知道。因此,该方案不太适合需要定期获取数据的网络。