国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

一種高效率的定時器管理模塊設計

發布時間:2010-3-18 10:26    發布者:李寬
關鍵詞: 定時器 , 高效率 , 管理 , 模塊 , 設計
引言

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

用一定的數據結構將這些軟件定時器組織起來,并提供統一的調用接口,稱為“定時器管理”。目前定時器管理主要有2種實現方法:

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

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

1  定時器管理模塊的設計

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

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



2 定時器管理模塊的實現

2.1  數據結構和函數接口

定時器管理模塊使用的相關數據結構定義如下:



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

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

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

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

MAX_TIMER_NUM表示系統允許的最大定時器數,其值取決于具體應用需要。

本模塊提供的關鍵接口函數如下:



2.2定時器的初始化

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

2.3定時器的啟動

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



2.4定時器的刪除

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

刪除定時器函數以定時器節點ID號作為輸入參數,將定時器節點設為空閑狀態,并根據需要更新輔助定時器,流程如圖3所示。



2.5定時器的驅動

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

關鍵代碼如下:



結語

本文設計的定時器管理器模塊,具有邏輯簡單、效率高的特點,在實驗室自主研發的無線傳感器網絡中得到應用。在共包含30個節點的溫、濕、光信息采集系統中,使用該定時器管理模塊的無線傳感器網絡協議運行高效、穩定。

來源:陳曉煒,石江宏 (廈門大學 通信工程系,廈門 361005)
來源:《單片機與嵌入式系統應用》2010年01期
本文地址:http://www.qingdxww.cn/thread-9533-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产三级在线观看视频不卡 | 四虎国产永久免费久久 | 国产成人1024精品免费 | 日韩黄色在线播放 | 欧美不卡视频在线 | 亚洲欧美视频一区二区三区 | 国产免费自拍视频 | 日本欧美在线视频 | 精品日韩在线观看 | 国内精品国语自产拍在线观看91 | 欧美日本韩国一区二区 | 又粗又硬又猛又黄的免费视频黑人 | 日本一区二区中文字幕 | 国产乱在线观看完整版视频 | 国产精品香蕉在线一区二区 | 成人欧美一区二区三区黑人免费 | 二级片在线观看 | 欧美日韩在线视频观看 | 国产激情视频在线播放 | 欧美日一本 | 热99re久久精品这里都是免费 | 久草综合在线视频 | 欧美一区二区三区视视频 | 精品国产一区二区三区19 | 精品亚洲大全 | 性生生活三级视频在线观看 | 日韩成人在线免费视频 | 加勒比综合 | 91久久精品国产91久久性色也 | 韩国女主播一区二区 | 亚洲国产一区在线观看 | 99爱视频免费高清在线观看 | 国产精品福利在线 | 看片日韩 | 亚洲成人手机在线 | 亚洲精品国产精品国自产观看 | 福利社在线免费观看 | 成品人app软件大全下载 | 欧美日韩在线一区 | 高清视频一区二区三区 | 日本免费在线视频 |