新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 基于μCOS-Ⅱ系統(tǒng)的智能尋跡模型車的設計與實現(xiàn)

        基于μCOS-Ⅱ系統(tǒng)的智能尋跡模型車的設計與實現(xiàn)

        作者: 時間:2011-01-03 來源:網(wǎng)絡 收藏

        2 軟件設計與實現(xiàn)
        為使智能車在環(huán)境改變時做出更為及時準確的響應,在程序設計時應用μC/OS-Ⅱ。μC/OS-Ⅱ適合小型控制,具有執(zhí)行效率高、占用空間小、實時性能優(yōu)良和可擴展性強等特點,最小內(nèi)核可編譯至2 KB。μC/OS-Ⅱ的代碼是用C語言編寫,可以直接移植到有C語言編譯器的處理器上。移植主要都集中在多任務切換的實現(xiàn)上,由于這部分代碼用于保存和恢復CPU現(xiàn)場(即寫/讀相關寄存器),不能用C語言,只能使用匯編語言完成,即編寫OS CPU A.S文件。另外還需要修改體系結(jié)構相關的OS CPU.H文件和用戶規(guī)定任務棧初始化結(jié)構的OS CPU C.C文件。
        μC/OS-Ⅱ是采用的可剝奪型實時多任務內(nèi)核。可剝奪型的實時內(nèi)核在任何時候都運行就緒了的最高優(yōu)先級的任務。μC/OS-Ⅱ中最多可以支持64個任務,分別對應優(yōu)先級0~63,其中0為最高優(yōu)先級。在該系統(tǒng)設計中,共應用了7個優(yōu)先級,其中,操作系統(tǒng)建立任務,即Task Start()的優(yōu)先級最高。調(diào)度工作可以分為兩部分:最高優(yōu)先級任務的尋找和任務切換。
        在該系統(tǒng)中,共定義了路徑識別、光電轉(zhuǎn)盤檢測等7個任務,控制器任務劃分及說明如表1所示。其調(diào)度和通信實現(xiàn)流程如下:系統(tǒng)執(zhí)行Task Start(),在初始化任務執(zhí)行完成后,利用μC/OS-Ⅱ的OSTaskDel()函數(shù)將這個任務返回并處于休眠狀態(tài)。此時,Task Po-sition Check()成為優(yōu)先級最高的任務,將會一直執(zhí)行。當Task Position Check()檢測到路徑有所改變,通過郵箱傳送數(shù)據(jù)到Task Control(),并由TaskControl()控制PWM波輸出的改變。任務Task Op-tical_Wheel()的優(yōu)先級稍低,同樣會一直執(zhí)行,即當任務Task_Optical_Wheel()檢測到黑白跳變時,任務中的變量加1,Task_Optical_Wheel()每隔1 s向任務Task_Path_Calculate()和Task_Speed_Calculate()發(fā)送1次消息,分別計算速度和已走的累加路程,控制器任務關系圖如圖4所示。




        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 密云县| 邯郸县| 庄浪县| 顺平县| 高尔夫| 恩平市| 松滋市| 孟村| 枝江市| 乐都县| 运城市| 隆昌县| 贡觉县| 渭源县| 赫章县| 马公市| 宕昌县| 云南省| 通许县| 溧阳市| 镶黄旗| 永安市| 白水县| 美姑县| 建平县| 黔南| 华蓥市| 孝义市| 德州市| 伊春市| 西昌市| 吉林省| 长岛县| 二连浩特市| 屏边| 广灵县| 伊金霍洛旗| 渭南市| 通州区| 古浪县| 天峻县|