官术网_书友最值得收藏!

2.3.2 電控系統的中斷服務體系

ECU的中斷服務功能是為了滿足一些需要及時響應的控制需求。中斷有外部中斷和內部中斷兩類。外部中斷一般是由某些輸入線上電平的突變引發的,而內部中斷則是由ECU微處理器內產生的某類條件引發的。對于外部中斷而言,ECU的某些輸入線具有這樣的功能:當輸入線上的電平發生突變,就會引發對應的中斷。

引發中斷的可以是電平的上升沿,也可以是下降沿,或者是上升沿與下降沿都引發中斷。這就是前面提到的單片機輸入捕獲(input capture,IC)功能。一般的單片機都有若干個具有IC功能的輸入口線,通過ECU的接口與外部器件連接。在ECU基礎軟件系統初始化過程中,可以對輸入捕獲功能做出設置。例如可以設置成上升沿觸發、下降沿觸發,或者是上升沿與下降沿都觸發。

中斷觸發后,程序會暫停當前的程序執行,轉移到與中斷對應的服務程序繼續運行。在中斷服務程序中,完成該中斷功能對應的工作任務。一般中斷服務程序不宜過長,不能影響下一個同類中斷信號的接收。在計算機原理課程中有對中斷管理的較詳細闡述,這里不再詳細說明。由于目前我們用于柴油機控制的單片機的處理功能都很強,所以只要注意別將太多的工作放在中斷服務執行,一般就不會引起對下一中斷執行的屏蔽。

(1)曲軸信號中斷

曲軸信號是曲軸上的信號輪輪齒與曲軸信號傳感器相對運動而產生的,它與凸輪軸的信號有固定的相位關系,如圖2?12所示。這里假設單片機自由運行計數器設置的時間常數Ct是3.2μs。

圖2?13 曲軸信號周期

在初始化時,設定捕獲的是曲軸信號的下降沿,如圖2?13所示。在這種情況下,曲軸中斷服務程序會給出本次中斷與上次中斷的時間間隔量Tci。根據這一間隔量可以算出曲軸轉過一個齒的時間,進而算出曲軸轉速n


例如:如果這一間隔量為200,則單齒(占據6°曲軸轉角)的轉動耗時為:

S=200×3.2=640 (μs)

曲軸轉速為:

n=(6/640)×106×(60/360)=1562.5(r/min)

曲軸中斷是柴油機電控中最重要的組成要素之一。它不僅用于計算轉速,而且用于較精確的相位定位控制,這種相位的控制基于對信號輪齒本身的計數。針對60-2的信號齒輪對齒的計數可以達到6°的齒輪轉角精度,更高的轉角控制精度可以在此基礎上通過時間量的控制來實現。

Tci值的動態采樣和處理,可以離散化地計算曲軸的運動規律。由于曲軸齒較密,每轉有60個齒位,因此能夠比較連續地反映曲軸運行規律的變化。常用Tci0信號的連續采樣計算出曲軸的每轉平均轉速、每循環平均轉速、每缸平均轉速、齒的瞬時轉速、齒的角加速度及在一段轉角間的平均角加速度等。這些數據對于柴油機控制是最根本的依據,只有保證這些數據的準確,才能談得上控制實施的正確。

對于曲軸信號的處理源于對單片機內自由運行計數器的計數。例如:當經歷某次曲軸中斷時自由運行計數器中的值Tci是300,而下次曲軸中斷時Tci的值是500,則兩次間差值即為200。這就是兩次中斷間的時間間隔量。

這里要注意一個問題,就是所謂計數器的“溢出”問題。例如:如果是16位的計數器,則其能夠表達的最大值是65535,即16位全為2進制的1。達到此數后,計數器會回到全0狀態再開始按時間遞增,依此循環。由此可以區分三種情況:

① 前后兩次中斷落入同一次計數循環過程中。這種情況,其兩次中斷的間隔自然是后次減前一次。

② 后一次中斷落入下一次計數循環過程中,且計數值小于第一次中斷的計數值。這種情況,由于后一次的值減前一次的值時發生借位,本位減法的結果小于計數器的最大值,因此結果仍是正確的。例如:第一次計數是65530,第二次是194。則時間間隔為:

65536+194-65530=200

③ 后一次中斷落入下一次計數循環過程中,且計數值大于第一次中斷的計數值。后一次中斷時刻符合這種情況或再靠后,都無法通過簡單的本位減法求得正確的時間間隔。這是因為兩次中斷時間間隔大于計數器的本位最大計數能力,這就是所謂的“溢出”現象。在這種情況下,為計算兩次中斷時間間隔必須考慮兩次中斷間經歷的“溢出”次數。

以時間常數Ct是3.2μs為例,上述的16位自由運行計數器的最大計時量為:

65536×3.2=209715.2(μs)≈0.21s

而對于曲軸脈沖信號,即使是在較慢的10r/min的轉速下,脈沖周期仍有0.1s的較低值,即兩次脈沖間隔不會超過16位自由運行計數器的最大計時量,所以幾乎不需要在處理曲軸信號時考慮溢出問題。但是要注意到這一問題的存在,對于特殊情況下這一問題可能造成的影響要有必要的認識,避免發生意外。

(2)凸輪軸信號中斷

凸輪軸信號在形式上與曲軸信號較為相似,也是通過對脈沖信號跳變沿采樣的方式獲得相鄰信號沿的時間差值,并由此進行進一步的利用。凸輪軸信號輪在不同的電控發動機上有幾種不同的結構形式:有的在一周內只能提供一個脈沖,這種結構形式只能使凸輪軸信號起到輔助確定曲軸相位的作用;較常用的倒是我們在EDBM中設定的圖2?12中這種4+1型,它不僅能起到輔助確定曲軸相位的作用,也能通過它的信號完成柴油機轉速的計算,并達到一定的精度。這種利用凸輪軸信號完成轉速計算的方式,主要能夠在兩種情況下有用。一種情況是針對電控單體泵的泵臺試驗,由于這時根本沒有曲軸信號,只能靠凸輪軸信號來確定轉速和相位;另一種情況是針對柴油機車輛在行駛時曲軸信號傳感器的失效,此時要依靠凸輪軸信號維持使車輛實現“緩慢回家”的功能。

對于利用凸輪軸信號齒做轉速計算的這種情況,前面提到的計數器溢出問題會影響到計算過程。EDBM中設定的凸輪軸是4+1齒的。考慮4個齒產生的脈沖間隔時間,當柴油機轉速為60r/min時,凸輪軸的轉速為30r/min,即齒速為120齒/min,即2齒/s。齒與齒間隔約為500ms,這大大超過了16位自由運行計數器的最大計時量0.21s,產生了溢出。因此,處理用凸輪軸信號齒做轉速計算問題時,除了使用A_FTV變量之外,還必須利用A_FTVO。這兩者聯合使用可以表達更長的時間周期,滿足凸輪軸信號齒做轉速計算的需求。

圖2?14 高速電磁閥驅動波形要求

(3)供油輸出驅動的中斷控制

對于供油輸出驅動中斷的設置有不同的實現方式。此處介紹的是一種較典型的處理方式。針對實際受控環境,無論是針對電控單體泵的供油驅動還是共軌系統的噴射驅動,都可以認為是同一種大功率的電驅動脈沖實現方式,目的是產生如圖2?14所示的驅動波形。要在確定的相位產生上述的驅動波形,要把握如下要素:

① 低位開關開啟時刻tq1

② 高位開關開啟時刻tq2

③ 高位開關關閉時刻tq3

④ 低位開關關閉時刻tq4

這里所提到的低位開關和高位開關都是在電路中用于控制產生大功率驅動脈沖的電路。大功率驅動脈沖是依靠這兩個開關與一些IC電路的配合而實現的。而上述的4個時刻不僅決定了驅動脈沖開啟與結束的時機,也決定和影響了驅動脈沖的形狀特征。

為進一步說明上面這些時間量,請參考圖2?15。

圖2?15 供油脈沖與曲軸信號相位

齒脈沖信號中斷源取自齒脈沖信號的下降沿。在一般情況下,供油信號的相位根據供油提前角計算出來,應該是相對于某一齒之后的某一位置tq1,滯后于齒脈沖信號tq1-tq0=dtq1時間段。dtq1被用于作為時間量在齒脈沖信號處理過程中設置一個比較輸出中斷(OSCOI),對這一時間做倒計數。當倒計數達到0時,即產生中斷,轉入中斷處理程序。

在中斷處理程序中,首先打開低位開關,然后用tq2-tq1=dtq2作為時間量重設置比較輸出中斷(OSCOI),再執行中斷返回。當下一次OSCOI中斷發生時,時間剛好過去dtq2,程序將重新轉入中斷處理程序。

在這次的中斷處理程序中,首先打開高位開關,然后用tq3-tq2=dtq3作為時間量重設置比較輸出中斷(OSCOI),再執行中斷返回。當下一次OSCOI中斷發生時,時間剛好過去dtq3。程序將重新轉入中斷處理程序。

在這次的中斷處理程序中,首先關閉高位開關,然后用tq4-tq3=dtq4作為時間量重設置比較輸出中斷(OSCOI),再執行中斷返回。當下一次 OSCOI中斷發生時,時間剛好過去dtq4。程序將重新轉入中斷處理程序。

在這次的中斷處理程序中,首先關閉低位開關,再執行中斷返回,供油過程即告結束。在控制多缸柴油機過程中,每缸要有1個獨立的上述這種輸出比較中斷控制OCI,以滿足供油控制需求。

在EDBM_ECU軟件資源中,實現上述功能的函數較為簡單。用戶只需執行簡單的函數調用, OSCOI中斷功能就在這一函數中得到運用。這一函數為:

void Oil_Supply?()

其中??表示對應各缸的函數,如第1缸為1、第2缸為2等。另外定義的變量有以下含義:

A_Dtq1=dtq1-dtq0;自齒中斷時刻到供油低位開關打開

A_Dtq2=dtq2-dtq1;自低位開關打開到高位開關打開

A_Dtg3=dtq3-dtq2;自高位開關打開到高位開關關閉

A_Dtq4=dtq4-dtq3;自高位開關關閉到低位開關關閉

這4個變量都是全局變量,在 Oil_Supply?()執行過程中會受到這4個變量的控制,產生不同的效果。

主站蜘蛛池模板: 肥城市| 通渭县| 武穴市| 黔西| 云和县| 金溪县| 池州市| 土默特左旗| 成武县| 卓资县| 保亭| 和林格尔县| 历史| 于田县| 浙江省| 琼中| 敦化市| 依兰县| 来凤县| 江都市| 蒙自县| 丹凤县| 九江县| 威远县| 新余市| 九寨沟县| 雷山县| 嘉荫县| 云阳县| 革吉县| 平顺县| 阳信县| 荣昌县| 鹤庆县| 车致| 庄河市| 诸暨市| 定南县| 无为县| 通化县| 盖州市|