CAN/CANFD采样点测试原理

本文详细介绍了CAN/CANFD总线中的采样点测试原理,包括采样点的意义、测试方法、位定时的计算以及具体的测试方案。通过对采样点的测试,确保了网络中节点的一致性,防止由于采样点不匹配导致的通讯错误。测试方案利用VH6501发送特定干扰报文,检测被测单元的采样点设置是否符合规范。


采样点测试在测试CAN总线的时候大家肯定都测过,有些测试的地方不太理解,整理一下学习的资料。
采样点测试是CAN总线测试中及其重要的一项,在CAN网络中多个节点要保持在同一个采样点。

1.采样点

采样点是接收节点判断信号逻辑的位置。
采样点是接收节点判断信号逻辑的位置,CAN总线属于异步通讯,在通讯过程中通过重同步机制才能保证收发节点的采样点准确。若网络中节点采样点不一致可能会导致对同一个位的电平解读不同从而出现错误,进而使整个网络出现故障,所以对CAN节点进行采样点的测试显得尤为重要。采样点测试目的在于检查被测单元的采样点设置是否遵守规范要求。

2.测试原理

采样点的位置不受被测单元所处的节点状态,即收发状态影响,故针对采样点测试既可以干扰被测单元发送的具体报文的具体位,也可以通过测试工具发送特定干扰报文去检测被测单元的行为。
下面的例子被测节点扮演的是接收节点的角色,通过VH6501去发送特定的干扰报文,检测被测单元是否可以识别并发送错误帧从而测量其采样点。

3.位定时

CAN总线中将一个位时间分割为同步段(Synchronization Segment)、传播段(Propagation Segment)、相位缓冲段1(Phase Buffer Segment 1)和相位缓冲段2 (Phase Buffer Segment2)。在实际控制器中通常将传播段和相位缓冲段1合并成时间片段1(TSEG1),相位缓冲段2对应时间片段2(TSEG2)。采样点的位置在时间片段1和2的交界处

测试 VH6501 设备中 CAN FD 采样点原理主要涉及对 CAN FD 总线信号的精确控制与干扰,以确定被测设备(DUT)在接收数据帧时的采样点位置是否符合规范。其核心原理是通过 VH6501 发送特定的干扰报文,逐步调整关键位的时间位置,从而检测 DUT 的采样行为。具体原理和操作流程如下: ### 采样点测试的基本原理 CAN FD 总线通信中,每个节点在位周期内选择一个采样点来判断该位的逻辑电平。采样点通常位于位周期的某个固定比例位置,例如 80%。如果多个节点的采样点不一致,可能导致通信错误,因此测试采样点的一致性至关重要。 VH6501 利用其硬件干扰能力,在检测到总线空闲时发送高优先级的干扰报文(如 ID 为 0x00 的报文),并逐步调整报文中的特定位(如 CRC 界定符位)的时序。每次干扰循环结束后,CRC 界定符位的长度会以时间量子(Tq)为单位逐渐缩短,而 ACK 位长度相应增加,从而保持整帧长度不变。 这种调整使显性电平(逻辑 0)由后往前移动,逐步接近 DUT 的采样点位置。当显性电平恰好位于 DUT 的采样点时,DUT 会将其误判为高电平(逻辑 1),从而导致格式错误,并触发主动错误帧。这一错误帧会被 CANoe 捕获并用于分析 DUT 的采样点位置。 ### 测试配置与注意事项 在进行测试时,需确保 CANoe 的逻辑通道(即 VH6501 所在通道)的采样点设置尽量靠前,以避免 VH6501 自身因干扰而误判,提前触发错误[^2]。 此外,为了确保 DUT 始终处于 Error Active 状态(即未因多次错误而进入被动状态),每次干扰循环结束后,VH6501 会发送一定数量的正常报文。在 Error Active 状态下,DUT 发送的主动错误帧更容易被识别,从而提高测试的准确性[^2]。 ### 代码示例:模拟干扰报文发送 以下是一个简单的 Python 示例,模拟发送干扰报文的过程,尽管实际操作中需通过 CANoe 和 VH6501 配合完成: ```python import can # 初始化 CAN 总线 bus = can.interface.Bus(channel='can0', bustype='socketcan') # 定义干扰报文 interference_msg = can.Message(arbitration_id=0x00, data=[0x00]*8, is_extended_id=False) # 发送干扰报文 def send_interference(): for i in range(10): # 示例发送10次干扰报文 bus.send(interference_msg) print(f"Sent interference message {i+1}") ``` ### 相关问题 1. 如何配置 CANoe 工程以支持 VH6501 进行 CAN FD 采样点测试? 2. CAN FD 与经典 CAN采样点测试方法有何异同? 3. 在 CAN FD 测试中,为何需要保持 DUT 处于 Error Active 状态? 4. 如何通过 CANoe 分析 VH6501 捕获的错误帧以确定采样点? 5. 采样点偏移对 CAN FD 总线通信稳定性有何影响?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天赐好车

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值