×

S-MAC协议的详细资料介绍

消耗积分:1 | 格式:ppt | 大小:0.96 MB | 2019-03-05

沫沫,

分享资料个

  因为传感器网络中节点的能量资源非常有限,所以设计MAC协议时能源有效性应放在首位来考虑。在无线传感器网络中,除了正常的数据收发消耗能量外,MAC层上的能量损耗主要来自以下几个方面:

  (1)空闲侦听(idlelistening):网络中的节点不知道邻居节点何时向自己发送数据,其射频模块必须一直处于活动状态,因此消耗大量的能源。这是节点能量消耗的最主要来源,因为典型的射频收发器处于接收模式时消耗的能量比其处于待命模式多两个数量级。另外,为避免冲突,节点也需要不断的侦听信道,查询信道是否被占用。在没有或者很少有数据产生的网络应用中,空闲侦听的代价也是很大的。

  (2)碰撞冲突(collision):主要由于两个或多个节点在同一个时间段向同一个节点发送数据包,处在接收状态的节点发生冲突,造成信号间相互干扰,导致数据包被破坏,接收节点收到的信息都是没用的,应丢弃,源节点需要重新发送。发送和接收这些错误数据的能量将被损耗掉,这样不仅造成了能量浪费还增加了消息延迟。利用RTS/CTS握手机制可解决冲突问题,但带来额外的协议开销。

  (3)串扰(overhearing):在网络中,每个节点都是以广播的形式发送消息的,不是点对点的形式,节点广播范围内的节点就可能接收到发向其他节点的数据包,造成串音干扰。当节点密度很大或者需要传输的数据很多的时候,串扰消耗的能量也是很可观的。为尽量避免这种情况,节点应该在无数据收发时关闭其接收器。

  (4)控制信息开销control packet overhead):大多数的MAC层协议需要节点相互

  之间交换控制信息,这些信息的交换也将损耗一定的能量,MAC的报头和控制

  包(如RTS/CTS/ACK)不传送有效数据,消耗的能量对用户来说是无效的。当传送仅包含几个字节的数据时,协议开销很大。另外在无线传感网中,由于节点比较“脆弱”(携带有限的能量、易损坏等),每个节点需要确认其邻居节点处于什么状态(是否存活等),因此,也需要发送或接收一些消息。在有的无线传感网中需要进行同步,通过周期的发送同步消息,对节点进行同步,这些都需要消耗能量。

  传感器网络的节点本身具有一定的计算能力和存储能力,可以根据物理环境的变化进行较为复杂的监控,传感器节点还具有无线通信能力,可以在节点间进行协同监控。考虑到监测应用中的实际情况,传感器节点很可能处在人很难触及或者无法接近的地方,因此难以更换电池。故对于这类网络应用,节能是MAC协议设计的首要考虑因素。因为传感器节点的计算能力、存储能力和通信能力都有限,每个节点只能获得局部网络拓扑信息,因此在节点上运行的网络协议也要尽可能的简单。

  针对无限传感器网络的应用要求,S-MAC协议应运而生,协议主要

  是在一下几个方面做出了创新

  1.周期性侦听和休眠

  2.冲突避免

  3. 流量自适应侦听机制

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'S-MAC协议的详细资料介绍',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);