跳到主要內容

發表文章

目前顯示的是 11月, 2020的文章

研究VOLVO的PIDs (3):UDS通訊協定超簡介

引言 這篇繼續聊怎麼讀電瓶SOC,224028。讀完以後,您會知道汽車ECU通訊的UDS大概是什麼,以及224028其實是22 + 4028 從改晶片開始聊UDS Reference 請參考下圖,UDS是汽車ECU通訊的標準介面,VOLVO也採用 UDS的標準的ID組合 0x726(發送請求)/ 0x72E(ECU回應) UDS定義很多 標準服務 ,比如最有趣的Security Access Service,0x27,安全門,很複雜 工具發送0x27給車子,序號01,我要打開安全門 汽車回應0x67,序號01,附贈一把鑰匙2B466E(隨機計算) 工具發送0x27,序號02,回應一把鑰匙5FC105(根據2B466E計算出來) 汽車回應0x67,序號02,安全門打開,然後就能動內部參數了 改晶片有幾個難度,是個專業活 上述的亂碼計算公式只有車廠知道,另外安全門可能不只一道,需要逐一開啟 進了安全門,還要知道內部結構,知道表格放在哪裡 最後還需要引擎的專業知識,才動得了這些參數 看完這段大概還是不會改晶片,不過起碼大概知道怎麼回事(哈),另外他們的通訊協定都是UDS,以下有更多連結可以看 https://blog.csdn.net/qfmzhu/article/details/105756145 https://blog.csdn.net/qfmzhu/article/details/105716337 https://blog.csdn.net/qfmzhu/article/details/105747284 回來聊讀電瓶SOC 這次透過UDS來看這組封包 BEFORE ID=0x726 03224028 00000000 ID=0x72E 04624028 61 000000 // 有反應了!0x61 = 97%  AFTER REQUEST ID = 0x726, DATA=[03]224028 ID = 0x726(標準UDS request ID) LEN = 03(3 byte有效) SERVICE = 22 (Read Data) Data ID = 4028(電瓶SOC的DID本體) RESPONSE ID = 0x72E, DATA=[04]62402861 ID = 0x72E(標準UDS response ID) LEN = 04 (4b...

研究VOLVO的PIDs (2):為什麼Car Scanner會挑ELM327

選手入場 & Car Scanner Pro測試結果 VOLVO car用Car Scanner Pro搭配ELM327有相容性問題,以下是選手清單,測試結果和照片。最讓人不解的是Vgate兩款效果還不同 [O] Vgate iCar Pro BLE [X] Vgate iCar Pro WiFi (這次未測試,但WiFi真的不能用) [X] ZUS OBD2 reader [X] 不知名淘寶ELM327 中間人攻擊 用 中間人攻擊 觀測ELM327送出的命令,選手都沒有踩 我的坑 ,不過這步已經有差異 正確組(Vgate/ ZUS) ID=0x726, DATA=[3]22402800000000 失敗組(Cheap ELM327 from Taobao) ID=0x726, DATA=[3]2240 00 00000000 很詭異吧!淘寶的ELM327根本封包沒送對! ELM327 Terminal Check 不管用Torque或是Car Scanner Pro,他們都直接操作ELM327。這裡有幾篇我寫過的note,有興趣可以繞過去看 ELM327 OBD-II 心得 (1) ELM327 OBD-II 心得 (2),ELM327底層介面 ELM327 OBD-II 心得 (3),試著解析ELM327錄到的CAN封包 ELM327文件教大家怎麼送任意CAN封包 測試的命令如下 0902,讀取車子的VIN,這道命令三個選手都正確回應 ATCF72E,CF=CAN Filter,等一下接收ID=72E ATSH726,SH=Set Header,等一下發送ID=726 224028,查詢電瓶SOC狀態 Vgate BLE版 本次的模範生,有正確的回應224028命令,回傳0x4D,電瓶電量剩77% ZUS Vehicle Health Monitor Reference 有正確的送出封包,但是沒正確實做ATCF72E,他不知道等一下要收72E,最後送出224028回應NO DATA。這顆體積最輕薄,硬體很不錯(是顆藍芽SOC),網站看起來很厲害,可惜軟體沒做對! TAOBAO CHEAP ELM327 淘寶這顆大概用8051做,軟體更爛,命令是224028結果送出224000;連命令都發錯,就更不可能正確回應了 ...

研究VOLVO的PIDs (1):學習前輩Car Scanner Pro

Car Scanner Pro是一款極優秀的程式,它內建VOLVO車的profile,可以看到不少車子裡的數據。 如果看看更深入車子的狀態,裝他就對了!價格不貴,大概100台幣,能更深入研究自己的車 身為軟體開發者,我們最不缺好奇心了!以前我曾看過一些 文章 ,或是 這篇 ,上面有些神奇的PID似乎可以讀取到車子的狀態,不過我自己測試其實不成功 這裡也有一篇 福特 以觀測電池充電狀態來說,請看上圖橘色的字,224028和726,代表傳送的封包內容 ID = 0x726, DATA=[03]224028 車子回應如下,xx就是百分比,這裡的數值是十六進位;如果xx=60,代表0x60=96% ID = 0x72E, DATA=[04]624028xx 我用Torque,或是自己用Linux樹梅派都沒成功。上次折騰已經是兩年前了,就在周五晚上我準備了 中間人攻擊 ,和前輩CAR Scanner Pro學習發送命令的奧義。原來答案就在眼前,只是當年沒看出來 BEFORE ID=0x726 03224028 // 沒反應 AFTER ID=0x726 03224028 00000000 ID=0x72E 04624028 61 000000 // 有反應了!0x61 = 97%  VOLVO有很多福特的影子,像是224028都能查詢電池狀態,這絕對不是巧合!另外車友的XC70能正確使用,但是XC60得填滿8byte才會有反應!當年看VOLVO封包都是滿滿的8byte,怎麼就沒想到補0填滿試試看? 就在今夜,幫兩年前的實驗失敗找到原因了。 接下來,就可以好好觀摩前輩CAR Scanner Pro是怎麼和車子打交道。假如運氣好,希望能找出一些有趣的PID