[導讀]本文設(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)系本站刪除。
港交所擬修改主板上市規(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)鍵字:
射頻
硬件
近日,隨著萬眾矚目的蘋果秋季發(fā)布會告一段落,幾款新產(chǎn)品也進入大眾視野。這一屆新產(chǎn)品雖在軟件上令人耳目一新,但硬件上卻無太大更新。不過在硬件的布置方面,蘋果仍有值得一提的動作,比如被嵌入到AirPods Pro耳機盒中的U...
關(guān)鍵字:
蘋果
硬件
U1芯片
看門狗(watch dog)是一個定時器,可以設(shè)置一個定時時間,計時到時會把MCU復位,所以MCU必須要在定時時間到之前將計數(shù)值重置(這個動作通常稱為喂狗)。在嵌入式系統(tǒng)中加入看門狗,可以監(jiān)測MCU是否還在正常運行,如果...
關(guān)鍵字:
看門狗
定時器
深圳2022年9月14日 /美通社/ -- 近日,憶聯(lián)旗下企業(yè)級固態(tài)硬盤UH811a/UH831a系列經(jīng)過微軟中國技術(shù)中心的各項嚴格測試,已正式通過了微軟WHQL認證。標志著憶聯(lián)UH811a/UH831a系列與Windo...
關(guān)鍵字:
微軟
硬件
SSD
讀寫
9月8日凌晨消息,蘋果公司召開秋季新品發(fā)布會,推出iPhone 14系列、Apple Watch Pro 2代,以及Apple Watch Series 8,新一代的“蘋果三件套”誕生。
關(guān)鍵字:
硬件
芯片
蘋果
自上個世紀七十年代提出嵌入式系統(tǒng)的概念以來,嵌入式系統(tǒng)以其高性能、低功耗、低成本和小體積等優(yōu)勢,獲得了飛速的發(fā)展與廣泛的應用,然而,由于受到當時硬件水平的制約,嵌入式系統(tǒng)的軟件開發(fā)方式與以 PC 為代表的通用計算機系統(tǒng)的...
關(guān)鍵字:
嵌入式
硬件
計算機
(全球TMT2022年9月9日訊)國際獨立第三方檢測、檢驗和認證機構(gòu)德國萊茵TUV大中華區(qū)(簡稱"TUV萊茵")為深圳市大疆創(chuàng)新科技有限公司(簡稱"大疆")旗下全新的飛行眼鏡DJI Goggles 2頒發(fā)了低藍光認證證...
關(guān)鍵字:
藍光
大疆
GO
硬件
(全球TMT2022年9月5日訊)登臨科技發(fā)布"登臨瀚海"生態(tài)合作伙伴計劃,該計劃基于登臨的GPU+技術(shù)平臺,登臨聯(lián)合包括硬件服務(wù)器/工控機廠家、算法、系統(tǒng)軟件、行業(yè)解決方案等眾多合作伙伴,共同構(gòu)建先進的AI生態(tài)體系。...
關(guān)鍵字:
GPU
AI
硬件
CPU
(全球TMT2022年9月5日訊)燧原科技在2022世界人工智能大會"算盡其用·定義AI算力中心新實踐"云端算力產(chǎn)業(yè)應用論壇上正式發(fā)布云燧智算機(CloudBlazer POD)。云燧智算機是針對大規(guī)模、集約化人工智能...
關(guān)鍵字:
人工智能
數(shù)據(jù)中心
節(jié)點
CPU
8月30日,在“2022臺積電技術(shù)論壇”上,臺積電CEO魏哲家表示,臺積電的3納米芯片即將量產(chǎn),但并不是大家此前預想的GAA架構(gòu),而是選擇延用FinFET架構(gòu)。至于2納米芯片,可以保證會在2025年量產(chǎn)。
關(guān)鍵字:
2納米
芯片
硬件
凝聚燧原科技兩代芯片研發(fā)與多個大規(guī)模人工智能算力中心工程實踐,面向大規(guī)模、集約化、綠色低碳數(shù)據(jù)中心建設(shè),云燧智算機(CloudBlazer POD)正式發(fā)布。 上海2022年9月3日 /美通社/ -- 燧原科技在202...
關(guān)鍵字:
人工智能
數(shù)據(jù)中心
節(jié)點
TC