可互换的传输层
XCP可以在不同的传输层上实现同样的协议层。这是一种通用的测量和标定协议,可以独立于所使用的网络类型而工作。目前,ASAM已经在标准中定义的传输层包括:XCP-on-CAN,XCP-on-SXI(SPI,SCI), XCP-on-Ethernet(TCP/IP and UDP/IP),XCP-on-USB和XCP-on-FlexRay。最后命名的版本(XCP-on-FlexRay)是协议家族中的最新成员,它早在2006年就产生了。XCP-on-FlexRay的一个特别的技术特征是动态带宽控制。测量、标定和诊断工具(MCD工具),比如CANape,可以识别可用带宽并能够非常高效地将其动态分配到当前的应用数据通信中。这样XCP通信的可用带宽就可以得到最理想的使用,并且不影响正常的FlexRay通信。
正在为将来考虑的其它方案包括XCP-on-LIN;如果有充足的客户需求,则也可能包括XCP-on-K-Line或XCP-on-MOST。由于支持广泛的传输层,使得从开发阶段的宽带(比如Ethernet或USB)方案移植到批量生产阶段的CAN接口方案变得十分简单。
一主多从概念
测量和标定系统承担了XCP主设备的角色,ECU作为XCP从设备工作。主设备和从设备的通信是通过集成在其中的XCP驱动程序来实现的。对于每个从设备都有一个ECU描述文件;这些文件规定的信息包括:(符号)变量名及其地址范围分配,数据的物理意义,使用的校验方法。XCP主设备可以从A2L描述文件里读取所需的全部信息。
XCP通信使用“命令传输对象”(CTO)和“数据传输对象” (DTO)来区分(主从通信)。XCP主设备可以在总线上向ECU通过CTO发送命令。ECU会在执行完请求的服务后以同样的途径进行应答。CTO会提供:CMD(命令), RES (响应), ERR (错误), EV (事件) 和 SERV (服务请求处理机)。数据传输对象DAQ(数据采集)和STIM(激励)用于以事件驱动方式从内存中读取测量变量或者向XCP从设备的内存中写入变量值。