一、項目概述
J1939協(xié)議在世界范圍內(nèi)已經(jīng)在廣泛的使用,各種大型發(fā)動機、大型汽車、客車、輪船都有使用,是一款優(yōu)秀的基于CAN總線的高層協(xié)議。本項目是油田中上千個卡特柴油機與康明斯發(fā)動機的控制與監(jiān)測。將J1939協(xié)議轉(zhuǎn)換為MODBUS TCP和MODBUS RTU協(xié)議,方便與其它控制系統(tǒng)對接,充分的體現(xiàn)了TG900的靈活與可靠。
二、實現(xiàn)原理
抓取的J1939報文
2011年10月26日10時00分38秒
29 0C F0 03 00 FF 00 00 FF FF FF FF FF
PGN61443-電子的發(fā)動機控制器#2 EEC2
傳輸循環(huán)率: 50ms
數(shù)據(jù)長度: 8 字節(jié)
數(shù)據(jù)頁面: 0
PDU 格式: 240
PDU 特定: 3
默認優(yōu)先值: 3
參數(shù)組數(shù)編號: 61443(00F00316)
29 0C F0 04 00 FF BD 7D 00 00 FF FF FF
PGN61444-電子的發(fā)動機控制器#1 EEC1
傳輸循環(huán)率: 依賴發(fā)動機轉(zhuǎn)速
數(shù)據(jù)長度: 8 字節(jié)
數(shù)據(jù)頁面: 0
PDU 格式: 240
PDU 特定: 4
默認優(yōu)先值: 3
參數(shù)組數(shù)編號: 61444(00F00416)
具體SPN含義請參考相關(guān)協(xié)議說明,在此就不一一列舉
三、編程實現(xiàn)
以標準的J1930協(xié)議250KB速率打開CAN通迅口,新建兩個CAN_READ功能塊分別讀取PGN61443與PGN61444。
當接收到PGN61443報文時,梯形圖中PGN61443(8字節(jié)數(shù)組)中的數(shù)據(jù)分別為:
FF 00 00 FF FF FF FF FF
Spn558—加速踏板低怠速開關(guān) 1.1位置 第二個字節(jié)的0與1位 當前值為00
Spn559—加速踏板換低檔開關(guān) 1.3位置 第二個字節(jié)的2與3位 當前值為00
根據(jù)SPN參數(shù)定義我們就很容易知道發(fā)動機中的各種參數(shù)與狀態(tài)及實時測量值了。
四、SPN參數(shù)介紹
Spn558—加速踏板低怠速開關(guān)
表示加速踏板低怠速開關(guān)是否打開的開關(guān)信號。低怠速開關(guān)的定義在 SAE J1843。
00-加速踏板不在低速怠速位置
01-加速踏板在低速怠速位置
位長:2 位
類型:測量值
可疑參數(shù)號碼:558
參數(shù)組編號:[61443]
Spn559—加速踏板換低檔開關(guān)
表示加速踏板換低檔開關(guān)是否打開的開關(guān)信號。換低檔開關(guān)的定義在 SAE J1843。
00-被動式換低檔
01-主動式換低檔
位長:2 位
類型:測量值
可疑參數(shù)號碼:559
參數(shù)組編號:[61443]
五、J1939協(xié)議介紹
SAE J1939協(xié)議是由汽車工程協(xié)會(SAE)定義的,主要用于商用車輛,但也用于艦船、軌道機車、農(nóng)業(yè)機械和大型發(fā)動機。另外,SAE J1939用作國際標準NMEA 2000(海事) 和 ISO 11783(農(nóng)業(yè)機械)的基礎(chǔ),因而此協(xié)議棧也能用于這些應(yīng)用。
在商用車輛方面,由SAE制定的標準化串行協(xié)議長期以來一直用于單個電子控制單元和傳動裝置上元件之間的通信?;谕ǔ?蓮膯纹瑱C串行端獲得的J1708/ J1587協(xié)議可以被視作前驅(qū)。
由于需要與J1708/1587協(xié)議兼容,對于J1939來說,必須要求CAN報文標識符從11-bits擴展到29-bits(擴展格式),并且CAN模塊的開發(fā)或協(xié)議實現(xiàn)應(yīng)支持這種報文格式。
因為有擴展的CAN標識符,這就能夠象用于J1708那樣,將通信關(guān)系的定義規(guī)則映射到CAN。部分標識符被用于指定一個8-bit源和一個8-bit目標地址(節(jié)點數(shù))。
所以通過SAE J1939能夠傳輸測量值和控制數(shù)據(jù)并配置元件。另外,還能夠讀或刪除單個元件診斷數(shù)據(jù),并對單個控制進行校準。
為了使這些成為可能,對于商用車方面的所有相關(guān)變量都要在SAE J1939中定義值域、分辨率、識別數(shù)等等。這些對基于J1587技術(shù)規(guī)格的大都實現(xiàn)。
因此,在J1939協(xié)議中,不僅僅指定了傳輸類型、報文結(jié)構(gòu)及其分段、流量檢查等,而且報文內(nèi)容本身也做了精確的定義。SAE J1939在ISO/OSI層模型中的分布根據(jù)OSI層模型,
SAE J1939被分成幾個層,每一層都分別有相應(yīng)的文檔說明。類似于所有實際上的現(xiàn)場總線協(xié)議,在SAE J1939上第5和6層是不需要的,因此沒有定義。
SAE J1939的功能被分為如下幾層:
第一層(物理層)描述在其它事物中與物理媒介的電子接口;
第二層(數(shù)據(jù)鏈路層)描述通過基于CAN 2.0B技術(shù)規(guī)格的CAN的數(shù)據(jù)通信;
第三層(網(wǎng)絡(luò)層)主要描述兩個網(wǎng)絡(luò)部分間針對報文傳輸?shù)木W(wǎng)橋的功能,并且只與 J1939網(wǎng)橋?qū)崿F(xiàn)相關(guān);
第四層(傳輸層)基本上描述的是針對報文申請模式、確認傳輸和大數(shù)據(jù)塊的分段傳輸?shù)母鞣N網(wǎng)絡(luò)服務(wù);
第七層(應(yīng)用層)描述實際的數(shù)據(jù)(參數(shù)或帶有值域的網(wǎng)絡(luò)變量、分辨率、物理單元和傳輸類型)。每個報文無歧義地對應(yīng)一個數(shù)(參數(shù)組數(shù));
由于網(wǎng)絡(luò)管理可以被當作一個分離的單元,能直達硬件(第一層),因此在這個層模型中,該模塊是作為右手邊的一個獨立的功能塊。網(wǎng)絡(luò)管理基本上包括自動分配或決定節(jié)點地址(即插即用原則)。在SAE J1939中沒有定義節(jié)點監(jiān)視,因而必須在應(yīng)用時通過循環(huán)報文實現(xiàn)。
轉(zhuǎn)載請注明出處。