This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC1200:使用 4-GFSK 模块化模式时丢失数据包

Guru**** 2812305 points

Other Parts Discussed in Thread: CC1200, CC1201

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1589709/cc1200-packet-loss-when-using-4-gfsk-modulaiton-mode

部件号: CC1200
主题: CC1201 中讨论的其他部件

您好:
我正在使用 170MHz 处的 CC1200 开发高吞吐量点对点数据传输设备。

数据包结构我正在以可变长度数据包模式传输数据、其中包括:  

每个 CC1200 数据包的最大有效负载:125 字节、应用程序总有效负载为 1024 字节(分段为多个 CC1200 数据包)、每个 CC1200 数据包的格式为:[len ][有效负载(1…125 字节)][RSSI][LQI | CRC_OK]、LEN 自动以可变模式作为前缀。 RSSI 和 CRC/LQI 附加了 CC1200。 启用 CRC(16 位)。 美白已禁用。 曼彻斯特已禁用。 无地址字节。 我还减少了前导码计数和同步字长、以便在更高的数据速率下实现出色的捕获。 (我已经尝试了前导码和同步字长的标准设置,即 3 字节和 32 位,但在这个图中它变得更糟)

我仅在 500kbps 或更高速率下使用 4-GFSK 调制时观察到数据包丢失情况。 当我处于 2-GFSK 500kbps 时、无数据包丢失、完全稳定。 而 4-GFSK、500kbps 时、每 1000 个数据包丢失近 10 个数据包。 我还尝试了 4-GFSK 250ksps、这等于 500kbps、但结果相同。 两种配置使用相同的射频功率、相同的硬件、相同的符号速率 CRC 错误仅在 4-GFSK 损耗时增加、当我降低 4-GFSK 的符号速率时、情况变得更糟。  

右下我使用的格式为 4-GFSK 500ksps 1000kbps;

静态常量寄存器 Set亭_t preferredSettings[]=

  {IOCFG2、       0x06}、
  {SYNC_CFG1、     0x48}、
  {DIRECTION_M   、0x47}、
  {MODCFG_DEV_E、   0x2F}、
  {DCFILT_CFG、    0x1E}、
  {PREAMER_CFG1、  0x04}、
  {PREAMPLE_CFG0、  0x8A}、
  {IQIC、        0x00}、
  {CHAN_BW、      0x01}、
  {MDMCFG1、      0x42}、
  {MDMCFG0、      0x05}、
  {SYMBOL_Rate2、   0xC9}、
  {symbol_rate1、   0x99}、
  {SYMBOL_RATE0、   0x99}、
  {AGC_REF、      0x2F}、
  {AGC_CS_THR、    0x01}、
  {AGC_CFG2、      0x60}、
  {AGC_CFG1、      0x12}、
  {AGC_CFG0、      0x84}、
  {FIFO_CFG、      0x00}、
  {FS_CFG、       0x1A}、
  {PKT_CFG2、      0x00}、
  {PKT_CFG0、      0x20}、
  {PKT_LEN、      0xFF}、
  {FREQOFF_CFG、   0x23}、
  {MDMCFG2、      0x00}、
  {FREQ2、       0x55}、
  {IF_ADC1、      0xEE}、
  {IF_ADC0、      0x10}、
  {FS_DIG1、      0x04}、
  {FS_DIG0、      0xA3}、
  {FS_CAL1、      0x40}、
  {FS_CAL0、      0x0E}、
  {FS_DIVTWO、     0x03}、
  {FS_DSM0、      0x33}、
  {FS_VC0、      0x17}、
  {FS_PFD、       0x00}、
  {FS_PRE、       0x6E}、
  {FS_REG_DIV_CML、  0x1C}、
  {FS_SPARE、      0xAC}、
  {FS_VCO0、      0xB5}、
  {IFAMP、       0x0D}、
  {XOSC5、       0x0E}、
  {XOSC1、       0x03}、
};

另外、我提到的 2-GFSK 500kbps、可以稳定工作

 

静态常量寄存器 Set亭_t preferredSettings[]=  

 {IOCFG2、       0x06}、
 {SYNC_CFG1、     0x48}、
 {SYNC_CFG0、     0x13}、
 {DIRECTION_M   、0x99}、
 {MODCFG_DEV_E、   0x05}、
 {DCFILT_CFG、    0x26}、
 {PREAMER_CFG1、  0x04}、
 {PREAMPLE_CFG0、  0x8A}、
 {IQIC、        0x00}、
 {CHAN_BW、      0x02}、
 {MDMCFG1、      0x42}、
 {MDMCFG0、      0x05}、
 {SYMBOL_Rate2、   0xC9}、
 {symbol_rate1、   0x99}、
 {SYMBOL_RATE0、   0x99}、
 {AGC_REF、      0x2F}、
 {AGC_CS_THR、    0x01}、
 {AGC_CFG1、      0x16}、
 {AGC_CFG0、      0x84}、
 {FIFO_CFG、      0x00}、
 {FS_CFG、       0x1A}、
 {PKT_CFG2、      0x00}、
 {PKT_CFG0、      0x20}、
 {PKT_LEN、      0xFF}、
 {IF_MIX_CFG、    0x18}、
 {TOC_CFG、      0x03}、
 {MDMCFG2、      0x00}、
 {FREQ2、       0x55}、
 {IF_ADC1、      0xEE}、
 {IF_ADC0、      0x10}、
 {FS_DIG1、      0x04}、
 {FS_DIG0、      0x55}、
 {FS_CAL1、      0x40}、
 {FS_CAL0、      0x0E}、
 {FS_DIVTWO、     0x03}、
 {FS_DSM0、      0x33}、
 {FS_VC0、      0x17}、
 {FS_PFD、       0x00}、
 {FS_PRE、       0x6E}、
 {FS_REG_DIV_CML、  0x1C}、
 {FS_SPARE、      0xAC}、
 {FS_VCO0、      0xB5}、
 {IFAMP、       0x0D}、
 {XOSC5、       0x0E}、
 {XOSC1、       0x03}、
};

 

我的问题是:  

1) 与 2-GFSK 相比、170MHz 时的 4-GFSK 本身对群延迟/前端滤波更敏感吗?

2) CC1200 解调器是否需要不同的 AGC 或 170MHz 下 4-GFSK 的 IF 滤波器设置?

3) SmartRF 配置参数是否高度依赖于 4-GFSK 的频带?


4) 为了提高 170MHz 下的 4-GFSK 性能、建议进行哪些 CC1200 寄存器调整?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您是否从 868/SmartRF 的 CC1200 500ksps、4-GFSK 设置或者 915MHz 7 的 CC1201 部分中的表征 169MHz、500ksps、4-GFSK 设置开始? 它们应该与 CC1200 完全兼容(两个器件之间的区别在于最低可用的 RX BW)。  

    当您使用上述设置进行测试时、您会观察到什么性能?

    此致、

    Zack

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Zack、

    感谢您的答复。

    之前、我在 SmartRF 915MHz 中获取其中一个 CC1200 868/GFSK 4-GFSK 高速率配置文件、只需将射频频率更改为 169 –170MHz。 在您提供反馈之后、我切换到了 CC1201 169MHz 500ksps 4-GFSK 表征配置文件、并使用这些确切的设置进行了测试。

    即使使用 169MHz 配置文件、我在使用时仍会观察到数据包丢失:

    • 4-GFSK、500ksps (1Mbps)

    • 170MHz 运行

    • 可变长度数据包(最大 125 字节有效载荷)

    • 启用 CRC

    • 已禁用美白(如果建议,可以启用)

    • 无寻址、数据包格式:[LEN][Payload][RSSI][LQI|CRC_OK]

    • 自动校准已禁用 (RX 到 RX 和 TX 到 TX 无需自动校准。 我在开始时进行手动校准)

    在相同条件下、500ksps 下的 2-GFSK 完全稳定、显示零数据包丢失。

    因此、我想澄清一下有关 CC1200 169–170MHz 时的高速率 4-GFSK 的几点:

    1. 4-GFSK 在高速率 (500ksps+) 下对频率偏移、符号时序和解调器决策阈值的敏感性是否比 2-GFSK 高? 由于 2-GFSK 完全稳定、但 4-GFSK 显示了一些 CRC 错误、因此我想确认是否预计会出现这种行为。

    2. 您是否建议进行任何额外的寄存器调整 (AGC、频率跟踪、TOC、FS_DIV0/1、IFAMP 以提高 CC1200 在 169–170MHz 下的 1Mbps 4-GFSK 性能?

    再次感谢您的支持。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    1.使用 4-GFSK 更难获得“残留 PER“(即在整个动态范围内没有 PER ),因此它在一般情况下更敏感。

    2. SmartRF Studio 7 中的设置已优化,因此进一步的调整不太可能带来很大的改善,如果有的话。

    您正在执行的测试是传导测试还是辐射测试? 由于本底噪声较高、4-GFSK 模式下的范围会更低。

    您是否也在 SmartRF Studio 7 中直接测试了此项、或者您是导出设置并运行固件进行测试?

    此致、

    Zack

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    高 ZC、

    感谢前面的澄清。 感谢您发送编修。我们会重新检视您的建议。

    需要提及的一个重要细节是、我的系统作为双点对点链路运行:一个在 170MHz、另一个在 174MHz。 两个链路使用相同的基于 CC1200 的自定义硬件以及相同的固件和数据包结构。 此外、由于我的定制板、我无法在 SmartRF Studio 中对其进行测试。 我只能从 Code Composer Studio 运行它。

    在可靠工作方面:
    使用 2-GFSK 时、我在 170MHz 和 174MHz 上都看到 500kbps 时的数据包丢失为零。 在这两种频率上、4-GFSK 在 650kbps 时也可以实现零数据包丢失。

    当转换至 1Mbps (500ksps) 的 4-GFSK 时、出现问题。 在此模式下、我始终会在两条链路上看到残留 PER。 性能对 RX 滤波器带宽和所选频率偏差变得非常敏感。

    当 RX 滤波器带宽约为 1666kHz 时、损耗与偏差行为显示了清晰的图形。 低于大约 400kHz 的偏差时、数据包丢失会增加。 在大约 410kHz 到 480kHz 的范围内、结果明显更好。 在大约 480kHz 以上、损耗再次开始增加、超过大约 500kHz、接收器可能会变得不稳定。

    我还发现、准确的理想点在 170MHz 和 174MHz 之间略有偏差、这对双频产品来说是一个挑战。

    关于 RX 滤波器带宽的一个重要观察结果是:即使在相同的射频频率下、将 RX 滤波器 BW 从大约 833kHz 增加到大约 1666kHz 可以显著增加 4-GFSK 中的数据包丢失。

    我目前的理解是、更宽的 RX 带宽集成了更多的噪声、从而降低了有效 SNR、并且还会降低解调器的有效匹配滤波器行为。 由于 4-GFSK 具有比 2-GFSK 更严格的决策裕度、因此这种降低的 SNR 和眼图张开度直接显示为更高的 CRC 误差。 这将解释为什么在高速率 4-GFSK 下、只要在通过占用频谱的情况下、较窄的 RX 带宽就可以优于更宽的带宽。

    为了更好地了解我能够可靠地扩展 4-GFSK 的范围、我希望获得有关 169–174MHz 频带中不同数据速率的预期 RX 滤波器带宽和偏差范围的指导。 具体来说、对于 4-GFSK、对于 600kbps、700kbps、800kbps、900kbps 和 1000kbps、通常建议或表征哪些 RX 滤波器 BW 和偏差?

    目前、增加数据速率会迫使我同时增加偏差和 RX 带宽、但打开 RX 带宽太明显会损害、尤其是在 1Mbps 时。 了解 TI 在数据速率、偏差和 RX 滤波器带宽之间的预期缩放、有助于确定剩余的数据包丢失是预期的调制解调器行为、还是更有可能与硬件或前端限制有关。

    作为参考、我的测试设置如下:高达 125 字节有效载荷的可变长度数据包、启用 CRC、禁用白化、启动时手动校准(在稳定 RX/TX 期间禁用自动校准以实现更快,可靠的传输)以及 32 位同步字长 、4 字节前导码、适用于 2-FSK 和 4-GFSK。

    此致、
    Suat Deniz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    高 ZC、

    我想分享另一个观察结果、它可能与我在高数据速率下看到的残留数据包丢失直接相关。 在更详细地研究 4-GFSK 1Mbps (500ksps) 的情况时、我注意到、根据、问题并不是完全随机的。 相反、当数据白化被禁用时、接收器对某些有效载荷位模式似乎非常敏感。

    特别是在高数据速率 (4-GFSK、~1 Mbps) 下、包含重复模式(如,,或)的数据包 0xCC (00110011),0xDD (11011101) 0x09 (1001) 0x06 (0110)0x03 (0011) 根本不会接收、而 0x01、0x02、0xAA、0XBB 在 RX 端不接收。 在这些情况下、接收器不会报告 CRC 错误;相反、数据包同步或解调似乎完全失败。 这种行为在 170MHz 和 174MHz 链路上都是可重现的。 当我启用数据美白时、此问题消失、然后可靠地接收相同的有效负载、并且前面观察到的残留 PER 显著减少。 这表明在高符号速率下、禁用美白功能时、调制解调器的性能可能对有效载荷频谱特性、过渡密度或低频内容敏感。 我假设某些周期性模式(例如偶数位模式 0011)可能会与 RX 滤波器带宽、时钟恢复或 4-GFSK 解调器中的有效匹配滤波产生不有利的交互、尤其是在接近性能限制的运行时。

    您能否告知 CC1200 的预期行为是不是在高速率 4-GFSK、不带美白的情况下出现这种模式灵敏度级别、还是有用于减轻这种影响的特定调制解调器设置(RX 滤波器形状,偏差规则或其他建议)? 此外、为了在这些数据速率下可靠运行、是否通常假定或建议使用数据美白?

    此致、
    Suat Deniz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Suat:

    具体来说、对于 4-GFSK、对于 600kbps、700kbps、800kbps、900kbps 和 1000kbps、通常建议或表征哪些 RX 滤波器 BW 和偏差?

    其中每一种都需要对设置进行单独调优、而且鉴于可能的设置数量、并不能针对所有不同的组合找到这些设置。

    调制指数很重要、建议在内部符号上将其保持在~0.5。

    鉴于 CC120x 器件系列只有几代(CC 器件)、因此我可提供的支持有限。  此 E2E 主题可能提供一些指导: CC1200 4-GFSK 设置  

    然而、禁用白化后、较高的数据包丢失可能与数据速率无关、而更多与 PHY 设置本身相关(因此是设置的组合)。 为了提高性能、最可能需要考虑的因素是:

    • IF 设置。 如果当前 IF 接近 0、则在给定数据包中仅使用外部位时、它们可能会受到相关滤波的影响。 在这种情况下、使用更高的 IF 可能会提高稳健性。
    • 符号跟踪算法需要在有效载荷中进行转换、因此如果有效载荷没有很多转换、那么这可能会增加出现问题的风险。 美白会产生转换、然后有助于符号跟踪。 在这种情况下、更短的数据包也可能有所帮助。
    • 此外、还可以查看符号跟踪设置、例如TOC_CFG寄存器。  TOC_POST_SYNC_BLOCKLEN控制“符号积分窗口“和“积分比例因子“。 您可以查看增加积分比例因子、看看这样是否会提高性能。
    • 一旦找到同步、AGC 就会被冻结。 如果 AGC 出现问题、则可能需要调整这些设置。

    您能否告知 CC1200 的预期行为是不是在高速率 4-GFSK、不带美白的情况下出现这种模式灵敏度级别、还是有用于减轻这种影响的特定调制解调器设置(RX 滤波器形状,偏差规则或其他建议)? 此外、为了在这些数据速率下可靠运行、是否通常假定或建议使用数据美白?

    我怀疑在表征 4-GFSK PHY 时使用了数据白化、这意味着在优化该 PHY 的设置时、禁用白化时的性能不在范围内。

    Studio 中的设置是将为 CC120x 发布的最终 PHY 设置(除了非常大的订单大小)。

    建议是,如果数据美白解决了问题,这就是这里阻力最小的道路(这可能不会让你感到惊讶)。 否则、如果您有大量数据速率组合要进行优化、则可能需要花费相当多的工作量来找到理想的设置。

    此致、

    Zack

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们通过研发对这种 PHY 进行了更多的挖掘、4-GFSK 对非白化数据比 2-GFSK 更敏感、因此这是一致的。

    更仔细地看、这种特定的 4-GFSK 实际上使用零 IF (IF_MIX_CFG = 0)。 与其他调制格式相比、查找零中频 PHY 的设置总是更具挑战性。

    您可以查看一些其他参数、其中一些参数是我原始回复中重复出现的:

    • 尝试增大AGC_REF (0x2F) 以查看是否有所帮助、或将 AGC 锁定至最大增益。
    • 对于数据恢复、增加块大小TOC_CFG.TOC_POST_SYNC_BLOCKLEN(从 32 个符号增加到 64 个符号)。
    • 增加偏差也可能有所帮助。
    • 您可以尝试更改直流失调电压修整、但此处的问题是、不同增益电平的直流失调电压不同、并且可能会随着时间的推移而变化、因此实现起来尤其困难。

    和以前一样、如果可能、数据美白可能是最简单的解决方案。

    此致、

    Zack