亚洲免费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
        妺妺窝人体色www在线图片| 日韩在线精品视频一区| 国产一区二区三区毛片| 亚欧色一区w666天堂| 99re热这里只有精品最新| 亚洲国产AⅤ精品一区二区不卡| 国产精品黄页免费高清在线观看| 国语对白在线观看免费| 男女性爽大片视频| 欧美巨大巨粗黑人性aaaaaa| 青青国产成人久久91| 99精品又硬又爽又粗少妇毛片| 在线天堂av一区二区| 人妻少妇精品无码专区| 国产全肉乱妇杂乱视频| 国产真实乱对白在线观看| 牛仔裤人妻痴汉电车中文字幕| 淫片一区二区三区av| 99国产精品久久久蜜芽| 亚洲综合无码一区二区三区| 国产一区二区精品网站看黄| 国产韩国一区二区三区| 日韩精品无码熟人妻视频| 日本理伦片午夜理伦片| 无码一区二区三区在线在看| 熟妇人妻丰满少妇一区 | 国产精品中文第一字幕| 久久精品国语对白黄色| 精品少妇一区二区av免费观看| 日本特黄特色特爽大片| 亚洲熟妇无码av不卡在线播放| 中文字幕人成乱码中文乱码| 亚洲第一女人的天堂av| 亚洲精品蜜夜内射| 亚洲av无码一区二区三区网站| 午夜无码国产18禁| 亚洲不卡免费观看av一区二区| 国产综合精品一区二区三区| 最近中文字幕完整版| 极品美女尤物嫩模啪啪| 亚洲AVAv电影AV天堂18禁 |