国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 資料介紹
  • 資料預(yù)覽
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

AN5469 BlueNRG-LP、BlueNRG-LPS 定時器模塊

01/09 16:23
1411
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

AN5469 BlueNRG-LP、BlueNRG-LPS 定時器模塊

399.00 KB

BlueNRG-LP、BlueNRG-LPS 是超低功耗的 BLE 單模片上系統(tǒng),符合 Bluetooth?規(guī)范。其架構(gòu)核心是 32 位的 CortexM0+。

本文檔介紹管理 BlueNRG-LP、BlueNRG-LPS 鏈路控制器定時器軟件模塊的特性和功能。不同硬件定時器的詳細(xì)描述詳見在無線電控制器參考手冊。

定時器模塊庫由兩層不同程度的抽象組成,允許應(yīng)用程序對與設(shè)備喚醒、用戶超時或預(yù)配置的無線電事務(wù)觸發(fā)相關(guān)的事件進行編程。

因此,任何 BLE 和私有無線電應(yīng)用均基于定時器模塊庫。

模塊描述

模塊包括四個文件 : rf_driver_hal_vtimer.c rf_driver_hal_vtimer.h 、 rf_driver_ll_timer.c , 以 及rf_driver_ll_timer.h。這些文件代表將應(yīng)用程序與硬件分開的兩個層。

第一層通過允許虛擬化設(shè)備上可用資源的軟件結(jié)構(gòu)抽象硬件計時器。第二層直接連接到硬件,可將以“不依賴于硬件的單位”表示的時間轉(zhuǎn)換為“依賴于硬件的單位”,反之亦然。這些轉(zhuǎn)換考慮了硬件定時器的計數(shù)速率。

虛擬定時器

BlueNRG-LP、BlueNRG-LPS 鏈路控制器提供定時器計數(shù)器,用于喚醒處于低功耗模式階段的設(shè)備(而非用于觸發(fā)無線電操作)。

定時器模塊利用單個定時器的硬件資源,實現(xiàn)多個虛擬定時器的分配。

對虛擬定時器數(shù)量的唯一限制是設(shè)備上的可用內(nèi)存空間。

虛擬定時器類似于普通定時器。例如,用戶可以對虛擬定時器進行編程,以便在特定的時間執(zhí)行某些動作。

從應(yīng)用程序的角度來看,虛擬定時器是一個軟件結(jié)構(gòu),除了到期時間外,還包含指向某些用戶數(shù)據(jù)和回調(diào)的指針?;卣{(diào)是在時間耗盡時執(zhí)行的例程。

該軟件抽象允許在應(yīng)用程序定義的虛擬定時器之間共享硬件定時器的功能(如下所述)。

虛擬定時器啟動后,其實例將被放置在按到期時間排序的隊列中。如果虛擬定時器先于隊列中的其他事件運行,則將其置于頂部,并對硬件定時器進行編程。否則,當(dāng)輪次達到時,虛擬定時器會在其他已經(jīng)啟動的定時器之間發(fā)生。

當(dāng)一個虛擬定時器到期后,內(nèi)部狀態(tài)機負(fù)責(zé)執(zhí)行鏈接到剛剛到期的虛擬定時器的回調(diào),并為隊列中的下一個定時器保留硬件計數(shù)器。

虛擬定時器的超時被視為絕對時間。這意味著,它(例如)像日歷上某個特定時間的事件一樣發(fā)生。

虛擬時基

在定時器模塊內(nèi)部,時間根據(jù)系統(tǒng)時間單位(STU)進行測量。它與硬件振蕩器的變化無關(guān),并直接暴露給用戶。各超時事件均以 STU 表示。一個 STU 等于 625/256μs(約 2.4414μs),可以輕松表達藍牙協(xié)議規(guī)定的時間。只有在對真正的計數(shù)器進行編程,以 STU 表示的時間才會在硬件定時器計數(shù)單元中進行轉(zhuǎn)換。

以 STU 為單位的時間累積在一個 64 位長的全局變量上。如果一個數(shù)字手表每 24 小時溢出清零一次,則定時器模塊的時基需要一百多萬年才會溢出清零。

而從不溢出清零的時基由于能夠顯示事件的先后順序,以及判斷某事件是否為過去事件,因而具有相當(dāng)高的實用性。

然而,此類時基必須處理硬件定時器的有限長度,因此也被稱為“虛擬時基”。為了正確地累積時間,必須在每次硬件定時器溢出清零之前至少更新一次虛擬時基變量。

這一重要機制存在于內(nèi)部,不對用戶負(fù)責(zé),由一個專用的虛擬定時器保持活動狀態(tài),且該定時器在初始化階段由模塊自動待命。

此類特殊的虛擬定時器通過定時器硬件容量允許的最大可能值定期進行編程。這意味著,處于低功耗模式的設(shè)備會被周期性喚醒,以執(zhí)行時基維護。BlueNRG-LP、BlueNRG-LPS 大約每 138 分鐘喚醒一次。

資料預(yù)覽

相關(guān)推薦

哈巴河县| 邹平县| 平顶山市| 日土县| 怀仁县| 嘉禾县| 那坡县| 五指山市| 天峻县| 五华县| 柳林县| 刚察县| 罗山县| 三亚市| 吉木乃县| 莆田市| 乐都县| 门源| 萨嘎县| 包头市| 丰台区| 永仁县| 鹰潭市| 紫云| 会东县| 拉萨市| 吴川市| 黑山县| 宜兰市| 万盛区| 盐津县| 洛宁县| 长沙市| 岳西县| 新民市| 洛宁县| 泽库县| 长葛市| 古浪县| 黄陵县| 壤塘县|