數(shù)字信號控制器在汽車設(shè)計中的應(yīng)用
簡介
汽車設(shè)計從過去單純的機械式系統(tǒng),到如今常常包含多達100個微處理器的現(xiàn)代汽車,已經(jīng)走過了很長的歷程。傳統(tǒng)汽車上用到電子器件的部分僅僅是那些娛樂設(shè)施,最常見的是汽車收音機。直到有關(guān)諸如廢氣排放量和節(jié)油性等汽車各方面性能的政府規(guī)定出臺以后,對汽車功能的電子控制才開始變得越來越普遍。最初,某些功能是依靠分立式硬件元件或數(shù)字邏輯執(zhí)行的。隨著單片機(MCU)等嵌入式處理器解決方案的出現(xiàn),使用MCU來代替固定硬件的好處正逐步顯現(xiàn),這是因為設(shè)計者可以對MCU進行編程以執(zhí)行模塊所要求的特定任務(wù)。汽車設(shè)計中大量采用了各種MCU,從用在轉(zhuǎn)動擋風(fēng)玻璃雨刮器和開門等功能的最簡單的8位MCU到控制引擎的復(fù)雜32位MCU。這個范圍的中間是大量的16位MCU,它們本身在計算能力、存儲容量、功耗和外設(shè)特性方面也呈現(xiàn)出相當(dāng)大的多樣性。為每個獨立的汽車子系統(tǒng)選擇合適的處理器,并在不同的子系統(tǒng)間合理地分配處理能力,對汽車產(chǎn)品的性能、可靠性和增強功能起著至關(guān)重要的作用。
數(shù)字信號控制器:單片機和數(shù)字信號處理器領(lǐng)域的佼佼者
大多數(shù)汽車控制和監(jiān)視操作都需要大量的數(shù)學(xué)運算。例如,在引擎預(yù)熱階段,空氣流量(MAF)傳感器和引擎轉(zhuǎn)速計(以每分鐘轉(zhuǎn)數(shù)(RPM)表示)的輸出數(shù)據(jù)會被MCU采樣,然后需要根據(jù)測得的數(shù)值,計算出要求噴射到每個汽缸的燃油量,公式如下:
F = MAF / (K*N*RPM/120)
其中,K是給定潤滑劑溫度下的理想(常數(shù))空氣-燃油比,N是汽缸的數(shù)量。
上面的計算不僅涉及精確的乘法和除法,還必須對要射入的燃油量進行重復(fù)計算以適應(yīng)快速變化的引擎工作條件。因此,當(dāng)廢氣含氧量(EGO)傳感器已預(yù)熱充分,能夠測量廢氣的質(zhì)量時,必須持續(xù)監(jiān)視EGO傳感器的輸出數(shù)據(jù),以調(diào)節(jié)燃油噴射速率,從而獲得最佳的引擎性能并減少廢氣的排放量。
計算密集型操作的其他實例還有:
a)對來自各種傳感器的數(shù)據(jù)進行有限沖激響應(yīng)(FIR)或無限沖激響應(yīng)(IIR)濾波,以消除噪聲。應(yīng)用實例:引擎爆震檢測、熄火檢測或在持續(xù)監(jiān)視燃油液位時消除油料晃動的影響。
b)進行快速傅立葉變換(FFT)對數(shù)據(jù)進行分析,以在后續(xù)的處理階段使用頻譜。應(yīng)用實例:主動振動控制或排氣噪聲消除。
c)根據(jù)傳感器輸入數(shù)據(jù)的數(shù)量級,對其進行定標(biāo),以及歸一化和線性化處理。
d)比例-積分(PI)或比例-積分-微分(PID)控制算法。應(yīng)用實例:導(dǎo)航控制。
圖1描繪了一個簡化的引擎控制系統(tǒng),它本身就是汽車中各種處理器所執(zhí)行任務(wù)的一部分。
車廂噪聲消除、引擎爆震檢測及防翻滾和穩(wěn)定性控制等舒適、診斷和安全功能都需要更強的信號處理能力,這就要求使用自適應(yīng)濾波等數(shù)學(xué)密集型算法。
進行這樣的計算要求所使用的處理器具有非常高速的數(shù)學(xué)運算功能。8位的MCU或一般的16位MCU架構(gòu)完全不具備這樣的功能,而對成本的考慮又常常會使昂貴的32位MCU無法在這樣的場合得到使用。一個專門針對重復(fù)性數(shù)學(xué)處理進行優(yōu)化的特殊處理器架構(gòu)--16位數(shù)字信號處理器(DSP)可用來執(zhí)行這樣的密集型任務(wù)。
但就DSP本身(沒有處理控制任務(wù)的相關(guān)MCU)來說,它并不是非常適合在汽車系統(tǒng)等動態(tài)環(huán)境中使用。主要有以下幾個原因:
a)DSP不具有靈活的中斷結(jié)構(gòu)。
b)DSP無法對位(如各個I/O引腳的狀態(tài))進行十分高效的操作。
c)DSP在很大程度上需要依賴片外存儲器和外設(shè)。
d)很少有低引腳數(shù)的DSP器件,因而不適合在空間受限的模塊中使用。
因此,可執(zhí)行大量汽車功能的理想單芯片架構(gòu)平臺將是16位數(shù)字信號控制器(DSC),比如Microchip的dsPIC30F系列器件。DSC是一款創(chuàng)新的混合型"片上系統(tǒng)"(SoC)架構(gòu),它無縫地組合了16位MCU的控制特性和大量的DSP功能。
一方面,DSC架構(gòu)尤其適合類似于下述的典型控制操作:
a)定期提供中斷服務(wù),例如,獲取對汽車速度和轉(zhuǎn)向角度的定期采樣以計算防抱死制動系統(tǒng)(ABS)所需的制動壓力。
b)從多個傳感器和控制輸入捕捉數(shù)據(jù),例如,同時測量汽車速度、加速度、車身和車輪的相對運動,以及轉(zhuǎn)向角度,從而確定主動懸架控制系統(tǒng)的制動水平。
c)向執(zhí)行機構(gòu)發(fā)送數(shù)據(jù)和控制脈沖,例如,發(fā)送占空比可變的PWM信號以合適的周期開關(guān)燃油噴射器或點火電路。
d)與分布式系統(tǒng)中的其他控制器模塊共享數(shù)據(jù),例如,各種子系統(tǒng)周期性地發(fā)送狀態(tài)數(shù)據(jù)到診斷模塊或用戶顯示面板。
另一方面,DSC的CPU支持功能強大的一套DSP指令和靈活的尋址模式,因此能快速完成一系列精確的算術(shù)與邏輯運算。
DSC的主要特性
典型的DSC架構(gòu)具備一些CPU和外設(shè)的特性,因而適用于眾多汽車應(yīng)用。在這一部分,我們將探討這些特性中最具優(yōu)勢的特性,它們是考慮使用DSC架構(gòu)時,最令人關(guān)注的特性。
增強的CPU功能
16位DSC最強有力的功能可能就要屬其強大的數(shù)學(xué)處理能力。一個真正的DSC包含兩個40位累加器,可用來存儲兩個獨立的16位×16位乘法運算的結(jié)果。
大多數(shù)信號處理算法以及許多一般數(shù)學(xué)計算,都包含有動態(tài)"乘積和"的計算。諸如MAC(乘-累加)等特殊指令能夠在一個指令周期內(nèi),求得兩個16位數(shù)的乘積,將結(jié)果添加到累加器,然后從RAM預(yù)取一對數(shù)據(jù)值。因為有兩個累加器,這種架構(gòu)還能在回寫數(shù)據(jù)到一個累加器的同時在另一個累加器中執(zhí)行計算。
40位寬的累加器允許數(shù)據(jù)暫時溢出(當(dāng)在累加器中累加大量數(shù)值時,這種情況時有發(fā)生!)。此外,DSC的CPU還可選擇將值保持在一個允許的范圍內(nèi),這個范圍由一種稱為"飽和"的機制確定,在回寫數(shù)據(jù)到RAM時,這種機制還將對數(shù)據(jù)進行舍入和調(diào)整。DSC還擁有MCU通常不具備的特性,那就是DSC有能力解析小數(shù)形式的數(shù)據(jù)而不總是將數(shù)據(jù)看作整數(shù),這一特性有助于小數(shù)的算術(shù)運算。
除了上述特性以外,DSC架構(gòu)還具有多種數(shù)據(jù)尋址模式,能夠有效地傳送數(shù)據(jù)、支持循環(huán)緩沖區(qū)和位反轉(zhuǎn)尋址,以及零開銷循環(huán)。很明顯,DSC提供了一款非常有效且用戶友好的CPU架構(gòu)。DSC是處理和分析傳感器數(shù)據(jù)、執(zhí)行與控制各種執(zhí)行機構(gòu)相關(guān)的計算以及監(jiān)視汽車系統(tǒng)性能的理想之選。
靈活的中斷結(jié)構(gòu)
DSC架構(gòu)的中斷結(jié)構(gòu)具有極高的靈活性。通常,支持大量的可獨立選擇和設(shè)定優(yōu)先級的中斷源和向量(對于包含多個傳感器和執(zhí)行機構(gòu)的應(yīng)用非常有用!)。中斷延時具有高度的確定性,便于系統(tǒng)開發(fā)人員進行設(shè)計。
運行時自編程(RTSP)
大多數(shù)汽車應(yīng)用需要對常量進行存儲,這些常量可用于根據(jù)環(huán)境條件、傳感器的種類和預(yù)先測得的偏移量校準(zhǔn)傳感器的輸出數(shù)據(jù)。后處理算法也會使用到常量,比如濾波系數(shù)、活塞尺寸和目標(biāo)空氣-燃油比等預(yù)先確定的系統(tǒng)特性參數(shù),以及誤差門限值。若在RAM中存儲這些常量會浪費數(shù)據(jù)存儲器的容量。DSC器件通常有閃存程序存儲器和閃存數(shù)據(jù)EEPROM,這些存儲器可用來可靠而高效地存儲和訪問這些常量。在具有閃存的DSC中,用戶程序甚至可以根據(jù)環(huán)境、數(shù)據(jù)或工作條件的變化實時修改這些常量。在許多系統(tǒng)中,還有可能使用控制器局域網(wǎng)(CAN)等串行通信通道,使用自舉程序算法來重新編寫代碼段或常量。
在線串行編程(ICSP)
閃存DSC允許用戶使用一種稱為"在線串行編程(In-Circuit Serial Programming?)"的方法在現(xiàn)場方便地升級應(yīng)用程序固件。這允許在不同的汽車子系統(tǒng)和不同的工作/環(huán)境條件下重復(fù)使用同一個控制器,此外還允許修正軟件漏洞、校準(zhǔn)傳感器,以及在保證開銷和延時最少的情況下,使功能得到增強。
高分辨率模數(shù)轉(zhuǎn)換器(ADC)
傳感器在許多汽車子系統(tǒng)中的廣泛使用促使具有足夠速度和分辨率的片上ADC成為迫切需要,以便允許對輸入量的快速微小變化進行測量。在閉環(huán)工作中尤其重要,比如要采樣進氣歧管壓力以確定點火的精確時機,從而產(chǎn)生最佳的轉(zhuǎn)矩。分辨率小于12位或非線性誤差大于1個最低有效位(LSB)的ADC無法滿足多數(shù)汽車功能的需要。在某些子系統(tǒng)中,采樣速度是考慮的重點,尤其是在氣囊控制等對安全要求嚴(yán)格的功能中。在其他情況下,主要考慮的可能是同時測量不同物理量的能力。例如,主動懸架系統(tǒng)可能需要同時獲取對汽車速度、加速度、車身/車輪相對運動和轉(zhuǎn)向角度的采樣。應(yīng)根據(jù)模塊所需的ADC功能選擇合適的DSC器件。
脈寬調(diào)制(PWM)
汽車系統(tǒng)中使用的一些閥門和執(zhí)行機構(gòu)由占空比可變的脈沖控制。PWM控制功能的兩個常見實例為:燃油噴射閥,該閥門會在脈沖有效時開啟以控制噴射到汽缸中的燃油量;以及點火發(fā)生器,當(dāng)脈沖下降為低電壓電平時,產(chǎn)生火花。DSC支持自動產(chǎn)生具有指定波形和極性的PWM信號。動力轉(zhuǎn)向、自動變速器和空調(diào)等子系統(tǒng)均包含復(fù)雜的電機控制算法。有些DSC具備多種片內(nèi)外設(shè)來支持此類高級PWM算法。
正交編碼器接口(QEI)
精確而快速地測量汽車以及其中的各種機械構(gòu)件的速度和位置對于有效控制汽車運行的許多方面非常重要。例如,防碰撞系統(tǒng)需要測量速度和加速度。通常選擇正交編碼器(如光電編碼器)作為這一測量的傳感器。有些DSC包含內(nèi)部正交編碼器接口,能夠在軟件開銷最少的情況下有效解碼正交編碼器產(chǎn)生的信號。
控制器局域網(wǎng)(CAN)
由于一輛汽車包含許多處理器來執(zhí)行各種各樣的功能,因此為了共享傳感器和控制信息,不同子系統(tǒng)之間有效而可靠的通信就非常重要。模塊之間相互通信的另一個優(yōu)點是它不需要用多個傳感器對同一個物理量進行重復(fù)測量,此外還能在系統(tǒng)級進行有效的監(jiān)視和診斷。例如,電池監(jiān)視的功能,MCU不僅需要不時地測量電池的電壓,還要將控制信號發(fā)送給各種其他模塊以控制它們的開關(guān),從而優(yōu)化電池的使用并確保汽車啟動。CAN總線標(biāo)準(zhǔn)在汽車網(wǎng)絡(luò)的通信標(biāo)準(zhǔn)中處于重要地位。許多DSC包含一個或多個片內(nèi)CAN控制器,使之自然而然地成為了應(yīng)用在汽車設(shè)計中的不二選擇。在汽車網(wǎng)絡(luò)中使用DSC,借助軟件對高層協(xié)議(如,符合OSEK標(biāo)準(zhǔn)的實時操作系統(tǒng)和CAN應(yīng)用層實現(xiàn)方案)的支持,還可實現(xiàn)其他額外功能。
典型應(yīng)用
下面列出了數(shù)字信號控制器在汽車中的典型應(yīng)用。
電子動力轉(zhuǎn)向
電子離合器和變速箱控制
防翻滾和穩(wěn)定性控制
車廂噪聲消除
高級電池監(jiān)視系統(tǒng)
氣囊控制
點火控制
泊車傳感器
燃油壓力傳感器
溫度控制
引擎爆震檢測
引擎熄火檢測
自適應(yīng)導(dǎo)航控制
燃料電池
車內(nèi)娛樂設(shè)施
車載免提電話套件
基于人體生物學(xué)的無鑰門禁
結(jié)論
隨著汽車系統(tǒng)對功能性、連通性和數(shù)學(xué)運算能力的要求越來越高,如Microchip dsPIC30F系列等16位數(shù)字信號控制器將是用在許多汽車子系統(tǒng)中的處理器架構(gòu)的理想之選。越來越多的新穎而強大的功能,包括新興的混合動力(Hybrid)技術(shù)和燃料電池技術(shù),正快速引入到汽車設(shè)計領(lǐng)域中。這進一步加深了對DSC所具有的功能和多樣性的需求。OSEK、基于CAN的協(xié)議棧、TCP/IP以及預(yù)先打包的DSP算法等軟件工具的存在將進一步推進此類架構(gòu)在大量汽車應(yīng)用中的使用。