XCP
Fundamentals of Measurement and Calibration Protocol
XCP Reference Book
Order now, free-of-charge!

Measurement and Calibration Protocol XCP – Fundamentals

Development engineers and technicians benefit from high-performance standards and tools for optimal parameterization of ECUs. Such standards and tools must enable flexible read and write access to variables or memory contents. The CAN Calibration Protocol (CCP) – an OEM-independent standard – was developed for this purpose back in the 1990s. At that time, CAN was the sole dominant system for in-vehicle networking.

As automotive electronics continued to develop, additional bus systems such as LIN, MOST and FlexRay came into use. Because it was restricted to the CAN bus, CCP reached its limits, and this led to the development of the XCP protocol.

Standardization by ASAM and Benefits

Like CCP, the "Universal Measurement and Calibration Protocol" (XCP) originated from the "Association for Standardization of Automation and Measuring Systems" (ASAM) and was standardized in the year 2003. Vector played a key role in its release.

The "X" stands for the variable and interchangeable transport layer. To satisfy needs for a universal communication solution in a wide variety of applications, the ASAM working group gave special attention to the following criteria:

  • Support of a variety of transport layers such as CAN, FlexRay, Ethernet, SPI, SCI, USB, etc.
  • Better resource utilization in the ECU (dynamic DAQ lists)
  • Synchronous data stimulation (bypassing)
  • Support of start-up measurement (Resume mode)
  • Optimized communication by block transfer
  • Polling of XCP functions available in the ECU (plug & play)
  • More precise measurement data acquisition by measuring time stamps in the ECU (Slave) (Slave)

As a two-layer protocol, it consistently splits the XCP protocol from the transport layers, and it takes a Single-Master/Multi-Slave approach.

Protocol Layer and Transport Layers

Graphic protocol and transport layers of XCP
Subdivision of XCP into protocol layer and transport layer

XCP is capable of utilizing the same protocol layer based on different transport layers. This protocol is a universal measurement and calibration protocol that operates independently of the type of network that is used. ASAM defines the following standard transport layers (Status October 2016):

  • XCP on CAN and CAN FD
  • XCP on SxI (SPI, SCI)
  • XCP on Ethernet (TCP/IP and UDP/IP)
  • XCP on USB
  • XCP on FlexRay

Single-Master / Multi-Slave Concept

Graphic XCP communication model
XCP communication model with CTO/DTO

The measurement and calibration system assumes the role of XCP master, while the ECU operates as a slave. The master and slave each communicate over the integrated XCP driver. There is an ECU description file (in A2L format) for each slave, which – among other things – specifies associations between symbolic variable names and their address ranges, physical meanings of the data and the checksum method used. The XCP master can read out all necessary information from these A2L description files.

In communication via XCP, a distinction is made between the "Command Transfer Object" (CTO) and the "Data Transfer Object" (DTO). For example, the master might send a command to the ECU over the bus by CTO, and the ECU acknowledges over the same pathway after executing the requested service. Available CTOs are: CMD (Command), RES (Response), ERR (Error), EV (Event) and SERV (Service Request Processor). The DAQ (Data Acquisition) and STIM (Stimulation) data transfer objects are used for event-driven reading of measurement variables from the XCP slave's memory or writing values to memory.

Measuring & Calibrating Throughout the Development Process

Graphic XCP slaves
XCP Slaves can be used in many different runtime environments

In measuring and calibrating with XCP, the specific environment in which the code or model (Simulink, rapid prototyping hardware, HIL, SIL, etc.) is run is irrelevant. That is, in optimizing the control algorithms for the ECU, you can use one and the same tool, always performing similar work steps. This makes configurations, measurement data and description files usable and interchangeable throughout the development process.

An XCP Master, such as CANape, is capable of communicating with different XCP slaves simultaneously. They include:

  • ECUs or ECU prototypes
  • Measurement and calibration hardware such as debug interfaces or memory emulators
  • Rapid prototyping hardware
  • HiL/SiL systems

XCP Reference Book

Photo XCP refence book as printed version and e-book
Fundamental Know-How

Reference book "XCP – The Standard Protocol for ECU Development" describes fundamentals and the application areas of the XCP measurement and calibration protocol in detail. Request the printed version with 128 pages in format 168x238 mm. Or download the book in three digital versions as PDF, EPUB and MOBI.

Video XCP Fundamentals

Learn about the capabilities of the ASAM MCD-1 XCP standard. Duration of this video 63 minutes.

XCP Solutions

With full XCP support, Vector offers you the right solution at every point of the development process.

The XCP standard was developed with crucial input by Vector, whose extensive know-how and experience also flowed into comprehensive support of the measurement and calibration protocol:

Tools

CANape is primarily used for optimal parameterization (calibration) of electronic control units. You can calibrate parameter values during the system’s runtime and simultaneously acquire measured signals. The physical connection between CANape and the ECU is over XCP (for all standardized transport protocols like XCP on Ethernet, FlexRay, CAN, etc.) or over CCP.
A complete tool chain for generating and managing the necessary A2L description files (ASAP2 Tool-Set and CANape with integrated ASAP2 Studio).
The option .AMD/XCP extends CANoe by adding the ability to access ECU memory. Reading or writing to memory locations in the ECU is performed via the ASAM standardized XCP protocol (XCP on CAN, XCP onEthernet) or CCP protocol. Configuration is conveniently done with files in A2L format.

ECU Interfaces

The VX1000 measurement and calibration hardware offers the option of equipping ECUs with an XCP-on-Ethernet interface. This involves connecting a Plug on Device (POD) to the ECU for direct access to the controller, e.g. over DAP, JTAG, Nexus, etc. The POD transmits the data to a base module, which operates as an XCP Slave and provides the data to the XCP Master on the PC over XCP on Ethernet.

Embedded Software

Communication modules with separate transport layers for CAN, FlexRay and Ethernet
XCP Basic – free download, only contains basic XCP functions. Configuration of the XCP protocol and modification of the transport layer are performed manually in the source code. You need to integrate XCP Basic in your project yourself.
XCP Professional – contains useful extensions to the ASAM specification and enables tool-based configuration. Available for Vector CANbedded basic software.
MICROSAR XCP – contains the functional features of XCP Professional and is based on AUTOSAR specifications. Available for Vector MICROSAR basic software.

Services

Consultation on using XCP on your projects Consultation XCP
Integration of XCP in your ECU Integrating XCP modules

XCP Training

Fundamentals Seminar

Graphic training at Vector

The goal of this seminar is to explain the mechanisms and models that form the foundation of XCP.

Agenda:

  • Introduction to Fundamentals of the XCP Protocol
  • Models for Synchronous Data Transfer
  • Models for Calibrating
  • Interface Specifications
  • Special Aspects of the XCP Transport Layer
  • Example Communication Sequences