标定协议之XCP标定协议介绍
作者 | WenDao_Engineer
微信公眾號?|?聞道工程師之家
在《標定協議基礎知識介紹》一文中我們介紹了常用的標定協議有CCP和XCP兩種,在前面CCP標定協議系列文章對CCP標定協議指令、DAQ模式以及實現流程做了詳細的介紹。XCP標定協議和CCP標定協議在功能都是為了實現標定,但還是有一些差異,本文將從與CCP標定協議差異性的地方來對XCP標定協議進行介紹。
XCP協議標準介紹
CCP標定協議只能是基于CAN通訊來實現標定,隨著技術的發展,控制器之間可以有多種通訊協議。因此,ASAM (Association for Standardization of Automation and Measuring Systems,簡稱 ASAM)組織在2003年提出的可在不同的通信總線上進行標定的新型標定協議,這里的X就表示在不同的通訊協議傳輸層上傳輸,包括但不限于CAN、Ethernet、FlexRay、SCI、SPI、USB。XCP標定協議標準主要由以下幾部分組成:
Part1 – Overview。XCP協議概述,該部分內容包括XCP的特點描述以及XCP協議的基本原理。
Part2 – Protocol Layer Specification。該部分內容對協議層進行詳細的說明,包括XCP數據包類型、格式以及各命令使用說明。
Part3 – Transport Layer Specification。該部分內容包含5份文檔,分別對應5個不同的傳輸層(CAN,Ethernet/TCP_IP,FlexRay,SxI/SCI&SPI,USB),定義不同總線下傳輸層的實現方式。
Part 4 – Interface Specification。該部分內容主要是對A2L描述文件、秘鑰與種子加解密、數據校驗功能說明。
Part5 – Example Communication Sequences。該部分內容以實際通訊數據為示例,描述了部分通信數據流,演示如何使用XCP協議的命令同ECU進行通訊。
XCP與CCP協議差異介紹
XCP與CCP標定協議實現機制一樣,都是通過上位機與控制器之間交互式指令實現標定。CCP標定協議定義上位機發送給控制器的指令叫CRO,控制器發送給上位機的數據叫做DTO。XCP標定協議定義上位機與控制器之間的指令交互叫CTO,包括上位機發送給控制的CMD以及控制器發送給上位機的RES、ERR、EV以及SERV四種響應,上位機和控制器之間的數據交互叫做DTO包括控制器傳輸給上位機的DAQ數據和上位機傳輸給控制器的STIM數據。下面將從以下幾方面介紹XCP與CCP協議差異:
指令功能差異
XCP在CCP標定協議功能基礎上擴展了SERV和STIM兩種功能,其中SERV主要是用于控制器向上位機請求執行相關操作,STIM功能和DAQ功能一樣都是為了執行數據傳輸,只不過DAQ是控制器向上位機周期性上傳數據,而STIM正好相反,是上位機向控制器周期性傳輸數據。
報文格式差異
XCP標定協議為了適用于多種通訊協議,相對于CCP標定協議比較簡單的數據包格式,對協議數據包進行了重新定義,如果是應用于CAN通訊方式,將Header和Tail部分去除,重點關注Packet部分就可以了。
—CTO Packet定義
CTO Packet定義只包含了PID和數據域兩部分,其中PID為CMD、RES、ERR、EV以及SER各自對應的定義,數據域為需要傳輸的數據內容。在CTO Packet中沒有Timestamp相關定義。
—DTO Packet定義
DTO Packet報文格式定義相對比較復雜,相對于CTO?Packet報文定義主要在PID和Timestamp兩部分定義的差異:
PID定義
在前面《標定協議之CCP協議的DAQ模式介紹》一文中對DAQ的工作原理進行過詳細的介紹,DAQ數據傳輸時需要匹配DAQ列表編號和ODT數據編號,因此根據DAQ不同的定義PID有以下幾種格式:
絕對ODT數據編號
將控制器中所有DAQ列表中的ODT轉化為連續絕對的數據編號,通過DAQ傳輸時所有ODT數據編號是唯一的,因此PID的定義就只有ODT數據編號的內容。
相對ODT數據編號和絕對DAQ列表標號
每一次DAQ數據傳輸時將明確所傳輸的DAQ列表標號和當前傳輸數據在DAQ列表中的ODT數據編號,PID的定義就包含DAQ列表編號和ODT數據編號兩部分內容,其中DAQ列表編號可以根據需求定義為一個字節和和兩個字節類型。
帶數據對齊的相對ODT數據編號和絕對DAQ列表標號
如果DTO數據包需要滿足某些對齊條件,則需要增加額外的FILL字節。
Timestamp定義
為了保證XCP傳輸數據的同步,在數據包中可以定義一個Timestamp字段來同步傳輸數據包的時間戳,當使用DAQ模式時,在每一個DAQ周期開始的第一個ODT中的DTO數據包中發送控制器中當前時鐘數值,下一個DAQ周期時類似循環發送。
根據對Timestamp數據長度定義,其數據長度可以從一個字節到四個字節進行定義
由于PID和Timestamp有不同的格式定義,因此DTO數據包格式可以根據實際需求有不同的組合定義
DAQ傳輸差異
XCP與CCP的DAQ傳輸原理是完全一樣的,具體可以參考《標定協議之CCP的DAQ模式介紹》一文相關介紹。CCP的DAQ傳輸配置都是在傳輸開始前進行配置,啟動DAQ傳輸后就不能再對配置更改了,但是XCP為了更加靈活的進行數據傳輸,在傳輸過程中可以支持動態修改傳輸配置,具體可以參考XCP協議標準中DAQ動態配置相關指令介紹。
XCP協議指令介紹
XCP協議標準中的指令都是通過PID進行定義的,根據XCP所支持的不同功能,上位機發送給控制器和控制器發送給上位機的PID指令定義有相關區分:
在XCP協議標準在最主要的PID定義就是上位機發送給控制器的CMD相關定義,其中主要分為以下幾部分,具體指令內容可以參考XCP協議標準相關定義。
基礎標準指令定義-STD
標定功能指令定義-CAL
標定頁面切換指令定義-PAG
DAQ傳輸指令定義-DAQ
數據刷寫指令定義-PGM
本文在前面對CCP標定協議介紹的基礎上對XCP協議進行了對比介紹,讓大家對XCP標定協議有了一個初步的了解。兩者實現的原理都基本一致,只是在具體定義上存在一定差異,可以根據具體的需求詳細閱讀XCP標準協議定義。
想獲取更多及時資訊和學習資源,關注微信公眾號“聞道工程師之家”,第一時間收到文章推送!
免責聲明:本文素材部分來源于網絡,版權歸原作者所有,如有涉及侵權,請與我聯系刪除。
總結
以上是生活随笔為你收集整理的标定协议之XCP标定协议介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 降噪效果好的蓝牙耳机有哪些?降噪耳机降噪
- 下一篇: XCP