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

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

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亚洲国产精品_日韩亚洲一区二区
亚洲综合国产| 亚洲国产精品久久久久秋霞蜜臀| 国产亚洲欧美一区二区| 国产精品扒开腿做爽爽爽软件| 欧美精品观看| 欧美电影电视剧在线观看| 久久久久久久一区二区| 欧美中文字幕视频| 欧美在线国产精品| 欧美一级淫片播放口| 香港久久久电影| 欧美一区二区三区久久精品茉莉花| 亚洲一线二线三线久久久| 亚洲一区二区精品在线观看| 亚洲一区视频在线观看视频| 亚洲一区二区三区四区中文| 亚洲影视在线| 小处雏高清一区二区三区| 欧美在现视频| 久久精精品视频| 久久久综合网站| 麻豆久久精品| 欧美国产日产韩国视频| 欧美激情二区三区| 欧美日韩免费网站| 欧美性感一类影片在线播放 | 国产一区在线播放| 精品99视频| 最新成人在线| 亚洲欧美日韩综合| 99热在这里有精品免费| 国产精品99久久久久久www| 亚洲图片你懂的| 亚洲男人的天堂在线| 午夜精品久久久久久久男人的天堂| 欧美一级二级三级蜜桃| 久久午夜电影网| 欧美高清在线一区二区| 欧美新色视频| 国产午夜精品理论片a级探花| 国产一区在线播放| 亚洲激情另类| 国产精品99久久久久久久vr| 欧美专区第一页| 99精品欧美一区二区三区| 亚洲欧美一区二区原创| 久久久精品一品道一区| 欧美激情综合色| 国产精品久久夜| 激情五月综合色婷婷一区二区| 亚洲欧洲在线播放| 亚洲欧美日韩第一区| 久久国产精品黑丝| 一本一本a久久| 亚洲欧美在线另类| 美女被久久久| 国产精品久久久久77777| 国语自产在线不卡| 日韩视频二区| 久久精品久久99精品久久| 99视频有精品| 久久成人免费网| 欧美国产日韩一区二区三区| 欧美日韩国产麻豆| 中国女人久久久| 久久精品99久久香蕉国产色戒| 欧美国产日本| 国产一区二区剧情av在线| 亚洲日本中文字幕| 亚洲自拍偷拍网址| 亚洲精品日韩综合观看成人91| 性感少妇一区| 欧美日韩精品二区第二页| 国产一区二区日韩| 一区二区三区欧美亚洲| 亚洲韩国一区二区三区| 午夜在线视频观看日韩17c| 欧美精品日韩三级| 狠狠色狠狠色综合日日91app| 一本色道久久99精品综合| 亚洲国产欧美一区二区三区同亚洲 | 亚洲综合导航| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产日本欧美一区二区三区| 亚洲人成绝费网站色www| 欧美一区二区精品久久911| 一区二区三区视频在线| 美乳少妇欧美精品| 国产日韩欧美麻豆| 99国产精品99久久久久久粉嫩| 亚洲黄色有码视频| 久久久久久电影| 国产精品网站在线观看| 一道本一区二区| 亚洲美女毛片| 欧美jjzz| 精品999成人| 欧美影院成年免费版| 午夜精品福利一区二区三区av| 欧美日韩视频一区二区三区| 91久久精品日日躁夜夜躁国产| 久久精品视频在线观看| 国产精品九九| 亚洲精品乱码久久久久久| 久久狠狠久久综合桃花| 国产精品久久久久一区二区三区共| 亚洲激情精品| 亚洲精品久久7777| 免费的成人av| 亚洲第一黄网| 亚洲国产综合91精品麻豆| 久久久亚洲国产美女国产盗摄| 国产性猛交xxxx免费看久久| 欧美一级二区| 久久精品国产77777蜜臀| 国产亚洲制服色| 久久都是精品| 久久久久久久一区| 国产真实久久| 亚洲国产精品精华液网站| 久久综合一区二区三区| 在线成人激情视频| 亚洲黄一区二区| 欧美极品欧美精品欧美视频| 日韩视频在线一区二区三区| 在线视频一区二区| 国产精品va在线| 亚洲一区二区三区四区中文 | 欧美日韩亚洲一区二| 日韩午夜精品| 亚洲在线观看免费视频| 国产精品欧美日韩| 亚洲欧美日韩综合国产aⅴ| 久久成人精品| 一区久久精品| 日韩视频免费看| 国产精品豆花视频| 午夜影院日韩| 快she精品国产999| 亚洲欧洲精品一区二区三区不卡| 一区二区免费在线视频| 国产精品v亚洲精品v日韩精品| 亚洲欧美日本日韩| 久久麻豆一区二区| 亚洲国产成人在线| 亚洲亚洲精品在线观看| 国产色婷婷国产综合在线理论片a| 亚洲第一区在线| 欧美日本亚洲视频| 亚洲欧美日韩国产成人| 久久综合激情| 亚洲美女免费视频| 欧美一级淫片aaaaaaa视频| 激情欧美丁香| 亚洲视频在线观看一区| 国产午夜精品久久久久久免费视 | 日韩午夜一区| 欧美在线免费视屏| 亚洲成人在线网| 亚洲性图久久| 狠狠色丁香久久婷婷综合丁香| 夜夜夜久久久| 国产午夜精品久久久久久久| 亚洲美女av电影| 国产精品日日摸夜夜摸av| 亚洲黄色性网站| 国产精品久久久久永久免费观看| 久久av最新网址| 欧美日韩91| 午夜久久资源| 欧美日韩高清一区| 欧美一区二区在线播放| 欧美区一区二区三区| 欧美一区二区成人| 欧美精品一区二区三| 欧美一级在线亚洲天堂| 欧美全黄视频| 亚洲成在人线av| 国产精品国码视频| 亚洲激情一区二区三区| 国产精品美女黄网| 亚洲精品美女久久7777777| 国产精品一区二区久久精品| 亚洲欧洲一区二区三区| 国产美女扒开尿口久久久| 99这里只有精品| 韩日欧美一区二区| 亚洲一区在线观看视频| 亚洲黄色毛片| 久久久久久婷| 亚洲欧美日韩精品一区二区| 欧美日本韩国| 亚洲国产精品美女| 国产欧美亚洲一区| 亚洲网在线观看| 亚洲国产综合在线| 久久久免费av| 亚洲免费视频成人| 欧美日韩一区精品| 亚洲毛片在线观看.|