www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 模擬 > 模擬
[導讀]本文設(shè)計的定時器管理器模塊,具有邏輯簡單、效率高的特點,在實驗室自主研發(fā)的無線傳感器網(wǎng)絡(luò)中得到應用。在共包含30個節(jié)點的溫、濕、光信息采集系統(tǒng)中,使用該定時器管理模塊的無線傳感器網(wǎng)絡(luò)協(xié)議運行高效、穩(wěn)定。

引  言

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

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

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

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

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

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

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


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

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

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



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

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

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

由于數(shù)組的下標是唯一的,可作為識別節(jié)點的唯一ID號。下文中提到的節(jié)點ID號均表示節(jié)點在數(shù)組中的下標。

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

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


2.2定時器的初始化

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

2.3定時器的啟動

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



2.4定時器的刪除

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

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


2.5定時器的驅(qū)動

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

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


結(jié)  語

本文設(shè)計的定時器管理器模塊,具有邏輯簡單、效率高的特點,在實驗室自主研發(fā)的無線傳感器網(wǎng)絡(luò)中得到應用。在共包含30個節(jié)點的溫、濕、光信息采集系統(tǒng)中,使用該定時器管理模塊的無線傳感器網(wǎng)絡(luò)協(xié)議運行高效、穩(wěn)定。
本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

北京2022年10月19日 /美通社/ -- 近日,Gartner首次發(fā)布全球邊緣計算市場指南報告(《Market Guide for Edge Computing》,以下簡稱"市場指南"),這是20...

關(guān)鍵字: 邊緣計算 GARTNER 節(jié)點 數(shù)據(jù)中心

港交所擬修改主板上市規(guī)則,以便利尚未有盈利或業(yè)績支持的先進技術(shù)企業(yè)融資。港交所刊發(fā)有關(guān)特??萍脊旧鲜兄贫鹊淖稍兾募嶙h對《上市規(guī)則》進行修訂,建議設(shè)立新渠道,以讓特專科技公司于聯(lián)交所主板上市,并就此征詢市場意見。新規(guī)...

關(guān)鍵字: 信息技術(shù) 新能源 硬件

AWTK 全稱 Toolkit AnyWhere,是 ZLG 開發(fā)的開源 GUI 引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機和 PC 打造的通用 GUI 引擎,為用戶提供一個功能強大、高效可靠、簡單易用、可輕松做出...

關(guān)鍵字: 致遠電子 AWTK AWPLC 定時器

流水賬式的推文比較亂,不夠系統(tǒng),也形成不了好的宣傳效應,所以我整理了一個硬件基礎(chǔ)知識框架,后面推文會圍繞這個展開,中間也會穿插一些項目和實際應用例程。

關(guān)鍵字: 硬件 項目 例程

Linux內(nèi)核是從V2.6開始引入設(shè)備樹的概念,其起源于OF:OpenFirmware, 用于描述一個硬件平臺的硬件資源信息,這些信息包括:CPU的數(shù)量和類別、內(nèi)存基地址和大小、總線和橋、外設(shè)連接、中斷控制器和中斷使用情...

關(guān)鍵字: Linux內(nèi)核 硬件 CPU

珀金埃爾默日前推出Cellaca PLX圖像式細胞分析系統(tǒng),這是業(yè)界第一款能讓研究人員在單個自動化工作流中實現(xiàn)對細胞樣本多個關(guān)鍵質(zhì)量屬性進行分析和評估的臺式平臺,包括對細胞性質(zhì)、質(zhì)量和數(shù)量的分析評估。擁有尖端技術(shù)的Cel...

關(guān)鍵字: AC EXCEL 硬件 自動化

上海2022年10月11日 /美通社/ -- 10月10日,明月鏡片正式官宣劉昊然成為品牌代言人。一個是中國鏡片領(lǐng)導品牌,通過科技創(chuàng)新引領(lǐng)了鏡片行業(yè)的發(fā)展;一個是新生代實力演員,憑借高票房作品贏得了觀眾的認可。此次雙方攜...

關(guān)鍵字: PMC 控制 節(jié)點 藍光

上周說開始盤三極管,周末我專門花時間去研究了小伙伴的留言,又去翻了模電的書,目的是尋找好的切入點。去翻課本,發(fā)現(xiàn)課本上總是會從三極管的發(fā)展歷程講起,談?wù)勅龢O管的物理構(gòu)成,分析內(nèi)部載流子的傳輸過程,電流的分配關(guān)系等等。這些...

關(guān)鍵字: 三極管 內(nèi)部載流子 硬件

據(jù)相關(guān)消息報道,愛立信近日表示,自從俄烏沖突發(fā)生以來,愛立信方面只向俄羅斯提供軟件和技術(shù)支持,已經(jīng)停止了向移動運營商出售任何電信硬件設(shè)備的渠道和業(yè)務(wù)。

關(guān)鍵字: 愛立信 俄羅斯 硬件

有人問我射頻怎么學?能不能速成?老實說我這水平也只是剛?cè)腴T,5G/4G/V2X/毫米波雷達/相控陣等等我都沒有設(shè)計過,僅僅是對PA,LNA,混頻器,濾波器,單芯片收發(fā)(零中頻/低中頻),超外差架構(gòu)等等有一些對應的項目設(shè)計...

關(guān)鍵字: 射頻 硬件

模擬

31144 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉