貨車(chē)OBD芯片的J1939協(xié)議開(kāi)發(fā)

發(fā)布時(shí)間:2019-9-19 19:42    發(fā)布者:OBD芯方案
關(guān)鍵詞: OBD , J1939 , ECU模擬器 , MCU , CAN
貨車(chē)車(chē)聯(lián)網(wǎng) J1939 QBD61 QBD66 原TDA61/66 在卡車(chē)貨車(chē)工程車(chē)商用車(chē)大客車(chē)的應用.貨車(chē)OBD芯片的J1939協(xié)議開(kāi)發(fā)

J1939 協(xié)議簡(jiǎn)介       
J1939是一個(gè)廣泛應用在重型汽車(chē),卡車(chē),工程車(chē)和大客車(chē)商務(wù)車(chē)的CAN協(xié)議。大型車(chē)隊各種商務(wù)車(chē)輛的管理,貨車(chē)大客車(chē)的時(shí)時(shí)監控調度等等這些商用OBD應用使得J1939有著(zhù)比較廣泛的應用領(lǐng)域。

深圳市芯方案電子科技公司開(kāi)發(fā)的QBD芯片(QBD61,QBD66等)支持了J1939 ECU和診斷設備的絕大部分功能,QBD66默認為自動(dòng)版,使用者無(wú)需過(guò)多專(zhuān)業(yè)知識,即可讀取J1939 貨車(chē)商用車(chē)的總線(xiàn)輸出,并以車(chē)速,轉速的數值直接顯示。
QBD芯片還可以支持J1939的通訊協(xié)議的不同波特率(不同波特率需要改變可編程參數設置)基本可以與市面上絕大部分的商用車(chē)工程車(chē)貨車(chē)通訊。但現在很多廠(chǎng)商根據J1939協(xié)議,自定義了很多應用層,所以在使用過(guò)程中可能會(huì )發(fā)現有異,F象,請反饋給我們,我們會(huì )盡快的修正。QBD芯片內部有方便的升級功能。QBD芯片自定商用車(chē)OBD指令用戶(hù)無(wú)需了解J1939協(xié)議,即可直接獲取貨車(chē),商用車(chē)ECU的各個(gè)參數。QBD芯片還拓展更多高級指令,用戶(hù)可以直接得到當前車(chē)輛的油耗,里程。


QBD芯片J1939選型
QBD61 QBD66分為自動(dòng)版 手動(dòng)版兩個(gè)版本 一般61是手動(dòng)版,66自動(dòng)版。 所謂自動(dòng)版 手動(dòng)版,簡(jiǎn)單來(lái)說(shuō)是指上位機獲取OBD數據的方式。 手動(dòng)版--- 手動(dòng)進(jìn)行車(chē)輛數據的查詢(xún),靈活查詢(xún)各種OBD數據參數,適用于那些低頻,且專(zhuān)業(yè)診斷的用戶(hù),例年檢,維修,和各種特定場(chǎng)景應用的客戶(hù)。
自動(dòng)版--- 自動(dòng)實(shí)時(shí)上傳車(chē)輛的常用數據給上位機,特定情況下也可以下發(fā)指令類(lèi)似手動(dòng)版的方式進(jìn)行查詢(xún)(但是這個(gè)不能頻繁手動(dòng)發(fā)送,且響應速度會(huì )稍延遲)。適用于 車(chē)聯(lián)網(wǎng),車(chē)隊監控,車(chē)輛運行狀態(tài)監控的車(chē)聯(lián)網(wǎng)應用。 需要OBD數據高頻,且OBD數據較固定的客戶(hù)。

QBD61芯片J1939功能介紹
依照SAE J1939—81診斷型工具的規范 QBD芯片有以下功能:QBD61默認為手動(dòng) 建議熟悉操作過(guò)汽車(chē)協(xié)議開(kāi)發(fā)的專(zhuān)業(yè)人員開(kāi)發(fā)使用。

一、基本協(xié)議通訊功能

1、 在使用一個(gè)源地址前,發(fā)出有效的地址申明(可選)
2、 在接收到地址聲明后QBD芯片可發(fā)送地址聲明或不可聲明源地址消息。
3、 名字域可編程(修改PP編程參數)。
4、 源地址可更換。
5、 QBD芯片能自動(dòng)接收J1939定義兩種多包數據,全局的廣播BAM消息及特定地址的
RTS/CTS的多包消息,并能同時(shí)接收多個(gè)ECU同時(shí)發(fā)出的多個(gè)BAM數據消息和一個(gè)RTS/CTS多包數據。

二、高級擴展應用指令

1、直接數據輸出,各種常用數據無(wú)需二次轉換,直接以十進(jìn)制ASCII碼回傳汽車(chē)各參數(如轉速,車(chē)速,水溫等等)
2、高級數據指令,如油耗,里程,還支持多參數一次性讀取。



三、標準指令舉例(客戶(hù)亦無(wú)須了解J1939協(xié)議直接使用QBD指令讀取各個(gè)參數)

J1939(默認)的波特率根據J1939—11定義為250kbps, 也許有的應用使用其它的波特率,你可改變可編程參數PP 2B實(shí)現。
J1939協(xié)議定義, J1939消息頭為29位ID,數據域長(cháng)度最多8位(ISO15765是固定8位長(cháng)的)診斷方法及其實(shí)際的數據傳輸鏈路層請查閱SAE J1939—73和SAE J1939—21
QBD芯片發(fā)送J1939消息的方法和標準的OBD2協(xié)議一樣 ,頭格式數據QBD芯片能定義并自動(dòng)添加到消息中。

例:如你想請求ECU發(fā)動(dòng)機溫度的信息,J1939用PGN 00 FE EE參數組傳輸這個(gè)信息。你只要向QBD芯片發(fā)出:

>EE FE 00 的OBD 命令 (高字節在后)。

QBD芯片會(huì )自動(dòng)加上附加的頭格式字節,并自動(dòng)配置接收正確的響應消息,QBD芯片默認的頭格式字節值為18 EA FF F9 表示為OBD診斷工具的全局請求:

18是優(yōu)先級和數據頁(yè)
EA為請求數據的PDF格式
FF為全局地址
F9為J1939定義的診斷工具源地址

改變頭格式字節用AT SH xx xx xx 命令改變,高5位用AT CP xx設置。

QBD芯片的默認值對請求的響應消息可能是單個(gè)數據楨或多個(gè)數據楨(多包消息),QBD芯片都能正確返回數據并顯示。如果是多包消息,QBD芯片自動(dòng)為你處理應答內容,你不用關(guān)心它如何在接收多包消息時(shí)是如何應答的。J1939定義了兩種格式的多包消息,一種是全局的BAM廣播消息,還有一種是一對一的RTS/CTS控制多包消息,QBD芯片能同時(shí)接收多個(gè)ECU發(fā)出個(gè)多個(gè)BAM消息及一個(gè)RTS/CTS消息,完全符合J1939要求。
接收RTS/CTS多包消息,QBD芯片自動(dòng)發(fā)送CTS控制消息, 這個(gè)和ISO15765不同,QBD芯片在用CFC0關(guān)閉時(shí),不影響J1939協(xié)議時(shí)QBD芯片的CTS發(fā)送。對于BAM多包消息, J1939定義不用發(fā)送控制消息,QBD芯片能自動(dòng)接收并返回給PC。CAF0及CAF1只是影響J1939返回數據的顯示格式,在QBD芯片發(fā)送時(shí)不影響。
當CAF1時(shí)J1939與ISO15765一樣,顯示數據總長(cháng)度及消息包的編號,CAF0時(shí)僅返回全部的數據域的數據。ATH1打開(kāi)頭格式顯示時(shí)返回整個(gè)消息包的內容。
SAE J1939預定義了一些診斷模式, 第一個(gè)是診斷模式DM1。 在J1939的CAN網(wǎng)絡(luò )系統中,診斷模式(DM1)消息周期性的在總線(xiàn)上廣播(如果有故障碼)。如果想監聽(tīng)總線(xiàn)上的DM1消息,只要簡(jiǎn)單地使用內部命令DM1:

>AT DM1

QBD芯片將會(huì )在收到DM1消息時(shí)把信息的內容返回給PC。

當想監聽(tīng)其他內容的診斷消息時(shí),只要用AT MP 命令用參數組編號來(lái)監聽(tīng),。
例如:DM2的參數組編號為65227即16進(jìn)制數00 FE CB ,QBD芯片只要輸入后4位數,前面兩位默認值為”00” ,所以監聽(tīng)DM2診斷消息則輸入:

>AT MP FE CB

QBD芯片發(fā)出J1939的OBD命令時(shí)根據命令的字節數來(lái)分成兩種類(lèi)型的接收方法,當發(fā)送的命令為三個(gè)字節長(cháng)度時(shí),QBD芯片認為這是個(gè)PGN(參數據編號)請求,例:前面的“>EE FE 00” OBD命令。QBD芯片將只接收該PGM消息的響應。如果不是3字節長(cháng),QBD芯片作為一般的命令處理,將只接收發(fā)送給目標地址為QBD芯片源地址(F9)的消息。

J1939的地址、名字及申明

QBD芯片源地址默認為OBD標準地址F9,可通過(guò)PP 0E更改其默認值。QBD芯片的J1939名字由8字節組成的64位,可通過(guò)改變PP 19 1A …20的內容更改。
QBD芯片可用 AT ADC1/AT ADC0內部命令設定是否進(jìn)行地址申明,默認為QBD芯片不進(jìn)行地址申明。注:根據J1939要求在使用源地址前必須進(jìn)行原地址申明。
J1939定義,控制應用程序CA(診斷儀)的名字是個(gè)64位標識符,由十個(gè)域組成,其中6個(gè)域由J1939標準定義的給出,其余4個(gè)域由網(wǎng)絡(luò )特性及汽車(chē)架構給出或者由生產(chǎn)商給出。
QBD芯片的設定名字或地址時(shí)必須附給J1939定義,否則可能會(huì )引起總線(xiàn)地址沖突。

64位名字格式組成如下





J1939的多包消息傳送

1、RTS/CTS多包消息

2、全局廣播的BAM多包消息
     
QBD芯片會(huì )自動(dòng)處理以上兩種多包消息。

QBD66芯片J1939功能介紹
依照SAE J1939—的規范 QBD66芯片有以下功能:QBD66默認為自動(dòng)版,使用群體無(wú)需過(guò)多專(zhuān)業(yè)知識,即可讀取J1939 貨車(chē)商用車(chē)的總線(xiàn)輸出,并以車(chē)速,轉速的數值直接顯示。

基本功能使用
1.QBD66(自動(dòng)版)
1.1使用QBD3001ECU模擬器讀取QBD66 J1939協(xié)議的數據
將ECU模擬器電源5V供電,接好OBD頭,并且將ECU模擬器的協(xié)議切換到c協(xié)議,如下圖所示。


1.2電腦端打開(kāi)SSCOM軟件(串口、網(wǎng)絡(luò )數據調試器),然后選擇好對應端口號,波特率選擇為115200之后打開(kāi)串口,就會(huì )看到QBD66的數據流了,可以觀(guān)察到車(chē)輛當前的信息了,如下圖所示。

1.3數據流格式:BD$V12.2;R05093;S039000.0;O027.4;C-40;L050.1;XM008.731;M000644;F000.056;T0000060;A01;B00;D00;GX27;GY257;GZ65491;@4
BD$ 為頭格式,分號為每條數據結尾的標示
V = 電瓶電壓
R = RPM 轉速
S = SPD 速度
P = TP 絕對節氣門(mén)開(kāi)度(位置)
O = LOD 發(fā)動(dòng)機負荷
C = ECT 冷卻液溫度
L = FLI 剩余油量 1分鐘刷新一次
XM 此兩位為瞬時(shí)油耗
其中第一位 X表示當前車(chē)輛是X傳感器,直接數據就是當前車(chē)輛的瞬時(shí)油耗。
其中第二位 M表示百公里油耗 (行駛顯示 速度>0)
M  =  MILES-T 此次的里程 單位 米
F  =  FUELS-T 此次的油耗  單位 L
T  =  TIMES 此次運行時(shí)間  單位 秒
E   =  汽車(chē)發(fā)動(dòng)機狀態(tài)0熄火,1點(diǎn)火,2是自動(dòng)啟停狀態(tài),3是油電混合或油氣狀態(tài)
A   =  急加速次數
B   =  急剎車(chē)次數 
D   =  故障碼個(gè)數 1分鐘刷新一次(如果有變化就把故障碼顯示出來(lái)) 例如1,P123;顯示一次
GX  =  X軸震動(dòng)值(有GSENSOR的時(shí)候顯示)
GY  =  X軸震動(dòng)值(有GSENSOR的時(shí)候顯示)
GZ  =  X軸震動(dòng)值(有GSENSOR的時(shí)候顯示)
@n  =  n 為輸出的順序以方便上位機判斷當前指令是否結束和依次的順序。
1.4休眠喚醒方式
在ECU模擬器上,按下最右側按鈕(點(diǎn)火/熄火按鈕),此時(shí)數碼管燈滅,則表示車(chē)已經(jīng)熄火,OBD進(jìn)入休眠低功耗狀態(tài),再次按下最右側按鈕,此時(shí)數碼管點(diǎn)亮,表示車(chē)點(diǎn)火啟動(dòng),OBD從休眠狀態(tài)喚醒,開(kāi)始工作。如下圖所示,圖一為休眠,圖二為喚醒。


2.QBD61(手動(dòng)版)
2.1首先將線(xiàn)材都連接好,USB一端連接電腦USB口,另一端連接到ECU模擬器上,并且將協(xié)議切換到c協(xié)議。如下圖所示。

2.2同樣在電腦端打開(kāi)SSCOM軟件(串口、網(wǎng)絡(luò )數據調試器),選擇對應的端口號,波特率選擇38400,然后打開(kāi)串口。由于QBD61是手動(dòng)版,所以打開(kāi)串口不會(huì )看到數據流,需要手動(dòng)發(fā)送指令,即可得到需要讀取的數據,以下步驟為讀取轉速(RPM)為例。
(1)發(fā)送ATL1
—>ATl1
<—ATl1OK
(2)發(fā)送ATSPA
—>STAPA
<—ATSPAOK
(3)然后發(fā)送AT MP 00F004
->AT MP 00F004
然后會(huì )接收到十六進(jìn)制的數據流,如下圖所示。

將數據的第四位和第五位拿出來(lái)為101F,并且把高位放在后低位放在前,得到1F10,然后除以8,會(huì )得到轉速的實(shí)際值。
2.3以下步驟為讀取車(chē)速的(SPD)數據
(1)發(fā)送ATL1
—>ATl1
<—ATl1OK
(2)發(fā)送ATSPA
—>STAPA
<—ATSPAOK
(3)發(fā)送 AT MP FEF1,就會(huì )接受到數據,如下圖所示。

將第二位和第三位的數拿出來(lái)為DD 0C,高位在后低位在前為0C DD,然后再除以256,就可以得到實(shí)際的車(chē)速值。



本文地址:http://selenalain.com/thread-568838-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
OBD芯方案 發(fā)表于 2019-9-19 20:53:22
深圳市芯方案電子科技有限公司
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页