大家好,
我正在尝试使用 FXTH87E 传感器匹配 OEM TPMS 传感器的位定时。 我修改了入门项目 FXTH87_E_FW_Periodic_RF_Tx。
我所遇到的问题是,我正试图使发送的数据达到 ~25us 位定时,但有些位是 ~50us 位,有些位是 ~25us 位。 我曾尝试通过 RFCR0 将数据传输速率提高一倍,达到 ~40 kbits,这样就解决了前导码问题,但最终得到的比特数却只有 ~13us。 我使用的也是曼彻斯特编码。
我似乎无法找到正确的设置,让所有比特都以相同的数据速率传输。 我附上了我的 main.c 和两个逻辑分析仪捕获,一个是 OEM TPMS 传感器,另一个是我的。我正在尝试复制 ~5ms 的数据包长度和 ~25us 的位定时。 目前,我得到的数据包长度约为 7ms,可变位定时约为 50us 和 25us。
如有任何建议,我们将不胜感激。
致以最诚挚的问候
你好,克雷格、
从主设备中的代码来看,以 19200 bps 的数据传输速率(RFCR0 配置)传输 136 比特。因此传输时间为 136/19200 = 7 毫秒。因此,从代码来看,完全可以预期帧的持续时间是 7 毫秒,而不是 5 毫秒。
数据传输速率为 19200 bps,一个比特持续约 50 秒。在射频配置中,曼彻斯特编码被选择为 434 MHz。而在曼彻斯特,在位的中间(约 25 秒后)有一个高到低或低到高的转换。这意味着低电平或高电平状态可以持续 25 us 或 50 us。
我将手册(UM11227)中显示曼彻斯特编码的摘录复制如下。
因此,捕获的波形与 main.c 中的配置相匹配,没有什么不正常的。
BRs, Tomas
你好,托马斯、
感谢您的详细答复。 同样使用 FXTH87E 的 OEM 传感器一定没有使用标准的数据发送方式? 下面的逻辑分析器捕获没有像 UM11227 中显示的那样有过渡效果。据我所知,连续的 0 和 1 并没有产生转换,它只是在两个周期内保持相同的值,即 ~50us。 解码后的捕获为:
010101010101010101010010110010101010101
他们是否可能以某种方式修改了发送的数据,以创建上述数据,使连续比特的比特时序加倍,而不发生转换? 我尝试过使用不同的 CODE[1:0] 设置,还将位定时提高到 40 kbit 以获得 ~25us 位定时,但并没有消除过渡。 对不起,我的问题很简单,这是我第一次尝试复制数据包。 如能提供进一步指导,将不胜感激。
致以最诚挚的问候
克雷格
经过几个小时的实验,我相信我已经取得了进展。 我知道数据是曼彻斯特编码的。 了解到这一点后,我使用了 NRZ,这样就能实现单个比特 25us 和两个连续比特 50us 的一致比特定时。 然后我继续使用曼彻斯特编码对数据字节进行编码。经过反复试验,我终于能够复制 OEM 数据包,并通过接收器成功解码。 在我努力工作的过程中,感谢您的指导。
请将此问题视为已解决。
致以最诚挚的问候
克雷格