ANT无线通讯技术(4) 配对实例

了解了有关通道配置的概念以后,接下来咱们进行ANT配对的学习。网络

 

1、配对学习

      在两个须要通讯的节点间创建联系的过程,叫作配对(pairing)。配对的具体操做包括:从机搜索主机通道并同步;从机获取主机通道ID;从机设置自身通道参数与主机匹配,而后创建ANT通道开始通讯。“获取主机通道ID”能够视为配对成功的标志。获取的通道ID能够存入存储器屡次使用,所以配对能够是永久的,半永久,或者暂时的。ANT提供了多种功能,以知足不一样的配对要求,但并不是全部模块都能支持这些功能,具体状况能够参考模块手册。spa

    • 配对位(pairing bit)
    • 包含/排除列表(in/exclusion list)
    • 临近搜索(proximity search)
    • 搜索列表(search list)

 另:后台搜索(background scanning)见下文搜索模式设计

(1)配对位blog

  前面说到过,设备类型的8bit中的最高1位为配对位。主设备设置配对位,从设备将会优先配对之。当从设备不知道完整的主设备通道ID,也就是使用至少一个通配的通道参数时,使用配对位功能将避免配对到错误的主设备。举个应用中的例子,在心率表配对心率带的时候,常见的状况是:小明戴上心率带,而后操做心率表进行配对。根据小明的这个操做习惯,咱们能够设置心率带在开启的前10s置位配对位,10s后自动复位配对位,这样一来,只要附近周边其余用户不在10s内开启另外一个心率带,小明的心率表就可以很快在10s内配对到本身的心率带了。接口

 (2)包含/排除列表事件

  顾名思义的好功能。设定的字段必须是一个完整的通道ID配置,且最多支持4个条目。内存

 (3)临近搜索开发

  根据从设备扫描到的主设备RSSI来进行配对,只配对指定范围内的主设备。文档

 (4)搜索列表

  获取全部搜索到的设备号,由MCU用户辨识并决定配对到哪个。

另:后台搜索提供了一种至关给力的搜索功能,具体见下文。

  

       以上4种功能相互组合搭配,就能够实现多种多样的配对功能了。实际开发中,应当根据需求状况,谨慎选择。听起来还能够!灵活的配对方式,也是ANT比BLE和Zigbee优点的地方,毕竟他从出生起就是注定要在CE领域混的!视用户需求为上帝,打造极致体验,这样用户才会买你的帐!

我总结了设计中常见的几种须要考虑的状况,若有不足恳请各位指出:

系统对所处的环境(多用户?仍是单用户?)
设备的供能状况(能量受限的主机?仍是能量受限的节点?)
设备的配对频次(公有设备需频繁配对,私有设备仅首次配对)
人机接口(高级接口完成高级功能)

 

   

补充介绍关于搜索模式的几个概念:

多通道的ANT模块大多支持两种搜索模式,低优先级搜索(low priority search),高优先级搜索(high priority search)。优先级代表了其对其余通道的影响程度。

  (1)LPS:一个通道进行LPS的时候,对其余已开启通道的通讯不会有影响,并且功耗和HPS相近,但搜索效率会下降。

  (2)HPS:一个通道进行HPS,其余已开启通道会受影响出现高达50%的丢包甚至彻底中断。但保证了最快搜索到通道效率。

  (3)搜索超时:LPS超时后自动进入HPS。LPS和HPS的超时均可以手动设置,默认LPS~5s,HPS~25s。HPS超时则通道搜索所有结束。若想仅使用LPS,可设置LPS超时为无限长,用HPS超时来控制结束。

  (4)后台搜索:后台搜索(通道)是搜索模式中一种特殊的通道类型。做为一个仅用于搜索的通道,它搜索并非为了让本身同步,而是将搜到的通道ID以及主机信息传递给MCU,这样MCU可使用获得的参数新建另外一个普统统道。这样,也就完成了与那个通道的同步,以及和对应设备的配对过程。进行后台搜索时应设置为只使用LPS。

 

2、配对实例

      好了,如今咱们用一个例子来说解ANT网络配对组网的全过程。

  抛开具体的应用背景,假设咱们有两个性质不一样的信号须要检测,咱们设计了两个ANT节点,分别链接了两种对应的传感器。而后,咱们须要第三个节点接收数据并送显。组网结构以下图所示。

                                                     

 

                                              网络结构图

 

      A和C是传感节点,B是中心汇聚节点。A和C检测信号,并将采集的数据发送,B接收数据并作进一步处理。箭头方向标明的数据流通的方向。如今约定一下该网络的要求:

  • A、C为主节点,B为从节点。
  • A使用广播数据,C使用应答数据。
  • 网络规定使用RF频率2488MHz,规定通道周期为16384(2Hz)。
  • 使用默认的ANT公共网络。网络号0,网络key0。
  • 该系统用于多用户环境中。即范围内存在多个相似系统。
  • A、B、C均采用电池供电。
  • 系统初始化前须要先配对。B只知道AC的设备类型,不知道AC的设备ID。
  • B节点的人机接口包括:显示屏、按键。

 

      综上所属,首先咱们能够肯定,这是一个典型的星型拓扑网络。两个子节点与中心节点通讯,子节点数量并非不少,使用两个独立通道分别与两个子节点通讯是最好的选择。A、C是数据采集端,B接收端,所以AC定义为Master,B是Slaver,这都是没有问题的。第二个,咱们已经知道,单向通道中只能使用广播消息类型,双向通道可使用广播、应答、突发所有三种消息类型。A使用广播数据,AB之间只能是单向通道(unidriectional),B不用发送信息给A;而C使用的是应答数据,每个包都要求B返回一个确认数据,所以CB间创建的是双向通道(bidriectional)。而后呢,规定了RF频率和通道周期以及使用公共网络,那么这些参数能够直接设置了。AC设备类型不一样,可是B知道要配对的AC的设备类型,不知道AC的设备ID,这样在B上配对时,设备类型能够直接指定,设备ID应当用0来通配。最后一个,前面提到该系统用于多用户环境,多用户环境中,也就是说在相同的时间,空间中会有一样的用户行为发生比方说同时开机,配对。开机倒无所谓,如过配对过了,从机能记忆储存前次的配对信息,当再次开机的时候直接载入就能够了。可是若是是没有配对过,首次使用必需要进行配对的。两个用户两套系统,同时开机配对,相互配错了怎么办?对不对。那么,为了不多人同时段配对出现问题,必定要考虑配对功能的设计。比较完美的方案是采用[从机后台扫描]+[从机邻近搜索]+[主机限时配对位],这样不只能一次性完成多个通道的搜索和配对,也较好地避免了配对混淆。甚至,我还能够由于B节点有高级的人机接口,我用[搜索列表]来作,放到屏幕上让用户来选择。但这样实现起来成本也很高,毕竟ABC都是电池供电,让用户去操做的话,不是说用户辨识反应慢,而是在于整个配对流程被拉地太长,太繁琐,每一个环节一点点延时,都积累起来就很恐怖了。要知道ANT模块搜索通道时候的电流典型值是3mA啊!电池确定经不起几回搜索的。因此咱们并不须要贪大求全一味追求高逼格功能,能简化的步骤,能自动处理的问题,就尽可能避免交给用户。这里咱们最赞的方案就用[从机后台扫描]+[主机限时配对位]就ok了。另外提醒用户尽可能“先配对,再布置”,虽然不用到[邻近搜索]可是毕竟,距离对于搜索配对仍是有必定影响的。而后对于主机配对位的超时,以及后台扫描的超时都合理设计一下。后面我会给出一个经验参考值。

       下面用一个表格来记录所需通道配置。A,C的通道配置是出厂预置的,没法更改。B有开启3个独立通道,一个专用于后台搜索,另两个用于根据搜索的的结果配置与AC的通道。

通道配置

A channel 0

   (预置)    

 C channel 0 

  (预置)  

B channel 0

     (后台搜索)     

       B channel 1 for A  

         (搜索完成)

      B channe 2 for C  

        (搜索完成)

网络号/网络key  0/0  0/0  0/0  0/0  0/0
RF频率  88  88 88  88 88
设备ID

 0x0001

预约值

0x0001 

预约值

 0

通配

 0x0001

匹配A

 0x0001

匹配C

设备类型

0x81/0x01

配对位限时自动复位

0x82/0x02

配对位限时自动复位

0x81/0x82

搜到A再搜B

0x01

匹配A

0x02

匹配C

传输类型

 1

无共享地址域

 1

无共享地址域

 0

搜索

 1

匹配A

 1

匹配C

通道类型

 0x10

双向主通道

 0x10

双向主通道

0x40

单向从通道

 0x40

单向从通道

 0x00

双向从通道

通道周期  16384  16384  16384  16384  16384
数据类型

 0x4E

广播数据

 0x4F

应答数据

 N/A

 0x4E

广播数据

 0x4F

应答数据

      你也许会问,为何用于单向广播的A节点,通道类型不是0x50单向主通道呢?由于事实上不少时候,从节点仍是须要和主节点交换数据的,好比使用命令要求主节点回复本身的完整通道ID以完成配对,或者查询主节点的电能情况方便用户管理。而0x10双向主通道即保留了反向通讯的可能,也并不影响使用广播数据,因此实际应用中大多使用双向通道,而单向通道使用较少。

      关于AC的配对位超时时限,一般能够根据通道的搜索时间来设置。官方文档中有这样一组数据:

 

消息频率 最长通道搜索时间
10Hz 2s
4Hz 3s
2Hz 7s
1Hz 15s
0.5Hz 45s

 

      数据代表,主通道的消息频率,与最长通道搜索时间有关。频率越高,越容易搜索到。根据这个数据,咱们不妨设置AC的配对位超时时限为30s。可使用外部事件触发配对位置位,经常使用的方案有开机自动触发,用户触发等。咱们这里AC节点都不具有人机接口,因此使用开机自动触发是最好的选择。只要AC同时间开机,就能保证30s内都配对完成。

      关于B的后台搜索通道,由于要搜索两个不一样类型的设备,因此设置设备类型时应使用逻辑判断。当搜到第一个设备通道后,变动设备类型,进行第二种类型设备的通道搜索。而后第二种设备也搜索完毕后,中止搜索并关闭后台通道。B的通道设置流程图以下图。

 

      好了,关于配对就到说这里了。你可能注意到流程图中提到了扩展数据消息,这于ANT数据消息格式有关,以前遗漏了没有讲,那么就放在下一期和“干货”一块儿上吧!晚安!