隨著國家對大氣環境治理力度的加大,摩托車排放法規會逐年加嚴,達不到排放法規要求的摩托車將不允許投放市場。電控燃油噴射技術以其良好的節能效果和低排放的性能成為當前摩托車環保技術中的最佳選擇。
摩托車發動機電控單元ECU是以單片機為主芯片,加上信號處理電路以及驅動電路組成的一種發動機管理系統。其工作原理為:通過臺架和整車標定試驗,將發動機的各運行工況下的最佳噴油和點火參數預先存儲在數據區。當發動機運行時,電控系統根據各傳感器的輸入信號判斷出發動機當前的運行工況,通過查表及計算得到最佳的噴油量和點火角,并通過驅動電路來控制噴油器的噴油時間和初級點火線圈的閉合時刻及斷電時刻,來精確地控制混合氣的空燃比與點火時刻,使發動機在最優狀態下運行。
中國的摩托車工業經過20年的快速發展,年產量已經超過了1000萬輛,生產規模及銷售量都居世界第一位。預計在不久的將來,隨著排放法規的加嚴,必將給摩托車電控燃油噴射系統提供一個廣闊的市場。國內幾家大摩托車公司,都先后開發出電控摩托車樣車,有的已在市場上銷售。國外的幾家大汽車電子公司也已開始進入中國電控摩托車市場。
在過去的幾年中,我們曾與企業合作,用MC68HC11F1開發了排量為244cc雙缸摩托車和150cc單缸摩托車的電控燃油噴射系統。
本次參賽采用摩托羅拉公司新推出的高性能價格比的MC68HC908SR12單片機,對原電子控制單元(ECU)的軟硬件進一步優化,降低成本,使其能夠參與激烈的市場競爭。
設計概述
本次設計的目標是開發一種用于摩托車發動機管理系統的ECU,能夠應用在不同排量、不同傳感器和執行器特性的摩托車單缸發動機上。用單片機精確地控制汽油發動機在各種運行工況下的空燃比(吸入氣缸內的空氣和燃油的比例,簡稱空燃比)和點火正時(點燃混合氣的準確時刻),以減少發動機排氣中的有害成分,降低燃油消耗和改善摩托車的動力性能。
系統應具備以下主要功能:
1.發動機空燃比控制;
2.點火正時控制;
3.空燃比的加速加濃控制;
4.空燃比的減速減稀控制;
5.目標怠速控制;
6.怠速轉速下CO調整功能;
7.系統的故障診斷功能;
8.在線標定監控功能。
圖1 發動機電控管理系統的組成
系統的組成如圖1所示。發動機在運轉時,單片機通過轉速傳感器和節氣門(油門)位置傳感器提供的信號,確定發動機的運行工況。然后從數據存儲區中查到預先標定好的,在這一工況下運行時最佳的基本噴油脈寬和點火時刻,再根據當時檢測到的空氣溫度和發動機的缸壁溫度對這一數值進行修正,得到最終輸出的噴油脈寬和點火時刻。單片機通過功率驅動電路,控制噴油器噴油和點火線圈使火花塞點火。
單片機根據節氣門位置傳感器信號變化的方向和變化的速率,確定發動機是處于加速工況還是減速工況,控制發動機在過渡工況下運行時的噴油脈寬和點火時刻。怠速的穩定性和排放性能都是摩托車的重要指標,需要進行良好的控制。同時ECU還應該具有自診斷功能,可以對傳感器和執行器的狀態進行檢測。
為了方便監控,ECU具有通訊功能,不僅可以通過上位機開發裝置進行實時狀態監控,還能進行在線的發動機數據標定。通過不同的標定數據,就可以將此ECU用于不同排量、不同傳感器和執行器特性摩托車發動機的控制。
電控摩托車發動機ECU的硬件結構框圖如圖2所示,以MC68HC908SR12為核心,還包括傳感器信號的處理電路、執行器的驅動電路及通訊接口電路.
硬件描述
電控摩托車發動機ECU的硬件結構框圖如圖2所示,以MC68HC908SR12為核心,還包括傳感器信號的處理電路、執行器的驅動電路及通訊接口電路。
圖2 發動機電控管理系統硬件結構框圖
主芯片MC68HC908SR12
主芯片必須其滿足ECU軟件計算的要求以及硬件資源的要求。
由于摩托車發動機轉速高達上萬轉,點火提前角的計算必須在目標點火時刻到來之前完成,這時間通常不到0.5ms,所以需要較高的指令的執行速度。而且執行速度越快,ECU就可以獲取更新的傳感器信號,計算實現更精確的控制。MC68HC908SR12采用了PLL鎖相環技術,因此可以在很低的晶振頻率32.768KHz下,產生高達8M的總線頻率。本電控系統采用的內部總線為4.9125M,不僅滿足了摩托車發動機控制的需要,還可以產生19200的SCI通訊波特率,與原有的電控系統開發裝置兼容。 電控系統需要能采集5路A/D,并且具有1路輸入捕捉、2路輸出比較功能及各種I/O口,還要具有通訊接口。MC68HC908SR12具有4路輸入捕捉/輸出比較、12通道10位A/D轉化器和SCI串行通訊口,3個8位I/O口和1個7位I/O口(包括與其它功能模塊復用的端口),能滿足控制要求。各端口的使用狀況如下表1所示。
MC68HC908SR12可尋址64KB地址空間,主要包括:12KB的閃速存儲器Flash、512字節的隨機存儲器RAM、48字節的用戶定義矢量區和368字節的監控ROM,存儲器的具體分配情況如下表:
其12KB的Flash ROM和512Byte的RAM都基本上能滿足系統的使用要求,而且SR12的價格也比較便宜。
傳感器簡介
各傳感器的采集周期各不相同。變化快并且重要的信號就需要很高的采集頻率,變化慢不太重要的信號的采集頻率就可以降低。并且采集方式也有同步與異步之分,影響發動機實時工作狀態的模擬量采集方式就應該是同步的,否則可以為異步的。
節氣門位置傳感器
節氣門由駕駛員操縱,反映駕駛員的控制意圖,因此是判斷發動機工況的重要信號。節氣門位置傳感器安裝在節氣門軸的尾端,常采用滑線變阻器的型式。節氣門完全關閉時,傳感器輸出電壓大于0V;節氣門完全打開時,輸出電壓小于5V。當節氣門不斷開大時,其輸出電壓隨之線形增加。
TPS信號從整體上說具有較高要求,不僅對節氣門位置傳感器硬件要求較高,而且還需要在電控軟件中對其信號進行相應的濾波處理。
壁面溫度傳感器
壁面溫度傳感器是負溫度系數的電阻型測溫傳感器,其電阻隨著溫度增加而降低,溫度與電壓的對應關系在電控軟件中通過查表完成。
壁面溫度傳感器用來精確地指示發動機的工作溫度。對應不同的發動機溫度范圍,電控單元應該對發動機的工作特性進行相應修正和補償。比如,冷起動時,需要比熱機時更多的燃油。
蓄電池電壓
蓄電池電壓信號直接從蓄電池的接線柱處取得。此信號對于電控單元來說非常重要,油泵、噴油器和點火線圈的工作都受到蓄電池電壓的影響,因此必須根據蓄電池電壓信號對噴油脈寬和點火線圈閉合時間進行修正補償。
拖動期間,發動機轉速周期性變化,蓄電池電壓的瞬時值也隨之周期性波動,ECU采用同步方式采集。進入運行點火工況后,采用定周期方式采集。
進氣溫度傳感器
進氣溫度傳感器與壁面溫度傳感器一樣,也是負溫度系數的電阻型測溫傳感器。安裝在進氣管中測量進入發動機的空氣的溫度。進氣溫度影響進氣密度,因此將影響進氣質量,從而改變所需的燃油量,故在電控軟件中需要根據進氣溫度進行進一步的修正補償。
CO調整螺釘
這個電位計也安裝在電控單元內,但可以用一個小的平頭改錐從外面進行調節。這種調整結果被用來在電控軟件中對基本的負荷計算進行偏移,從而改變發動機運轉的實際空燃比。加裝此CO調整螺釘的目的就是調整發動機怠速運轉時的排放狀況。
發動機轉速及曲軸位置傳感器
發動機轉速及曲軸位置傳感器是所有傳感器中最為重要的,本電控系統中使用的是磁電式傳感器。經過電控單元的脈沖整形電路處理之后,由主芯片的輸入捕捉口進行脈沖捕捉。電控系統不僅要根據此信號找到齒缺位置,從而與曲軸同步,并且還要根據轉速的變化進行判缸,根據轉速的不同進行不同的點火和噴油控制。如果此信號有誤,發動機將無法正常工作。
壁面溫度傳感器用來精確地指示發動機的工作溫度。對應不同的發動機溫度范圍,電控單元應該對發動機的工作特性進行相應修正和補償。比如,冷起動時,需要比熱機時更多的燃油。
蓄電池電壓
蓄電池電壓信號直接從蓄電池的接線柱處取得。此信號對于電控單元來說非常重要,油泵、噴油器和點火線圈的工作都受到蓄電池電壓的影響,因此必須根據蓄電池電壓信號對噴油脈寬和點火線圈閉合時間進行修正補償。拖動期間,發動機轉速周期性變化,蓄電池電壓的瞬時值也隨之周期性波動,ECU采用同步方式采集。進入運行點火工況后,采用定周期方式采集。
進氣溫度傳感器
進氣溫度傳感器與壁面溫度傳感器一樣,也是負溫度系數的電阻型測溫傳感器。安裝在進氣管中測量進入發動機的空氣的溫度。進氣溫度影響進氣密度,因此將影響進氣質量,從而改變所需的燃油量,故在電控軟件中需要根據進氣溫度進行進一步的修正補償。
CO調整螺釘
這個電位計也安裝在電控單元內,但可以用一個小的平頭改錐從外面進行調節。這種調整結果被用來在電控軟件中對基本的負荷計算進行偏移,從而改變發動機運轉的實際空燃比。加裝此CO調整螺釘的目的就是調整發動機怠速運轉時的排放狀況。
發動機轉速及曲軸位置傳感器
發動機轉速及曲軸位置傳感器是所有傳感器中最為重要的,本電控系統中使用的是磁電式傳感器。經過電控單元的脈沖整形電路處理之后,由主芯片的輸入捕捉口進行脈沖捕捉。電控系統不僅要根據此信號找到齒缺位置,從而與曲軸同步,并且還要根據轉速的變化進行判缸,根據轉速的不同進行不同的點火和噴油控制。如果此信號有誤,發動機將無法正常工作。
執行器簡介
當電控系統通過上述各傳感器獲得了發動機當前運轉的狀態及工況需求后,需要通過驅動電路去驅動相應的執行器,通過其動作來實現點火和噴油,從而滿足工況的需要。點火控制是同步工作方式,但噴油控制的工作方式可根據實際要求分為同步工作和異步工作。
油泵
油泵為發動機提供充足的燃油量,并且保持足夠的油壓,使得在所有的工況下噴油器都能夠進行有效的燃油噴射。調壓器保持油管內的常壓,這樣就可以通過改變噴油器的開啟和結束時間來精確計量燃油量。點火鑰匙接通電源時,電控系統就開啟油泵,提供第一次噴射所需的燃油壓力。只要點火鑰匙接通電源且發動機運轉著,油泵就始終運轉工作。
噴油器
噴油器的主要參數就是流量特性,即每毫秒所對應的噴油量,不僅需要精準,而且還必須能夠滿足發動機的使用要求,即噴油器的最小供油量必須滿足發動機怠速運轉的要求,最大供油量必須滿足發動機大負荷工況的要求。
噴油器存在開啟滯后的現象,實際噴油器打開的時刻比控制開啟時刻要晚,蓄電池電壓越低,滯后時間越長。在軟件中設置噴油開啟時刻時需要考慮到噴油開啟時刻的滯后,使實際噴油持續時間更接近于軟件計算值。另外,還需要在蓄電池電壓低到對噴射壓力造成影響時,對噴油脈寬進行相應修正。
點火線圈
點火初級線圈的閉合時間必須超過一定的有效時間(同樣要根據蓄電池電壓來修正),這樣線圈才能存儲足夠的能量來點火。當點火線圈初級繞組電流斷開時,就產生一次點火。
點火提前角的設置是否合適,對發動機的轉矩輸出影響最大,因此需要考慮轉速、溫度及負荷等造成的影響,并在軟件中對點火提前角進行相應修正。
軟件描述
軟件結構介紹
摩托車電控系統不同于一般的控制系統,由于摩托車上飛輪較小,發動機轉速波動較大,并且轉速最高達10000轉/分以上,對于系統的實時響應速度要求非常高,這些要求突出體現在對曲軸位置及轉速檢測、噴油正時及點火正時的實時控制等方面。
為了能夠滿足實時控制的要求,電控軟件將采用“前景/背景”結構進行設計,即將轉速信號的捕捉處理以及點火、噴油信號等的輸出作為“前景”,這些實時性要求高的處理過程會立即得到主芯片的響應,而前景程序執行所需要的各種參數的計算以及其他實時性要求不高的部分,則在由主循環等待及實時中斷所組成的“背景”中進行。
圖3 電控軟件的總體流程圖
基于以上設計思路,計劃將軟件劃分為三個基本的部分:初始化、背景程序和前景程序,流程圖如上圖3所示。
由于MC68HC908SR12的時鐘基(TBM)模塊只能產生約2ms的定時中斷,而原有電控系統的背景軟件執行時間必須在7.81ms以上。因此,在本ECU軟件中,將背景執行程序在四次TBM中斷時間內執行。MC68HC908SR12的中斷優先級是固定的,故需要根據軟件的中斷優先級的不同來設計硬件。并且由于MC68HC908SR12沒有脈沖累加器中斷,因此將經過轉速處理電路處理過的轉速信號同時接入到TIM1的兩路輸入捕捉端口,以下降沿捕捉的方式發生。其中T1CH0負責進行齒缺的尋找,是優先級最高的中斷。當尋找到齒缺后,即實現了電控系統與發動機的運轉同步之后,就不再使能此中斷,切換到另一路T1CH1,當數到相應齒號時,就使能與點火、噴油相關的中斷。為了不累積誤差,需要在快到齒缺時,重新切換到T1CH0。點火使用T2CH0,噴油使用T2CH1。轉速處理模塊
轉速處理模塊的軟件示意框圖如圖4所示。轉速脈沖信號是由發動機曲軸位置及轉速傳感器獲得的,由于傳感器的觸發盤(如圖5所示)有一個不同于其它的大齒,因此,觸發盤轉動一周所產生的脈沖信號中也存在一個寬度較大的脈沖。利用這一點,將此脈沖信號經過軟件的處理之后,不僅可以用來提供發動機工況所需的轉速,還將提供電控系統工作所需的曲軸位置信息,從而按照發動機時序控制的要求在確定的曲軸轉角處實現點火和噴油輸出。
圖5 發動機曲軸位置及轉速傳感器的觸發盤
點火控制模塊
點火控制模塊由前景時序控制和背景點火工況判別及背景點火計算程序組成,如圖6所示。背景工況判別程序監測發動機轉速、負荷、壁面溫度等工況參數,劃分不同工況段并設置相應的工況標志位,控制前景程序以特定的點火模式工作。背景點火計算程序計算初級線圈閉合時間和點火提前角,并對初級線圈閉合時刻進行更新設定。
圖6 點火控制模塊的流程圖
點火初級線圈閉合時間決定點火能量,它受線圈規格、蓄電池電壓以及線圈溫度影響。閉合時間過長會損壞線圈及其驅動器件,過短則可能導致失火。
拖動工況時初級線圈的閉合時刻固定在曲軸的某一轉角,且其閉合時間約為曲軸轉過2齒或4齒所對應的時間(隨蓄電池電壓不同),而運行點火工況下,不僅要考慮到發動機轉速和蓄電池電壓對計算初級線圈閉合時間帶來的影響,而且還要根據轉速和負荷的變化來調整,從而獲得最佳的初級線圈閉合時間。
軟件中,運行點火工況下,初級線圈的閉合時間計算公式如下:
閉合時間 = 動態閉合時間 + 穩態基本閉合時間 + 初級線圈閉合時間蓄電池電壓補償
由于拖動工況下發動機轉速變化很快,而且會迅速滿足運行點火工況的要求從而脫離拖動工況,故拖動點火角只以轉速為自變量,不考慮其他任何修正。
運行點火工況時,點火提前角的計算則是不僅由節氣門開度TPS和發動機轉速RPM確定主點火提前角,更要考慮到多種因素的影響,進行各項修正。對計算得到的點火提前角,不僅需要限定最小值和最大值,而且還要對點火提前角的變化率進行限制,避免發動機性能出現突變。
點火提前角的計算公式如下:
運行點火提前角 = 主點火提前角 + 壁面溫度修正 + 充氣溫度修正+ 大氣壓修正 + 功率加濃修正
發動機起動成功后,其壁面溫度將逐漸升高。為了保證摩托車能在穩定怠速下運轉,可以通過調整此壁面溫度修正量來調整怠速時的點火提前角。充氣溫度修正項與壁面溫度修正項的作用相同,功率加濃修正是指發動機工作在功率加濃工況(高速大負荷)時點火提前角所需要的修正項。根據背景程序計算得到的這些數據參數及控制標志,在前景程序中將完成點火初級線圈閉合、斷開時刻的設定和點火驅動脈沖的輸出。 因為初級線圈對閉合時間的要求是基于時間的,而點火驅動脈沖的產生是基于曲軸轉角的,因此不同轉速段下,點火驅動脈沖會跨越不同的曲軸轉角。為提高點火提前角的控制精度,軟件中設置點火時刻的基本原則是從34X信號獲取盡可能多的曲軸瞬時轉速信息,使從角度到時間的轉化關系更加精確。同時,還可獲得更高的可靠性。但主芯片的程序代碼的執行速度又限制了在高轉速段(如轉速 > 8000r/min)頻繁利用前景事件中斷獲取曲軸瞬時轉速信息,因此為了滿足實時性的要求,將對準確性和可靠性的要求進行相應調整。在背景程序中,按發動機轉速(指平均轉速)劃分出4種點火時序控制模式,即拖動、低速、中速及高速模式。在拖動和低速模式下,由于轉速很低,準確性、可靠性和實時性的要求都可以得到滿足。但隨著轉速逐漸提升,準確性和可靠性的要求逐漸下降,實時性成為最重要的要求,到高速模式時,實時性和可靠性又成為最主要的要求。
噴油控制模塊
噴油控制模塊在總體結構上與點火模塊類似,從功能上可分為前景噴油時序控制邏輯和背景噴油脈寬計算模塊以及噴油工況判別邏輯,如圖7所示。在背景噴油脈寬計算模塊中,將根據發動機工況的變化,計算出所需的噴油脈寬,其計算公式為:
噴油脈寬=基本噴油脈寬×加速加濃修正×減速減稀修正×蓄電池電壓修正因子
其中:基本噴油脈寬=發動機排量×充氣效率因子×空燃比(A/F)
圖7 噴油控制模塊的流程圖
為了能夠適應發動機工況的變化,同樣也需要通過標定試驗將相關數據存儲在表格中,通過查詢表格獲得目標空燃比值。并由各傳感器信號計算得到循環進氣量,再乘以各項修正因子完成噴油脈寬的計算,在前景程序中將完成噴油驅動脈沖起止時刻的設定。
前景程序中噴油脈寬的輸出是通過在參考事件中設置定時器T2CH1輸出比較中斷來實現的。發動機一個工作循環曲軸旋轉2周,其中只在每轉的第二個參考事件中設置噴油輸出,這樣分別在發動機的壓縮沖程和排氣沖程中各進行一次噴油。當駕駛員有急加速意圖時,通過增加同步噴油脈寬的輸出仍不能滿足快速響應的需要,此時需要根據節氣門變化率計算出異步噴油脈寬并在前景程序中立即輸出。異步脈寬輸出設計思路如下:若當前有同步脈寬正在輸出,則將異步脈寬疊加于當前同步脈寬;若當前無同步脈寬輸出,則將計算出的異步脈寬累加到下次同步脈寬中一起輸出。考慮到每循環同步脈寬的輸出均在本循環進氣門打開之前,故此設計思路可以很好地保證發動機良好的加速響應性能。
SCI通訊模塊
通訊模塊的設計主要是為電控系統的軟件開發和標定試驗服務的,方便RAM監控及在線修改標定數據。此功能的實現需要得到上位機開發裝置的支持,使用的開發工具是本課題組自主開發的實時監控發動機狀態并進行控制的標定軟件。
RAM監控功能是通過讀數據單元、讀數據區以及讀參數顯示狀態的通訊模塊來實現的。RAM監控可使RAM單元內容透明化,軟件開發者可以實時地獲得軟件中點火、噴油功能模塊相關變量的變化情況。無論是模擬調試還是臺架試驗,上位機記錄的數據都可用于離線查錯和數據分析,完成數據的作圖、顯示和存盤。上位機可以顯示發動機轉速,節氣門開度,噴油脈寬,點火提前角等變量值,還能顯示包括清淹缸,動力加濃,減速斷油等狀態,同時提供顯示曲線功能,方便了解發動機的狀態及其變化情況。而且還具有數據采集功能,能存儲指定時間內的上述各種變量和狀態的數據。
系統上電后禁止RAM單元監控模塊工作。上位機發出監控命令觸發數據接收中斷后再開始回送數據。為了實時接收通訊請求,數據的接收是在前景程序中執行的,即由SCI中斷程序處理,同時也可進行數據的發送。但由于某些通訊模式下一次發送數據較多,為了不影響點火、噴油等前景程序的執行,其第一個數據的發送仍在SCI中斷程序中進行,但后續數據的發送則在背景程序中,通過查詢方式定時進行。
圖8 實時在線修改數據功能在臺架驗證實驗中的應用
電控系統要想能夠工作在最佳狀態,需要有良好的數據做基礎。數據區在線修改功能主要在發動機臺架標定及整車標定時使用。
由于ECU軟件程序及標定數據區都存儲在MC68HC908SR12的12K的FLASH中,因此要實現電控系統的在線標定就需要能夠對FLASH進行擦寫。由于這些程序必須放在RAM中,因此電控系統軟件首先需要將這些程序存放在FLASH中,在系統上電初始化之后對將這些FLASH擦寫程序復制到RAM中去。由于MC68HC908SR12對于FLASH的擦寫是整頁擦寫(最小的擦除單元是128個字節,最小寫入單元是64個字節),這樣在進行電控系統標定時,就不能只對特定的數據單元內容進行修改,而是為了一個單元的修改就需要進行整頁的擦寫才能完成。擦寫一頁FLASH需要3ms左右,由于摩托車發動機轉速高達上萬轉,比如在10000rpm時,3ms就對應著發動機轉過半轉,在這半轉的時間內,由于在進行FLASH的擦寫,ECU就不能正常工作,因此臺架標定時將無法進行高速時的標定。本電控系統采用的方法是將原有電控系統中的標定數據直接進行使用,然后再根據具體的使用需要進行某些數據的標定。