ZigBee无线网络和收发器25.docx

上传人:b****4 文档编号:5473291 上传时间:2023-05-08 格式:DOCX 页数:35 大小:1,021KB
下载 相关 举报
ZigBee无线网络和收发器25.docx_第1页
第1页 / 共35页
ZigBee无线网络和收发器25.docx_第2页
第2页 / 共35页
ZigBee无线网络和收发器25.docx_第3页
第3页 / 共35页
ZigBee无线网络和收发器25.docx_第4页
第4页 / 共35页
ZigBee无线网络和收发器25.docx_第5页
第5页 / 共35页
ZigBee无线网络和收发器25.docx_第6页
第6页 / 共35页
ZigBee无线网络和收发器25.docx_第7页
第7页 / 共35页
ZigBee无线网络和收发器25.docx_第8页
第8页 / 共35页
ZigBee无线网络和收发器25.docx_第9页
第9页 / 共35页
ZigBee无线网络和收发器25.docx_第10页
第10页 / 共35页
ZigBee无线网络和收发器25.docx_第11页
第11页 / 共35页
ZigBee无线网络和收发器25.docx_第12页
第12页 / 共35页
ZigBee无线网络和收发器25.docx_第13页
第13页 / 共35页
ZigBee无线网络和收发器25.docx_第14页
第14页 / 共35页
ZigBee无线网络和收发器25.docx_第15页
第15页 / 共35页
ZigBee无线网络和收发器25.docx_第16页
第16页 / 共35页
ZigBee无线网络和收发器25.docx_第17页
第17页 / 共35页
ZigBee无线网络和收发器25.docx_第18页
第18页 / 共35页
ZigBee无线网络和收发器25.docx_第19页
第19页 / 共35页
ZigBee无线网络和收发器25.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ZigBee无线网络和收发器25.docx

《ZigBee无线网络和收发器25.docx》由会员分享,可在线阅读,更多相关《ZigBee无线网络和收发器25.docx(35页珍藏版)》请在冰点文库上搜索。

ZigBee无线网络和收发器25.docx

ZigBee无线网络和收发器25

1第三章ZigBee和IEEE802.15.4协议层

——————————————————————物理层的全部内容由outman翻译

1.1ZigBee和IEEE802.15.4网络层

 

  

1.2ZigBee和IEEE802.15.4物理层

这个图含的信息量可能需要贯穿在我们的整个学习过程中了,此处先不详解,只是先作为“上方宝剑”挂出来,这个是整个这一章的脉络。

不过,还是要来认识下这里面的几位关键“人物”的:

第一位叫“PHY”――物理层,他是最底层的员工,最终把这些“0”和“1”送到空气中的活就是他干的;第二位叫“MAC”――介质读取控制层(这个家伙肯定是老外,连个像样的中文名都没有);第三位叫“NWK”――网络层,这是个中层干部,属于实干家型(就是公司里电话最多的那种领导);第四位叫“APL”――应用层,有同学问了,这层里面怎么这么复杂?

说实话,我也还没弄明白呢,不过按常理来说,高层复杂是应该的,到我们的政府机关看看就知道啦~~~

  另外,下面两层是由IEEE802.15.4来定义的,而中层领导上的就是由Zigbee组织来定义的,那什么是我们定义的呢?

就是这个“协议栈”上面的,那就是最高最高的领导啦~~~

第三章,第一层――“PHY”――物理层

1.2.1频率安排

  首先,我们从干活的这个小兄弟开始认识。

他要把一个比特送到空中,是有几条航线可以选的,就这是所谓的“频道”,每一个频道对应一个频率,而每一个频道又有几种调制方式,我们可以理解为坐不同的“飞机”。

下图是IEEE802.15.4中对频道的安排:

 

  对于这里面的“频道页”的定义,不是太清楚为什么要这样定义,不过我觉得用前面说的“飞机”的概念,更容易理解些。

有三种不同的飞机,每种飞机都可以走0-26,共27条航线,这就是“物理层”在送数据的时候要做出的选择。

其中,0号航线的频率是868MHZ,915M上有10条航线,其频率可以通过下面公式计算:

中心频率(MHz)=906+2×(频道号–1)

  同样,2.4G波段上的频率值为:

中心频率(MHz)=2405+5×(频道号–1)

1.2.2能量检测——ED

就像航空公司一样,“比特”想要“飞”起来,也是有“航空管制”的,在起飞前要确认下航道有没有被占用,这可不能像开车,塞车了就等会,飞机要在空中停了,那不得掉下来(我小时候总这么想~)。

能量检测就是用来实现这个目的的,当然,这只是个“能量”检测,它不会去区分到底是谁在占用“航道”,它只检测有或者没有。

  当然,这也是物理层的上级――MAC层给他的任务之一,不过允许他不用百分百准确,允许10db的误差,结果会以一个8比特的字节向上报告。

1.2.3载波检测――CS

载波检测也是检测当前频道能不能用的,但与ED不同,上面说了ED不会去区分到底是谁在占用“航道”,但是CS会的,它会根据载波的特征去判断当前占用“航道”的是不是与自己一样的IEEE802.15.4物理层信号,如果是,那不管ED值是多少,都会返回一个“频道忙”的信息。

1.2.4连接质量指示――LQI

还记得电脑的WIFI指示吧,我也不了解WIFI协议,但我想这应该是相同的东西吧。

在802.15.4中,有两种检测连接质量的方法,一个是检测“接收信号强度”――RSS,另外一个是检测“信噪比”――SNR。

RSS值是通过检测接收到的信号的全部能量情况来判断的。

  又有人举手了?

这位同学有什么问题?

――什么,这是怎么做到的?

  呃、、、这个我真不懂,不过我知道肯定有个寄存器来读的。

至于这个值是怎么来的,你还是问下做IC的人,或者你找个不是那么忙的教授,说不定他知道~~~不过这位小同学啊,看你问这个问题,我得多说你几句了。

你这么“叫真”不好,倒不是打击你,我知道你说不定能成个人物,不过,学习是要讲“深度”和“广度”并举的,如果什么事情都一头钻进去,你会迷路的。

  我们继续,那“信噪比”SNR,顾名思义,就是信号除以噪声的比率了。

当然,值越大表示信号质量越好。

  每一个接收到的数据包都会做一个LQI的测量,它至少有八个等级。

这个测量是物理层很重要的一个任务,因为这个值不但他的直属领导-MAC层要用到,他的上几层领导-网络层和应用层都用得到。

比如说网络层(NWK)在选择路由的时候,LQI就是一个很重要的指标,LQI值高的路径当然要优先考虑,当然,这也只是一个因素,比如说这个LQI高的路径里的设备都是电池供电的,那么在频繁选择这个路径的同时,必然会导致这些设备电池寿命缩短。

所以,一定要多方面权衡――这就体现了“领导”的作用。

1.2.5空闲频道评估――CCA

(注:

本教程里的中文名称可能不符合标准,只是方便笔者说明问题,如对名称有异议,欢迎在本教程论坛-中讨论)

  这里有一个很重要的名词叫“CSMA-CA”,听起来就像高科技,不知道和CDMA有没什么关系(做通讯的朋友开始扔砖头了~~~)

  它有一个不太帅的中文名字叫“载波侦听多点接入/冲突避免”,笔者现在还无法对这个概念做个定义,不过倒是可以用“白话”翻译一下。

在上文中我们看到,当我们的“PHY层”小弟要发送一个比特的时候,要面临那么多选择,走哪个航线,选什么样的飞机等等,那这么复杂的决策,“小弟”能搞得定吗?

要两个“小弟”都在争一个位置,打架了怎么办?

按社会常理来看,这应该不是哪个人决定的,而是有个“制度”,这样说,能理解不?

  当然,制度也是要人来执行的,一个最底层的工作叫“空闲频道评估”――CCA,这个也是由我们的小弟“物理层”来做的。

他要告诉MAC层,当前频率有没有被其它设备占用。

而且这个工作不能只做一次就汇报,要检测8个符号周期。

  在IEEE802.15.4物理层协议中,有三种CCA模式:

1. 只检测ED值。

只要ED值高于一个门限就认为当前频道被占用。

这个门限值可以由设计者来定义。

2. 只由CS结果来决定。

只要CS的检测结果为:

"当前频道被IEEE802.15.4定义的设备占用",则返回频道忙。

3. 由上述两个值的“与”或者“或”逻辑来决定。

也说是说

●ED值高于门限“并且”有802.15.4设备占用,则认为频道忙

●ED值高于门限“或者”有802.15.4设备占用,则认为频道忙

  那究竟采用哪种CCA模式呢?

这个可以通过PHY属性值phyCCAMode来设置。

这个值也是PHY-PIB值的一部分,下面的章节会对这个概念进行介绍。

1.2.6物理层常量和属性

  首先说明一下“常量”和“属性”这两个词,所谓的常量就是说在“编译”好之后不能变的量;而属性则是可以改变的。

在Zigbee协议栈中,每一层都有自己的常量和属性。

 

  如表3.2所示,物理层中只有两个常量,aMaxPHYPacketSize指示“物理层服务数据单元”――PSDU不能超过127字节;而aTurnaroundTime说明一个设备由接收状态转为发送状态的最大时间,也就是说一个接收器必须在12个符号周期内完成接收任务。

  同时要说明的一点是,PHY和MAC层的所有常量都有一个前缀“a”,这是Zigbee协议的规定,NWK和APL层分别以前缀“nwkc”和“apsc”开始。

  物理层的“属性”包含在“物理层PAN信息基准表”――PHY-PIB中,这个表是专门用来管理物理层服务的,详细信息在表3.3中,其中有(+)标志的为只读属性,上层只可以对此类属性进行“读”操作,只有物理层自己才能“写”;而有(*)标志的属性,其个别指定位为“只读”;其余的属性则可读可写。

后面章节会对每个属性详细阐述。

 

1.2.7物理层服务

  我们研究了半天物理层是怎么工作的,下面看下我们到底怎么“吩咐”他,他到底提供了哪些“服务”。

  物理层提供了两种类型的服务,一种是数据服务,一种叫物理层管理服务。

顾名思义,数据服务通过无线电波对“物理协议层数据单元”――PPDU进行发送和接收,说简单点就是收发数据;另外,物理层中包含了一个叫“物理层管理实体”――PLME的一个管理单元,如下图所示,数据服务是通过PD-SAP实现的,而物理层管理服务是通过PLME-SAP来实现的,其中PLME也包含上文所述的PHY-PIB。

 

1.2.7.1物理层数据服务

 

  咦,这个图是不是上错位置啦?

怎么还是1.11呢?

不会啦,像俺这么仔细的人,咋会犯这种低级错误呢~~~

  感觉这个地方应该补补课了,这个图里面有一个很重要的概念,就是“Payload”,字面理解,就是要付费的信息,那其他的信息不用“付费”吗?

恩,可以这样理解,除了Payload之外的信息都是些辅助信息,免费赠送啦~~

  PHY的Payload就是整个MAC层数据,MAC层的Payload就是整个NWK层数据,以此类推。

从上图中我们也容易看出,每一层都会增加一些本层的辅助信息,然后传递给下层去传输。

  回到这节的主题,物理层的数据服务到底可以做哪些事情呢?

简单地来说,就是为MAC层提供了“MAC协议层数据单元”――MPDU的传输,这个名字不陌生吧,前面我们不是刚讲了一个PPDU吗?

当然还会有NPDU和APDU啦,道理都一样,就不一一介绍啦。

不过,不要忘记那些“免费赠送”的信息哦,那也是很重要的,比如LQI信息等等。

  如果传输服务失败,会返回下面几种原因之一

  1、发送器工作不正常

  2、发送器在接收模式,一个设备同时只能在接收和发送中的一种状态

  3、发送器忙

再上一个图来直观表示下各层间的通讯

 

这个图貌似复杂,但谁让咱都是“炎黄子孙”呢,用老祖宗的一句话就能理解这个图了――兵对兵,将对将。

1.2.7.2物理层管理服务

  如图3.2,此服务名为PLME-SAP,它会在PLME和MLME中传递命令信息。

它提供的服务有如下几种:

  1、空闲频道评估――CCA

  2、能量检测――ED

  3、打开/关闭发送器

  4、从PHY-PIB中获取信息

  5、设置PHY-PIB属性

1.2.7.2.1空闲频道评估――CCA

  其概念已在前面讲解过,这里看下它可能返回的结果:

  1.  发送器异常,那CCA就没意义了

  2.  频道空闲,可以传输

  3.  频道或者发送器忙,这两种情况PLME不再做区分,均返回“忙”

1.2.7.2.2能量检测――ED

  ED检测请求由MLME发出,由PLME执行,最终结果返回MLME。

1.2.7.2.3打开/关闭发送器

  MLME可以通过PLME让发送器进入以下三种状态之一:

发送器关闭、发送器打开和接收器打开

1.2.7.2.4从PHY-PIB中获取信息

  同样,读取请求由MLME发出,由PLME执行,最终属性返回MLME

1.2.7.2.5设置PHY-PIB属性

  除了只读属性外,MLME可通过PLME设置PHY-PIB的属性

1.2.8服务原语

  在802.15.4和Zigbee协议中,用“原语”的概念来描述相邻两个层间的服务,层间调用函数或者传递信息,都可以用原语来表示。

虽然,在整个系统中,有很多不同的层,但是层间的通讯方式是非常相似的。

比如PHY、MAC与NWK层都为他们的上一级提供数据服务,其请求数据服务的机制类似:

高层通过D-SAP向下级请求传输,下级传输成功后将状态返回给上级。

  正是由于这种相似性,才让“服务原语”这种方式显得格外重要。

每一个原语要么执行一个指令,要么返回一个之前指令的运行结果。

原语也会带着指令运行需要的参数。

 

  上图描述了某层为其上层提供服务的一般方法,如图所示,有四种类型的原语:

请求、指示、响应和确认。

换句话说,在802.15.4和Zigbee标准中的所有服务都可以归类为上述四种原语之一。

原语用下面的格式来描述:

(注:

出于本文读者多数为现在或者未来的软件工程师,后面直接用英文名称来表述四种原语)

.request

.indication

.response

.confirm

  首先,由N+1层向N层用request原语申请一个服务,比如说MAC层向PHY层请求一个MPDU传输服务,它必须要向PHY层申请一个PD-Data.request的原语。

  而N层会向其服务用户(经常是N+1层)发出一个indication的原语,用来指示一个对N+1层很重要的事件。

比如说,PHY层接收到一组数据,需要将此数据传递给MAC层,那么它就向MAC层产生发出一个PD_Data.indication的原语,用来向其传递数据。

  如果这个indication原语要求对其做出响应,那么N+1层就会发出一个response原语。

值得注意的是,PHY和NWK层没有任何response原语,而只有MAC和APL层有。

  而confirm原语是由N层发出,用来最终确认最初N+1层申请的request服务已经完成。

比如在上例中,数据发送完成后,PHY层会告诉MAC层,传输已经成功完成。

注:

本文只是用一种浅显易懂的方式,让读者了解原语的基本概念,如果读者需要深入了解每层提供的原语细节,请直接阅读802.15.4和Zigbee的协议文档。

1.2.9物理层的数据包格式

 

  如图所示,PPDU主要包含三部分主要内容:

同步头(SHR),PHY层头信息(PHR)和PHY层的“有效负载”-payload。

  我们一起来分析一下,这三部分里面具体包含了哪些内容。

  同步头SHR包含了接收时所需要的同步信息,以使得在接收端产生与发送端相同的同步信息,用以还原最初的比特流。

PHR包含了数据桢的长度信息。

PHYPayload是它的上层服务用户要求它发送的实际有效数据。

  SHR包含了一个“前导同步(preamble)”和一个“桢开始分隔符(SFD)”,Preamble用来让接收器获取同步信息的,其详细信息暂不做介绍,如果后续有需要再补上。

  SFD代表了SHR的结束与PHR的开始,除了ASK调制模式外,其他模式的SFD数据如下图所示:

 

  下一部分的数据是PHY数据包的桢长度,它代表了PHY的Payload(PSDU)的全部字节长度,其值的范围为1-127(前述的PHY常量中可对其进行定义),但实际上它取决于802.15.4-2006的标准,如下图所示,当其值为5,表示的是这是一个MAC的“握手”桢,9-127可以为任意的MPDU,而0-4,6-8暂为定义,为以后的扩展定义做保留。

 

  最后的部分PSDU是PHY层的实际“Payload”,它是由MAC层提供的,需要PHY层传输的有效数据。

――就是要付费的那部分~

  另外,在802.15.4标准中,数据的传输顺序是这样的:

SHR的低位首先传输,而PSDU的高位是最后传输的。

1.2.10物理层的职责总结

  PHY层这位“小弟”是直接跟无线电波打交道的,讲了这么多,最后让我们回头再来总结下,他到底要做些什么:

  1.  激活、禁止无线电波传输

  2.  发送、接收数据

  3.  选择一个频道(发送器需要发送数据的准确频率)

  4.  实现能量检测(ED)。

ED检测是用来评估所要传输的频道的能量值,用以决定当前频道是否空闲,是否可用以传输数据。

  5.  进行空闲频道评估――CCA

  6.  产生LQI值,用以衡量接收数据包的质量,指示信号强度

 

—————————第三章中以上部分由outman翻译

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.3

IEEE802.15.4MAC层

(注意点:

网络中的设备类型有三种,协调器,路由器,终端。

有时又将路由器和终端统称为设备(Device),即非协调器。

文中很多处使用“设备”一词,很多情况下,其意思不是指所有的设备,而是指除协调器外的其他设备类型,遇到“设备”一词时,请大家自己结合上下文具体理解“设备”的意思。

MAC层为其下一层和PHY层之间提供了接口,在zigbee无线网络中,这个“下一层”指的是NWK层。

IEEE802.15.4不是专门为zigbee应用而开发的,因此“下一层”可以是任何网络协议层。

在这边书中,主要讨论了MAC层和zigbeeNWK层间的相互作用。

图3.6显示了MAC子层参考模型。

MAC层类似于PHY层,有一个管理实体叫MAC层管理实体(NLME),它负责MAC管理服务。

MLME与其在NWK层中的对应项(NWK层管理实体,或NLME)进行相互作用。

MAC层也有其自己的数据库,叫做MACPAN信息库(MAC-PIB)。

所有的MAC常量都有一个通用的前缀a,所有的MAC属性都有一个通用前缀mac。

MAC-PIB的大小比PHY-PIB要大。

(“IEEE802.15.4standarddocument[2]”中提供了MAC的常量和属性)。

1.3.1信标操作和超帧结构

信标使能的网络优点之一就是具有保证时隙(GTS)。

信标帧就是包含信标信息的MAC帧,例如信标间的时间间隔和GTS个数。

信标帧格式在3.3.5.2小节有介绍。

在信标操作中,可能会使用一个超帧结构。

如图3.7所示,一个超帧以两个信标帧为边界。

在IEEE802.15.4标准中,是否使用超帧结构是可选的。

在一个超帧中可以有最多三种类型的时间段(Period):

竞争时间段(CAP),无竞争时间段(CFP)和非激活时间段(InactivePeriod)。

附上CAP英文解释:

contentionaccessperiod(CAP):

Theperiodoftimeimmediatelyfollowingabeaconframeduringwhichdeviceswishingtotransmitwillcompeteforchannelaccessusingaslottedcarriersensemultipleaccesswithcollisionavoidance(CSMA-CA)mechanism.直接跟在信标帧后的这段时间内,想要发送信息的设备,将会使用CSMA-CA机制进行竞争,这段时间就是CAP。

在CAP期间,所有想发送信息的设备需要使用CSMA-CA机制来访问一个频道。

该频道对同网络中的所有设备同样有效,第一个开始使用一个有效频道的设备将会把该频道据为己有,直到它当前的发送完成。

如果设备发现频道正忙,它会等待一段随机时间然后重新访问。

对一个大网络中的多数设备来说,这是最可能的信道访问机制。

MAC命令帧必须在CAP期间发送。

在CAP期间,无法保证任意设备都能使用一个频道,而CFP则为特定的设备保证了一个时隙,因此,设备无需使用CSMA-CA机制来访问频道。

这为许多低延迟应用,例如那些等待不起一段/随机和潜在的长时间/直到频道有效的应用,提供了一个很好的选择。

CFP中不允许使用CSMA-CA。

CAP和CFP合起来叫激活时间段(ActivePeriod)。

激活时间段被平均分成了16等份的时隙,信标帧总是开始于第一个时隙的开头。

CFP中有最多7个GTS,每个GTS占用一或多个时隙。

超帧可以选择是否带有非激活时间段,非激活时间段允许设备进入省电模式。

在省电模式期间,协调器可以关闭它的收发器线圈来节省电池能量。

超帧结构由协调器定义,并且在网络层中使用MLME-START.requestprimitive请求原语进行配置。

两个连续信标间的持续时间,时间间隔(BI),由数值macBeaconOrder(BO)属性和aBaseSuperframeDuration常量使用下面的等式决定:

BI=aBaseSuperframeDuration×2BO(symbols)

例如,给出aBaseSuperframeDuration的值是960Symbols,而BO的值是2,那么信标间隔BI将会是3840symbols.(“IEEE802.15.4standarddocument[2]”中提供了MAC的常量和属性)。

在一个信标使能的网络中,BO可以是0-14中的任何值,如果BO的值被设置为15,网络将被认为是非信标使能,并且不使用任何超帧。

类似的,超帧激活时间段的长度叫做超帧持续时间(SD),由下面等式计算得到:

SD=aBaseSuperframeDuration×2SO(symbols)

其中SO是macSuperframeOrder属性的值。

超帧持续时间SD不能超出信标间隔BI,因此,SO的值总是小于或等于BO。

在一个非信标使能的网络中(例如BO=15时),协调器不发送信标,除非它从网络的某个设备接收到一个信标请求命令。

设备使用信标请求命令来定位协调器的位置。

3.3.5.5.5小节提供了信标请求命令的格式。

非信标网络中的PAN协调器设置SO的值为15。

在信标使能网络中,除了PAN协调器,任何协调器都可以选择性的发送信标和创建自己的超帧。

图3.8显示了当PAN协调器和网络中另一个协调器都在发送信标时所需要的时序。

协调器只能在PAN协调器超帧的非激活时间段开始发送信标。

PAN协调器信标被叫做“接收信标”,其他任何协调器的信标被叫做“发送信标”,两个超帧的激活时间段(ActivePeriod)必须具有相等的长度。

除了PAN协调器,其他的协调器只能发送一个信标来表明其超帧的开始,而超帧的结束则可以和PAN协调器的结束相同。

如果一个设备没有使用其GTS来获得一段延长时间,它的GTS将会终止,并且协调器可以把这个特定的GTS分配给一个不同的设备。

非激活时间段能够导致GTS终止,它总是两个超帧长度的整数倍,这个倍数的值(n)取决于BO的值:

n=2(8–BO)if0<=BO<=8

n=1if8<=BO<=14

例如,一个设备的BO为7,且在四个连续的超帧中没有使用它的GTS,那么它的GTS将会终止。

1.3.2帧间间隔

从一个设备向另一个发送数据时,发送设备必须在两个连续发送的帧间进行简短的等待,以允许接收设备在下一帧到达前对接收到的帧进行处理,这被称作帧间间隔(IFS)。

IFS的长度取决于发送帧的大小。

小于或等于aMaxSIFSFramesSize的MPDU被当作短帧,而长帧则是长度大于aMaxSIFSFramesSize个字节的MPDU。

短帧后的等待阶段被称作是短IFS(SIFS),SIFS的最小值是macMinSIFSPeriod。

类似的,长帧后跟随一个长IFS(LIFS),其最小长度是macMinLIFSPeriod。

macMinSIFSPeriod和macMinLIFSPeriod的值

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2