PAN211x 单向对码

1. 背景介绍

本文档主要介绍了一种应用于 PAN211x 的单向对码方案。

在各类遥控应用场景中,对码过程是必不可少的。收发两端通过对码过程,可以建立一对一或是一对多的绑定关系,使得多组设备在后续通信过程中能够独立、互不影响地工作。在对码过程中,可以根据收端是否会发回包,将其分为单向对码和双向对码两大类,本文将介绍的是单向对码一类。

单向对码可以再进一步细分两类,其中一类的收端在每次上电启动后,都需要先重新进行对码,而后才能开始正常的数据通信;另一类可以加载前一次的对码信息,无需重新对码也可以和前一次的发端建立通信。小车、四轴飞行器的遥控一般属于前者,而家电、灯具的遥控往往属于后者。

2. PAN211x 配置

在单向对码过程中,为了使不同的发端设备间不会互相干扰,需要对数据进行过滤。硬件层面上,可以使用错开通信地址或错开频点的方式;软件层面上,可以在 Payload 内加入包含设备 ID 的帧头进行过滤。为了考虑与跳频机制间不互相影响,一般不会使用频点来区分不同的发端设备,而通过硬件地址过滤要比软件方法更为简单、高效。

因此,不同的发端设备一般会使用互不相同的专有地址发送数据。为了能够在这些地址上成功建立起通信,收发两端必须先在公共地址上进行对码,再切换至专有的地址上。PAN211x 做接收端时,可以同时使能多个接收通道(Data Pipe),每个通道配置不同的地址。在收到数据时,硬件也支持查找接收到数据的通道号。因此,在应用中,收端设备是可以同时在公共地址和专有地址上接收的,不需要在地址间频繁地切换。

3. 对码流程示例

如第 1 章所说,单向对码还可以分为两种应用场景。

1、断电后对码状态重置

例如小车、四轴等的遥控场景下,收端每次上电后,都需要且仅需要进行一次对码。

对发送端而言,总共有两个发送状态:发送对码请求,和发送正常通信数据。

对码请求会在公共地址发送,这个地址是由收发两端事先约定好的。对码请求需包含之后正常通信所使用的地址信息,这个地址通常是由发端的设备 ID 生成的,不同的设备必须使用不同的地址。此外,跳频表、收端的初始化信息也可以在对请求内一并发送。

正常通信数据将在发端的专有地址发送,即对码请求数据中包含有的地址。

发端在上电后,可以一直处于对码发送状态。状态切换一般由遥控器上的按键,或是其他用户的输入触发。切换后,发端会停止对码,开始在专有地址上发送正常通信数据。

对接收端而言,对应地有两个接收状态:接收对码请求,和接收正常通信数据。

初始时,在公共地址进行接收,收到对码信息后,即切换至对码信息内所包含的专有地址上,进行数据的接收。

one_way_pairing_persistent_state

2、断电后对码状态不重置

例如家电、灯具等的遥控场景下,收端在每次上电后,会读取上一次的对码数据,可以直接接收来自配对过的设备的数据。同时,收端也需要能够重新对码,一旦收到对码请求时,会更新本地的专有地址。

因此,收端不再有很明确的状态切换的概念,会在上电后同时使能两个通道,分别接收对码请求和通信数据。对这两种数据的处理也可以兼顾,不需要在公共地址和专有地址间切换。相应地,发端在上电后即可开始发送正常通信数据。对码请求的发送由按键或是其他用户

输入触发。

one_way_pairing_reset_on_power_off