色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          關 閉

          新聞中心

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

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

          作者: 時間:2012-11-21 來源:網(wǎng)絡 收藏

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

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

          c.JPG


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

          d.JPG



          評論


          相關推薦

          技術專區(qū)

          關閉