XCP通信流程

参考链接

xcp

CTO(命令传输对象)被用来将命令从Master发送到Slave,以及将Slave的响应发送到Master。
DTO(数据传输对象)可用于数据交换、同步测量和标定数据
DAQ表示数据采集,是通过Slave向Master发送DTO(数据传输对象)来实现的。

xcp 数据格式

单帧命令

TsMaster ECU cmd positive response negative response alt [肯定应答] [否定应答] TsMaster ECU
命令格式
字节描述备注
0CMD发生的命令
1~MAX_CTO-1parameter发生的命令的参数
应答格式

肯定应答

字节描述备注
00xFF肯定应答
1~MAX_CTO-1parameter应答参数

否定应答

字节描述备注
00xFE否定应答
1ErrorCode错误码
2~MAX_CTO-1parameter应答参数

Slave To Master

Asynchronous Event(异步事件)
TsMaster ECU send Event TsMaster ECU
字节描述备注
00xFD事件命令
1EventCode事件码
2~MAX_CTO-1parameter发生的命令的参数
Service
TsMaster ECU request Service TsMaster ECU
字节描述备注
00xFC服务命令
1ServiceRequestCode服务请求码
2~MAX_CTO-1parameter发生的命令的参数

xcp 命令

标准命令

命令PID备注
CONNECT0xFF连接ECU必实现指令
DISCONNECT0xFE断开ECU连接必实现指令
GET_STATUS0xFD获取ECU状态必实现指令
SYNCH0xFC同步ECU必实现指令
GET_COMM_MODE_INFO0xFB获取ECU通过模式信息
GET_ID0xFA获取id
SET_REQUEST0xF9获取id
GET_SEED0xF8请求种子
UNLOCK0xF7发生秘钥解锁受保护资源
SET_MTA0xF6初始化一个指针
UPLOAD0xF5从ECU获取数据
SHORT_UPLOAD从ECU获取短数据
BUILD_CHECKSUM0xF3构建校验和
TRANSPORT_LAYER_CMD0xF2传输层命令,有子命令
USER_CMD0xF1用户指令

标定指令

命令PID备注
DOWNLOAD0xF0下载到ECU必实现指令
DOWNLOAD_NEXT0xEF下载到ECU(块模式)
DOWNLOAD_MAX0xEE下载到ECU(固定模式)
SHORT_DOWNLOAD0xED下载短数据到ECU
MODIFY_BIT0xEC修改bit位

页切换指令

命令PID备注
SET_CAL_PAGE0xEB设置校准页必实现指令
GET_CAL_PAGE0xEA获取校准页必实现指令
GET_PAG_PROCESSOR_INFO0xE9获取页处理信息
GET_SEGMENT_INFO0xE8获取段信息
GET_PAGE_INFO0xE7获取页信息
SET_SEGMENT_MODE0xE6设置段模式
GET_SEGMENT_MODE0xE5获取段模式
DCOPY_CAL_PAGE0xE4拷贝校准页

数据采集(DAQ)指令(静态)

命令PID备注
CLEAR_DAQ_LIST0xE3清空DAQ列表必实现指令
SET_DAQ_PTR0xE2设置DAQ指针
WRITE_DAQ0xE1ODT条目写DAQ列表
SET_DAQ_LIST_MODE0xE0设置DAQ列表模式
GET_DAQ_LIST_MODE0xDF获取DAQ列表模式
START_STOP_DAQ_LIST0xDE启动/停止/选择DAQ列表
START_STOP_SYNCH0xDD同步启动/停止DAQ列表

数据采集(DAQ)指令(动态)

命令PID备注
FREE_DAQ0xD6清除所有的DAQ列表必实现指令
ALLOC_DAQ0xD5为XCP从设备分配了一些DAQ列表必实现指令
ALLOC_ODT0xD4将若干odt分配到指定的DAQ列表必实现指令
ALLOC_ODT_ENTRY0xD3将若干ODT表项给到指定的DAQ中必实现指令

存储器编程(PGM)指令

命令PID备注
PROGRAM_START0xD2编程序列开始必实现指令
PROGRAM_CLEAR0xD1清除一段非易失性内存必实现指令
PROGRAM0xD0编程指令必实现指令
PROGRAM_RESET0xCF编程指令必实现指令
GET_PGM_PROCESSOR_INFO0xCE获取编程处理器信息必实现指令
GET_SECTOR_INFO0xCD获取段信息可选指令
PROGRAM_PREPARE0xCC准备编程可选指令
:PROGRAM_FORMAT0xCB编程前设置数据格式可选指令
PROGRAM_NEXT0xCA编程一个存储段(快模式)可选指令
PROGRAM_MAX0xC9编程一个存储段(固定大小模式)
PROGRAM_VERIFY0xC8程序验证可选指令

xcp 通信过程过程

XCP 发生ID 610
XCP 接收ID 61A

xcp 建立连接

xcp 标定过程

TsMaster ECU F6 00 00 00 10 69 03 08 FF 传输标定地址 F0 04 6D 00 00 00 00 00 FF 传输标定数据 TsMaster ECU

第一帧 设置地址:

描述F6 00 00 00 10 69 03 08
0CMD设置DAQ地址F6
1~2Reserved0x0000
3Extension地址扩展0x00
4~7Address地址0x08036910

第二帧 下载数据:

描述F0 01 6D 00 00 00 00 00
0CMD设置DAQ地址F0
1Number传输数据字节数0x04
2~nData地址扩展0x6D000000

xcp 观察量启动停止过程过程

TsMaster ECU D7 00 00 00 00 00 00 00 FF 04 01 06 01 06 03 获取事件通道0的信息 F5 06 00 00 00 00 00 00 FF 43 48 5F 31 6D 73 请求事件通道0名称 D7 00 01 00 00 00 00 00 FF 04 01 07 01 07 02 获取事件通道1的信息 F5 07 00 00 00 00 00 00 FF 43 48 5F 31 30 6D 73 请求事件通道1名称 D7 00 02 00 00 00 00 00 FF 04 01 09 64 07 01 获取事件通道2的信息 F5 09 00 00 00 00 00 00 FF 43 48 5F 31 30 30 30 FF 6D 73 请求事件通道2名称 D6 00 00 00 00 00 00 00 FF 清除所有的DAQ列表 D5 00 01 00 00 00 00 00 FF 分配了一些DAQ列表 D4 00 00 00 01 00 00 00 FF 为DAQ列表分配ODT个数 D3 00 00 00 00 01 00 00 FF ODT表项分配DAQ名单 E2 00 00 00 00 00 00 00 FF 设置DAQ地址 E1 FF 04 00 08 69 03 08 FF 写DAQ E0 00 00 00 01 00 01 00 FF 设置DAQ模式 DD 01 00 00 00 00 00 00 FF 同步启动数据传输采集列表 00 6D F3 09 00 00 24 06 01 24 00 ... 传输的观测量数据 DD 00 00 00 00 00 00 00 FF 同步停止数据传输采集列表 TsMaster ECU

获取事件通道 0信息:

描述D7 00 00 00 00 00 00 00
0CMD获取事件通道信息0xD7
1Reserved保留0x00
2~3Event channel number事件通道号0x0000

事件通道信息应答:

描述FF 04 01 06 01 06 03
0CMD肯定应答0xFF
1PropertyBit3:STIM Bit2:DAT0x04:仅支持DAQ
2MAX_DAQ最大DAQ01
3EventNameLength事件名称字节数06 :“CH_1ms”
4Time Cycle事件周期01:1ms
5Time Unit时间单位06
6Priority优先级03

请求从设备上传数据:

描述F5 06 00 00 00 00 00 00
0CMD从设备上传数据0xF5
1Number数据长度0x06

从设备上传数据:

描述FF 43 48 5F 31 6D 73
0CMD肯定应答0xFF
1~nData数据0x06

清除所有的DAQ列表:

描述D6 00 00 00 00 00 00 00
0CMD清除所有的DAQ列表0xD6

分配了一些DAQ列表

描述D5 00 01 00 00 00 00 00
0CMD分配了一些DAQ列表0xD5
1Reserved保留0x00
2~3DAQ_COUNTDAQ 数量0x01

为DAQ列表分配ODT个数

描述D5 00 01 00 00 00 00 00
0CMD分配了一些DAQ列表0xD4
1Reserved保留0x00
2~3DAQ_LIST_NUMBERDAQ 编号0x0000
4ODT_COUNTODT个数0x01

若干ODT表项分配给指定的DAQ名单

描述D3 00 00 00 00 01 00 00
0CMDODT表项分配0xD3
1Reserved保留0x00
2~3DAQ_LIST_NUMBERDAQ 编号0x0000
4ODT_NUMBERODT编号
4ODT_ENTERIES分配的ODT条目数0x01

设置DAQ地址

描述E2 00 00 00 00 00 00 00
0CMDDAQ地址0xE2

写DAQ

描述E1 FF 04 00 08 69 03 08
0CMD写DAQ地址0xE1
1BIT_OFFSET字节偏移0XFF:该字段可以忽略
2size of DAQDAQ 大小04
3Externsion地址扩展00
4~7Address地址0x08036908

设置DAQ模式

描述E0 00 00 00 01 00 01 00
0CMD设置DAQ模式0xE0
1ModeBIT5:PID_OFF(PID) BIT4:TIMESTAMP(时间戳) BIT1: 数据采集模式0x00:DAQ设置为数据采集模式(Slave -> Master)
2~3DAQ_LISTDAQ 列表编号0x0000
4~5Event Channel事件通道号0x0001
6Rate传输速率0x01
7Priority优先级0x00

启动同步传输:

描述DD 01 00 00 00 00 00 00
0CMD同步启停数据层传输0xDD
1Parameter0x00:停止所有0x01
0x01:启动被选择的
0x02:停止被选择的

返回的观测量

描述00 6D F3 09 00 00 24 06
0数据开始i0x00
1data一个uint8观测量数据0x6D
2~5data一个uint32观测量数据0x000009F3
6~7data一个uint32观测量数据低二字节0x0624
第二帧01 24 00
0~1data一个uint32观测量数据高二字节0x2401
3数据结束0x00
  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值