如何测量CANCAN FD的位时间精度?

2025-09-04

在串行通信系统对设备要求的属性中,波特率是最常见也是最重要的一组参数,这是决定着设备能否顺利接入网络的基本要求,应用位时间测量工具能测量实际通信过程的波特率数值;对于复杂的多节点系统,还能通过扫描不同报文的串行电平数据分别展示不同节点的位时间及其相对偏差,进一步地评估不同节点的位定时偏差情况,本文为CAN/CAN FD总线的设计与调试提供了理论参考与实践指导。


位时间定义

波特率是异步串行通信中的重要参数,指每秒钟能发送的数据位元数量,在原理上波特率位时间是互为倒数的关系,即:波特率 = 1 / 位时间


图1 CAN位时间

 

CAN/CAN FD位时间是基于一个自由运行的计数器,取自它的时钟频率,而它的时钟频率是经过系统时钟频率分频(分频系数BRP)而来的,假设系统时钟频率是8MHz,BRP是2,那么它的时钟频率就是4MHz,即Tq = 1/4MHz = 0.25μs,从图2可以看到,位时间有n个Tq组成,那么根据Tq的大小就可以计算出CAN/CAN FD位时间了,即位时间 = n × Tq

图2 CAN/CAN FD位时间成份


位时间测量原理

ZPSCAN总线位时间测量方法,以DUT作为发送节点,使用ZPS接收DUT发送的报文,然后通过对报文接收窗口或过滤窗口中报文对应的总线差分电压数据(CANDIFF)波形,按照设定的测量区间进行仲裁域数据域位时间的测量。

依据《GMW14241 JUL 2014》标准中对CAN/CAN FD总线位时间测量区间的要求,需按照图3所示,从上升阈值为0.9V的位置开始测量20个位所经历的时间,然后计算的平均值即为位时间结果。

图3 《GMW14241 JUL 2014》位时间测量区间要求


ZPS实测步骤

下面以实测某DUT仲裁域数据域位时间仲裁域波特率500k bps、采样点80%,数据域波特率1M bps、采样点80%)的步骤为例,进行相关的介绍。

第一步,将DUT的CAN FD信号ZPS-CANFD的CAN1 OUT通道连接;

第二步,打开ZView软件,点开【CAN1】通道参数设置界面,设置波特率、终端电阻、工作模式及采样比等参数。将总线允许选择为"ON",点击确认可直接将CAN1通道开启。

图4 CAN参数设置

1、总线上的终端电阻需确保是60Ω,否则会影响测量精度;

2、采样比需设置到最大,否则会影响测量精度;

3、除变速CAN FD位时间测量外,请确保设置中的数据域仲裁域波特率一致,以获得最大的采样比提升测量精度。

 

第三步,点击【分析】菜单,打开【总线位时间测量】功能,然后选择数据源、样本数量、测量位置、测量对象及及区间,然后点击"下一步";

图5 参数设置

 

第四步,进入到测量界面后,点击"开始"按钮,即可测量出仲裁域位时间数据域位时间,结果如图6所示。

图6 结果展示

1、传统CAN的仲裁域数据域位时间是等同的,测量界面上只显示仲裁域位时间

2、请确保被测帧对应域的比特位数量大于测量基本要求中的"连续检查位数不小于"设置值。


总线位时间不符合预期排查建议

总线位时间测量结果不符合预期时,我们可以从以下几个方向进行排查:

1、被测设备的晶振精度原因,如选型不合适或晶振老化;

2、被测设备总线负载过高(电容过大、终端电阻偏低)、干扰等因素导致波形异常,进而影响了测量精度;

3、被测设备的CAN控制器位时间参数配置不当。