一般CAN总线通讯阻抗已匹配,只需要确认波特率一致就能完成通讯,但也有特殊的情况。比如你确认完CAN总线波特率之后还是一直通讯不上,可如果你设置自定义波特率,问题就解决了,这是为什么?首先我们来了解一下什么是自定义波特率,顾名思义就是定义一个属于自己独特需求的波特率,通过对各个参数微调,找到最符合当前总线的波特率参数。

这里我们推荐采样点为75%到85%。极限情况下也需要保证在70%到87.5%的范围内。CAN控制器在收发数据时是否发送正确。但是由于环境等问题会出现这么一种情况:在75%的采样点时信号电平表示正确,但是在85%的位置时信号电平不满足要求。我们假设总线上有三个设备是75%的采样点,C设备是85%的采样点,此时有可能会出现AB原本能正常通讯,但引入C节点之后就会产生错误帧。

CAN总线上的所有器件秘须使用相同的位率。然而,不是所有器件都要求有相同的主控振荡器时钟频率。对于个别器件不同的时钟频率,秘须通过适当设定波特率后分频器和每个时间段的时间当量来调整。标称的位率是每秒发送的位数,条件是假定理想的发送器带理想振荡器,而且忽略重同步的情况。这个标称的位率最大值是1Mbps。标称位时间定义如下:TBit1/标称位率位时间可以认为是被分成单独的没有重叠的时间段同步时间段(Sync_Seg);传输时间段(Prop_Seg);相位缓冲时间段1(Phase_Seg1);相位缓冲时间段2(Phase_Seg2);时间段(或标称时间段)是由时间当量或TQ整数倍构成的。

感谢题主的邀请,我来说下我的看法:理论上不同波特率的CAN总线设备是没办法进行通讯的,但凡是都有例外,如果你在它们之间连接一个CAN总线网桥设备的话,那就不是问题,它能够让不同波特率的两个CAN设备波特率变为一致。如果你需要相关设备的话,可以前往GCGD官网进行具体咨询,欢迎来访。
3、如何设置can总线通信波特率CAN_InitStructure.CAN_BS1CAN_BS1_4tq;/*时间段1*/CAN_InitStructure.CAN_BS2CAN_BS2_3tq;/*时间段2*/CAN_InitStructure.CAN_Prescaler45;/*波特率预分频数*//*波特率计算方法*//*CANbpsFpclk/((BRP+1)*((Tseg1+1)+(Tseg2+1)+1)此处计算为CANbps/(45*(4+3+1))100kHz*///此处Tseg1+1CAN_BS1_4tp参见我的文库文档。