语言

新闻中心

用技术影响一个行业,用科学引领新生活,是大多数工程师的梦想,让FineTooling与您携手,共同铸就梦想!

XCP协议简介(Universal Calibration Protocol)
发布时间:2024-01-18 | 浏览量:0

1.XCP协议简介

1.1. 背景:

   随着汽车电子的高速发展,汽车上的ECU越来越多,各控制器间协同工作,控制着不同的部件。ECU通过采集不同的输入信息,比如加速踏板,制动踏板,巡航,起停等,采用特定的算法计算输出,为了达到理想的控制效果,算法中包含较多的可标定参数,根据不同的输入和工况等调整。

   ECU中的程序由软件工程师设计开发,而算法中的可标定参数,是需要在实验中根据我们追求的经济性、动力性、舒适性和满足排放法规等来设置,这部分工作是由标定工程师在软件开发后利用改变参数分析性能反复迭代最终测定,因此标定工程师就需要对不同参数进行获取(读操作)和标定(写操作)。

1.2. XCP出现:

   XCP全称Universal Calibration Protocol,是由ASAM 组织(Association for Standardization of Automation and Measuring Systems)2003年提出的可在不同的通信总线上进行标定的新型标定协议,这里的X代表不同的传输层上传输(CANEthernetFlexRaySCISPIUSB)。现在使用的已经是在2015年更新后的1.3版本。

   XCP主要应用于测量和标定ECU内部参数。此协议能够使数据采集工作与ECU内部运行的任务和中断同步,从而保证每当ECU软件更新参数时,能快速采集到所需的参数值。

 

2.A2L文件简介

   为了实现对ECU内部参数的测量和标定功能,XCP Master必须知晓ECU不同内存区的详细信息。

   ASAP2(A2L)文件是对ECU的说明描述文件,XCP使用时总是与A2L文件配合使用。该文件包含使用XCP所需的必要信息,包括关于ECU参数、内存变量和ECU内存详细地址信息以及如何解锁访问XCP功能的安全信息。A2L是基于ECU软件生成的,ECU软件的对象包含在A2L文件中。

   1展示的是测量和校准工具与ECUA2L文件、更高级的自动化系统连接的接口模型。

FIDAS 板卡机箱,XCP协议简介,HWSuit系统

图1 ASMA接口模型

3.XCP on CAN读写实践

   实践主要是根据A2L文件描述,使用CAN盒实现与ECU的通信,实现数据的读写操作。

3.1. XCP on CAN报文简介:

XCPCAN上信息框架如下表所示。已定义的PID,从C0FF都有对应的XCP指令,从机接收到指令后,根据响应情况返回FCFF的结果。CAN报文一共8个字节,XCP Header为空,以PID开头,也就是以C0~FF的指令开头,相应的从机返回的报文也是以PID开头的。

XCP Header

XCP Packet

XCP Tail

empty

PID

FILL

DAQ

TIMESTAMP

DATA

FILL

 

PID

Master to slave

FF

...

C0

Slave to master

FF/RES

FE/ERR

FD/EV

FC/SERV

 

 

3.2. 读写实践

3.2.1. 连接:

首先,要让主从设备建立连接。

主机报文格式如下:

0

1

2

3

4

5

6

7

FF

Mode








从机返回报文格式如下:


0

1

2

3

4

5

6

7

FF

Resource

Com_mode

MAX_CTO

MAX_DTO

Protocol

Transport

Resource的解释如下表所示:

Resource

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

0

0

PGM

STIM

DAQ

0

CAL/PAG

Com_mode的解释如下表所示:

Com_mode

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

Opt

Slave_block_mode

0

0

0

AG_1

AG_0

CAL/PAG

 

下面结合实践例子对报文内容进行说明:

举例:TX FF 00

RX FF 1D C0 08 08 00 01 01

FF为连接命令;模式00表示主机可以与从机启动XCP通信

FF表示连接成功;1D0001 1101,表示所有资源可用;C01100 0000,表示支持类型的附加信息的通信模式,从机块模式可用,AGBYTE08表示CTO最大字节为80800表示DTO最大字节为8;两个01表示协议层和传输层版本。

 

3.2.2. 获取状态:

主从设备完成连接后,需要获取当前状态。

主机报文格式如下:

0

1

2

3

4

5

6

7

FD








从机返回报文格式如下:

0

1

2

3

4

5

6

7

FF

Session

Protection

Reserved

Session ID



Session的解释如下表所示:

Session

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

Resume

DAQ_RUN

0

0

CLE_DAQ

STO_DAQ

0

STO_CAL

Protection的解释如下表所示:

Protection

Bit7

Bit6

Bit5

Bit4

Bit3

Bit2

Bit1

Bit0

0

0

0

PGM

STIM

DAQ

0

CAL/PAG

 

下面结合实践例子对报文内容进行说明:

举例:TX FD

           RX FF 00 00 00 00 00

RX第二个字节的00,表示所有资源可用;若第二个字节为1D,即0001 1101,表示所有资源都被锁定了,需要先进行解锁操作才能使用相应命令。

 

3.2.3. 解锁

当发现想使用的资源锁定时,要先进行解密。密钥是通过种子变换得到的。首先要获取种子。

主机报文格式如下:

0

1

2

3

4

5

6

7

F8

Mode

Resource






从机返回报文格式如下:

0

1

2

3

4

5

6

7

FF

Length

Seed

 

下面结合实践例子对报文内容进行说明:

举例: TX F8 00 01

RX FF 0A A7 88 5F D3 C3 58

TX  F8 01 01

RX  FF 04 EF 28 34 EF

TX第二个字节的00,表示获取第一部分种子;第三个字节为01,表示要解锁的目标是CAL/PAGRX的第二个字节0A表示种子长度,这里长度为10,但是只能先获得前6个字节。然后再使用F8命令,模式选择01,表示获取剩余种子,第二次从机将返回剩余的4个字节。

 

获得种子之后经过变换得到密钥,接下来进行解密操作。

主机报文格式如下:

0

1

2

3

4

5

6

7

F7

Length

Key

从机返回报文格式如下:

0

1

2

3

4

5

6

7

FF

Protection


 

下面结合实践例子对报文内容进行说明:

举例:TX F7 09 82 FC 3F 43 50 D2

RX FF 1D

TX  F8 03 3B 00 86

RX FF 1C

与获取种子类似,当密钥长度大于6个字节时,需要多次发送。本例中,密钥长度为9,所以第一次输入6个字节,第二次输入剩余的3个字节。最终从机返回1C,即0001 1100,表示CAL/PAG资源可用,解锁成功。

 

3.2.4. 数据读取

解锁成功后就能进行数据读取了。

主机报文格式如下:

0

1

2

3

4

5

6

7

F4

Number

Reserved

Extension

Address

从机返回报文格式如下:

0

1

2

3

4

5

6

7

FF

Data

 

下面结合实践例子对报文内容进行说明:

举例:TX F4 04 00 00 28 76 01 70

RX FF D7 A3 3C 41

本例中读取的是供电电压值。在A2L文件中检索V_FCT_KL30字段,如图2所示。KL30是供电电压12V的蓄电池,理论上读回来的值应该在12V左右。

FIDAS 板卡机箱,XCP协议简介,HWSuit系统

2 A2L文件中对V_FCT_KL30的描述

A2L文件中可以得到数据类型为浮点数,数据地址为0x70017628。此处需要注意地址高低位顺序,在CAN报文中地址先写28最后写70。同理,从机返回数据值也要注意高低位顺序,将413CA3D7转为浮点数为11.79,与理论值接近。

 

3.2.5. 数据标定

数据标定的流程是这样的:首先要设置数据标定页面,然后设置地址,最后将数据写入该地址。

数据标定页面设置:

主机报文格式如下:

0

1

2

3

4

5

6

7

EB

Mode

Segment

Page


从机返回报文格式如下:

0

1

2

3

4

5

6

7

FF


 

地址设置:

主机报文格式如下:

0

1

2

3

4

5

6

7

F6

Reserved

Extension

Address

从机返回报文格式如下:

0

1

2

3

4

5

6

7

FF


 

数据标定:

主机报文格式如下:

0

1

2

3

4

5

6

7

F0

Number

Data

从机返回报文格式如下:

0

1

2

3

4

5

6

7

FF


 

下面结合实践例子对报文内容进行说明:

举例:TX EB 83 01 01

RX FF

TX F6 00 00 00 E0 7C 29 80

RX FF

TX  F0 02 01 0D

RX FF

页面设置命令的第二个字节写83,即1000 0011,表示所有模式开启,也可以只开启其中的一个或几个,比如写010280等。

本例中标定的是C_CDD_FCT_PCBA_Step,在A2L文件中检索,如图3所示:

FIDAS 板卡机箱,XCP协议简介,HWSuit系统

3 A2L文件中对C_CDD_FCT_PCBA_Step的描述

A2L文件中可以得到C_CDD_FCT_PCBA_Step的地址,使用F6命令进行设置,同样需要注意地址的高低位顺序。将其标定为0x0D01,使用F0命令进行标定,同样需要注意高低位顺序。标定完成后可以使用F4命令读取,检验是否标定成功。

 

4. XCP协议总结

XCP协议是一个开放的标准,被广泛应用于多个汽车系统供应商和工具提供商之间的通信。XCP协议使用了高效的数据传输机制,提供了灵活的数据访问和控制功能。可以对ECU的内部参数进行实时监测和修改,同时也支持离线校准,可以在车辆离线状态下进行参数调整和配置。另外,XCP协议支持安全认证和数据加密,可以确保通信过程中的数据安全性。XCP协议在汽车系统应用中具有跨平台兼容、高效、灵活和安全等优势和特点,为汽车电子系统的测量和校准提供了可靠的解决方案。

5. 未来智能汽车发展方向及方瞳方案

随着汽车智能化的不断发展,车辆的电子系统变得越来越复杂。传统汽车E/E架构采用分布式,功能系统的核心依赖于ECU和传感器数量的累加。随着汽车智能化升级的加速,原有分布式架构面临着研发和生产成本剧增、安全性降低、算力不足等问题。新能源汽车最早开始将E/E架构集中化,将原本相互孤立的ECU相互融合,域控制器也由此应运而生。汽车的智能化趋势和OTA需求推动了汽车E/E结构从分布式ECU架构向域控制器解决方案的转变。

未来智能汽车将向着可持续升级发展,整车厂会选择“硬件超配,后续软件迭代升级”的方式,进入真正的软件定义汽车时代。域控制器是未来汽车的“大脑”,为了满足更高阶的智能驾驶需求,域控制器中的主控芯片会走向集成“CPU+XPU”的异构式SoCXPU包括GPU/FPGA/ASIC等)。为了方便迭代升级,域控制器中数据的测量尤为重要。

XCP协议提供了一种高效、灵活的测量和校准通信机制。可以满足对车辆内部参数进行实时监测和修改的需求。但如果继续采用传统方法进行数据测量,其效率也会成为智能汽车的升级发展的一个阻力因素。

针对ECU或域控制器内部数据测量的效率问题,方瞳科技结合XCP协议的优势,提供XPCU自动化测试机台,可以帮助客户进行ECU或域控制器内部数据的快速采集和分析。通过自动化测试极大提高效率,助力智能汽车升级发展。

FIDAS 板卡机箱,XCP协议简介,HWSuit系统

4 方瞳科技XPCU自动化测试机台


 
 
上一篇:方瞳科技:基于加速度计的振动状态监测
下一篇:Fidas数据采集机箱:电流电压等数据采集解决方案

Copyright © 2020 广州市方瞳科技有限责任公司All Rights Reserved   备:粤ICP备16102240号

15989000065

扫一扫
关注公众号

扫一扫关注公众号