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.

[参考译文] LAUNCHXL-CC1310:尝试对 Jansite TPMS 发送器的433.92MHz 数据进行解码

Guru**** 1636130 points
Other Parts Discussed in Thread: CC110L, CC1101, CC1310
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1213280/launchxl-cc1310-trying-to-decode-433-92mhz-data-from-jansite-tpms-transmitters

器件型号:LAUNCHXL-CC1310
主题中讨论的其他器件:CC1101CC1310、CC110L

您好!

我正在参与一个项目、即将 CC1310和/或 CC1101/CC110L 用作接收器来读取 TPMS 数据。

我正在使用一个在433.92MHz 频率上广播的 TPMS 传感器。

我选择了一个已在开源库 RTL_433中解码的传感器。

我的问题是、在 CC1310上接收数据包时、数据与 RTL-433中的(黄金数据)完全不同。

我可以访问 RTL-433的源代码、接收到的位似乎由进行处理

(1)曼彻斯特对比特流进行解码

(2)反转位流。

我在 CC1101和 CC110L 上使用了曼彻斯特模式、并在输出的文本文件中手动反转所有接收到的位。

如果需要、我可以提供来自 RTL-433的完整源代码。

根据 RTL-433的工作源代码、我看到 TPMS 数据流的前导码为0xA6、0xA6、0xA6、SYNC 字节为0xDD、0x33。  

本质上、我不确定为什么在从全部三个低于1GHz 接收器和开发板记录的多个位流中的任何位置都找不到所需的字符串(8a5c24055000086c6a)。

如果有人使用了任何 CC1101、CC110L、CC1310来解码 TPMS 数据、他/她提供的任何帮助都将非常有用。  谢谢你  

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

     这是接收到的来自 CC1101的数据流。 接收到的两个数据流都来自 Smart RF Studio、其基础频率设置为433.92MHz 并选择 OOK 解码

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

    Steve、您好!

    以下是有关您正在使用的 TPMS 传感器的一些问题:

    1.调制格式是曼彻斯特编码的 OOK 吗?

    2.数据速率/符号速率是多少?

    3.前导码和同步字也是曼彻斯特编码还是它只是有效载荷?

    4. 传感器传输的是什么? 前导码+同步字+有效载荷?  

    您是否还可以在此处添加 CC1101的配置文件?

    此致、

    Haiatullah

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

    嗨、Haiatullah、

    1.信号采用曼彻斯特编码。 根据开源文档、我发现调制是 FSK 编码、而不是 OOK。 我之所以使用 OOK 设置是因为 CC1101仅在我将调制设置为 OOK 模式时接收数据。 我在 CC1310开发板上具有相同的经验。

    2.我对数据速率/符号速率不清楚。 是否有可用于使用有效 CC1101代码进行计算的公式?

    3.是的,前导码和同步字与负载本身一起在曼彻斯特进行编码。

    4、传感器传输所有的字段前导码+同步字+有效载荷。

    下面是来自负责解码的开源软件的更多信息:

    /**@文件
      Jansite FSK 11字节曼彻斯特编码校验和 TPMS 数据。

      版权所有(C) 2021 Benjamin Larsson

      基于代码
      2019 Andreas Spiess 和 Christian W. Zuckschwerdt

      此程序是自由软件;您可以重新分发和/或修改它
      它遵循由发布的 GNU 通用公共许可证的条款
      自由软件基金会;许可的第2版、或
      (由您决定)任何更高版本。
    */

    /**
    Jansite Solar TPMS Solar Model.


    -频率:433.92 +/- 20.00 MHz
    -压力:±0.1 bar,从0 bar 到6.6 bar
    -温度:+/- 3 C 从-40 C 到75 C

    信号采用曼彻斯特编码、一个11字节的大消息

    数据布局(半字节):

      SS SS II II II 00 TT PP 00 CC CC

    - S:16位同步字、0xdd33
    - i:24位 ID
    0:8位未知数据1
    - T:8位温度(°C 偏移55°C)
    - P: 8位压力
    0:8位未知数据2.
    C:16位 CRC (CRC-16/BUYPASS)
    -前导码为0xa6、0xa6、0x5a

    TODO:识别电池位
    */
    请根据我在 CC1101上的当前设置查看下面的寄存器设置位。 这些设置似乎可以正常工作、但我必须在 MCU 上进行所有计算。 这并不理想、因为这是 MCU 上的巨大开销。 我倾向于正确配置 CC1101以进行解码、并在 MCU 收到中断(GDO0)后仅在 SPI_Read CC1101。
    #define CC1101_DEFVAL_IOCFG2   0x0C    // GDO2输出引脚配置-串行输出(同步)
      #define CC1101_DEFVAL_IOCFG1   0x2E    // GDO1输出引脚配置-未使用
      #define CC1101_DEFVAL_IOCFG0   0x0E    // GDO0输出引脚配置-载波检测输出
      #define CC1101_DEFVAL_FIFOTHR   0x0F    // RX FIFO 和 TX FIFO 阈值- FIFO 中为64字节
      #define CC1101_DEFVAL_SYNC1    0xD5    //同步字,高字节 11010101 01001111
      #define CC1101_DEFVAL_SYNC0    0x4F    //同步字,低字节
      #define CC1101_DEFVAL_PKTLEN   0x09    //数据包长度
      #define CC1101_DEFVAL_PKTCTRL1  0x00    //数据包自动化控制
      #define CC1101_DEFVAL_PKTCTRL0  0x12 //0x30    //数据包自动化控制-同步数据
      #define CC1101_DEFVAL_ADDR    0x00    //设备地址
      #define CC1101_DEFVAL_CHANNR   0x00    //通道编号
      #define CC1101_DEFVAL_FSCTRL1   0x0F    //频率合成器控制(原为0x06)
      #define CC1101_DEFVAL_FSCTRL0   0x00    //频率合成器控制
      
      //载波频率= 433.919830 MHz
      #define CC1101_DEFVAL_FREQ2  0x10    //频率控制字,高字节
      #define CC1101_DEFVAL_FREQ1  0xB0    //频率控制字,中间字节
      #define CC1101_DEFVAL_FREQ0  0x71    //频率控制字,低字节

      #define CC1101_DEFVAL_DEVIATN   0x40   //调制解调器偏差设置(+/-25.390625kHz)

      #define CC1101_DEFVAL_MDMCFG4   0x59    //调制解调器配置(59 =数据速率= 20kHz -实际数据速率为10kHz、但由于双相编码需要将速率加倍、RX 带宽为325kHz)
      #define CC1101_DEFVAL_MDMCFG3   0x93    //调制解调器配置(现在93 =数据速率= 20kHz)
      #define CC1101_DEFVAL_MDMCFG2   0x10    //调制解调器配置(GFSK、无同步或曼彻斯特编码)
      #define CC1101_DEFVAL_MDMCFG1   0x21    //调制解调器配置通道间隔100kHz
      #define CC1101_DEFVAL_MDMCFG0   0xf8    //调制解调器配置    
      #define CC1101_DEFVAL_AGCCTRL2  0x87   // AGC Control
      #define CC1101_DEFVAL_AGCCTRL1  0x58    // AGC Control
      #define CC1101_DEFVAL_AGCCTRL0  0x80    // AGC Control
      
      #define CC1101_DEFVAL_MCSM2    0x07    //主无线电控制状态机配置
      #define CC1101_DEFVAL_MCSM1    0x3C    //主无线电控制状态机配置
      #define CC1101_DEFVAL_MCSM0    0x18    //主无线电控制状态机配置
      #define CC1101_DEFVAL_FOCCFG   0x16    //频率偏移补偿配置
      #define CC1101_DEFVAL_BSCFG    0x6C    //位同步配置

      
      #define CC1101_DEFVAL_WOREVT1   0x87    //高字节 Event0超时
      #define CC1101_DEFVAL_WOREVT0   0x6B    //低字节 Event0超时
      #define CC1101_DEFVAL_WORCTRL   0xFB    //无线控制唤醒
      #define CC1101_DEFVAL_FREND1   0x56    //前端 RX 配置
      #define CC1101_DEFVAL_FREND0   0x10    //前端 TX 配置
      
      #define CC1101_DEFVAL_FSCAL3   0xE9    //频率合成器校准
      #define CC1101_DEFVAL_FSCAL2   0x2A    //频率合成器校准
      #define CC1101_DEFVAL_FSCAL1   0x00    //频率合成器校准
      #define CC1101_DEFVAL_FSCAL0   0x1F    //频率合成器校准
      
      #define CC1101_DEFVAL_RCCTRL1   0x41    // RC 振荡器配置
      #define CC1101_DEFVAL_RCCTRL0   0x00    // RC 振荡器配置
      
      #define CC1101_DEFVAL_FSTEST   0x59    //频率合成器校准控制
      
      #define CC1101_DEFVAL_ptest    0x7F    //生产测试
      #define CC1101_DEFVAL_AGCTEST   0x3F    // AGC 测试
      
      #define CC1101_DEFVAL_TEST2    0x81    //各种测试设置
      #define CC1101_DEFVAL_TEST1    0x35    //各种测试设置
      #define CC1101_DEFVAL_TEST0    0x09    //各种测试设置
    感谢您的支持!!
    -steve.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Steve、您好!

    您不能使用 OOK PHY 接收 FSK 信号。 它们是完全不同的调制格式。 此外、由于接收器带宽、偏差等都依赖于数据速率、因此了解数据速率至关重要。

    我们的器件使用 序列为1和0的前导码。 由于 TPMS 使用不同的前置、您将无法收到任何合理的信号。

    此外、CC1310曼彻斯特仅对 paylaod 进行编码、而其他两款器件曼彻斯特对所有内容进行编码。

    此致、

    Haiatullah

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

    Steve、您好!

    要添加 Haiatullah 的注释、您可能会发现以下线程很有用:

    这些线程不会给出完整的答案、但可以帮助你解决调试这个问题。

    我还建议目前只关注 CC1310或 CC1101/CC110L (从而简化工作)。

    此致、

    扎克

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

    大家好、Zack 和  Haiatullah、

    Zack:

    我已经读过您先前发送的帖子。  最后一篇文章正是我正在尝试做的,直至所用的 SP37或 SP40T Infineon TPMS 传感器。

    我读取到、在异步模式之外(就像我现在一样)无法使用 CC1101读取这种类型的数据。

    如果确实如此、CC1101将不能用于我的应用。 在 MCU 侧完成所有解码操作将给我们的系统带来太大的负担。

    较新的 CC110L 是否允许 对这些数据进行正确的片上解码? (意味着访问内部 FIFO 缓冲和曼彻斯特解码)?

    如果没有、我能否用另外一款 TI 芯片完成任务?

    我很早就获得了 CC1310、因为 CC1101目前没有合适的开发套件。 现在、我已经能够使用 Amazon 的 TrxEB 板和 CC1101 433MHz 模块制作自己的芯片。

    Haiatullah:

    请参阅上方 Zack 的第三个链接。  

    这张7年前的海报试图完全按照我的想法使用同一个 SP37变送器。 由于 Sp37自那时起已停产、因此我现在已拥有 Sp37和 Sp40T。

    我认为前一张海报提供了比我更详细的答案你的问题。

    感谢大家的支持、

    Steve

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

    CC110L 的功能比 CC1101的功能 更少(请参阅 e2e.ti.com/.../cc110l-vs-cc1101),因此不会是这方面的更好的解决方案。


    遗憾的是、与 CC1310的异步模式会提供比 CC1101更差的性能、因为它不是为它设计的。 但是、它是一个 SoC、这是一个优势。

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

    您好、Zack、

    您的哪个模块具有我应该用于解码 TPMS 信号的不同 TI 低于1GHz 的芯片?

    我的应用不需要 SOC。 我们已经在产品中使用了现有的 MCU、并希望收发器接收信号并通过 SPI 与现有 MCU 进行通信。

    谢谢。

    Steve

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

    我找不到比这更适合的器件了;恐怕、我们目前支持的所有低于1GHz 器件都需要类似的过程才能解码这个特定的 TPMS 信号。

    此致、

    扎克

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

    我将在我们的团队中进行仔细检查、以防我们在本周内提供任何进一步的意见和回复。

    此致、

    扎克

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

    非常感谢 Zack、期待您的进一步支持!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    -频率:433.92 +/- 20.00 MHz
    -压力:±0.1 bar,从0 bar 到6.6 bar
    -温度:+/- 3 C 从-40 C 到75 C

    信号采用曼彻斯特编码、一个11字节的大消息

    数据布局(半字节):

      SS SS II II II 00 TT PP 00 CC CC

    - S:16位同步字、0xdd33
    - i:24位 ID
    0:8位未知数据1
    - T:8位温度(°C 偏移55°C)
    - P: 8位压力
    0:8位未知数据2.
    C:16位 CRC (CRC-16/BUYPASS)
    -前导码为0xa6、0xa6、0x5a
    [/报价]

    我浏览了一些旧的帖子、看起来最相关的帖子采用了略微不同的格式。 如果数据包格式如上所示并且您已经知道同步字、那么如果您将同步字设置为0xDD33、并避免使用异步模式、那么您应该能够在 RX 缓冲区中的 SS 半字节之后接收数据。 我有没有误解?  

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

    尊敬的 TheGhostOf:

    是的、回答正确。 我的问题是、在设置正确的频率和同步字以使用 CC1101时、我在 Smart RF Studio 中接收数据、但是接收到的数据与在 RTL_433 (使用 RTL_SDR)接收器中接收到的已知正确数据完全不匹配、 和 CC1101的异步模式中。  

    如果您看到包含的文本文件(例如 Jansite CC1101_4_3.txt)、我得到了接收到的数据、还在下一行手动对其进行了位反转。 但是、无论我做什么、在正常模式下、我都无法在任何输出中找到 TPMS 十六进制字节(8a5c2405510008ec7d 或8a5c2405514208e078或8a5c2405514308667b)。  

    我已经尝试了曼彻斯特模式已启用和禁用、SYNC0 = 0xDD & SYNC1 = 0x33、 SYNC0 = 0x33 & SYNC1 = 0xDD、所有调制方案(OOK、GFSK、... 等)以及 Smart RF Studio 中提供的所有建议数据速率、而完全不可能获得"黄金数据"。  

    非常感谢您提供任何帮助。

    谢谢。

    Steve

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

    您需要了解数据速率和调制格式。 您可以使用高端频谱获得这种情况的一些指示。  

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

    尊敬的 TheGhostOf:

    您能否提供有关如何进行数据速率测量的链接、我今天将完成它?

    我猜是不是只使用 H 探针?

    我可以在现场访问高端 SA。

    谢谢。

    Steve

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

    大家好、GhostOff、

    请在下面的示波器中查看屏幕截图。  

    如果我应该进行具体测量、请告诉我。

    谢谢。

    Steve

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

    Steve、您好!

    由于转向直接支持、我将此主题标记为"已解决"。 如果您还有其他问题需要在 E2E 上提出、您可以在30天内回复此主题、该主题将重新打开。

    否则、指标将显示我们不会尝试为您找到解决方案。

    此致。

    扎克