基于OSEK/VDX的電動(dòng)助力系統(tǒng)設(shè)計(jì)
3 EPS軟件設(shè)計(jì)
本文引用地址:http://www.ex-cimer.com/article/86793.htm隨著嵌入式應(yīng)用進(jìn)一步復(fù)雜化和對(duì)實(shí)時(shí)性、可靠性要求的提高,為了合理調(diào)度多種任務(wù)并利用系統(tǒng)資源,基于嵌入式實(shí)時(shí)操作系統(tǒng)進(jìn)行嵌入式軟件設(shè)計(jì)逐漸成為了嵌入式系統(tǒng)設(shè)計(jì)開發(fā)的主流。當(dāng)前嵌入式實(shí)時(shí)操作系統(tǒng)有數(shù)百種,它們各具特色。開放源碼的嵌入式實(shí)時(shí)操作系統(tǒng)在成本和技術(shù)上具有獨(dú)特的優(yōu)勢(shì),并占有越來越重要的地位。本文選擇開源的嵌入式實(shí)時(shí)操作系統(tǒng)PICOS18作為EPS的軟件開發(fā)平臺(tái)。PICOS18是按照OSEK/VDX標(biāo)準(zhǔn)實(shí)現(xiàn)的實(shí)時(shí)操作系統(tǒng)。PICOS18是一個(gè)多任務(wù)可剝奪型微實(shí)時(shí)內(nèi)核,非常小巧,占程序空間(ROM)小于1KB,占數(shù)據(jù)空間(RAM)僅為7B,系統(tǒng)代碼容量及運(yùn)行所需的ROM和RAM也非常少;提供了任務(wù)管理、定時(shí)器管理、事件管理、中斷管理等功能;基于優(yōu)先級(jí)進(jìn)行任務(wù)調(diào)度,具有16個(gè)優(yōu)先級(jí),系統(tǒng)占用1個(gè),用戶可創(chuàng)建15個(gè)任務(wù),每個(gè)任務(wù)最多還可以擁有8個(gè)事件[4].
3.1 應(yīng)用軟件開發(fā)
嵌入式實(shí)時(shí)操作系統(tǒng)將面向功能的應(yīng)用開發(fā)轉(zhuǎn)化為面向任務(wù)的應(yīng)用開發(fā),因此軟件開發(fā)的過程就是將應(yīng)用系統(tǒng)按照功能細(xì)分為多個(gè)任務(wù),然后實(shí)現(xiàn)每個(gè)任務(wù),并為任務(wù)確定合適的優(yōu)先級(jí);對(duì)于實(shí)時(shí)性要求高的操作,需要編寫相關(guān)的中斷服務(wù)程序。
根據(jù)EPS的工作原理,可分為8個(gè)任務(wù)。
?。?) Task1——車速信號(hào)采集
擴(kuò)展任務(wù),用于計(jì)算車速。上電運(yùn)行后Task1處于等待狀態(tài), 等待車速計(jì)算事件EventSpeed.利用定時(shí)器/計(jì)數(shù)器TMR0模塊當(dāng)計(jì)數(shù)器溢出時(shí)(數(shù)量的轉(zhuǎn)速信號(hào)脈沖后)產(chǎn)生中斷,進(jìn)入轉(zhuǎn)速中斷服務(wù)程序,記錄脈沖周期總時(shí)間,然后設(shè)置事件EventSpeed,激活Task1.這時(shí)Task1處于就緒狀態(tài),在操作系統(tǒng)調(diào)度機(jī)制(完全搶占式)的管理下,等到就緒隊(duì)列中優(yōu)先級(jí)高于Task1的任務(wù)都運(yùn)行完成時(shí),Task1運(yùn)行,根據(jù)所記錄的脈沖時(shí)間和脈沖個(gè)數(shù),計(jì)算出車速,并進(jìn)行濾波。執(zhí)行完后,激活Task2,清除事件EventSpeed,Task1又處于等待狀態(tài)。
?。?) Task2——扭矩信號(hào)采集
基本任務(wù),用于采集扭矩信號(hào)。該任務(wù)由Task1激活,執(zhí)行頻率與Task1相同。因?yàn)檐囁傩盘?hào)和扭矩信號(hào)是EPS系統(tǒng)最重要的兩個(gè)參數(shù),所以必須使這兩個(gè)參數(shù)及時(shí)地更新,以保證助力模式的選擇和助力大小的確定得到及時(shí)準(zhǔn)確的控制。
?。?) Task3——電流反饋信號(hào)采集
基本任務(wù),用于采集電機(jī)反饋電流。該任務(wù)由Task5激活,系統(tǒng)只有在助力控制時(shí)才會(huì)激活此任務(wù)。該參數(shù)與目標(biāo)電流的差值,通過PID調(diào)節(jié)器的控制,使電機(jī)迅速提供相應(yīng)的扭矩,達(dá)到助力的目的。
?。?) Task4——故障診斷
擴(kuò)展任務(wù),用于故障的監(jiān)測(cè)和診斷。上電運(yùn)行后,等待消息MsgSpeedErr,確定車速正常;等待消息MsgVoltErr,確定電壓正常;等待消息MsgTorqueErr,確定扭矩正常。一旦發(fā)生故障,該任務(wù)將立即斷開繼電器,使轉(zhuǎn)向系統(tǒng)處于機(jī)械轉(zhuǎn)向狀態(tài),避免事故發(fā)生。
?。?) Task5——助力模式選擇
基本任務(wù),用于選擇助力方式以及確定助力控制方式下的目標(biāo)電流。此任務(wù)由Task2激活,通過車速和扭矩的大小,判斷助力模式,在助力控制下通過助力特性曲線得到目標(biāo)電流。此任務(wù)的執(zhí)行次數(shù)與Task1和Task2相同,以保證助力方式和助力大小實(shí)時(shí)準(zhǔn)確。
?。?) Task6——助力控制
基本任務(wù),助力控制,由Task3激活。通過Task5得到的目標(biāo)電流,以及Task3電機(jī)反饋電流,采用PID調(diào)節(jié)器進(jìn)行閉環(huán)控制,最后通過PWM脈寬調(diào)制控制助力電機(jī)。
(7) Task7——回正控制
基本任務(wù),回正控制,由Task5激活。當(dāng)汽車車速很高時(shí),使電機(jī)兩端短路,產(chǎn)生回正阻尼,減小回正超調(diào);當(dāng)汽車處于低速時(shí),使電機(jī)兩端迅速斷路,減小電機(jī)阻力,使轉(zhuǎn)向迅速回正。
(8) Task8——阻尼控制
基本任務(wù),阻尼控制,由Task5激活。阻尼控制用于高速時(shí)的各種狀態(tài)(回正、轉(zhuǎn)向和直線行駛)。回正時(shí),阻尼控制可減小系統(tǒng)超調(diào);轉(zhuǎn)向時(shí),可增加阻力,使駕駛員得到較好的路感;直線行駛時(shí),可減小路面對(duì)方向盤的沖擊。
3.2 任務(wù)優(yōu)先級(jí)
PICOS18采用占先式調(diào)度方式,即所有任務(wù)都是可占先的,每個(gè)任務(wù)都有一個(gè)確定的唯一的優(yōu)先級(jí),任務(wù)越重要優(yōu)先級(jí)越高。由于助力控制(Task6)任務(wù)必須在合適的時(shí)刻運(yùn)行,所以Task6優(yōu)先級(jí)最高,回正控制(Task7)、阻尼控制(Task8)次之,其次是故障診斷任務(wù)(Task4),其余任務(wù)優(yōu)先級(jí)按其激活的執(zhí)行順序確定。Task4在開始運(yùn)行時(shí)處于等待狀態(tài)如未監(jiān)測(cè)到不正常信號(hào)則不再執(zhí)行。Task1、Task2和Task5在按順序執(zhí)行完一個(gè)循環(huán)后,繼續(xù)響應(yīng)轉(zhuǎn)速中斷,重新執(zhí)行。這種調(diào)度方式不僅能采集到最新的車速信號(hào)和扭矩信號(hào),使EPS系統(tǒng)實(shí)時(shí)準(zhǔn)確地提供助力,還能提高CPU利用率,充分利用硬件資源。
3.3 任務(wù)配置(OIL)
PICOS18通過taskdesc.c定義任務(wù)的各個(gè)參數(shù),并且是用OSEK/VDX規(guī)范中的OIL(OSEK/VDX的實(shí)現(xiàn)語言,類似于一個(gè)C結(jié)構(gòu)定義)編寫的[5].由于PICOS18沒有提供GUI用于任務(wù)的配置,因此只能逐句編寫。任務(wù)的參數(shù)定義結(jié)構(gòu)如下:
4 結(jié)論
本文分析了EPS系統(tǒng)的結(jié)構(gòu)、工作原理和3種控制方式。通過PIC18F458單片機(jī)的ECCP模塊控制電機(jī),實(shí)現(xiàn)了EPS系統(tǒng)在各種情況下的助力方式。采用嵌入式實(shí)時(shí)操作系統(tǒng),不僅提高了CPU的利用率,確保了EPS系統(tǒng)的實(shí)時(shí)性要求,還提高了系統(tǒng)運(yùn)行的穩(wěn)定性、可靠性以及移植性。
OSEK/VDX是汽車電子開發(fā)的國(guó)際性標(biāo)準(zhǔn),采用OSEK/VDX規(guī)范開發(fā)的實(shí)時(shí)系統(tǒng)能夠提高軟件模塊的移植效率、實(shí)現(xiàn)軟件模塊的重復(fù)利用及在不同電子控制單元之間的通信。采用OSEK/VDX進(jìn)行汽車電控單元開發(fā)已成為發(fā)展趨勢(shì)。
參考文獻(xiàn)
[1] 胡建軍,李彤,龔為倫,等。汽車轉(zhuǎn)向技術(shù)進(jìn)展分析[J].液壓與氣動(dòng),2006(12):17-20.
[2] 陳卓,熊忠陽,李銀國(guó)。基于OSEK/VDX操作系統(tǒng)的任務(wù)管理機(jī)制設(shè)計(jì)[J].計(jì)算機(jī)工程。2006,12(36):82-84.
[3] 羅玉濤?,F(xiàn)代汽車電子控制技術(shù)[M].北京:國(guó)防工業(yè)出版社,2006:174-202.
[4] 龔黎明,辜承林。基于OSEK/VDX標(biāo)準(zhǔn)的嵌入式實(shí)時(shí)操作系統(tǒng)PICOS18[J].電子技術(shù)。 2004(5):10-13.
[5] OSEK/VDX.OSEK Implementation Language Version 2.5. 2004[OL].http://www.osekvdx.org.
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論