智能家居无线网络通讯协议设计方案 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

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

来源:中国一卡通网  作者:应时彦 朱小挺 汤顺  发布时间:2012-08-22 09:44:34  字体:[ ]

关键字:智能家居  嵌入式系统  网络通讯  通讯协议  

摘   要:  "智能家居"(smart home)又称智能住宅,它利用先进的计算机技术、嵌入式系统技术、网络通讯技术与传感器技术等,把家中的各种设备有机的结合起来,优化用户生活方式,方便用户管理设备,并能通过场景设定使多个设备间形成联动。


  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 个节点要求。

  节点命令码,三种命令类型只占用Cmdid 的二位,其余的高六位值保留,以备协议扩展所需。同理。

  记录选项,Opt 为保留字节,默认值为0x00,该字节主要针对控制操作,用于记录控制操作符,如表2 说明,主要针对灯控文件的变亮,变暗操作。

  该通讯协议的设计主要有以下特点:

  (1)统一外设,将外部设备抽象成标准文件,并在控制器内存记录文件内容,操作指定设备只需访问该设备映射文件所处内存空间数据即可,规范外设标准,提高通讯效率。

  (2)通讯协议的制定极大的优化了主控制器与射频模块之间的数据传输性能,主控制器只需根据固定的通讯协议格式填充即可,简化其处理过程。

  (3)同样简化了从控制节点的数据处理过程。

  4 通讯协议实现结果

  按照系统功能需求的划分,可分为智能温度的控制,智能安防的控制,智能家电的控制,智能照明的控制等。

  智能温度控制:系统实时采集室内的温度,并能以图形方式展示给用户,用户可以根据需要自行控制室内温度。

  智能安防控制:系统集成防盗、防劫等功能,能够通过网页远程监控家居状况,并能查询控制警报器的状态。

  智能照明控制:用户可以根据需要控制家庭的灯光效果,具有调光功能,不仅能够满足用户的需求,还能达到节能和环保的功能,其记录数据说明见表3.


表3 灯控记录数据 

  记录数据的首字节Len 表示当前记录字节长度,照明的三种控制方法具体说明如下:

  Read:读当前灯的亮度。

  输入:无。

  输出:Opt 保留字节0x00.Value 表示当前灯的亮度值(0x00-0x09),值越大,亮度越高,下同。

  Write:设置灯的亮度值。

  输入:Opt 保留字节0x00.Value 为要设置的亮度值。

  输出:Opt 保留字节0x00.Value 表示当前灯的亮度值(0x00-0x09)。

  Cnt:调节灯的亮度。

  输入:Opt 的最低位为1,表示减少亮度;Opt 的最低位为0,表示增加亮度。Value 省略无意义。

  输出:Opt 为保留字节0x00.Value 表示当前灯的亮度值(0x00-0x09)。

  灯控设备支持多条记录同时读取与返回,设备的读操作无记录输入,有记录输出;写操作与控制操作有记录输入,同时有记录输出。假设当前操作节点为0x00,主控节点为0xFF,Value 值为0x03.

  以灯控控制命令为例:

  控制命令(0x03):假设当前亮度值为0x03,将灯亮度值加1,则输入数据帧如表4,输出数据帧如表5.


  表4 输入数据帧 

  表5 输出数据帧 


  输入数据帧与输出数据帧进行相互转换时,发送主体不同,因此发送地址与接收地址对调。由于是控制命令,Cmdid 设置为0x03,如果是读命令或写命令,则该字节设置为0x01 或0x02.由上已知当前操作节点为0x00,即Fileid 的设置值。Result 表示数据返回结果码,0x00 表示操作成功。在输入数据帧中无意义。

  本例中,只有1 个记录值,因此在数据输入、输出帧记录地址Start 从0x00 开始,数据帧长度Len 为0x01.

  读命令、写命令数据帧类似,参照控制命令格式。

  5 结论

  本系统中,以嵌入式Web 服务器为架构,实现了对智能家居终端设备的远程监测与控制,并以nRF24L01射频模块32 字节的数据帧为基础,最终完成了针对较低成本智能家居的通讯协议设计。在实际操作过程中,也能够通过网页Web 的调节控制,最终能够达到对终端文件设备的控制,实现对灯控设备的开关,调亮,调暗等功能。能在发出命令后1 秒内返回准确数据信息,保证该系统的实时控制,具有较高应用价值。

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖