APP下载

基于发动机ECU开发的双路并行系统参量获取技术研究

2018-09-19邸立明王海全

计算机测量与控制 2018年9期
关键词:双路参量列表

邸立明,刘 维,王海全

(1.燕山大学车辆与能源学院,河北秦皇岛 066000;2.长城汽车动力研究院,河北保定 071000)

0 引言

为使发动机更加节能环保与高效,提升其电控系统的技术水平被认为是最有效手段之一,而ECU开发与算法优化困难且周期偏长,已成业界重金投入和研究的热点之一。目前,国际汽车发动机电控产品的开发与生产已经系统化,生产规模与销售模式也日趋成熟[1],国内市场发动机ECU产品的70%市场份额仍被美国Delphi、德国BOSCH和日本Denso三家垄断[2]。虽然国内对发动机ECU开发的理论研究成果不少,但完全自主知识产权的ECU产品少有应用[3]。在发动机ECU开发过程中,国内一些高校和企业普遍采用基于国外成熟ECU产品的改造与改进方案,对无法获取的逻辑控制算法,往往基于大量台架实验对标国外成熟产品的控制效果开展标定工作解决。在对比分析不同发动机ECU控制效果差异的过程中,一般采用分别单独连接原机ECU与待开发ECU开展台架实验,很难保证发动机运行工况的完全一致,缺乏控制效果差异对比的一致性基础,会给基于此开展的ECU控制算法优化工作带来诸多问题。本文搭建了发动机ECU开发的双路并行控制系统台架实验平台,两个ECU中的状态和控制参量可通过平台系统实现高速通信并实时共享,得出的控制效果差异具有良好的对比分析基础。

为保证双路并行ECU系统的控制具有可行性和研究意义,必须使V-ECU能够灵活高速获取原机P-ECU中的任意工作参量。目前,通过UDS命令请求或从应用报文中获取参量数据,是一个ECU从另一个ECU中获取数据的普遍方法,但前者的数据更新速率会随获取参量增多而变慢,后者因其数据更新速率固定易导致无法得到想要数据。鉴于上述两种方法的不足及ECU开发测试中对工况参量的实时性获取需求,在项目开展的前期过程中已经设计开发了一种基于CCP通信协议的ECU高速通信实时监听系统,即V-ECU通过监听P-ECU发往标定系统的DAQ通信消息,进而解析出自身所需的参量信息。该方法虽然可以满足双路并行ECU系统中两个ECU之间的高速通信需求,但该系统的实现高度依赖标定系统,并且在实际应用过程中,往往由于变量太多,导致V-ECU所需变量并未在标定系统中被监控,从而V-ECU无法从P-ECU发出的DAQ通信消息中获取到所需参量信息,使该系统在实际应用中受到限制。鉴于上述问题,通过开展对双路并行ECU系统中两个ECU之间通信技术进一步研究和探索,基于CCP通信协议及INCA标定测量系统使能ECU中DAQ功能原理,提出了通过V-ECU使能P-ECU中DAQ功能对其内部参量进行灵活、高速获取的方案。研究表明,只要在V-ECU软件中配置了需要从P-ECU中获取的变量信息,P-ECU将会自动通过DAQ消息向外发送,该方案可避免因人为原因造成DAQ消息发送不全的问题,并可有效实现双路并行ECU控制系统数据的实时共享,大大提升ECU开发及算法优化效率。

1 理论依据

1.1 CCP通信协议

CCP协议,即 CAN Calibration Protocol,是欧洲 ASAP组织基于CAN总线通信协议指定的一种对汽车电子控制系统进行参数标定的协议。为使车用电子产品在开发期间所用工具和方法具有一定的兼容性和互换性,ASAP组织提出了ASAP标准,CCP协议便是ASAP标准的一部分,由于其具有通信可靠、传输速度快、通用性好等优点,所以在汽车行业中得到广泛采用[4]。CCP协议采用主-从方式进行通信,系统中只有一个主设备,但可以有一个或多个从设备。其中主设备是一种遵循ASAP标准的标定、监控以及诊断系统,如ETAS公司的INCA和VECTOR公司的CANape等。从设备是支持CCP协议的电子控制单元,如发动机ECU或整车控制单元VCU。CCP协议通过命令接收对象 (CRO)和数据传输对象 (DTO)两种消息对象实现主设备与从设备之间的通信,其中CRO由主设备发往从设备,DTO由从设备发往主设备[5]。

CCP协议中提供的DAQ功能可实现标定测量系统对ECU中的参量进行实时监控。当DAQ功能被使能时,发动机ECU会周期性向外发送一系列CAN消息,该CAN消息被称为DAQ-DTO消息,其中包含ECU内部参量的当前值,利用CCP协议中的DAQ功能令ECU间实时通信共享各自内部工作参量,是本文技术方案实现的功能基础。ECU向外发送哪些参量值由DAQ列表来决定,DAQ列表数量由ECU支持的DAQ通道数决定。P-ECU支持segment、10ms以及100ms共3个DAQ通道,因此P-ECU中包含3个DAQ列表。每个DAQ列表可包含多个ODT(Object Descriptor Table),每个ODT对应一帧DAQ-ODT消息。每帧DAQODT消息包含哪些参量数据由与之对应的ODT来描述,其中一个ODT最多可包含7个byte类型的变量元素。另外,同一个DAQ通道中所有DAQ-DTO消息的CANID可能都相同,但这些DAQ-DTO消息中数据区域的第一个字节不同,该字节代表这帧消息的PID(Data Packet ID)值,PID值与描述这帧消息的ODT序号相对应。DAQ列表与其中的ODT结构如图 1 所示[6]。

图1 DAQ与ODT列表结构

1.2 标定系统工作原理

发动机电控标定系统可通过实时监测发动机各个状态数据进行参量标定工作,最终可使发动机满足相应的动力性、经济性和排放性需求。本文实验平台的CCP协议主设备采用INCA标定系统,通过解析标定软件INCA与从设备发动机ECU之间的CCP通信报文,可以得到INCA使能发动机ECU中DAQ功能的一系列流程,其中主要包括与发动机ECU建立连接,置DAQ列表初始化状态标志位,对DAQ列表进行初始化配置,使能ECU中的DAQ功能等。具体如图2所示。

图2 INCA使能DAQ功能流程

INCA之所以能从ECU发来的一系列DAQ-DTO消息中解析出监控界面中的所有参量值,是因为ECU中的DAQ列表信息是由INCA通过发送一系列CCP命令消息并且按照一定规律对其进行了配置,即CCP协议中的主设备标定系统INCA决定了监控界面中的每个参量会在哪帧DAQ-DTO消息中的哪个位置[7]。

2 参量实时获取系统

2.1 设计思想

标定软件INCA通过发送一系列CCP协议命令组合,配置P-ECU中的DAQ列表并使能P-ECU的DAQ功能,从而实现对P-ECU内部参量的灵活获取。对于P-ECU仅识别发来的CAN消息是否是CCP协议命令以及是哪种命令,而不考虑消息的来源。因此,如果V-ECU也能像INCA那样发送相应的协议命令组合给P-ECU,同样也可以使能PECU中的DAQ功能,从而V-ECU便可以从P-ECU发来的DAQ-DTO消息中解析出所需参量值。

2.2 实现方法

标定软件INCA配置P-ECU中DAQ列表过程,实质上是通过发送SET_DAQ_PTR和WRITE_DAQ两条CCP协议命令将监控界面中每个参量的地址信息、字节大小以及地址偏移等信息写到DAQ列表中的相应位置。P-ECU中参量的地址以及字节大小等这些信息都定义在P-ECU的A2L文件中。所以,将想要获取的参量地址和字节等信息提前存入V-ECU中,然后定义每个参量的DAQ通道。此外,还需要定义对CCP协议命令消息进行构造的接口函数,函数的输入参数根据协议命令中的参数确定,各CCP协议命令及相关命令参数可参考CCP2.1[8]。

当V-ECU上电复位后,会按一定顺序调用定义好的接口函数,发送CRO消息给P-ECU,P-ECU每接收到一帧CRO消息便返回一帧DTO消息作为回应,V-ECU对返回的DTO消息进行判断,若符合定义好的协议便继续调用下一接口函数以发送下一帧CRO消息。当所有的接口函数调用完成后,P-ECU便会周期性的向外发送DAQ-DTO消息,其中包含V-ECU想要获取的各个参量值。

2.3 软件设计

软件设计主要包含对P-ECU中DAQ列表的配置和对P-ECU发来的DAQ-DTO消息的解析两部分内容。

2.3.1 配置DAQ列表

配置DAQ列表部分软件主要是对构造CCP协议命令消息的功能函数,以及与配置DAQ列表流程相关的任务调度函数进行定义。该部分软件最终实现类似INCA使能PECU中DAQ的功能,使P-ECU往外发送V-ECU需要的参量信息。

(1)CONNECT函数

CONNECT命令的主要作用是与P-ECU进行会话连接,其结构形式如图3所示。CONNECT消息命令中包含局地址参数,其长度为两个字节。所以该函数包含一个WORD型输入参数为目标ECU的局地址,并且该局地址信息可在PECU的A2L文件中找到。

(2)SET_S_STATUS函数

图3 CONNECT命令结构

SET_S_STATUS命令告诉P-ECU现在CCP通信的状态,包括标定数据初始化、DAQ列表初始化以及运行状态,其结构形式如图4所示。当标定系统对P-ECU中DAQ列表初始化之前和之后都需发送该命令,只是输入的参数不同。该函数包含一个表征CCP通信阶段状态的BYTE型输入参数,参数中的5个bit位对应着5个通信状态,包括标定数据初始化状态位、DAQ列表配置初始化状态位、ECU断电时标定数据存储请求状态位、ECU断电时DAQ列表配置信息保存请求状态位、运行状态位。本文主要用到DAQ列表配置初始化状态标志。

图4 SET_S_STATUS命令结构

(3)GET_DAQ_SIZE函数

GET_DAQ_SIZE命令是获得P-ECU中每个DAQ列表中包含的ODT数量,以及每个通道第一个DAQ-DTO消息对应的PID值,其结构形式如图5所示。该函数包含的一个BYTE型输入参数为DAQ通道序号。P-ECU接收到该命令消息后会返回DTO消息,其中包含上边提到的信息,然后V-ECU需要解析返回消息并对信息进行提取。由于P-ECU包含3个DAQ通道,并且本文试验对3个DAQ通道都有涉及,所以在任务调度过程中该接口功能函数会连续调用三次,每次传入不同的DAQ序号参数。

图5 GET_DAQ_SIZE命令结构

(4)SET_DAQ_PTR函数

SET_DAQ_PTR命令会指定DAQ列表中的一个具体位置,然后将WRITE_DAQ命令中的参量信息写到这个位置,其结构形式如图6所示。该函数包含DAQ通道序号、ODT序号、元素序号等3个BYTE型输入参数。

(5)WRITE_DAQ函数

图6 SET_DAQ_PTR命令结构

WRITE_DAQ命令的功能是向上一条SET_DAQ_PTR所指定的DAQ列表中的位置写参量信息,包括参量地址、字节数、地址偏移等,其结构形式如图7所示。该函数包含两个BYTE型、一个DWORD型输入参数。由于发送一次SET_DAQ_PTR和WRITE_DAQ命令,只能将一个参量元素配置到DAQ列表中,所以在配置DAQ列表信息过程中,需循环多次组合发送SET_DAQ_PTR和WRITE_DAQ两个接口函数,直到所有需要监控参量元素在DAQ列表中全部配置完成。

(6)START_STOP函数

START_STOP命令的功能是使能或禁止某一通道的DAQ功能,其结构形式如图8所示。该函数包含5个输入参数,主要输入参数为DAQ模式 (使能/禁止)、DAQ通道号等,其他参数一般为定值。该函数调用一次只能使能或禁止一个通道的DAQ功能。本文P-ECU包含3个通道,并且每个通道都要进行数据传输,所以该函数需调用三次。

图8 START_STOP命令结构

(7)任务调度函数

该函数的主要功能是对上边6个功能函数进行合理调用,并且对返回消息进行分析,从而实现对P-ECU中DAQ功能的使能,其软件实现流程如图9所示。

前6个函数中都要调用CAN驱动中的“CAN_Transmit()”函数,用于将构造好的CCP协议命令消息通过CAN总线发送出去。第7个函数在对返回消息进行分析时需调用CAN驱动中的“CAN_Receive()”函数将命令返回消息从CAN模块寄存器中读取出来。

2.3.2 DAQ-DTO消息解析

图9 任务调度流程

当V-ECU对P-ECU中的DAQ列表配置完并使能DAQ功能后,P-ECU会以不同速率周期性的向外发送DAQDTO消息,其中包含V-ECU需要从P-ECU中获取的参量。该部分软件的作用就是将这些所需要的参量值从DAQ-DTO消息中解析出来。因P-ECU中DAQ列表是V-ECU按照一定规律进行配置的,所以V-ECU能容易得知每个DAQDTO消息包含哪些参量值。该部分软件的设计思路是通过定义一个buffer来存放所有DAQ-DTO消息的数据,当VECU接收到一帧消息后,根据其PID值将消息中的数据存放到buffer中的固定位置,然后判断该DAQ通道中的所有消息是否接收完成,如果接收完成便把该通道中的所有参量值从该数据buffer中提取出来,并将该通道的接收完成标志清零;如果该通道中还有消息没有接收便跳出CAN接收中断任务。具体操作流程如图10所示。

在软件设计过程中,很多地方会需要一些函数的输入参数,而这些参数一般是与P-ECU相关的特征信息,以及与所需参量相关的地址信息或参量类型。考虑到系统的通用性和可移植性,本文将这些参数都统一定义到一个配置文件中,在将本系统应用到其他ECU参量获取项目时,只需修改该配置文件中的相应内容即可。

3 试验结果

搭建的发动机双路并行ECU系统台架试验平台电控系统部分如图11所示。首先将P-ECU与发动机直接连接,其次由于两个ECU的接口都是标准接插件,需要通过两个中转箱将两个ECU中的CAN通信接口引出,进而实现VECU与P-ECU之间的CAN信息数据的相互传输。此外,由于曲轴信号和凸轮轴信号一般为脉冲信号,并且可能会影响某些特定的控制标志位,所以在试验过程中将曲轴信号和凸轮轴信号分别连接到两个ECU上。

图10 DAQ消息解析流程

图11 双路并行ECU系统台架试验平台

基于发动机双路并行ECU系统台架试验平台,V-ECU首先需要高速获取P-ECU中采集到的各个传感器值,用于待开发V-ECU的控制算法优化开发。同时针对ECU中表征控制效果的参量,随所验证功能模块的不同而进行不同组合的获取。为了验证该系统参量获取方法的可行性,需要借助标定软件INCA通过ES581通信硬件对两个ECU中相对应的参量进行同时监控,并对比分析V-ECU所获取参量信息相对于P-ECU的延迟情况。图12为发动机在发动机转速5000 r/min情况下,各DAQ通道参量在V-ECU与PECU中的变化情况。由于同一DAQ通道的参量间隔时间一般为几个微秒,所以在验证某一DAQ通道的通信效果时,只需对相应通道中的一个参量进行分析,即可反映出该通道的通信速度。在试验过程中了选取3个参量信号进行验证,分别为进气歧管压力信号、节气门开度信号以及大气压力信号。由于进气歧管压力信号在发动机一个工作循环波动较大,所以将该参量安排到Segment通道,即曲轴转半圈事件通道。另外,由于发动机ECU对电子节气门的控制周期较小,一般为几毫秒控制一次,因此将节气门开度信号安排到10ms通道中,能较真实的反映节气门开度变化。最后由于大气压力信号一般变化幅度小,且不受发动机运行状态影响,故将其安排到100 ms通道,便可满足试验要求。

图12 5000rpm各DAQ通道参量获取结果

由试验结果可得,在发动机转速为5 000 r/min时,曲轴12 ms转一圈,即Segment通道中的参量会间隔约6 ms更新一次。V-ECU会在P-ECU发送出DAQ-DTO消息10 ms内获得参量值。对于10ms和100ms DAQ通道的参量,PECU会每隔10ms和100ms将其参量值向外发送一次。而10ms DAQ通道中的参量,V-ECU会在P-ECU发出DAQDTO消息后10ms内获得其参量值。100ms DAQ通道中的参量,V-ECU会在P-ECU发出DAQ-DTO消息后约30ms到40ms左右获得其参量值。综上可得,P-ECU3个DAQ通道中的参量都将会在一个对应通信周期内被V-ECU获取,而往往相关参量在一个周期内变化很小,因此可认为同一时刻某一参量在P-ECU中的数值与V-ECU中的数值相等。所以将该系统用于通过对比两个ECU控制效果差异进行控制算法优化过程中,其控制效果差异是在发动机工况几乎完全相同情况下得到的,从而具有很高的对比分析意义。试验结果表明本文设计的获取P-ECU中参量方法,获取速度足够快,获取变量灵活,能很好满足发动机ECU控制算法对标优化开发要求。

4 结论

基于原机P-ECU和待开发V-ECU双路并行发动机控制系统开发测试试验平台,提出利用遵循CCP协议的主-从设备间DAQ功能,通过V-ECU使能P-ECU中DAQ功能,实现对P-ECU内部工作参量的灵活,高速实时获取与共享应用。研究表明,该方法获取变量灵活且实时性高,能满足发动机ECU控制系统开发需求并提升研发测试效率。此外,还为实时获取封闭式ECU中工作参量信息提供了一种灵活高效的途径。

猜你喜欢

双路参量列表
2017款比亚迪e5无法充电和上电
学习运用列表法
扩列吧
含参量瑕积分的相关性质
基于含时分步积分算法反演单体MgO:APLN多光参量振荡能量场*
双路除氧器上水调门控制
光参量振荡原理综述
自然条件下猪只运动参量提取算法
双路自动分料溜槽设计
列表画树状图各有所长