TuyaOS
FFC

FFCWIFI 遥控器通信技术的简称。FFC 的产品需求最早来自于终端部分用户习惯于传统遥控器,来控制智能家居。

WIFI 遥控器经过不断发展,主要发展为本地遥控器(离线遥控器)和在线遥控器,两者的最大差别就是是否有涂鸦云端的参与。

  • WIFI 遥控器通讯协议及实现原理介绍

FFC 是一种无需通过路由器连接即可实现 WIFI 设备之间通信的技术,主要是对无线管理帧(802.11)中的 Probe request 帧进行了扩展。利用了Probe requestFrame body 中的 Vendor Specific(221 厂商自定义元素字段)可以自由编辑且不定长度的特性,自定义了一层通信协议,Probe request 帧可以简单的理解为探测请求,扫描区域内有哪些802.11网络。通信协议如下图所示:

FFC-ffc通讯协议.png

下图为一帧 Probe reques 数据

FFC- 具体数据分析  12138  123.png

正常情况下的配对流程如下:

FFC-配网具体实现 12138 123.png

master

master 可以理解为信息发送端,就比如 WIFI 遥控器;slaver 可以理解为信息接收端,就比如被控设备。

  • WIFI 遥控器 master 相关函数介绍:

此例程只介绍如何配置模组的 master 模式。

配置 master 模式,要首先调用 tuya_iot_wifi_ffc_init 函数初始化 master 模式。随后需要调用 tuya_iot_wifi_ffc_control 函数,设置 master 的类型。 最后再次调用 tuya_iot_wifi_ffc_control 函数配置使其工作在信道扫描状态下。

tuya_iot_wifi_ffc_control 参数介绍如下:

FFC-master.png

tuya_iot_wifi_ffc_bind 函数作用是开始绑定流程。一般的 master 设备会长按某个键进入配网流程时才会调用这个函数。而 一般的 slaver 设备是重新上电后就会进入配网流程。

tuya_iot_wifi_ffc_send 调用这个函数发送数据。tuyaos 内部会对这部分数据进行封装,我们只需要关心应用部分的协议内容,如应用层的控制协议。 Slaver 收到后通知数据接收回调函数。

流程介绍

相关函数目录: software/TuyaOS/include/components/svc_wifi_ffc/include/ffc_app.h

FFC-master 流程.png

slaver

  • WIFI 遥控器 slaver 相关函数介绍:

此例程只介绍如何配置模组的 slave 模式。

tuyaos 内部帮我们配置好了,在应用层我们先需要调用tuya_iot_wifi_ffc_init 函数初始化遥控器相关配置,随后调用 tuya_iot_wifi_ffc_control 使其工作在扫描信道模式下。最后调用tuya_iot_wifi_ffc_bind 函数开始绑定流程即可。

tuya_iot_wifi_ffc_init 的形参介绍如下:

FFC-tuya_iot_wifi_ffc_init 参数介绍 12138  .png

tuya_iot_wifi_ffc_unbind 为遥控器接绑函数,在线遥控器无需关心。

tuya_iot_wifi_ffc_send 在模组为 master 的情况下才会用到,这里不过多介绍。

流程介绍

相关函数目录: software/TuyaOS/include/components/svc_wifi_ffc/include/ffc_app.h

ffc 流程介绍  12138   .png