1 發動機爆震及控制 現代發動機管理系統(EMS) 中,爆震控制是核心算法之一。由于頻繁爆震會損壞發動機,ECU必須采取措施制止爆震。為避免爆震,可以保守地設置點火提前角。但這以犧牲最佳點火時機為代價,使動力和燃油效率性能降低。增加爆震控制功能,發動機就可以實時調節點火時間。它可以逐漸加快點火正時,以提供更大的動力。當監測到爆震時,點火正時才后跳幾度來消除爆震,一般來說,爆震系統能提升約3%的動力性和5%的燃油經濟性。 爆震控制算法的最大挑戰是實現有效的爆震檢測。因為要快速準確地(如千分之一秒內)從發動機的正常噪音中分辨出爆震絕非易事,通常用專門的ASIC來完成。但MCU的功能日益強大,在系統設計中,要求MCU在控制發動機的同時完成精準的爆震檢測,目的是降低成本并提高系統可靠性。典型的MCU如飛思卡爾的Copperhead(MPC5554),其內核強大的數字信號處理能力可以勝任各種爆震檢測算法。 2 爆震檢測的標準方法 爆震發生在做功沖程剛開始的時間里(壓縮沖程活塞運動到最高點(TDC)稍后的時間里)。我們不僅知道爆震共鳴聲的大致頻率(約為7K及其諧波),還知道爆震發生的大致曲軸角度范圍。圖1是根據該原理的一個標準的爆震檢測框圖。常用的爆震傳感器內部封裝一個壓電陶瓷,將監聽到的發動機運行聲音轉換為電信號。來自爆震傳感器的電信號通過一個帶通濾波器。帶通濾波器將所需要的頻率信號提取出來。根據曲軸角度信號產生一個角度窗口,這個窗口覆蓋了爆震可能發生的時段。這樣,從檢測窗口輸出的信號就是在時域和頻域都做了選擇的,我們感興趣的爆震信號。為了判斷爆震的強度,最直接的方法就是將信號絕對值加起來,即能量集成。將能量集成后的數據與預先設定的爆震能量參考值進行比較,就可以判斷出爆震是否發生。 3 基于Monaco的片上爆震檢測方案 飛思卡爾推出了第一款90納米技術的專門針對中低端EMS應用的微處理器系列Monaco(MPC563xM)。 Monaco是基于Power Architecture架構的32位微處理器,其許多片上外設的及聯動邏輯設計充分考慮了爆震檢測的需要。把這些外設有效的配置運作起來就能夠高效地實現各種爆震檢測方案。對于相對簡單的爆震算法,一旦CPU將這些外設初始化好,它們甚至可以自治地運作,不再需要CPU的實時干預。即使對比較復雜的爆震算法,這些外設也能夠完成絕大部分的工作,極大降低了CPU的運算負荷。圖2是基于Monaco的一個比較典型的片上爆震檢測方案結構圖。圖中展示了所有與爆震功能有關的外設及邏輯連接。ADC的輸入端有可配置阻值的4個偏置電阻和一個可變增益放大器(VGA),用于使動態范圍最大化以及補償發動機傳感器輸出信號幅度的變化。 4 爆震信號的采樣 Monaco的ADC支持高達1MHz的采樣頻率及8、 10或12位的采樣精度。Monaco上周期中斷定時器(PIT)的一個特性是:不僅能夠配置成周期中斷,還能夠配置成周期地直接觸發片上的EQADC。本例將PIT周期置為5us并觸發AD轉換,于是得到一個精確的200kHz的AD轉換觸發信號。 爆震只在特定角度窗內(TDC稍后的一段時間)才可能發生,故只需讓ADC在恰當的窗口內工作。這個窗口由eTPU產生。eTPU是一個獨立于內核以外的 RISC引擎,在Monaco中eTPU與32個定時通道緊密組合在一起,專注于復雜、高實時性的定時邏輯。其最重要的功能是根據輸入的曲軸和凸輪軸的脈沖信號來產生發動機工作的角度基準。這樣使EMS的控制算法可基于角度空間,eTPU還同時提供基于角度的噴油和點火控制功能。飛思卡爾提供了完備的 eTPU微碼和全面的庫函數以便用戶使用。其中包括爆震窗口的產生:在不同的發動機轉速下對于不同的汽缸都能實時給出所期望的基于角度的窗口。 Monaco 片上外設間的聯動邏輯允許ADC支持高級外部觸發模式。圖3描述了在MCU內部如何產生AD觸發信號及相關信號的波形。Monaco的EQADC集成了一個并行接口(PSI),爆震數字信號可以通過PSI直接輸送到片上的硬件數字濾波器(Decimation Filter)。使用PSI的一個顯著好處是:在濾波過程中不需要CPU的干預。 5 硬件數字濾波器 硬件數字濾波器的核心是硬件乘加器(MAC)。缺省輸入樣點的精度為16位。通過軟件可以將硬件數字濾波器設置成8階的有限沖擊相應濾波器(8th FIR)或4階的無限沖擊濾波器(4th IIR)。硬件數字濾波器有9個24位的系數寄存器,分別存放8個濾波器系數和1個常數項。MAC單元的累加結果精度達51位。在本例中我們將Decimation Filter設計為一個4th IIR低通濾波器,截止頻率為16kHz。硬件數字濾波器還支持對濾波后的信號亞采樣,亞采樣率從2:1到16:1。目的是降低后續CPU處理的負荷。在本例中選擇4:1,截止頻率為16kHz的信號用50k的樣點率就足夠了,不需要高到200k。 6 信號處理引擎 信號處理引擎(SPE)屬于內核的一部分,具有強大的數學運算能力。SPE具有各種靈活的乘法及乘加指令,并支持單指令多數據(SIMD)功能,在每個系統時鐘內能夠完成兩個32位的乘加運算(MAC)。飛思卡爾提供了完備的可供高層調用的DSP庫,包括常用的FFT,IIR和FIR運算。在對高級的爆震檢測應用中,往往采用FFT作更精細的頻域分析。在本例中使用6th IIR實現一個帶通 濾波器來提取爆震信號。該帶通濾波器的截止頻率設在9kHz和15kHz。最后的能量集成也由SPE來完成,這只涉及到加法運算和對結果的簡單修正。整個爆震檢測的CPU所需的負荷小于3%。 需要指出的是,DMA在實現該爆震檢測的方案中起到兩個重要作用:負責將存在系統RAM中的EQADC的命令實時搬運到CFIFO中;將硬件數字濾波器低通處理后數據搬運到系統RAM中暫存,并在每個爆震窗口的數據搬運完后產生中斷。CPU在中斷服務程序中調用SPE的帶通濾波。 7 本文小結 飛思卡爾新一代面向中低端EMS應用的Monaco系列MCU集成了高效的片上爆震檢測能力。針對爆震控制的應用,Monaco系列不僅保留了經典的 Power Architecture強大的數字信號處理能力,更深入優化了片上的外設及相互間的聯動邏輯。無論是較復雜的高級爆震算法還是較直接簡單的爆震檢測都很適合在Monaco上實現。 |