本节描述如何控制接收器、组装RX帧处理以及如何使用RXFIFO。
1)RX控制
接收器分别根据SRXON和SRFOFF命令选通开启和关闭,或使用RXENABLE寄存器。命令选通提供一个硬开启/关闭机制,而RXENABLE操作提供一个软开启/关闭机制。
接收器通过以下操作开启:
(1)SRXON选通。
①设置RXENABLE[7]。
②通过强制转换到RX校准,中止正在进行的发送/接收。
(2)STXON选通,当FRMCTRL1.SETRXENMASK-ON-TX使能时。
①设置RXENABLE[6]。
②发送完毕后接收器使能。
(3)通过写RXENMASKOR设置RXENABLE!=0x00。不中止正在进行的发送/接收。
接收器通过以下操作关闭:
(1)SRFOFF选通。
①清除RXENABLE[7]。
②通过强制转换到IDLE模式,中止正在进行的发送/接收。
(2)通过写RXENMASKAND设置RXENABLE=0x00。不中止正在进行的发送/接收。一旦正在进行的发送/接收完成,无线模块返回IDLE状态。有若干方式操作RXENABLE寄存器:
(1)SRXMASKBITSET和SRXMASKBITCLR选通(影响RXENABLE[5])。
(2)SRXON、SRFOFF和STXON选通,包括FRMCTRL1.SET-RXMASK-ON-TX设置。
2)RX状态时序
接收器通过上面所述的方式之一,在RX使能192μs之后准备好,这叫做RX轮转时序。
当接收帧后返回到接收模式,有一个192μs的默认间隔,SFD检测禁用。这一间隔可以通过清除FSMCTRL.RX2RX-TIME-OFF禁用。
3)帧处理
无线模块集合了IEEE 802.15.4—2003和IEEE 802.15.4—2006中RX硬件方面要求的关键部分。这降低了CPU干预率,简化了处理帧接收的软件且以最小的延迟给出结果。
接收一个帧的期间,执行以下帧处理步骤(表7-10):
表7-10 收到帧的处理

(1)检测和移除收到的PHY同步头(帧引导序列和SFD),并接收帧长度域规定的字节数。
(2)执行第三过滤级别规定的帧过滤。
(3)匹配源地址和包括多达24个短地址的表或12个扩展IEEE地址。源地址表存储在无线模块RAM中。
(4)执行自动FCS检查,并把该结果和其他状态值(RSSI、LQI和源匹配结果)填入接收到的帧中。
(5)执行具有正确时序的自动确认传输,且正确设置帧未决位,基于源地址匹配和FCS校验的结果。
4)同步头和帧长度域
帧同步开始于检测一个帧开始定界符(SFD),然后是长度字节,它确定何时接收完成。SFD信号可以在GPIO上输出,可以用于捕获收到帧的开始。帧引导序列和SFD不写到RXFIFO。
无线模块使用一个相关器来检测SFD。MDMCTRL1.CORR-THR中的相关器阈值确定收到的SFD必须如何密切匹配一个理想的SFD。阈值的调整必须注意以下两点:
(1)如果设置得太高,无线模块会错过许多实际的SFD,大大降低接收器的灵敏度。
(2)如果设置得太低,无线模块会检测到许多错误的SFD。虽然这不会降低接收器的灵敏度,但是影响是类似的,因为错误的帧可能会重叠实际帧的SFD。它还会增加接收具有正确FCS的错误帧的风险。
除了SFD检测,在SFD检测之前还可以请求若干有效的真引导序列符号(也在相关器阈值之上)。可用选项和推荐的设置参见MDMCTRL0和MDMCTRL1的寄存器描述。
5)帧过滤
按照第三过滤级别规定,帧过滤功能拒绝目标不明确的帧,它对以下情况提供过滤:
(1)8种不同帧类型。
(2)帧控制域中的保留位(FCF)。
帧过滤功能通过以下方式控制:
(1)使用FRMFILT0和FRMFILT1寄存器。
(2)设置RAM中的LOCAL-PAN-ID、LOCAL-SHORT-ADDR和LOCAL-EXTADDR值。
FRMFILT0.FRM-FILTER-EN位控制是否应用帧过滤。当禁用时,无线模块接受所有收到的帧;当使能(这是默认设置)时,无线模块只接受符合以下全部要求的帧:
(1)长度域必须等于或大于最小帧长度。长度域从FCF的源地址和目标地址模式以及PANID压缩子域获得。
(2)保留的FCF位[9:7]以及FRMFILT0.FCF-RESERVED-BITMASK必须等于000B。
(3)FCF的帧版本子域的值不能高于FRMFILT0.MAX-FRAME-VERSION。
(4)源地址和目标地址模式不能是保留值(1)。(https://www.xing528.com)
(5)目标地址:
①如果一个目标PANID包含在帧中,它必须匹配LOCAL PANID或广播PAN标识符(0xFFFF)。
②如果一个短地址包含在帧中,它必须匹配LOCAL-SHORT-ADDR或广播地址(0xFFFF)。
③如果一个扩展地址包含在帧中,它必须匹配LOCAL-EXT-ADDR。
(6)帧类型:
①只接受信标帧(0),当
·FRMFILT1.ACCEPT-FTO-BEACON=1;
·长度字节>=9;
·目标地址模式是0(没有目标地址);
·源地址模式是2或3(即包含一个源地址);
·源PANID匹配LOCAL-PANID,或LOCAL-ANID等于0xFFFF。
②只接受数据帧(1),当
·FRMFILT1.ACCEPT-FT1-DATA=1;
·长度字节>=9;
·目标地址和/或源地址包含在帧中,如果没有目标地址包含在帧中,必须设置FRMFILT0.PAN-COORDINA-TOR位,且源PANID必须等于LOCAL-PANID。
③只接受确认帧(2),当
·FRMFILT1.ACCEPT-FT2-ACK=1;
·长度字节=5。
④只接受MAC命令帧(3),当
·FRMFILT1.ACCEPT-FT3-MAC-CMD=1;
·长度字节>=9;
·目标地址和/或源地址包含在帧中,如果没有目标地址包含在帧中,必须设置FRMFILT0.PAN-COORDINA-TOR位,且源PANID必须等于要接受的帧的LOCAL-PANID。
⑤只接受保留的帧类型(4,5,6和7),当
·FRMFILT1.ACCEPT-FT4TO7-RESERVED=1(默认是0);
·长度字节>=9。
过滤开始之前执行以下操作,不会影响存储在RX FIFO中的帧数据;
(1)长度字节的位7被屏蔽(没有关系)。
(2)如果FRMFILT1.MODIFY-FT-FILTER不是零,FCF的帧类型子域的MSB或者颠倒或者强制变为0或1。
如果拒绝了一个帧,无线模块仅仅开始在被拒绝帧已经被完全接收后(由长度域定义)寻找一个新的帧,以避免在帧内检测到错误的SFD。注意,如果在帧被拒绝之前发生RX溢出,被拒绝帧可以产生RX溢出。
当帧过滤使能且过滤算法接受一个已接收的帧,就产生一个RX-FRM-ACCEPTED中断;如果帧过滤禁用或在知道过滤结果之前产生RX-OVERFLOW或RX-FRMABORTED,不产生该中断。
当完全接收一个帧开始定界符,FSMSTAT1.SFD寄存器位变为高,且保持高电平直到接收MPDU最后一个字节,或收到的帧没有通过地址识别且已被拒绝。
以下寄存器设置必须正确配置:
(1)如果设备是一个PAN协调器,必须设置FRMFILT0.PAN-COORDINA-TOR,而如果不是必须清除。
(2)FRMFILT0.MAX-FRAME-VERSION必须对应IEEE 802.15.4标准支持的版本。
(3)本地地址信息必须加载到RAM。
要在能量检测扫描期间完全避免接收帧,可设置FRMCTRL0.RX-MODE=11b,然后再启动RX。这里禁用了符号搜索从而防止SFD检测。
要恢复正常的RX模式,设置FRMCTRLO.RX-MODE=00b并重新启动RX。
在一个繁忙的IEEE 802.15.4环境的操作中,无线模块接收许多目标不明确的确认帧。要有效阻止接收这些帧,使用FRMFILT1.ACCEPT-FT2-ACK位来控制何时应该接收确认帧:成功启动一个带有确认的发送请求之后,设置FRMFILT1.ACCEPT-FT2-ACK,且接收确认帧或达到超时之后,再清除该位。
当改变FRMFILT0/1寄存器的值和存储在RAM中的本地地址信息时,不需要关闭接收器。但是,如果改变发生在接收SFD字节和源PANID之间(即在接收SFD和RXFRM-ACCEPTED之间),修改的值必须被视作不影响特定帧(无线模块使用旧值或是新值)。
注意,通过设置MDMTEST1.MODULATION-MODE=1,可以使无线模块忽略所有IEEE 802.15.4环境的输入帧。
6)源地址匹配
无线模块支持收到的帧的源地址和存储在片上存储器中的一个表匹配。该表长96字节,因此可以包含多达24个短地址(每个2+2字节),12个IEEE扩展地址(每个8字节)。
仅当帧过滤也使能且收到的帧已被接受时才执行源地址匹配。该功能由以下寄存器和源地址表控制:
(1)SRCMATCH、SRCSHORTEN0、SRCSHORTEN1、SRCSHORTEN2、SRCEXTEN0、SRCEXTEN1、SRCEXTEN2寄存器。
(2)RAM中的源地址表。
7)帧校验序列
在接收模式中,如果FRMCTRLO.AUTOCRC使能,FCS由硬件验证。用户一般只关心FCS的正确性,而不关心FCS序列本身,因此接收期间FCS序列本身不写入RX FIFO。相反,当设置FRMCTRLO.AUTOCRC,两个FCS字节被其他更有用的值替代。取代FCS序列的值可在寄存器FRMCTRLO中配置。
8)确认传输
无线模块包括硬件支持成功接收帧后,进行确认传输,即收到的帧的FCS必须是正确的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
