采样点是接收节点判断信号逻辑的位置,采样点对CAN总线来说极其重要,尤其是在组网的时候,多个节点尽量保持同一个采样点,若网络中节点采样点不一致会导致同样的采样频率出现采样错误,使整个网络出现故障。
采样点的规则及原理
CAN协议里将一个位时间分为同步段、传播段、相位缓冲段1和相位缓冲段2。这些段又由称之为Time Quantum(以下称为Tq)的最小时间单位构成。1位由多少个Tq构成、每个段由多少个Tq构成等是可以设定的。通过设置bit时序,使得可以设定一个采样点以使总线上多个单元可同时采样,所谓采样点就是在这一时刻总线上的电平被锁存,这个锁存的电平作为位的值。采样点的位置在相位缓冲段1(PBS1)的结束处。
图1 CAN 位时间结构图
同步段(SS):多个连接在总线上的单元通过此段实现时序调整,同步进行接收和发送工作,边沿包含在此段中;
传播时间段(PTS):用于补偿网络上所有的物理延迟;
相位缓冲段1(PBS1)和相位缓冲段2(PBS2):当信号边沿不能被包含于(SS)段中时,可在此段进行补偿;
采样点:读取并解释总线上各位值的一个时间点。
采样点位置如图1所示,它是读取总线电平,并将读到的电平作为位值的点,所以从一个位的开始到采样点的时间占一个完整位的总时间的百分比就是所求的采样点的值:
sample =(1+TSEG1)/(1+TSEG1+TSEG2)
ZPS-CANFD采样点测试的测试原理
将ZPS-CANFD设备连接好后,再选择“采样点测试”并设置好对应的参数,然后开始测试即可进行采样点的测试,如图2,最终的测试结果为:90%,误差为5%位宽。
图2 采样点测试结果
ZPS-CANFD测试原理及过程如下:
1、用ZPS-CANFD发送ID 为0的报文100帧,在此报文的第一个ID位(1注1)的0%处施加一个宽度为27%位宽(2注2)的干扰(如图3),记录这100帧报文中出现的错误帧数,但由于此时距离采样点位置较远,暂时不会出现错误帧。
图3 干扰1
2、27%位宽的干扰逐渐以1%位宽的步进向右移动,在干扰的右边沿快靠近采样点时(如图4),由于通信延迟的关系,此时采到的电平和ZPS-CANFD发送的不一致了,导致DUT接收到的CRC校验和DUT计算的CRC校验不一致,DUT就会主动发出错误帧,把每一个不同干扰位置的错误帧数记录下来。从此刻开始,继续往右步进,错误帧数也会有所增加。
图4 干扰2
3、继续步进,当干扰的左边沿位置过了采样点后(如图5),此时DUT就不会再出现错误帧了。因此,最后一个出现错误帧的位置就是我们想要知道的采样点位置。
图5 干扰3
常规采样点的设计
采样点对CAN总线来说非常重要,在组网的时候,多个节点应尽量保持同一个采样点,且最好在但不超过7/8位时间点上,标准中也给了如下几个例子。
关于采样点的计算:
sample =(1+TSEG1)/(1+TSEG1+TSEG2)