CAN总线采样点测试

采样点是什么?

采样点是接受节点判断信号逻辑的位置,CAN通讯属于异步通讯。需要通过不断的重新同步才能保证收发节点的采样准确。

若采样点太靠前,则因为线缆原因,DUT外发报文尚未稳定,容易发生采样错误,若采样点太靠后,则因为SJW原因,也会引起接受节点同步跳转宽度的调整。调整不好就容易出现错误。

采样点在一个位时间的相位缓冲段1(PBS1)结束处,所以针对CAN节点进行采样点测试目睹用于检查DUT发送的CAN报文信号的采样点是否符合车企规范。

位时间是什么?

位时间是表示一个二进制位在总线上传输时所需的时间。

位速率=1/位时间,位速率又叫比特率、信息传输速率,表示单位时间内,总线上传输的信息量,即,每秒能够传的二进制位的数量。

波特率:传码率、信号传输率、表示单位时间内传输的码元的数量。

当位速率和波特率调制时,则一个码元=一个二进制位,CAN正是两者调制。

 

CAN协议是将一个位时间分4段,而段又由Time Quantum(Tq)构成

  1. 同步段(SS)多个连接在总线上的单元通过此段,实现时许调整,同步进行接收和发送工作,边沿包含在此段中(通常为1Tq)
  2. 传播段(PTS)用于补偿网络上所有的物理延迟(通常1-8Tq)
  3. 相位缓冲段1(PBS1)
  4. 相位缓冲段2(PBS2)当信号边沿不能被包含于SS段中时,可在PBS1和PBS2段进行补偿。

时间段1(TSEG1)=传播段+相位缓冲段1

时间段2(TSEG2)=相位缓冲段2

 

 采样点怎么计算?

采样点是读取总线电平,并将读到的电平作为位值的点,所以一个位的开始到采样点的时间占一个完整位的总时间的百分比就是所求的采样点的值。

 

 采样点该如何测试?

波特率采样点是CAN节点判断位逻辑的判断点,采用干扰方式,将采样点位置的逻辑电平破坏,使这个CAN报文将出现错误,以此来确定干扰位置位采样点位置,

表现形式就是,使用干扰仪对DUT报文进行干扰(一般是从后往前干扰),直到出现错误帧,从而将出现错误帧的位置记录下来,按照公式进行计算,得到DUT的采样点。

 

相关推荐:

LightGBM在Python下为什么比XGBoost快_基于直方图算法与单边梯度采样

LightGBM比XGBoost快的核心原因是直方图特征离散化和GOSS采样:前者将连续特征映射为整数桶,降低排序与增益计算复杂度;后者保留高梯度样本并加权采样低梯度样本,减少数据遍历量。 LightGBM在Python下比XGBoost快,核心原因不是“代码写得更精简”,而是算法层面的两个关键设计...

如何在不支持重触发的NI USB-6002设备上实现高密度外部触发AI采样

本文介绍一种绕过niusb-6002硬件限制的实用方案:通过双通道同步模拟采集(ai0+ai1)记录触发信号与目标信号,再结合离线边缘检测精准截取每触发对应的2–5个采样点,成功支持最小1ms间隔的非均匀外部触发采集。 本文介绍一种绕过niusb-6002硬件限制的实用方案:通过双通道同步模拟采集(...

Python中如何处理数据倾斜严重的分类任务_使用SMOTE算法过采样

SMOTE不是万能开关,用错位置、时机或参数会降低模型性能;根本原因是未标准化导致量纲主导邻域搜索、数据泄露造成验证失真、k值不当生成噪声样本,以及误用sklearn而非imblearn库。 SMOTE不是“一加就灵”的开关,用错位置、用错时机、用错参数,反而会让模型在测试集上F1下降、precis...