ANT+ 之【心率傳感器設計】【上】


“Don't ever underestimate the heart of a champion.”  ——Rudy Tomjanovich

對於這句堪稱Clutch City精神寫照的話,我卻也有着另一方面的理解。

那么便是:對於專業運動訓練來講,心率表真的是最最重要的輔助設備沒有之一了。

這次寫的主題就是心率傳感器(HRM,HeartRateMonitor)。

 

 

 

一、回顧ANT+

  之前的文章中提到了ANT官方對於多種不同類型的傳感應用,專門制定了一套設計規范,那就是【ANT+】。

  ANT+是基於ANT技術的一種受控網絡(managed network)。它對特定類型的傳感器,以及相應的接收終端的設計都給出了標准化的規范與定義。這樣做的好處不言而喻----最大限度地保證了不同制造商生產的ANT產品都能具有良好的互操作性、兼容性。而這一點對於建立一個強大的ANT終端生態鏈無疑是至關重要的。

  本文以最常見的心率檢測應用為例,介紹ANT+的心率傳感器設計規范。(不含心率接收終端)

 

二、ANT+心率傳感應用

  可以說心率監測應用是ANT技術表現最出色的領域之一,尤其是在面臨BLE等技術的有利競爭時,ANT憑借其優良的性能表現,牢牢堅守着相當比例的市場份額。典型的ANT+心率監測應用如下圖所示。

                                  

  在一個ANT通道中,傳感器僅作為數據發送者,將采集到的心率數據發送至接收終端。接收終端往往是具有屏幕、及存儲器的設備,負責將接收到的信息進行處理並顯示。

  傳輸的數據具有兩種數據頁格式,Main Data Pages和Background Data Pages。數據傳輸的頻率固定為4Hz

 

三、通道配置

  之前介紹過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)

 

四、數據頁格式

  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。;)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM