文献标识码:A
DOI:10.16157/j.issn.0258-7998.2015.12.035
中文引用格式:张俊峰,肖兵,童天涯. 面向异构网络的整车控制器标定系统的实现[J].电子技术应用,2015,41(12):133-136.
英文引用格式:Zhang Junfeng,Xiao Bing,Tong Tianya. The implementation of vehicle controller calibration system for heterogeneous network[J].Application of Electronic Technique,2015,41(12):133-136.
0 引言
由于新能源汽车车载网络的复杂性,传统汽车领域的测量与标定工具并不适合新能源汽车的研发需求。新的通讯方式和标定协议也在不断发展并得到应用,如欧洲汽车公司成立的标准化组织ASAP于1992年推出了基于CAN(Controller Area Network)总线的CCP协议以及其后的升级版本XCP协议。在车载控制器的匹配过程中,需要根据整车的各种性能要求(如动力性、经济性、排放及辅助功能等)来调整、优化和确定整车上各ECU(电子控制单元)的运行及控制参数的控制算法[1]。新能源汽车整车控制器包含并涉及多门学科的多个系统,如机械传动领域、电机驱动领域和电化学等,它的本质就是一种异构网络。由于传统的标定系统没有基于较好的标准和协议规范,也无法适应新能源车内部复杂异构网络的苛刻需求,而国外产品产业链价格昂贵且技术开放度差,从而实现一套面向异构网络的新能源车整车控制器测量与标定系统具有极高的应用价值。
1 XCP协议介绍
XCP协议是基于不同通讯平台的测量标定协议的总称,可以基于CAN总线、LIN总线、USB总线等不同总线,最常见的是“XCP on CAN”。CAN总线是德国BOSCH公司为现代汽车应用领域推出的一种多主局域网。它实现了汽车电子的网络化,大幅度减少了汽车内的线束,实现了数据共享[2]。图1为“XCP on CAN”的消息帧结构,帧头为空,帧尾为填充位,消息最大长度为8 B,ID标识域用来辨识数据包类型和数据区内容,FILL为对齐选项,DAQ为DTO(Data Transfer Object)数据包在数据请求列表中的索引,时间表示域为可选项,DATA存放相应数据[3]。XCP协议通讯模式采用主从通讯方式,主机发送命令,从机应答。XCP数据包分为两种类型:指令传输包CTO(Command Transfer Object)和同步数据包DTO[4-6],主机发送不同的CTO建立与从机的逻辑连接,请求从机回应DTO,另外CTO可以请求启动DAQ(数据采集)模式定时发送数据。
2 标定系统总体架构
如图2所示,整个标定系统框架遵循ASAP标准和XCP通讯协议。上位机通过Kvaser设备将USB信号转为CAN信号与整车控制器进行通讯。A2L文件独立于上位机和整车控制器,完成整车控制器所有相关参数的详细定义和描述,上位机通过读取A2L文件来完成对整车控制器的测量和标定工作。整车控制器通过不同的总线接口与外部子系统相连,不同的总线接口与子系统构成了复杂的异构网络。
该标定系统以PC机作为上位机,主要集成测量、标定和诊断模块、数据库管理模块、XCP协议解析模块及A2L文件解析器。测量、标定和诊断窗口采用C#技术搭建,可实现ECU数据的监测、在线修改和故障诊断功能。数据库模块可根据用户需求完成对相关参数值的存储、修改、删除及查找功能。A2L文件解析器集成于上位机中,完成A2L文件的读取和解析,将相关参数的定义转换为相应存储格式存储,依此,上位机可精确找出具体参数的详细地址、大小和数据格式等信息。XCP协议解析模块完成XCP协议的封装和解析。
底层标定软件由XCP Driver、CAN Driver、应用层程序组成。XCP Driver实现整个XCP协议的协议层,包括XCP命令的解析、处理、回复及数据的采集等;CAN Driver作为XCP传输层,与PC机标定软件进行通讯;应用层程序主要实现对特定任务的调度。其中,XCP Driver层可根据数据包的形式判断是指令数据包CTO还是同步数据包DTO,从而决定调用的是命令处理机还是DAQ处理机。
3 标定系统上位机的实现
3.1 A2L文件解析器的设计
A2L文件以模块为单元进行层次划分,每个模块以/begin开头,以/end来结尾,MEASUREMENT模块描述了监测参数的详细信息,CHARACTERTSTIC模块定义了标定参数的详细信息,它们的数据格式参考关键字RECORD_LAYOUT,转换方法参考关键字COMPU_METHOD[4]。将A2L文件按照文件信息来处理,逐行读取并进行字符串操作,取出其中描述的关键信息,按照转换方式转换即可转换为相应物理值。因为解析过程比较复杂,采用先进后出的数据结构来建立相应关键字和嵌套关键字的逻辑关系,A2L文件解析流程如图3所示。
3.2 XCP协议驱动程序的设计
PC机与ECU间基于XCP协议的通讯方式为标准通讯模式,即PC机发出命令得到ECU的应答后才能发出下一条命令。为了满足基本要求,上位机中设计了4个XCP功能函数,分别为建立对话函数、参数标定函数、同步数据传输函数以及结束对话函数。XCP功能函数列表如表1所示。
Setting_Up_Session()函数建立会话连接并完成主从信息的交换。Calibration()函数可完成参数的标定功能。DAQ_data_transfer()函数可调用DAQ处理机监测数据。结束会话函数Closing_session()结束XCP对话。
4 底层软件系统的设计
XCP的数据包分为两种类型,指令数据包(CTO)和同步数据包(DTO),上位机发送指令包时,经过XCP传输层将CAN信息发送给XCP驱动层进行解析处理,从中获得指令码,从CMD函数列表中运行对应指令码的执行函数,进行相应处理并返回结果,XCP传输层将结果传输至CAN总线。当上位机发送同步数据包时,ECU开启DAQ模式,从事先已经配置好的DAQ列表中,根据对应内存地址及地址长度信息,将对应内存中的数据通过XCP传输层传输至CAN总线。每次执行完CAN的发送和接收后,都要执行发送和接收完处理,设置状态位,释放缓冲区数据,以便于开始下一波处理。
通过设计不同的函数接口,将CAN传输层和CAN驱动层以及应用层衔接起来,实现基于XCP协议的数据通讯。各类函数接口和逻辑关系如图4所示。
各接口功能定义如下:
(1)Can_Init函数完成CAN模块的初始化;
(2)XcpRx_CallBack函数对接收到的CAN数据进行初步解析后放入相应通道的接收缓冲区中,设置接收缓冲区的状态;
(3)XcpTx_CallBack函数对发送完CAN数据后进行发送完处理,管理发送缓冲区;
(4)Can_Transmit函数完成对应邮箱中数据的发送,即CAN数据发送函数;
(5)Xcp_Init函数完成XCP驱动模块的初始化工作;
(6)Cmd_Professor函数查询各通道中的命令并进行解析,调用相应函数列表中的处理函数去执行命令;
(7)Daq_Processor函数完成DAQ模式的处理,根据配置将DAQ列表指向的内容发送出去;
(8)Xcp_Event函数用于应用层触发事件,可根据要求进行同步数据传输。
应用层用于对不同任务间的指挥和调度,系统测量与标定总流程图如图5所示。系统开始工作时,执行CONNECT命令,建立主从设备间的连接;读取ECU的参数描述文件,即A2L文件;开始进行系统初始化,包括CAN初始化,XCP初始化,DAQ列表的配置及标定参数内存的初始化;接下来分析主机发送过来的会话命令,如果是开启DAQ模式,则执行DAQ的自动开启发送,在系统主循环程序中周期执行DAQ列表处理任务,周期由DAQ列表所配置的周期决定;如果是参数标定命令,则在A2L文件中查找参数的相关信息,将标定值下载到RAM,从而完成在线标定,为了保证掉电不丢失,需要将相应标定数据烧写进FLASH单元;执行完判断处理后进入系统主循环,循环遍历是否有XCP命令处理等其他任务,有则执行,无则继续等待。
5 标定系统的应用
将多核芯片为主控芯片的ECU通过接线端子与实验室控制模拟台架相连接,在PC端通过监控标定软件界面来查看各类传感器采集信号和整车控制器的一些重要参数的实时信息,并可以针对点火提前角、喷气脉宽、替代率等重要参数进行在线修改和查看比较,以曲线的形式展现结果。通过标定软件控制节气门阀片的位置,改变和调节喷气脉宽来对不同工况进行优化,经过大量实验,标定的喷气脉宽MAP图如图6所示,相应的外特性曲线如图7所示。
上位机中的标定软件采用C#语言进行开发,利用WPF技术创建控件并完成封装,将图形与代码完美隔离开来,提高界面的美观性、通用性和可移植性。上位机的测量标定工作可监测到整车控制器的主要参数以及传感器的采集信号,分别以报文表、仪表盘和波形图的形式显示给用户,其中包括蓄电池电压、电池温度、喷气脉宽等重要参数。示例界面获取的是不同转速情况下的喷气脉宽值,通过标定系统改变不同转速值,可得到相应喷气脉宽值变化情况。测量标定界面如图8所示。
6 总结
经过上述的研究和开发,通过实验室配有整车控制器ECU的台架上试验,验证了实时监测和在线标定功能。其特色在于该标定系统主要适用于新能源汽车,可通过对整车控制器的标定实现复杂异构网络系统的标定和优化,采用国际ASAP标准和通用XCP协议,具有较好的移植性和通用性。
参考文献
[1] 李计融,钟再敏.车载控制器匹配标定ASAP标准综述[J].汽车技术,2004,10:1-4.
[2] 顾卫钢.手把手教你学DSP—基于TMS320X281x[M].北京:北京航空航天大学出版社,2011.
[3] ASAM_XCP_Part2-Protocol-Layer-Specification_V1.0.0.
[4] ASAM_XCP_Part3-Transport-Layer-Specification_XCP onCAN_V1.0.0.
[5] 宋维群,杨世春,李明,等.基于ASAM标准的标定数据库逻辑分析与编程实现[J].汽车技术,2012(1):10-13.
[6] ASAM_XCP_Part4-Interface-Specification_V1.0.0.