• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于?C/OS—II硬件加速模塊的研究與實現(xiàn)

      2015-07-18 14:19:19隋宇暉范延濱楊厚俊
      物聯(lián)網(wǎng)技術(shù) 2015年5期
      關(guān)鍵詞:實時性

      隋宇暉++范延濱++楊厚俊

      摘 要:為了滿足嵌入式操作系統(tǒng)對實時性的要求,提出了基于FPGA的硬件加速模塊的實現(xiàn),將?C/OS-II操作系統(tǒng)中原有的調(diào)度器與定時器部分進(jìn)行合理的硬件化實現(xiàn)。整個設(shè)計采用Verilog硬件描述語言,通過Quartus II 13.1軟件進(jìn)行時序仿真驗證,通過仿真,得出此方法可以提高系統(tǒng)的實時性,降低系統(tǒng)的額外開銷。

      關(guān)鍵詞:實時性;FPGA;調(diào)度器;定時器

      中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2015)05-00-02

      0 引 言

      嵌入式實時操作系統(tǒng)[1]是一種實時的、支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,它是嵌入式系統(tǒng)的重要組成部分。與通用操作系統(tǒng)相比,嵌入式操作系統(tǒng)在系統(tǒng)實時高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等方面有較為突出的特點。嵌入式實時操作系統(tǒng)?C/OS-II[2]是一種基于優(yōu)先級的搶占式操作系統(tǒng),具有很強(qiáng)的實時性。但是,航空航天、工業(yè)控制和核電站建設(shè)等領(lǐng)域的發(fā)展,對嵌入式操作系統(tǒng)的實時性提出了越來越高的要求。隨著FPGA[3]的集成度和速度的不斷提高,使嵌入式操作系統(tǒng)的硬件化實現(xiàn)成為可能[4]。我們提出將?C/OS-II的調(diào)度器[5]與定時器[6]進(jìn)行硬件化實現(xiàn),來提高嵌入式系統(tǒng)的實時性。

      1 ?C/OS-II的任務(wù)調(diào)度器和時鐘

      1.1 ?C/OS-II中的調(diào)度器

      在?C/OS-II中,任務(wù)調(diào)度由任務(wù)調(diào)度器來完成。任務(wù)調(diào)度器的主要工作有兩項:一是在任務(wù)就緒表中查找具有最高優(yōu)先級別的就緒任務(wù);二是實現(xiàn)任務(wù)的切換。

      ?C/OS-II調(diào)度器用于獲取優(yōu)先級別最高的就緒任務(wù)的代碼,如下[7]所示:

      y = OSUnMapTbl[OSRdyGrp];

      x = OSUnMapTbl[OSRdyTbl[y]];

      prio = ( y << 3 ) + x;

      其中,OSRdyTbl[]是就緒任務(wù)登記表,登記了系統(tǒng)中所有處于就緒狀態(tài)的任務(wù)。它本質(zhì)上是一個類型為INT8U的數(shù)組,它的每一個二進(jìn)制位對應(yīng)一個任務(wù),每一位的1/0表示對應(yīng)的任務(wù)處于就緒/非就緒狀態(tài)。OSRdyGrp是一個數(shù)據(jù)類型為INT8U的變量,每一位都對應(yīng)OSRdyTbl[]的一個任務(wù)組。OSUnMapTbl[]是?C/OS-II為提高查找速度定義的一個數(shù)組,共有256個元素。

      任務(wù)切換的工作是靠OSCtxSW()來完成,中止正在運行的任務(wù),轉(zhuǎn)而去運行就緒任務(wù)中優(yōu)先級別最高的任務(wù)。

      由于任務(wù)切換時需要對CPU的寄存器進(jìn)行操作,所以我們只是對查找最高優(yōu)先級任務(wù)這一部分進(jìn)行硬件化實現(xiàn)。如圖1所示。

      1.2 ?C/OS-II中的時鐘

      ?C/OS-II與大多數(shù)計算機(jī)系統(tǒng)一樣,用定時器產(chǎn)生一個周期為毫秒(ms)級的周期性中斷來實現(xiàn)系統(tǒng)時鐘。定時器以時鐘節(jié)拍為周期定時的產(chǎn)生中斷,該中斷的中斷服務(wù)程序叫做OSTickISR()。中斷服務(wù)程序通過調(diào)用時鐘節(jié)拍服務(wù)函數(shù)OSTimeTick()來完成系統(tǒng)在每個時鐘節(jié)拍時需要做的工作。

      每次響應(yīng)定時中斷時,?C/OS-II調(diào)用OSTimeTick()進(jìn)行如下操作:一是給計數(shù)器OSTime加1;二是遍歷任務(wù)控制塊鏈表中的所有任務(wù)控制塊,把各個任務(wù)控制塊中用來存放任務(wù)延時時限的OSTCBDly變量減1,并使該項為0,同時又不使被掛起的任務(wù)進(jìn)入就緒狀態(tài)。簡單的說,函數(shù)OSTimeTick()的任務(wù)就是在每個時鐘節(jié)拍了解每個任務(wù)的延時狀態(tài),使其中已經(jīng)到了延時時限的非掛起任務(wù)進(jìn)入就緒狀態(tài)。

      定時器相關(guān)函數(shù)的順序執(zhí)行使實時操作系統(tǒng)的實時性受到影響。因此,我們提出將定時器硬件化,以改善操作系統(tǒng)的實時性。

      2 調(diào)度器的硬件化設(shè)計與實現(xiàn)

      任務(wù)調(diào)度器實現(xiàn)任務(wù)控制塊TCB(Task Control Block)隊列(簡稱任務(wù)隊列)的操作與管理。所有未執(zhí)行任務(wù)放在等待隊列和就緒隊列中,等待隊列中的任務(wù)在條件(如定時到、事件到達(dá)、中斷到達(dá)等)滿足時將變?yōu)榫途w任務(wù),等待任務(wù)調(diào)度。任務(wù)調(diào)度器在每個調(diào)度時鐘內(nèi)計算出優(yōu)先級最高的就緒任務(wù),調(diào)度器采用搶占式調(diào)度機(jī)制,每個調(diào)度時鐘輸出優(yōu)先級最高的就緒任務(wù),通過中斷方式向處理器提出任務(wù)服務(wù),轉(zhuǎn)向執(zhí)行任務(wù)代碼。

      圖1 任務(wù)調(diào)度器結(jié)構(gòu)

      在?C/OS-II中,系統(tǒng)內(nèi)核基本工作是任務(wù)調(diào)度,系統(tǒng)運行中,將會有一定的資源消耗在調(diào)度上,大約占用CPU資源的2%~5%[8]。在硬件完成系統(tǒng)調(diào)度器中查找最高優(yōu)先級任務(wù)這一部分,釋放調(diào)度占用的CPU資源,將就緒表硬件化。在任務(wù)就緒表中,每一位與一個任務(wù)相對應(yīng),每一位的地址與任務(wù)優(yōu)先級相同,第n位為1表示任務(wù)n處于就緒狀態(tài),第n位為0表示任務(wù)n處于非就緒狀態(tài)。這樣,從處于就緒態(tài)狀態(tài)的任務(wù)中找到優(yōu)先級最高的任務(wù)只需要一個時鐘節(jié)拍。如圖2所示。

      圖2 任務(wù)調(diào)度器仿真

      以8個任務(wù)為例,tbl_in是當(dāng)前就緒表的狀態(tài),prio_o是當(dāng)前就緒任務(wù)中的最高優(yōu)先級,flag作為中斷請求標(biāo)志位,每個調(diào)度時鐘輸出優(yōu)先級最高的就緒任務(wù),通過該中斷請求信號向處理器提出中斷請求。

      3 可編程硬件定時器的設(shè)計與實現(xiàn)

      系統(tǒng)中軟件定時器實現(xiàn)函數(shù)是順序執(zhí)行的[9],降低了系統(tǒng)的實時性。要實現(xiàn)定時或延時控制,主要有三種方法:軟件定時、不可編程的硬件定時器、可編程的硬件定時器。其中,可編程定時器電路的定時值及范圍可很容易的由軟件來確定和改變,功能較強(qiáng),使用靈活。因此,本文將?C/OS-II的軟件定時器用可編程的硬件定時器替換,從而提高系統(tǒng)的實時性。如圖3所示。

      我們?yōu)槊恳粋€任務(wù)設(shè)計一個定時器,用于管理任務(wù)的延時和運行周期。軟件通過向硬件模塊傳送定時命令字來指定延時任務(wù)以及延時時長。硬件模塊接收該定時命令字后,對該命令字進(jìn)行譯碼,獲得延時任務(wù)的優(yōu)先級以及延時時長,進(jìn)行定時操作。當(dāng)設(shè)定的定時時間到,進(jìn)行一次任務(wù)調(diào)度,讓出CPU的使用權(quán)。

      圖3 定時器結(jié)構(gòu)

      可編程硬件定時器由定時命令字、分頻器、定時器(計數(shù)器以及比較器)三部分組成,三個部分的實現(xiàn)分別如下:

      (1)定時命令字

      從軟件傳送來的32位定時命令字,高8位為優(yōu)先級,用來指定延時任務(wù);低24位為延時時長,用來指定定時時間。經(jīng)過譯碼器解析之后,優(yōu)先級置于優(yōu)先級寄存器中,延時時長作為定時器的輸入。命令字格式如圖4所示。

      優(yōu)先級 延時時長

      31……24 23 …… 0

      圖4 命令字格式

      (2)分頻器

      通過分頻器來控制定時器精度。如果系統(tǒng)時鐘是50MHz,將50 MHz的系統(tǒng)時鐘轉(zhuǎn)換為1 MHz,時鐘周期為1 ?s,定時器精度為1 ?s,則我們可以將延時范圍控制在0~16777 216 ?s(224 ?s)之間。

      (3)定時器

      調(diào)用LPM(Library of Parameterized Modules 參數(shù)可設(shè)置模塊庫)的計數(shù)器和比較器來綜合實現(xiàn)定時器功能。

      計數(shù)器:24位加1普通二進(jìn)制計數(shù)器,Clock Enable作為使能信號。輸入為時鐘和時鐘使能,輸出為計數(shù)值。

      比較器:輸入為兩個24位的二進(jìn)制數(shù)dataa、datab,輸出為aeb(a equal b),若兩數(shù)相等,輸出為1,否則為0。

      定時器:對計數(shù)器和比較器分別例化,計數(shù)器的輸出作為比較器的一個輸入dataa,比較器的另一個輸入是通過解析命令字得到的延時時長。定時器的輸入為時鐘及定時命令字,高8位作為優(yōu)先級,低24位作為比較器的輸入datab;輸出為優(yōu)先級及比較器的輸出結(jié)果。比較器的輸出可作為定時已到的標(biāo)志位。如圖5所示。

      圖5 定時器RTL圖

      4 結(jié) 語

      采用硬件邏輯實現(xiàn)實時操作系統(tǒng)中的任務(wù)調(diào)度和定時器管理功能,可使其實時性和確定性顯著提高。因為硬件邏輯獨立于處理器運行,不占用處理器的處理時間,所節(jié)省的時間用于執(zhí)行任務(wù)程序,從而提高了任務(wù)集合的可調(diào)度性和實時性。實時操作系統(tǒng)的硬化隨著EDA(Electronic Design Automation)設(shè)計技術(shù)的發(fā)展、可編程邏輯器件及相關(guān)技術(shù)的提高,它在很多處理系統(tǒng)尤其是嵌入式系統(tǒng)與單片機(jī)系統(tǒng)中,將會有廣泛的應(yīng)用前景。

      參考文獻(xiàn)

      [1]林建民.嵌入式操作系統(tǒng)技術(shù)發(fā)展趨勢[J].計算機(jī)工程,2001,27(10):1-4.

      [2]任哲.嵌入式實時操作系統(tǒng)mC/OS-II原理及應(yīng)用[M].第2版,北京:北京航空航天大學(xué)出版社,2009.

      [3]潘松,黃繼業(yè),潘明.EDA技術(shù)實用教程-Verilog HDL版[M].第4版,北京:科學(xué)出版社,2010.

      [4]尹震宇,趙海,王金英,等.一種嵌入式處理器上的HOS設(shè)計[J].計算機(jī)工程,2008,34(5):268-270.

      [5]李巖,崔曉英,李賢堯,等.基于FPGA的mC/OS-II任務(wù)管理硬件設(shè)計[J].電子技術(shù)應(yīng)用,2010,36(2):25-29.

      [6]張煒,李克儉,蔡啟仲,等.基于FPGA的PLC并行定時器的設(shè)計[J].計算機(jī)工程與設(shè)計,2013,34(4):1244-1249.

      [7] Jean J.Labrosse,邵貝貝譯.嵌入式實時操作系統(tǒng)mC/OS-II [M].第2版,北京:北京航空航天大學(xué)出版社,2007.

      [8]張濤,廖力清,王頌.mC/OS-II內(nèi)核在FPGA上的硬件化設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2009,35(4):41-44.

      [9]沈國新,張德學(xué),王貴海,等. 一種實時操作系統(tǒng)硬件加速設(shè)計[J]. 微型機(jī)與應(yīng)用,2010,29(6):17-19.

      猜你喜歡
      實時性
      基于規(guī)則實時性的端云動態(tài)分配方法研究
      基于虛擬局域網(wǎng)的智能變電站通信網(wǎng)絡(luò)實時性仿真
      航空電子AFDX與AVB傳輸實時性抗干擾對比
      一種滿足實時性需求的測發(fā)控軟件改進(jìn)技術(shù)
      航天控制(2016年6期)2016-07-20 10:21:36
      網(wǎng)絡(luò)演算理論下的工業(yè)以太網(wǎng)的實時性分析
      一種車載Profibus總線系統(tǒng)的實時性分析
      拉萨市| 邳州市| 民乐县| 凌云县| 宝坻区| 东台市| 临泉县| 鄄城县| 德江县| 武夷山市| 郴州市| 砚山县| 成都市| 上思县| 青州市| 邓州市| 若羌县| 邵阳市| 黔西县| 秦皇岛市| 亳州市| 潢川县| 甘德县| 郧西县| 图木舒克市| 启东市| 石渠县| 乌苏市| 绿春县| 宝山区| 金塔县| 湘乡市| 河津市| 新余市| 花莲县| 思南县| 应用必备| 兴山县| 昆明市| 华阴市| 秦皇岛市|