跳到主要內容

發表文章

VOLVO CARS小電池

VOLVO car配備兩顆電池,主電池負責發動,穩壓;小電池 原則上 和自動起停有關。具體可以參考以下兩個youtube影片 https://www.youtube.com/watch?v=9jRPpLLJ7Qg https://www.youtube.com/watch?v=MtVthWPLa60 影片裡的文字應該是從原廠診斷工具複製貼上出來的,我摘錄一下重點 引擎發動只和主電池有關係 A standstill after start-stop the car is powered only from main 12V battery 小電池(自動啟停電池)只會在自動起停期間,連上0.5秒,避免主電池電壓掉太低,造成大燈變暗,或是音響導航重新開機 Start-stop battery (secondary battery) powers the car only for half second while the main battery starts the engine. It prevents voltage drop during engine start - otherwise lights would dim, audio/navi would restart 小電池在引擎發動後,充電240秒 Start/Stop battery is charged for x seconds after each engine start 汽車有顆繼電器(relay)控制小電池是否連上,車子只監控小電池電池,沒有監控電流 常見的問題是,不使用自動啟停,還需要照顧小電池嗎? 我覺得要 下圖是上路收集的大電池電壓(紅)和小電池電壓(藍)。綠色數線往上爬到240秒,代表小電池充電中,這段時間兩顆電池電壓一致;小電池斷開,藍色電壓逐漸下降;橘框代表行使中小電池會也會連上系統充電(有機會加減充電) 因為橘框裡,小電池會不時連上系統。如果小電池極板根本短路了,一上去就狂抽電拉低全車電壓,什麼怪症狀都來了!我做過這些實驗 我用原廠AGM電池,保養順便換了。用原廠認證的保證沒問題 手癢試了鋰鐵電池,只有自動啟停撐0.5秒,真的沒差。我的電池尺寸還不一樣(矮了點),用起來正常但尺寸不符感覺不舒服。最後我換回原裝貨 聽過車友裝機車9號電瓶也可,尺寸一樣應該沒問題,就是充電比較慢,2...

研究VOLVO的PIDs (6):電池歸零 & UDS簡介

要幫XC60電池重置,一般有三個辦法 照著 影片 的方法歸零,省時省力 電池保養廠一般有台 X431 檢修電腦,那個可以做電池歸零 原廠診斷電腦,VIDA也可以做這個事 因為 吃飽太閒 ,我用了 中間人攻擊 偷看VIDA如何RESET,現在偷看封包熟練多了,一個小時後就取得封包啦 0x726 [8] 05 31 01 40 26 1E 00 00 手邊有ELM327想做實驗,可以下載ELM327 Terminal照底下命令重置。 不過ELM327經常會 實作不完整 不能用。也許我可以銷售 QQMLAB認證 玩具,看能不能賺錢買車做實驗(笑) ATSP0  // protocol auto detection   ATSH726  // Set header = 0x726 310140261E  // Send packet payload 這個封包是汽車通訊標準介面, UDS ,Unified Diagnostic Service,工業標準 ISO 14229-1 。照著WIKI或著GOOGLE撈資料,很快就能解析他 0x726代表CEM,Central Electronic Module,中央電腦模組;VOLVO車的CEM管很多事,包山包海,電池也是業務之一。要重置電池,發命令給CEM合情合理的 [8]代表封包長度是8byte,嵌在CAN bus的物理層header。VOLVO car的封包長度一律是8,就算裡面有些資料沒用,也會塞0 05 310140261E 0000 05代表8byte裡,5byte有意義,尾巴2byte補0 05 31 0140261E0000 Service ID = 0x31,代表 Remote Activation of Routine ,叫控制器做某件事 0531 01 40261E0000 當Service ID是0x31,這裡01代表start;我們要電池歸零,啟動服務符合直覺;如果是02代表結束某個服務;程式設計師的直覺告訴我,取消某個操作的軟體一般很難寫 053101 40261E 0000 40261E是VOLVO制定的,代表重置電池感應器。這裡岔題聊一下UDS框架,框架制定ECU通訊規格,好比郵局制定收件者寫右邊;至於通訊內容就留給廠商自己制定。這樣保證不同廠商之間的相容性,同時也...

VOLVO XC60鋰鐵評估:一年半使用心得,BMS reset

大概半年前,我發現車子自動啟停都不會動,選單點進去說電池充電中。試了很多招,最後照著以下影片歸零BMS,一切就正常了 重置VOLVO BMS VOLVO car很依賴健康的電池,在電池負極放了Battery Management Sensor監控電池狀態。大宗的指標像是電池,電壓,還有使用時間,會影響充電策略;比如換了新電池沒有重置,據說容易因為電壓過高弄壞電池(大概認為老電池需要更高的電壓充電) 不過我換的是鋰鐵電池,鉛電池一切充電策略根本沒意義。所以BMS reset完的操作點如果是我們要的,那就重置吧 本來 車子放隔夜 ,一上路會因為BMS sensor不可靠做電池recondition,把電瓶充得飽飽飽14.8v;等之後BMS可靠了,鬆開油門滑行(車子覺得可以藉機充電),就很容易噴出高壓15v(電瓶吃飽了) 現在發動前我會順手BMS reset,熟練10秒就弄完;重置完瞬間BMS sensor就是可靠的,正好閃過上次遇到的問題;另外電池沒吃飽,鬆開油門滑行,電瓶也有餘裕吃下額外電力 寫到這裡也很有趣,本來我設計 VOLVO+ 是要讓自動啟停預設關閉,換上鋰鐵電池倒是花了不少功夫讓自動啟停恢復正常😂 也許VOLVO+下個功能功能是汽車發動後,自動做BMS reset,作為改裝鋰鐵電池的配菜

VOLVO XC60 DPF重生機制

 我的VOLVO XC60 D4是柴油車,配備了DPF(Diesel Particulate Filter),過濾燃燒後的微粒。微粒累積一定數量觸發DPF regenerate(再生)。引擎會想辦法讓熱騰騰的柴油到達DPF,柴油燃燒產生高熱燒光DPF裡的積碳 接上Car Scanner Pro觀測DPF regeneration的過程,幾個觀測重點 每600公里發生一次,和速度無關,在市區照樣做,溫度夠高即可 高速行駛,能讓DPF溫度上350度,拉高溫度能加減燒掉碳粒(被動再生?) 主動再生粗暴而有效率,650度左右,總時長約13分 DPF soot,煙灰估計值,數值regenerate瞬間噴上17,然後逐漸降低到0 上述機制和車友的XC70 2013平台有些不同,P3平台五缸會根據DPF soot(微粒)重量累積夠高觸發;XC60 2017用里程當觸發信號,是個定期打掃的概念 DPF保養建議(我的結論) 不用特意保養,他的策略滿理想的 我曾經停車DPF重生做到一半,燒燙燙,下車聞到燒焦臭臭味道。不會火燒車,放著不會怎樣,下次跑滿600km會再觸發 DPF重生(650度)比開高速有效(350度) 可以看Car Scanner Pro的Distance since last DPF regeneration,每600km做一次,運作約13分鐘里程不會上升,燒完才會繼續累積。盡量讓重生做完整

VOLVO XC60鋰鐵評估:電池的修整(Recondition)分析

這一篇要回答 前一篇 的問題,歡迎交流(畢竟我也只能觀測自己的車) 結論放前面 XC60 2017裝上鋰鐵電池,每次放隔夜會認定BMS Sensor不可靠,試圖修整(recondition)電池,試圖充飽電,此時自動起停無法運作;等電池充飽,熄火放一下等車子認定BMS sensor可靠就一切正常,電壓在13.x自動起停能運作;但是放隔夜又會再度循環 一般車子每年對電池修整數次,確保BMS Sensor追蹤的SOC有效;修整期間會充電到14.8v附近,大概是一節鋰鐵3.7v,每次放隔夜都修整電池不至於弄壞電池,但讓人不大舒服就是 再來解釋原因 裝鋰鐵電池,可能電壓比預期高,導致放一晚車子判定BMS Sensor Reliable = 0。既然BMS sensor不可靠,發動汽車會對電池做recondition(原裝診斷工具術語,修整)。以下有三個場景,我們看一下VOLVO car的行為 BMS不可靠,SOC=90啟動 BMS不可靠,SOC=100啟動 BMS可靠,啟動 BMS不可靠,SOC=90啟動 發動後,CEM向發電機要了15.4v;鋰鐵吃下大電流同時電壓緩緩上升。電池摸到14.8v附近,發電機目標電壓也逐漸下降,完成recondition 下圖當電池電壓(綠線)上升到14.8v附近,發電機電壓(紅線)就快速的下降 BMS不可靠,SOC=100%啟動 一樣是BMS sensor不可靠,一發動就要了15.2v。因為電池本來就滿電,電壓很快就升高到14.8v附近,連帶使發電機降壓,收斂在14.6v,完成recondition 一樣把發電機電壓(紅線)和電池電壓(綠線)畫一起,彼此的關聯更清楚 BMS可靠,啟動 最後一張圖,BMS可靠,在正常運作下,電壓操作點約13.6v;裡面還附帶Break Energy Regeneration(電池電壓13.8v)以及Auto Start/Stop作動 結論 發動時BMS Sensor Reliable = 0就會做修整,把電池充飽電。充飽後鎖定放一下,汽車重新判定BMS Sensor Reliable = 1再發動,電壓會在13.x浮動 修整期間,極限14.8v大概是每節電池3.7v,離極限電壓4.2v還有點距離 VOLVO的電池控制花了不少功夫,用鋰鐵需要調一些參數,真希望原廠能支援啊!...

研究VOLVO的PIDs (5):ELM327界的賓士

前言,椅子界的賓士 十年前和同事去辦公椅專門店,Herman Millar經典的Aeron Chair最合我胃口,只是報價35K嚇得我吃吃手,同事這麼勸敗的 你可能買不起賓士,但是椅子界的賓士還是沒問題的 Aeron非常耐用,十年來沒有任何零件鬆脫。每天支撐我的背,工作一整天忘了它的存在。好的工具解決問題,同時不產生新的問題。如果您要找張辦公椅,那真的值得去試坐看看 ELM327界的賓士:OBDLink MX+ 接下來我們聊一下,為什麼 OBDLink MX+ 堪稱ELM327的王者 原因1:他賣得很貴 沒牌子賣10塊美金,Vgate賣20塊美金,OBDLink MX+要賣120美金!所以要問,貴是不是貴得有道理 原因2:通吃Android/ iOS OBDLink MX+同時支援Android/ iPhone都能用,下足苦功和$$搞MFI認證真的不容易 OBDLink MX+支援SPP(Serial Port Profile),這是藍芽標準介面,全世界的ELM327都走這條路,可惜蘋果不能用(故意的)。蘋果的周邊要過 MFI 認證,支援iAP2 Profile,這條錢可能認證花一次,甚至每個硬體都要再付,基本上是蘋果稅的概念(微軟也有類似的稅)。一般iPhone可以用WiFi版繞過去,但先前我測vgate WiFi版也有相容性不好的症狀,品質未必可靠 原因3:安全性好,有一顆實體的連接按鈕 大多數ELM327配對的密碼是1234,任何人都能連;OBDLink MX+有顆實體的按鈕,要按下才能連線,避免不明人士惡搞 原因4:支援MS-CAN,SW-CAN OBDLink MX+支援MS-CAN(VOLVO/Ford車都有),SW-CAN(賓士車有),可以和車上更多的ECU裝置溝通.我正是看到Car Scanner Pro跑出一堆MS-CAN的PID才決定狠下心買一顆(好貴啊!) 原因5:免費軟體更新服務 OBDLink MX+提供 韌體更新 ,代表廠商持續修補錯誤,提供服務。假如iPhone某一版突然修改通訊協定,有韌體更新才能持續修補軟體;某道ELM327的指令有bug,也可以快速的修正 原因6:支持車廠專屬的Code OBDLink+ MX+ 專屬的APP 提供 車廠專屬的PID ,只有最高階的MX+才有。這些內碼大概都從車廠專屬的診斷工具, 逆向工程 弄出來,...

研究VOLVO的PIDs (4):造一台車,學習逆向工程

引言 這一篇來講一些黑客的技巧,我要造一台假的車,藉由改變這台車的行為,觀測Car Scanner Pro的反應,深入研究各種PID 和原裝貨一樣,這台車有兩條CAN Bus,放上ELM327和Car Scanner Pro打交道。我在單板電腦寫了 一段程式 ,除了沒有四個輪子,他表現得VOLVO XC60完全一樣 連上Car Scanner Pro 正確回答Car Scanner Pro後,APP就認定這是一輛車,如下圖,VIN碼正確的辨識出來 以下是連線過程實錄,CAN2是APP詢問,CAN0是汽車回應。汽車ECU通訊有標準,寫在ISO 15765。下面兩頁是配菜,搭配使用即可解讀。有個瑣碎而微妙的細節:詢問用7DF(廣播封包),回應用7E8,但是流量控制封包用7E0,搞懂他們的關係就能參透OBD2協定 https://en.wikipedia.org/wiki/OBD-II_PIDs https://en.wikipedia.org/wiki/ISO_15765-2 逆向工程Car Scanner Pro 因為Car Scanner Pro能正確解讀封包,所以我想塞各種封包讓APP解讀,測試封包意義。下圖有電池相關的內碼的解析結果 單板電腦裡的軟體實作如下,他回應電池的查詢順便修改數值,在APP畫上鋸齒。Python寫起來很直覺,大概看上去就知道在做什麼 很酷吧!真的車不可能畫出這種圖😁 結論 藉由中間人攻擊,我們能觀測Car Scanner Pro查詢使用的PID;再用這篇文章的技巧,就能正確解讀每個封包的具體意義。如果想寫功能一樣的APP,用這兩招就能抄答案了 這個技巧的用途多多,藉著建構一輛車的模型,除了能在APP上畫圖,也能用來窺探傳輸協定的意義。當然還有更多奇奇怪怪的用法,請發揮想像力了 如果你對這段軟體有興趣,請 自行 取用