当前位置:首页 > 翻译CC1101中文数据手册 - 图文
CC1101
3.10.2 位同步
3.10.3 字节同步
字节同步通过连续的同步字查询实现。同步字是一个 16 位配置区(可重复得到 32 位), 在发送模式下通过调制器自动插入到包的起始。在同步字中 MSB 首先发送。解调器使用这 个区域寻找比特流中的字节边界。同步字也有系统标识符的功能,因此如果 RX 中的同步字 检测在寄存器 MDMCFG2 中被使能(Section17.1),只有正确的预先确定的同步字的包 才接收。同步字检测可以关联用户配置的 16 或者 32 位同步字。关联端可以设置为 15/16、 16/16 或 30/32 位匹配。同步字能更好的使用前导质量指示机制的描述和/或载波监听条件。 同步字通过 SYNC1 和 SYNC0 寄存器配置。
为了确保同步字检测的错误更少,一个前导质量指示(PQI)机制被用来仙子同步字。 为确保同步字被接收,必须超过前导质量的门限值。
3.11 数据包处理的硬件支持
CC1101 有内置的硬件支持作为数据包导向的无线协议。
在发送模式,数据包的处理者可以配置增加下面的元素到 TX FIFO 中的数据包存储: ??一个可编程数量的前导字节。
??两字节同步字。可复制为 4 字节同步字。只插入前导字节或者同步字节是不可能的。
??一个覆盖数据区域的 CRC 校验计算。
推荐设置 4 字节前导和 4 字节同步字,除了 500k 波特率时推荐使用 8 字节前导。另外, 在数据区域和附加的 2 字节 CRC 校验,以下可以被执行:
??使用 PN9 序列 Whitening 数据。
??通过使用交叉和编码数据(卷积编码)前向纠错。
在接收模式,数据包处理支持将是解构数据包,(如使能)以下可以被执行: ??前导检测 ??同步字检测
??CRC 计算和 CRC 检查 ??一个字节地址检测
??包长度检查(根据设置的最大长度检查长度字节) ??反 Whitening ??反交叉和解码
另外,RSSI(接收信号强度指示)、LQI(链路质量指示)和 CRC 状态的两个状态字 节可以附加在 RX FIFO。
SWRS061D
Page 9 of 42
CC1101
注意:控制数据包处理特性的寄存器区只能再 CC1101 处于 IDLE 状态时被修改。
3.11.1 Data Whitening
将 PKTCTRL0.WHITE_DATA 置 1,除了前导和同步字外,所有的数据在发送前将 XOR 一个 9 位的伪随机序列(PN9)。在接收结束后,数据将使用相同的伪随机序列 XOR。PN9
序列初始化全部为 1。
3.11.2 数据包格式
数据包的格式可以配置为由以下部分组成: ??前导 ??同步字
??可选的长度字节 ??可选的地址字节 ??净荷
??可选的 2 字节 CRC
前导的格式是一个交叉的 1 和 0 的序列(10101010……)。前导的最小长度可以通过 MDMCFG1.NUM_PREAMBLE 的值来设置。当使能发送,调制器将开始发送前导。当发送完 编程数量的前导子节后,调制器开始发送同步字和 TX FIFO 中的可用数据。如果 TX FIFO 是空的,调制器将继续发送前导字节,直到第一个字节写入到 TX FIFO。调制器将接着发
送同步字和数据字节。
同步字是在 SYNC1 和 SYNC0 寄存器中设置的 2 字节数据。同步字节提供了引入数据包 的字节同步。一个字节的同步字可以复制,通过设定 SYNC1 的值到前导格式。也可以通过
设定 MDMCFG2.SYNC_MODE 的值为 3 或 7 将同步字复制为 32 位。同步字将被复制 2 次。
CC1101 支持定长数据包协议和变长数据包协议。可变的或固定数据包长度模式可用于 最长 255 字节数据包长度。再长的数据包,就必须使用无限数据包长度模式。
SWRS061D
Page 10 of 42
CC1101
固定数据包长度模式通过设定 PKTCTRL0.LENGTH_CONFIG=0 来选择。期望的数据包 长度通过 PKTLEN 寄存器来设置。
在可变数据包长度模式,PKTCTRL0.LENGTH_CONFIG=1,数据包长度由同步字后面 的第一个字节配置。数据包长度定义为有效载荷,不包括长度字节和可选的 CRC。PKTLEN 用来配置允许接收的最大数据包长度。任何接收的数据包长度大于 PKTLEN 的值都将被丢 弃。
PKTCTRL0.LENGTH_CONFIG=2,数据包长度将设置为无限长,发送和接收将持续到 手动关闭。在下一部分描述中,将使用不同长度的配置来支持数据包格式。必须确保在发送 前半个或任何字节的时候 TX 模式不被关闭。参考 CC1101 的勘误表。
3.11.2.1
任意长度区域配置
数据包长度寄存器 PKTLEN,在接收和发送时可以重新编程。结合固定数据包长度模式 (PKTCTRL0.LENGTH_CONFIG=0),这使与变长数据包不同的长度配置成为可能。(在 可变数据包长度模式下长度字节是同步字节后第一个字节)在接收开始,数据包长度设置为 一个大的值。MCU 读取足够多的字节来解析数据包 中的长度区域。然后依照这个值对
PKTLEN 进行设置。当数据包处理器中的字节指针等于 PKTLEN 寄存器的值时数据包结束。 因此,MCU 必须在内部指针达到数据包长度之前确认正确的长度。
3.11.2.2
数据包长度大于 255
数据包自动控制寄存器 PKTCTRL0,可以在 TX 和 RX 期间重新编程。这就使发送和接 收数据包长度超过 256 字节并且仍然使用数据包处理器硬件支持成为可能。在数据包开始 时,必须激活无限数据包长度模式(PKTCTRL0.LENGTH_CONFIG=2)。在发送端,PKTLEN 寄存器设置为模(长度,256)。在接收端,MCU 读出足够长度的字节来解析出数据包长度 并设置 PKTLEN 寄存器为模(长度,256)。当数据包中还有少于 256 字节数据,MCU 禁 止数据包无限长度模式并且激活固定长度模式。当内部字节指针达到 PKTLEN 时,发送和 接收结束。(无线进入的状态由 TXOFF_MODE 或 RXOFF_MODE 决定)自动 CRC 添加/校验 也可以使用(通过设置 PKTCTRL0.CRC_EN=1)。
例如当药发送一个 600 字节的数据包时,MCU 必须按照以下执行: ??设置 PKTCTRL0.LENGTH_CONFIG=2。
??重新设置 PKTLEN 寄存器模(600,256)=88.
??至少发送 345 字节(600-255),例如通过填充 64 字节 TX FIFO 6 次(发送
384 字节)。
??设置 PKTCTRL0.LENGTH_CONFIG=0。
??当数据包指针达到 88 发送完成。一共 600 字节被发送。
SWRS061D
共分享92篇相关文档