XCP-入门教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

页码PageXCP入门教程1/221of222018第一章XCP协议首先使用在汽车“控制”相关的产品开发中,测量/校准阶段的通用协议“XCP”。像是汽车或一般工业设备的与“控制”相关的产品开发中,存在着被称为“校准”或“适配”、“匹配”的过程(图1)。在这个过程是将执行数字化控制的“电子控制单元(ECU:ElectronicControlUnit)”、作为控制对象的执行器(Actuator)等“控制装置(ControlDevice)”和用于获得控制指标的“传感器(Sensor)”处于连接状态,并优化整体控制以符合需求定义的工作。具体来说,像是为了优化而改变ECU中的控制乘数和控制因素参数,或者访问ECU以确认变更后的结果的工作。这里的访问ECU的协议被称为“测量/校准协议”。通过规定出作为访问侧的测量/校准工具和作为被访问侧的ECU之间的协议,即使是使用不同的微控制器或在不同的物理访问环境,也可以使用相同的协议进行测量/校准。本文中,在介绍测量/校准和说明校准协议的必要性的同时,也说明了用于测量和校准的通用协议“XCP(UniversalCalibrationProtocol)”的优点和协议内容。最后将介绍其趋势和在基于模型开发中的具体案例,以及在混合动力汽车(HV:HybridVehicle)和电动汽车(EV:ElectricVehicle)的开发中使用XCP的应用示例。本文的主角XCP是一种测量/校准工具和ECU软件之间的通信协议,可以访问要校准的参数和内部测量值。它也是一种通用协议,可以用在工具和软件之间的任何通信介质上,比如控制器局域网(CAN:ControllerAreaNetwork)、FlexRay和以太网等(图4)。页码PageXCP入门教程2/222of22实际上,只需在连接到车载网络的ECU中集成CCP驱动程序,就有了对支持CAN的ECU进行测量/校准的可能性。1.1什么是ASAM?CCP和XCP由名为“自动化与测量系统标准化协会(ASAM:AssociationforStandardizationofAutomationandMeasuringSystems)”的协会进行的标准化。ASAM正在规范汽车和工业设备相关的开发平台。另外,标准化的内容可以在ASAM网站上查看。CCP和XCP是由ASAM旗下的名为“汽车电子(AE:AutomotiveElectronics)”的工作组进行标准化,并被分配到“MCD”领域。名称MCD来源于“Measurement”、“Calibration”和“Diagnostic”的首字母。1.2ASAM中CCP/XCP的定位ASAM的标准规范文档的标准AE类别中,有称为“ASAMMCD-1XCP”的规范文档,这是XCP的标准文件。同样的,CCP是以“ASAMMCD-1CCP”的名义存在。图5显示了CCP/XCP在整个MCD标准中的位置。页码PageXCP入门教程3/223of22CCP/XCP是测量/校准系统的工具侧与ECU的通信协议,“ASAMMCD-2MC”是包含以下三种内容的数据库文件的标准。(1)CCP/XCP的通信设置信息使用CAN的情况下,CAN的波特率和消息ID等(2)测量值信息测定对象的地址、大小以及物理值变换系数等。(3)参数信息校准参数的地址、大小以及物理值变换系数等。也就是说,CCP/XCP是规定的协议本身,协议的设置和测量/校准的对象信息是在另外的数据库文件,工具基于数据库文件,使用CCP/XCP来访问ECU。※补充:图5中的“ASAMASAP3”是用于从外部来控制测量/校准系统的接口规范。1.3XCP的好处接下来,将介绍XCP的主要优点。(1)可以对所有ECU,进行统一的测量/校准XCP考虑了各个ECU中使用的微控制器的字节序(Endian)和可用的ROM/RAM容量的差异,即使网络的通信介质不同也可以使用相同的协议。这使得对所有的ECU,可以只使用XCP来做测量/校准。(2)测量/校准使用的是经过验证的协议XCP在CCP的实绩的基础上,包含对ECU进行测量/校准的需求规格。而且,所有的协议都发布在ASAM网站上,任何人都可以使用它。在某些情况下,一些工具制造商免费提供页码PageXCP入门教程4/224of22了在ECU侧运行的协议处理软件和驱动程序。(3)可以在ECU的运行中同步进行测量一般的ECU会以预定的控制周期重复执行,基于来自传感器等的外部信息或别的处理过程的输入进行处理,再输出到别的处理过程或外部装置;或者根据输入因素的现象,来触发特定处理过程。使用XCP,可以在这些过程中同步测量输入/输出的数据(图6)。如果仅需要进行测量/校准,那么使用车载网络上其它协议,例如用于车辆诊断的协议也是可以的,但是在校准过程中对控制的同步测量是不可或缺的。能够做这种对控制的同步测量,就是XCP的价值所在了。1.4各个XCP网络的示例XCP在不同网络上使用相同的协议,实际上每个网络的数据包结构等都是标准化的。这被称为“传输层标准”。以这个规则,将运行在其上的各个网络的名字前,附加上XCP。例如,在CAN上运行的XCP是“XCPonCAN”。最后,列举出XCP的网络示例(表2)。页码PageXCP入门教程5/225of22第二章XCP协议的通信的构造和功能接下来,将会说明“通用校准协议(XCP:UniversalCalibrationProtocol)”协议具体是如何通信的,以及XCP的功能和协议内容。2.1主从方式在XCP中,测量/校准的工具侧是“XCP主结点”,被测量的ECU侧是“XCP从结点”,采用所谓的“主从通信方式”。这种通信方式中,必定是从主结点发送命令来开始,从结点在接收到后,再向主结点发送应答,以这样的顺序进行通信。如图7所示,1个网络上主结点必定只有一个,而从结点可以有多个。图7:使用XCP的网络示例在这个情况下,主结点向每个从结点发送命令,并接收从结点返回的应答(图8)。图8:一主多从的通信示例页码PageXCP入门教程6/226of22通过这种通讯方式,车载网络上连接一个测量/校准工具(=XCP主结点)后,可以通过XCP协议访问作为测量对象的各个ECU(=XCP从结点)。2.2网络和传输方式在网络上,只要能区分“从主结点发送到从结点”和“从从结点发送到主结点”,这两种类型的通信,就能够使用XCP。在“XCPonCAN”的情况下,是通过用两个CANID,“从主结点发送到从结点的ID”和“从结点发送到主结点的ID”进行区分。在网络上使用区分的通信并传输一些内容时,XCP使用了三种传输模式(图9)。图9:XCP的传输模式对于传输模式而言,可以在主结点侧和从结点侧,分别决定使用哪种模式。例如,主结点为“块传输模式”,从结点为“标准模式”,这样的使用方式也是可行的。因此,尽管主结点的工具侧的性能强大,但是当从结点的ECU只能使用有限的资源时,也可以实现简化的传输模式。2.3CTO/DTO在XCP中,除了主结点和从结点之间的传输方向的差异之外,要传输的内容还被分为“与XCP本身的控制相关的通信”和“与数据相关的通信”两种类型,以及定义在每个网络上传输的报文的格式。作为对比,前者被称为“命令传送对象(CTO:CommandTransferObject)”,后者被称为“数据传送对象(DTO:DataTransferObject)”。2.3.1CTO:CommandTransferObject的缩写CTO是与XCP自身的控制命令和应答等相关的对象。控制命令从主结点发送,对命令的页码PageXCP入门教程7/227of22应答是从从结点发送。2.3.2DTO:DataTransferObject的缩写DTO是与同步从结点(ECU)获取数据测量结果以及进行数据变更相关联的对象。同步数据变更被称为“激励(Stimulation)”,但由于是测量/校准以外的功能,因此省略详细说明(详情请参照XCP标准文件)。图10展示了,从XCP标准文件的“Part21.1.1TheXCPPacketTypes”章节中,抽取的XCP主结点与从结点之间的CTO和DTO的关系。2.4报文格式和PID如上所述,CTO和DTO是不同报文格式(图11),可以分别设置主从设备的最大报文长度。MAX_CTO:CTO的最大报文长度(字节)MAX_DTO:DTO的最大报文长度(字节)页码PageXCP入门教程8/228of22图11:CTO和DTO的报文结构所有的XCP报文都在这个最大报文长度内,命令和响应等内容都在一个报文中完成的。而且在报文格式中,每个字段按两种类型分配给CTO和DTO报文。此外,报文的第一个字节是被称为“PID”的标识符,是被用来区分是怎样的报文。主结点对从结点进行XCP控制时使用“命令(CMD)”,此时的PID在“0xC0”到“0xFF”的范围内。从结点对这个命令返回肯定应答的情况下,使用“应答(RES)”,此时PID变为“0xFF”(图12)。图12:报文的标识符(PID)除了测量/校准的同步数据交换之外,所有其它的都是通过主结点发送命令,从结点将返回肯定应答来完成的。在此,以XCPonCAN为例来说明,其中主结点发送到从结点的CANID是“1”,从结点发送到主结点的CANID是“2”。在这种情况下,XCP通信按以下顺序执行。页码PageXCP入门教程9/229of22主结点发送的CANID为“1”,其中第一个字节指定为“0xFF”,第二个字节指定为“命令参数”。从结点接收第1行的连接命令,并通过PID识别该命令。从结点发送的CANID为“2”,其中第一个字节指定为“0xFF”,第二个字节开始指定为“应答值”。主结点接收第3行的应答命令。图13显示了实际通信的跟踪结果。第1行的“0xFF”是命令“CONNECT”,从而在主结点和从结点之间建立逻辑连接,并接收后续命令。2.5访问测量/校准对象XCP的测量/校准,是通过对ECU内部的软件的访问来实现的。具体而言,针对要测量/校准的对象的内存区间,通过指定对应的“XCP地址”的方式进行访问。XCP地址与普通的微控制器中的地址几乎相同,但XCP使用了32位的XCP地址和8位的扩展地址。也就是说,主结点对从结点的访问,可以有32+8=40位的地址空间。这个地址与XCP的实际ECU内存不需要完全匹配,其字节序(Endian)也可以针对每个从结点来选择。因此,在车载网络上可以连接到多个ECU,即使存在不同的地址空间(16位,32位),或者不同的地址字节序,主结点都可以经过适当处理,使得所有的都可以测量/校准。2.6异步测量XCP除了同步测量,还可以做异步测量。异步测量是使用主结点发送的命令,通过指定的XCP地址来提取从结点的ECU内部的数据,并通过从结点的应答将该数据传送给主结点,如此循环往复来实现的。为了取出数据,使用PID为“0xF4”的命令“SHORT_UPLOAD”。这个命令和应答的格式如下所述。SHORT_UPLOAD命令:CTO0字节位置,指定为PID“0xF4”CTO1字节位置,指定为取出字节数。最大为MAX_CTO–1字节页码PageXCP入门教程10/2210of22CTO2字节位置,保留字段CTO3字节位置,指定为要读出的8位扩展地址CTO4~7字节位置,指定为要读出的32位地址SHORT_UPLOAD应答:CTO0字节位置,指定为PID“0xFF”CTO1~MAX_CTO字节位置,指定为取出的数据图14是主结点使用“SHORT_UPLOAD”,在XCP扩展地址为“0”、XCP地址为“0x00124A5C”的位置,每100ms取出4字节的过程的跟踪结果。2.7同步测量在上述异步测量的情况下,主结点决定了测量时间。为了使测量与ECU的控制相匹配,有必要由ECU确定测量时机,并在数据取出来后由从结点发送到主结点。这种数据通信是通过DTO来完成的。主结点在进行同步测量之前,通过命令指定要取出的数据的XCP地址,从结点在等到同步测量开始命令后,使用DTO发送到主结点。因此,在同步测量的情况下,不是通过命令

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功