一:事情起因
新开发的一块pcb主板需要通过全速canfd对一块毫米波雷达进行数据通信,但是接收到的数据非常不稳定:
1.收不到数据;
2.一开始以为是终端电阻配值问题,反复调整终端电阻,通过降低终端电阻阻值成功接收到了数据(120欧姆降低到了40欧姆),终端电阻降低到了40欧姆才接收到数据,这个数值严重偏离canfd终端电阻推荐值,而且数据间断;
3.怀疑加一:canfd速率为2M,是常用can波特率的几倍,对传输线路质量与是否双绞比较敏感,使用的定制临时传输线没有进行双绞;
4.另一个怀疑点:那就是我们买到了劣质canfd电平转换芯片;
二:问题定位解决
调试过程中,虽然通过降低电阻成功接收到了数据,但是一直处于一个不稳定状态,后来通过观察示波器发现电平切换瞬间状态有信号震荡,canfd电平采样点过前,采集到了震荡信号,虽然通过降低电阻提高了总线的负载功率抑制了震感时间勉强能够接收到数据,但是没有定位到根本问题,
电平采样点设置不合理;
三:can总线电平采样点
在CAN总线通信中,采样点的设置对通信质量和可靠性有着重要的影响。采样点是用来判断CAN总线上的信号电平的时间窗口,它决定了在每个位的传输过程中,CAN控制器进行采样的时机。
不同的采样点设置可能会导致以下影响:
误码率:采样点的位置如果不准确,可能导致信号采样错误,从而导致误码率的增加。如果采样点太早或太晚,可能无法正确地采样到信号的边沿,从而导致数据错误。
抗干扰能力:适当的采样点设置可以提高CAN总线的抗干扰能力。在CAN总线上,可能会存在噪声和电磁干扰,并且传输线路的质量也可能存在差异。正确设置采样点可以减少这些干扰对信号采样的影响,提高通信的可靠性。
波特率容差:采样点的位置对于波特率容差也有一定影响。在CAN通信中,发送端和接收端的波特率必须相匹配。如果采样点设置不准确,可能导致波特率偏移,使得接收端无法正确解析数据。
在CAN通信中,正确设置采样点非常重要。一般来说,建议使用自动采样点配置功能(如果芯片支持),或者遵循CAN协议规范和芯片手册中给出的采样点设置建议。如果有特殊需求或问题,可以通过实际测试和调整来确定最佳的采样点设置。总线不同节点之间最好使用相同采样点。
具体来说,CAN总线的一个位时间中包含两个缓冲段BS1和BS2: 在两个缓冲段中间的位置,即是读取总线电平的采样点位置,当检测到总线上存在相位差的时候,通过延长BS1段或缩短BS2段来获得同步,这样的方式称为重新同步。 这两个相位缓冲段的延长时间或缩短时间上限由再同步跳转宽度(SJW)给定。 采样点是接收节点判断信号逻辑的位置,CAN通讯属于异步通讯,需要通过不断的重新同步才能保证收发节点的采样准确,所以SJW(同步跳转宽度)决定了接收节点是否能有比较好的兼容性。
四:例子
CAN波特率= APB1(60MHz)/(SYNC_SEG+BS1+BS2)/prescaler
采样点=(1+BS1)/(SYNC_SEG+BS1+BS2)
备注:SYNC_SEG 长度总是为1,公式中直接用1代替。比如要实现500K的速率,90%采样点,对应的参数如下:SYNC_SEG=1, BS1=8,BS2=1,Prescaler=12;
六:相关内容
CAN通信采样点解析-优快云博客