APP下载

基于CCP 协议的ECU 标定系统上位机设计

2021-11-26董昌兴尹欣欣

汽车电器 2021年11期
关键词:命令报文标定

李 丽, 董昌兴, 尹欣欣

(陕西法士特齿轮有限责任公司, 陕西 西安 710077)

1 引言

随着汽车电子技术的发展,标定已经成为开发电子控制单元 (ECU) 的一个重要环节。通过标定系统,可以实时获取ECU内部的变量,还可以对ECU内部的标定变量进行在线标定以优化其控制参数。

目前,CCP (CAN Calibration Protocol) 协议是国际上主流的测量和标定规范,它是一种基于CAN 线的通信协议,是标准化组织ASAP制 定 的 MCD ( MeasurementCalibrationand-Diagnostics) 模 型 中 的一部分,MCD模型定义了ASAP1、ASAP2、ASAP3标准,如图1所示。其中,ASAP1 是应用层和控制设备之间接口的标准,分为1a标准和1b标准,其中1a是物理层和协议层,CCP 就是从属于这个标准的协议[1]。

图1 MCD模型

采用CCP协议可以快速而有效地实现对汽车电控单元的标定,但是符合要求的 CCP 协议的软件部分基本都依赖于国外的专业软件 (比如德国的 VECTOR 公司的CANAPE),国内还没有成熟的基于CCP协议的ECU标定系统,国内厂商在普及CCP协议的过程中,需要高价购买国外公司的相关诊断产品进行标定诊断,同时目前无法同时实现多种协议(UDS、CCP、J1939) 的融合,需要借助于多种软件工具来实现不同协议的功能,研究并掌握CCP的核心技术,有非常重要的意义。

2 CCP协议

CCP协议采用主从式的通信方式[2],系统中只能有一个主设备,但可以有多个从设备。其中,主设备是上位机,即遵循CCP协议的测量标定系统,从设备是支持CCP协议的ECU,主设备通过CAN线与从设备相连,如图2所示。

图2 CCP通信结构图

CCP协议中,主设备与从设备之间的通信可分为两种,即polling模式和DAQ模式[3]。

1) polling模式,即一问一答模式,主设备先问,从设备回答,两者之间通过不断交互来实现通信和数据交换,这种模式下,主设备和某一从设备建立连接后,每一次通信都是由主设备发送一个命令请求开始的,请求从设备执行某项操作,或请求从设备内部的数据。从设备收到请求命令后,执行相应的操作,并返回一帧消息,提供主设备请求的数据及命令执行情况,使用这种通信方式,标定系统实现起来比较简单,但是效率低。

2) DAQ模式,即一问多答模式,这种模式下,主设备和某一从设备建立连接后,主设备先发送一条DAQ请求,从设备收到请求命令后,按命令中的参数自行配置组织数据,并按照一定周期主动上传。这种模式不需要主设备通过命令逐步控制,所以工作效率比较高,标定系统实现起来比较复杂[4]。

CCP协议遵从CAN总线通信规范,基于CCP的通信均以CAN报文的形式实现,所有收发的数据都打包成最多8字节的报文。报文分为两种,即命令接收对象 (CRO) 和数据传输对象 (DTO),它们各使用一个CAN ID,CAN ID的值可从A2L文件导入。A2L文件是包含ECU中变量信息的文件,包括:变量名称、数据类型、变量的上下限等信息。上位机软件通过解析A2L文件,得到ECU中变量的信息。

CRO是由主设备向从设备发送的消息对象,包括命令代码和命令参数,CCP协议中总共规定了28条CRO,这些命令的不同组合可以实现标定系统的所有功能。DTO则是从设备向主设备返回的消息。主设备和从设备建立逻辑连接后,主设备通过CRO向从设备发送命令和参数,从设备接收命令后执行相应的操作,并将DTO反馈给主设备,完成一次通信[5]。DTO可以分为3种。

1) 命令返回消息,用于反馈CRO命令的执行情况。

2) 事件消息,用于从设备主动向主设备报告其内部发生错误机制。

3) 数据采集消息,用于在DAQ模式下,从设备自行周期性地向主设备发送数据。

3 标定系统

3.1 上位机软件整体框架

图3所示,标定系统由主设备、CAN通信卡和从设备组成,其中主设备采用C#编写标定软件,CAN通信卡采用USBCAN卡,实现USB数据流和CAN数据流的转换。

图3 标定系统总体结构

3.2 CCP 协议栈实现

CCP协议栈作为整个标定系统的核心,其实现流程如图4所示。

图4 CCP协议栈实现流程

1) 启动CAN报文接收器,持续不断地接收CAN线报文。

2) 由CCP驱动器发送CRO指令。

3) CCP驱动器挂起,等待DTO报文。

4) CAN报文接收器接收到DTO报文后,唤醒CCP驱动器,CCP驱动器完成该CCP命令。

5) 根据来自上层应用的CCP指令请求,继续以上操作,来完成相关的CCP指令。

3.3 J1939协议栈实现

J1939协议栈主要用于针对CAN线报文的解析,从而保证标定系统能够同时采集控制器内部数据和CAN线数据。其实现流程如图5所示。

图5 J1939协议栈实现

1) 启动CAN报文接收器,持续不断地接收CAN线报文。

2) 根据接收到的报文ID,判断该报文是否是CCP协议报文或者UDS协议报文,如果是CCP协议报文或者UDS协议报文,则启动对应的报文处理机制,这次报文接收处理终了,否则,启动J1939协议栈进行报文处理。

3) 首先判断该报文是否为多帧报文,如果是,则持续接收该多帧报文的后续数据报文,直到全部接收,将其组合为一个多帧报文,按照DBC定义文件进行信号解析;如果不是多帧报文,则直接按照DBC定义文件进行信号解析。

4) 最后,将解析到的信号进行记录和处理。

4 标定平台功能实现

4.1 设置功能

系统设置页面如图6所示,可以选择USBCAN设备类型,支持周立功USBCAN、广成 科 技 USBCAN、PCAN 等设备,设置CAN线波特率,选择DBC 文 件 以 及 A2L 文件。DBC文件为解析CAN线报文信号用的DBC文件,如果不需要解析CAN线报文信号,也可以不设置DBC文件。 A2L文件为解析控制器内部变量用的A2L文件,用于内部变量的监视和标定量的标定。

图6 系统设置

4.2 数据监测、标定功能

工具栏具备开始数据监视,停止数据监视,保存页面上设置的监测变量,变更内部数据变量的监测方式 (DAQ 和Polling)。

节点树分3部分,观测量和标定量来自于A2L文件中定义的观测量和标定量,dbc文件节点来自于设置页面设置的DBC文件。根据监测需要,可以添加观测量、标定量、DBC信号量到数据显示区域。

数据显示区域显示来自于节点树添加的变量,通过【观测量】、【标定量】和【DBC 文件】tab页,分别显示添加的变量。【图形化】Tab页,以图形显示的方式,显示数据变量的实时变化曲线。图7为系统监测标定页面。

图7 系统监测标定页面

4.3 数据分析功能

数据分析页面如图8所示,可以对采集到的数据文件(*.csv) 进行图形化分析。可以改变变量图形显示的颜色和线条粗细,可以通过工具栏的坐标系变更框来改变多个变量显示的坐标系。

图8 数据分析页面

5 结论

经反复调试,该标定系统实现了ECU内部数据和CAN线数据的监测,以及ECU内部数据的标定,因此,在售后服务工具开发中,能得到很好地应用。

猜你喜欢

命令报文标定
基于J1939 协议多包报文的时序研究及应用
只听主人的命令
CTCS-2级报文数据管理需求分析和实现
使用朗仁H6 Pro标定北汽绅宝转向角传感器
浅析反驳类报文要点
移防命令下达后
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
船载高精度星敏感器安装角的标定
ATS与列车通信报文分析
这是人民的命令