基于Overlay动态分配的ECU在线标定实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第38卷第5期 计算机应用与软件
Vol 38No.52021年5月
ComputerApplicationsandSoftware
May2021
基于Overlay动态分配的ECU在线标定实现
王 民 刘龙龙
(上海汽车集团股份有限公司技术中心 上海201804)
收稿日期:2019-09-09。

王民,工程师,主研领域:AUTOSAR软件开发,功能安全,信息安全。

刘龙龙,工程师。

摘 要 基于V模型的ECU开发模式中,软件测试和标定是必不可少的环节。

工程师在测试和标定过程中需要更改大量的标定量以优化系统功能。

随着功能需求的日益增长,软件功能越来越丰富,芯片的RAM资源就越凸显出稀缺。

在分析了标定原理的基础上,利用AURIX芯片特有的Overlay机制,实现基于Overlay动态分配的以小RAM空间标定大FLASH的软件在线标定功能。

验证测试表明,利用该标定方式能满足基本的标定需求,并且节省开发阶段控制器的成本。

关键词 Overlay 动态分配 在线标定
中图分类号 TP391 文献标志码 A DOI:10.3969/j.issn.1000 386x.2021.05.040
REALIZATIONOFECUONLINECALIBRATIONBASEDON
OVERLAYDYNAMICALLOCATION
WangMin LiuLonglong
(TechnologyCenterofSAICMOTOR,Shanghai201804,China)
Abstract InthedevelopmentmodeofECUbasedonVmodel,softwaretestandcalibrationaretheessentialsteps.Theengineerneedstocalibratetheparameterstooptimizethefunctionalrequirementduringthetestprocess.Withtheincreasingdemandforthesystemfunction,thesoftwarefunctionismoreandmoreabundant,andtheRAMresourceisobviouslyscarce.Basedontheanalysisofthecalibrationprinciple,usingOverlaymechanismofAURIXchip,thenewlycalibrationmethodbasedthedynamicallocationofRAMwasaccomplishedwhentheRAMresourcewaslimited.TheexperimentalresultsshowthatthecalibrationmethodbasedonthedynamicallocationofOverlaycannotonlymeetthedemandofonlinecalibration,butalsodecreasethecostofECUduringthedevelopingphase.Keywords Overlay Dynamicallocation Onlinecalibration
0 引 言
在整车V模型的开发流程中,软件测试和标定是非常重要的一环,软件的功能是否满足需求需要测试和标定进行验证。

当前,软件标定功能是基于XCP协议,利用不同的标定测量工具(如INCA、CANape等)开展的,通过将不同的参数进行标定验证,得出软件最优化的功能,最终将标定好的参数固化到FLASH中,完成整个标定的过程。

传统的标定方式是这样实现的:在软件初始化过程中,定义在FLASH中的参数(标定量)会被全部拷贝到RAM中进行重映射,在请求更改标定量时,通过更改RAM中的数据更改FLASH中
的数据,进而影响参数的变化。

此过程中,要将
FLASH中的所有标定量拷贝到RAM中,需要有足够大的R
AM空间,工程上通常这需要定制有超大RAM的开发芯片。

当RAM空间小于所要映射的FLASH空间时,由于部分标定量不能被拷贝到RAM中实现映
射,进而导致此部分标定量不能被标定[1]。

由于有超大RAM的芯片只在开发阶段使用,其使用量不多,价格通常是量产芯片的一百倍左右。

同时能做在线标定的这种E
CU控制器也非常昂贵,是常规量产控制器的几十倍,所以如果在量产小RAM芯片上实现通常的标定功能就能显而易见地节省一大笔开销。

因此,针对RAM空间小于标定FLASH空间的情况下,如何利用有限的RAM资源实现在线标定功能成
第5期 王民,等:基于Overlay动态分配的ECU在线标定实现
247
 为本文的研究目的。

1 在线标定实现原理
1.1 Overlay机制功能描述
本文基于英飞凌AURIX芯片的Overlay模块实现
ECU在线标定功能开发[2]
,其他芯片也具有类似的模块来实现此功能[
3-4]。

英飞凌AURIX芯片提供了Da taOverlay功能以实现FLASH和RAM之间的映射,其目的是实现更改R
AM中的内容达到最终更改FLASH中的内容。

在程序设计的时候,所有的标定量都会被定义在FLASH中,实现标定FLASH和RAM之间的映射,使得更改RAM中的数据也能更改映射之后的FLASH中的数据,以达到在线标定的目的,DataOver lay功能示意如图1
所示。

图1 DataOverlay功能示意
针对DataOverlay功能的实现,AURIX芯片定义了32个Overlay块,每个Overlay块可通过如下三个参数实现目标地址(FLASH)和映射地址(RAM)之间的映射。

Overlay块目标地址:被映射的FLASH起始地址。

Overlay块大小:被映射的FLASH的大小,大小范围是32~128KB。

Overlay块映射地址:映射到的RAM起始地址。

每个Overlay块有3个寄存器来实现上述三个参数的配置:
Overlay块目标地址通过寄存器OTAR配置。

Overlay块大小通过寄存器OMASK配置。

Overlay块映射地址通过寄存器RABR来配置,其中:RABR.OMEM用于选择重映射的RAM类型,共有LMU、DSPR、EMEM和EBU四种RAM可用;RABR.OBASE用于选择映射的RAM起始地址;RABR.OVEN用于使能或不使能目标地址和映射地址之间的映射。

DataOverlay
的实现原理如图2
所示。

图2 DataOverlay实现原理
1.2 ECU在线标定过程
由于XCP标准中已经详细地描述了在线标定的
流程[5]
,在此只简单陈述标定的流程。

当工程师利用
标定工具(Master端,如INCA)与ECU连接的时候,主
要包含了如表1所示的指令[
6-8]。

表1 连接ECU时的XCP指令集指令作用
CONNECTMaster发送连接指令,请求与ECU建立连接
SET_MTA设置要计算checksum的地址SET_CAL_PAGEECUtoRAM
Master发送指令,请求切换到ECU的RAMPAGE
CALC_CHECKSUM
Master发送连接指令,请求计算ECU端FLASH和RAM空间的
checksum数值,并与Master端FLASH和RAM空间的checksum数值比较
SET_CAL_PAGEECUtoFLASH
Master发送指令,请求切换到ECU的FLASHPAGE
当Master端RAM空间的checksum数值与ECU端FLASH和RAM空间的checksum数值不一致时,Master会提示是否将Master端的数据下载到ECURAM端,
如果选择下载,则会执行如表2所示的指令。

表2 ECUDownload数据时的XCP指令集指令作用
SET_MTA设置要Download数据的地址DOWNLOAD将Master端的数据下载到ECU的
RAM端SET_CAL_PAGE
ECUtoRAM
Master发送指令,请求切换到ECU的RAMPAGE
在下载完数据之后,ECU就被切换到RAMPAGE区域,此时定义在FLASH中的标定量就可以被修改。

当用户通过SET_CAL_PAGEECUtoFLASH的时候,
248
计算机应用与软件
2021年
ECU就被切换到FLASHPAGE区域,此时定义在FLASH区的标定量就不可以被修改,软件以定义在FLASH中的标定量原始数值运行。

在整个标定过程中,最重要的就是DOWNLOAD和SET_CAL_PAGE指令,本文主要进行的工作就是在ECU接收到Master请求的D
OWNLOAD命令时,利用Overlay机制如何动态分配F
LASH空间与RAM空间的映射,并将所请求更改的数据拷贝到已实现映射的RAM中去。

2 软件设计
2.1 内存划分
由于AURIX芯片支持通过RABR寄存器的OVEN位控制每个Overlay块单独的使能和非使能,这就为动态分配O
verlay块以实现FLASH和RAM之间的映射提供了可能。

与传统的标定方式不同的是,基于AURIX的Overlay机制的标定方式不需要FLASH全部与RAM之间进行映射,而只需要对于被标定的变量所在的F
LASH进行映射即可,这就需要对FLASH和RAM进行空间上的划分。

由于AURIX芯片只提供了32个Overlay块可供映射,且可用标定RAM资源只有32KB,为了最大化地利用RAM资源,在划分的时候以1KB为基本单位。

例如,标定FLASH空间大小为512KB,用于标定的RAM资源为32KB,则需要将FLASH空间划分为512块,每块大小为1KB,编号为0~511,即FLS0-FLS511,每块FLASH的起始地址也固定;RAM空间也划分为32块,每块大小也是1KB,编号为0~31,即RAM0-RAM31,每块RAM的起始地址也因此固定。

这样就能够建立起FLASH块和RAM块之间的映射网,即FLS0-FLS511可与RAM0-RAM31实现映射,FLS0可以映射到RAM0,FLSn(n不等于0,且小于512)也可以映射到RAM0,但同一时刻,FLS0和FLSn不能同时映射到同一个RAM块。

由于受制于RAM空间大小,最大只能映射32KB的RAM空间,即FLASH和RAM之间的映射比例为16∶1。

FLASH块和R
AM块之间的映射关系如图3
所示。

图3 Overlay机制中FLASH和RAM之间的映射关系
2.2 Overlay动态映射实现
Master发送DOWNLOAD指令到ECU,该指令包含了被标定量的地址、被标定量长度、被标定量的新数值信息。

ECU解析到该指令时,实现流程如下:
1)根据被标定量的地址信息,判断被标定量所在的FLASH块是否已经与某一RAM块建立映射关系。

若已经实现映射,则执行2);若没有实现映射,则执行3)。

 
2)该FLASH块已经实现映射,只需要将被标定量的新数据拷贝到映射的R
AM空间中即可,此时会出现两种情况:若被标定量的新数据和FLASH中的数据一致,执行(1);若被标定量的新数据和FLASH中的数据不一致,执行(2)。

(1)当被标定量的新数据和FLASH中的数据一致时,即软件在运行时利用FLASH中的数据和RAM中的数据效果是一致的,为提高RAM的利用率,此RAM块可以解除与FLASH的映射。

在此过程中需要将寄存器O
TAR设置为0,RABR寄存器的OBASE位设置为0,RABR寄存器的OVEN位设置为0,这样此RAM块就解除与FLASH的映射关系,可以为其他FLASH块的映射提供资源。


2)当被标定量的新数据和FLASH中的数据不一致时,则原先的映射关系维持不变,只要将新的标定数据下载到对应的RAM空间中去即可。

3)被标定量所在的FLASH块没有实现与RAM映射,则首先判断RAM空间是否充足,判断RAM空间是否充足的方法是扫描3
2个Overlay块RABR寄存器的OVEN位是否为1,若所有的RAM块都已实现映射关系,则表示空间不足,否则表示空间足够。

若空间足够,则执行(1),若空间不足,则执行(2)。

(1)当RAM空间充足时,则该FLASH在与RAM映射的时候,按照RAM编号从小到大的顺序执行,搜寻到编号为n
(n小于32)的RAM未被映射,则需将寄存器O
TAR设置为该FLASH块的起始地址,OMASK设置为代表1KB大小的0xFE0,RABR寄存器的OBASE位设置为编号为RAMn的起始地址,RABR寄存器的O
VEN位设置为1,表示映射已经使能。

以上寄存器设置完毕之后,将该FLASH块中的数据拷贝到映射之后的RAMn空间中,并将新标定数据下载到RAMn空间中的所对应的偏移地址中,这样软件在运行的时候利用的是R
AMn中的新数据。

(2)当RAM空间不足时,则不能使能新的映射关系,此时应该返回拒绝命令给Master,以此通知标定人
员该标定请求被拒绝。

在出现标定拒绝时,有两种方
第5期
王民,等:基于Overlay动态分配的ECU在线标定实现
249
 案可以进行:第一种是将原先不需要的标定量更改回默认数值,根据1)中的(1)可知,此时可以腾出RAM空间为下一次新的标定请求做准备;第二种方案是将所有已经映射的标定量固化到FLASH中,这样所有的RAM空间都会腾出,为下一次新的标定请求做准备。

上述整个软件实现的流程如图4
所示。

图4 基于Overlay动态分配的在线标定流程
3 测试验证
为了验证该软件是否能够在RAM空间小于FLASK空间的情况下实现在线标定功能,测试代码中增加6
6个标定变量CAL_0 CAL_65和66个观测变量MEA_0 MEA_65,MEA_0 MEA_65分别被相应的标定变量赋值,66个标定量在编译时被分配到33个不同的FLASH块中,其中CAL_0和CAL_1被分配到FLASH0,CAL_2和CAL_3被分配到FLASH1,以此类推。

通过在线标定C
AL_0 CAL_65为不同的数值,观测变量MEA_0 MEA_65是否为相应的数值。

测试结果如下:
1)更改标定变量CAL_0为1,观测变量MEA_0也为1,并且此时只有一个Overlay块实现FLASH0映射到RAM0
,其他Overlay块不会被设置,如图5
所示。

图5 只有一个Overlay块使能2)更改标定变量CAL_1为2,观测变量MEA_1也为2,由于CAL_1和CAL_0被分配在同一个FLASH空间中,因此此时还是只有一个Overlay块使能,其他Overlay块不会被设置。

3)更改标定量CAL_2 CAL_63的数值,观测变量MEA_2 MEA_63也会随之更改,此时所有的Overlay块实现了RAM和FLASH的映射。

4)更改标定量CAL_64的数值,由于无RAM资源可用,此时会拒绝标定人员的请求。

5)更改标定变量CAL_0和CAL_1为默认数值,观测变量MEA_0和MEA_1也回到默认数值,此时FLASH0所映射的RAM0资源已经释放。

再次请求更改标定量CAL_64的数值为65,则观测变量MEA_64也变为65,标定请求实现,如图6
所示。

图6 Overlay块释放并被重新使能
综上测试结果,满足设计要求,即在FLASH空间大于RAM空间的情况下,能够实现标定量的标定请求,而在标定RAM空间不足的情况下,可提示标定人员释放不需要的标定RAM空间以为后续标定请求做准备。

4 结 语
针对传统的标定实现方式,本文分析了其利弊,提出了基于Overlay动态分配管理的在线标定解决方案,其在标定FLASH需求大于RAM空间的情况下,仍能实现所请求的标定变量的标定功能,而不需要与FLASH空间等大的RAM资源,这在开发阶段对于节省控制器的成本是非常有利的。

同时,在FLASH和RAM空间比例较大的时候,极端情况下如果标定人员的标定请求非常大,可能会频繁出现标定量不可被标定的情况。

针对这种情况,可有两种方案解决:一种方案是将使用频率高的标定量
(下转第280页)
280
计算机应用与软件2021年
的差异度还很大,算法较好地保持了群体的多样性,能够避免算法过早收敛、陷入局部最优等问题,具备更好寻优性能。

4 结 语
传统的GA在进行云资源调度时容易出现算法早熟收敛、种群多样性差、易陷入局部最优等问题。

本文提出一种基于多精英协同进化的遗传算法MECGA,用于解决云资源调度问题。

在种群进化过程中,首先将种群划分为精英子种群和普通子种群。

精英子种群由多个精英个体共同构成,并且这些精英个体分别具有适应度值高、相似性大和个体差异明显等特点。

这样的设计方式可以保证精英子种群体现出很好的代表性(即子种群总体的适应度值较高),又可以保证子种群的多样性(即个体之间的差异度较大)。

精英子种群在与普通子种群进行协同交叉进化时,可以引领种群快速向最优解的方向移动,同时又能保证种群的多样性,让算法在演化过程中,更容易跳出局部最优解,从而找到最优解。

为了验证算法的性能,我们设计了多组实验,并与GA、GAE和CGA进行了对比分析。

实验结果说明MECGA具备很好的性能。

在进行云资源调度时,MECGA求解出的最终解总是优于另外三个算法的最终解,其寻找最优解和跳出局部最优的能力表现得十分明显,鲁棒性更好。

参考文献
[1]刘少伟,孔令梅,任开军,等.云环境下优化科学工作流执行性能的两阶段数据放置与任务调度策略[J].计算机学
报,2011,34(11):2121-2130.
[2]方军,张璋,张雪峰,等.基于均衡适应度的云工作流调度算法[J].计算机应用与软件,2019,36(5):255-261.[3]许波,赵超,祝衍军,等.云计算中虚拟机资源调度多目标优化[J].系统仿真学报,2014,26(3):592-595,620.[4]SandeepT.Tasksschedulingoptimizationforthecloudcom putingsystems[J].InternationalJournalofAdvancedEngi neeringSciencesandTechnologies,2011,5(2):111-115.[5]ArmbrustM,FoxA,GriffithR.Aviewofcloudcomputing[J].CommunicationsoftheACM,2010,53(4):50-58.[6]谭旭杰,邓长寿,吴志健,等.云环境下求解大规模优化问题的协同差分进化算法[J].智能系统学报,2018,13(2):
243-253.
[7]徐阳,陈世平.包簇映射框架下的云资源分配优化算法研究[J].计算机应用与软件,2019,36(2):33-38.
[8]熊聪聪,冯龙,陈丽仙,等.云计算中基于遗传算法的任务
调度算法研究[J].华中科技大学学报(自然科学版),2012,40(S1):1-4.
[9]RamezaniF,LuJ,HussainF.Taskschedulingoptimizationincloudcomputingapplyingmulti objectiveparticleswarmopti mization[C]//11thInternationalConferenceonService Ori entedComputing,2013.
[10]查英华,杨静丽.改进蚁群算法在云计算任务调度中的应用[J].计算机工程与设计,2013,34(5):1716-1719,1816. 
[11]张水平,邬海艳.基于元胞自动机遗传算法的云资源调度[J].计算机工程,2012,38(11):11-13.
[12]HollandJ.Adaptationinnaturalandartificialsystems:Anin troductoryanalysiswithapplicationstobiology,controland
artificialintelligence[J].AnnArbor,1975,6(2):126-137.[13]EhrlichPR,RavenPH.Butterfliesandplants:Astudyincoevolution[J].Evolution,1964,18(4):
586-608.
(上接第249页)
集中定义在相同的几个FLASH空间中,这样在映射的时候,就不会占用新的RAM空间,保证每一个映射的RAM区域利用率非常高;另一种方案是增加其他可用的RAM映射区域,如每个核的DSPPR存储区域,在软件集成完毕之后,整个软件运行的RAM使用情况已经明确,可以将暂未利用的RAM区域用来做映射,这也是后期研究的目标。

参考文献
[1]AndreasP.XCPreferencebook[CP/DK].(2016-10-17).
[2]InfineontechnologiesaurixTC27xusermanualV2.2[CP/DK].InfineonTechnologiesAG.(2014-12-01).
[3]张宝宇.基于AURIX_TC277的标定组件的研究与实现[D].长春:吉林大学,2017.
[4]谢江浩.符合AUTOSAR架构的XCP标定系统研究与实现[D].成都:西华大学,2017.
[5]SchuermansR,ZaiserR,HepperleF,etal.XCP Part1 Over view 1.1.associationforstandardizationofautomationand
measuringsystems[CP/DK].(2008-03-31).
[6]熊婉仪,吴志红,朱元.基于CAN总线的XCP标定协议研究[J].信息通信,2015(9):19-20.
[7]AUTOSAR_SWS_XCP[CP/DK].AUTOSAR.(2017-12-08).
[8]SchuermansR,ZaiserR,HepperleF,etal.XCP Part3 Trans portlayerspecificationXCPonCAN 1.1.iationforstandard
izationofautomationandmeasuringsystems[CP/DK].
(2003-04-08).。

相关文档
最新文档