在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式操作系統(tǒng)μC/OS-Ⅱ面向數(shù)控系統(tǒng)的改進(jìn)

            嵌入式操作系統(tǒng)μC/OS-Ⅱ面向數(shù)控系統(tǒng)的改進(jìn)

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


            (2)全局變量。因?yàn)楹瘮?shù)內(nèi)部的局部變量是分配在堆棧中的,直接處理方式不形成任務(wù),沒(méi)有自己的堆棧,如果使用局部變量,其局部變量會(huì)分配在被中斷任務(wù)的堆棧內(nèi),所以在該方式下任務(wù)應(yīng)使用全局變量。用戶(hù)在設(shè)計(jì)時(shí)要有一定限制,否則會(huì)影響系統(tǒng)的響應(yīng)時(shí)間。具體限制如下:第一,數(shù)量不能太多,最好小于等于3個(gè);第二,必須是執(zhí)行時(shí)間短,執(zhí)行頻率高的任務(wù)才能被設(shè)為。

            3 需要修改的內(nèi)核數(shù)據(jù)和函數(shù)

            3.1 任務(wù)控制塊的修改

            (1)修改OSTCBDly的含義。在μC/OS-Ⅱ中,OSTCBDly表示任務(wù)延時(shí)的時(shí)鐘節(jié)拍數(shù),或者任務(wù)掛起時(shí)的超時(shí)時(shí)鐘節(jié)拍數(shù)。如果這個(gè)變量為0,則表示任務(wù)不延時(shí),或者表示等待事件發(fā)生的時(shí)間沒(méi)有限制,修改后,OSTCBDly描述任務(wù)自運(yùn)行的周期數(shù),其計(jì)算公式如式(1)所示。若該項(xiàng)為零,任務(wù)為信號(hào)觸發(fā)的。

            (2)在TCB增加一項(xiàng)OSTCBDlyD作為任務(wù)自運(yùn)行周期動(dòng)態(tài)值。
            INT16UOSTCBDlyD; /*任務(wù)自運(yùn)行周期動(dòng)態(tài)值*/其中,OSTCBDlyD是任務(wù)等待運(yùn)行時(shí)間的動(dòng)態(tài)值。若任務(wù)在等待態(tài),其初值為OSTCBD-ly;若任務(wù)為掛起態(tài),其初值為超時(shí)限制值。系統(tǒng)時(shí)鐘處理函數(shù)OSTimeTick()對(duì)OSTCBDlyD減1,當(dāng)OSTCBDlyD小于0時(shí),則將該任務(wù)放入就緒隊(duì)列。

            (3)增加OSTCBStat的取值。OSTCBStat是任務(wù)的狀態(tài)字。由于增加了停止態(tài)和等待態(tài)兩種任務(wù)狀態(tài),因此需要增加OSTCBStat的取值,具體修改是在文件μCOS_II.H中增加下面信息。

            #define OS_STAT_wAIT 0x40 //任務(wù)狀態(tài)字為等待態(tài)
            #define OS_STAT_STOP 0x80 //任務(wù)狀態(tài)字為停止態(tài)

            3.2 時(shí)鐘節(jié)拍函數(shù)的OSTimeTick()修改

            通過(guò)TCB數(shù)組掃描全部TCB,根據(jù)OSTCBStat的值做不同處理,具體處理如下:
            就緒態(tài)的任務(wù),OSTCBDlyD--,若有超時(shí),則進(jìn)行超時(shí)處理。
            掛起態(tài)的任務(wù),OSTCBDlyD--,若有超時(shí),則將其插入就緒表。
            等待態(tài)的任務(wù),OSTCBDlyD--,若到時(shí),則將其加入就緒表。
            運(yùn)行態(tài)的任務(wù)和停止態(tài)的任務(wù),不做處理。

            3.3 增加函數(shù)OSTaskEndDeal()

            當(dāng)前任務(wù)的函數(shù)運(yùn)行完返回時(shí),調(diào)用函數(shù)OSTaskEndDeal(),該函數(shù)完成工作:首先調(diào)用OSTaskStkInit()將該任務(wù)的堆棧初始化;然后判斷任務(wù)是否為最低優(yōu)先級(jí)任務(wù),若是,則保持該任務(wù)在就緒態(tài),這樣做的目的是使最低優(yōu)先級(jí)任務(wù)始終處于就緒態(tài),就緒表不會(huì)為空。若否,則根據(jù)OSTCBCUR→OSTCBDly決定任務(wù)該插入哪個(gè)隊(duì)列,該值等于零,任務(wù)進(jìn)入停止?fàn)顟B(tài);

            不等于零,任務(wù)進(jìn)入等待狀態(tài)。最后,調(diào)用OSStart()選擇新任務(wù)運(yùn)行。

            3.4 的實(shí)現(xiàn)

            搶占式任務(wù)的設(shè)計(jì)需要根據(jù)實(shí)際情況做處理,這里以數(shù)控系統(tǒng)中的插補(bǔ)控制為例介紹搶占式任務(wù)的實(shí)現(xiàn)。

            3.4.1 插補(bǔ)控制任務(wù)的功能

            插補(bǔ)控制任務(wù)是根據(jù)加工命令和當(dāng)前點(diǎn)的位置,實(shí)時(shí)計(jì)算各坐標(biāo)軸運(yùn)動(dòng)的位移和方向。插補(bǔ)時(shí)需要用一個(gè)定時(shí)器作為插補(bǔ)速度的控制,每次定時(shí)中斷觸發(fā)一步插補(bǔ)運(yùn)算和輸出,當(dāng)插補(bǔ)到終點(diǎn),定時(shí)器停止,插補(bǔ)完成。

            3.4.2 插補(bǔ)控制任務(wù)的實(shí)現(xiàn)

            (1)選擇一個(gè)硬件定時(shí)器作為插補(bǔ)專(zhuān)用定時(shí)器,將插補(bǔ)任務(wù)的代碼放入該硬件定時(shí)器的中斷服務(wù)程序中。
            (2)為該中斷設(shè)置一組專(zhuān)用的寄存器組,以減少中斷環(huán)境保存和恢復(fù)的時(shí)間。
            (3)將需要執(zhí)行插補(bǔ)任務(wù)的當(dāng)前位置值和加工命令(如:加工曲線線形、終點(diǎn)值)等信息定義成全局變量,以便與其他任務(wù)實(shí)現(xiàn)快速的信息交互。
            (4)插補(bǔ)控制任務(wù)的啟動(dòng)。根據(jù)插補(bǔ)速度設(shè)定定時(shí)器初值,初始化插補(bǔ)所用的全局變量,啟動(dòng)定時(shí)器。

            4 基于改進(jìn)后的μC/OS-Ⅱ的數(shù)控機(jī)床執(zhí)行控制器的軟件設(shè)計(jì)

            數(shù)控機(jī)床系統(tǒng)采用兩級(jí)結(jié)構(gòu)。上位機(jī)由專(zhuān)用軟件IPC構(gòu)成,用于實(shí)現(xiàn)人機(jī)交互;下位機(jī)由C8051020及其外圍電路的嵌入式執(zhí)行控制器構(gòu)成,負(fù)責(zé)實(shí)時(shí)、可靠的控制。嵌入式執(zhí)行控制器軟件基于改進(jìn)后的μC/OS-Ⅱ設(shè)計(jì),主要包括下面一些功能:與IPC的通信(發(fā)送任務(wù)和接受任務(wù))、命令解釋(命令解釋任務(wù))和命令執(zhí)行(加工監(jiān)控任務(wù)、插補(bǔ)計(jì)算任務(wù)、間隙電壓檢測(cè)和限位開(kāi)關(guān)狀態(tài)檢測(cè)任務(wù))。其中,通信有發(fā)送和接收兩方面內(nèi)容;命令解釋時(shí),對(duì)開(kāi)關(guān)量控制命令直接執(zhí)行;命令執(zhí)行中需要進(jìn)行插補(bǔ)計(jì)算、檢測(cè)間隙電壓和限位開(kāi)關(guān)狀態(tài)及加工監(jiān)測(cè)。各任務(wù)具體設(shè)計(jì)如表1所示。


            5 結(jié)語(yǔ)

            本文根據(jù)數(shù)控系統(tǒng)任務(wù)特點(diǎn),對(duì)μC/OS-Ⅱ的任務(wù)劃分和任務(wù)調(diào)度做了改進(jìn),更加方便數(shù)控系統(tǒng)任務(wù)的在μC/OS-Ⅱ上的添加,同時(shí)也便于μC/OS-Ⅱ?qū)Σ煌蝿?wù)的管理。搶占式任務(wù)減少了任務(wù)切換花費(fèi)的時(shí)間,并提高了硬件資源的利用率,但應(yīng)注意搶占式任務(wù)的數(shù)量不能過(guò)多,最好小于等于3個(gè),否則會(huì)影響OS正常運(yùn)行。改進(jìn)后的內(nèi)核已應(yīng)用到了實(shí)際項(xiàng)目中,系統(tǒng)穩(wěn)定可靠。


            上一頁(yè) 1 2 下一頁(yè)

            評(píng)論


            相關(guān)推薦

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

            關(guān)閉