随着软件的复杂度提高,ARM内核MCU的测量标定正从低速场景过渡到高速场景,ECU内部测量信号的数量和频率越来越大。当数据吞吐量超过CAN总线带宽时,需要新的高速测量接口。针对以上需求,Vector为用户提供系统的可扩展的高速测量方案。
02
系统概述
M核->通过SWD接口实现高速测量与标定
图:VX1000系统连接
VX1543BSerialPOD是一个小型的高性能电路板,直接连接到ECU中的MCU调试接口。由于尺寸小且坚固耐用,可以用于紧凑且要求苛刻的安装环境。用户可以直接将POD封装在ECU壳体内部,也可以单独封装POD并通过螺纹连接在ECU壳体外部。
POD的详细参数如下:
表:VX1543B技术参数
A核->基于XCPonEthernet实现高速测量
与标定
集成A核的MCU通常会运行复杂的操作系统,应用数据吞吐量更大,传统的调试接口不再适用。不过这类MCU的资源丰富,可以在ECU软件里直接集成XCPonEthernet。以S32G为例,可以分别通过XCPonEthernet和POD对异构多核系统进行测量。
图:S32G的高速测量方案
03
针对SWD接口的VX1000集成详解
集成配置
1)首先将VX1000驱动代码集成到ECU应用程序中。集成方法非常简便,Vector为用户提供相应的源代码和集成手册。VX1000驱动代码通常只在开发阶段使用,到量产阶段会被移除。用户可以通过配置文件VX1000_cfg.h对VX1000应用驱动程序的功能和行为进行配置。该文件以宏定义形式配置所有选项,默认情况下大部分都被注释掉,用户只需激活适当的宏定义,配置文件本身也带有大量功能描述。
图:VX1000集成配置流程
2)将包括VX1000驱动代码在内的软件刷写到ECU后,用户可以将POD连接到ECU的SWD调试接口。SWD使用DAP(DebugAccessPort,调试访问端口)总线访问数据。在DAP总线上有一个主设备(DP调试端口,DebugPort)和多个从设备(AP访问端口,AccessPort),实际通讯仅使用两根信号线:
SWDCLK:主机发送的时钟信号。由于处理器时钟和SWD时钟之间没有关系,因此频率选择取决于主机接口。根据实际情况,最大调试时钟频率可以在20MHz~80MHz之间。
SWDIO:携带与DP调试端口交互数据的双向信号。数据由主机在SWDCLK信号的上升沿期间设置,并由DP调试端口在SWDCLK信号的下降沿期间采样。
有些MCU的调试接口是串行/JTAG调试端口(SWJ-DP),可以使用JTAG或SWD来访问DAP总线,重用TMS和TCKJTAG信号分别传输SWDIO和SWDCLK信号。只要发送特定序列数据就能从JTAG接口切换到SWD接口。
在配置工具VXconfig中,可以配置POD的工作电压和频率。SWD可以用来上传和下载数据,对应XCP中的测量和标定功能。
图:POD的配置界面
VXconfig还需要配置基础模块的参数。通常基础模块通过读取gVX1000结构体实现与ECU的握手通讯,对齐ECU的代码集成状态。在VX1000驱动程序会定义这个结构体,VX1000必须知道ECU应用程序中该结构的地址。用户可以在生成的应用程序链接器映射文件中找到该地址。
图:基础模块(BaseModule)的配置界面
4)CANape中可以根据需要具体配置测量和标定窗口。注意:测量总带宽是有限制的,详细参考3.2节。
测量性能
VX1000通过SWD接口进行DAQ测量的方法称为OLDA(OnlineDataAcquisition)。DAQ测量开始前,VX1000通过XCP从CANape接收DAQ配置,包括通过哪些事件(DAQEvent)测量哪些信号(DAQTable),测量开始后MCU会按照相应的配置周期性或者按事件触发上传数据。
在测量配置初始化阶段,DAQ信息是由VX1000以传输表(DAQTable)的形式写入MCU的数据索引表中(gVX1000结构体的一部分)。
当测量事件触发时,ARM核使用VX1000驱动程序将测量数据从RAM中的实际存储位置复制到VX1000驱动程序设置的测量缓冲区(OLDAMemory)。此后,VX1000以内存直接访问的方式(DMA)从缓冲区(OLDAMemory)中检索数据。
1)测量性能的约束部分来自MCU的ARM核性能和RAM内存资源。为了满足更高性能的测量,通常需要预留更多的测量缓冲区(OLDAMemory)和CPU负载。CPU负载的消耗是由数据拷贝产生的,通常每测量1MB/s的数据需要消耗大约3%的CPU负载。相对于在MCU中直接集成XCPonEth的方法效率更高。
2)在MCU资源充裕的情况下,测量总带宽取决于SWD的实际通讯频率。根据芯片类型和电磁兼容环境条件可以配置在20MHz~80MHz之间。以40MHz为例,有效测量带宽可以达到约2MB/s,例如1ms周期可以测量总共2000个1Byte的信号。
图:OLDA测量方式
04
结论
VX1000高速测量标定解决方案满足了基于ARM内核的车规级MCU对于测量数据不断增长的需求,提高功能开发的效率。开发人员既能够在台架测试中访问ECU内部数据,也可车载使用。