专栏名称: 汽车MCU软件设计
汽车MCU软件工程师,分享汽车功能安全、网络安全和AutoSAR
目录
相关文章推荐
新疆949交通广播  ·  刚刚,利好传来!事关AI→ ·  昨天  
新疆949交通广播  ·  或致大脑变迟钝!这个小习惯的伤害不可忽视→ ·  2 天前  
新疆949交通广播  ·  新疆这座机场,有新进展! ·  2 天前  
新疆949交通广播  ·  “比价神器”来了! ·  2 天前  
新疆949交通广播  ·  速看!新疆放宽招考标准 ·  2 天前  
51好读  ›  专栏  ›  汽车MCU软件设计

汽车标定技术--英飞凌TC3xx的OLDA怎么玩?

汽车MCU软件设计  · 公众号  ·  · 2024-05-24 19:07

正文


目录

1.英飞凌提出的OLDA是什么?

2.Vector提出的OLDA概念

2.1 RAM Copy

2.2 Data Trace

3.小结



1.英飞凌提出的OLDA是什么?

在研究TC3xx的内部总线互联时,偶然发现了OLDA(OnLine Data Acquisition),看名字就容易猜到,这个大概率是和标定测量系统有关。进一步了解OLDA的描述,更加好奇了:
The OLDA is an address space where writes can complete without error but no memory is addressed.
This allows production code to be written  which writes data to memory, where the memory is only present in the Emulation Device。
这样看来,OLDA这个Feature是需要搭配ED的MCU产品才能使用。
那么它到底是个什么东西呢?从定义看,OLDA是SRI Slave接口的一个功能,从具体表现形式看,它是一段地址空间,划分在Segment 8和Segment A。
当我们在使用带Extension Memory的产品时(例如TC37xEXT、TC39x),可以用overlay功能将OLDA这段区域重映射到EMEM这块上,这和咱们把存放标定数据的PFlash overlay到DSPR或者LMU上看起来就非常相似了。
进一步我们来看不同情况下访问OLDA,会出现什么情况:
  • 对PD产品,对OLDA进行写操作,此时SRI Slave接口会终止该操作,但不会报错;
  • OLDA没有overlay到memory上,对OLDA写操作,如果寄存器没有配置OLDA使能,则会产生bus error trap;
值得注意的是,如果OLDA没有Overlay到真实物理memory上,读访问是会产生Trap的。
所以,OLDA这个地址空间相当于一座桥梁,连接外部数据采集系统和芯片内部memory,我们对于OLDA的任何操作都是希望通过这座桥梁去到想要的memory。
OLDA这块地址需要Overlay到真实物理memory,而我们知道Overlay是Tricore自身行为,因此OLDA的使用是需要经过CPU处理,那它到底有什么用呢?
翻看Overlay章节描述,OLDA是可以用于标定,如下:
这就非常疑惑了,正常Overlay使能情况下Tricore访问OLDA地址,实际访问到RAM,逻辑没有问题,但是什么情况下什么功能会用到OLDA这些虚拟地址呢?
一般来说标定量就存在PFlash,直接可以让PF重映射到内部RAM,根本不需要用到虚拟地址。
带着这些疑问,寻找多方支持未果,后来翻到VECTOR提出的OLDA概念,差点搞混淆,因此继续总结,方便后续回溯。

2.Vector提出的OLDA概念

熟悉标定的朋友都知道,物理介质上用得 比较多的是CAN总线,测量周期10ms、5ms。 但当我们要做电机等高精度标定测量时,例如采集PWM信号(频率为10-20kHz,极限可能达到100 kHz),CAN速率限制了PWM的高精度数据采集,注意这里是数据采集(测量)。
那纵观MCU对外的硬件接口,能够提供高速率的自然就是Debug接口之类的,之前我们写过ETAS的ETK使用的Aurora和DAP接口来实现高速测量,但是苦于没有公开资料,我转头继续调研了Vector对于这方面的设计,没想到还发现了新的东西。
Vector VX1000家族产品主要用于高性能测量和标定,它长这样:
它如何与ECU、标定系统直接进行连接呢?如下图;
这个思路与刚才咱们提到的方案如出一辙,如果CAN\ETH总线限制了我们访问MCU内部数据的效率,就从Debug\Trace接口这里想办法,VX1000系统方案就是具体实现,细节如下:
ECU通过Debug\Trace接口与POD(基于MCU定制)连接,PDO与VX1000进行连接,最后VX1000与标定上位机连接(如CANape), 这样采样周期可以做到us级别。
据Vector统计,针对不同MCU产品的Debug接口,DAQ速率和周期最高已经来到10us级别,如下图所示:
这与我们要聊的OLDA有什么联系呢?根据VX1000集成手册描述,基于POD的测量方式从实现方法上主要分为了RAM Copy method和Data Trace Method。

2.1 RAM Copy

这种测量方式需要软件进行周期参与,因此Vector提供了基于VX1000驱动的集成方案,如下图:
所谓Ram Copy,就是要求CPU在指定周期内将测量数据从内部RAM里Copy至VX1000驱动设置的buffer中,VX1000通过Debug接口直接去Buffer中获取数据,如下图所示:
Vector把这种测量方式叫做OLDA: Online Data  Acquisition。这种方式需要消耗CPU的资源,每1MB/S测量量的搬运消耗3%的CPU负载。

2.2 Data Trace

与Vector提出的OLDA(RAM Copy)概念不同,Data Trace利用的是Trace插件的RAM监视功能,一旦所监视的ram发生了变动,Trace自动将数据传给POD,这样基本就不用消耗CPU资源,如下图:

3.小结

Vector提出OLDA与英飞凌芯片中的OLDA差别很大,并且由于名字相同,很容易让人误解。
但是英飞凌TC3xx中的OLDA该如何用呢?尝试做个猜想:
OLDA是虚拟地址,势必需要Overlay到实际物理memory,例如EMEM;而对于Tricore来说,Overlay属于CPU行为,所以OLDA就需要CPU来进行读写操作,针对标定量和测量量,如果在上位机做了离线标定,与下位机连接后直接将离线标定的数据Hex Download到EMEM中,CPU用OLDA访问到EMEM的数据?但还不如直接访问EMEM地址空间。
所以,调研TC3xx OLDA未果,期待用过这段地址的朋友不吝赐教!


往期回顾:

1.汽车标定精选

汽车标定技术--标定概念详解
汽车标定技术--Bypass的前世今生
万字长文:汽车标定技术--XCP概述

2.AUTOSAR 精选

AUTOSAR CryptoStack--CSM Job夹带了哪些私货
AUTOSAR 诊断栈分析(一)






请到「今天看啥」查看全文