npw的工作日志

认识自己,认识世界。

导航

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

 

 

posted on 2015-07-26 20:59  npw  阅读(4973)  评论(0编辑  收藏  举报