重型柴油車標(biāo)準(zhǔn)CAN協(xié)議遵循J1939,同樣適用于一些工程機械和大部分的客車,SAE J1939物理層基于ISO11898-2,速率為250kbit/s。CAN(Controller Area Network)總線信息傳輸著車輛各總成控制器的重要控制信號,如何直接從CAN總線上獲取、保存與分析報文非常重要。
我們針對各類不同的汽車做數(shù)據(jù)采集,這些數(shù)據(jù)不僅有利于駕駛員更好獲取駕駛信息,提高車輛操控性,而且便于交通事故的調(diào)查分析,為汽車智能化提供了數(shù)據(jù)基礎(chǔ)。SAE J1939協(xié)議是目前客車、卡車等大型汽車中最廣泛的應(yīng)用層協(xié)議,其針對車輛內(nèi)部ECU(Electronic Control Unit)的報文格式、ISO拉丁字母符集、參數(shù)范圍、傳輸重復(fù)率、地址配置、發(fā)動機參數(shù)命名、通信方式及報文發(fā)送優(yōu)先級等做了明確的規(guī)定。
SAE J1939的消息格式使用參數(shù)群編號作為一組參數(shù)的標(biāo)號。這些參數(shù)中的每一個都可以用ASCII碼表達,或者由兩個或者兩個以上的字母組成的功能狀態(tài)。字母數(shù)字字符將首先作為最高位的有效字節(jié)進行傳送,除非另外有特殊指定,字母數(shù)字字符都遵照ISO字母組,其他兩個或者兩個以上數(shù)字字節(jié)組成的參數(shù),首先作為最低位有效字節(jié)進行傳送。
對每個參數(shù)都應(yīng)該確定它的數(shù)據(jù)類型,數(shù)據(jù)的類型可以是狀態(tài)值或者是測量值。狀態(tài)值表示一個或多個狀態(tài)參數(shù)的目前狀態(tài),比如車門為打開狀態(tài)、或者為關(guān)閉狀態(tài),當(dāng)下車速是60碼,這些都是狀態(tài)數(shù)據(jù),這些都是傳輸節(jié)點在執(zhí)行操作后所產(chǎn)生的結(jié)果。這個操作是根據(jù)本地或者網(wǎng)絡(luò)測量值或者狀態(tài)信息進行計算的結(jié)果。要注意的是,這樣的操作不需要有特定的確認(rèn)信息。例如狀態(tài)數(shù)據(jù)表示有一個電磁線圈已經(jīng)被激活了,我們并不需要對他進行測試來確認(rèn)這個電磁線圈已經(jīng)實現(xiàn)了它的功能,直接通過報文信息比對便可以輸出這個結(jié)果。狀態(tài)類的數(shù)據(jù)有發(fā)動機剎車被啟動,速度運行、巡航控制運行、巡航狀態(tài)、故障代碼、轉(zhuǎn)矩、油門以及這些狀態(tài)數(shù)據(jù)不對稱性的調(diào)整等等。
測量之類的數(shù)據(jù)表示了傳輸節(jié)點對某個參數(shù)測量后得到的當(dāng)前值,這樣可以確定已定義的參數(shù)的狀態(tài)。數(shù)據(jù)測量值類型的數(shù)據(jù)有進氣壓力、點火開關(guān)、巡航設(shè)置開關(guān)打開、最大巡航速度、剩余油量、速度、負(fù)載百分比等等。
通信參數(shù)的定義:
看下面三個表格,包含了確定的傳輸信號有效數(shù)值范圍、表示離散參數(shù)的傳輸數(shù)值(測量值)及表示控制模式命令狀態(tài)的數(shù)值范圍。在錯誤指示范圍內(nèi)的數(shù)值表示,由于傳感器、子系統(tǒng)或功能模塊中出現(xiàn)某種類型的錯誤,因而沒有可利用的參數(shù)(比如該車沒有這個傳感器)。
在不可用的范圍內(nèi)的素質(zhì)表示,模塊傳遞的消息包含的參數(shù)在該模塊中不可用或者不支持,在不可被請求范圍內(nèi)的數(shù)值提供了設(shè)備傳輸命令消息和識別那些不要接收設(shè)備發(fā)出響應(yīng)的參數(shù)的手段。
如果一個元件故障阻礙了某個參數(shù)有效數(shù)據(jù)的傳輸,那表示離散參數(shù)的傳輸數(shù)值及控制命令傳輸數(shù)值的下表中描述的錯誤顯示數(shù)值應(yīng)該用于代替該參數(shù)的數(shù)值。然而,如若測量或計算出來的數(shù)據(jù)所產(chǎn)生的數(shù)值是否有效的,但它超過了已定義的范圍,那么我們采集到的錯誤顯示的數(shù)值就不應(yīng)該使用,而應(yīng)該用合適的最小或者最大數(shù)值進行傳輸,采集的時候容易掉坑。
傳輸信號有效數(shù)值范圍
范圍名稱 | 1字節(jié) | 2字節(jié) | 4字節(jié) | ASCII |
有效信號 | 00-FA | 0000-FAFF | 00000000-FAFFFFFF | 01-FE |
特定參數(shù)指示 | FB | FB00-FBFF | FBXXXXXX | - |
保留給將來指示使用的范圍 | FC-FD | FC00-FDFF | FC000000-FDFFFFFF | - |
錯誤指示 | FE | FEXX | FEXXXXXX | 00 |
不可用或者不可請求 | FF | FFXX | FFXXXXXX | FF |
表示離散參數(shù)的傳輸數(shù)值(測量值)
范圍名稱 | 傳輸數(shù)值 |
禁止(關(guān)閉,非運行等) | 00 |
啟動(打開,正在運行等) | 01 |
錯誤提示 | 10 |
不可用或不能裝 | 11 |
表示控制命令的傳輸數(shù)值(狀態(tài))
范圍名稱 | 傳輸數(shù)值 |
用于停止功能的命令(關(guān)閉等) | 00 |
用于啟動功能的命令(打開等) | 01 |
保留 | 10 |
無關(guān)緊要/無動作(看功能決定) | 11 |
我們在采集數(shù)據(jù)的過程中會涉及到比例、界限、偏移量、和傳送等,這樣給在CAN總線上給定的參數(shù)類型(如溫度、壓力、速度)中盡量保持?jǐn)?shù)據(jù)的一致性。例如大眾汽車的方向盤轉(zhuǎn)向角度通過CAN報文采集的是-32768至32768的范圍,它的分辨率是0.1秒位,數(shù)據(jù)長度是16位,偏移量就是-3276.8,為此可以判定這個的角度和方向。另如制動踏板,這個數(shù)據(jù)在DBC報文顯示踩下為01,放開為00,也十分容易判別。
類似這樣的數(shù)據(jù)采集,可以從DBC獲得豐富的數(shù)據(jù)包含了計數(shù)、里程、剩余油量、電流、進氣流量、耗油量、調(diào)速增益、齒輪傳動比、重力負(fù)荷、進氣壓力、溫度等等,在BCM系統(tǒng)還可以采集安全帶、手剎、車門狀態(tài)、鑰匙狀態(tài)、方向盤轉(zhuǎn)向角度、動力開關(guān)等,控制上基本都可以實現(xiàn)動力開閉、閃燈鳴笛、門鎖開閉、升窗、關(guān)天窗、控雨刮、尾箱等。
發(fā)動機的有些參數(shù)是根據(jù)曲柄角的變化進行計算或者更新的,它們不是在某個特定的時間后進行的。這個情況下,參考特定的更新就會失效,因為這個時候是按照轉(zhuǎn)速變化而變化。為了避免網(wǎng)絡(luò)負(fù)擔(dān)過重,我們采用總線監(jiān)聽的方式,讀懂了發(fā)動機的通信與控制參數(shù),發(fā)動機也是盡量縮短采樣時間、運算和傳輸數(shù)據(jù)的反應(yīng)時間。大體有2種,一是基于時間的采樣、運算和傳輸;二是基于時間和基于曲柄角混合使用的采樣、運算和傳輸。這時,為了在可接受的范圍內(nèi)保持?jǐn)?shù)據(jù)更新速度,曲柄角的角度值會根據(jù)當(dāng)前的運轉(zhuǎn)速度,在前后更新的時間間隔中改變。
例如下面幾組發(fā)動機電子控制單元的主報文幀內(nèi)容:
Torque/ Speed Conrtol-轉(zhuǎn)矩速度控制
發(fā)動節(jié)點:HCU
接受節(jié)點:ECU
發(fā)送周期:取決控制目的
數(shù)據(jù)長度:8
數(shù)據(jù)頁:0
PDU格式:0
特定PDU:DA
默認(rèn)優(yōu)先值(P):3
參數(shù)群編號(PGN):0
起始位 | 長度 | 數(shù)據(jù)名 | SPN |
1.1 | 2bit | 發(fā)動機控制模式 | 695 |
1.3 | 2bit | 發(fā)動機請求速度控制狀況 | 696 |
1.5 | 2bit | 控制模式優(yōu)先級 | 897 |
2-3 | 2 byte | 所請求的輸出轉(zhuǎn)速/速度極限 | 898 |
4 | 1 byte | 所請求的轉(zhuǎn)/轉(zhuǎn)矩限制 | 518 |
5.1 | 3bit | TSC發(fā)送速率 | 3349 |
5.4 | 5bit | TSC 控制目的 | 3350 |
Turbocharger-渦輪增壓器
發(fā)送周期:1秒
數(shù)據(jù)長度:8
數(shù)據(jù)頁:0
PDU格式:254
特定PDU:221
默認(rèn)優(yōu)先值(P):6
參數(shù)群編號(PGN):0XFEDD
起始位 | 長度 | 數(shù)據(jù)名 | SPN |
1 | 1 byte | 渦輪增壓器潤滑油壓力 | 104 |
2-3 | 2 byte | 渦輪增壓器1轉(zhuǎn)速 | 103 |
4.7 | 2bit | 渦輪增壓器油位開關(guān) | 1665 |
在國六遠程OBD在線排放終端控制器的系統(tǒng)中,速銳得就是采用這一特性,從J1939的數(shù)據(jù)協(xié)議中采集獲得發(fā)動機工況包含了車速、大氣壓力、發(fā)動機扭矩、摩擦扭矩、發(fā)動機轉(zhuǎn)速、燃料流量、SCR上游氮氧化物傳感器輸出值、反應(yīng)劑余量、進氣量、SCR出入口溫度、DPF壓差、發(fā)動機冷卻液溫度、郵箱液平面百分比、定位狀態(tài)、經(jīng)緯度、累計里程、發(fā)動機扭矩模式、油門踏板、油耗、尿素箱溫度、實際尿素噴射量、DPF排氣溫度等數(shù)據(jù),通過移動4G/5G網(wǎng)絡(luò),采用GB-17691網(wǎng)絡(luò)通訊傳輸協(xié)議,將終端數(shù)據(jù)發(fā)送給數(shù)據(jù)平臺,實現(xiàn)重型車J1939在環(huán)保排放領(lǐng)域的CAN總線數(shù)據(jù)應(yīng)用。