CC1101
3.7.1 配置接口
MCU 使用 4 个 IO 口作为 SPI 配置接口。(SI、SO、SCLK 和 CSn)SPI 的描述见 28 页 的 Section 10。
3.7.2 基本控制和状态脚
CC1101 有 2 个专用配置脚(GDO0 和 GDO2)和一个共用脚(GDO1)可以向控制软件 输出有用的内部状态信息。这些脚可以用来向 MCU 产生中断。
GDO1 和 SPI 的 SO 引脚共用。GDO1/SO 的默认设置时 3 态输出。通过选择任何编程
选项,GDO1/S 将变为普通引脚。当 CSn 拉低,该引脚将始终作为普通的 SO 功能引脚。
在同步和异步串行模式,在发送模式下,GDO0 引脚将作为串行 TX 数据输入引脚。 GDO0也可以用作片上模拟温度传感器。通过外部ADC测量GDO0脚的电压,可以计算 出温度。温度传感器的详细说明见18页的Section 4.7。通过默认的PTEST寄存器设置 (0x7F),如果频率合成器被允许温度传感器的的输出时可用的。(例如:MANCAL, FSTXON,RX和 TX状态)在IDLE状态向PTEST寄存器写入0xBF允许模拟温度传感器是必 要的。离开IDLE状态之前,必须恢复PTEST寄存器为默认值(0x7F)。
3.7.3 可选的无线控制特性
CC1101 有一个可选的控制方式,通过 SPI 接口的 SI,SCLK 和 CSn 的重新使用。这 个特性允许普通的三引脚控制无线的主要状态:SLEEP,IDLE,RX 和 TX。这些附加功能 通过 MCSM0.PIN_CTRL_EN 配置为来使能。
状态变化遵从以下命令:
??如果 CSn 被拉高,SI 和 SCLK 依照表 21 设置好想要的状态。
??如果 CSn 被拉低,SI 和 SCLK 的状态被锁定,按照引脚的配置在内部产生一个
command strobe。
只允许在功能实现之后改变状态。例如,如果 SI 和 SCLK 设置为 RX 状态,并且已经
由 CSn 触发,RX 将不能再重新启动。当 CSn 拉低吼,SI 和 SCLK 将作为普通的 SPI 功能。
除了 SPWD 外,所有引脚控制命令将立即执行,SPWD 延时到 CSn 拉高后执行。
SWRS061D
Page 6 of 42
CC1101
3.8 数据速率编程
发送或者接收的数据速率通过MDMCFG3.DRATE_M 和MDMCFG4.DRATE_E配置寄存器 来编程。数据速率由下面的公式来计算。根据公式,数据速率的编程依赖于晶振频率。
下面的方面可以计算出适合的数据速率:
如果DRATE_M接近整数并且变为256,DRATE_E加1并且DRATE_M=0. 数据速率可以设置为从1.2K~500K,按照表22的最小步值。
3.9 接收信道滤波带宽
为了区 分不同信道 带宽, 接收信道 滤波器是可设 置的。 MDMCFG4.CHANBW_E DMCFG4.CHANBW_M 配置寄存器控制接收信道滤波器带宽,通过晶振频率来衡量。
下面的公式给出寄存器配置和信道滤波带宽之间的关系:
表 23 列出了 CC1101 支持的信道滤波带宽。
Page 7 of 42
SWRS061D
和
CC1101
为了达到更好的性能,信道滤波带宽必须设置以至于信号带宽至多占 80%的信道滤波带
宽。对于晶振精度的信道中心公差应该从信号带宽中减去。下面举例说明:
信道滤波带宽设置为 500kHz,信号带宽保持在 500kHz 的 80%之内,400kHz。发送 和接收设备都在中心频率 915MHz 和±20ppm 频率误差,总共的频率误差是 915MHz 的± 40ppm,即±37kHz。如果整个发送的信号带宽达到接收的
400kHz 之内,发送信号带宽
的最大值为 400kHz-2*37kHz,即 326kHz。
通过修正发送和接收的频率偏移,滤波带宽 可以减小,并且可以改善灵敏度。详见 DN005[20]和 Section14.1 。
3.10
解调器、符号同步器和数据判定
CC1101 包含一个高级的和高可配置的解调器。信道滤波和频率偏移补偿都可以数字化。
3.10.1 频率偏移补偿
CC1101 有非常好的频率分辨率。(表 12)这个特性可以用来补偿频率偏移和温漂。 当时用 2-FSK、GFSK 或 MSK 调制时,解调器将在发送和接收频率的一定界限内,通 过估计接收数据的中心,补偿频率偏移。频率偏移补偿配置由 FOCCFG 寄存器控制。通过 补偿发送和接收之间最大的频率偏移,可以改善灵敏度,见 DN005。
运算法则的跟踪范围是通过 FOCCFG.FOC_LIMIT 配置寄存器选择一部分信道带宽。
如果FOCCFG.FOC_BS_CS_GATE位设置,频率补偿将被冻结,直到carrier sense生效。
这对于无线常时间处于RX状态而没有通信是非常有用的,since the algorithm may drift to the boundaries when trying to track noise。
追踪循环有两个增益要素,影响设定时间和运算的噪声灵敏度。同步字节被检测到之前 由FOCCFG.FOC_PRE_K设定增益,同步字节检测到之后由FOCCFG.FOC_POST_K选择增 益。
注意:ASK和OOK调制不支持频率偏移补偿。
在FREQEST状态寄存器中的预置频率偏移值是可用的。可以用作永久的频率偏移补偿。 通过把FREQEST中的值写入FSCTRL0.FREQOFF,平率合成器将依照预置频率偏移自动被 调整。
SWRS061D
Page 8 of 42
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