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]。