1 第三章  ZigBee和IEEE 802.15.4协议层
——————————————————————物理层的全部内容由outman翻译
1.1 ZigBee和IEEE 802.15.4网络层
 
 
1.2 ZigBee和IEEE 802.15.4物理层
这个图含的信息量可能需要贯穿在我们的整个学习过程中了,此处先不详解,只是先作为上方宝剑挂出来,这个是整个这一章的脉络。不过,还是要来认识下这里面的几位关键人物的:第一位叫“PHY”――物理层,他是最底层的员工,最终把这些“0”“1”送到空气中的活就是他干的;第二位叫“MAC”――介质读取控制层(这个家伙肯定是老外,连个像样的中文名都没有);第三位叫“NWK”――网络层,这是个中层干部,属于实干家型(就是公司里电话最多的那种领导);第四位叫“APL”――应用层,有同学问了,这层里面怎么这么复杂?说实话,我也还没弄明白呢,不过按常理来说,高层复杂是应该的,到我们的政府机关看看就知道啦~~~

  另外,下面两层是由IEEE 802.15.4来定义的,而中层领导上的就是由Zigbee组织来定义的,那什么是我们定义的呢?就是这个协议栈上面的,那就是最高最高的领导啦~~~

第三章,第一层――“PHY”――物理层
1.2.1 频率安排
  首先,我们从干活的这个小兄弟开始认识。他要把一个比特送到空中,是有几条航线可以选的,就这是所谓的频道,每一个频道对应一个频率,而每一个频道又有几种调制方式,我们可以理解为坐不同的飞机。下图是IEEE 802.15.4中对频道的安排:
 
  对于这里面的频道页的定义,不是太清楚为什么要这样定义,不过我觉得用前面说的飞机的概念,更容易理解些。有三种不同的飞机,每种飞机都可以走0-26,共27条航线,这就是物理层在送数据的时候要做出的选择。其中,0号航线的频率是868MHZ915M上有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会的,它会根据载波的特征去判断当前占用航道的是不是与自己一样的IEEE 802.15.4物理层信号,如果是,那不管ED值是多少,都会返回一个频道忙的信息。
1.2.4 连接质量指示――LQI
还记得电脑的WIFI指示吧,我也不了解WIFI协议,但我想这应该是相同的东西吧。在802.15.4中,有两种检测连接质量的方法,一个是检测接收信号强度”――RSS,另外一个是检测信噪比”――SNRRSS值是通过检测接收到的信号的全部能量情况来判断的。

  又有人举手了?这位同学有什么问题?――什么,这是怎么做到的?

  呃、、、这个我真不懂,不过我知道肯定有个寄存器来读的。至于这个值是怎么来的,你还是问下做IC的人,或者你个不是那么忙的教授,说不定他知道~~~不过这位小同学啊,看你问这个问题,我得多说你几句了。你这么叫真不好,倒不是打击你,我知道你说不定能成个人物,不过,学习是要讲深度广度并举的,如果什么事情都一头钻进去,你会迷路的。。。

  我们继续,那信噪比”SNR,顾名思义,就是信号除以噪声的比率了。当然,值越大表示信号质量越好。

  每一个接收到的数据包都会做一个LQI的测量,它至少有八个等级。这个测量是物理层很重要的一个任务,因为这个值不但他的直属领导-MAC层要用到,他的上几层领导-网络层和应用层都用得到。比如说网络层(NWK)在选择路由的时候,LQI就是一个很重要的指标,LQI值高的路径当然要优先考虑,当然,这也只是一个因素,比如说这个LQI高的路径里的设备都是电池供电的,那么在频繁选择这个路径的同时,必然会导致这些设备电池寿命缩短。所以,一定要多方面权衡――这就体现了领导的作用。。。
1.2.5 空闲频道评估――CCA
(注:本教程里的中文名称可能不符合标准,只是方便笔者说明问题,如对名称有异议,欢迎在本教程论坛-www.feibit中讨论)

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

  它有一个不太帅的中文名字叫载波侦听多点接入/冲突避免,笔者现在还无法对这个概念
做个定义,不过倒是可以用白话翻译一下。在上文中我们看到,当我们的“PHY小弟要发送一个比特的时候,要面临那么多选择,走哪个航线,选什么样的飞机等等,那这么复杂的决策,小弟能搞得定吗?要两个小弟都在争一个位置,打架了怎么办?按社会常理来看,这应该不是哪个人决定的,而是有个制度,这样说,能理解不?

  当然,制度也是要人来执行的,一个最底层的工作叫空闲频道评估”――CCA,这个也是由我们的小弟物理层来做的。他要告诉MAC层,当前频率有没有被其它设备占用。而且这个工作不能只做一次就汇报,要检测8个符号周期。

  在IEEE 802.15.4物理层协议中,有三种CCA模式:
1. 只检测ED值。只要ED值高于一个门限就认为当前频道被占用。这个门限值可以由设计者来定义。
2. 只由CS结果来决定。只要CS的检测结果为: "当前频道被IEEE 802.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个符号周期内完成接收任务。

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


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

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。