「Don't ever underestimate the heart of a champion.」 ——Rudy Tomjanovich網絡
對於這句堪稱Clutch City精神寫照的話,我卻也有着另外一方面的理解。性能
那麼即是:對於專業運動訓練來說,心率表真的是最最重要的輔助設備沒有之一了。spa
此次寫的主題就是心率傳感器(HRM,HeartRateMonitor)。設計
1、回顧ANT+rest
以前的文章中提到了ANT官方對於多種不一樣類型的傳感應用,專門制定了一套設計規範,那就是【ANT+】。blog
ANT+是基於ANT技術的一種受控網絡(managed network)。它對特定類型的傳感器,以及相應的接收終端的設計都給出了標準化的規範與定義。這樣作的好處不言而喻----最大限度地保證了不一樣製造商生產的ANT產品都能具備良好的互操做性、兼容性。而這一點對於創建一個強大的ANT終端生態鏈無疑是相當重要的。開發
本文以最多見的心率檢測應用爲例,介紹ANT+的心率傳感器設計規範。(不含心率接收終端)產品
2、ANT+心率傳感應用it
能夠說心率監測應用是ANT技術表現最出色的領域之一,尤爲是在面臨BLE等技術的有利競爭時,ANT憑藉其優良的性能表現,緊緊堅守着至關比例的市場份額。典型的ANT+心率監測應用以下圖所示。io
在一個ANT通道中,傳感器僅做爲數據發送者,將採集到的心率數據發送至接收終端。接收終端每每是具備屏幕、及存儲器的設備,負責將接收到的信息進行處理並顯示。
傳輸的數據具備兩種數據頁格式,Main Data Pages和Background Data Pages。數據傳輸的頻率固定爲4Hz。
3、通道配置
以前介紹過ANT通道配置的基本參數,在一個ANT+網絡中,對於特定的應用,其通道配置參數都各不相同。HRM設備類型參數則專門定義爲120(0x78)。RF頻率被限定爲2.457GHz上。咱們知道2.4GHz的ISM頻段,其範圍一般是2.4~2.483GHz,例如802.11a/b/g/n協議族,而ANT可用的頻段範圍在2.400~2.524GHz之間,略大於前者。實際上,考慮到ANT的TDMA特性,並無必要對於每一個通道配置不一樣的RF頻率。
通道參數 | Transmitter | Receiver | |
網絡key | ANT+ key | ANT+ key | |
RF 頻率 | 2.457GHz (0x39) | 2.457GHz (0x39) | |
通道ID | 設備ID | 1-65535 | 0-1-65535 (0 用於配對) |
設備類型 | 120 (0x78) | 120 (0x78) | |
傳輸類型 | 1 (0x01) | 0 (0x00用於配對) | |
通道類型 | 0x10 (雙向主通道) | 0x00 (雙向從通道) | |
通道週期 | 8070 (4.06Hz) | 8070-16140-32280 (4.06-2.03-1.02Hz) | |
數據類型 | Broadcast | Broadcast (可選Ack Burst) |
4、數據頁格式
ANT+爲HRM定義了2類共5種Data Page格式。各個Page之間即包含共有信息,也包含專有信息。
Main Data Page:
page0,爲簡單的心率顯示終端(如跑步機)提供無需計算或存儲,可直接送顯的實時心率,屬於「萬金油」類型數據。
page4,最經常使用的格式數據。包含了先後兩次心跳發生的時間差,爲計算實時心室搏動間距R-R Interval提供了可能。
Background Data Page:
page1,傳感器累計工做時間,用於記錄傳感器的電池消耗情況。終端藉此實現低電量警示功能。
page2,OEM生產商ID信息,須要向Nordic交錢申請。
page3,OEM製造商ID信息。
根據其做用的不一樣,各個page的發送週期也必然不一樣。Main類的數據發送頻率爲4Hz,而Background的信息由於相對沒那麼重要,其數據發送頻率爲每65個page發送一次。
PS:接收端能夠選擇以1~2~4Hz爲頻率接收數據,響應地會帶來功耗以及數據刷新率的改變,須要特別考慮。
byte 0 | byte 1 | byte 2 | byte 3 | byte 4 | byte 5 | byte 6 | byte 7 | |
page 0 | 0x00/0x80 | 0xFF 並無什麼卵用 |
當次心跳時間 0~64s循環計數 步長1/1024s LSB------MSB |
心跳累計 0~255 循環 |
瞬時心率 1-255 bpm 0x00無效 |
|||
page 4 | 0x04/0x84 | 製造商自定義 接收端不解讀 |
前次心跳時間 0~64s循環計數 步長1/1024s LSB------MSB |
|||||
page 1 | 0x01/0x81 | 0~0xFFFFFF 上電計數,用於記錄電池使用時間 每2s+1,MAX 9320h |
||||||
page 2 | 0x02/0x82 | 製造商ID | 設備ID擴展字段 | |||||
page 3 | 0x03/0x83 | 硬件版本號 | 軟件版本號 | 模塊版本號 |
在Byte 0中有一個toggle bits,其做用在於:當先後消息相同,即心率低於數據發送速率時,用以提醒接收端新消息的到來。
另外值得一提的是,使用page4相比「萬金油」page0的優點在於,利用先後兩次心跳的時間間隔計算心率,比直接獲得的瞬時心率更加穩定可靠。因此絕大多數現有ANT+HRM都是使用page4來傳輸數據。
最後還有一點,對於開發者,製造商ID可設置爲0xFF。
好了,ANT+的心率傳感器設計規範到此就介紹完了。並無很複雜的樣子~ ANT畢竟還算是個developer friendly的協議嘛~
下次將介紹心率傳感器應用層相關的一些開發。JUST HRBEAT iT。;)