带有ARM内核的车规级MCU的高速测量与标定的解决方案

2023-08-02  

在“新三化”的背景下,车用MCU芯片正在快速升级换代,供应链本地化也催生搭配ARM内核的车规级MCU不断落地。相关的MCU产品日益丰富,逐渐覆盖雨刷、车窗、车灯等车身控制模块,以及汽车智能化所需的智能座舱、ADAS控制器等。


01


趋势


随着软件的复杂度提高,ARM内核MCU的测量标定正从低速场景过渡到高速场景,ECU内部测量信号的数量和频率越来越大。当数据吞吐量超过CAN总线带宽时,需要新的高速测量接口。针对以上需求,Vector为用户提供系统的可扩展的高速测量方案。


02


系统概述


目前主流的ARM内核的车规级MCU是使用Cortex-M系列处理器,用于安全相关的控制功能。M核的最高时钟频率通常不到400MHz,功耗相对较低。拥有复杂功能的网关控制器或者域控制器上的多核异构MCU还可能集成Cortex-A系列处理器,以满足复杂的操作系统和高性能计算的需求。不同ARM处理器及其组合可以按照处理器核心的类型适配具体的测量方案。


M核->通过SWD接口实现高速测量与标定


具有M核的MCU测量标定和传统MCU类似,通常没有以太网接口或者没有足够的资源去集成以太网驱动。但是在开发阶段,MCU的调试资源是开放的,利用SWD(Serial Wire Debug)调试协议可以实现高速数据传输。转接板VX1543B POD(Plug-On Device)兼容SWD调试接口,而且体积紧凑可以轻松集成到ECU上。对于测量标定工具CANape来说,POD使用方法和传统XCP测量没有差别,因为连接POD和标定工具之间的VX1000基础模块会将通过SWD传输的数据打包成标准的XCPonEthernet报文。VX1000详细介绍参考https://www.vector.com/vx1000。

8df728c4-3117-11ee-9e74-dac502259ad0.png

图:VX1000系统连接


VX1543B Serial POD是一个小型的高性能电路板,直接连接到ECU中的MCU调试接口。由于尺寸小且坚固耐用,可以用于紧凑且要求苛刻的安装环境。用户可以直接将POD封装在ECU壳体内部,也可以单独封装POD并通过螺纹连接在ECU壳体外部。


POD的详细参数如下:

尺寸(长/宽/高) 23 x 24 x 7 mm(不包含壳体封装)
53 x 27.5 x 16 mm(外壳无安装螺纹)
重量 3g(不包含线束和壳体封装)
供电 通过VX1000基础模块
功耗 0.8W在最高工作温度下
工作温度 -40°C ~ +115°C 

表:VX1543B技术参数


A核->基于XCPonEthernet实现高速测量


与标定


集成A核的MCU通常会运行复杂的操作系统,应用数据吞吐量更大,传统的调试接口不再适用。不过这类MCU的资源丰富,可以在ECU软件里直接集成XCPonEthernet。以S32G为例,可以分别通过XCPonEthernet和POD对异构多核系统进行测量。

8e945856-3117-11ee-9e74-dac502259ad0.png

图:S32G的高速测量方案


03


针对SWD接口的VX1000集成详解

 

集成配置 


1)  首先将VX1000驱动代码集成到ECU应用程序中。集成方法非常简便,Vector为用户提供相应的源代码和集成手册。VX1000驱动代码通常只在开发阶段使用,到量产阶段会被移除。用户可以通过配置文件VX1000_cfg.h对VX1000应用驱动程序的功能和行为进行配置。该文件以宏定义形式配置所有选项,默认情况下大部分都被注释掉,用户只需激活适当的宏定义,配置文件本身也带有大量功能描述。

8eee5b62-3117-11ee-9e74-dac502259ad0.png

图:VX1000集成配置流程


2)  将包括VX1000驱动代码在内的软件刷写到ECU后,用户可以将POD连接到ECU的SWD调试接口。SWD使用DAP(Debug Access Port,调试访问端口)总线访问数据。在DAP总线上有一个主设备(DP调试端口,Debug Port)和多个从设备(AP访问端口,Access Port),实际通讯仅使用两根信号线:


SWDCLK:主机发送的时钟信号。由于处理器时钟和SWD时钟之间没有关系,因此频率选择取决于主机接口。根据实际情况,最大调试时钟频率可以在20MHz~80MHz之间。


SWDIO:携带与DP调试端口交互数据的双向信号。数据由主机在SWDCLK信号的上升沿期间设置,并由DP调试端口在SWDCLK信号的下降沿期间采样。


有些MCU的调试接口是串行/JTAG调试端口(SWJ-DP),可以使用JTAG或SWD来访问DAP总线,重用TMS和TCK JTAG信号分别传输SWDIO和SWDCLK信号。只要发送特定序列数据就能从JTAG接口切换到SWD接口。


在配置工具VXconfig中,可以配置POD的工作电压和频率。SWD可以用来上传和下载数据,对应XCP中的测量和标定功能。

8f50fe16-3117-11ee-9e74-dac502259ad0.png

图:POD的配置界面


VXconfig还需要配置基础模块的参数。通常基础模块通过读取gVX1000结构体实现与ECU的握手通讯,对齐ECU的代码集成状态。在VX1000驱动程序会定义这个结构体,VX1000必须知道ECU应用程序中该结构的地址。用户可以在生成的应用程序链接器映射文件中找到该地址。

8f9c4cf4-3117-11ee-9e74-dac502259ad0.png

图:基础模块(Base Module)的配置界面


3)  将正确配置写入到VX1000设备后,测量标定工作遵循CANape的标准操作,基本输入是标定数据库A2L文件。A2L文件中包含和底层驱动相关的接口信息,例如IP地址和DAQ测量的通道编号等。用户可以通过ASAP2Studio手动编辑A2L文件,或者利用ASAP2 Toolset编写脚本来自动创建A2L。


4) CANape中可以根据需要具体配置测量和标定窗口。注意:测量总带宽是有限制的,详细参考3.2节。


测量性能


VX1000通过SWD接口进行DAQ测量的方法称为OLDA(Online Data Acquisition)。DAQ测量开始前,VX1000通过XCP从CANape接收DAQ配置,包括通过哪些事件(DAQ Event)测量哪些信号(DAQ Table),测量开始后MCU会按照相应的配置周期性或者按事件触发上传数据。


在测量配置初始化阶段,DAQ信息是由VX1000以传输表(DAQ Table)的形式写入MCU的数据索引表中(gVX1000结构体的一部分)。


当测量事件触发时,ARM核使用VX1000驱动程序将测量数据从RAM中的实际存储位置复制到VX1000驱动程序设置的测量缓冲区(OLDA Memory)。此后,VX1000以内存直接访问的方式(DMA)从缓冲区(OLDA Memory)中检索数据。


1)测量性能的约束部分来自MCU的ARM核性能和RAM内存资源。为了满足更高性能的测量,通常需要预留更多的测量缓冲区(OLDA Memory)和CPU负载。CPU负载的消耗是由数据拷贝产生的,通常每测量1MB/s的数据需要消耗大约3%的CPU负载。相对于在MCU中直接集成XCPonEth的方法效率更高。


2)在MCU资源充裕的情况下,测量总带宽取决于SWD的实际通讯频率。根据芯片类型和电磁兼容环境条件可以配置在20MHz~80MHz之间。以40MHz为例,有效测量带宽可以达到约2MB/s,例如1ms周期可以测量总共2000个1Byte的信号。

8fb57fda-3117-11ee-9e74-dac502259ad0.png

图:OLDA测量方式


04


结论


VX1000高速测量标定解决方案满足了基于ARM内核的车规级MCU对于测量数据不断增长的需求,提高功能开发的效率。开发人员既能够在台架测试中访问ECU内部数据,也可车载使用。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。