《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 優先級反序算法在汽車電子控制平臺設計中的應用

優先級反序算法在汽車電子控制平臺設計中的應用

2009-07-14
作者:冷 靜1,耿劍鋒1,宋雪樺1,

??? 摘 要: 為了實現汽車應用軟件在不同開發平臺上的無縫連接,將μC/OS-II操作系統移植到飛思卡爾芯片MC9S12DP256B微控制器上,構建了一個開放的微控制器硬件控制平臺;同時與汽車業界提出的OSEK/VDX標準相匹配,采用優先級反序算法設計了基于μC/OS-II微內核結構的汽車專用嵌入式操作系統。通過測試表明,系統為應用程序提供了穩定的運行平臺,優化了汽車控制性能。
??? 關鍵詞: μC/OS-II微內核;OSEK/VDX標準;優先級;嵌入式

?

?? 隨著科技的進步,人們對汽車的性能指標要求越來越高,由此汽車電子化程度也在不斷提高,使得當代汽車電控單元從硬件到軟件變得更加復雜,迫切需要汽車嵌入式操作系統開發平臺協助完成各種電控單元的設計及開發。μC/OS-II微內核代碼簡潔,實時性和專用性強,作為汽車專用嵌入式操作系統的微內核,移植到芯片MC9S12DP256B[1]微控制器上,構建一個開放的汽車電子微控制器硬件控制平臺, 在此硬件基礎上通過優先級反序算法設計符合汽車業界OSEK/VDX規范標準的汽車電子嵌入式操作系統,使得該操作系統在可移植性、可靠性以及擴展性方面有很大的提高。
??? 本文針對μC/OS-II[2]微內核設計符合OSEK/VDX標準的汽車電子嵌入式操作系統,并進行了功能測試,系統運行穩定。
1? OSEK/VDX規范的研究
??? 為了屏蔽不同電控單元(ECU)的接口特性,減少開發費用和時間,實現軟件的可移植性、可擴展性而提出的OSEK/VDX開放式系統及接口規范[3],主要包括4部分:(1)操作系統(OS)規范,該規范定義操作系統內核的實現機制和應用編程接口(API);(2)通信(COM)規范。實現各個電控單元間和某個電控單元內的數據信息交換,即外部與內部通信;(3)網絡管理(NM)規范。電控單元通過串行數據通信鏈連接成網絡,網絡管理規范為保證通信網的安全性與可靠性,提供了確保網絡功能的接口函數;(4)實現語言(OIL)。根據應用軟件的實際需要配置操作系統及通信機制,以縮減最終生成可執行文件的體積。操作系統、通信管理和網絡管理是3個可以獨立存在的模塊,三者之間關系如圖1所示。


??? OSEK OS是針對汽車應用特點而專門制定的一個小型RTOS規范,具有以下特點:
??? (1)可移植性,所有API都是標準化的并且在功能上都有明確的定義。
  (2)可擴展性,OSEK OS要求通用于各種類型的ECU,因此一方面系統要高度地模塊化, 同時能進行靈活的配置。
  (3)汽車應用需要的可靠性、實用性等。由于采用微內核結構,其微內核部分代碼數量小, 各個部分之間關系不是很復雜, 可以保證代碼的正確性。當增加操作系統功能時, 只需在核外調試和運行, 不會危及到微核, 整個系統的安全系數也比較高。
2?符合OSEK/VDX規范的優先級反序算法
  OSEK OS與μC/OS-II內核在優先級順序上采取不同使用方法。在μC/OS-II內核的64個優先級中,數字越小表明級別越高。而OSEK標準相反,要求數字越大級別越高。為了實現符合OSEK汽車電子國際標準的汽車嵌入式系統,本文針對μC/OS-II內核,設計了符合OSEK OS標準中關于優先級的要求。
??? 運行最高優先級任務的實現步驟[4]:首先使已經創建的任務進入就緒表,然后查詢就緒表中優先級最高的任務,最后通過調度函數運行該最高優先級任務。在μC/OS-II操作系統中,定義了2個數組OSMapTbl[ ]和OSUnMapTbl[ ]以及1張就緒表。就緒表中有2個變量:OSRdyTbl[ ]和OSRdyGrp。在OSRdyGrp中,任務按優先級分組,由于μC/OS-II操作系統的優先級定義為64級,所以8個任務定為一組。OSRdyGrp中的每一位表示8組任務中每一組是否有進入就緒態的任務。任務進入就緒態時,OSRdyTbl[ ]中的相應元素的相應位置為1。OSRdyGrp和OSRdyTbl[ ]之間的關系為:當OSRdyTbl[i](0≤i≤7)中的任何1位是1時,OSRdyGrp的第i位置1。任務優先級prio的低3位確定任務在就緒表OSRdyTbl[ ]中的位置,緊接著的3位表示任務占據OSRdyGrp的第幾位。
  在μC/OS-II中,使任務進入就緒態的方法是:
??? OSRdyGrp|=OSMapTbl[prio>>3];
??? OSRdyTbl[prio>>3]|=OSMapTbl[prio&0 x 07]
??? 其中,(prio>>3)表示優先級在變量OSRdyGrp中的位置;(prio&0x07)表示優先級在變量OSRdyTbl[ ]中的位置。|=表示將OSMapTbl[ ]的值與OSRdyGrp按位“或”,該方法中,第1句的含義是使就緒表變量OSRdyGrp置位, 第2句則使就緒表變量OSRdyTbl[ ]置位。
??? 任務進入就緒態以后,操作系統根據應用程序,通過調度函數調用已經就緒的任務。由于CPU的使用權只能被一個任務占有,此時需要找出就緒表中優先級最高的任務投入運行,這一過程由如下代碼表示:
??? y=OSUnMapTbl[OSRdyGrp];
??? x=OSUnMapTbl[OSRdyTbl[y]];
??? prio=(y<<3)+x;
  OSUnMapTbl[ ]表用來查找已經就緒的優先級最高的任務。利用此表,可以不用遍歷所有就緒的任務而直接找到就緒了的最高優先級任務,節省系統調度時間,提高CPU利用率,增強內核實時性。在該代碼段中,第1句表示找出就緒任務中最高優先級所處變量OSRdyGrp中的位置碼y, 第2句則找出了該優先級在變量OSRdyTbl[ ]中的位置碼x,第3句根據y與x求出就緒表中任務的最高優先級。
  當任務運行完畢(即任務進入掛起、等待狀態時)或者任務被刪除,需要將任務從就緒表中刪除。具體實現方法:
??? if((OSRdyTbl[prio>>3]&~OSMapTbl[prio&0x07])==0)
??? OSRdyGrp &=~OSMapTbl[prio>>3]
??? 針對以上μC/OS-II操作系統對優先級使用的描述,本文提出了一種將優先級反序的方法,用來與OSEK/VDX的操作系統規范相對應。
??? 首先,將就緒表中的內容反序,OSMapTbl[ ]的值保持不變,結果如圖2所示。


??? 同時把任務進入就緒態的方法修改為:
??? OSRdyGrp|=OSMapTbl[(~prio)&0 x 3 F>>3];
??? OSRdyTbl[(OSMapTbl)>>3]|=OSMapTbl[((~prio)&0 x 3 F)& 0 x 07];
  其次,在OSUnMapTbl[ ]的值維持原狀的基礎上,把找出就緒態中優先級最高任務的方法做如下改動:
??? y=OSUnMapTbl[OSRdyGrp];
??? x=OSUnMapTbl[OSRdy[y]];
??? prio=((7-y)<<3)+x;
  最后,任務退出就緒狀態所用的方法也需要改變:
??? if((OSRdyTbl[((~prio)&0 x 3 F)>>3]&=~OSMapTbl[((~prio)& 0 x 3 F)& 0 x 0 7])==0)
??? OSRdyGrp&=~OSMapTbl[((~prio)& 0 x 3 F)>>3]
3? 測試
??? 為了驗證系統的可靠性,使用以MC9S12DP256B芯片為主的電控單元開發板、背景調試模式的BDM調試器[5]和示波器對上面算法的修改做了測試,利用Codewarrior編譯器將操作系統下載到開發板上。測試實驗環境如圖3所示。

?

3.1? 測試方案
??? 首先在主函數中創建一個優先級為60的MainTask任務,然后調用OSStart()函數使操作系統開始運行。在MainTask里,先對時鐘進行初始化,并創建2個優先級分別為55和50的任務Taska和Taskb,在Taska中設置PORTB_BIT0=1、PORTB_BIT0=0,并持續50萬個計數值。Taskb中設置PORTB_BIT1=1。在MainTask任務循環里,先設置PORTB_BIT2=1,再通過OSTimeGet()函數為自己設置計數器,當計數器達到預定值時,將自己掛起。
3.2? 測試結果
??? 通過觀察開發板上相對于PORTB口的指示燈,發現2燈(對應PORTB_BIT2位)先滅(開發板上端口置1表示燈滅,因為鎖存處于一直滅掉狀態),之后0燈(對應PORTB_BIT0位)滅亮交替,而1燈(對應PORTB_BIT1位)一直沒有變化(沒有執行到該任務,優先級最低)。測試結果如圖4所示。圖中示波器1通道表示Taska對應的輸出口PORTB_BIT0,保持高電平的2μs是執行PORTB_BIT0=1這一語句所用的時間,保持低電平的3.6 μs是執行持續50萬個計數值得PORTB_BIT0=0語句;示波器2通道表示MainTask對應的輸出口PORTB_BIT2。測試結果的波形顯示與端口燈的顯示情況完全符合,說明優先級反序算法是正確的。

?

??? 本文實現了優先級符合OSEK/VDX標準的汽車電子嵌入式操作系統設計,實際測試表明,該系統運行穩定,能夠為應用程序提供良好的運行環境,適應于要求反應可靠的汽車控制系統,具有良好的應用前景。

參考文獻
[1] 楊國田,白焰.Motorola 68HC12系列微控制器原理、應用與開發技術[M].北京:中國電力出版社,2003.
[2] LABROSSE J J.嵌入式實時操作系統μC/OS-Ⅱ(第2版)[M].邵貝貝,譯.北京:北京航空航天大學出版社,2003.
[3] 國際標準化組織汽車委員會.OSEK/VDX specifications.ISO 17356-2-2005,汽車電子開放式系統及接口規范[S].2005.
[4] 任哲. 嵌入式實時操作系統μC/OS-II原理及應用[M]. 北京:北京航空航天大學出版社,2005.
[5] 姚冉中,潘宏俠. μC/OS-II在TMS320F2812上的移植和研究[J].計算機工程與設計,2007,140(2):162-163.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久久夜精品| 久久一区二区三区超碰国产精品| 亚洲欧洲日本专区| 国产精品久久久久久久一区探花| 久久久久久国产精品mv| 一区二区三区高清| 亚洲高清不卡| 午夜在线视频观看日韩17c| 99国产精品99久久久久久| 国内成人精品2018免费看| 欧美新色视频| 欧美日韩国产精品自在自线| 久久综合激情| 欧美亚洲免费在线| 亚洲婷婷综合久久一本伊一区| 亚洲国产激情| 欧美一进一出视频| 99pao成人国产永久免费视频| 精品成人一区二区三区四区| 欧美午夜一区二区三区免费大片 | 一区二区三区欧美激情| 久久精品国产99国产精品澳门| 亚洲一区二区三区国产| 最近中文字幕日韩精品 | 欧美一区二区精品| 亚洲香蕉成视频在线观看| 亚洲免费高清| 国产精品男gay被猛男狂揉视频| 亚久久调教视频| 亚洲主播在线播放| 中文日韩在线视频| 一区二区三区日韩精品| 亚洲激情成人网| 亚洲精品中文在线| 午夜精品www| 一本一本a久久| 亚洲精品视频在线看| 亚洲福利视频一区二区| 欧美一区二区三区视频| 小黄鸭视频精品导航| 亚洲欧美另类中文字幕| 日韩视频免费在线观看| 亚洲久久一区二区| 亚洲精品影院在线观看| 亚洲人成在线影院| 99亚洲一区二区| 亚洲乱码国产乱码精品精天堂| 国产一区清纯| 尤妮丝一区二区裸体视频| 激情小说另类小说亚洲欧美 | 欧美一区二区日韩| 欧美一级理论片| 欧美中文字幕在线播放| 亚洲第一页中文字幕| 亚洲黄色在线视频| 99在线观看免费视频精品观看| 日韩一级黄色av| 一区二区三区三区在线| 亚洲尤物视频网| 午夜亚洲视频| 久久一二三国产| 欧美精品一区二区三| 欧美国产欧美亚洲国产日韩mv天天看完整 | 一区二区视频免费完整版观看| 在线观看三级视频欧美| 亚洲精品日韩在线| 亚洲一区二区三区四区视频 | 欧美一区视频在线| 亚洲欧洲日产国码二区| 一区二区三区日韩在线观看| 午夜一区二区三视频在线观看| 久久久久9999亚洲精品| 欧美高清视频在线| 国产精品国产一区二区| 国内精品一区二区| 亚洲精品日韩久久| 在线观看亚洲一区| 日韩亚洲不卡在线| 欧美亚洲日本国产| 日韩亚洲国产欧美| 欧美一区二区三区啪啪| 久久亚洲精品中文字幕冲田杏梨| 欧美成人首页| 国产精品久久久999| 激情综合激情| 亚洲视频一二| 亚洲电影免费在线观看| 亚洲视频综合| 久久久久久久欧美精品| 欧美日韩高清在线一区| 国产欧美精品国产国产专区| 国产一区二区精品久久| 亚洲日本aⅴ片在线观看香蕉| 一区二区三区你懂的| 亚洲黄色免费| 一区二区三区四区国产| 久久成人精品电影| 国产精品99久久久久久人| 欧美一区午夜精品| 欧美精品二区三区四区免费看视频| 亚洲天堂网在线观看| 亚洲精品美女91| 小处雏高清一区二区三区| 性做久久久久久| 免费中文日韩| 国产模特精品视频久久久久| 99伊人成综合| 亚洲精品欧美日韩专区| 欧美在线精品一区| 欧美人牲a欧美精品| 在线看片欧美| 欧美一二三区精品| 在线亚洲欧美视频| 亚洲制服丝袜在线| 一本久道久久久| 老牛国产精品一区的观看方式| 国产精品视频yy9299一区| 亚洲美女毛片| 亚洲乱码精品一二三四区日韩在线 | 国产一区二区三区精品久久久 | 亚洲国产精品欧美一二99| 欧美在线视频一区二区三区| 亚洲欧美日韩中文播放| 欧美日韩一区二区三区在线看| 亚洲高清视频在线观看| 亚洲黄色在线| 欧美α欧美αv大片| 黄色一区二区三区| 久久精品色图| 蜜桃av综合| 1000部国产精品成人观看 | 91久久精品国产91性色| 女人天堂亚洲aⅴ在线观看| 一区久久精品| 亚洲狠狠婷婷| 欧美激情视频一区二区三区不卡| 亚洲国产毛片完整版| 亚洲乱码精品一二三四区日韩在线 | 欧美成人免费全部| 亚洲欧洲精品一区二区三区波多野1战4| 亚洲欧洲另类| 欧美精品videossex性护士| 亚洲激情精品| 中文高清一区| 亚洲国产另类久久精品| 日韩亚洲欧美在线观看| 美女网站久久| 亚洲福利视频一区| 亚洲精品一区二区在线| 欧美激情视频一区二区三区在线播放 | 亚洲欧美日韩另类| 国产亚洲永久域名| 香蕉成人啪国产精品视频综合网| 欧美一区二区性| 国产真实乱偷精品视频免| 久久国内精品视频| 欧美大片专区| 亚洲欧洲一区二区在线播放| 午夜一级在线看亚洲| 久久久www成人免费无遮挡大片 | 亚洲国产另类 国产精品国产免费| 夜夜嗨av色一区二区不卡| 国产精品久久久久av| 亚洲欧美欧美一区二区三区| 久久视频国产精品免费视频在线| 亚洲国产精品小视频| 亚洲男女自偷自拍图片另类| 亚洲最黄网站| 夜夜爽av福利精品导航| 国产精品久久久久9999高清| 小黄鸭精品aⅴ导航网站入口| 麻豆成人91精品二区三区| 亚洲精品视频在线看| 午夜在线视频观看日韩17c| 精久久久久久| 中文在线一区| 国产一区二区三区在线观看免费 | 欧美激情一区二区三区全黄| 中文精品99久久国产香蕉| 欧美在线999| 亚洲国产一区二区三区高清| 亚洲在线网站| 亚洲国产精品小视频| 欧美日本高清一区| 午夜精品久久久久久久99黑人| 男人的天堂成人在线| 在线亚洲美日韩| 蜜桃久久av| 亚洲免费一级电影| 欧美国产日韩一区二区在线观看| 亚洲男人的天堂在线| 欧美激情一区二区三区在线视频观看| 亚洲一区二区三区免费观看| 男人的天堂亚洲| 欧美一级二级三级蜜桃| 欧美日韩视频专区在线播放| 久久精品国产欧美激情| 欧美一区二区日韩| 欧美激情视频免费观看| 亚洲综合电影|