具有XCP支持的ECU测试

黑盒测试通常在ECU开发的框架中进行,或者在分析错误的ECU行为时进行。这涉及到将ECU的输入和输出,连接到测试系统以进行刺激和测量。尽管该方法允许测试工程师进行广泛的分析,但某些测试需要直接查看到ECU内部。这是获得有意义的测试结果或减少测试工作的唯一方法。

 

在大多数情况下,实际上可以通过查看ECU的输入和输出,在功能上进行组件的测试(图1)。然而,如果在ECU中使用了状态机,这将变得很困难。状态机的当前状态只能通过它们对ECU的影响间接地获得。如果传感器的值没有在总线系统上传输,那么测试工程师也很难将错误定位到具体的软件接口。从ECU的外部来看,不清楚传感器的值在哪里被错误地处理。

 

图1:ECU测试的常规测试系统,通过诊断功能或由开发人员创建的特殊消息访问ECU的内部值

 

根据ECU的开发阶段,使用了不同的方法来访问内部ECU数据。例如,在早期阶段,内部ECU值通常在所谓的“保留的开发消息”中输出(图1)。对于供应商的功能开发人员来说,这是一种有效且快速的方法,可以精确地针对特定的目标。但是,这些补充消息必须在后续的开发阶段中删除,特别是在系统集成和批量生产阶段。它们会导致额外的总线负载,在最坏的情况下,它们甚至可能与其他系统组件的消息发生冲突。

 

另一种访问内部值的方法是通过诊断(图1)。有一些信息可以直接通过诊断获得,例如,诊断提供了对存储的失效的访问。还有特殊的诊断服务,可以从内存中读取所需的值。这里的优点是使用了标准化的访问方法。唯一的先决条件是完全集成诊断驱动程序;这通常是在现今的ECU中提供的。这种方法的缺点是,许多诊断协议信息与实际测量值一起传输,这增加了总线系统接口的负载。

 

针对测试访问的XCP

 

如果需要保持低的总线负载,另一种选择是使用校准协议。最初,这种协议是为ECU校准器开发的。他们让校准器修改ECU中的参数或特征映射来优化算法。通过ASAM标准化的XCP协议,用户可以根据需要直接从ECU的内存读取特定变量值。该协议还可以通过所谓的数据采集(DAQ:Data  Acquisition)列表,向ECU的应用程序同步提供已定义的测量值的集合。XCP协议被定义以便在总线介质上有效地提供数据。例如,在配置后,DAQ列表可以通过测试系统中的单个标识符来传输。此外,DAQ列表的测量时间可以优化到内部ECU过程。自动化测试系统对系统也有类似的要求。使用XCP协议可以在不需要过度加载ECU或使用总线系统的同时,集成测试序列中的内部值。

 

像XCP这样的标准被广泛使用的另一个原因是,它很容易在工具链中进行配置。所有需要的信息都已经存储在A2L文件中了,比如ECU内部程序的内存位置,包括它们的名称和通信参数。根据开发环境,A2L文件可以自动生成。作为第二步,在编译之后,内存地址从链接映射文件传递到A2L文件。在测试工具中,用户只需要为测试中使用的每个ECU配置一次这个文件。在第二步中,用户从A2L文件中,选择测试序列所需的符号。

 

CANoe的XCP选项

 

XCP选项为Vector的CANoe测试工具,提供了可以方便读取或写入内部ECU值。除了支持XCP in CAN/CAN FD、XCP on FlexRay、XCP on Ethernet,它还支持之前的协议CCP。一旦配置了A2L文件并选择了必要的值,CANoe就可以自动获得它们并将它们映射为系统变量。然后用户可以在任何测试任务中使用这些变量。除了提供对ECU输入和输出的访问之外,它们还提供了对ECU的内存的深入了解(图2)。

 

图2:选项XCP被用来在CANoe测试系统中直接访问ECU的内部值。

 

在简单的分析任务中,用户可以在跟踪或图形窗口中显示数据,并使用面板来评估结果。对于更复杂的测试序列,工具vTESTstudio提供了大量的选项来创建和执行自动评估的CANoe测试用例。例如,这允许检查网络管理的状态机,以获得正确的功能。必要的刺激是在CANoe的模拟中进行的,而ECU的响应在总线上是不可测量的;它通过XCP直接在ECU上进行测量。

 

执行测试用例所需要的工作量也会显著减少,例如需要传感器的测试用例。该测试系统将传感器值,通过XCP直接写入ECU中的内存单元。这就消除了在ECU输入端连接和控制原始传感器的需要——这是一项艰巨的任务。ECU被告知传感器和相关硬件驱动程序正确地测量了这些值。同样的方法也可以用于其他方向。这里假设输出阶段和执行器已经被测试和验收。在这种情况下,测试系统会通过XCP,测量应用程序传递到驱动程序阶段的值。

 

访问大量数据

 

如果在测试用例中,测试系统和ECU之间需要交换大量数据,或者如果需要监视特别快的过程,那么在CAN或FlexRay总线上的XCP连接将不再有效。在这种情况下,建议直接访问ECU的调试接口。例如,这可以通过NEXUS或JTAG接口实现。这些协议直接访问ECU内存——部分是使用微控制器的调试跟踪。采用这种方法,用户可以在不加载总线或ECU的情况下快速读出系统中的大量数据。

 

例如, Vector VX硬件可以直接访问ECU的NEXUS或JTAG接口(图2)。由于该硬件通过XCP-on-Ethernet与测试系统通信,因此,与集成在 CANoe 与使用 XCP on CAN相比 一样容易。将VX硬件与CANoe测试系统相结合,进一步提高了测试系统的性能,对通信介质没有任何负面影响。

 

作者

 

Oliver Falkner

在斯图加特大学学习电气工程。毕业后,他于1999年在斯图加特加入了Vector Informatik GmbH,他目前是网络和分布式系统产品线的产品管理经理。

 

转载:

https://mp.weixin.qq.com/s?__biz=MzIxMTcxNjcyOA==&mid=2247483789&idx=1&sn=ace2b2b4529efa6bffc0099a707d5fd0&chksm=97505e9aa027d78c889414af526586ab2c5dab5be12b9b72aef07624eaf339b5555682009c92&token=839115453&lang=zh_CN#rd

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值