Author / 不會開車的CC
Pic / 來源於網絡
電影《速度與激情》大家都看過,接下來第六部裡面的這個場景大家肯定有印象。
Paul Walker一行人在追捕Shaw時,他們駕駛的寶馬被Shaw等人安裝了一種電子晶片,之後Shaw等人通過電腦一頓操作之後,這些寶馬突然不受駕駛員控制,突然剎車或者直接撞上其他車。
有人會問,這些是真的嘛,怎麼實現的,看完這篇文章你就會有所了解。
速度與激情6(2013)車輛被黑客入侵片段
當然引擎調教這件事絕不是讀幾篇文章看幾個視頻就可以弄懂的。
我個人覺得這絕對是改裝行業裡比較頂尖的技術了,有很多很多人從事這方面的工作,花重金開發相關技術內容,我是非常敬佩他們的,也很想直接從事這方面的工作。
和很多車友一樣,我小時候就痴迷於汽車。
上大學時主修車輛工程專業,在哈工大的四年裡打下了還不錯的基礎。其實那時候就對於發動機調校這塊很感興趣,但也僅限於感興趣,雖然想自己研究,卻沒有找到好的途徑。
那時候每期必看的《改裝與四驅》並沒有太多提及這一塊,說實話,當時很希望有人可以提點一二。即使到了大四,好不容易有了一門叫做「車載網絡」的專業課,但好像和我真正想學的還是差了一點,萬萬沒想到,最後這門課居然成為我大學裡唯一補考的一門。
言歸正傳,刷發動機程序這件事,往最簡單說,有個硬體,有個軟體,連上OBD,單擊Flash,點火,排氣「啪啪啪」,完美,結束。如果有車友,只想了解這個流程,估計需要等一等了。
本著「授人以魚,不如授之以漁」的原則,我打算用比較直白的語言從頭開始說起,這樣既適用於汽車愛好者,DIY車友,也對車輛工程或相關專業的學生有幫助,同時也可以引導一些剛剛從事汽車測試開發的同行們。
以下這些將基於我多年的汽車電子安全系統的開發經驗和自己網上研究到的一些內容,多數都可以從維基百科或者相關資料網頁中查詢到。
這次新冠疫情在美國開始爆發,很多公司裁員,我們還算幸運,只是臨時降薪,減少工作時間,於是就趁著「休假」,整理一些信息分享給大家,希望可以幫助到大家。
車輛在測功機上準備測試
特此申明
1. 所有內容均不涉及核心技術細節,或故意略去。
2. 本文只提供知識分享,所有DIY引擎調校程序均有風險,有可能嚴重損壞發動機或導致ECU報廢,所引發的責任請自行承擔,與本文作者無關。
改裝有風險,須謹慎!
現在的車和幾十年前的車相比,最大的一個區別就是電子系統越來越多,很多人說如今的車機械感降低,都是電子設備,修都不好修的了。
確實是這樣,從最簡單的油門說起,最傳統的設計,就是油門踏板(accelerator pedal)直接連著發動機的節氣門(throttle),你踩多少踏板,就打開多少節氣門,直接控制空氣流量。
而現在我們踩的基本就是一個純踏板,有傳感器測量你踩了多少,再由發動機控制模塊決定打開多少節氣門,而油門踏板的這個信息有可能只有發動機這一個模塊直接知道。
一輛車由幾十個模塊組成,包括發動機,剎車,轉向,懸架等等,而車廠最後負責把所有模塊裝在一起,整合在一起,所以也叫做Orignial Equipment Manufacture (OEM)。
所有這些模塊就是車廠(OEM)的零配件供應商,比較大的模塊或直接和OEM打交道的模塊屬於一級供應商,比如ABS/ESP電子剎車系統。
車輛網絡信息示意圖
每家供應商當然都只負責開發自己的產品,但是有些信息是需要共享的。
以電子剎車系統為例,ABS/ESP系統的牽引力控制(Traction Control)功能是負責防止車輪在車輛起步時打滑的,一般以輪速傳感器(Wheel Speed Sensor)信息為主,但需要知道駕駛員踩了多少油門進行另外一些控制。
而之前說過,油門信息只有發動機知道,ABS/ESP系統怎麼知道呢?
這時候CAN總線就起作用了,說白了就是車上各個電子系統互相交流的一個公共橋梁或通道。而CAN總線,或者叫CAN BUS,只是車上的各條橋梁中的一條,成本相對較低,傳輸速度一般。
CAN的全稱是Controller Area Network,控制器區域網。
CAN數據解碼示意圖
這個CAN總線對每個模塊都打開的,只要帶寬允許,每個在CAN總線上的模塊都可以發送或接受信息,但是接受到的信息是什麼,怎麼讀,就有講究了。
雖然不算是加密的,但也不是一眼就能讀懂。
CAN總線基於一種信息傳遞協議,最早是由德國博世公司在1986年發表的,中間有過改版,但一直沿用至今。這個協議定義了在CAN總線上傳播信息的一些最基本的要求,之後會具體說說。
回到油門踏板的話題上,發動機模塊會根據這個協議把帶有油門踏板的信息傳遞到CAN總線上,其他模塊只要知道踏板信息是如何發上來的,就知道該如何讀取了。
這就相當於橋梁上有無數輛小汽車,發動機派出小車A到CAN橋梁上,車上有幾個密碼箱,裡面裝著發動機信息。
DBC文件(後面會提及)就是打開這些密碼箱的鑰匙,任何攔截到這輛車並且有鑰匙的模塊都可以打開這個密碼箱拿到發動機信息。而沒有鑰匙的模塊,就算攔截到了小車A也沒法知道信息是什麼。
而這把「鑰匙」是事先需要溝通定義好的,車廠在車輛開發初期,會給自己和供應商們提供這把「鑰匙」,也就是傳說中的DBC文件,這樣就可以讓各個模塊之間相互交換信息了。
當然在開發過程當中,這個文件也會不斷更新,來達到最終車廠對於性能法規等各個方面的要求。所以說這個文件非常重要,屬於需要保密的信息。
當然,具備一定CAN總線知識的人也是可以破解這把「鑰匙」的,而嘗試製造出這把「鑰匙」的過程就叫做CAN總線逆向。有不少人研究這個,我之後也會說說我是如何逆向豐田86的CAN總線的。
現在大家基本知道CAN是什麼,那麼為什麼要知道這個,和引擎調校有什麼關係,我們繼續往下說。
各種可以通過CAN總線獲得的信息
這個CAN真的是好東西,內容也十分複雜。
我個人是從事ABS/ESP設計開發的,就算我們固定負責一個項目,天天和ABS模塊打交道,從項目開始到SOP(Start of Production,量產),也很難把ABS這一個模塊的CAN相關所有東西了解透徹。
更何況一輛車上有幾十個模塊都共用一個CAN總線,而且每款車的CAN內容也不一樣,所以真正在這方面精通的人少之又少。
不過沒關係,我們只要了解感興趣的,和我們玩車相關的就好。
在我個人看來,最有用的一點是,通過CAN總線,我可以直接看到和記錄與跑賽道相關的數據,這對於提高圈速是很有幫助的。
每個跑賽道的朋友應該都是希望自己越跑越快,不斷提高自己的駕駛水平。稍微硬核一些的玩家,肯定會在車上採集數據,跑完之後再分析(感覺這方面的內容我又可以單獨寫一篇了,如果大家感興趣,歡迎評論裡說)。
這裡的數據主要包括了車速,側向加速度,縱向加速度,橫擺角速度,輪速,方向盤角度等。大部分數據都可以通過第三方硬體來間接獲取,比如Vbox或AiM公司開發的產品。
而所有這些數據都在CAN總線上可以直接讀到,而且更新率也很快。車輛自己的控制算法都是通過這些信息實現的,所以自然是非常靠譜的。
既然可以用,為何不用呢?
而之前提到的第三方硬體大多也會支持CAN總線連接,通過這個「橋梁」直接獲取我們想要的信息。
前面說的是「讀」信息,下面開始說說大家最感興趣的「寫」信息。
回到文章最初提到的《速度與激情》的場景,通過電腦操作就可以讓另外一輛車子自動剎車或轉向,這些是真的嗎,怎麼實現的。
沒錯,理論上就是通過入侵CAN網絡,「寫」入一些信息而達到的。
所以這個CAN總線有利也有弊,但大家也沒必要擔心自己的車子會不會也遇到這樣的問題。我只能說基本上不會,現在各個車廠都在大力研發Cyber Security來防止CAN入侵發生。
這個之後可以再說,與此同時也讓我們DIY玩家越來越難了。我這裡只是舉一個例子,並不是要教大家如何控制別人的車輛(當然,這個我也不會)。
電影《速度與激情》劇照
既然是電子模塊,自然就有電子晶片,所有控制程序都是一行行代碼編譯而成。
對於發動機模塊而言,如果掌握了和發動機模塊交流的「鑰匙」,就可以要求重新寫控制發動機的代碼,當然前提是你要有正確的發動機代碼。所以刷發動機,就是指把自己改寫過的發動機控制代碼重新寫進發動機模塊,從而實現自己想要的發動機性能,比如排氣回火,增加馬力等等。
引擎調校參數示意圖
最後分享我第一次嘗試改寫發動機參數的對比視頻,之後也會放出這個調校的具體教程。
下一篇文章將以實際操作向大家進一步介紹CAN總線和最基本的引擎調校工作,希望大家繼續關注分享。
有任何問題或想法,歡迎評論留言,我會在之後的文章或視頻中討論。
# 未完待續 #
閱讀本文作者其他文章
今日日籤