新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種高效率的定時器管理模塊設計

        一種高效率的定時器管理模塊設計

        作者: 時間:2010-03-24 來源:網絡 收藏

        摘要:首先說明常見方案的優缺點,然后針對通信協議的特點,了一種。該通過使用一個輔助,大大減少了定時器中斷處理的時間開銷。
        關鍵詞:軟件定時器;相對定時器;定時器;通信協議

        本文引用地址:http://www.104case.com/article/173423.htm

        引言
        定時器是通信協議正常運行的基本要素之一,主要用于各種定時和幀重傳的任務。通信協議在單片機系統上實現所使用的定時器,定時精度要求不高,但數量要求比較大。由于硬件資源有限,不可能為每一個單獨任務分配一個硬件定時器,只能通過單個硬件定時器模擬多個軟件定時器的方法,來滿足協議中的定時應用需要。
        用一定的數據結構將這些軟件定時器組織起來,并提供統一的調用接口,稱為“定時器管理”。目前定時器管理主要有2種實現方法:
        ①靜態數組法。將定時器節點存儲在數組中。優點是邏輯簡單,占用ROM較少。但這種方案有明顯的缺點:當硬件定時器中斷發生時,要對所有定時器節點進行減法操作,時間開銷很大,且時延不確定(與定時器數目相關)。
        ②delta鏈表法。按照定時器的定時值升序排列,形成鏈表。后一個定時器的定時值是前面所有定時器的值加上本節點的值。這樣,在每次的時鐘中斷處理中,只需對第1個定時器節點進行減法操作,大大減少了時間開銷。但是,該方案邏輯復雜,ROM用量大.需要頻繁分配回收內存,容易形成內存碎片。

        1 定時器管理
        定時器管理模塊的基于靜態數組法。使用一個定時器節點數組來保存所有的定時請求,數組的每一項代表一個可用的定時器節點。每一個定時器節點都有一個狀態項,表示該定時器正處于空閑、使用或溢出狀態。定時器的定時值和定時器超時后要發送的消息也存儲在定時器節點中,從而實現用一個硬件定時器為用戶提供多個軟件定時器。
        為了解決中斷處理時間開銷大的問題,在模塊中引入一個輔助定時器,輔助定時器的值總是等于所有定時器節點中的最小定時值。在硬件定時器中斷處理中,僅對輔助定時器進行減法操作,從而大大縮短了中斷處理的時間。設計原理如圖1所示。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 泸水县| 彭水| 南乐县| 建湖县| 黄浦区| 成都市| 雷州市| 泰兴市| 山阴县| 万盛区| 梁平县| 石景山区| 剑阁县| 尚志市| 百色市| 利津县| 天全县| 新源县| 外汇| 涿州市| 牙克石市| 化州市| 兖州市| 渝中区| 筠连县| 黔西县| 醴陵市| 兰考县| 津南区| 山阳县| 慈利县| 孟津县| 南涧| 宜宾县| 宁城县| 芜湖县| 璧山县| 岳普湖县| 龙海市| 武平县| 邹平县|