作者 | WenDao_Engineer

微信公众号 | 闻道工程师之家


在《标定协议基础知识介绍》一文中我们介绍了常用的标定协议有CCP和XCP两种,在前面CCP标定协议系列文章对CCP标定协议指令、DAQ模式以及实现流程做了详细的介绍。XCP标定协议和CCP标定协议在功能都是为了实现标定,但还是有一些差异,本文将从与CCP标定协议差异性的地方来对XCP标定协议进行介绍。

XCP协议标准介绍

CCP标定协议只能是基于CAN通讯来实现标定,随着技术的发展,控制器之间可以有多种通讯协议。因此,ASAM (Association for Standardization of Automation and Measuring Systems,简称 ASAM)组织在2003年提出的可在不同的通信总线上进行标定的新型标定协议,这里的X就表示在不同的通讯协议传输层上传输,包括但不限于CAN、Ethernet、FlexRay、SCI、SPI、USB。XCP标定协议标准主要由以下几部分组成:

Part1 – Overview。XCP协议概述,该部分内容包括XCP的特点描述以及XCP协议的基本原理。

Part2 – Protocol Layer Specification。该部分内容对协议层进行详细的说明,包括XCP数据包类型、格式以及各命令使用说明。

Part3 – Transport Layer Specification。该部分内容包含5份文档,分别对应5个不同的传输层(CAN,Ethernet/TCP_IP,FlexRay,SxI/SCI&SPI,USB),定义不同总线下传输层的实现方式。

Part 4 – Interface Specification。该部分内容主要是对A2L描述文件、秘钥与种子加解密、数据校验功能说明。

Part5 – Example Communication Sequences。该部分内容以实际通讯数据为示例,描述了部分通信数据流,演示如何使用XCP协议的命令同ECU进行通讯。

XCP与CCP协议差异介绍

XCP与CCP标定协议实现机制一样,都是通过上位机与控制器之间交互式指令实现标定。CCP标定协议定义上位机发送给控制器的指令叫CRO,控制器发送给上位机的数据叫做DTO。XCP标定协议定义上位机与控制器之间的指令交互叫CTO,包括上位机发送给控制的CMD以及控制器发送给上位机的RES、ERR、EV以及SERV四种响应,上位机和控制器之间的数据交互叫做DTO包括控制器传输给上位机的DAQ数据和上位机传输给控制器的STIM数据。下面将从以下几方面介绍XCP与CCP协议差异:

指令功能差异

XCP在CCP标定协议功能基础上扩展了SERV和STIM两种功能,其中SERV主要是用于控制器向上位机请求执行相关操作,STIM功能和DAQ功能一样都是为了执行数据传输,只不过DAQ是控制器向上位机周期性上传数据,而STIM正好相反,是上位机向控制器周期性传输数据。

报文格式差异

XCP标定协议为了适用于多种通讯协议,相对于CCP标定协议比较简单的数据包格式,对协议数据包进行了重新定义,如果是应用于CAN通讯方式,将Header和Tail部分去除,重点关注Packet部分就可以了。

—CTO Packet定义

CTO Packet定义只包含了PID和数据域两部分,其中PID为CMD、RES、ERR、EV以及SER各自对应的定义,数据域为需要传输的数据内容。在CTO Packet中没有Timestamp相关定义。

—DTO Packet定义

DTO Packet报文格式定义相对比较复杂,相对于CTO Packet报文定义主要在PID和Timestamp两部分定义的差异:

PID定义

在前面《标定协议之CCP协议的DAQ模式介绍》一文中对DAQ的工作原理进行过详细的介绍,DAQ数据传输时需要匹配DAQ列表编号和ODT数据编号,因此根据DAQ不同的定义PID有以下几种格式:

绝对ODT数据编号

将控制器中所有DAQ列表中的ODT转化为连续绝对的数据编号,通过DAQ传输时所有ODT数据编号是唯一的,因此PID的定义就只有ODT数据编号的内容。

相对ODT数据编号和绝对DAQ列表标号

每一次DAQ数据传输时将明确所传输的DAQ列表标号和当前传输数据在DAQ列表中的ODT数据编号,PID的定义就包含DAQ列表编号和ODT数据编号两部分内容,其中DAQ列表编号可以根据需求定义为一个字节和和两个字节类型。

带数据对齐相对ODT数据编号和绝对DAQ列表标号

如果DTO数据包需要满足某些对齐条件,则需要增加额外的FILL字节。

Timestamp定义

为了保证XCP传输数据的同步,在数据包中可以定义一个Timestamp字段来同步传输数据包的时间戳,当使用DAQ模式时,在每一个DAQ周期开始的第一个ODT中的DTO数据包中发送控制器中当前时钟数值,下一个DAQ周期时类似循环发送。

根据对Timestamp数据长度定义,其数据长度可以从一个字节到四个字节进行定义

由于PID和Timestamp有不同的格式定义,因此DTO数据包格式可以根据实际需求有不同的组合定义

DAQ传输差异

XCP与CCP的DAQ传输原理是完全一样的,具体可以参考《标定协议之CCP的DAQ模式介绍》一文相关介绍。CCP的DAQ传输配置都是在传输开始前进行配置,启动DAQ传输后就不能再对配置更改了,但是XCP为了更加灵活的进行数据传输,在传输过程中可以支持动态修改传输配置,具体可以参考XCP协议标准中DAQ动态配置相关指令介绍。

XCP协议指令介绍

XCP协议标准中的指令都是通过PID进行定义的,根据XCP所支持的不同功能,上位机发送给控制器和控制器发送给上位机的PID指令定义有相关区分:

在XCP协议标准在最主要的PID定义就是上位机发送给控制器的CMD相关定义,其中主要分为以下几部分,具体指令内容可以参考XCP协议标准相关定义。

基础标准指令定义-STD

标定功能指令定义-CAL

标定页面切换指令定义-PAG

DAQ传输指令定义-DAQ

数据刷写指令定义-PGM

本文在前面对CCP标定协议介绍的基础上对XCP协议进行了对比介绍,让大家对XCP标定协议有了一个初步的了解。两者实现的原理都基本一致,只是在具体定义上存在一定差异,可以根据具体的需求详细阅读XCP标准协议定义。

想获取更多及时资讯和学习资源,关注微信公众号“闻道工程师之家”,第一时间收到文章推送!

免责声明:本文素材部分来源于网络,版权归原作者所有,如有涉及侵权,请与我联系删除。

标定协议之XCP标定协议介绍相关推荐

  1. CCP/XCP标定协议解析

    这两周在验证移植到ECU的XCP模块是否正常运转,所以干脆开个专题,说说这个汽车业内常用的标定协议. 背景概述 众所周知,一辆汽车内部会有许许多多的ECU(Electronic Control Uni ...

  2. 【XCP学习】CCP/XCP标定协议解析

    背景概述 众所周知,一辆汽车内部会有许许多多的ECU(Electronic Control Unit),通过CAN, LIN, Gateway 等互相连接通讯,分别或者一起协作控制不同的部件.因而标定 ...

  3. XCP实战系列介绍06-CANape标定及标定后hex生成操作指导

    本文框架 1.概述 2. CANape工程建立 3. XCP标定及后处理介绍 3.1 CANape标定 3.2 标定数据保存 3.3保存标定结果到原hex 3.4 将标定结果copy到hex中 3.5 ...

  4. 汽车标定知识整理(一):标定简介与CCP报文协议简介

    目录 一.什么是标定 二.XCP与CCP 三.CCP报文协议简介 1.CCP报文协议简介 (1)CRO:Command Receive Object ,命令接收对象(由Master -> Sla ...

  5. XCP实战系列介绍16-XCP标定过程指令解析

    本文框架 1.前言 2. XCP标定过程指令解析 1.前言 前面几篇文章我们介绍了XCP底层原理,配置方法及基于CANape,CANoe或Vehicle SPY进行观测或标定的方法,在本篇中我们将对标 ...

  6. 04 Xcp 标定过程介绍

    要更改XCP Slave中的参数,XCP Master必须将参数的位置以及值本身发送给Slave. XCP总是用5个字节定义地址:4个字节用于实际地址,1个字节用于地址扩展.基于CAN传输,XCP消息 ...

  7. 实现国标GB/T2818视频流媒体解决方案EasyGBS国标GB28181-2016版的sip协议tcp沾包流程说明介绍

    实现国标GB/T2818视频流媒体解决方案EasyGBS国标GB28181-2016版的sip协议tcp沾包流程说明介绍 参考文章: (1)实现国标GB/T2818视频流媒体解决方案EasyGBS国标 ...

  8. 远程访问的类型 使用的协议和身份验证方法介绍

    1.1 远程访问 通过将"路由和远程访问"配置为充当远程访问服务器,可以将远程工作人员或流动工作人员连接到组织网络上.远程用户可以像其计算机物理连接到网络上一样进行工作. 利用远程 ...

  9. 蓝牙 BLE 协议学习: 有关概念介绍

    背景 在学校内就用过蓝牙技术参加过比赛(并拿了奖):而蓝牙作为物联网中比较常见的协议,有必要进行深入的学习.此后的文章会以 ble(v4.0) 进行学习. 介绍 蓝牙技术最初由电信巨头爱立信公司于 1 ...

最新文章

  1. linux命令grep如何使用,Linux下如何使用grep搜索文本
  2. python能绘制统计图吗-Python数据科学(九)- 使用Pandas绘制统计图表
  3. 千万级日订单下,饿了么异地多活数据实施DRC的应用实践
  4. 深入分析几种PHP获取客户端IP的情况
  5. java配置出现的问题解释_java SE问题总结(持续更新。。。)
  6. 5、SpringBoot 发送邮件
  7. C语言实现升序优先队列Ascending priority queue(附完整源码)
  8. python pip install pipenv失败_pipenv 无法创建依赖情况应该怎么处理?大家有什么好的建议吗?...
  9. 网红证明题:圆周率其实应该是4!看完真的不明觉厉?
  10. C/C++ 获取目录下的文件列表信息
  11. Python函数默认值参数的2个坑
  12. 互联网分布式微服务云平台规划分析--SSO单点登录系统
  13. git如何切换dev_git 切换远程分支
  14. CobaltStrike服务端自身隐匿技巧
  15. ckplayer在手机用不了解决方法
  16. 为Python程序添加桌面快捷方式
  17. 安装Java并配置环境,安装eclipse,在GitHub中上传代码
  18. 【复变函数与积分变换】第1章 复数——1.1 复数的定义及其四则运算
  19. 我的mybatis-plus用法,被全公司同事开始悄悄模仿了
  20. CAPL入门:结合panel面板实现按钮触发功能

热门文章

  1. 鸿蒙系统桌面有斜纹,十代酷睿i9+AMD RX 640独显:戴尔发布OptiPlex 7080 Micro瘦客机...
  2. python制表符怎么用_python怎样输入制表符
  3. 第十章 读后心得体会
  4. 易语言获取html源码,易语言穿透所有框架取网页元素源码
  5. JavaScript-正则表达式邮箱验证
  6. 一次拍摄搞定多相机自动化标定
  7. 20个有用的Excel数据分析函数(教程含案例)
  8. VMware Workstation16安装win10系统图文教程
  9. R语言缺失值判断与处理-2
  10. 别再说学生党坑了,你知道我们为了玩吃鸡有多努力吗?