新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種高效率的定時器管理模塊設(shè)計

一種高效率的定時器管理模塊設(shè)計

作者: 時間:2010-03-24 來源:網(wǎng)絡(luò) 收藏

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

本文引用地址:http://butianyuan.cn/article/173423.htm

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

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


上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉