劉 坤
?
一種在深度休眠模式下保持低功耗藍牙本地時間基準的方法
劉 坤
上海交通大學電子工程系,上海 200125
設計一種深度休眠期間保持本地藍牙基準時間的方案,分析了低功耗藍牙數據通信的特點,闡明了目前市場產品對低功耗藍牙芯片在深度休眠期間要求極低功耗的現狀。提出了在深度休眠期間,降低功耗必要性和可行性,隨后闡述了方案的整個設計思路。
藍牙;低功耗
因為大多數智能藍牙裝置都是由電池供電,所以藍牙功耗的高低直接影響電池的使用壽命,根據低功耗藍牙協議,通信間隔最大值為32秒,而一個藍牙分組傳輸的最大時間僅僅為2120微秒,由此可見低功耗藍牙芯片在絕大部分時間都出現空閑狀態,如何降低空閑狀態的功耗就成了設計的關鍵。[1]
芯片電路的功耗主要來自兩個個方面:動態功耗、漏電功耗。[2]在深度休眠模式下關閉藍牙時鐘能有效地降低動態功耗,切斷藍牙電路的電源能有效地降低漏電功耗,但是深度休眠過程中本地基準時間仍然必須維持,以保證在下一個同步點能夠與對端藍牙設備通信,以免鏈接丟失,因此迫切地需要一種能夠以極低功耗維持本地藍牙基準時間的方案。[3]
藍牙本地時間基準即對625微秒和1微秒計數,本方案在深度休眠期間內采用32kHz低頻時鐘來維持本地藍牙時間基準計數,退出深度休眠時對其進行修正。
3.1 工作模式切換
如圖1所示,MCU首先設定好休眠時間即32K時鐘的計數時間,配置deep sleep request寄存器要求藍牙電路進入到低功耗模式,低功耗電路收到請求后記錄下當前的本地藍牙時間基準,并啟動32K計數器,隨后藍牙電路可根據需要關閉主時鐘、切斷電源。系統計入到深度休眠模式。

圖1 Active與Deep Sleep模式切換
當設定的深度睡眠時間達到前的Tpower_up時刻首先恢復藍牙電路的電源,隨后釋放復位,恢復主時鐘。[4]等到32K計數器達到設定的計數值后,首先恢復本地藍牙時間基準停止前的現場值并開始正常計數,同時通知軟件開始計算修正值,等到第一個625us記滿后,自動將修正值裝載到625us和1us另個計數器中,本地藍牙時間基準恢復完成。
3.2 藍牙時間基準修正
當藍牙電路從Deep Sleep模式切換至Active模式后,625us和1us這兩個本地時間基準必須要恢復到當前時間,因此這里需要一個藍牙時間基準修正機制,這個機制需要將深度休眠時間Tdeep_sleep換算成625us和1us補償值。藍牙電路在進入Active模式后的第一個625us的tick到來時對625us和1us這兩個本地時間基準進行補償,使得本藍牙時間基準徹底恢復,從而保證在下一個時間同步點與對端藍牙設備能夠順利通信。這個機制的實現過程如下。[5]
第一步:計算實際的深度睡眠時間Tdeep_sleep,采用公式1:
等候的間隙,有的到辦公室處理公務或準備“邊整邊改”的資料。辦公室是一棟紅磚平房,每間辦公室至少擺放五張辦公桌,辦公室門朝里,窗戶對外,仿佛暗示著不宜公開。還有的則聚在一起閑聊,閑聊就是拿人開涮,以埋汰人為樂事。選準“課題”臨場發揮,腦筋急轉彎,顧左右而言他,張冠李戴,旁敲側擊是開涮的基本功。以前當過村支書的農辦主任吳家金正準備娶媳婦,即將成為可以和媳婦“扒灰”的“燒火佬”,大家你一言我一語就拼湊了一副對聯,上聯“婆婆結親灶前灶后”,下聯“公公娶媳火叉火鉗”,橫批“親上加親”,只差筆墨侍候了。
第二步:計算深度休眠時間中625us tick的個數,即深度休眠時間相對于625us的整數部分,采用公式2:
第三步:計算深度休眠時間相對于625us的小數部分,采用公式3:
第四步:將修正值寫入到藍牙電路的寄存器中,625us和1us計數器的修正值將采用計算公式4和公式5:
從深度休眠到正常工作的藍牙時間基準校正如圖2所示:
圖2 藍牙時間基準修正過程
(1)藍牙電路進入到deep sleep模式,藍牙電路主時鐘關閉,32kHz時鐘開始計數。[6]
(2)當32kHz計數器達到設定的深度休眠時間的計數值時,喚醒藍牙電路,并打開藍牙主時鐘,藍牙時間基準計數器恢復從進入深度休眠的時刻開始計數。[7]
(4)等到625us Tick來臨時,625us和1us兩個計數器分別載入修正值。并從修正值開始計數。[8]
(5)再次等到625us Tick來臨時,625us和1us兩個計數器恢復正常計數,此后藍牙本地時間基準得以恢復。
本地藍牙基準時間是藍牙設備能夠在約定的時間點與對端設備完成同步的重要基石,本文提出了一種在深度休眠模式下利用低頻時鐘暫時維護本地藍牙基準時間,并且在退出深度休眠模式能夠精確恢復本地藍牙基準時間的方案。本方案可以在不增加過多芯片面積的情況下得到很大的降低功耗的收益。
[1]王劍鋒,陳燦峰,劉嘉,等.一種基于IPv6和低功耗藍牙的物聯網體系結構[J].計算機科學,2013,40(5):97-102.
[2]洪大能,曹炬,鐘曉蓉.談一種新興的藍牙技術——超低功耗藍牙技術[J].科研,2015(58)12.
[3]胥京宇.賽普拉斯低功耗藍牙單芯片為物聯網助力[J].世界產品與技術,2014(12):53.
[4]蘇松,胡引翠,盧光耀,等.低功耗藍牙手機終端室內定位方法[J].測繪通報,2015(12):81-84.
[5]逄淑松,程凱,劉光發,等.MSP430G2553單片機超低功耗的研究與設計[J].單片機與嵌入式系統應用,2013,13(4):1-2.
[6]楊鑫,申長軍,趙春江,等.低功耗遠程墑情自動監測站設計[J].節水灌溉,2012(7):53-55.
[7]張維津,張科峰.可重構幸存路徑管理Viterbi譯碼器的研究與設計[J].微電子學與計算機,2011,28(2):20-22.
[8]趙魯榮,李欣,程文華.恒電位儀自動測量的設計[J].現代電子技術,2013(11):92-94.
Method for Maintaining Low Power Consumption Bluetooth Local Time Reference in deep Sleep Mode
Liu Kun
Department of electronic engineering, Shanghai Jiao Tong University, Shanghai 200125
the main task of this paper is to design a scheme to maintain local Bluetooth standard time during deep sleep. In this paper, the characteristics of Low Power Bluetooth data communication are analyzed, and the current market products are expounded. The necessity and feasibility of reducing power consumption during the period of deep sleep is put forward. Then, the whole design idea of the scheme is described.
Bluetooth; low power consumption
TN925
A
1009-6434(2016)6-0202-02