新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > EZMacTM媒体接入控制软件(07-100)

EZMacTM媒体接入控制软件(07-100)

—— EZRadio IA442x收发器的EZMacTM媒体接入控制软件
作者:Integration公司时间:2009-03-03来源:电子产品世界收藏

  休眠模式

本文引用地址:http://www.eepw.com.cn/article/91986.htm

  初始化之后,MAC层处于“休眠”模式。在这种模式下,射频硬件是完全关闭的,仅消耗不到0.3uA的电流。在开始发射或接收之前,至少需要5ms来唤醒MAC。这5ms是晶体振荡器达到稳定所需的最长时间。

  空闲模式

  使用唤醒命令唤醒收发器后,MAC就切换到“空闲”模式。在这种模式下,MAC等待进一步的指令。虽然收发器中的晶振已经在运行,但射频的各个模块还是处于禁用状态,芯片的电流消耗大约是0.6mA。MAC系统始终处于该模式中,直到接收到下一个接收、发射或休眠指令为止。

  因为EZMac仅支持半双工通信,所以不能同时发射和接收。

  发射模式

  发送发射指令之前,数据会和它的目标地址一起装载到MAC对应的寄存器中。发射指令发送后,MAC开始发射。芯片的电流消耗激增到26mA(在最大输出功率的情况下,但实际的消耗电流取决于输出功率的设定)。完成发射任务后,如果MAC还处在激活状态,它会自动回到空闲模式或直接进入休眠模式。

  接收模式

  在“空闲”模式中,如果MAC接收到接收指令,它会改变到“接收”模式。收发器的消耗功率增加到大约15mA左右。MAC扫描可用的频率,以有效地实现数据的传输。

  一旦接收到一个有效的数据包,而且该数据包通过了所有激活的错误检测和地址过滤,MAC就把收发器工作模式改为节电模式,等待更高层的软件读出接收数据。读出数据之后,MAC也会进入“空闲”模式,或者直接进入“休眠”模式。

  EZMac的包过滤方法

  EZMac具备智能化的包过滤功能。过滤器可由几种选项来配置,以便能很好地满足处于更高的软件层(应用层)的需求。

  EZMac被配置好后,更高层将只需发射和接收有效数据。EZMac则执行所有的打包和拆包的任务。EZMac自动运行CRC,上层仅得到没有错误的数据包。

  图2是数据包过滤的流程图。

 

  图2 数据包过滤的流程图

  实时操作

  数据包的过滤在接收过程中实时进行。这就意味着,当接收到一段(字节)数据包报头时,过滤器就会对数据包进行检查。如果相应的过滤器检测到数据包报头的任何一部分有错误时,都会终止数据包的接收。

  这种技术使EZMac在接收进程刚开始的阶段不去理会意外出现的无效数据包。终止数据包的接收后,EZMac会及时报告错误并跳到下一个可用的频率上,继续搜寻有效的数据包。

  实时的数据包过滤节约了各种资源(处理器的消耗功率和电池的使用寿命), 而且,因为无需处理无效的数据包,所以减少了资源浪费而达到了显著提升系统性能的目标,同时也避免了其它频率上的重要数据包的丢失。

  客户ID过滤

  CID是使用EZMac协议的用户的唯一ID号。虽然是否使用CID是可由用户自选的,但是强烈推荐用户使用CID,以避免安装在同一区域的、均使用EZMac的不同系统之间出现意外的交互。如果使用了CID,CID会紧跟在前导和同步码后发射出去。这就意味着在先入先出的算法中CID是第一个被读到的字节。

  因此,数据包接收一开始,EZMac就能识别出接收包的开始,继而确定它是否为系统内的数据包。如果不是,MAC就会取消接收,并跳转到下一个频率,继续搜索有效数据包。用户可以从公司处得到CID。

  发射包过滤

  EZMac通过检测接收包的报头中的发送者ID字段来对接收的数据包进行过滤。如果发射包过滤器启用的话,MAC将仅从特定的某一节点或者某群节点处接收数据包

  群组是通过数据包报头的发送方ID(SID)中的重要位和SFLT寄存器中的相同数位的掩码运算来定义的。如果出现以下情况,数据包才算通过过滤:

  SFLT & SMSK == SID & SMSK

  Where:

  &: Bitwise AND operator

  SID: 发送方ID号在接受到的数据包的报头中。)

  如果把SMSK设置成0xFF时,群过滤器的选项就不可用了,这时MAC只能从有SFLT地址的节点处接收数据包。

  目的地址过滤

  目的地址包滤包括3种地址过滤,这三种方式都要检测接受数据包报头的DID字节:

  自绑定地址过滤

  多播地址过滤

  广播地址过滤

  自绑定地址过滤器始终是可用的,但是多播地址和广播地址的启用和停用是各自独立的。只要数据包能通过上述任何一个过滤器,就能通过目的地址过滤器。

  自绑定地址过滤

  只用通过自绑定地址(SFID)才能在通信网络中识别EZMac。也只有那些报头中DID字段显示SFID的数据包才能通过自绑定地址过滤。

  多播地址过滤

  多播地址负责检测接受包是否为一组组节点所专用,以及EZMac是否是该群组的一部分。多播定址有两个方法:

  定义一个称为多播地址(MCA)的专用地址。只有报头中的DID字段等于MCA的那些数据包才能通过多播过滤器。

  在自绑定地址过滤中定义并使用多播屏蔽(MCM):

  DID & MCM == SFID & MCM

  where & is the bitwise AND operator

  其中&是逐位进行的AND运算。

  只能在同一时间激活MCA过滤和MCM过滤中的一个。实际的模式可通过PFCR寄存器的A/nM比特位来选择到底使用哪一种过滤。

  广播地址过滤

  广播地址有专用的地址:0xFF。

  只有报头中的DID字段是0xFF的数据包才能通过广播地址过滤。

  注:整个目的地址过滤由数据包过滤控制寄存器的DFEN位来确定是否启用。

  如果这个比特被清除,目的地址过滤将不可用,具有任何目地地址的数据包都可以被接收。

  包长度过滤器

  这个过滤器用于检测动态变化的数据包长度(参见“主控寄存器”一节)。如果该过滤器可用,长度超过最大容许接收长度的数据包将无法通过。最大容许长度可在MPL寄存器中设置。

  混杂模式

  若通过设置PCFR寄存器的PREN位来启用混杂模式,则所有的地址过滤器和包长度过滤器都被忽略。

  CRC过滤器

  CRC过滤器是唯一不能被忽略的过滤器。它对数据包的所有字节执行CRC(包括报头)。如果接收包没有通过CRC,EZMac将报告出错并忽略该数据包。



关键词: Integration EZMacTM

评论


技术专区

关闭