新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于μC/OS-II的無線調度策略分析與實現

        基于μC/OS-II的無線調度策略分析與實現

        作者: 時間:2012-03-22 來源:網絡 收藏

        接收任務與發送任務間通過消息隊列進行消息傳遞代碼實現如下,當OSQPend()接收到觸發消息,開始接受數據報文,根據數據報文ID作出相應處理,如果接收到的是令牌數據報文則給信息分發任務發送一個消息,信息分發任務只有接收到此消息才可以進行信息分發。為防止令牌丟失,在信息分發任務中設置了一等待超時,超過一定時間沒接收到發送消息,則自動返回令牌。

        void task_bt_rcve(void *spdata) ADD_REENTRANT //信息接收任務

        { p_msg = (sSerial2Msg PTR_TYPE *)OSQPend(bt_msg_queue, 0, err);

        switch(p_msg->pkt_ID){

        case ZGB_PKTID_ANN: // 設備聲明ID

        ……

        case ZGB_PKTID_DISTRIBUTE: // 信息發布ID

        ……

        case ZGB_PKTID_PASS_TOKEN: // 令牌傳遞ID

        ……

        OSQPost(token_msg_queue, (void *)1);

        }

        void task_bt_send(void *spdata) ADD_REENTRANT //信息分發任務

        { OSQPend(token_msg_queue, 3*OS_TICKS_PER_SEC, err); //令牌事件驅動

        ……

        if(err != OS_TIMEOUT) //等待超時

        return_token(); //當數據發送完畢后返回令牌

        }

        4 調度誤差分析

        是基于精確時間同步的調度策略,主設備對每個從設備進行周期性的調度。考慮到在實際過程中上線設備數量、指令周期和硬件響應時間等因素對調度周期的影響,測試中將周期定為200ms,即分給每個接收到令牌設備的時間片為200ms,不管設備狀態如何。具體測試方法為:主設備連接有線網絡,將從設備發往主設備的數據依次發往與之連接的PC機,PC機顯示接收到的報文信息和時間并計算間隔時間。經過對實際測試數據進行分析,系統調度誤差可控制在65~15ms之間,基本滿足精度要求。

        5 結束語

        無線調度系統是基于令牌輪循的調度機制,調度策略簡單實用。在系統設計中,根據嵌入式實時操作系統μC/OS-II的特點,合理劃分了調度任務,同時引入了多優先級任務裁決機制,從而較好的解決了調度策略的具體實現,極大的提高了調度精度和可靠性,使無線調度平臺可廣泛應用于工業自動化現場。

        本文創新點:分析和研究了基于ZIGBEE技術的無線調度平臺的調度策略,同時為滿足實時性要求和調度機制的靈活實現,引入μC/OS-II嵌入式實時操作系統來設計和管理調度任務,系統調度精度達到應用要求。

        參考文獻

        [1]晨風著.嵌入式實時多任務軟件開發基礎[M].北京:清華大學出版社,2003.9

        [2] Jean J. Labrosse著,邵貝貝等譯.嵌入式實時操作系統μC/OS-II [M].北京:北京航空航天大學出版社,2003.5

        [3]宋寅卯 張青波.基于uC/OS—II的旋轉體非接觸測溫系統[J].微計算機信息,2005,

        10-2:21-23


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 广安市| 乐昌市| 大余县| 石家庄市| 石河子市| 阿鲁科尔沁旗| 兴国县| 兴文县| 常宁市| 弋阳县| 太仆寺旗| 海原县| 延川县| 会昌县| 吉林省| 东兰县| 南安市| 南木林县| 仙居县| 西宁市| 梅河口市| 嘉峪关市| 临安市| 阳山县| 五峰| 河曲县| 鄢陵县| 东阿县| 余庆县| 乌兰县| 沙田区| 千阳县| 六盘水市| 独山县| 九寨沟县| 淮滨县| 甘南县| 临潭县| 辉县市| 垣曲县| 昭通市|