npw的工作日志

认识自己,认识世界。

导航

ANT无线通信技术(2) 通道配置

    

一、ANT通道介绍 

     ANT通道的配置是ANT应用开发中的关键。官方文档中的叫法是“channel”,之所以我翻译为“通道”,而不是“信道”或者“频段”,是因为后两词是常用于电子通信领域中的一个专有概念,往往带有许多的技术背景与色彩。而ANT技术灵活多变的组网通讯方式,使得ANT channel拥有了更为丰富的逻辑含义,使用汉语中意义最广泛的“通道”一词能更好得描述这个抽象的逻辑概念。

       一个ANT通道用于连接至少两个节点,使其能够交换信息。每个通道至少有一个主节点(Master Node)和一个从节点(Slave Node)。

      主节点的角色主要是是信息发送者,从节点的角色主要是信息接收者。注意这个用词“primary transmisstor”,也就说明主节点并不是完全不能接收信息,他也可以反向接收,从节点并不是完全不能发送信息,在必要的时候他也可以反向发送。

      通常来说,我们定义数据消息的传输方向:

              1. 正向传输       主节点————————>从节点    (always)

              2. 反向传输   主节点<————————从节点    (optional)

 

二、ANT通道配置

之后通过设定一些参数,我们可以实现对ANT通道的配置。需要设定的参数有以下几个:

1.通道类型(channel type)

  1.1可选扩展分配(optional extended assignment)

2.无线频率(RF freq.)

3.通道ID(channel ID)

  3.1设备号(device ID)

  3.2传输类型(transmission type)

  3.3设备类型(device type)

4.通道周期(channel period)

5.网络(network)

  5.1网络号(network number)

  5.2网络密钥(network key)

 

下面来详细讲讲各个参数的具体内容。

1.通道类型 [8bit]

    ANT协议根据对通道的使用方式定义了6种通道类型,使用一个8bit的数据域来定义。所有节点在通信前都需要设定自己使用的通道类型,我们可以理解为,这种“自律”的行为,其实也就是为我们定义节点的主从提供了方便。举个有趣的例子,把主节点比作皇阿玛,从节点比作奴才,那么自然就发现皇阿玛总是发号施令的人,而奴才只有听旨的份。 :D

 

数值

通道类型

描述

0x50

0x40

单向主/从通道

仅用于最经典且最“古老”的广播数据类型,节点要么单发,要么单收,因此并不能用于需要网络管理等高级机制的情况。

0x10

0x00

双向主/从通道

 定义节点为双向通道中的主节点。

定义节点为双向通道中的从节点。

0x30

0x20

共享双向主/从通道

 这是最“高级”的形式,用于2个以上节点共用一个通道的情况。比如一个主节点在一个信道上分别对多个从节点交换数据。

                       表1    ANT通道类型

 

1.1可选扩展分配 [8bit?]

    可选扩展分配通过设定一个字段,可以开启一些高级的功能,比如抗干扰的频率捷变功能(freq. agility),以及调试网络使用的后台搜索通道功能(background scanning channel)。我们到后面再详细说这些内容。

 

2.无线频率 [8bit]

    ANT技术使用2.400GHz~2.524GHz频段也就是2400MHZ~2542MHz进行通信,以1MHz为间隔,划分为125个小频段使用。一个通道只能工作在一个小频段上,而不能同时工作在多个小频段。

    以下公式用于确定节点工作的无线频率:

                             

     其中无线频率设定值RF_Frequency_val的取值范围是  0x00 ~ 0x7c 

 

3.通道ID [16bit+8bit+8bit]

    通道ID包含三个内容:设备号、传输类型、设备类型。通道ID是一个通道的基本描述。对于主节点,应当设置其通道ID,表明自己的“属性”。比如“皇阿玛”和“大将军”,都是主节点,都能发送信息,但是一个是理政的“圣旨”一个是打仗的“军令”,明显类型不同,必须用设备类型来区分。再比如阿哥们给下边“传话”,小太监们怎么知道是哪个阿哥的话呢?从“大阿哥”到“bug”,设备号从一到八,这就好办了。另外传输类型,则可以用于定义某些传输特性,留给开发厂商们自由发挥。

    这样一来,主节点设置好了自己的通道ID,从节点在寻找主节点的时候就可以利用ID来匹配主节点了。这个时候还可以使用0通配多个主节点。

3.1设备号 [16bit]

    取值范围0x0000 ~ 0xffff.每个节点应拥有唯一的设备号,用于其它节点识别自己的身份。当然,从节点可以使用0通配所有主节点。如果是使用16位字段编号,我们可以计算出,在ANT网络的一个共享双向信道中,最多支持2^16-1个从节点,减去的那个1,是主节点。

3.2传输类型 [8bit]

    传输类型用于定义设备的某些传输特征,可以让开发者们自由发挥。当从设备配对主设备时需要将自己的传输类型设置为0。另外,官方的做法是将其最高位的四位与前面的设备号联用,将设备号域扩展为20bit,然后将其最低的两位作为共享地址域的使能开关,用于表明有效数据载荷(data payload)中的共享地址域是否启用,以及长度多少。

3.3设备类型 [8bit]

    取值范围0x00 ~ 0xff用于将设备(主)按需分类,例如按功能逻辑心率表一类,温度表一类,这样设备(从)可以很方便地按照预先设定好的方式与某一类设备通信。8位中的最高位为配对位,表明是否允许该主设备被从设备配对,这个我们到后面的章节专门讲。也就是说,一共可以划分2^7个设备类型。

    此外,综合以上三个参数,如果将全部通道ID域当作设备号域来使用,我们得到ANT网络理论的最大节点数为2^32,官方数据就是这么来的。

 

4.通道周期 [16bit]

     ANT网络中,节点按照设定好的通道周期发送信息,范围0.5Hz~200Hz,即最慢2s一次,最快0.005s一次。通道周期由以下公式设定:

                                           

     Channel_Period_val  取值范围 163.84 ~ 65536  即   0x00a4 ~ 0xffff

     官方推荐的通道周期是4Hz,也就是设定值为8192 即0x2000。这是在功耗,以及传输速率上的折中考虑,因为设备功耗与通道周期相关,周期越小,功耗越大,传输速率越快,设备搜索速度越快。

 

5.网络 [8bit+8*8bit]

    一个ANT网络由至少2个节点组成,利用网络这个概念,可以将拥有不同通信规则的节点们区分开来。特定的网络拥有一套特定的规则,例如ANT+网络,其实质是由同一领域不同商家构成的开放的行业联盟。所谓开放是指仅仅对联盟内成员开放相关技术规格。也就是我们常说的配置方案“profile”。利用profile指定数据格式、通道参数、网络密钥(network key)等参数。保证了同一网络内的各厂家生产的同类型设备之间的互操作性。

    在我看来,ANT+网络的出现,不仅有助于提高不同厂商间设备的互操作性,更重要的是有助于提高ANT技术的逼格,帮助ANT在某些领域巩固地位。通过提高准入的门槛,nordic可以轻松地将一大批擅长C2C的天朝寨厂吓跑,然后吸引资力雄厚的大腕厂商们来投ANT门下,一起抬高技术价格,赚取更多利润。当大厂们的东西占遍市场之后,借助行业优势就可以排斥后来技术,这样的事情尤其会发生在设备生命周期长,性能需求升级不多的领域。即便是有更新更好的技术,如果你不舍得便宜卖,那就卖不动。这一些都是技术层面之外的博弈,你想到什么了? TD对不对,呵呵。

    扯远了,回到正题。

  • 络号(network number) :用于标识一个ANT网络,默认0为公共网络。
  • 网络密钥(Network Key):用于特定网络中的加密解密“通行证”,与网络号对应。网络密钥提供了有效的安全与访问控制机制。默认0为公共网络密钥,它可以免费使用。

 

  想要申请私有的ANT网络与网络key是要交银子的,nordic这招也就保留了ANT进一步商用的利益。这也是ANT比Zigbee高明的地方。“想要绝对安全的商用?认我当爹就成!”  联想到前段时间南京物联和zigbee联盟的撕逼,不得不说,ANT这些做法符合一个成熟老道的商业公司的行事风格。

    以上就是ANT通道配置中的各个参数的介绍,下一章补充几个概念后,将给出一个ANT节点配对的通道配置实例。

 

             

posted on 2015-01-17 11:10  npw  阅读(5019)  评论(0编辑  收藏  举报