Universal Measurement and Calibration Protocol
# Universal Measurement and Calibration Protocol

Das XCP-Protokoll (XCP) ist ein Netzwerkprotokoll. Es wurde vom ASAM e.V. im Jahr 2003 standardisiert (ASAM MCD-1 XCP) und findet hauptsächlich Anwendung in der Automobil-Elektronikentwicklung zur Abstimmung (Kalibrierung) von Parametern und zum Test von elektronischen Steuergeräten. Das Mess- und Kalibrierprotokoll ermöglicht den Lese- und Schreibzugriff auf Variablen bzw. Speicherinhalte von Mikrocontroller-Systemen zur Laufzeit. Ganze Datensätze können ereignissynchron erfasst oder stimuliert werden. Darüber hinaus ermöglicht es auch die Programmierung des Flash-Speichers.

XCP ist der Nachfolger des bereits Mitte der 1990er Jahre entwickelten CAN Calibration Protocol (CCP). Zu dieser Zeit war CAN das allein dominierende Vernetzungssystem im Automobil. Mit der Zeit etablierten sich weitere Bussysteme wie LIN, MOST und FlexRay, so dass eine Erweiterung des Protokolls auf andere Transportmedien nötig wurde. XCP unterstützt darüber hinaus auch synchrone und asynchrone serielle Schnittstellen. Mit Ethernet oder USB als Transportmedium dient XCP auch als standardisierte Schnittstelle zu Analog-Messgeräten und zu Hardware-Schnittstellen-Umsetzern auf RAM-Emulatoren, JTAG oder andere Mikrocontroller Debug-Schnittstellen.

Als Zweischichtenprotokoll trennt XCP die Protokoll- und Transportschicht konsequent voneinander und nutzt ein Single-Master/Multi-Slave-Konzept. Unabhängig von der Transportschicht nutzt XCP immer dieselbe Protokollschicht. Stand Dezember 2016 sind folgende Transportschichten von ASAM als Standard definiert:

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

Die Mess- und Kalibrier-Protokolle XCP (auf CAN als Transportschicht) und CCP sind untereinander nicht kompatibel. Beide Aspekte, Erweiterung und Generalisierung, werden durch das X im Namen XCP zum Ausdruck gebracht (eXtended).

Neben der Unterstützung weiterer Transportschichten flossen auch viele funktionale Verbesserungen in den Nachfolger des CCP-Protokolls ein:

* Bessere Ressourcennutzung im Steuergerät
* Synchrone Datenstimulation
* Unterstützung von Start-Up-Messungen
* Optimierte Kommunikation durch Blocktransfer-Befehle
* Plug&Play Konfiguration
* Genauere Messdatenerfassung durch das Messen der Zeitstempel im Steuergerät (Slave)
