<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

2.2嵌入式實(shí)時(shí)操作系統調度管理

為完成調度機制的靈活實(shí)現,提高系統調度實(shí)時(shí)性,這里采用嵌入式操作系統對系統進(jìn)行管理。μC/OS-II是一種免費公開(kāi)源代碼、結構小巧、具有可剝奪實(shí)時(shí)內核的實(shí)時(shí)操作系統,其內核提供任務(wù)調度與管理、時(shí)間管理、任務(wù)間同步與通信、內存管理和中斷服務(wù)等功能。它適用于小型控制系統,具有執行效率高、占有空間小、實(shí)時(shí)性能優(yōu)良和擴展性強等特點(diǎn),最小內核可以編譯至2K左右。

μC/OS-II實(shí)時(shí)內核采用占先式調度策略,不支持時(shí)間片輪調度法,核心是始終運行就緒條件下的優(yōu)先級最高的任務(wù)。在具體實(shí)現中就可以根據這一特點(diǎn)將系統劃分為多個(gè)任務(wù),每一個(gè)任務(wù)賦予一個(gè)明確的并且與其他任務(wù)不同的優(yōu)先級,根據各個(gè)任務(wù)的優(yōu)先級,動(dòng)態(tài)地切換各個(gè)任務(wù),從而保證了對實(shí)時(shí)性的要求。如果希望某個(gè)任務(wù)的優(yōu)先級根據條件的變化而發(fā)生改變,則可以通過(guò)調用改變任務(wù)優(yōu)先級的函數來(lái)實(shí)現。

3 調度任務(wù)劃分及設計

3.1多任務(wù)劃分

任務(wù)和中斷的劃分主要根據調度平臺設備完成的功能來(lái)劃分,要求每個(gè)任務(wù)職責清晰,任務(wù)間的信息交換和同步互斥應該簡(jiǎn)潔明了,任務(wù)優(yōu)先級定義明確。

平臺設備任務(wù)可劃分為四個(gè)任務(wù):設備聲明任務(wù),信息分發(fā)任務(wù),信息接收任務(wù),令牌輪循任務(wù)。設備聲明任務(wù)主要完成設備身份認證,設備在網(wǎng)絡(luò )中聲明是主設備還是從設備,如果是主設備則進(jìn)行調度平臺星型網(wǎng)絡(luò )的組建,從設備則直接加入新組建的網(wǎng)絡(luò )。信息分發(fā)任務(wù)作用是將當前網(wǎng)絡(luò )狀態(tài)、設備狀態(tài)和數據信息發(fā)送網(wǎng)絡(luò )中指定設備。信息接收任務(wù)是依靠串口中斷來(lái)觸發(fā)的,作用是接收網(wǎng)絡(luò )中的數據信息和主設備發(fā)送的或從設備返回的令牌。令牌輪循任務(wù)主要是針對主設備,當調度網(wǎng)絡(luò )組建完成,主設備根據網(wǎng)絡(luò )中節點(diǎn)信息(單獨開(kāi)辟存儲區存儲的節點(diǎn)號)進(jìn)行令牌信息分發(fā),一般情況是根據節點(diǎn)號從大到小,得到令牌的節點(diǎn)才是當前網(wǎng)絡(luò )中的活動(dòng)節點(diǎn)。對于從設備,令牌輪循任務(wù)僅完成令牌返回功能。

3.2多任務(wù)

在多任務(wù)系統的設計中優(yōu)先級的裁決至關(guān)重要,如果優(yōu)先級設定有誤,難以保證調度策略的正確實(shí)施,嚴重影響調度精確性?;讦藽/OS-II操作系統的任務(wù)優(yōu)先級設計遵循以下原則:(1)緊急任務(wù)優(yōu)先,(2)完成得快的任務(wù)優(yōu)先,(3)優(yōu)先級不能動(dòng)態(tài)變化,(4)不要出現多個(gè)同一優(yōu)先級的任務(wù)。

基于以上四點(diǎn)原則,分析系統任務(wù),安排任務(wù)優(yōu)先級示意圖如圖3所示,任務(wù)優(yōu)先級由高至低依次為:信息接收任務(wù),令牌輪循任務(wù),信息分發(fā)任務(wù),設備聲明任務(wù)。在系統任務(wù)中設備聲明任務(wù)只需定期進(jìn)行發(fā)送聲明信息,表明設備在線(xiàn),其周期較長(cháng),故可安排較低優(yōu)先級;信息接收任務(wù)由中斷觸發(fā),為了提高調度精度,防止中斷延遲時(shí)間過(guò)長(cháng),可安排信息接收任務(wù)為較高優(yōu)先級,當中斷發(fā)生確保能較快的切換到信息接收任務(wù)接收信息。令牌輪循任務(wù)功能單一,處理時(shí)間較短,故安排優(yōu)先級高于信息發(fā)送任務(wù)。

圖3 任務(wù)優(yōu)先級示意圖

μC/OS-II是基于搶占式內核,當一個(gè)任務(wù)正在執行時(shí),如果任務(wù)就緒表中有更高級別任務(wù)就緒,就中止當前任務(wù)切換到高優(yōu)先級任務(wù)。如圖3所示,信息分發(fā)任務(wù)在執行過(guò)程中,信息接收任務(wù)就緒,系統立刻中止信息分發(fā)任務(wù),保留當前狀態(tài)在堆棧中,然后切換到高優(yōu)先級的信息接收任務(wù),信息接收完成再返回到信息發(fā)送任務(wù)繼續執行。

3.3任務(wù)間信息交換和同步設計與實(shí)現

在嵌入式多任務(wù)系統中,多任務(wù)之間信息交換和同步主要通過(guò)消息郵箱、消息隊列以及信號量來(lái)完成,μC/OS-II分別提供了相關(guān)函數供用戶(hù)調用,如任務(wù),消息,信號量的創(chuàng )建,消息和信號量的請求和發(fā)送等。

根據調度策略無(wú)線(xiàn)調度平臺主從設備信息交換設計圖如圖4所示:

任務(wù)間信息交換和同步設計是無(wú)線(xiàn)調度機制實(shí)現的重要環(huán)節,在具體實(shí)現過(guò)程中主要利用μC/OS-II的消息隊列函數,其中OSQPend()為消息請求函數,OSQPost()為消息發(fā)送函數。

串口中斷與信息接收任務(wù)間通過(guò)消息隊列進(jìn)行信息傳遞代碼實(shí)現如下,SERIAL2RecData作為是否接收信息標志位,由中斷置位,有信息接收時(shí),串口服務(wù)程序向信息接收任務(wù)發(fā)送消息。

void SERIAL2_ISR(void) interrupt 20 //串口接收中斷服務(wù)程序

{ SERIAL2RecBuffer[SERIAL2RecBufferTail] = SBUF1;

SERIAL2RecData = 1; //接收數據標志位

}

void task_serial2(void) ADD_REENTRANT //串口服務(wù)程序

{ if(SERIAL2RecData == 1)

OSQPost(bt_msg_queue, (void *)pmsg);

}



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>