• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于μC/OS-II的無線調(diào)度策略分析與實(shí)現(xiàn)

    基于μC/OS-II的無線調(diào)度策略分析與實(shí)現(xiàn)

    作者: 時(shí)間:2012-03-22 來源:網(wǎng)絡(luò) 收藏

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

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

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

    switch(p_msg->pkt_ID){

    case ZGB_PKTID_ANN: // 設(shè)備聲明ID

    ……

    case ZGB_PKTID_DISTRIBUTE: // 信息發(fā)布ID

    ……

    case ZGB_PKTID_PASS_TOKEN: // 令牌傳遞ID

    ……

    OSQPost(token_msg_queue, (void *)1);

    }

    void task_bt_send(void *spdata) ADD_REENTRANT //信息分發(fā)任務(wù)

    { OSQPend(token_msg_queue, 3*OS_TICKS_PER_SEC, err); //令牌事件驅(qū)動(dòng)

    ……

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

    return_token(); //當(dāng)數(shù)據(jù)發(fā)送完畢后返回令牌

    }

    4 調(diào)度誤差分析

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

    5 結(jié)束語

    無線調(diào)度系統(tǒng)是基于令牌輪循的調(diào)度機(jī)制,調(diào)度策略簡單實(shí)用。在系統(tǒng)設(shè)計(jì)中,根據(jù)嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-II的特點(diǎn),合理劃分了調(diào)度任務(wù),同時(shí)引入了多優(yōu)先級任務(wù)裁決機(jī)制,從而較好的解決了調(diào)度策略的具體實(shí)現(xiàn),極大的提高了調(diào)度精度和可靠性,使無線調(diào)度平臺可廣泛應(yīng)用于工業(yè)自動(dòng)化現(xiàn)場。

    本文創(chuàng)新點(diǎn):分析和研究了基于ZIGBEE技術(shù)的無線調(diào)度平臺的調(diào)度策略,同時(shí)為滿足實(shí)時(shí)性要求和調(diào)度機(jī)制的靈活實(shí)現(xiàn),引入μC/OS-II嵌入式實(shí)時(shí)操作系統(tǒng)來設(shè)計(jì)和管理調(diào)度任務(wù),系統(tǒng)調(diào)度精度達(dá)到應(yīng)用要求。

    參考文獻(xiàn)

    [1]晨風(fēng)著.嵌入式實(shí)時(shí)多任務(wù)軟件開發(fā)基礎(chǔ)[M].北京:清華大學(xué)出版社,2003.9

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

    [3]宋寅卯 張青波.基于uC/OS—II的旋轉(zhuǎn)體非接觸測溫系統(tǒng)[J].微計(jì)算機(jī)信息,2005,

    10-2:21-23


    上一頁 1 2 3 下一頁

    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 汤原县| 修水县| 柏乡县| 兴山县| 墨脱县| 潜江市| 宜川县| 密云县| 大兴区| 乌拉特后旗| 类乌齐县| 长兴县| 海丰县| 乌拉特后旗| 宁明县| 西城区| 湖南省| 水城县| 景泰县| 榆树市| 淳化县| 天祝| 桓台县| 宜城市| 麟游县| 洱源县| 紫金县| 揭东县| 泗水县| 扎兰屯市| 塔河县| 吉隆县| 修水县| 会泽县| 安阳县| 洛扎县| 稷山县| 南汇区| 全南县| 邓州市| 鄂伦春自治旗|