CC1101数据过滤机制详解:地址、长度与CRC过滤

需积分: 5 31 下载量 177 浏览量 更新于2024-08-07 收藏 3.89MB PDF 举报
"CC1101 数据手册" 在CC1101这款无线通信芯片中,接收模式下的数据过滤是保障数据传输准确性和效率的关键特性。数据过滤主要包括三种类型:地址过滤、最大长度过滤和CRC(循环冗余校验)过滤。 1. **地址过滤**: - 当PKTCTRL1寄存器中的ADR_CHK位设置为大于0的值时,地址过滤功能启用。 - 数据包处理器会检查包的目标地址字节,与ADDR寄存器中设定的节点地址进行比较。 - 如果ADR_CHK设置为10,则匹配广播地址0x00;设置为11时,匹配0x00和0xFF的广播地址。 - 匹配成功,数据包会被接收并写入RX FIFO;不匹配则丢弃,并重启接收模式,不受MCSM1.RXOFF_MODE设置的影响。 - 在无限数据包长度模式和地址过滤开启的情况下,若地址匹配正确,0xFF将先写入RX FIFO,然后是地址字节和有效载荷。 2. **最大长度过滤**: - 在可变数据包长度模式(PKTCTRL0.LENGTH_CONFIG=1)下,使用PKTLEN.PACKET_LENGTH寄存器设定最大允许的数据包长度。 - 如果接收的长度字节超过这个值,数据包将被丢弃,同时重启接收模式,不论MCSM1.RXOFF_MODE的设置如何。 3. **CRC过滤**: - 通过设置PKTCTRL1.CRC_AUTOFLUSH=1,可以启用CRC过滤,即在CRC校验失败时自动清除RX FIFO。 - CRC校验失败后,RX FIFO会被清空,之后的操作取决于MCSM1.RXOFF_MODE的配置。 - 在自动清除功能启用时,最大数据包长度在可变长度模式下为63字节,定长模式下为64字节。如果PKTCTRL1.APPEND_STATUS使能,最大长度会减少2字节以容纳状态字节。 - 只有当CRC校验正确后,MCU才会从RX FIFO中读取数据,且之前接收的错误数据包必须先从FIFO中移除。 这些过滤机制确保了CC1101在无线通信中的数据可靠性,防止无效或错误的数据包占用资源,提高了系统的整体性能。对于开发基于CC1101的无线通信系统来说,理解和正确使用这些过滤功能至关重要。