CAN一致性测试(500K)学习笔记

本文基于500K速率的CAN总线测试案例,文中的参数具有局限性,不是规范。读者请自行斟酌。

1,物理层测试

I.终端电阻测试

DUT 电源断开,CAN_H/CAN_L 两端不匹配任何外部电路;万用表连接DUT CAN_H 和CAN_L;直接测量RDiff 的值

II.低压通信范围测试

先供电到12V,等待至总线通信稳定;先以0.5V步长减小供电电压到通信停止记录v1Stop。

再下电重新从12V开始,调整到v1Stop+0.5V以步长0.1V减少到通信停止记录vStop。

设备停止通信后,以ΔV=0.1V 步长逐渐增加供电电压(电压值维持时间为5s),若DUT出现错误帧,则记录出现错误帧电压vError,记录DUT 恢复正常通信(所有报文都恢复)的电压值vStart。

III.高压通信范围测试

以0.5 V 步长逐渐升高供电电压(电压值维持时间为5s),若DUT 出现错误帧,则记录出现错误帧电压vError,若DUT 停止通信,记录停止通信电压vStop;电压值升高上限为19 V(发动机启动无关,若19 V 时仍然通信则需要在报告中进行体现)或27V(发动机启动相关,若27 V 时仍然通信则需要在报告中进行体现)为保证测试精确度,当电压上升到V0 出现错误帧或停止通信时,首先下电,然后上电恢复到Vnormal , 再调整电压到V0-0.5V,步长调0.1 V,继续上升,记录vError/vStop。

设备停止通信后,以ΔV=0.1 V 步长逐渐降低供电电压(电压值维持时间为5s),若DUT出现错误帧,则记录出现错误帧电压vError,记录DUT 恢复正常通信的电压值vStart。

7v<vStop<18v

6v<vStart<26v

IV.显性输出电压测试

将DUT 与示波器共GND;根据DUT 是否是终端节点匹配终端电阻,保证系统是60 Ω;设置DUT 供电电压为8,12,18V,等待5 s 至总线通信稳定;使用示波器测量取10 个位,取平均值。连续
测试5 次。

V.隐性输出电压测试

步骤同上

VI.波形完整性测试

将DUT 与示波器共GND;根据DUT 是否是终端节点匹配终端电阻,保证系统是60 Ω;供电电压分别取,8,12,18V。等待至总线通信稳定调节示波器,截取一帧完整报文;观察此帧报文是否正常DUT 发送报文的各个位场完整,无异常波形。

VII.上升沿时间测试

匹配终端电阻,保证系统是60 Ω,CAN_H 及CANdiff 的10%至90%间的上升沿时间参数及CAN_L 的90%至10%间的下降沿时间参数;

VIII.下降沿时间测试

测量DUT 的CAN_H、CANdiff 的90%至10%间的下降沿时间参数及CAN_L 的10%至90%间的上升降沿时间参数;

IX,地偏移测试

设置DUT 供电电压为12V,等待5 s 至总线通信稳定;用CANoe 仿真网络其它节点,持续时间要求大于10 s;设置DC 电源,使DUT 对地偏移电压为+7 V,-7V;

评价标准:

Case1:
在+7 V 地偏移状态下,DUT 不能停止通信,不能发送错误帧。
Case2:
在-7V 地偏移状态下,DUT 不能停止通信,不能发送错误帧。

2,数据链路层测试

I. 位时间测试

计算位时间:tBit = tMark / nBitnumber。

使用示波器获取DUT 发送的任意一帧报文,获取报文的多个周期(大概40-50bit);记录
两条测量线之间的时间间隔tMark;计算两条测量线之间的位数nBitnumber;

这个tMark容易有偏差需要注意(手动测量容易偏差哦)

II.采样点测试

将CANoe 的采样点设置为80%;VH6501 采样点设置为80%;运行VH6501 进行干扰,循环3 次

III.报文ID 及DLC 测试

设置DUT 供电电压为12V 并上电,等待5 s 至总线通信稳定;CANoe 记录DUT 所有数据帧并观察1min 以上;对比DUT 所发送周期、周期事件型及周期使能型报文的ID 及DLC 是否和的定义一致

IV.未定义报文测试

DUT 所发送报文的ID 应同原先定义一致:不允许DUT 发送任何未定义的报文。

V.总线负载率监测测试

设置DUT 供电电压为12V 并上电,等待5 s 至总线通信稳定;CANoe 记录DUT 所有数据帧并观察1min 以上;仅记录DUT 发送全部报文时的总线负载率。

VI.高负载率通信测试

设置DUT 供电电压为12V并上电,等待5 s 至总线通信稳定;

case1使用CANoe 仿真发送优先级低的报文(ID 为0x8XX),使总线负载达到90%以上;

case2使用CANoe 仿真发送优先级高的报文(ID 为0x00X),使总线负载达到90%以上;

Case1:干扰前后,DUT 均正常发送所有报文;
Case2:干扰中,DUT 不一定正常发送所有报文,负载恢复正常时,DUT 通信状态正常

VII.预期帧接收测试

设置DUT 供电电压为12V 并上电,等待5 s 至总线通信稳定;使用CANoe 模拟总线上DUT 所在网络的其他节点,遍历除DUT 发送报文以外所有的报文ID,每帧报文发送1 s,发送周期设置为
10 ms;

判断标准:DUT 接收到除自身发送外的所有原先定义的DUT 所在网络报文时都能够正常通信,无错误帧产生。

VIII. 非预期帧接收测试

设置DUT 供电电压为12V并上电,等待5 s 至总线通信稳定;

1,使用CANoe 模拟节点发送报文,报文类型为扩展帧,其周期为10 ms,持续发送1 s 时间;

2,使用CANoe 模拟节点发送报文,报文类型为远程帧,其周期为10 ms,持续发送1 s 时间;

3,使用CANoe 模拟节点发送报文,报文类型为扩展远程帧,其周期为10 ms,持续发送1 s
时间;

4,使用CANoe 模拟节点发送标准帧报文,该报文ID 为DUT 所在网络未定义报文,其周期为10 ms,持续发送1 s时间;

判断标准:DUT 接收扩展帧、远程帧、扩展远程帧、DUT 所在网络未定义标准帧情况下,应能保持正常通信,无错误帧产生。

IX.上电/下电错误帧测试

Case1:DUT 上电瞬间不发送错误帧;
Case2:DUT 下电瞬间及停发最后一帧报文瞬间不发送错误帧。

X.总线最大位时间延迟容差测试

设置DUT 供电电压为12V 并上电,等待5 s 至总线通信稳定;使用CANoe 模拟总线上的节点,以5 ms 的时间间隔向总线发送ID 为0x1A0,DLC=8,数据场均为3C 的报文;

判断标准:连续发送1 min 并监测总线通信状态DUT 通信正常,无错误帧产生。

3,交互层测试

I.周期型报文发送周期测试

设置DUT 供电电压为8,12,18V 并上电,等待5 s 至总线通信稳定;

1,使用CANoe 记录DUT 所有数据帧,并观察1min 以上;计算DUT 所发送周期型报文周期时间的最大偏离(%)。

2,使用CANoe 仿真发送该网段上所有周期报文;记录DUT 所有数据帧,并观察1min 以上;计算DUT 所发送周期型报文周期时间的最大偏离(%)。

II.事件型报文发送测试

设置DUT 供电电压为8,12,18V 并上电,等待5 s 至总线通信稳定;

case1,模拟事件型报文的某种触发条件,触发该事件型报文发送;检测事件型报文的ID、DLC、重复发送次数nRepetitionE 及重复时间间隔tRepetitionE;重复上述步骤,轮询该DUT 所有事件型
报文进行测试。

case2,模拟事件型报文的某种触发条件,触发该事件型报文发送;接收到第一条事件型报文20 ms 后,立即触发新事件发生;检测DUT 是否发送新事件的事件报文,丢弃上一个事件报文,并检测新事件报文的ID、DLC、重复发送次数nRepetitionE 及重复时间间隔tRepetitionE;重复上述步骤,轮询该DUT 所有事件型报文进行测试。

case3,模拟事件型报文的某种触发条件,触发该事件型报文发送;接收到第一条事件型报文20 ms 内,立即触发新事件发生;检测DUT 是否推迟新事件报文到20 ms 之后发送,并检测新事件报文的ID、DLC、重复发送次数nRepetitionE 及重复时间间隔tRepetitionE;重复上述步骤,轮询该DUT 所有事件型报文进行测试。

III.使能型报文发送测试

设置DUT 供电电压为8,12,18V 并上电,等待5 s 至总线通信稳定;

模拟使能型报文的某种使能条件,触发使能型报文发送;CANoe 监测使能报文的ID 及DLC,并计算使能型报文的周期时间T 的最大偏离(%);等待5 s 后,改变使能报文的触发信号为非使
能值;计算使能型报文的重复发送次数nRepetitionA 及重复时间间隔tRepetitionA。

IV.周期事件型报文发送测试

设置DUT 供电电压为8,12,18V 并上电,等待5 s 至总线通信稳定;

case1,使得周期事件型报文触发条件不满足,使用CANoe 监测DUT 周期事件型报文是否周期
发送,持续1 min;计算DUT 周期事件型报文发送周期时间T 的最大偏离(%);使得触发条件满足,检测周期事件型报文的重复发送次数nRepetitionE 、重复时间间隔tRepetitionE;检测周期事件型报文重复发送nRepetitionE次后的发送周期时间T 的最大偏离(%),持续1 min;

case2,当接收到周期事件型报文后,立即满足事件触发条件,使事件发生在周期报文发送之后20
ms 内;检测DUT 是否将事件报文推迟到周期报文发送后20 ms 进行发送;

case3,在任一周期报文发送前的10+(nRepetitionE-1)*tRepetitionE ms 时,立即满足事件触发条件,使事件报文发生在周期报文发送之前20 ms 内;检测DUT 是否将周期报文推迟到事件报文发送后20 ms 进行发送;

case4,在任一周期报文发送前的10+(nRepetitionE-2)*tRepetitionE ms 时,立即满足事件触发条件,使事件报文与周期报文发生冲突;检测DUT 是否将周期报文推迟到事件报文发送后20 ms 进行发送;

判断标准:

事件报文与周期报文发送的时间间隔不应小于20 ms。如果事件发生在周期报文发送之后20 ms 内,则事件报文延迟到周期报文发送20 ms 后再发送。如果事件报文发生在周期报文发送之
前20 ms 内,则周期报文延迟到事件报文发送20 ms 后再发送;如果事件报文和周期报文发生冲突时,周期报文应延时到事件报文发送完成后20 ms再发送。

V.周期使能型报文发送测试

设置DUT 供电电压为8,12,18V 并上电,等待5 s 至总线通信稳定;

case1,使信号值等于非使能值,使能条件不满足,使用CANoe 监测DUT 周期使能型报文是否以周期T 循环发送,持续1 min;计算DUT 周期使能型报文发送周期T 的最大偏离(%);使信号值不等于非使能值,使能条件满足,使用CANoe 监测DUT 周期使能型报文是否以周期Tactive 循环发送,持续1 min;计算周期使能型报文的发送周期Tactive的最大偏离(%);再次使信号值等于非使能值,使能条件不满足,检测周期使能型报文的发送周期T 的最大偏离(%)。

case2,当接收到任一周期发送的报文后,立即满足使能条件,使信号值不等于非使能值,使使能事件发生在周期报文发送之后20 ms 内;检测DUT 是否将使能报文推迟到周期报文发送后20 ms 进行发送;等待3s 后使信号值等于非使能值,使报文恢复周期发送;

case3,满足使能条件,使信号值不等于非使能值,使报文以周期Tactive 循环发送;等待3s 后,接收到任一使能报文后立即不满足使能条件,使信号值等于非使能值,使使能报文发生在周期报文发送前20 ms 内;检测DUT 是否将周期报文推迟到使能报文发送后20 ms 进行发送;

判断标准:

使能报文与周期报文发送的时间间隔不应小于20 ms。

如果使能发生在周期报文发送之后20 ms 内,则使能报文延迟到周期报文发送20 ms 后再发送;

如果使能发生在周期报文发送之前20 ms 内,则周期报文延迟到使能报文发送20ms 后再发送。

4,网络容错层测试

I. CAN_H/L 对电源短路容错性测试

设置DUT 供电电压为12 并上电,等待5 s 至总线通信稳定;

Case1,将CAN_H 与电源短路,持续30 s 时间;移除CAN_H 与电源短路故障;记录从移除故障到恢复通信的时间tRecoveryTime;

Case2,将CAN_L 与电源短路,持续30 s 时间;移除CAN_L 与电源短路故障;记录从移除故障到恢复通信的时间tRecoveryTime;

Case3,将CAN_H 和CAN_L 与电源短路,持续30 s 时间;移除CAN_H和CAN_L 与电源短路故障;记录从移除故障到恢复通信的时间tRecoveryTime;

II.CAN_H/L 对地短路容错性测试 

设置DUT 供电电压为12 并上电,等待5 s 至总线通信稳定;

Case1,将CAN_H 与地短路,持续30 s 时间;移除CAN_H 与电源短路故障;记录从移除故障到恢复通信的时间tRecoveryTime;

Case2,将CAN_L 与地短路,持续30 s 时间;移除CAN_L 与电源短路故障;记录从移除故障到恢复通信的时间tRecoveryTime;

Case3,将CAN_H 和CAN_L 与地短路,持续30 s 时间;移除CAN_H和CAN_L 与地短路故障;记录从移除故障到恢复通信的时间tRecoveryTime;

III.CAN_H 与CAN_L 短路容错性测试

设置DUT 供电电压为12 并上电,等待5 s 至总线通信稳定;

Case1,将CAN_H 与CAN_L 短路,持续30 s 时间;移除CAN_H 与电源短路故障;记录从移除故障到恢复通信的时间tRecoveryTime;

IV.CAN_H/L 开路测试

设置DUT 供电电压为12 并上电,等待5 s 至总线通信稳定;

Case1,将CAN_H 开路,持续30 s 时间;移除开路故障;记录从移除故障到恢复通信的时间
tRecoveryTime。

Case2,将CAN_L 开路,持续30 s 时间;移除开路故障;记录从移除故障到恢复通信的时间
tRecoveryTime。

Case3,将CAN_H 和CAN_L 开路,持续30 s 时间;移除开路故障;记录从移除故障到恢复通信的时间
tRecoveryTime。

V.电源/地丢失测试

设置DUT 供电电压为12 并上电,等待5 s 至总线通信稳定;

Case1,制造DUT 电源丢失故障,持续30 s 时间;移除电源丢失故障;记录从移除故障到恢复通信的时间tRecoveryTime。

Case2,制造DUT 地丢失故障,持续30 s 时间;移除地丢失故障;记录从移除故障到恢复通信的时间tRecoveryTime。

VI.Busoff 恢复策略测试

设置DUT 供电电压为12 并上电,等待5 s 至总线通信稳定;

使用VH6501 干扰DUT 所有报文的RTR 位,持续500 ms;计算并分析DUT Busoff 的恢复时间
tBusOffRecovery;

VII.ACK 干扰测试

设置CANoe 关闭ACK 应答;设置DUT 供电电压为12 并上电,持续监测1 min,记录总线行为;开启CANoe ACK 应答,监测DUT 是否恢复通信。

判断标准:

DUT 在ACK 被干扰时,能够立即重新发送报文;在干扰被移除后,DUT 应该能够恢复通信。

5,通信相关诊断测试

I.超时故障码测试

设置DUT 供电电压为12V并上电,使用CANoe 仿真节点发送报文,等待5 s至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;停止发送DUT 伙伴节点所有报文Tdelay 时间
( Tdelay 初始值=0.8*4.5*Message Cyclems);读取DUT 记录的DTC;若未获取到相应超时DTC , 则以4.5*Message Cycle*5% ms 的步长增加Tdelay 时间,直至读取到DUT
记录了相应节点超时DTC,记录该Tdelay 时间并与定义超时时间相比较。

判断标准:

DUT 在tTimeout 以前不应记录节点超时DTC,在tTimeout 之后DUT 应检
测到节点超时错误,节点超时DTC 应被记录,计算超时时间tTimeout,与
标准值误差应在±10%以内。

II.Busoff 故障码测试

设置DUT 供电电压为10,12,15V 并上电,等待5 s 至总线通信稳定;

清除DUT 记录的DTC;读取DUT 记录的DTC;

使用VH6501 干扰DUT 所有报文的RTR 位,使之连续进入Busoff 状态(nBusOffCount -1)次;

读取DUT 记录的DTC,判断DUT 是否记录Busoff DTC。应读取到BusOff DTC,且
DTC 状态字节的bit3=1 且bit0=0

III.Busoff 状态下超时故障监测测试

Case1,设置DUT 供电电压为12V并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;使用VH6501 干扰DUT 所有报文的RTR 位,持续1s 时间,同时停止CANoe 仿真发送报文;VH6501 干扰结束同时,恢复CANoe 仿真报文的发送;读取DUT 记录的DTC,判断DUT 是否记录节点超时DTC。

Case2,设置DUT 供电电压为12V 并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;使用VH6501 干扰DUT 所有报文的RTR 位,持续1s 时间,同时停止CANoe 仿真发送报文;VH6501 干扰结束后,等待2s,读取DUT 记录的DTC ,判断DUT 是否记录节点超时DTC。

Case3,设置DUT 供电电压为12V并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;停止发送DUT 伙伴节点所有报文Tdelay1 时间(Tdelay1 初始值=0.8*10*Message Cyclems);读取DUT 记录的DTC;未获取到相应超时DTC , 则以10*Message Cycle*5% ms 的步长增加Tdelay1 时间,直至读取到DUT 记录了相应节点超时DTC , 记录该Tdelay1 时间为最小超时时间tTimeout.min;恢复CANoe 模拟伙伴节点发送报文,等待5 s至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;使用总线干扰仪VH6501 干扰控制器发出的报文,使其进入Busoff 状态;移除干扰,同时停止发送CANoe 模拟的伙伴节点报文Tdelay2 时间(Tdelay2 初始值=0.8* ( tDiagStart.min +tTimeout.min));读取DUT 记录的DTC;若未读取到相关超时故障码,则以ΔT=50 ms 的步长增加Tdelay2 时间,直至能够读取到DUT 记录了相应节点超时DTC,记录此时的Tdelay2 时间;

计算tDiagStart = Tdelay2 – tTimeout.min。

IV.诊断初始化时间测试

Case1,设置DUT 供电电压为12V并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;KL15 切换为OFF 状态,同时停止发送仿真报文,等待5s;KL15 切换为ON,同时立即仿真发送所有报文;读取DUT 记录的DTC

Case2,设置DUT 供电电压为12V并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;KL15 切换为OFF 状态,同时停止发送仿真报文,等待5s;仿真发送NM 报文,维持控制器的工作状态,使其不进入睡眠模式,等待5s;读取DUT 记录的DTC

Case3,设置DUT 供电电压为12V并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;停止发送DUT 伙伴节点所有报文Tdelay1 时间(Tdelay1 初始值=0.8*10*Message Cycle ms);读取DUT 记录的DTC;未获取到相应超时DTC , 则以10*Message Cycle*5% ms 的步长增加Tdelay1 时间,直至读取到DUT 记录了相应节点超时DTC , 记录该Tdelay1 时间为最小超时时间tTimeout.min;恢复CANoe 模拟伙伴节点发送报文,等待5 s至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;使用总线干扰仪VH6501 干扰控制器发出的报文,使其进入Busoff 状态;移除干扰,同时停止发送CANoe 模拟的伙伴节点报文Tdelay2 时间(Tdelay2 初始值=0.8* ( tDiagStart.min +tTimeout.min));读取DUT 记录的DTC;未读取到相关超时故障码,则以ΔT=50 ms 的步长增加Tdelay2 时间,直至能够读取到DUT 记录了相应节点超时DTC,记录此时的Tdelay2 时间;

计算tDiagStart = Tdelay2 – tTimeout.min

V.诊断低压范围测试

设置DUT 供电电压为12V并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;停止发送DUT 伙伴节点所有报文Tdelay1 时间(Tdelay1 初始值=0.8*10*Message Cycle ms);读取DUT 记录的DTC;未获取到相应超时DTC , 则以10*Message Cycle*5% ms 的步长增加Tdelay1 时间,直至读取到DUT 记录了相应节点超时DTC , 记录该Tdelay1 时间为最小超时时间tTimeout.min;恢复CANoe 模拟伙伴节点发送报文,等待5 s至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;以ΔV=0.5V 的电压步长逐渐降低供电电压;停止发送CANoe 模拟伙伴节点报文Tdelay2时间(Tdelay2=2*tTimeout.min);读取DUT 记录的DTC;直至读取不到DUT 记录的相关节点超时DTC,记录此时供电电压值Vstopdiaglow;恢复供电电压至Vnormal,等待5 s,调整供电电压至Vstopdiaglow+0.5V,重复上述步骤只是ΔV=0.1V直至读取不到DUT 记录的相关节点超时DTC,记录此时供电电压值VDLoff

设置DUT 供电电压为VDLoff -0.2V 并上电,等待5 s 至总线通信稳定,清除DUT 记录的DTC;读取DUT 记录的DTC;以ΔV=0.1V 的电压步长升高供电电压;读取DUT 记录的DTC;直至能够读取到相关节点超时DTC,记录此时供电电压值VDLon。

VI.诊断高压范围测试

设置DUT 供电电压为12V并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;停止发送DUT 伙伴节点所有报文Tdelay1 时间(Tdelay1 初始值=0.8*10*Message Cycle ms);读取DUT 记录的DTC;未获取到相应超时DTC , 则以10*Message Cycle*5% ms 的步长增加Tdelay1 时间,直至读取到DUT 记录了相应节点超时DTC , 记录该Tdelay1 时间为最小超时时间tTimeout.min;恢复CANoe 模拟伙伴节点发送报文,等待5 s至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;以ΔV=0.5V 的电压步长逐渐升高供电电压;停止发送CANoe 模拟伙伴节点报文Tdelay2时间(Tdelay2=2*tTimeout.min);读取DUT 记录的DTC;直至读取不到DUT 记录的相关节点超时DTC,记录此时供电电压值Vstopdiaglow;恢复供电电压至Vnormal,等待5 s,调整供电电压至Vstopdiaglow-0.5V,重复上述步骤只是ΔV=0.1V直至读取不到DUT 记录的相关节点超时DTC,记录此时供电电压值VDHoff

设置DUT 供电电压为VDHoff +0.2V 并上电,等待5 s 至总线通信稳定,清除DUT 记录的DTC;读取DUT 记录的DTC;以ΔV=0.1V 的电压步长降低供电电压;读取DUT 记录的DTC;直至能够读取到相关节点超时DTC,记录此时供电电压值VHon。

VII.诊断低压恢复时间测试

设置DUT 供电电压为12V并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;停止发送DUT 伙伴节点所有报文Tdelay1 时间(Tdelay1 初始值=0.8*10*Message Cycle ms);读取DUT 记录的DTC;未获取到相应超时DTC , 则以10*Message Cycle*5% ms 的步长增加Tdelay1 时间,直至读取到DUT 记录了相应节点超时DTC , 记录该Tdelay1 时间为最小超时时间tTimeout.min;恢复CANoe 模拟伙伴节点发送报文,等待5 s至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;以ΔV=0.5V 的电压步长逐渐降低供电电压;停止发送CANoe 模拟伙伴节点报文Tdelay2时间(Tdelay2=2*tTimeout.min);读取DUT 记录的DTC;直至读取不到DUT 记录的相关节点超时DTC,记录此时供电电压值Vstopdiaglow;恢复供电电压至Vnormal,等待5 s,调整供电电压至Vstopdiaglow+0.5V,重复上述步骤只是ΔV=0.1V直至读取不到DUT 记录的相关节点超时DTC,记录此时供电电压值VDLoff ,设置DUT 供电电压为VDLoff -0.2V 并上电,等待5 s 至总线通信稳定,清除DUT 记录的DTC;读取DUT 记录的DTC;将供电电压设置为Vnormal,同时停止发送所
有DUT 伙伴节点报文Tdelay3 时间(Tdelay3初始值=0.8* ( tDiagStart*.min +tTimeout.min));读取DUT 记录的DTC;若未获取到相应节点超时DTC,则以ΔT=50ms 增加Tdelay3 时间, 重复步骤,直至读取到DUT 相应节点超时DTC,记录该Tdelay3 时间;计算低电压诊断恢复时间tDiagStart* =Tdelay3 - tTimeout.min。

VIII.诊断高压恢复时间测试 

设置DUT 供电电压为12V并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;停止发送DUT 伙伴节点所有报文Tdelay1 时间(Tdelay1 初始值=0.8*10*Message Cycle ms);读取DUT 记录的DTC;未获取到相应超时DTC , 则以10*Message Cycle*5% ms 的步长增加Tdelay1 时间,直至读取到DUT 记录了相应节点超时DTC , 记录该Tdelay1 时间为最小超时时间tTimeout.min;恢复CANoe 模拟伙伴节点发送报文,等待5 s至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;以ΔV=0.5V 的电压步长逐渐升高供电电压;停止发送CANoe 模拟伙伴节点报文Tdelay2时间(Tdelay2=2*tTimeout.min);读取DUT 记录的DTC;直至读取不到DUT 记录的相关节点超时DTC,记录此时供电电压值Vstopdiaglow;恢复供电电压至Vnormal,等待5 s,调整供电电压至Vstopdiaglow-0.5V,重复上述步骤只是ΔV=0.1V直至读取不到DUT 记录的相关节点超时DTC,记录此时供电电压值VDLoff ,设置DUT 供电电压为VDLoff +0.2V 并上电,等待5 s 至总线通信稳定,清除DUT 记录的DTC;读取DUT 记录的DTC;将供电电压设置为Vnormal,同时停止发送所
有DUT 伙伴节点报文Tdelay3 时间(Tdelay3初始值=0.8* ( tDiagStart*.min +tTimeout.min));读取DUT 记录的DTC;若未获取到相应节点超时DTC,则以ΔT=50ms 增加Tdelay3 时间, 重复步骤,直至读取到DUT 相应节点超时DTC,记录该Tdelay3 时间;计算低电压诊断恢复时间tDiagStart* =Tdelay3 - tTimeout.min。

IX.欠过压故障码测试

设置DUT 供电电压为12V并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;以ΔV=0.5V 的电压步长逐渐降低供电电压;读取DUT 记录的DTC;若未能够获取节点欠电压DTC,则重复上述步骤,直至读取到DUT 记录的欠电压DTC,记录此时供电电压值Vbat_L;恢复供电电压至12V,等待5 s,清除DUT记录的DTC;调整供电电压至Vbat_L+0.5V,重复上述步骤( 注: 此时步骤中ΔV=0.1V);若未能够获取节点欠电压DTC,则重复上述步骤,直至读取到DUT 记录的节点欠电压DTC , 记录此时供电电压值Vbat_L_on。设置DUT 供电电压为Vbat_L_on -0.2V 并上电,等待5 s 至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;以ΔV=0.1V 的电压步长升高供电电压,等待
1s;读取DUT 记录的DTC;若获取到节点欠电压DTC 状态字节的bit0=1,则重复上述步骤,直至节点欠电压DTC 状态字节的bit0=0 且bit3=1,记录此时供电电压值Vbat_L_off

设置DUT 供电电压为12V并上电,同时使用CANoe 仿真伙伴节点发送报文,等待5 s
至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;以ΔV=0.5V 的电压步长逐渐升高供电电压;读取DUT 记录的DTC;若未能够获取节点欠电压DTC,则重复上述步骤,直至读取到DUT 记录的欠电压DTC,记录此时供电电压值Vbat_H;恢复供电电压至12V,等待5 s,清除DUT记录的DTC;调整供电电压至Vbat_H-0.5V,重复上述步骤( 注: 此时步骤中ΔV=0.1V);若未能够获取节点欠电压DTC,则重复上述步骤,直至读取到DUT 记录的节点欠电压DTC , 记录此时供电电压值Vbat_H_on。设置DUT 供电电压为Vbat_H_on+0.2V 并上电,等待5 s 至总线通信稳定;清除DUT 记录的DTC;读取DUT 记录的DTC;以ΔV=0.1V 的电压步长升高供电电压,等待
1s;读取DUT 记录的DTC;若获取到节点欠电压DTC 状态字节的bit0=1,则重复上述步骤,直至节点欠电压DTC 状态字节的bit0=0 且bit3=1,记录此时供电电压值Vbat_H_off

您可以使用CAPL语言来设置命令录制CAN报文。CAPL是一种专门用于Vector CANoe工具的脚本语言,用于定制CANoe的功能和行为。 要记录CAN报文,您可以按照以下步骤操作: 1. 打开CANoe,并创建一个新的配置文件。 2. 在配置文件中,创建一个新的CAPL模块。您可以在"模块"窗口中右键单击并选择"新建"。 3. 在CAPL模块中,编写脚本以设置命令录制。以下是一个示例脚本: ```c on start { // 打开CAN通道 openCanChannel(1, canBaudrate500K); // 启用命令录制 startCanRecording(1, "record.log", recordAll); // 设置CAN过滤器 setCanFilter(1, 0x123, 0x7FF, standard); } on stop { // 关闭CAN通道 closeCanChannel(1); // 停止命令录制 stopCanRecording(1); } ``` 在此示例中,我们使用`startCanRecording`函数启动了命令录制,并将记录的数据保存到名为"record.log"的文件中。`setCanFilter`函数用于设置CAN报文的过滤器,以仅记录特定报文。 4. 在CANoe工具栏上,点击"启动"按钮以运行CAPL脚本并开始录制CAN报文。 5. 在CANoe中模拟或发送相应的CAN报文,这些报文将被记录在"record.log"文件中。 6. 当您想停止录制时,点击CANoe工具栏上的"停止"按钮。 请注意,CAPL脚本的具体编写可能会因您的需求而有所不同。您可以根据自己的需求调整脚本中的参数和函数调用。 希望这可以帮助您设置CAN报文的命令录制。如果您有任何进一步的问题,请随时提问!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值