车用电子控制器分页标定软件技术研究与实现
2017-04-07李岩张晓谦孙忠刚刘超
李岩,张晓谦,孙忠刚,刘超
(中国第一汽车股份有限公司技术中心汽车电子部,吉林长春130011)
车用电子控制器分页标定软件技术研究与实现
李岩,张晓谦,孙忠刚,刘超
(中国第一汽车股份有限公司技术中心汽车电子部,吉林长春130011)
近年来,车用电子控制器在开发阶段需要调试和优化的标定量大量增加。由于控制算法和标定数据都需占用大量的存储空间,标定软件在设计时不仅要满足数据测量、在线标定、数据下载等基本功能,还要兼顾控制器芯片的RAM资源情况。根据XCP协议规范,在MPC5644硬件平台上设计了基于CAN总线的分页标定软件,具有较好的通用性和可靠性。该技术通过内存管理单元对标定区的地址进行切换,有效解决了标定大量数据时单片机RAM资源紧缺的问题,同时优化了数据下载功能。该标定软件目前已应用于某汽车公司研发的产品ECU上,取得了良好的效果。
电子控制器;分页标定;XCP协议
0 引言
标定软件是车用电子控制器平台软件的重要组成部分,在产品开发阶段,应用软件设计人员通过该软件来动态修改和优化控制器内部的参数。随着电控系统控制逻辑复杂度和控制变量数量的增加,控制器内部的RAM资源难以满足大量标定数据进行在线标定的需求。出于成本和性能的考虑,作者采用分页标定技术,利用一块标定RAM区支持多块标定ROM区域的标定,同时对分页后的标定数据刷写功能做了优化。该方法通过单片机本身的地址切换机制实现,支持在台架和实车的环境下进行标定工作,对于大量数据的标定无须增加外扩RAM,节省了控制器的开发成本。
标定模块工作的系统环境如图1所示,上位机工具通过ECU描述文件来获得ECU内部变量的地址、长度、数据类型等信息,再通过CAN总线与ECU控制器进行命令和数据传输,从而实现对控制器变量测量和在线标定等功能[1]。
图1 标定模块的系统环境
1 XCP协议介绍
在车用电子控制器开发的过程中,除了控制算法本身复杂度逐步提高以外,某些控制器对数据融合、功能安全的要求也越来越高,需要观测的变量数大幅增加。与此同时,电子控制器的开发对于观测数据的采集速度也提出了更高的要求,而XCP协议的通用性使得它具备针对其他通信速率更快的总线的可移植性,比如FlexRay、以太网等[2]。因此,基于该协议的研究和软件实现不仅可以满足当前ECU的产品开发需求,对于未来高速标定技术的应用也有着重要意义。
XCP协议是目前标定软件中常用的规范,它最早是由自动化和测量系统标准化协会(ASAM)提出的。为了兼顾标定的速度和标定软件的可重用性,XCP协议被设计成协议层和传输层完全独立开,XCP中的X就代表该协议所支持的总线。这使得XCP成为一种更为通用的标定和测量协议,因为它的实现可以独立于具体的物理层传输。根据XCP协议层规范,协议中所有通信的数据包都叫作XCP传输包,在标定的过程中,主从节点所发送和接收的传输包分为两种:命令传输包(Command Transfer Object,CTO)和同步数据包(Data Transfer Object,DTO)[3]。XCP的报文格式(如图2所示)由报文头、数据包和XCP报文尾三部分组成,这种结构适用于不同网络上的数据传输,保证消息传递不受物理层的影响。
图2 XCP传输包格式
2 标定软件设计与实现
2.1 标定模块软件架构
采用32位单片机MPC564A80作为控制器硬件平台,该型号芯片有192 kB RAM资源和4 MB Flash资源,其中预留64 kB RAM作为在线标定使用、128 kB ROM作为标定数据的存储区域。为了提高标定模块程序的复用性,整个系统软件的实现主要由应用程序层、XCP协议实现层、CAN传输层和底层模块驱动几部分组成。APP层实现应用的控制策略,XCP协议实现层包括初始化任务、数据采集周期任务、错误处理、XCP标准协议栈实现、通信服务子程序实现和用于分页标定的页切换模块。由于传输层和协议层的分离,使得XCP协议可以应用于不同的总线,所以将协议栈与通信层相关的接口提取出来,方便在其他芯片上进行移植。从平台化的角度考虑,底层FLASH驱动和CAN驱动的实现均采用标准的AUTOSAR接口,增加了标定组件这部分代码的可重用性,为将来标定软件应用在其他控制器提供了方便。
2.2 在线分页标定
为了在可靠性、经济性等方面提高控制器的性能,开发人员需要在台架和实车环境中实时地调整和修正ECU内部的控制变量。在软件设计上,这些变量被存放在Flash上的固定区域内,程序运行时,将这部分数据的内容拷贝到相应的RAM区域,再利用芯片的MMU(内存管理单元)模块将这些需要实时修改的控制变量进行地址切换,从而实现了动态修改标定量的功能。对ECU系统的标定分在线标定和离线标定[4]。文中提出的软件实现方式支持在线和离线两种标定模式,开发人员可以在上位机工具上预先修改后标定数据,这些数值和地址信息保存在标定工具内,重新建立连接后,可以将标定数据更新到ECU的镜像区域内,或者将保存好的二进制数据文件下载到Flash区域。
利用64 kB的RAM区域来标定128 kB的数据,首先定义两个标定ROM区域,对标定数据分别进行定位,定位的方法如下:
#pragma ghs section rodata = ".Cal_Flash_Rom1"
const volatile uint8 cal_download = 1;
#pragma ghs section rodata = default
#pragma ghs section rodata= ".Cal_Flash_Rom2"
const volatile uint8 cal_download2 = 0;
#pragma ghs section rodata = default
每个分页标定ROM区大小为64 kB,通过对MMU的操作进行标定区地址的映射[5]。文中利用MMU来实现标定区的分页功能。MPC5644拥有16个TLB(Translation Lookaside Buffer)地址入口,支持从1 kB到4 GB的地址空间映射。通过对MMU编程来实现从虚拟地址(Virtual Address)向物理地址(Real Address)的转化,MMU虚拟地址到物理地址的映射过程如图3所示。TLB的作用是保存虚拟页和物理页之间的对应关系,当标定软件做页切换操作时,实际上是芯片MMU模块更新了TLB的记录,包括地址信息、分页区大小等信息,使得单片机内存中虚拟地址和实际地址的映射关系发生了改变。
同一时刻,只有一个分页ROM区可以映射到标定RAM区,所以分布在不同分页区的标定量不允许被同时标定,分页标定的切换机制如图4所示。调和有限的MCU内部RAM资源和逐步增加的系统标定数据之间的矛盾,用一块RAM完成两块以上ROM数据的标定,节省MCU外扩RAM的投入。文中没有依赖XCP命令包中的相关页切换命令来实现,而是根据所选芯片的特点,将标定页切换的具体切换过程融合到XCP的标准命令包中,将页切换开关做成一个标定量,通过修改标定开关来切换不同的标定区域。操作过程与单页标定的操作过程一致,方便程序开发人员使用,同时进一步提高了XCP模块的可移植性和对上位机工具的兼容性。
图3 虚拟地址与物理地址映射关系
图4 标定分页区域对应关系
2.3 数据观测和下载
对于数据采集功能,此软件支持静态DAQ采集和动态DAQ采集两种方式[6],能够在不同周期任务中实现数据传输。对于标定数据下载,该模块除了支持标准的XCP协议外,还具备掉电下载功能,即通过下载数据开关实现当前标定RAM内数据的刷写,两种数据刷写方式如图5所示。
第一种方式通过上位机工具和ECU交互,基于PROGRAM_START、SET_MTA、PROGRAM_CLEAR、PROGRAM、PROGRAM_NEXT等XCP协议命令进行数据下载,需要将标定RAM区域的数据保存到上位机,再进行下载。第二种方式通过标定量开关,标定软件将当前的标定RAM区数据下载到对应的分页ROM区域中,下载过程没有数据交互,也不需要将标定数据保存到上位机,简化了操作步骤,同时节省了数据下载时间。
图5 标定数据刷写
3 结论
通过上述研究,提出的ECU端标定软件实现方案具备了数据测量、分页标定等功能,达到了设计目的,实际使用的效果满足预期的要求。除实现了标准的XCP-On-CAN协议外,还具备以下特点:
占用芯片资源少。采用分页技术,将128 kB的标定数据映射到64 kB RAM区域,通过分页机制实现了对全部数据进行在线修改,节省了单片机RAM资源。
通用性强。该标定软件采用国际通用的XCP协议实现了数据测量、在线标定和数据下载等功能。软件架构层次清晰,可在不同芯片平台上进行移植。标定分页功能通过一个标定量作为切换开关,不依赖上位机工具的选取。
可靠性高。对整个标定系统在实验室、台架和实车环境下进行测试,并且已在某汽车公司开发的电控系统中得到应用。
【1】邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2004:51-90.
【2】SCHUERMANS R,ZAISER R,HEPPERLE F,et al.XCP-Part2:Protocol Layer Specification-1.0[M].Association for Standardization of Automation and Measuring Systems,2003.
【3】SCHUERMANS R,ZAISER R,HEPPERLE F,et al.XCP-Part3:Transport Layer Specification XCP on CAN-1.0[M].Association for Standardization of Automation and Measuring Systems,2003.
【4】熊婉仪,吴宏志,朱元.基于CAN总线的XCP标定协议研究[J].信息通信,2015(9):19-20. XIONG W Y,WU H Z,ZHU Y.Research of Based on CAN Bus XCP Calibration Protocol[J].Information & Communications,2015(9):19-20.
【5】程春桃.XCP协议在电控柴油机标定系统中的应用研究[D].西安:长安大学,2011.
【6】肖亚迪,肖兵.基于XCP协议的ECU标定系统开发[J].计算机测量与控制,2015,23(2):600-603. XIAO Y D,XIAO B.Development of ECU Calibration System Based on XCP Protocol[J].Computer Measurement & Control,2015,23(2):600-603.
Research and Implementation of Paging Calibration Software Technology on Automotive Electronic Controller
LI Yan, ZHANG Xiaoqian, SUN Zhonggang, LIU Chao
(Research & Development Center, FAW Group Corporation,Changchun Jilin 130011,China)
In recent years, values required debugging and optimization in development phase for automotive electronic controller are increased more and more. Since the control algorithm and calibrated data are required to take up a lot of storage space, not only calibration software should have the data measuring, on-line calibration, data download and other basic functions, but also RAM resources of the controller should be considered. The paging calibration software was designed on the MPC5644 platform, which had good universality and reliability. The calibration area was switched through the memory management unit. So RAM resources shortage problem when a large number of data were needed to calibrate was solved, at the same time, the data download function was optimized. The calibration software has been applied to a product ECU of some company, and good results have be achieved.
Electronic controller; Paging calibration; XCP protocol
2016-08-29
李岩(1986—),男,工程师,从事嵌入式软件开发工作。E-mail:liyan6@rdc.faw.com.cn。
10.19466/j.cnki.1674-1986.2017.02.006
U463.6
B
1674-1986(2017)02-025-03