跳到主要內容

VOLVO+開發故事 (9),A-SS OFF開發過程

這篇我想分享A-SS OFF開發的技術細節;裡面有些Hack汽車CAN Bus的思路可以參考


先找到觸發信號
想要A-SS在引擎發動後關閉,那就得在CAN Bus辨識引擎發動的訊息,發動後才能對A-SS動手腳。所以我得監聽CAN Bus,在上萬筆記錄裡大海撈針

我不可能寫信和VOLVO要他們CAN Bus規格(理我才怪),更沒有現成的VOLVO CAN Bus分析工具,我只能自製工具。以下是嘗試過的方法,沒有哪招特別靈驗,一般我只能用著堅忍不拔的毅力撐著分析下去

我大多透過Linux和CAN Bus打交道,這裡寫程式方便些;
  • Linux有現成的can-utils套件,裡面的candump是所有工作的源頭,可以錄下記錄檔
    • 直接讀記錄聽起來很笨,抓手感是必要的
    • 錄下來的記錄可以搭配grep指令快速分析
    • 或是candump也能監看特定封包
  • 錄下的記錄,塞到Excel分析
    • 微軟的旗艦級軟體,可以把紀錄分門別類,統計數量,過濾,非常好用
  • 也可以寫軟體對封包處理,進行可視化分析,找到引擎發動的信號

找到關A-SS的封包
接下來要再找怎麼讓A-SS關燈
  • 監控CAN Bus,測試各種場景按下A-SS的按鈕的封包。下面是我嘗試過的各種組態,盯著看完全看不懂的紀錄,在裡面找規則(總不能發信問VOLVO吧)
  • 我做過不少開發工具。下圖是生產兼開發的設備,現在有個鋁盒,檔次高多了(笑)

    • 自製工具吃苦頭:電路板有個焊點鬆脫,導致這盒幾個月來都不穩定
  • 外出精簡工具盒,我喜歡豐富的色彩,嬌小的體積,方便攜帶
  • 對俄羅斯的產品逆向工程,分析封包。雖然不認識,但我覺得與他在心靈上有著高層次的交流(也許他不願意就是)
    • 附帶一提,老婆是對的,做腸子鏡如果會流血,夜用型用就對了,洗床單很麻煩
      • 至於有人說這世界上有棉條可以用(這個就過份了>_<)

開發韌體 & 測試

找到引擎狀態和A-SS封包,寫韌體串起來,最後的精華是短短20行code


驗證一下功能正確與否,下圖上方黃條代表引擎發動,下方黃條成功把A-SS關閉,搞定!



我不是專業做CAN Bus逆向工程,短短幾個步驟也花了幾百個鐘頭,不管怎樣,我搞定他了!現在發動汽車,我再也不用伸手去關A-SS,開心!!


致謝

文章最後,我要特別感謝協助測試A-SS功能的車友,沒你們幫忙,我驗證的極限只能是一輛XC60,感謝你們幫忙試用,協助完成這個專案
  • 台北楊sir
  • 新北黃sir,
  • 桃園陳sir
  • 新竹徐sir,張sir,張sir,陳sir
  • 宜蘭張sir
  • 高雄楊sir

留言

這個網誌中的熱門文章

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 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 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,作為改裝鋰鐵電池的配菜