在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            關(guān) 閉

            新聞中心

            EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于以太網(wǎng)和CAN總線的樓宇自動(dòng)化系統(tǒng)設(shè)計(jì)

            基于以太網(wǎng)和CAN總線的樓宇自動(dòng)化系統(tǒng)設(shè)計(jì)

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

            3 軟件架構(gòu)
            軟件由主控機(jī)人機(jī)接口界面、上位機(jī)軟件、設(shè)備節(jié)點(diǎn)軟件組成。上位機(jī)軟件包括嵌入式TCP/IP協(xié)議簇、收發(fā)軟件包、CAN收發(fā)軟件包等,設(shè)備節(jié)點(diǎn)軟件包括CAN模塊、數(shù)據(jù)采集分析模塊等組成。
            3.1 移植μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)的方法
            上位機(jī)既要和主控機(jī)通信,又要負(fù)責(zé)管理下屬的設(shè)備節(jié)點(diǎn),負(fù)載較大。移植μC/OSⅡ操作系統(tǒng)可以使上位機(jī)具有多任務(wù)運(yùn)行的功能。 μC/OS-Ⅱ是一個(gè)完整的,可移植、固化、裁剪的占先式實(shí)時(shí)多任務(wù)內(nèi)核。它包含了任務(wù)調(diào)度、任務(wù)管理、時(shí)間管理、內(nèi)存管理和任務(wù)間的通信和同步等基本功能。μC/OS-Ⅱ采用的是可剝奪型實(shí)時(shí)多任務(wù)內(nèi)核,可剝奪型的實(shí)時(shí)內(nèi)核在任何時(shí)候都運(yùn)行就緒了的最高優(yōu)先級(jí)的任務(wù)。
            在ARM下移植μC/OS-Ⅱ操作系統(tǒng)主要是修改μC/OS-Ⅱ中一部分與CPU相關(guān)的匯編代碼,這里主要是任務(wù)上下文的切換代碼。
            任務(wù)切換發(fā)生在任務(wù)調(diào)度的時(shí)候,μC/OS-Ⅱ下任務(wù)調(diào)度的時(shí)機(jī)主要有以下幾種情況:1)高優(yōu)先級(jí)的任務(wù)因?yàn)樾枰撤N臨界資源,主動(dòng)請(qǐng)求掛起,讓出處理器,此時(shí)將調(diào)度就緒狀態(tài)的最高優(yōu)先級(jí)任務(wù)并執(zhí)行。2)高優(yōu)先級(jí)的任務(wù)因?yàn)闀r(shí)鐘節(jié)拍到來(lái),在時(shí)鐘中斷的處理程序中,內(nèi)核發(fā)現(xiàn)更高優(yōu)先級(jí)的任務(wù)就緒,獲得了執(zhí)行條件,則在中斷后直接切換到更高優(yōu)先級(jí)任務(wù)執(zhí)行。
            任務(wù)切換就是保存前一個(gè)任務(wù)的基本信息,同時(shí)讀取新任務(wù)在上一次被切換時(shí)保存的這些信息。調(diào)度器將前一任務(wù)的上述信息保存在該任務(wù)的棧空間中,其目的是為了下次運(yùn)行時(shí)能夠恢復(fù)到被切換時(shí)的狀態(tài),調(diào)度器將從該任務(wù)的??臻g中讀取上述信息,從而從該任務(wù)上次被中斷的位置繼續(xù)執(zhí)行,其基本過(guò)程如下:
            1)將當(dāng)前任務(wù)的PC位置、通用寄存器數(shù)據(jù)、CPU狀態(tài)入棧。
            2)將全局變量OSPrioCur(當(dāng)前任務(wù)優(yōu)先級(jí)變量)的值修改為全局變量OSPrioHighRdy(最高優(yōu)先級(jí)任務(wù)優(yōu)先級(jí))的值,即把最高就緒任務(wù)優(yōu)先級(jí)設(shè)置為新的當(dāng)前任務(wù)優(yōu)先級(jí)。
            3)將原任務(wù)TCB的第一個(gè)成員(指向棧頂?shù)闹羔?OSTCB-StkPtr)的值修改為當(dāng)前SP寄存器的值,以便再次返回。
            4)獲取最高優(yōu)先級(jí)的任務(wù)控制塊中第一個(gè)成員(指向堆棧棧頂指針*OSTCBStkPtr)的值并將其保存到SP寄存器中。
            5)將OSTCBCur的值修改為新就緒最高優(yōu)先級(jí)任務(wù)的任務(wù)控制塊地址。
            6)將新任務(wù)的PC地址、通用寄存器數(shù)據(jù)、CPU狀態(tài)出棧,開(kāi)始執(zhí)行新的任務(wù)。
            因?yàn)槿蝿?wù)切換是將當(dāng)前任務(wù)的基本信息保存起來(lái)(入任務(wù)棧),并加載新任務(wù)的基本信息(出棧),而這些信息很大一部分都被存儲(chǔ)在CPU的寄存器中,因此根據(jù)處理器的不同,此函數(shù)在實(shí)現(xiàn)上略有差異,一般都采用匯編語(yǔ)言實(shí)現(xiàn)。
            3.2 編寫(xiě)設(shè)備驅(qū)動(dòng)程序
            設(shè)備驅(qū)動(dòng)程序主要包括和CAN軟件包,驅(qū)動(dòng)主要是初始化LPC2478內(nèi)部以太網(wǎng)模塊的一些重要的寄存器如MAC配置寄存器、MAC地址寄存器、命令寄存器、狀態(tài)寄存器、中斷狀態(tài)寄存器等等。以太網(wǎng)模塊內(nèi)部采用DMA方式讀取數(shù)據(jù),分別使用接收、發(fā)送描述符數(shù)組來(lái)表示接收和發(fā)送的數(shù)據(jù)塊。以太網(wǎng)模塊發(fā)送和接受數(shù)據(jù)的流程如圖2所示。

            本文引用地址:http://www.biyoush.com/article/159681.htm

            c.JPG


            CAN的初始化包括初始化時(shí)鐘分頻寄存器,同時(shí)選擇能支持?jǐn)U展幀的PeliCAN模式,設(shè)置接收中斷,采用中斷來(lái)接收數(shù)據(jù),設(shè)置總線時(shí)序寄存器、輸出控制寄存器等。初始化CAN流程圖如圖3所示。

            d.JPG



            評(píng)論


            相關(guān)推薦

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

            關(guān)閉