亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2010-06-22 08:18:42陳曉煒石江宏
        關(guān)鍵詞:時(shí)值數(shù)組空閑

        陳曉煒,石江宏

        (廈門大學(xué) 通信工程系,廈門361005)

        陳曉煒(碩士),主要研究方向?yàn)闊o線傳感器網(wǎng)絡(luò);石江宏(副教授),主要研究方向?yàn)闊o線網(wǎng)絡(luò)技術(shù)。

        引 言

        定時(shí)器是通信協(xié)議正常運(yùn)行的基本要素之一,主要用于各種定時(shí)和幀重傳的任務(wù)。通信協(xié)議在單片機(jī)系統(tǒng)上實(shí)現(xiàn)所使用的定時(shí)器,定時(shí)精度要求不高,但數(shù)量要求比較大。由于硬件資源有限,不可能為每一個(gè)單獨(dú)任務(wù)分配一個(gè)硬件定時(shí)器,只能通過單個(gè)硬件定時(shí)器模擬多個(gè)軟件定時(shí)器的方法,來滿足協(xié)議中的定時(shí)應(yīng)用需要。

        用一定的數(shù)據(jù)結(jié)構(gòu)將這些軟件定時(shí)器組織起來,并提供統(tǒng)一的調(diào)用接口,稱為“定時(shí)器管理”。目前定時(shí)器管理主要有2種實(shí)現(xiàn)方法:

        ①靜態(tài)數(shù)組法。將定時(shí)器節(jié)點(diǎn)存儲(chǔ)在數(shù)組中。優(yōu)點(diǎn)是邏輯簡(jiǎn)單,占用ROM較少。但這種方案有明顯的缺點(diǎn):當(dāng)硬件定時(shí)器中斷發(fā)生時(shí),要對(duì)所有定時(shí)器節(jié)點(diǎn)進(jìn)行減法操作,時(shí)間開銷很大,且時(shí)延不確定(與定時(shí)器數(shù)目相關(guān))。

        ②delta鏈表法。按照定時(shí)器的定時(shí)值升序排列,形成鏈表。后一個(gè)定時(shí)器的定時(shí)值是前面所有定時(shí)器的值加上本節(jié)點(diǎn)的值。這樣,在每次的時(shí)鐘中斷處理中,只需對(duì)第1個(gè)定時(shí)器節(jié)點(diǎn)進(jìn)行減法操作,大大減少了時(shí)間開銷。但是,該方案邏輯復(fù)雜,ROM用量大,需要頻繁分配回收內(nèi)存,容易形成內(nèi)存碎片。

        1 定時(shí)器管理模塊的設(shè)計(jì)

        定時(shí)器管理模塊的設(shè)計(jì)基于靜態(tài)數(shù)組法。使用一個(gè)定時(shí)器節(jié)點(diǎn)數(shù)組來保存所有的定時(shí)請(qǐng)求,數(shù)組的每一項(xiàng)代表一個(gè)可用的定時(shí)器節(jié)點(diǎn)。每一個(gè)定時(shí)器節(jié)點(diǎn)都有一個(gè)狀態(tài)項(xiàng),表示該定時(shí)器正處于空閑、使用或溢出狀態(tài)。定時(shí)器的定時(shí)值和定時(shí)器超時(shí)后要發(fā)送的消息也存儲(chǔ)在定時(shí)器節(jié)點(diǎn)中,從而實(shí)現(xiàn)用一個(gè)硬件定時(shí)器為用戶提供多個(gè)軟件定時(shí)器。

        為了解決中斷處理時(shí)間開銷大的問題,在模塊中引入一個(gè)輔助定時(shí)器,輔助定時(shí)器的值總是等于所有定時(shí)器節(jié)點(diǎn)中的最小定時(shí)值。在硬件定時(shí)器中斷處理中,僅對(duì)輔助定時(shí)器進(jìn)行減法操作,從而大大縮短了中斷處理的時(shí)間。設(shè)計(jì)原理如圖1所示。

        圖1 定時(shí)器管理模塊

        2 定時(shí)器管理模塊的實(shí)現(xiàn)

        2.1 數(shù)據(jù)結(jié)構(gòu)和函數(shù)接口

        定時(shí)器管理模塊使用的相關(guān)數(shù)據(jù)結(jié)構(gòu)定義如下:

        字段state保存了定時(shí)器節(jié)點(diǎn)的狀態(tài),可能取值為空閑(T_FREE)、使用(T_INUSE)或溢出(T_OVERFLOW)。

        字段count保存了定時(shí)器節(jié)點(diǎn)的定時(shí)值,最大取值為65 535。如果設(shè)置硬件定時(shí)器中斷為10 ms,則軟件定時(shí)器最大定時(shí)約為655 s,可以滿足大多數(shù)應(yīng)用需要。

        字段msg指向定時(shí)器的用戶消息。在啟動(dòng)定時(shí)器時(shí),指向消息的指針被保存在此字段。當(dāng)定時(shí)時(shí)間結(jié)束后,中斷處理函數(shù)會(huì)自動(dòng)發(fā)出這個(gè)消息以通知用戶任務(wù)。

        由于數(shù)組的下標(biāo)是唯一的,可作為識(shí)別節(jié)點(diǎn)的唯一ID號(hào)。下文中提到的節(jié)點(diǎn)ID號(hào)均表示節(jié)點(diǎn)在數(shù)組中的下標(biāo)。

        MAX_TIM ER_NUM表示系統(tǒng)允許的最大定時(shí)器數(shù),其值取決于具體應(yīng)用需要。

        本模塊提供的關(guān)鍵接口函數(shù)如下:

        2.2 定時(shí)器的初始化

        使用定時(shí)器管理模塊前,需要進(jìn)行定時(shí)器的初始化。主要是初始化定時(shí)器節(jié)點(diǎn)數(shù)組,將每一個(gè)定時(shí)器節(jié)點(diǎn)設(shè)置為空閑狀態(tài),同時(shí)將輔助定時(shí)器置零,輔助ID指向0xFF(表示空)。

        2.3 定時(shí)器的啟動(dòng)

        啟動(dòng)一個(gè)定時(shí)器,主要是將節(jié)點(diǎn)數(shù)組中一個(gè)空閑狀態(tài)的節(jié)點(diǎn)置為使用狀態(tài)。如果這個(gè)新啟用的定時(shí)器,是所有定時(shí)器中定時(shí)值最小的,還要更新輔助定時(shí)器。函數(shù)以指向定時(shí)器消息的指針和定時(shí)值為參數(shù),啟動(dòng)定時(shí)器流程如圖2所示。成功啟動(dòng)定時(shí)器后,返回該定時(shí)器節(jié)點(diǎn)的ID號(hào)。

        圖2 啟動(dòng)定時(shí)器流程

        2.4 定時(shí)器的刪除

        在目標(biāo)定時(shí)器到期之前,由于某種原因用戶可能會(huì)要求取消定時(shí)器。如重發(fā)定時(shí)器,用戶在發(fā)送數(shù)據(jù)幀后啟動(dòng)該定時(shí)器,并等待對(duì)方返回響應(yīng)幀。如果在定時(shí)時(shí)間結(jié)束時(shí)沒有收到響應(yīng)幀,用戶就需要重發(fā)原數(shù)據(jù)幀;如果在定時(shí)時(shí)間結(jié)束之前收到響應(yīng)幀,用戶就需要馬上取消該定時(shí)器,然后進(jìn)行下一次通信過程。

        刪除定時(shí)器函數(shù)以定時(shí)器節(jié)點(diǎn)ID號(hào)作為輸入?yún)?shù),將定時(shí)器節(jié)點(diǎn)設(shè)為空閑狀態(tài),并根據(jù)需要更新輔助定時(shí)器,流程如圖3所示。

        2.5 定時(shí)器的驅(qū)動(dòng)

        軟件定時(shí)器的驅(qū)動(dòng)由硬件定時(shí)器提供。在硬件定時(shí)器中斷中,首先將輔助定時(shí)器的值減1。如果輔助定時(shí)器值為0,則表示定時(shí)值最小的定時(shí)器已經(jīng)超時(shí),應(yīng)將對(duì)應(yīng)的消息發(fā)送給用戶任務(wù),將節(jié)點(diǎn)置為空閑狀態(tài),并重新計(jì)算其他節(jié)點(diǎn)的定時(shí)值,同時(shí)查找定時(shí)值最小的節(jié)點(diǎn),更新輔助定時(shí)器。驅(qū)動(dòng)流程如圖4所示。

        圖3 刪除定時(shí)器流程

        圖4 輔助定時(shí)器驅(qū)動(dòng)流程

        關(guān)鍵代碼如下:

        結(jié) 語(yǔ)

        本文設(shè)計(jì)的定時(shí)器管理器模塊,具有邏輯簡(jiǎn)單、效率高的特點(diǎn),在實(shí)驗(yàn)室自主研發(fā)的無線傳感器網(wǎng)絡(luò)中得到應(yīng)用。在共包含30個(gè)節(jié)點(diǎn)的溫、濕、光信息采集系統(tǒng)中,使用該定時(shí)器管理模塊的無線傳感器網(wǎng)絡(luò)協(xié)議運(yùn)行高效、穩(wěn)定。

        [1]張麗云,周洪利.一種嵌入式時(shí)鐘管理器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2006,32(8).

        [2]李光.大型有限狀態(tài)機(jī)系統(tǒng)中的定時(shí)器設(shè)計(jì)[J].無線電工程,2005,35(6).

        [3]于偉,杜新華.通信設(shè)備中相對(duì)定時(shí)器管理方法[J].電子測(cè)量技術(shù),2006,29(3).

        [4]嚴(yán)蔚敏.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)[M].北京:清華大學(xué)出版社,2006.

        猜你喜歡
        時(shí)值數(shù)組空閑
        恩賜
        詩(shī)選刊(2023年7期)2023-07-21 07:03:38
        JAVA稀疏矩陣算法
        國(guó)內(nèi)外冠軍選手桑巴舞競(jìng)技組合動(dòng)作時(shí)值搭配發(fā)展動(dòng)態(tài)的研究
        JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
        “鳥”字謎
        小讀者之友(2019年9期)2019-09-10 07:22:44
        彪悍的“寵”生,不需要解釋
        WLAN和LTE交通規(guī)則
        CHIP新電腦(2016年3期)2016-03-10 14:09:48
        尋找勾股數(shù)組的歷程
        西班牙語(yǔ)教學(xué)中虛擬式的時(shí)值轉(zhuǎn)移問題初探
        我們的工作有愛且美
        師道(2013年9期)2013-04-29 00:44:03
        琪琪色原网站在线观看 | 人妻少妇精品视频专区二区三区| 精品视频一区二区三区在线观看| 99精品国产高清一区二区麻豆 | 国产三级精品三级在线观看粤语| 一区二区三区亚洲视频| 无码人妻一区二区三区兔费 | 久久婷婷五月综合97色直播| 色狠狠av老熟女| 国产在线视频h| 男人的精品天堂一区二区在线观看| 国产一精品一av一免费爽爽| 黄色视频在线免费观看| 91亚洲欧洲日产国码精品| 毛片精品一区二区二区三区| 久久久久88色偷偷| 亚洲成a人v欧美综合天堂麻豆| 久国产精品久久精品国产四虎 | 国产99久久久国产精品~~牛| 国产99久久精品一区二区| 乱子伦av无码中文字幕| 国产大屁股白浆一区二区三区| 亚洲国产精品久久精品| 久久精品国产第一区二区三区| 日本特黄a级高清免费大片| 国产日本精品一区二区免费 | 国产青榴视频在线观看| 91视频免费国产成人| 中文天堂一区二区三区| 成年美女黄网站色大免费视频| 久久久无码中文字幕久...| 亚洲中文欧美日韩在线| 久久精品国产亚洲综合av| 久久久久99精品成人片直播| 有码精品一二区在线| 日韩精品一级在线视频| 麻豆国产精品久久人妻| 亚洲欧美精品aaaaaa片| 人妻av一区二区三区高| 亚洲国产一区二区三区| 日躁夜躁狠狠躁2001|