王玉彪
摘要:本文簡要分析了國際、國內(nèi)燃油發(fā)動機電控系統(tǒng)(ECU)研發(fā)與生產(chǎn)現(xiàn)狀,以實例方式描述了發(fā)動機電控系統(tǒng)硬及軟件開發(fā)方法及注意事項,從整體上勾勒出了發(fā)動機電控系統(tǒng)開發(fā)的輪廓。
關(guān)鍵詞:汽車電子;發(fā)動機電控制系統(tǒng);ECU;硬件設(shè)計;固件編寫
0 ?引言
為了滿足越來越嚴格的排放法規(guī)要求,同時提高汽車的動力性、燃油經(jīng)濟性和舒適性,發(fā)動機電控系統(tǒng)起到了越來越重要的作用。國際上,汽車發(fā)動機電控系統(tǒng)的發(fā)展模式日趨成熟,國際知名品牌汽車廠商都有專業(yè)化分工的汽車配件廠商,為其提供全套的汽車電子配件產(chǎn)品。在國內(nèi),汽車消費市場的飛速增長與自主開發(fā)汽車電子產(chǎn)品的空白形成鮮明的對比,國內(nèi)合資廠商生產(chǎn)的主要車型,其汽車電子配件產(chǎn)品包括汽車發(fā)動機電控系統(tǒng)基本由外商壟斷;而致力于發(fā)展民族品牌的汽車制造商,采用國產(chǎn)發(fā)動機在配套電子控制系統(tǒng)時,也多是委托國外企業(yè)提供配套產(chǎn)品。我國汽車電子產(chǎn)品開發(fā)和生產(chǎn)還處于起步階段,具有極大的發(fā)展?jié)摿涂臻g,汽車發(fā)動機電控系統(tǒng)的開發(fā)與應(yīng)用已逐漸從過去的院校和研究機構(gòu)的研發(fā)向以企業(yè)為主導并以產(chǎn)業(yè)化為目標的局面發(fā)展。
本文的目的是厘清發(fā)動機電控系統(tǒng)開發(fā)過程,立足于實踐,選取一些典型模塊做為電路設(shè)計、軟件開發(fā)的樣例,用來解析發(fā)動機傳感器、ECU及發(fā)動機電控器件的工作原理,掌握傳感器輸入調(diào)理電路和輸出控制電路設(shè)計方法,了解ECU固件編程過程。
1 ?總體開發(fā)思路
發(fā)動機電控系統(tǒng)開發(fā)可分為兩大部分,分別為硬件電路設(shè)計和固件(軟件)開發(fā),這兩部分工作是緊密關(guān)聯(lián)的。
硬件電路設(shè)計主要有電源電路、輸入信號的調(diào)理和采集電路、MCU基本外圍電路、輸出控制電路和輸入輸出通信接口電路。
固件開發(fā)主要有固件開發(fā)環(huán)境搭建、MCU系統(tǒng)時鐘初始化、輸入輸出端口初始化、串行通信接口的初始化、時序控制和核心算法代碼實現(xiàn)。
發(fā)動機電子控制系統(tǒng)可分為信號輸入電路(各種傳感器信號處理)、電子控制單元(ECU)和輸出控制電路三部分,如圖1所示。
圖1列出了發(fā)動機常用的信號采集和輸出控制器件,還有一些采集和控制器件未列出,如自動檔系統(tǒng)的檔位信號、空調(diào)開關(guān)信號、啟動開關(guān)信號、助力轉(zhuǎn)向開關(guān)信號、巡航控制開關(guān)信號等,但處理流程大致相同,即信號輸入采集——ECU單元處理——輸出控制電路響應(yīng)。
電控系統(tǒng)由底板和子板構(gòu)成,子板上有可編程MCU器件,編寫好的固件可以通過左側(cè)的串口下載到MCU中,右側(cè)端口用來連接發(fā)動機上的各類傳感器和電控器件。
ECU電路可分為三部分,底板主要是輸入電路、輸出電路及核心板接口。核心板主要是MCU電路。
在開發(fā)ECU時,各單元電路側(cè)重點各有不同,下面分開講述。
1.1 信號輸入電路
發(fā)動機上安裝的傳感器種類較多,傳感器采集到信號需要經(jīng)過輸入電路處理才能被MCU使用,傳感器輸出的電信號可分為三種,分別是電壓信號、脈沖信號和開關(guān)信號。
①電壓信號:輸出的電壓信號范圍為0~5V,用來表示連續(xù)變化的量。②脈沖信號:脈沖信號電壓范圍也是0~5V,一般用來計數(shù)或同步。③開關(guān)信號:一般用高低電平表示導通和斷開的狀態(tài)。
1.2 核心控制器(MCU)選型
發(fā)動機電控系統(tǒng)的核心控制器件是MCU,就是常說的單片機系統(tǒng)。目前在汽車電子控制領(lǐng)域最常使用的是飛思卡爾(Freescale)單片機,該系統(tǒng)單元機已經(jīng)被恩智普收購。早期使用16位MC9S12系列單片機較多;具體選型時可根據(jù)硬件采集種類和數(shù)量、固件代碼處理需要的Flash、RAM大小及運算速度需求來確定。在汽車電子領(lǐng)域,目前使用飛思卡爾32位MCU較多,也可以選用意法半導體出產(chǎn)的STM32系列的MCU。
1.3 輸出控制電路
輸出控制按工作原理大致可分為三類,分別是繼電器類、旋轉(zhuǎn)電機類和脈沖類。例如,電子點火線圈是脈沖類的,怠速控制閥、節(jié)氣門控制閥等為電機類,油泵繼電器、電子噴油器則為繼電器控制類。
2 ?硬件電路設(shè)計
硬件電路設(shè)計大致可分為三個部分,分別是數(shù)據(jù)采集及調(diào)理電路(即信號輸入部分)、MCU基本單元和輸出控制電路。
2.1 數(shù)據(jù)采集及調(diào)理電路設(shè)計
數(shù)據(jù)采集及調(diào)理電路主要解決信號轉(zhuǎn)換、噪聲抑制和A/D采集等問題。在器件選型時要考慮功耗、頻率響應(yīng)、噪聲系數(shù)、耐壓值和高低溫適應(yīng)范圍等。為了便于MCU處理,還需要考慮該信號如何被MCU采集。我們以冷卻液溫度傳感器為例,說明輸入信號的處理過程。圖2是常見的冷卻液溫度傳感器實物圖片。
該傳感器金屬部分直接與冷卻液接觸,可準確測量冷卻液的當前溫度,從解剖圖可看出,該器件相當于一個電阻器件,其工作原理就是將溫度變化,轉(zhuǎn)變?yōu)殡娮柚底兓?那MCU怎么來采集阻值變化呢,很簡單,就是把阻值的變化先轉(zhuǎn)換為電壓的變化,然后MCU對該電壓進行采樣就可以了。
下面來具體看一下冷卻液溫度傳感器信號處理電路,如圖3所示。
紅框中的電阻即為溫度傳感器的電阻,參考電壓Vref經(jīng)R7與溫度傳感器電阻串聯(lián)分壓,通過C6、R8和C7濾波后送給MCU(AD0-1端)采樣。通過分析電路知道,當溫度發(fā)生變化時溫度傳感器的電阻值將跟著線性變化,經(jīng)分壓后采樣點的電壓值也跟著發(fā)生變化,經(jīng)過MCU的內(nèi)部A/D電路的采樣,就可得到一組當前溫度下的采集值,這樣就完成了模擬量到數(shù)字量的變換,得到的數(shù)字量便于單片機處理和傳輸。對模擬量進行A/D采樣后再進行數(shù)字化處理是輸入電路使用最多的處理方式,其它類型輸入如脈沖輸出、開關(guān)量輸入,數(shù)字化處理相對來說要簡單些,直接使用單片機的計數(shù)器計數(shù)或判斷GPIO端口信號有無即可。
2.2 MCU電路設(shè)計
MCU設(shè)計主要是最小系統(tǒng)設(shè)計,即根據(jù)MCU型號配備必要的外圍器件,保證MCU能夠穩(wěn)定運行;包括晶體振蕩電路、調(diào)試接口和基本的電源供給電路。
MCU的每個供電引腳均有一個0.1uF的濾波電容,用于降低干擾信號的影響;晶振電路按照典型電路設(shè)計,確保晶振能夠穩(wěn)定啟振;外接了BDM調(diào)試接口,方便程序的調(diào)試和下載。本電路圖中,除了最小電路外我們也將外圍一些信號引入到MCU,比如冷卻液溫度采集信號AD0-1,已經(jīng)接入到MCU的PAD0引腳。
2.3 輸出控制電路設(shè)計
輸出控制電路需要根據(jù)具體的電控器件來確定。例如點火線圈驅(qū)動電路必須滿足高耐壓和大電流的要求,而怠速閥控制在滿足電流輸出要求的情況下,還需要滿足時序要求。圖4是實際的怠速閥控制電路。
圖4中,IAC1、IAC2和IACEnb來自于MCU,X2、X3、X4、X5分別連接四線怠速閥的相應(yīng)接線。控制邏輯由MCU運算后得到,電路輸出電流由電機專用控制芯片UDN2916LB來保證。
硬件電路中還包括串行接口設(shè)計,這種接口電路較為通用,在這里就不講述具體電路了。
3 ?固件開發(fā)
固件開發(fā)分為以下幾個部分:一是MCU初始化部分,即讓MCU運行起來。其中還包括輸入輸出接口初始化,這部分要根據(jù)輸入或輸出信號要求,對MCU的相應(yīng)接口進行初始化。比如一些接口要初始化A/D采樣接口,把模擬量變?yōu)閿?shù)字量便于MCU處理,一些接口初始化為通用的GPIO接口,還有些接口要初始化為串口通信接口等。二是驅(qū)動程序編寫。在初始化輸入輸出接口后,必須對這些接口編寫驅(qū)動程序,保證MCU能夠正確讀入或輸出相應(yīng)的信號或數(shù)據(jù)。三是在以上兩個工作完成的基礎(chǔ)上實現(xiàn)控制邏輯,即常說的控制算法的實現(xiàn)。這部分工作必須在深入理解發(fā)動工作原理的基礎(chǔ)上,讀取發(fā)動運行時的相關(guān)參數(shù),并根據(jù)參數(shù)情況,完成邏輯控制,使發(fā)動機平穩(wěn)工作。
3.1 MCU初始化工作
主要工作有:MCU時鐘初始化、通用輸入輸出端口(GPIO)初始化、A/D通道初始化、串行通信端口(USART)初始化、PWM輸出端口初始化。該程序用于完成MCU時鐘初始化工作,初始化代碼在INIT_PLL子函數(shù)中,在主函數(shù)main()中調(diào)用了該初始化程序。在程序開始部分,使用宏定義方法定義一些常量,以方便在程序中使用;主程序中為保證初始化代碼不被中斷干擾,屏蔽了中斷。解讀程序時我們發(fā)現(xiàn)子程序稱作鎖相環(huán)初始化,對照硬件MCU最小系統(tǒng)電路可以看到,時鐘電路就是在MCU外部增加了一個無源晶體,并且該晶體頻率是8MHz,遠達不到MCU運行主頻為32MHz或40MHz頻率;實際上MCU的主頻來自內(nèi)部的PLL電路,外部晶體與MCU內(nèi)部振蕩電路產(chǎn)生8MHz頻率后,沒有直接做為主頻使用,主要原因是振蕩電路產(chǎn)生的頻率穩(wěn)定性不夠,必須通過PLL電路處理且倍頻后才能做為MCU主頻使用,所以初始化鎖相環(huán)就是初始化MCU的時鐘系統(tǒng)。
3.2 輸入輸出接口驅(qū)動程序編寫
輸入輸出接口驅(qū)動主要有:定時器驅(qū)動程序、GPIO驅(qū)動程序、A/D采樣驅(qū)動程序、D/A變換驅(qū)動程序、PWM驅(qū)動程序和串行通信驅(qū)動程序。
在這里有必要區(qū)分一下初始化代碼與驅(qū)動代碼不同之處。由于嵌入式MCU硬件引腳有限,每個引腳都有復用功能,比如可以做為輸入引腳也可以做為輸出引腳,還可以用做特殊功能引腳使用;初始化代碼作用就是確定硬件引腳的輸入輸出功能、運行時鐘分配和工作參數(shù)配置;而驅(qū)動程序則是完成如何實現(xiàn)輸入或輸出功能。一般初始化代碼只在程序運行前調(diào)用一次,而驅(qū)動程序可以在程序任何需要的地方調(diào)用。
采樣通道參數(shù)由變量char s傳入,根據(jù)s不同確定具體采樣哪個通道。當s為1時采樣通道AD01,就是前面提到的冷卻液溫度值,當s為2時采樣通道AD00值。每次采樣啟動后,都需要判斷采樣寄存器狀態(tài),以確定采樣是否完成。當采樣完成后,返回采樣值A(chǔ)D_data給調(diào)用程序。
3.3 發(fā)動機控制邏輯代碼實現(xiàn)
主要有點火時序控制、燃油量控制、怠速運轉(zhuǎn)控制、加速加濃邏控制、氧傳感器處理和爆振傳感器處理等代碼。
ECU開發(fā)的核心算法代碼以發(fā)動機曲軸傳感器的同步信號、發(fā)動進氣歧管壓力、冷卻液溫度等傳感器輸入數(shù)據(jù)為參數(shù),以內(nèi)燃機工作原理、多缸發(fā)動機點火及噴油時序等做為算法的基本依據(jù),以標定參數(shù)表(燃油表、點火提前角表、空燃比表等)為基準數(shù)值,以實時、高效、準確邏輯運算為目標,以電控器件為控制對象,精心編制出的一套邏輯代碼,用于控制發(fā)動機處于最佳工作狀態(tài)。可以看出這部分程序是ECU開發(fā)重點和難點,也是汽車廠家核心競爭力的體現(xiàn)。發(fā)動機控制邏輯代碼只與驅(qū)動程序開相關(guān),與硬件電路相關(guān)性較低,可由更擅長邏輯代碼開發(fā)、對內(nèi)燃機工作原理更熟悉程序員編寫實現(xiàn)。
4 ?硬軟件聯(lián)調(diào)
由于嵌入式開發(fā)中軟件和硬件的高度相關(guān)性,在發(fā)動機電控系統(tǒng)開發(fā)過程中,硬件和軟件聯(lián)調(diào)貫穿于整個開發(fā)過程。在硬件單元電路設(shè)計時要和軟件模塊設(shè)計相互聯(lián)調(diào),以確定硬件單元電路和軟件模塊程序的正確性。在硬件整體電路和軟件整體代碼設(shè)計完成后,還需要進行整體聯(lián)調(diào),以驗證核心算法的優(yōu)劣和總體時序的正確性。在聯(lián)調(diào)過程中發(fā)現(xiàn)問題需要及時修改然后再驗證,沒問題了再進行下一單元電路設(shè)計和下一段代碼編寫,避免問題積累,增加整體調(diào)試難度。
在固件編寫規(guī)劃時,還需要注意要留有MCU讀寫Flash的接口,用于讀寫發(fā)動機標定參數(shù),如燃油表、點火提前角表、空燃比表等,這部分數(shù)據(jù)存儲在MCU內(nèi)部或外部Flash中,永久保存且掉電不丟失。在標定發(fā)動機時可以隨時修改這部分數(shù)據(jù),修改數(shù)據(jù)在重啟MCU即可生效,以方便燃油發(fā)動機標定參數(shù)的確定,降低標定數(shù)據(jù)與固件程序的耦合性。
5 ?綜述
本文較為全面地描述了燃油發(fā)動機電控系統(tǒng)的開發(fā)過程,也勾勒出了發(fā)動機電控系統(tǒng)開發(fā)的清析輪廓,可以看出發(fā)動機電控系統(tǒng)的開發(fā)有一定的工作量,但并不是遙不可及,相信有實力的廠家或研究單位,組織和管理好開發(fā)團隊,做好頂級設(shè)計和任務(wù)分工,一定可以開發(fā)出一套滿足實用要求的燃油發(fā)動機電控系統(tǒng)。
參考文獻:
[1]劉勝吉,曾瑾瑾,李崇尚,等.點火提前角對通用小型汽油機缸內(nèi)燃燒及排放的影響[J].內(nèi)燃機工程,2016(5).
[2]邵千鈞,何文華,熊樹生.基于CMAC的點火提前角控制怠速穩(wěn)定性的研究[J].內(nèi)燃機學報,2005(4).
[3]邵千鈞,何文華,衛(wèi)忠星,等.多次點火提高LPG發(fā)動機點火可靠性的研究[J].內(nèi)燃機工程,2005(4).