ASAM_CCP_V2.1.0_cn
1简介
- ASAP
ASAP特别工作组(Arbeitskreis zur Standardisierung von Applikationssystemen;英文翻译:应用/校准系统标准化工作组)由奥迪公司,宝马公司,梅赛德斯 - 奔驰公司,保时捷公司和大众汽车公司共同创立。欧洲自动化制造商 ,汽车行业的测试和开发系统以及电子控制单元的制造商已加入该工作组。
汽车技术世界已发展成复杂的电子系统配置,以满足法定废气限制,环境污染防护,安全系统,驾驶性能和车身设备选项方面的增长要求。一些汽车制造商在车辆分布式控制系统中使用 通过网络。
为了开发新一代汽车电子产品,必须使用新的和高级的软件,校准,测量和诊断设备。此时,这些设备的软件接口领域几乎没有标准。 每家公司都有其专有的系统和接口,以支持这些高端配置的开发。
因此,ASAP的使命是达成共识和标准化
- ·自动化,模块化和所有设备的兼容性,以进行测量,校准和诊断,以及
- ·管理创建成本合理且合理的工具供应商市场。
- CAN校准协议(CCP)
控制器局域网CAN是Robert Bosch GmbH和Intel Corporation的联合开发.CAN用于许多高端汽车控制系统,如发动机管理和工业控制系统.CAN的控制器芯片可从各种半导体制造商处获得。
CAN校准协议是ASAP标准的一部分。它由校准系统制造商IngenieurbüroHelmutKleinknecht开发和推出,用于汽车行业的多种应用.ASC由ASAP工作组接管并增强 带有可选功能。
2适用范围和领域
本文档指定了ASAP任务组内工作组定义的CAN校准协议CCP。
CCP使用CAN 2.0B(11位和29位标识符)定义控制器与主设备的通信,其中包括2.0A(11位标识符)
- 从控制器获取数据,
- 存储器传输到控制器并控制控制器中的功能以进行校准。
CCP提供这些功能可用于以下领域
- ·电子控制单元(ECU)的开发
- ·ECU的功能和环境测试系统,
- ·受控设备的测试系统和测试台(内燃机,变速箱,悬架系统,气候控制系统,车身系统,防抱死系统),
- ·预装系列车辆的车载测试和测量系统
- ·基于CAN的分布式电子控制系统的任何非汽车应用。
3相关文件
英特尔公司的规格和数据表:
- ·82527串行通信控制器数据表(英特尔#272250)
- ·82527串行通信控制器架构概述(英特尔#272410)
- ·控制器局域网(CAN)协议简介(英特尔#270962)
4修订历史
5定义和缩写
CAN
控制器区域网络:由Robert Bosch GmbH开发和维护的通信协议(ISO / OSI模型级别1 + 2)。该协议旨在管理多个CPU之间的多路复用通信。它是面向控制信息,使用非破坏性的逐位 仲裁以决定哪个节点“拥有”总线,并且具有基于与每个消息一起发送的消息标识符的值的消息优先级方案。
CCP
CAN校准协议:由IngenieurbüroHelmutKleinknecht开发,并由ASAP特别工作组采用,作为数据采集和校准的标准协议。
CRO
命令接收对象:从主设备发送到从设备的消息。
CRM
命令返回消息:从设备发送到主设备的一种消息,包含命令/错误代码和命令计数器。
DAQ
数据采集:定义从设备发送到主设备的过程和消息,以便从ECU快速获取数据。
DTO
数据传输对象:从设备发送到主设备的消息(命令返回消息或事件消息或数据采集消息)。
ECU
电子控制单元:具有中央处理单元的电子设备,其外围电路执行编程功能。
消息对象
在CAN上传输的消息,从发送ECU发送到任何接收/侦听ECU。消息中包含的数据的编码由接收ECU“知道”。 消息对象的数据可以是0到8个字节。
消息帧
消息帧是最近关于CAN的文献中消息对象的同义名称。
主设备和从设备
通过CAN连接的一组控制器交换消息对象。 连接到网络的附加“外部”控制器与一个或多个这些控制器通信并向它们发出命令,这里称为主设备(主机)。现有网络接收命令中的控制器称为“从设备””。
ODT
对象描述符表:用于组织数据采集的元素(变量)列表。
6协议定义
用于校准和数据采集的CAN通信协议是主设备类型通信。主设备与CAN上的一个或多个从设备连接:
配置主设备和从设备
主设备(主机)是校准工具或诊断/监视工具或测量系统,通过向从设备发送命令来启动CAN上的数据传输.CCP实现支持通过原始存储器传输和数据进行通用控制的命令通信协议的这两个部分(功能集)是独立的,并且可以异步运行,这取决于从控制器中的实现。两个部分的消息也可以以嵌套顺序传输。
6.1通用控制命令
这些命令用于在从设备中执行功能。为此,在主设备和CAN(从设备)上的任何其他站之间建立连续的逻辑连接。此逻辑连接有效,直到选择了另一个站或 当前站通过命令明确断开。
在初始化逻辑连接之后,从主设备到从设备以及从设备到主设备的数据传输由主设备控制。
来自主设备的所有命令必须由所选从设备通过握手消息(命令返回码或错误代码)提示。
6.2数据采集命令
这些协议命令用于从设备的连续数据获取。任何CAN节点可以周期性地发送与由来自主设备的控制命令配置的列表相对应的内部数据。数据传输由主设备发起并由从设备并且可以取决于固定的采样率和/或可以是事件驱动的(例如,曲柄位置)。
7消息对象
7.1消息对象的组织
根据CAN的定义,所有要传输的消息和数据都被打包到“消息对象”中,最多包含8个字节的数据。消息对象从一个CAN节点发送到其他CAN节点。
CCP需要至少两个消息对象,每个方向一个:
1)命令接收对象:CRO
2)数据传输对象:DTO
CRO用于接收命令代码和相关参数,以在逻辑连接的CAN设备之间执行内部功能或存储器传输。必须使用数据传输对象DTO通过握手消息提示接收命令(见下文) 在这种情况下,DTO称为命令返回消息。该DTO消息的返回码用于确定相应的命令是否已成功完成。
功能图:CCP主设备和从设备之间的通信流程。
将消息标识符分配给上述对象在从设备描述文件(例如ASAP2格式描述文件)中定义,该文件用于配置主设备。建议仔细确定消息对象的总线优先级。 为了避免损坏总线上的其他实时通信。此外,CRO应该获得比DTO更高的优先级。
对于CCP传输的所有数据,不定义协议本身的字节顺序。 由于数据组织取决于ECU的CPU,因此字节排序在从设备描述文件中定义。唯一的例外是TEST,CONNECT和DISCONNECT命令中的站地址。
7.2消息对象的描述
7.2.1命令接收对象CRO
命令接收对象CRO从主设备发送到其中一个从设备。从设备用包含命令返回消息CRM的数据传输对象DTO进行应答。
类型 |
仅接收 |
大小 |
8字节消息字段 |
目的 |
接收从设备中的命令 |
消息字段中的参数:
位置 |
类型 |
描述 |
0 |
byte |
命令代码= CMD |
1 |
byte |
命令计数器= CTR |
2…7 |
bytes |
命令相关参数和数据区 |
CRO的数据长度代码必须始终为8.在命令描述中标记为“不关心”的未使用数据字节可以具有任意值。
7.2.2数据传输对象DTO
DTO必须将所有传出的从设备消息和数据作为数据包传送。数据包的第一个字节(即DTO数据字段的第一个字节)用作包ID .DTO是一个数据包。
Command Return Message CRM,如果DTO作为主设备的CRO的应答发送。
Event Message,如果DTO报告内部从站状态更改,以便调用错误恢复或其他服务。详细信息在“错误处理”一章中说明。
Data Acquisition Message,如果数据包ID指向相应的对象描述符表(ODT),它描述了数据包的剩余7个数据字节中包含哪些数据采集元素(即变量)。通过协议命令初始化和修改ODT(参见章节' 命令的描述')。
对象结构:
类型 |
Tx(和远程Tx请求接收) |
大小 |
8字节消息字段 |
目的 |
命令返回消息CRM或 事件消息或 数据采集消息 |
消息字段中的参数:
位置 |
类型 |
描述 |
0 |
byte |
数据包ID = PID |
1 |
byte |
数据包 |
PID的含义
PID |
解释 |
注意 |
0xFF |
DTO包含命令返回消息 |
|
0xFE |
DTO包含一个事件消息 |
CTR is don't care |
0≤n≤0xFD |
DTO包含对应于ODT n的数据采集消息 |
参见“命令的描述”一章 |
命令返回或事件消息具有以下格式
ERR:命令返回 - /错误代码。
CTR:CRO中使用最后一个命令收到的命令计数器。
CRM的数据长度代码必须始终为8.在命令描述中标记为“不关心”的未使用数据字节可以具有任意值。
数据采集消息具有以下格式:
PID = n; DTO包含对应于对象描述符表ODTn的数据获取消息(在“命令描述”一章中解释)。
DATA的数据长度代码可以设置为实际大小。
7.3数据采集的组织
主设备可以初始化从设备的数据采集,从设备返回DAQ-DTO中定义的数据。数据元素的组织如下:
位于ECU存储器中的数据元素被分配给名为Object Descriptor Table ODT的列表。该表保存每个元素的地址,地址扩展和字节长度.ODT最多可以有7个元素引用。
此ODT中定义的每个元素的内容必须转移到DAQ消息DTO中以发送到主设备。为了节省ECU中的内存资源,地址扩展和长度是可选的。必须对元素进行一致的采样 如果ECU不支持超过1个字节的元素大小,则主设备需要将多字节数据对象分成单个字节。在这种情况下,ECU必须确保ODT中所有元素的一致性。
PID是分配给ODT的编号(0£n£0xFD)。通常为从设备的数据采集定义几个ODT:
CCP允许设置多个DAQ列表,这些列表可以同时处于活动状态。 每个DAQ列表的DTO的采样和传输由ECU中的各个事件触发。请参阅START_STOP命令的说明。
当触发DAQ列表时,所有或一个ODT的数据(取决于ECU实现)以一致的方式采样.ECU可能需要一些时间在总线上发送采样的DTO消息。有两种可能性。 ECU在前一个循环的传输完成之前触发新的事件循环时作出反应:
1.跳过上一个周期的传输。
优点:缺少DAQ列表的一些ODT,该工具能够向用户显示此信息。
问题:如果经常发生缺陷,有些信号根本就没有测量过。
2.跳过新循环的传输。
优点:接收的样本始终完整,生成的采集栅格会减少。
问题:如果是事件触发的样本,该工具无法检查采集率的合理性。
此外,ECU可以发送“DAQ处理器过载”事件消息以通知主设备.ECU必须注意不要使用该附加消息溢出另一个周期。
在ECU中定义测量组件时,开发人员应注意可以通过CAN传输采样数据。在标准情况下工作时,不应使用所述的过载反应机制。
设置ODT的典型方法是:
1.清除ECU中的当前列表,让ECU通过发送命令GET_DAQ_SIZE为一个DAQ列表分配内存。
在GET_DAQ_SIZE命令之后,ECU报告当前DAQ列表中ODT的可用内存。
2.在循环发送中
SET_DAQ_PTR具有参数DAQ列表号,ODT号,ODT中的元素号
WRITE_DAQ具有元素的参数大小,地址扩展,32位基址,直到ODT完成,并为更多的ODT重复此过程。
为了初始化DAQ-DTO的传输,发出START_STOP命令。
8版本机制
CCP的2.1版本引入了版本管理机制,以减少版本不兼容的影响。以下政策适用:
主要协议版本号:主要协议版本号范围为0到255.如果存储器传输原语和数据采集功能的现有命令的语法和语义与之前定义的语法和语义不同,则必须更改此维度。这意味着不得在同一主协议版本号内以非向后兼容的方式更改非可选命令。
次要协议版本号:次要协议版本号范围为0到9.如果向协议添加/删除新的可选命令,则必须更改此维度。
9版本兼容性
为确保主设备与从设备之间的最低兼容性,以下策略适用:
- 如果主协议版本号不相等,则无法在主设备和从设备之间进行通信。
- 主设备必须至少具有与从设备相同的协议版本(主协议版本号和次协议版本号)或更高版本。从设备只需要支持一种协议版本。
- 为了确保完整的ASAP1a CCP符合性,主设备和从设备必须至少支持所有非可选命令。
10命令代码表
如果ECU不支持DAQ,以下命令是可选的:
GET_DAQ_SIZE,
SET_DAQ_PTR,
WRITE_DAQ,
START_STOP.
如果实现了SELECT_CAL_PAGE,则需要GET_ACTIVE_CAL_PAGE。
11命令返回码表
如果错误地发生在协议命令上,则CCP从设备也可以通过发送错误代码作为事件消息(分组ID 0xFE)直接调用适当的错误处理。
错误类别:
类别 |
描述 |
动作 |
重试 |
Timeout |
没有握手信息 |
重试 |
2 |
C0 |
警告 |
- |
- |
C1 |
假的(通讯错误,忙,...) |
等待(确认或超时) |
2 |
C2 |
可解决的(临时功率损失...) |
重新初始化 |
1 |
C3 |
无法解决(设置,过载,...) |
终止 |
- |
有关详细信息,请参阅“错误处理”一章。
12指令描述
在本章中,将解释所有带有参数的命令和预期的返回信息,包括每个命令的示例。
12.1 连接
指令标签CONNECT
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
Command Code = CONNECT 0x01 |
1 |
byte |
Command Counter = CTR |
2 |
word |
station address (Intel format) |
4…7 |
bytes |
don't care |
此命令与所选从站建立与主从命令协议的连续逻辑点对点连接。以下所有协议命令仅指该站,直到选择另一个站.一个connect命令到另一个站临时断开活动站(请参见DISCONNECT)。确认已连接站的CONNECT命令。从站设备不响应任何命令,除非先前的CONNECT命令使用正确的站地址进行寻址。站地址指定为一个数字,小端字节顺序(英特尔格式,低字节优先)。
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
例
主设备将发送一个CONNECT CRO到从设备,站地址为0x0200。命令计数器CTR当前为0x45:
从设备使用包含ACKNOWLEDGE(0x00)和CRO的CTR的DTO进行应答:
12.2 交换站标识符
指令标签EXCHANGE_ID
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
Command Code = EXCHANGE_ID 0x17 |
1 |
byte |
Command Counter = CTR |
2… |
bytes |
CCP主设备ID信息(可选和特定于实现) |
CCP主站和从站交换ID以进行自动会话配置。这可能包括根据从站的返回ID(Plug'n'Play)自动分配数据采集设置文件。预计会有以下返回信息(返回的DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
包ID:0xFF |
1 |
byte |
命令返回码 |
2 |
byte |
命令计数器= CTR |
3 |
byte |
从设备ID的长度,以字节为单位 |
4 |
byte |
从设备ID的数据类型限定符(可选和具体实施) |
5 |
byte |
资源可用性掩码 |
6 |
byte |
资源保护掩码 |
7 |
byte |
不在乎 |
从设备自动将内存传输地址0(MTA0)设置为CCP主设备随后可以使用UPLOAD上传所请求ID的位置。参见SET_MTA和UPLOAD命令描述。
资源可用性掩码/资源保护状态掩码格式,简化如下,简称为资源掩码。
CAL |
校准 |
DAQ |
数据采集 |
PGM |
内存编程 |
x |
留作将来使用 |
资源可用性:如果bit = TRUE,则指定资源或功能可用。
资源保护:如果bit = TRUE,则指定的资源或功能受到保护,以防止未经授权的访问(需要UNLOCK)。
例
主设备向从设备发送EXCHANGE_ID CRO。命令计数器CTR当前为0x23:
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR,从ID的长度及其数据类型进行应答:
从ID的长度为4个字节,数据类型编码为类型2.资源可用性掩码为0x03,资源保护状态掩码为0x03。可以使用UPLOAD从从站获取数据。
12.3 获取钥匙的种子
指令标签GET_SEED
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
Command Code = GET_SEED 0x12 |
1 |
byte |
Command Counter = CTR |
2 |
byte |
请求的从机资源或功能(资源掩码) |
3…7 |
bytes |
don't care |
有关资源掩码的说明,请参阅EXCHANGE_ID。
使用一个GET_SEED命令只能请求一个资源或函数如果请求了多个资源,则必须多次执行GET_SEED命令和以下UNLOCK命令。
返回种子和密钥算法的'种子'数据,用于计算'密钥'以解锁所请求的授权访问功能(请参阅下面的'解锁保护')。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
byte |
保护状态(TRUE或FALSE) |
4…7 |
bytes |
'种子'数据 |
如果保护状态= FALSE,则不需要UNLOCK来解锁所请求的功能。
例
主设备将GET_SEED CRO发送到从设备。命令计数器CTR当前为0x23。任务是数据采集:
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR,保护状态和“种子”数据进行应答:
保护状态为TRUE(0x01),种子数据为0x14,0x15,0x16,0x17。
12.4 解锁保护
指令标签UNLOCK
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
Command Code = UNLOCK 0x13 |
1 |
byte |
Command Counter = CTR |
2 |
bytes |
'key' |
使用从'赛'计算的'密钥'解锁从设备安全保护(如果适用)。查看上面的种子和密钥。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
byte |
当前特权状态(资源掩码) |
4…7 |
bytes |
don't care |
有关资源掩码的说明,请参阅EXCHANGE_ID。
例
主设备向从设备发送UNLOCK CRO。命令计数器CTR当前为0x23,使用GET_SEED找到的密钥:
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR以及权限状态进行应答:
权限状态为0x02,仅解锁数据获取。
12.5 设置内存传输地址
指令标签SET_MTA
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
Command Code = SET_MTA 0x02 |
1 |
byte |
Command Counter = CTR |
2 |
byte |
内存传输地址MTA号(0,1) |
3 |
byte |
地址扩展 |
4…7 |
Unsigned long |
Address |
此命令将初始化所有后续内存传输的基指针(32位+扩展)。地址扩展取决于从属控制器的组织,并可识别可切换的存储库或存储器段。
MTA编号(句柄)用于标识不同的传输地址位置(指针).MTA0由命令DNLOAD,UPLOAD,DNLOAD_6,SELECT_CAL_PAGE,CLEAR_MEMORY,PROGRAM和PROGRAM_6使用。 MOVE命令使用MTA1。参见命令'MOVE'。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
E x a m p l e
主设备向从设备发送SET_MTA CRO。命令计数器CTR当前为0x23,MTA0编号为0,地址扩展名为0x02,基址为0x34002000:
从设备使用包含ACKNOWLEDGE(0x00)和CRO的CTR的DTO进行应答:
12.6数据下载
指令标签DNLOAD
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
Command Code = DNLOAD 0x03 |
1 |
byte |
Command Counter = CTR |
2 |
byte |
要以字节为单位的数据块的大小 |
3…7 |
bytes |
要传输的数据(最多5个字节) |
CRO中包含的指定长度(大小)的数据块将从当前的存储器传输地址0(MTA0)开始复制到存储器中.MTA0指针将以'size'的值后递增。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
byte |
MTA0扩展(后增量后) |
4…7 |
unsigned long |
MTA0地址(后增量后) |
例
主设备向从设备发送DOWNLOAD CRO。命令计数器CTR当前为0x23,数据大小为0x05,要传输的数据为0x10,0x11,0x12,0x13,0x14:
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR,内存传输地址扩展0x02和(递增的)当前MTA0进行应答
在执行此命令之前,MTA0已经是0x34002000并且增加了5。
12.7数据下载6个字节
指令标签DNLOAD_6
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
Command Code = DNLOAD_6 0x23 |
1 |
byte |
Command Counter = CTR |
2…7 |
bytes |
要传输的6个字节的数据 |
CRO中包含固定长度(大小)为6个字节的数据块将从当前存储器传输地址0(MTA0)开始复制到存储器中.MTA0指针将后值递增6。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
byte |
MTA0扩展(后增量后) |
4…7 |
unsigned long |
MTA0地址(后增量后) |
E x a m p l e
主设备将DNLOAD_6 CRO发送到从设备。命令计数器CTR当前为0x25,数据大小为0x05,要传输的数据为0x10,0x11,0x12,0x13,0x14,0x15:
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR,内存传输地址扩展0x02和(递增的)当前MTA0进行应答
在执行此命令之前,MTA0已经是0x34002000并且增加了6。
12.8数据上传
指令标签UPLOAD
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= UPLOAD 0x04 |
1 |
byte |
Command Counter = CTR |
2 |
byte |
以字节为单位上载的数据块的大小 |
3…7 |
bytes |
don't care |
从当前MTA0开始的指定长度(大小)的数据块将被复制到相应的DTO数据字段中.MTA0指针将以'size'的值后递增。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
请求的数据字节 |
例
主设备向从设备发送UPLOAD CRO。命令计数器CTR当前为0x23,数据大小为0x04:
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR和请求的数据字节进行应答:
DTO中未报告新的MTA0地址。
12.9短上传
指令标签SHORT_UP
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= SHORT_UP 0x0F |
1 |
byte |
Command Counter = CTR |
2 |
byte |
要以字节为单位上传的数据块大小(1 ... 5) |
3 |
byte |
Address extension |
4 |
unsigned long |
Address |
从源地址开始的指定长度(大小)的数据块将被复制到相应的DTO数据字段中.MTA0指针保持不变。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
请求的数据字节 |
例
主设备向从设备发送SHORT UP CROP。命令计数器CTR当前为0x23,数据大小为0x04,源地址为0x12345678:
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR和请求的数据字节进行应答:
12.10选择校准数据页面
指令标签SHORT_UP
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= SELECT_CAL_PAGE 0x11 |
1 |
byte |
Command Counter = CTR |
2…7 |
bytes |
don't care |
该命令的功能取决于ECU的实现。先前初始化的MTA0指向校准数据页面的开始,该页面被该命令选为当前活动页面。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code = ACKNOWLEDGE 0x00 |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
E x a m p l e
主设备首先将SET_MTA CRO和现在的SELECT_CAL_PAGE CRO发送到从设备。命令计数器CTR当前是0x23。
从设备使用包含ACKNOWLEDGE(0x00)和CRO的CTR的DTO进行应答:
使用两块ECU存储器进行校准,SET_MTA和SELECT_CAL_PAGE命令可用于来自主设备的一种“紧急中断”,以便通过准备这两者的变化使从系统进入“安全状态”。 使用SET_MTA命令的内存块,并使用SELECT_CAL_PAGE立即执行更改。
12.11获取DAQ列表的大小
指令标签GET_DAQ_SIZE
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
Command Code = GET_DAQ_SIZE 0x14 |
1 |
byte |
Command Counter = CTR |
2 |
byte |
DAQ列表编号(0,1,...) |
3 |
byte |
don't care |
4…7 |
unsigned long |
专用于列表编号的CAN标识符 |
返回指定DAQ列表的大小作为可用的Object DescriptorTables(ODT)的数量并清除当前列表。如果指定的列表号不可用,则应返回size = 0。初始化DAQ列表并通过此列表获取数据 停了
可以将单个CAN标识符分配给DAQ列表以配置多ECU数据采集。此功能是可选的。如果无法给定标识符,则返回错误代码.29位CAN标识符由最高有效位集标记。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
byte |
DAQ列表大小(=此列表中的ODT数) |
4 |
byte |
DAQ列表的第一个PID |
5…7 |
bytes |
don't care |
DAQ列表的特定ODT的PID由以下因素确定:
PID = DAQlist的第一个PID + ODT号
E x a m p l e
主设备向从设备发送GET_DAQ_SIZE CRO。命令计数器CTR当前为0x23,DAQ列表号为0x03,ID为0x01020304。
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR,第一个PID = 0x08和列表大小0x10(每个最多7个元素的10个ODT)来应答
12.12设置DAQ列表指针
指令标签SET_DAQ_PTR
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= SET_DAQ_PTR 0x15 |
1 |
byte |
Command Counter = CTR |
2 |
byte |
DAQ列表编号(0,1,...) |
3 |
byte |
对象描述符表ODT编号(0,1,...) |
4 |
byte |
ODT中的元素编号(0,1,...) |
5…7 |
bytes |
don't care |
初始化DAQ列表指针,以便后续写入DAQ列表。
另请参阅“数据采集消息的组织”。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
E x a m p l e
主设备向从设备发送SET_DAQ_PTR CRO。命令计数器CTR当前为0x23,DAQ列表编号为0x03,ODT编号为0x05,寻址的元素编号为0x02。
从设备使用包含ACKNOWLEDGE(0x00)和CRO的CTR的DTO进行应答:
接下来,命令WRITE_DAQ用于设置所选ODT中的数据元素。
12.13写入DAQ列表条目
指令标签WRITE_DAQ
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= WRITE_DAQ 0x16 |
1 |
byte |
Command Counter = CTR |
2 |
byte |
DAQ元素的大小,以字节为单位{1,2,4} |
3 |
byte |
DAQ元素的地址扩展 |
4…7 |
bytes |
DAQ元素的地址 |
将一个条目(单个DAQ元素的描述)写入由DAQ列表指针定义的DAQ列表(请参阅SET_DAQ_PTR)。定义了以下DAQ元素大小:1个字节,2个字节(类型字),4个字节(类型long / Float))。
ECU可能不支持每个元素的单独地址扩展以及2或4字节元素大小。主设备负责关注ECU限制。可以在从设备描述文件(例如ASAP2)中定义限制。
从设备的责任是DAQ元素的所有字节在传输时是一致的。
另请参阅“数据采集消息的组织”。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
E x a m p l e
主设备向从设备发送WRITE_DAQ CRO。命令计数器CTR当前为0x23,DAQ元素的大小为0x02字节,地址扩展为0x01,32位地址为0x02004200。
从设备使用包含ACKNOWLEDGE(0x00)和CRO的CTR的DTO进行应答:
12.14启动/停止数据传输
指令标签START_STOP
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= START_STOP 0x06 |
1 |
byte |
Command Counter = CTR |
2 |
byte |
模式:启动/停止/准备数据传输 |
3 |
byte |
DAQ清单编号 |
4 |
byte |
最后的ODT号码 |
5 |
byte |
活动频道号 |
6,7 |
word |
传输速率预分频器 |
此命令用于启动或停止数据采集或准备指定DAQ列表的同步启动。最后ODT编号指定应传输此DAQ列表的哪些ODT(从0到最后ODT编号)。事件通道 No.指定有效确定数据传输时序的通用信号源。为了降低所需的传输速率,可以将预分频器应用于事件通道。预分频器值因子必须大于或等于1。
mode参数定义如下:0x00停止指定的DAQ列表,0x01启动指定的DAQ列表,0x02为同步启动准备DAQ列表。
启动/停止模式参数= 0x02(准备开始数据传输)使用提供的参数配置DAQ列表,但不启动指定列表的数据采集。此参数用于所有已配置的DAQ列表的同步启动。 在从属设备不能执行数据获取的同步开始的情况下,如果该参数为真(非零),则从设备可以开始数据传输。
可以在从设备描述(ASAP2)中描述事件信道和DAQ列表的ECU特定属性。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
E x a m p l e
主设备向从设备发送START_STOP CRO。命令计数器CTR当前为0x23,开始/停止字节为0x01(开始),DAQ列表编号为0x03,要发送的包编号为0x07 .ECU shell使用 事件通道0x02,预分频器为1(motorola-format)。
从设备使用包含ACKNOWLEDGE(0x00)和CRO的CTR的DTO进行应答:
12.15断开连接
指令标签DISCONNECT
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= DISCONNECT 0x07 |
1 |
byte |
Command Counter = CTR |
2 |
byte |
0x00临时,0x01会话结束 |
3 |
byte |
don't care |
4,5 |
word |
站地址(英特尔格式) |
6…7 |
bytes |
don't care |
断开从设备的连接。断开连接可以是临时的,将从设备设置为“离线”状态或使用参数0x01终止校准会话。
终止会话会使所有状态信息无效并重置从属保护状态。
临时断开连接不会停止DAQ消息的传输.MTA值,DAQ设置,会话状态和保护状态不受临时断开连接的影响并保持不变。
如果ECU支持恢复功能并且使用SET_SESSION_STATUS命令设置恢复位,则DAQ相关功能的行为与临时断开连接一样.DAQ的保护状态保持解锁状态。
站地址被指定为小端字节顺序的数字(英特尔格式,低字节优先)。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
例
主设备向从设备发送DISCONNECT CRO。命令计数器CTR当前为0x23,参数字节为0x00(临时),从设备地址为0x0208。
从设备使用包含ACKNOWLEDGE(0x00)和CRO的CTR的DTO进行应答:
12.16设置会话状态
指令标签SET_S_STATUS
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= SET_S_STATUS 0x0C |
1 |
byte |
Command Counter = CTR |
2 |
byte |
会话状态位(见下表) |
3…7 |
byte |
don't care |
让从节点随时了解校准会话的当前状态(另见“错误处理”一章)。
会话状态:
Bit0 |
CAL |
校准数据已初始化 |
Bit1 |
DAQ |
DAQ列表已初始化 |
Bit2 |
RESUME |
请求在ECU关闭期间保存DAQ设置。 启动后ECU自动重启DAQ。 |
Bit6 |
STORE |
请求在ECU关闭期间保存校准数据 |
Bit7 |
RUN |
会话进行中 |
Bit3…5 |
res |
保留 |
如果表达式为TRUE,则设置位(1)。
会话状态位对从设备进行读/写,并在上电,会话注销和适用的故障条件下清除。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
例
主设备向从设备发送SET_S_STATUS CRO。命令计数器CTR当前为0x23,会话状态位为10000001(RUN,CAL)。
从设备使用包含ACKNOWLEDGE(0x00)和CRO的CTR的DTO进行应答:
12.17获取会话状态
指令标签GET_S_STATUS
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= GET_S_STATUS 0x0D |
1 |
byte |
Command Counter = CTR |
2…7 |
bytes |
don't care |
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
byte |
会话状态 |
4 |
byte |
附加状态信息限定符 |
5 |
bytes |
其他状态信息(可选) |
注意:使用其他状态信息是制造商和/或项目特定的,它不是此协议规范的一部分。例如,其他状态信息可能包含增量校验和结果,用于跟踪当前会话活动。如果返回 如果信息不包含附加状态信息,则附加状态信息限定符必须为FALSE(0)。如果附加状态信息不为FALSE,则可以使用它来确定附加状态信息的类型。
例
主设备向从设备发送GET_S_STATUS CRO。命令计数器CTR当前为0x23。
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR和会话状态位进行应答:
会话状态为第0位设置(CAL)和第7位设置(RUN)。
12.18建立校验和
指令标签BUILD_CHKSUM
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= BUILD_CHKSUM 0x0E |
1 |
byte |
Command Counter = CTR |
2…5 |
unsigned long |
块大小,以字节为单位 |
6,7 |
bytes |
don't care |
返回由MTA0(内存传输区起始地址)和块大小定义的内存块的校验和结果。校验和算法可能是制造商和/或项目特定的,它不是本规范的一部分。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
byte |
校验和数据的大小 |
4…7 |
bytes |
校验和数据(具体实施) |
E x a m p l e
主设备向从设备发送BUILD_CHKSUM CRO。命令计数器CTR当前为0x23,块大小为32千字节(0x8000)。
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR和计算的校验和0x1234进行应答。
12.19清除内存
指令标签CLEAR_MEMORY
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= CLEAR_MEMORY 0x10 |
1 |
byte |
Command Counter = CTR |
2…5 |
long |
内存大小 |
6,7 |
bytes |
don't care |
该命令可用于在重新编程之前擦除FLASH EPROM .MTA0指针指向要擦除的存储器位置。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
例
主设备向从设备发送CLEAR MEMORY CRO。命令计数器CTR当前为0x23,块大小为32千字节(0x8000)。
从设备使用包含ACKNOWLEDGE(0x00)和CRO的CTR的DTO进行应答:
12.20编程
指令标签PROGRAM
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= PROGRAM 0x18 |
1 |
byte |
Command Counter = CTR |
2 |
byte |
要遵循的数据块大小(字节) |
3…7 |
bytes |
要编程的数据(最多5个字节) |
CRO中包含的指定长度(大小)的数据块将被编程到非易失性存储器(FLASH,EEPROM)中,从当前MTA0开始.MTA0指针将以'size'的值后递增。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
byte |
MTA0扩展(后增量后) |
4 |
unsigned long |
MTA0地址(后增量后) |
例
主设备向从设备发送PROGRAM命令。命令计数器CTR当前为0x23,大小为3字节(0x03),要编程的数据为0x10,0x11,0x12:
从设备使用包含ACKNOWLEDGE(0x00)的DTO和CRO的CTR,内存传输地址扩展0x02和(递增的)当前MTA0进行应答
在执行此命令之前,MTA0已经是0x34002000并且增加了3。
12.21编程6字节
指令标签PROGRAM_6
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= PROGRAM_6 0x22 |
1 |
byte |
Command Counter = CTR |
2…7 |
byte |
要编程的数据(6个字节) |
CRO中包含的长度(大小)为6字节的数据块将被编程到非易失性存储器(FLASH,EEPROM)中,从当前MTA0开始。MTA0指针将后递增6。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
byte |
MTA0扩展(后增量后) |
4 |
unsigned long |
MTA0地址(后增量后) |
E x a m p l e
主设备向从设备发送PROGRAM命令。命令计数器CTR当前为0x23,大小为6字节,要编程的数据为0x10,0x11,0x12,0x13,0x14,0x15:
从设备使用包含ACKNOWLEDGE(0x00)的DTO和CRO的CTR,内存传输地址扩展0x02和(递增的)当前MTA0进行应答
在执行此命令之前,MTA0已经是0x34002000并且增加了6。
12.22移动内存块
指令标签MOVE
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= MOVE 0x19 |
1 |
byte |
Command Counter = CTR |
2…5 |
long |
要移动的数据块的大小(字节数) |
6,7 |
bytes |
don't care |
指定长度(大小)的数据块将从MTA 0(源指针)定义的地址复制到MTA 1(目标指针)定义的地址。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
例
主设备向从设备发送MOVE CRO。命令计数器CT当前为0x23,要移动的字节数为32千字节(0x8000)。
从设备使用包含ACKNOWLEDGE(0x00)和CRO的CTR的DTO进行应答:
12.23诊断服务
指令标签DIAG_SERVICE
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= DIAG_SERVICE 0x20 |
1 |
byte |
Command Counter = CTR |
2,3 |
word |
诊断服务号 |
4…7 |
bytes |
参数,如果适用 |
从设备执行所请求的服务并自动将存储器传送地址MTA0设置到CCP主设备(主机)可以随后上载所请求的诊断服务返回信息的位置。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
bytes |
返回信息的长度,以字节为单位 |
4 |
byte |
返回信息的数据类型限定符(待定义) |
5…7 |
bytes |
don't care |
例
主设备向从设备发送DIAG_SERVICE CRO。命令计数器CTR当前为0x23,请求的诊断服务号为0x08且没有参数。
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR,返回信息的长度0x20和数据类型0x00来应答。
现在可以从MTA0上载诊断服务数据。 见上传。
12.24行动服务
指令标签ACTION_SERVICE
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= ACTION_SERVICE 0x21 |
1 |
byte |
Command Counter = CTR |
2,3 |
word |
行动服务号 |
4…7 |
bytes |
参数,如果适用 |
从设备执行所请求的服务并自动将存储器传送地址MTA0设置到CCP主设备随后可以上载所请求的动作服务返回信息(如果适用)的位置。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
bytes |
返回信息的长度,以字节为单位 |
4 |
byte |
返回信息的数据类型限定符(待定义) |
5…7 |
bytes |
don't care |
例
主设备向从设备发送ACTION SERVICE CRO。命令计数器CTR当前为0x23,请求的动作服务号为0x08并且具有参数0x05。
从设备使用包含ACKNOWLEDGE(0x00)的DTO,CRO的CTR,返回信息的长度0x20和数据类型0x00来应答。
现在可以从MTA0上载生成的操作服务数据。请参阅上传。
12.25测试可用性
指令标签TEST
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= TEST 0x05 |
1 |
byte |
Command Counter = CTR |
2,3 |
word |
站地址(英特尔格式) |
4… |
bytes |
don't care |
此命令用于测试具有指定站地址的从站是否可用于CCP通信。此命令不会建立逻辑连接,也不会触发指定slave中的任何活动.Station地址被指定为小端数字 字节顺序(英特尔格式,低字节优先)。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code = ACK 0x00 |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
12.26启动/停止同步数据传输
指令标签START_STOP_ALL
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= TEST 0x05 |
1 |
byte |
Command Counter = CTR |
2 |
word |
站地址(英特尔格式) |
3…7 |
bytes |
don't care |
此命令用于以同步方式开始定期传输使用先前发送的START_STOP命令(启动/停止模式= 2)配置的所有DAQ列表作为“准备启动”。该命令用于停止所有的定期传输 DAQ列表,包括那些未开始同步的列表。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3…7 |
bytes |
don't care |
12.27获取当前有效的校准页面
指令标签GET_ACTIVE_CAL_PAGE
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= GET_ACTIVE_CAL_PAGE 0x09 |
1 |
byte |
Command Counter = CTR |
2…7 |
bytes |
don't care |
此命令返回从站设备中当前处于活动状态的校准页面的起始地址。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
byte |
地址扩展 |
4…7 |
unsigned long |
地址 |
12.28获得实施的CCP版本
指令标签GET_CCP_VERSION
CRO中的数据结构
位置 |
类型 |
描述 |
0 |
byte |
命令代码= GET_CCP_VERSION 0x1B |
1 |
byte |
Command Counter = CTR |
2 |
byte |
主协议版本(所需) |
3 |
byte |
版本内发布(所需) |
4…7 |
bytes |
don't care |
此命令执行主设备和从设备中使用的协议版本的共同标识,以便在公共协议版本上进行协商。此命令应在EXCHANGE_ID命令之前执行。
预计会有以下返回信息(返回DTO的内容:)
位置 |
类型 |
描述 |
0 |
byte |
Packet ID: 0xFF |
1 |
byte |
Command Return Code |
2 |
byte |
Command Counter = CTR |
3 |
byte |
已实施主协议版本 |
4 |
byte |
在已实施的版本内发布 |
5…7 |
bytes |
don't care |
E x a m p l e
主设备向从设备发送GET_CCP_VERSION命令。命令计数器CTR当前是0x27,期望的主协议版本是2,主版本2中的版本是1,即期望的协议版本是CCP 2.1。
从设备使用包含ACKNOWLEDGE(0x00)的DTO进行应答,CRO的CTR,从设备中实现的CCP版本再次为CCP 2.1。
13错误处理
校准会话状态图和错误处理程序
状态图显示状态转换和可能的错误类别。下表显示了在这些错误条件之后采取的操作。
'冷启动'包含:
- CONNECT在主设备和从设备之间建立逻辑链路,
- 种子和密钥登录程序,
- 自动会话配置(使用EXCHANGE_ID),除非覆盖,
- 如果主站支持,则自动更新代码。
在状态“校准数据初始化”,“DAQ列表初始化”或“会话运行”中,CCP主设备可以请求重复嵌入的种子和密钥过程。
类别 |
描述 |
操作 |
重试 |
超时 |
无握手消息 |
重试 |
2 |
C0 |
警告 |
- |
- |
C1 |
假(通信错误,忙,......) |
等待(ACK或超时) |
2 |
C2 |
可解析(临时功率损失,...) |
重新初始化 |
1 |
C3 |
无法解决(设置,过载,...) |
终止 |
- |
错误类别C1由重试处理,不会导致状态更改。
14示例序列
对于一些常用服务,解释了使用CCP的过程。 这仅仅被视为CCP的使用示例。会话状态字节的设置如下所示:
(01xx xx1x)表示:x位保持不变; 强制0/1位0/1如果发生无法解决的错误(类别3),则终止宏服务序列。
14.1会话登录
命令 |
描述 |
备注 |
CONNECT |
逻辑连接 |
|
GET_CCP_VERSION |
Aggree的协议版本 |
|
EXCHANGE_ID |
交换站标识符 |
|
GET_SEED |
获取key的种子,则返回key |
如果使用'seed&key' |
UNLOCK |
则通过发送接收密钥来解锁保护 |
如果使用“种子和密钥” |
SET_S_STATUS |
设置会话状态(设置一个或多个状态位) |
14.2分块下载
命令 |
描述 |
备注 |
CONNECT |
连接 |
跳过,如果已连接 |
SET_MTA |
将内存传输地址设置为目标块 |
|
DOWNLOAD |
n·数据下载,对应于要下载的块的大小 |
14.3 分块上传
命令 |
描述 |
备注 |
CONNECT |
连接 |
跳过,如果已连接 |
SET_MTA |
将内存传输地址设置为目标块 |
|
UPLOAD |
n·数据上传,对应于要上传的块的大小 |
14.4校准数据初始化
命令 |
描述 |
备注 |
CONNECT |
连接 |
跳过,如果已连接 |
SET_S_STATUS |
设置会话状态(xxxx xxx0) |
CAL = off |
loop |
循环n· |
|
SET_MTA |
将内存传输地址设置为目标块 |
|
BUILD_CHKSUM |
构建块的校验和 |
|
DOWNLOAD |
下载块,如果校验和不匹配 |
|
SELECT_CAL_PAGE |
选择校准数据页面 |
|
SET_S_STATUS |
使用位CAL = 1(xxxx xxx1)设置会话状态 |
现在校准会话正在运行时 |
14.5 DAQ列表初始化
命令 |
描述 |
备注 |
CONNECT |
连接 |
跳过,如果已连接 |
SET_S_STATUS |
设置会话状态(xxxx xx0x) |
|
GET_DAQ_SIZE |
分配DAQ列表 |
参见“DAQ组织”一节 |
loop |
循环n· |
|
SET_DAQ_PTR |
设置目标指针 |
|
WRITE_DAQ |
写清单数据 |
|
SET_S_STATUS |
使用DAQ = 1设置会话状态(xxxx xx1x) |
|
START_STOP |
开始传输DAQ DTO并设置参数 |
14.6代码更新
命令 |
描述 |
备注 |
CONNECT |
连接 |
跳过,如果已连接 |
SET_MTA |
将内存传输地址设置为目标块 |
|
CLEAR_MEMORY |
清除从设备的内存 |
|
loop |
循环n· |
|
PROGRAM |
程序取决于扇区或设备的大小 |
|
PROGRAM |
Size = 0 |
编程序列结束 |
该过程也可以嵌入在用于编程FLASH EPROM的服务中。
15预期的性能等级
此协议的性能等级很大程度上取决于响应延迟时间,总线波特率,总线负载情况以及协议对象的总线优先级。由于一次只能传输一小部分内存,因此延迟时间为 涉及的网络节点是关于突发传输的最严格的因素。
通过500 kbit / s的波特率和总线以及节点(ECU)的典型负载条件,已实现以下额定值:
类型 |
数据速率(约) |
备注 |
突发内存传输 |
4-6 Kbyte / s |
|
异步.数据采集 |
20 Kbyte / s |
整体采样率 |
16附录
在本附录中,给出了有关CCP的使用和实施的附加信息。
16.1错误代码矩阵
CCP Command |
CCP Error Code |
|||
拒绝访问 0x33 |
参数超出范围 0x32 |
访问锁定 0x35 |
DAQ列表初始化请求 为0x22 |
|
CONNECT |
会话目前无法实现 |
无效的站地址 |
||
EXCHANGE_ID |
非法主ID |
|||
UNLOCK |
不合格的钥匙 |
|||
SET_MTA |
尝试读取机密数据 |
非法MTA#,基地址,地址分机 |
||
DNLOAD |
写入尝试ROM |
数据块大小> 5 |
||
DNLOAD_6 |
写入ROM的尝试 |
接收的数据块<6个字节 |
||
UPLOAD |
上传分类数据 |
数据块大小> 5 |
||
SHORT_UP |
上传分类数据 |
块大小> 5,非法base addr./addr.ext |
||
SELECT_CAL_PAGE |
目前不可能 |
|||
GET_DAQ_SIZE |
没有DAQ权限级别 |
非法DAQ列表编号,错误的CAN ID |
||
SET_DAQ_PTR |
没有DAQ权限级别 |
未知的DAQ列表,非法ODT#/ |
||
WRITE_DAQ |
没有DAQ权限级别 |
ODT的非法大小 元素/地址/ 扩展地址 |
||
START_STOP |
启动/停止不存在的DAQ列表 |
非法的最后ODT /线路传输。 间隔,非法启停PARAM。 |
启动未配置的DAQ lis的DAQ |
|
DISCONNECT |
临时断开是不可能的 |
无效的站地址,无效的临时断开连接参数。 |
||
SET_S_STATUS |
状态位违反主权限级别 |
目前非法组合状态位 |
||
GET_S_STATUS |
会话状态无法访问 |
16.2多点应用中的广播技术
在某些多点应用中,同时在多个从设备中执行命令可能很有用。尽管CCP主从命令协议设计为点对点工作,一次只连接一个从设备, 用于向多于一个从站广播协议命令的几种方法。
- 广播站地址
如果所有相关的从站识别出公共站地址(除了它们的专用从地址之外),则CCP主设备可以多连接到那些从设备。
- 嵌套连接命令到多个站而不断开连接
在每种情况下,每个从属设备都必须独立地向每个命令发送命令返回消息,并且CCP主设备必须单独验证返回消息。
广播可以在同步和速度方面提供相当大的优势。然而,广播连接期间的错误处理显然非常复杂和苛刻。
ASAM_CCP_V2.1.0_cn相关推荐
- rtmp 封包及消息
2019独角兽企业重金招聘Python工程师标准>>> 1 握手 adobe修改了握手部分的协议,但是没有公开.根据rtmp specification 1.0里面的握手过程,fla ...
- 为 Visual Studio 安装数据库工具
SQL Server 的 BI 解决方案工具是用来设计 SSAS.***S.SSIS 这3类项目的. 对于 SQL Server 2005.SQL Server 2008.SQL Server 200 ...
- Flex开发中遇到未整理资源
1)Loader类 (1)精通Flex 3.0――4.2.2 动态加载资源--Loader类 地址:http://blog.csdn.net/flex_program/article/details/ ...
- 手机禁止安装app,刷机才能恢复
手机禁止安装app,刷机才能恢复 让智能手机安装了必要的app之后,永远禁止安装其他任何app,只有通过刷机才能恢复回来,这个需求对于学生来说很有必要. 比如:安装必要的学习软件,微信,地图导航等等之 ...
- javaSE 笔记全!
Java基础 基本操作 dos(Disk Operating System)命令行的简单操作 dir(directory):列出当前目录下的文件及文件夹 md(make directory):创建目录 ...
- RV1126 调试记录
RV1126 调试记录 ######################################################################################## ...
- 国产单片机GD32系列开坑,带你零死角玩转GD32 第六章
[开坑国产单片机GD32系列,带你零死角玩转GD32] 第六章 GD32F103C8T6串口开发板设计指南(二) 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第六章 GD32F103 ...
- 自动驾驶(八十一)---------Apollo之感知模块
预则立不预则废,本命年要注意,真男人不回头. apollo的感知分为以下几个方面:lidar.ladar.camera.fusion. 1. Camera感知 Apollo视觉检测,地址在:Apoll ...
- 基于GeoServer的电子地图系统说明
概述 一AJAX的应用系统,前台页面基于OpenLayers2.2版本来开发,地图服务基于GeoServer1.5,后台查询基于Spring和Hibernate.前后台基于JSON方式进 ...
最新文章
- HTML5 叠加布局
- c++ 大数类 大数模板
- 若S作主串,P作模式串,试分别写出利用BF算法和KMP算法的匹配过程。
- [转]详细讲解提高数据库查询效率的实用方法、外键关于性能
- Mongodb基本操作说明
- 常用的搜索引擎dork (不断更新)
- twitter api使用_使用P2创建自己的Twitter风格的组博客
- Leetcode--923. 三数之和的多种可能
- oracle数据库各组件介绍,Oracle 数据库 组件相关说明【第一部分】
- mysql配置修改记录_mysql设置修改时间,更新记录当前时间
- 【GTK】信号量(signal)大全
- mysql系列之4.mysql字符集
- 微信小程序源码——《出发吧一起》开源
- 自动设置为兼容模式html5,详细教你将IE浏览器设置为兼容模式的设置方法
- CSAPP实验记录(二)Bomb Lab
- Apache Storm-2011
- python 键盘输入数字_python实现键盘输入的实操方法
- Excel if及ifs函数用法
- Android view 部分 setContentView 的前因后果
- 普通卷积、Depthwise(DW)卷积、Pointwise(PW)卷积、Atrous卷积