現在的汽車智能化程度越來越高了,汽車的各種功能基本都是由電子控制系統輔助完成的,比如發動機運行、變速箱擋位切換、制動及制動輔助系統控制、轉向控制、車身穩定控制、自動空調系統、汽車防盜系統、無鑰匙進入與一鍵啟動,等等。當這些系統發生故障時,還會在儀表盤上顯示故障燈,以提示駕駛員注意。在我們維修和保養汽車時,還要用汽車維修電腦調取故障碼,查看數據流,以及消除故障碼、系統升級與初始化等。
汽車的這些功能的執行都離不開一個東西——電子控制單元,也就是我們俗稱的汽車電腦。那么汽車電腦是如何對汽車各系統進行控制的呢?它又是如何監視到故障碼的呢?我們常說的汽車電腦自診斷又是怎么回事呢?下面我們就來簡單的說說汽車電腦的工作原理,以及它是如何進行自診斷的,故障碼又是怎么回事。

汽車電控單元,俗稱汽車電腦,它是按照系統內預定的程序,自動地對各種傳感器的輸入信號進行處理,然后輸出信號給執行器,從而控制汽車運行的電子設備。由于汽車電腦工作條件惡劣,環境變化多樣,需要承受-40-80°C的溫度變化,以及1000Hz以下的振動,所以需要它有穩定的可靠性和對環境的耐久性,并且足夠的智能化,具有自診斷和檢測能力,能及時發現系統中存在的故障,并存儲故障碼,告知維修人員故障可能存在的部位,以便于維修。

汽車電腦都是單片機,集運算器、控制器、存儲器、輸入輸出接口這四個基本組成部分于一體。它的存儲器分為兩個部分,一部分是固件存儲器(ROM),汽車各種功能的控制程序就安裝在這里,這個部分即使汽車完全斷電了,這些程序也不會有任何的改變與丟失;另一部分是臨時存儲器(RAM),用來存儲汽車運行中各種變量和傳感器參數,以及汽車運行過程中產生的故障碼、自適應學習值、時間、密碼,等等,這些參數在汽車斷電后就徹底丟失了。

汽車電腦的工作過程包括信號的過濾和放大、模數(A/D)轉換、信號運算與輸出控制等。具體的過程非常復雜,也就不詳細論述了。舉一個例子來說一下:發動機控制單元ECU,它在工作過程中接收發動機上各種傳感器傳遞過來的信號,比如節氣門位置信號、空氣流量計信號、曲軸轉速信號、水溫信號,氧傳感器信號,等等,然后把這些信號轉換成電腦可以識別的數字信號,作為ECU內部存儲的控制程序運算參數,計算出一個最佳的控制參數,然后把這個控制參數傳遞給發動機上的執行元件,執行元件按照這個參數來控制發動機的運行,比如噴油器的噴油脈寬、點火系統的點火提前角、可變正時系統的凸輪軸轉角控制等。其它系統的電控單元工作過程與此類似,比如自動變速箱控制單元TCU、車身控制單元ECM、ABS控制單元、安全氣囊控制單元等。

現在的汽車上有多個電控單元,一般執行單獨某一項功能的系統都有一個獨立的電控單元,比如發動機控制單元ECU、變速箱控制單元TCU、車身控制單元ECM以及制動防抱死系統ABS控制單元、電動助力轉向系統的EPS控制單元、安全氣囊控制單元、自動空調系統控制單元,等等。由于汽車在工作時是一個整體,所以各系統之間需要協調配合,統一動作。為此,各控制單元之間需要能夠實時通訊,各種信息快速傳遞與交換,汽車電控單元之間采用通信網絡技術連成一個網絡系統,為了簡化電路以及降低成本,通常采用CAN總線來完成的這項工作。

那么汽車電腦的自診斷功能又是怎么回事呢?汽車電腦自診斷是指汽車在工作過程中,各電控單元可以隨時對系統內各元器件的工作狀態,以及各電控單元之間的通訊狀態,進行自動的檢查和監測。當發現異常時,就會點亮儀表盤上的故障燈,提示駕駛員注意,并在電控單元中存儲故障碼,以便維修人員查閱。一般具有故障發現、故障分類、故障報警、故障存儲、故障處理這幾項基本功能。

存儲在電控單元中的異常信號,就是所謂的故障碼。故障碼的產生有兩種原因,一是傳感器輸入信號或者執行器輸出信號錯誤,或者信號參數超出了規定的閾值,這種情況一般是傳感器、執行器自身故障或線路故障;另一種是控制邏輯錯誤,即控制單元接收到的信息互相沖突,無法執行,或者各控制單元之間的通訊中斷或者混亂,無法協調與溝通。通過解讀故障代碼,絕大多數的時候都能正確識別故障部位以及可能導致故障發生的原因。

不過在有些情況下,故障碼顯示的故障并不一定是準確的,需要我們結合故障的具體現象以及部位,對相關部件的控制邏輯進行分析判斷才能得出正確的結論。比如一個簡單的發動機失火故障碼,可能導致發動機失火的原因有可能是火花塞,也可能是點火線圈、高壓線、點火控制單元,也有可能是機械故障,比如氣缸壓力過低、噴油器堵塞等,這就需要我們具體的測量與分析判斷。還有比如發動機故障燈點亮,顯示的故障碼是氧傳感器故障,但是真實原因可能是可燃混合氣過濃或過稀,是由于發動機積碳過多或者噴油器故障導致的。

此外,還有一些純機械故障是不顯示故障碼的,比如發動機異響、變速箱異響、懸架系統故障,汽車各部位自然磨損導致的間隙變化、疲勞斷裂、腐蝕磨損等。有些司機來修車,不論什么故障都要求用電腦檢查一遍,認為這是高科技,比人工強多了。其實再高的科技,也是為人服務的,汽車維修過程中,這些檢查只是輔助手段,更重要的是修理工的經驗、對汽車原理的精通、以及認真負責的態度。很多時候,如果完全按照故障碼修車,往往會誤入歧途,最后繞了一個很大的彎才出來,甚至根本繞不出來了。

汽車故障碼的消除有兩種方式,一種是使用維修電腦直接消除,這種方式簡單直接,對汽車其它的功能沒有任何影響;另一種方法是斷開蓄電池的負極,讓汽車全車斷電,此時臨時存儲在電控單元中的故障碼就被清除了。不過這種方式同時也把汽車的自適應學習值、時間設置、密碼設置等一些臨時數據也同時清除了,甚至會帶來一些麻煩,盡可能不要采用。此外,還有一些偶發性的故障,比如在維修過程中不慎拔下某個傳感器插頭等,也會以故障碼的形式存儲在電控單元中,這樣的故障碼在汽車發動50~80次之后再沒有出現類似的故障,就會自動清除。

那么汽車出現故障碼之后,汽車還能正常使用嗎?在絕大多數情況下,故障碼都是不影響汽車使用的。比如發動機故障燈點亮,絕大多數情況都是由于發動機尾氣排放超標了,有可能只是你使用了不合格的燃油導致的,但是發動機的性能不會受到任何影響;在比如汽車ABS故障燈點亮,此時的汽車防抱死功能缺失,但是常規制動性能不受任何影響。如果是比較嚴重影響汽車正常運行的故障,汽車還會進入“跛行”模式,用一套固定的控制程序控制汽車的運行,比如節氣門開度固定,變速箱擋位固定等,讓汽車可以勉強行駛,脫離危險,找到修理廠。

現在汽車故障碼的編制基本都要符合OBD-Ⅱ的標準,各種不同的車型故障碼讀取規則和含義基本都是一致的。汽車電控單元的生產廠家也不多,基本被德國的博世、美國的德爾福以及日本的電裝壟斷了。不過即使是相同的電控單元,不同車企編制存儲在電控單元中的控制程序,可就大不一樣了,我們經常說的汽車調校功力,其實就是指這種程序的編寫。這里面的很多參數,是車企經過大量實驗和實際的汽車運行數據采集,優化計算出來的最佳結果,這個過程通常需要幾十年的技術積累,不是一朝一夕就能完成的。所以,對于我們這樣只有十幾年造車歷史的國家來說,還需要繼續努力奮斗。