目录
2.1 基于XCP的Bypassing
1.Bypass的诞生
这是远古时期(2000年左右?我猜)ETAS针对发动机控制参数标定设计的一种并行数据访问专利技术:ETK(德语: Emulatortastkopf)。
利用MCU内部数据地址总线实现高速并行访问,如下图:
ECU从WP或者RP获取数据,将数据写入DPRAM实现高速测量。
本来上面两种方式在不同的场景下均有用武之地,但是随着技术的发展,应用软件工程师提出了新的想法——想在现有ECU硬件上不通过重刷代码的方式验证优化后的算法,以加速开发,同时也避免了硬件接线、刷机上的磕磕绊绊。
从理论分析,其实这种是完全可以做到的,例如最初ECU Flash存储的算法为y=ax+b,但第二天我觉得这个算法不优雅,模型重新修改成了y=ax²+bx+c,那么只需要这个输入x能够传给模型,y不就出来了么?我还不用重新刷ECU,方便快捷。
那么从基础软件角度如何来满足模型工程师的要求呢?很明显,如果有ETK技术支持,只要ECU把输入x以测量量(模型视角)写入到ETK RAM,模型开发工具(ASCET)去ETK拿数据计算并回写y,便可以验证模型算法的正确性,如下图:
这里就出现了Bypass的概念–即ECU中某些值不是通过ECU内部Flash代码计算得到,而是依赖外部传入。
2.Bypass的发扬光大
但是问题来,要用bypass就要用ETK,而ETK据说是ETAS的专利技术。这条路没法了,那联军们肯定不同意了,于是想了个法子,既然并行可以,串行标定也可以实现呢?不管什么方式,只要把输入给到上位机,输出给到ECU不就成啦。
2.1 基于XCP的Bypassing
于是CCP升级版–XCP提出了Bypassing的概念(不是bypass,注意用词,虽然我觉二者差不多)。如下:
理论上,ECU通过DAQ的方式把输入传个Bypassing工具进行计算,然后该工具通过STIM的方式传回给ECU,这样就和ETK Bypass一样一样的了。
不过考虑到总线传输的延时和一致性,XCP标准里还特意提出了 delayed bypassing,如下:
2.2 基于Debug的Bypass
理论上只要是可以向ECU写数据,ECU可以往外发数据的接口,应该都可以实现Bypass技术。
当ETAS遇到某些霸道芯片厂不肯暴露数据地址总线时,他们又想到了使用调试接口的Debug接口来实现bypassing。
我们看瑞萨RH850 P1x系列的ED设备就提供了Bypass接口:
我们从ETAS的针对PD和ED产品的串行ETK也可以看出端倪:
针对PD产品,使用JTAG、DAP等速率稍慢的接口;针对ED产品,Aurora肯定是必不可少的。这样bypass在不同形态的产品上均可以实现。
2.3 小结
基于上述描述,目前已知的bypass的实现途径主要有三种
3.Bypass的实际应用
那么Bypass到底会用在哪些地方呢?个人理解,只要是想在已验证过的ECU硬件上新增优化应用层控制策略的地方 ,都可以使用Bypass。
Simulink使用XCP Master Block结合通信硬件即可实现bypassing:
Vector的CANape结合VN8900实现实时bypassing解决方案:
往期回顾:
1.汽车标定精选
2.AUTOSAR精选
3.汽车网络安全精选
4.汽车功能安全精选
5.汽车虚拟化精选
汽车ECU虚拟化技术初探(一)
汽车ECU虚拟化技术(二)–U2A虚拟化功能
6.杂七杂八
我为什么开始写技术博客
Flash模拟EEPROM原理浅析
征途漫漫:汽车MCU的国产替代往事
车规MCU应用场景及国产替代进展
原文始发于微信公众号(汽车MCU软件设计):汽车标定技术–Bypass的前世今生