XCP
XCP的全名是通用测量和校正协定(Universal Measurement and Calibration Protocol),是ASAM提出的网络通信协定,目的是要连接校正系统及电子控制单元(ECU)。此一协定可以在运行时读写微处理器里的变量以及内存。可以用计时器或是运作条件触发事件,同步触发或读取完整的数据集。也可以用XCP刻录闪存。
ASAM表示「XCP的原始目的是要调整电子控制器的内部参数,并且读取内部参数的即时值。XCP中的第一个X表示此协定是为一系列的网络系统所规划」[1]。
此协定在2003年的标准化名称是ASAM MCD-1 XCP。XCP是接续着1990年代中期提出的CAN校正协定(简称CCP)。那时控制器局域网路(CAN)是车用产业的主要通信协定。后来车用产业出现了LIN、MOST及FlexRay等通信协定,因此上述的校正协定需要扩展到其他的传输媒介上。XCP可以支持同步及异步的串列接口。若配合以太网路或USB等传输媒介,XCP也可以作为模拟测量设备的标准媒介,也可以作为RAM仿真器、JTAG或其他微处理器调试接口的硬件接口转换器。
XCP的使用范围很广,开发XCP的一个主要目的是在要在电子控制器上尽可能以精益(leap)的方式实现,并且在资源利用及功能上有高度的可扩展性。应用在CAN或SCI上的XCP甚至可以在8比特的微处理器上实现,若是使用高性能的平台,可以在FlexRay及以太网路上的应用发挥其完整的机能。
XCP是二层的通信协定,区分为协定层以及传输层两层,使用单一主站/多重从站的概念。XCP使用单一的协定层,不因传输层而变化。名称中的X表示可以其传输层是可以变动互换。ASAM在2016年10月已定义了以下的传输层[2]:
- XCP on CAN
- XCP on CAN FD
- XCP on SxI(简称SPI的串行周边接口,简称SCI的串列通信接口)
- XCP on Ethernet(TCP/IP及UDP/IP)
- XCP on USB
- XCP on FlexRay
XCP除了支持其他传输层外,也有以下功能的提升[2]:
XCP可以让客户端访问电子控制器上的内存,其格式在个别A2L文件上定义。A2L格式文件中会包括要访问信息需要的所有信息,ECU代码不需要因为访问不同的量测或校正而重新编译[1]。