首页 理论教育 可靠性问题的解决方案

可靠性问题的解决方案

时间:2023-06-26 理论教育 版权反馈
【摘要】:有两种方式确定RXFIFO中的字节数:读RX FIFO-CNT寄存器。RXFIFO通过RFD寄存器被访问。RXFIFO中的数据还可以通过访问无线模块RAM来直接访问。ISFLUSHRX命令选通会复位RXFIFO,复位所有FIFO指针并清除所有计数器、状态信号和标记错误条件。FSMSTAT1.FIFOP信号变为高,当①RXFIFO的有效字节数超过FIFOPCTRL编程的FIFOP阈值。RX上溢通过设置RFERRF.RXOVERF标志以及信号值FSMSTAT1.FIFO=0和FSMSTAT1.FIFOP=1表示。当前存储在RXFIFO的帧可以在状态被清除之前使用ISFLUSHRX选通读出。RX下溢通过设置RFERRF.RXUNDERF标志表示。

可靠性问题的解决方案

RXFIFO可以保存一个或多个收到的帧,只要总字节数是128或更少。有两种方式确定RXFIFO中的字节数:

(1)读RX FIFO-CNT寄存器。

(2)使用FIFOP和FIFO信号,结合FIFOPCTRL.FIFOPTHR设置。

RXFIFO通过RFD寄存器被访问。RXFIFO中的数据还可以通过访问无线模块RAM来直接访问。FIFO指针可在RXFIRST-PTR、RXLAST-PTR和RXPl-PTR中读。如果不首先读整个帧,想要快速访问帧的某个字节可以应用这一方法。注意,当使用这一直接访问方法,FIFO指针不被更新。

ISFLUSHRX命令选通会复位RXFIFO,复位所有FIFO指针并清除所有计数器、状态信号和标记错误条件。

SFLUSHRX命令选通复位RXFIFO,移除所有收到的帧并清除所有计数器、状态信号和标记错误条件。

1)使用FIFO和FIFOP

当读出一小部分收到的帧时FIFO和FIFOP信号有用。在收到帧时:

(1)当一个或多个字节在RXFIFO中,FSMSTAT1.FIFO变为高,但是当发生RX溢出时变为低。

(2)FSMSTAT1.FIFOP信号变为高,当

①RXFIFO的有效字节数超过FIFOPCTRL编程的FIFOP阈值。当帧过滤使能,帧头的字节不被视为有效的,直到帧被接受。

②一个新的帧的最后一个字节被接收,即使没有超过FIFOP阈值。如果是这样,FIFOP在下一个RXFIFO读访问时回到低。

当使用FIFOP作为微控制器的一个中断源时,FIFOP阈值必须由中断服务程序调整,以准备下一个中断。当为一个帧准备最后一个中断,阈值必须匹配剩余的字节数。

2)错误情况

有两种错误情况与RXFIFO相关:

(1)上溢,在这种情况下当接收另一个字节时RXFIFO为满。

(2)下溢,在这种情况下软件尝试从一个空的RXFIFO中读一个字节。

RX上溢通过设置RFERRF.RXOVERF标志以及信号值FSMSTAT1.FIFO=0和FSMSTAT1.FIFOP=1表示。当发生错误时,接收帧停止。当前存储在RXFIFO的帧可以在状态被清除之前使用ISFLUSHRX选通读出。注意,如果在帧被拒绝之前发生状态,被拒绝的帧可以产生RX上溢。(www.xing528.com)

RX下溢通过设置RFERRF.RXUNDERF标志表示。RX下溢是一种严重的错误情况,不能在免于错误的软件中发生,且RXUNDERF事件只能用于调试或一个看门狗功能。注意,在接收一个新字节的同时发生读操作,不产生RXUNDERF错误。

3)RSSI

无线模块有一个内置的接收信号强度指示器(RSSI),计算一个8位有符号的数字值,可以从寄存器读出,或自动附加到收到的帧。RSSI值总是通过8个符号周期内(128μs)取平均值得到的,与IEEE 802.15.4标准相符合。

RSSI值是一个有符号补数,对数尺度是1dB的步长。

在读RSSI值寄存器之前必须检查状态位RSSCV-ALID.RSSC-VALID表示的寄存器中的RSSI值事实上是否有效,这意味着接收器已经为最后8个符号周期使能。

为了以合理的精确度在RF引脚找到实际的带符号功率P,必须增加一个偏移量到RSSI值,如下所示:

P=RSSI-OFFSET[dBm]

例如,从RSSI寄存器读RSSI值-10时偏移量是73dB意味着RF输入功率大约是-83dB。使用正确的偏移量值要参考TI提供的数据手册。

在第一次变为有效之后,可以配置无线模块如何更新RSSI寄存器。如果FRMCTRLO.ENERGY-SCAN=1(默认),RSSI寄存器包括最新的可用值,但是如果该位设置为1,则执行一个峰值搜索,RSSI寄存器包括自能量扫描使能以来的最大值。

4)链路质量指示

如同IEEE 802.15.4标准中的定义,链路质量指示(LQI)计量的就是所收到的数据包的强度和/或质量。IEEE 802.15.4标准要求的LQI值限制在0到255之间,至少需要8个唯一的值。无线模块不直接提供一个LQI值,但是报告一些测量结果,微控制器可以使用它们来计算一个LQI值。

MAC软件可以使用RSSI值来计算LQI值。这一方法有若干缺点,如通道带宽内的窄带干扰会增加RSSI,因此LQI值即真正的链路质量实际上降低了。因此,对于每个输入的帧,无线模块提供了一个平均相关值,该值基于跟随在SFD后面的前8个符号。虽然无线模块不作片码判定,但是这个无符号的7位数值可以看作片码错误率的测量。

如前所述,当设置MDMCTRLO.AUTOCRC时,前8个符号的平均相关值连同RSSI和CRC OK/not OK附加到每个收到的帧中。相关值~110表示最高质量帧,而相关值~50一般表示无线模块检测到的最低质量帧。

软件必须将平均相关值转换为由IEEE 802.15.4标准定义的,范围为0~255的数值,即按照下式计算:

式中a和b是基于包差错率(PER)测量的经验值。

RSSI和相关值结合起来,还可用于产生LQI值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈