微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 智能家居无线网络通讯协议设计

智能家居无线网络通讯协议设计

时间:07-15 来源:计算机系统应用 点击:

为接收模式,接收从控制器设备的状态数据帧,并定时2 秒,超时或成功接收从控制器设备应答数据则重新自动配置成发送模式并返回第1 步,防止射频模块全部进入接收模式出现互锁"假死"状态。

  (3) 如果成功接收从控制器设备应答数据,射频模块进入等待状态。

  2.2.2 从控制器射频流程

  所有接收节点接收该数据包,并对该数据包的驱动接口数据进行解析校对,比如接收地址匹配,命令码,操作文件?有匹配节点则进入驱动应用程序并执行操作。该射频模块多数情况下处于接收模式,具体流程如图4:

  

  图4 主控射频流程

  (1) 从控制器节点nRF24l01 射频模块配置成接收模式,直到接收数据包。

  (2) 对数据包的驱动接口部分进行解析,接收地址是否匹配,如不匹配则返回步骤(1),再判断命令操作码及文件标志,如出现非法操作码或文件标志,则返回步骤(1),有对应驱动接口则进入驱动应用程序。

  (3) 根据输入的应用数据(记录控制数据和记录数据),操作设备将设备状态写入发送数据帧。完成后,射频模块配置进入发送模式,将发送数据帧返回主控制器,并延时1 秒。

  (4) 判断是还发送成功,失败则重新进入步骤(1),成功则结束,同样进入初始化状态。

  

  图5 从机节点射频流程图。

  3 无线通讯协议

  智能家终端设备品种繁多,且功能不一,不同设备要进行统一控制,必须对各种设备进行抽象处理,提取它们的共同特征。可以把终端设备抽象成文件,在控制端分配一块内存描述该设备当前状态,利用设备控制方法读取或修改当前状态,控制方法可分为三类:文件读取(Read),文件修改(Write),文件控制(Control)。

  Read:读设备文件操作,即对节点设备状态扫描查询,程序设计API 如下:

  void drv_lit_read(rxp_cmdreq req)以上为读设备API 入口,参数req 为结构体指针,写、控制设备操作类似。

  Write:写设备文件操作,即对节点设备状态修改,程序设计API 如下:

  void drv_lit_write(rxp_cmdreq req)Control:控制设备文件操作,即对节点设备状态的调节。程序设计API 如下:

  void drv_lit_cnt(rxp_cmdreq req)并不是所有的文件都支持这三种控制方法,多数文件只支持前两种控制方法,下文以灯控设备为例。

  3.1 通讯协议

  无线射频模块nRF24l01 对应收发模式的数据有效负载最大为32 个字节,该数据包作为一帧数据,其中可分成三类数据:驱动接口数据,记录控制数据以及记录数据,输入帧与输出帧数据类型相同。数据格式如表1.

  表1 帧数据格式

  

  (1)驱动接口数据。

  Dest:接收端地址,1 字节表示,属性值从0-255,可以表示256 个节点地址,满足多数智能家居的节点资源。

  Src:发送端地址,1 字节表示,与Dest 意义相同。

  Cmdid:节点命令码,1 字节表示,如上文表示,共有三种类型:0x01,表示读命令(read);0x02,表示写命令(write);0x03,表示控制命令(control)。

  节点即对应从控制器编号。

  Fileid:文件标志符,1 字节表示,即节点地址上对应的设备号,最大支持0x00-0xFF 256 个文件。

  (2)记录控制数据。

  Result:操作结果码,1 字节表示,当有数据返回时,要求填写该字节。0x00,操作成功;0x10,非法节点;0x11,非法文件标识符;0x12,非法初始记录值;0x13,非法记录。0xFF,默认无效值。

  Start:记录开始值,1 字节表示,当有多条记录操作时,该值即对应的记录序。

  Len:记录长度,1 字节表示,当作为输入数据时,表示记录操作的长度,如果Len 值大于当前节点的最大记录长度,则取当前节点记录长度最大值;当作为输出数据时,表示当前节点操作的记录长度。

  (3)记录数据Records:记录数据缓冲,缓冲区达25 个字节。

  该缓冲区可存放多条记录,记录格式如表2,每条记录字节长度不一,一般在3-5 个字节左右,最多能存放8 条记录。

  表2 记录数据格式

  

  该Len 值与记录控制数据中的Len 值意义不同,表示该条记录的字节长度,其中并不包含本身字节长度,1 个字节长度;Opt 值为保留字节,一般无意义,控制命令与该字节相关,1 个字节度;Content 为设备文件的记录值,记录字节长度不定,一般1-2 字节长。

  3.2 协议扩展与特点

  地址资源,单字节的Dest 与Src 地址分配对于普通的智能家居用户完全能满足要求,对于家居环境复杂,地址分配点较多的用户,可能会出现资源不够的情况,该情况可将Dest 与Src 地址扩展至16 位,即2字节。满足65535 个节点要求。

节点命令码,三种命令类型只占用C

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top