_xcp

2
XCP XCP or "Universal Measurement and Calibration Protocol" is a network protocol originating from ASAM for connecting calibration systems to electronic control units, ECUs. It enables read and write access to variables and memory contents of microcontroller systems at runtime. Entire datasets can be acquired or stimulated synchronous to events triggered by timers or operating conditions. In addition, XCP also supports programming of flash memory. ASAM states "The primary purpose of XCP is to adjust internal parameters and acquire the current values of internal variables of an ECU . The first letter X in XCP expresses the fact that the protocol is designed for a variety of bus systems." [1] In 2003, the protocol was standardized as "ASAM MCD-1 XCP". XCP is a successor to CAN Calibration Protocol (CCP ) that was developed back in the mid-1990s. At that time, CAN was the dominant networking system in the automobile industry. Over time, other bus systems such as LIN , MOST and FlexRay emerged and made it necessary to extend the protocol to other transport media. In addition, XCP supports synchronous and asynchronous serial interfaces. With Ethernet or USB as the transport medium, XCP can also serve as a standardized interface to analog measurement devices and to hardware interface converters to RAM emulators, JTAG or other microcontroller debug interfaces. Due to its broad range of use, a primary goal in the development of XCP was to achieve as lean an implementation in the ECU as possible and high scalability of features and resource utilization. XCP can even be implemented on 8-bit microcontrollers for CAN or SCI with few resources, and it exploits the full potential of FlexRay or Ethernet on high-performance platforms. As a two-layer protocol, XCP consistently separates the protocol and transport layers from one another and adheres to a Single-Master/Multi-Slave concept. XCP always uses the same protocol layer independent of the transport layer. The “X” in its name stands for the variable and interchangeable transport layer. Currently, the following transport layers are defined as standard by ASAM as of May 2010: [2] XCP on CAN XCP on CAN FD XCP on SxI (SPI , SCI ) XCP on Ethernet (TCP/IP and UDP/IP ) XCP on USB XCP on FlexRay In addition to supporting other transport layers, the successor to the CCP protocol contains many functional improvements such as: [3] Better resource utilization in the ECU Synchronous data stimulation

Upload: alejandra-rodriguez

Post on 18-Dec-2015

216 views

Category:

Documents


0 download

DESCRIPTION

XCP Protocol

TRANSCRIPT

  • XCP

    XCP or "Universal Measurement and Calibration Protocol" is a network protocol

    originating from ASAM for connecting calibration systems to electronic control units,

    ECUs. It enables read and write access to variables and memory contents of microcontroller

    systems at runtime. Entire datasets can be acquired or stimulated synchronous to events

    triggered by timers or operating conditions. In addition, XCP also supports programming of

    flash memory.

    ASAM states "The primary purpose of XCP is to adjust internal parameters and acquire the

    current values of internal variables of an ECU. The first letter X in XCP expresses the fact

    that the protocol is designed for a variety of bus systems."[1]

    In 2003, the protocol was standardized as "ASAM MCD-1 XCP". XCP is a successor to

    CAN Calibration Protocol (CCP) that was developed back in the mid-1990s. At that time,

    CAN was the dominant networking system in the automobile industry. Over time, other bus

    systems such as LIN, MOST and FlexRay emerged and made it necessary to extend the

    protocol to other transport media. In addition, XCP supports synchronous and

    asynchronous serial interfaces. With Ethernet or USB as the transport medium, XCP can

    also serve as a standardized interface to analog measurement devices and to hardware

    interface converters to RAM emulators, JTAG or other microcontroller debug interfaces.

    Due to its broad range of use, a primary goal in the development of XCP was to achieve as

    lean an implementation in the ECU as possible and high scalability of features and resource

    utilization. XCP can even be implemented on 8-bit microcontrollers for CAN or SCI with

    few resources, and it exploits the full potential of FlexRay or Ethernet on high-performance

    platforms.

    As a two-layer protocol, XCP consistently separates the protocol and transport layers from

    one another and adheres to a Single-Master/Multi-Slave concept. XCP always uses the

    same protocol layer independent of the transport layer. The X in its name stands for the variable and interchangeable transport layer. Currently, the following transport layers are

    defined as standard by ASAM as of May 2010:[2]

    XCP on CAN

    XCP on CAN FD

    XCP on SxI (SPI, SCI)

    XCP on Ethernet (TCP/IP and UDP/IP)

    XCP on USB

    XCP on FlexRay

    In addition to supporting other transport layers, the successor to the CCP protocol contains

    many functional improvements such as:[3]

    Better resource utilization in the ECU

    Synchronous data stimulation

  • Support of start-up measurements

    Optimized communication by block transfer commands

    Plug & play configuration

    More precise measurement data acquisition by measuring the time stamps in the

    ECU (Slave)

    XCP allows a client to access memory on the ECU using a format defined in a separate

    A2L file. Because the A2L format file contains all the information to access the

    information, the ECU code does not have to be recompiled to access different

    measurements or calibrations