·
编程学习 ·
76809
采样点是什么?
采样点是接受节点判断信号逻辑的位置,CAN通讯属于异步通讯。需要通过不断的重新同步才能保证收发节点的采样准确。
若采样点太靠前,则因为线缆原因,DUT外发报文尚未稳定,容易发生采样错误,若采样点太靠后,则因为SJW原因,也会引起接受节点同步跳转宽度的调整。调整不好就容易出现错误。
采样点在一个位时间的相位缓冲段1(PBS1)结束处,所以针对CAN节点进行采样点测试目睹用于检查DUT发送的CAN报文信号的采样点是否符合车企规范。
位时间是什么?
位时间是表示一个二进制位在总线上传输时所需的时间。
位速率=1/位时间,位速率又叫比特率、信息传输速率,表示单位时间内,总线上传输的信息量,即,每秒能够传的二进制位的数量。
波特率:传码率、信号传输率、表示单位时间内传输的码元的数量。
当位速率和波特率调制时,则一个码元=一个二进制位,CAN正是两者调制。
CAN协议是将一个位时间分4段,而段又由Time Quantum(Tq)构成
- 同步段(SS)多个连接在总线上的单元通过此段,实现时许调整,同步进行接收和发送工作,边沿包含在此段中(通常为1Tq)
- 传播段(PTS)用于补偿网络上所有的物理延迟(通常1-8Tq)
- 相位缓冲段1(PBS1)
- 相位缓冲段2(PBS2)当信号边沿不能被包含于SS段中时,可在PBS1和PBS2段进行补偿。
时间段1(TSEG1)=传播段+相位缓冲段1
时间段2(TSEG2)=相位缓冲段2
采样点怎么计算?
采样点是读取总线电平,并将读到的电平作为位值的点,所以一个位的开始到采样点的时间占一个完整位的总时间的百分比就是所求的采样点的值。
采样点该如何测试?
波特率采样点是CAN节点判断位逻辑的判断点,采用干扰方式,将采样点位置的逻辑电平破坏,使这个CAN报文将出现错误,以此来确定干扰位置位采样点位置,
表现形式就是,使用干扰仪对DUT报文进行干扰(一般是从后往前干扰),直到出现错误帧,从而将出现错误帧的位置记录下来,按照公式进行计算,得到DUT的采样点。
最直接用scipy.stats.chi2_contingency做卡方检验:输入2×2列联表(如[[a_converted,a_not_converted],[b_converted,b_not_converted]]),自动返回卡方值、p值、自由度和期望频数;注意每格期望频数≥5,否则改用fish...
LightGBM比XGBoost快的核心原因是直方图特征离散化和GOSS采样:前者将连续特征映射为整数桶,降低排序与增益计算复杂度;后者保留高梯度样本并加权采样低梯度样本,减少数据遍历量。 LightGBM在Python下比XGBoost快,核心原因不是“代码写得更精简”,而是算法层面的两个关键设计...
本文介绍一种绕过niusb-6002硬件限制的实用方案:通过双通道同步模拟采集(ai0+ai1)记录触发信号与目标信号,再结合离线边缘检测精准截取每触发对应的2–5个采样点,成功支持最小1ms间隔的非均匀外部触发采集。 本文介绍一种绕过niusb-6002硬件限制的实用方案:通过双通道同步模拟采集(...
sgqlc与pytest结合测试的核心难点在于上下文缺失、类型校验绕过和响应误判;关键实践是用sgqlc-codegen同步最新schema并提交Git,测试中通过Operation和生成类型类构造合法query,用op.variables提取变量,function级fixture管理client,...
ipytest是专为在JupyterNotebook中运行pytest设计的适配工具,解决直接调用pytest导致的ImportError、SystemExit、路径错误等问题,通过内存模块注入和pytestPythonAPI调用实现兼容。 直接运行pytest脚本在JupyterNotebook中...
pytest参数化读Excel最稳方式是用pandas或openpyxl直接读取,再传给@pytest.mark.parametrize;需处理空行、列名规范、数值类型转换,并用ids参数自定义用例名提升可读性。 pytest参数化怎么读Excel里的测试数据 直接用pandas或openpyxl读...
SMOTE不是万能开关,用错位置、时机或参数会降低模型性能;根本原因是未标准化导致量纲主导邻域搜索、数据泄露造成验证失真、k值不当生成噪声样本,以及误用sklearn而非imblearn库。 SMOTE不是“一加就灵”的开关,用错位置、用错时机、用错参数,反而会让模型在测试集上F1下降、precis...
random.choices的weights参数必须是非负数可迭代对象,长度与population严格一致,否则抛ValueError;应避免浮点误差和非法值,推荐用非负整数权重并校验长度。 random.choices的weights参数到底怎么填 权重必须是可迭代对象(比如列表、元组),元素数量...