[導(dǎo)讀]本文設(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)定。
引 言
定時(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所示。
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_TIMER_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.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所示。
關(guān)鍵代碼如下:
結(jié) 語
本文設(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)定。
欲知詳情,請(qǐng)下載word文檔
下載文檔
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
港交所擬修改主板上市規(guī)則,以便利尚未有盈利或業(yè)績(jī)支持的先進(jìn)技術(shù)企業(yè)融資。港交所刊發(fā)有關(guān)特專科技公司上市制度的咨詢文件,提議對(duì)《上市規(guī)則》進(jìn)行修訂,建議設(shè)立新渠道,以讓特專科技公司于聯(lián)交所主板上市,并就此征詢市場(chǎng)意見。新規(guī)...
關(guān)鍵字:
信息技術(shù)
新能源
硬件
AWTK 全稱 Toolkit AnyWhere,是 ZLG 開發(fā)的開源 GUI 引擎,旨在為嵌入式系統(tǒng)、WEB、各種小程序、手機(jī)和 PC 打造的通用 GUI 引擎,為用戶提供一個(gè)功能強(qiáng)大、高效可靠、簡(jiǎn)單易用、可輕松做出...
關(guān)鍵字:
致遠(yuǎn)電子
AWTK
AWPLC
定時(shí)器
流水賬式的推文比較亂,不夠系統(tǒng),也形成不了好的宣傳效應(yīng),所以我整理了一個(gè)硬件基礎(chǔ)知識(shí)框架,后面推文會(huì)圍繞這個(gè)展開,中間也會(huì)穿插一些項(xiàng)目和實(shí)際應(yīng)用例程。
關(guān)鍵字:
硬件
項(xiàng)目
例程
Linux內(nèi)核是從V2.6開始引入設(shè)備樹的概念,其起源于OF:OpenFirmware, 用于描述一個(gè)硬件平臺(tái)的硬件資源信息,這些信息包括:CPU的數(shù)量和類別、內(nèi)存基地址和大小、總線和橋、外設(shè)連接、中斷控制器和中斷使用情...
關(guān)鍵字:
Linux內(nèi)核
硬件
CPU
珀金埃爾默日前推出Cellaca PLX圖像式細(xì)胞分析系統(tǒng),這是業(yè)界第一款能讓研究人員在單個(gè)自動(dòng)化工作流中實(shí)現(xiàn)對(duì)細(xì)胞樣本多個(gè)關(guān)鍵質(zhì)量屬性進(jìn)行分析和評(píng)估的臺(tái)式平臺(tái),包括對(duì)細(xì)胞性質(zhì)、質(zhì)量和數(shù)量的分析評(píng)估。擁有尖端技術(shù)的Cel...
關(guān)鍵字:
AC
EXCEL
硬件
自動(dòng)化
上海2022年10月11日 /美通社/ -- 10月10日,明月鏡片正式官宣劉昊然成為品牌代言人。一個(gè)是中國鏡片領(lǐng)導(dǎo)品牌,通過科技創(chuàng)新引領(lǐng)了鏡片行業(yè)的發(fā)展;一個(gè)是新生代實(shí)力演員,憑借高票房作品贏得了觀眾的認(rèn)可。此次雙方攜...
關(guān)鍵字:
PMC
控制
節(jié)點(diǎn)
藍(lán)光
上周說開始盤三極管,周末我專門花時(shí)間去研究了小伙伴的留言,又去翻了模電的書,目的是尋找好的切入點(diǎn)。去翻課本,發(fā)現(xiàn)課本上總是會(huì)從三極管的發(fā)展歷程講起,談?wù)勅龢O管的物理構(gòu)成,分析內(nèi)部載流子的傳輸過程,電流的分配關(guān)系等等。這些...
關(guān)鍵字:
三極管
內(nèi)部載流子
硬件
據(jù)相關(guān)消息報(bào)道,愛立信近日表示,自從俄烏沖突發(fā)生以來,愛立信方面只向俄羅斯提供軟件和技術(shù)支持,已經(jīng)停止了向移動(dòng)運(yùn)營商出售任何電信硬件設(shè)備的渠道和業(yè)務(wù)。
關(guān)鍵字:
愛立信
俄羅斯
硬件
有人問我射頻怎么學(xué)?能不能速成?老實(shí)說我這水平也只是剛?cè)腴T,5G/4G/V2X/毫米波雷達(dá)/相控陣等等我都沒有設(shè)計(jì)過,僅僅是對(duì)PA,LNA,混頻器,濾波器,單芯片收發(fā)(零中頻/低中頻),超外差架構(gòu)等等有一些對(duì)應(yīng)的項(xiàng)目設(shè)計(jì)...
關(guān)鍵字:
射頻
硬件
近日,隨著萬眾矚目的蘋果秋季發(fā)布會(huì)告一段落,幾款新產(chǎn)品也進(jìn)入大眾視野。這一屆新產(chǎn)品雖在軟件上令人耳目一新,但硬件上卻無太大更新。不過在硬件的布置方面,蘋果仍有值得一提的動(dòng)作,比如被嵌入到AirPods Pro耳機(jī)盒中的U...
關(guān)鍵字:
蘋果
硬件
U1芯片
看門狗(watch dog)是一個(gè)定時(shí)器,可以設(shè)置一個(gè)定時(shí)時(shí)間,計(jì)時(shí)到時(shí)會(huì)把MCU復(fù)位,所以MCU必須要在定時(shí)時(shí)間到之前將計(jì)數(shù)值重置(這個(gè)動(dòng)作通常稱為喂狗)。在嵌入式系統(tǒng)中加入看門狗,可以監(jiān)測(cè)MCU是否還在正常運(yùn)行,如果...
關(guān)鍵字:
看門狗
定時(shí)器
深圳2022年9月14日 /美通社/ -- 近日,憶聯(lián)旗下企業(yè)級(jí)固態(tài)硬盤UH811a/UH831a系列經(jīng)過微軟中國技術(shù)中心的各項(xiàng)嚴(yán)格測(cè)試,已正式通過了微軟WHQL認(rèn)證。標(biāo)志著憶聯(lián)UH811a/UH831a系列與Windo...
關(guān)鍵字:
微軟
硬件
SSD
讀寫
9月8日凌晨消息,蘋果公司召開秋季新品發(fā)布會(huì),推出iPhone 14系列、Apple Watch Pro 2代,以及Apple Watch Series 8,新一代的“蘋果三件套”誕生。
關(guān)鍵字:
硬件
芯片
蘋果
自上個(gè)世紀(jì)七十年代提出嵌入式系統(tǒng)的概念以來,嵌入式系統(tǒng)以其高性能、低功耗、低成本和小體積等優(yōu)勢(shì),獲得了飛速的發(fā)展與廣泛的應(yīng)用,然而,由于受到當(dāng)時(shí)硬件水平的制約,嵌入式系統(tǒng)的軟件開發(fā)方式與以 PC 為代表的通用計(jì)算機(jī)系統(tǒng)的...
關(guān)鍵字:
嵌入式
硬件
計(jì)算機(jī)
(全球TMT2022年9月9日訊)國際獨(dú)立第三方檢測(cè)、檢驗(yàn)和認(rèn)證機(jī)構(gòu)德國萊茵TUV大中華區(qū)(簡(jiǎn)稱"TUV萊茵")為深圳市大疆創(chuàng)新科技有限公司(簡(jiǎn)稱"大疆")旗下全新的飛行眼鏡DJI Goggles 2頒發(fā)了低藍(lán)光認(rèn)證證...
關(guān)鍵字:
藍(lán)光
大疆
GO
硬件
(全球TMT2022年9月5日訊)登臨科技發(fā)布"登臨瀚海"生態(tài)合作伙伴計(jì)劃,該計(jì)劃基于登臨的GPU+技術(shù)平臺(tái),登臨聯(lián)合包括硬件服務(wù)器/工控機(jī)廠家、算法、系統(tǒng)軟件、行業(yè)解決方案等眾多合作伙伴,共同構(gòu)建先進(jìn)的AI生態(tài)體系。...
關(guān)鍵字:
GPU
AI
硬件
CPU
(全球TMT2022年9月5日訊)燧原科技在2022世界人工智能大會(huì)"算盡其用·定義AI算力中心新實(shí)踐"云端算力產(chǎn)業(yè)應(yīng)用論壇上正式發(fā)布云燧智算機(jī)(CloudBlazer POD)。云燧智算機(jī)是針對(duì)大規(guī)模、集約化人工智能...
關(guān)鍵字:
人工智能
數(shù)據(jù)中心
節(jié)點(diǎn)
CPU
8月30日,在“2022臺(tái)積電技術(shù)論壇”上,臺(tái)積電CEO魏哲家表示,臺(tái)積電的3納米芯片即將量產(chǎn),但并不是大家此前預(yù)想的GAA架構(gòu),而是選擇延用FinFET架構(gòu)。至于2納米芯片,可以保證會(huì)在2025年量產(chǎn)。
關(guān)鍵字:
2納米
芯片
硬件
凝聚燧原科技兩代芯片研發(fā)與多個(gè)大規(guī)模人工智能算力中心工程實(shí)踐,面向大規(guī)模、集約化、綠色低碳數(shù)據(jù)中心建設(shè),云燧智算機(jī)(CloudBlazer POD)正式發(fā)布。 上海2022年9月3日 /美通社/ -- 燧原科技在202...
關(guān)鍵字:
人工智能
數(shù)據(jù)中心
節(jié)點(diǎn)
TC