車載總線系列——J1939 二
我是穿拖鞋的漢子,魔都中堅(jiān)持長(zhǎng)期主義的汽車電子工程師。
老規(guī)矩,分享一段喜歡的文字,避免自己成為高知識(shí)低文化的工程師:
沒(méi)有人關(guān)注你。也無(wú)需有人關(guān)注你。你必須承認(rèn)自己的價(jià)值,你不能站在他人的角度來(lái)反對(duì)自己。人生在世,最怕的就是把別人的眼光當(dāng)成自己生活的唯一標(biāo)準(zhǔn)。到最后,既沒(méi)有活成別人喜歡的樣子,也沒(méi)有活成自己想要的樣子。 我們只有接納真實(shí)的自己,不自卑、不自傲,才能擁有更強(qiáng)大的內(nèi)心;只有找到自己的核心價(jià)值,才能活出自己的精彩人生。
SAE J1939是基于CAN(Controller Area Network,控制器局域網(wǎng))的通信協(xié)議,廣泛用于各類商用車。該協(xié)議對(duì)車輛中連接CAN的電子組件及其附加設(shè)備之間的通信進(jìn)行了標(biāo)準(zhǔn)化。
SAEJ1939 PGN
參數(shù)組(PG)是具有彼此相關(guān)性且傳輸速率相同的一組信號(hào)。每個(gè)參數(shù)組都有唯一的編號(hào),即PGN(Parameter Group Number,參數(shù)組編號(hào))。參數(shù)組容易與CAN標(biāo)識(shí)符混淆。本章節(jié)旨在說(shuō)明J1939參數(shù)組與CAN報(bào)文標(biāo)識(shí)符之間的區(qū)別。以下是兩者的相同點(diǎn)和不同點(diǎn):
相同點(diǎn):
-> 將相關(guān)信號(hào)分為一組
-> 可通過(guò)唯一編號(hào)標(biāo)識(shí)
-> 包含應(yīng)用程序和協(xié)議數(shù)據(jù)
不同點(diǎn):
-> 不限于8個(gè)數(shù)據(jù)字節(jié)(上限1785個(gè)字節(jié))
-> 可以點(diǎn)對(duì)點(diǎn)傳輸
-> 報(bào)文的優(yōu)先級(jí)與PGN無(wú)關(guān)
-> 如果為參數(shù)組定義的數(shù)據(jù)長(zhǎng)度大于8個(gè)字節(jié),則將其作為多個(gè)數(shù)據(jù)包報(bào)文發(fā)送。該規(guī)范規(guī)定了傳輸協(xié)議。
結(jié)構(gòu)
J1939-21文檔定義了一種解析29位CAN ID的機(jī)制。在CAN報(bào)文的8字節(jié)數(shù)據(jù)場(chǎng)中,信號(hào)由起始位和長(zhǎng)度定義。與此類似,CAN標(biāo)識(shí)符細(xì)分為參數(shù)組的各個(gè)段。通過(guò)這種方式,標(biāo)識(shí)符的一部分表示PGN本身,其余部分則解析為源地址、目標(biāo)地址、優(yōu)先級(jí)和數(shù)據(jù)頁(yè)?!癋rom the 29-bit CAN Identifier to the Parameter Group”圖顯示了J1939 CAN標(biāo)識(shí)符的結(jié)構(gòu)。
關(guān)于PGN Format
該圖顯示特定PDU段 具有多種解析方式。此段的內(nèi)容可用于擴(kuò)展PDU 格式段、定義PGN,也可用于指定目標(biāo)地址。規(guī)則如下:
如果PDU 格式段中的值小于240,特定PDU段的內(nèi)容將解析為目標(biāo)地址。這里稱之為PDU格式1或者特定PGN。不僅可以使用點(diǎn)對(duì)點(diǎn)通信將PDU- 格式- 1中的PGN明確地發(fā)送到目標(biāo)地址;也可以使用全局地址(255),這種方式可以在全局范圍內(nèi)傳輸特定的PGN,即傳輸?shù)剿芯W(wǎng)絡(luò)節(jié)點(diǎn)。
如果PDU 格式段的值大于等于240,則特定PDU段將解釋為組擴(kuò)展。這意味著沒(méi)有目標(biāo)地址,并且報(bào)文將始終發(fā)送到所有網(wǎng)絡(luò)節(jié)點(diǎn)。PDU格式段和特定PDU段共同表示一個(gè)與PGN對(duì)應(yīng)的16位的值。在這種情況下,PGN具有PDU 格式 2,稱為全局PGN。
特定PGN在表示時(shí)不需要地址信息,使用“00”代替目標(biāo)地址作為擴(kuò)展。
比如:PDU格式段數(shù)值為0XEE,則PGN 表示為0XEE00。
數(shù)據(jù)內(nèi)容
J1939不僅定義PGN,還定義其內(nèi)容。所謂內(nèi)容就是一般情況下用戶自定義私有協(xié)議中所說(shuō)的信號(hào)。J1939規(guī)范為PGN內(nèi)容定義了術(shù)語(yǔ):SPN(Suspect Parameter Number,可疑參數(shù)編號(hào)),SPN就是一種信號(hào)ID,可以是物理值、狀態(tài)或命令。此外,SPN也可以表示內(nèi)部協(xié)議信息。目前,J1939-DA以表格形式列出了所有指定的SPN。SPN是由SAE 指定的數(shù)字。PGN的描述中指定了SPN在PGN內(nèi)的起始位置(參見(jiàn)章節(jié)全局參數(shù)組示例)。SPN的解析順序?yàn)閺腖SB(右)到MSB(左),字母數(shù)字?jǐn)?shù)據(jù)除外。一個(gè)SPN可以存在于多個(gè)PGN中。
協(xié)議中采用相同的描述方式定義SPN,并且具備以下屬性:所有SPN在定義中的描述均相同,且具有以下屬性:
關(guān)于網(wǎng)絡(luò)準(zhǔn)入,J1939 的網(wǎng)絡(luò)管理禁止與普通汽車環(huán)境中的網(wǎng)絡(luò)管理相混淆。汽車中的網(wǎng)絡(luò)管理用于將網(wǎng)絡(luò)(子網(wǎng))中的ECU設(shè)置為 “約定”的空閑狀態(tài),同時(shí)不丟失總線中的任何信息。
J1939將該術(shù)語(yǔ)定義為動(dòng)態(tài)網(wǎng)絡(luò)中的通信(進(jìn)入網(wǎng)絡(luò))和設(shè)備地址管理的訪問(wèn)控制。其中,設(shè)備地址和NAME發(fā)揮著關(guān)鍵作用(參見(jiàn)名稱和地址章節(jié))。
對(duì)于地址聲明,J1939網(wǎng)絡(luò)管理的最簡(jiǎn)單形式如下:在啟動(dòng)之后和開(kāi)始通信之前,每個(gè)ECU發(fā)送“地址聲明”,借助“地址聲明”參數(shù)組(PGN 0x00EE00)公開(kāi)設(shè)備名稱和預(yù)定義的設(shè)備地址。在靜態(tài)網(wǎng)絡(luò)中,此操作主要用于確定網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。例如,可以使用診斷工具快速確定車輛中是否存在減速器。
當(dāng)總線中地址沖突,“地址聲明”也適用于動(dòng)態(tài)網(wǎng)絡(luò)。此外,網(wǎng)絡(luò)管理還可用于解決地址沖突。例如,后加入的ECU使用網(wǎng)絡(luò)中某節(jié)點(diǎn)已在使用的地址,網(wǎng)絡(luò)管理即可發(fā)揮該作用。“地址沖突“確保網(wǎng)絡(luò)中的所有節(jié)點(diǎn)地址都是唯一的,絕不能重復(fù)。
擱筆分享完畢!
愿你我相信時(shí)間的力量
做一個(gè)長(zhǎng)期主義者!