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