首页 资讯 招标 项目 展会 更多

位置:首页 > 新闻频道 > 技术动态


理论与实践: 智能家居433 MHz射频通信协议栈设计与网关实现

2015-12-17 10:38:57 安装信息网

相关链接: 中国安全网 中国质量网 中国论文网 中国资讯网

作者:郑晓敏

1  引言

    无线通信技术是智能家居研究的热点,当今智能家居主流通信技术有Wi-Fi、ZigBee、蓝牙、433 MHz射频通信等。针对家庭内部网络低成本、近距离、低复杂度等需求,无线通信技术各有优缺点:基于Wi-Fi技术的智能家居产品多用于数据量较大、传输速率较快的消费电子产品中,其功耗大,成本高;ZigBee偏向于工业应用,有功耗低、数据量小、网络容量大的特点,适合智能家居这样的碎片化信息传递;蓝牙成本与功耗介于Wi-Fi与ZigBee之间,适应于短距离的点对点通信,不适合组建庞大的家庭网络。常用的无线通信技术(如Wi-Fi、ZigBee、蓝牙)工作在2.4 GHz频段,日益拥挤的2.4 GHz频段信道之间干扰较大。433 MHz射频通信技术是一种简单而成熟的无线通信技术,其传输距离远、穿墙性强、功耗低、成本低,适用于数据量不是很大、成本敏感的家庭网络。其不足之处在于缺乏统一的通信协议规范。

智能家居体系的核心是智能网关,它不仅用于实现各类不同终端设备的集中控制,还起到协议转换作用。本系统智能网关基于uC/os-n与STM32F407,设计了一套以CC1101通信与组网为目的的433 MHz射频协议栈,智能网关搭载433 MHz射频模块、GSM模块、Wi-Fi模块、以太网模块等,实现了不同方式的集中控制。如图1所示,用户可以用手机或者电脑,通过Wi-Fi、有线等方式登录智能网关嵌入式Web服务器,或通过手机GSM网络发送短信给智能网关,智能网关解析命令后进行协议转换,通过433 MHz射频网络与家电控制终端进行信息交互,达到对家电智能控制的目的。

2智能家居系统硬件框架

系统总体硬件架构如图2所示,智能网关选用STM32F407ZET6,该芯片SRAM高达192 KB.工作主频为168 MHz,具有丰富的外部资源,可以满足设计需求。Wi-Fi模块选用的是基于串口AT命令的HLK-RM04,GSM模块选用SIM900A,可实现语音、SMS、数据和传真信息的传输。以太网模块选用PHY层芯LAN8720A.通过RMII与STM32F407的以太网MAC层通信。家电端控制节点选择的MCU为STM8S105K4,该8位单片机默认主频2 MHz,满足终端设备数据处理、状态控制等需求。

    433 MHz射频模块选用的是CC1101.CC1101是一种低功耗、低成本、传输可靠的无线收发器,工作频段比较灵活,可以设定在315 MHz、433 MHz、868 MHz和915 MHz的ISM和SRD频段,空中传输速率可达500 kBaud。CC1101是半双工工作方式,只能通过在协议栈软件上进行时分操作,实现CC1101时分双工,以更大程度地发挥CC1101芯片的性能。

3  网关软件架构与433 MHz射频协议栈设计

3.1  智能网关软件架构

软件是一个系统的灵魂。如图3所示,网关的开发采用分层设计的思想,智能网关按其功能,可划分为上层应用软件层、操作系统接口层、底层驱动层。

    为了提高智能网关的实时性、可扩展性,选用的RTOS为uC/OS-II,同时移植了小型开源的TCPf/P协议栈LWIP,并基于B/S结构在智能网关内部搭建嵌入式Web服务器。FatFs用于在小型嵌入式系统中实现FAT文件系统,它不依赖任何硬件平台,方便智能网关进行数据存储与文件操作。

    应用层中433 MHz射频协议栈是核心部分,它用来实现家庭内部433 MHz射频网络的组建与通信。上层应用层中的嵌入式Web服务器、Wi-Fi、GSM等应用进程提供了用户与智能网关不同的交互方式,底层就是与硬件交互的驱动层,如CC1101底层的数据收发函数,以太网卡通信驱动等。底层驱动程序设计应该做到精简、高效,因为底层驱动的执行效率直接关乎系统的实时性,进而影响整个系统的性能。

3.2  433 MHz射频协议栈设计

433 MHz射频协议栈总体架构如图4所示,总体上协议栈分为用户空间与内核空间。

    用户空间是具体的应用进程,如嵌入式Web服务器进程、Wi-Fi应用进程、串口应用进程等,由于空间所限没有标明GSM进程。这4个进程处于用户空间,进程优先级相对内核空间进程较低,各应用进程接收来自如Wi-Fi、网页浏览器.串口等消息,进行解析后封装成内核能识别的rf_message消息结构体,通过API函数与内核通信。重要的数据结构,如应用进程RF_PCB链表、终端控制节点PCB链表等,只有内核空间才能访问与修改,用户空间无法触及,应用进程只能通过API函数进入内核,在内核中安全访问,减少用户空间恶意修改内核核心代码造成的损失。这样既保证了协议栈与数据通信的安全性,又简化了应用进程的设计难度,应用进程只需要调用内核API函数即可完成相应的功能。

    在用户空间中,应用进程的创建会分配进程控制块,含有进程的相关信息,各个进程控制块组成RF_PCB链表module_pcb_list,记录活动的应用进程。进程控制块记录应用进程运行状态、收发的数据队列、数据帧时间戳等,是各个应用进程的高度抽象。

    内核空间重要的是RF核心进程rf_core_thread(),它控制网络层中数据帧的路由,链路层中数据分组的发送接收等功能,向上与应用层的进程完成用户空间与内核空间的信息交换,向下与底层的发送、接收、轮询等进程交互,完成物理层的功能。消息队列rf_core_mbox是核心进程rf_core_thread()与其他进程通信的核心,也是API函数实现的基础,RF核心进程rf_core_thread()在消息队列rf_core_mbox上等待消息到达,该消息结构体中封装了协议帧、控制信息、API函数等,核心进程利用其中的API函数对消息帧进行解析。

    核心进程与底层收发、轮询进程的交互过程类似。RF数据发送进程rf_send_thread()通过消息队列rf_send_mbox接收核心进程的消息,处理过后通过CCllOISendPacket()函数进行物理层数据发送。CC1101的数据接收是通过中断方式,CCllOIRecPacket()接收数据分组,接收进程rf_recv_thread()经过处理后上传给核心进程rf_core_thread()。RF轮询进程每隔一定的时间就会给控制节点发送轮询数据帧,控制节点接收到后应答,智能网关通过此方式对节点的存活进行确认。

4  433 MHz射频网络整体模型

4.1  网络拓扑与组网过程

基于家庭内部通信与组网的特点,本系统选择树型网络,如图5所示。节点分为3类:智能网关节点、中继节点和控制节点。智能网关节点是整个网络的核心,每个控制节点(如灯光控制节点、空调控制节点等)在上电之后会进行入网操作,向智能网关发送人网请求,智能网关根据请求组建树型网络,协议栈构建与维护控制节点链表。

    智能网关与节点采用双向通信的方法进行通信。客厅内的节点与智能网关节点距离较近,采用直接通信的方法进行通信。处于其他房间的控制节点,由于传输距离较远,加之中间有墙壁阻挡,需要中继节点参与传输,这就需要一定的路由机制,鉴于低复杂度的目的,这里的路由路线是固定的。智能网关节点与卧室或者厨房内的控制节点通信时,智能网关发送数据分组给目的房间内的中继节点,中继节点接收到数据分组进行解析,转发给目的控制节点,完成一次单向通信。

    433 MHz射频网络组建如下:当智能网关上电或者重启之后,网络重新组建,智能网关监听入网帧。控制节点或者中继节点上电后发送人网帧,入网帧包括该节点的ID与位置信息,节点发送人网帧之后等待智能网关的入网答复帧。智能网关收到入网帧之后,进行入网节点信息分析,确定节点在树型网络中的位置,注册终端控制节点结构体,之后给入网节点发送人网答复帧,控制节点接收到入网答复帧之后,分析确认自己所处的树型网络位置,之后进入正常处理流程,否则会休眠一段时间之后继续发送入网帧。

    智能网关感应树型网络的动态变化,实时更新树型网络中的节点信息,智能网关每隔一定的时间会发送轮询数据帧,并等待节点的应答,若在一定时间内,控制节点没有应答,则说明该节点出现问题或者位置信息发生变化,网络信号无法覆盖,智能网关删除在活动链表中无应答的节点信息,更新树型网络结构。

4.2  433 MHz射频节点模型与通信帧定义

本系统对CC1101节点之间的通信帧进行了详细的设计,如图6所示,节点模型由物理层、链路层、网络层、应用层组成,每一层为上一层提供服务,并使用下一层提供的服务完成相应的功能。

    物理层与链路层由CC1101芯片提供,完成节点之间基本的数据帧的发送与接收功能,物理层数据帧发送时,自动生成前导码与同步词汇,实现节点数据帧同步。数据帧在链路层中,收发地址手动添加,接收地址可能是最终要到达的目的地址,也可能是中继地址。当设定CC1101寄存器PKTCTRLl.append_status值为1时(默认为1),CC1101芯片在数据发送时会默认追加RSSI与LQI状态值,RSSI是信号强度指示值,从该值可以获取当前信道的信号强度与干扰,LQI是当前接收信号的质量指示。CC1101芯片会自动添加CRC字段,确保除前导码、同步词汇、RSSI.LQI之外的数据的正确性与完整性。

    网络层完成树型网络中任意节点与智能网关的数据通信,配合链路层完成路由功能,网络层中数据帧中源地址是数据产生的源节点,目的地址是数据最终要到达的节点。应用层定义了通信帧的具体功能,参数定义了节点的具体动作(如调节空调温度、灯光亮度等),端口号识别用户空间不同的应用进程,实现了节点之间的服务与资源共享。

5通信过程实现

    本系统选择射频通信工作在433 MHz,该频段不用申请即可以免费使用。CC1101工作在433 MHz频段时,频率波段为400~464 MHz,信道频间(信道带宽)为200 kHz,可用信道达300个。由于树型网络中所有节点都工作在同一信道,并且CC1101芯片是半双工,所以同一信道的通信碰撞是无法避免的,这就需要一定的机制实现冲突退避与数据重发。冲突检测采用CC1101硬件实现,退避与重发在冲突检测基础上,通过协议栈软件实现。

5.1  冲突退避的实现

    CC1101数字引脚GD02用于载波监听时,当所在信道中RSSI值高于设定的阈值时,GD02引脚输出高电平,也就意味着当前信道正在使用。通过GD02引脚电平判断信道状态,通过协议栈进而实现冲突退避。

    冲突退避实现方式如下。当检测到数据冲突时,则进行一定的时延机制后再次检测,信道空闲则进行发送。在协议栈中,根据节点的地址设置重发间隔,由于各节点的地址不同,数据重发的时刻也不同,则两个节点同时发送数据导致冲突时,重发时刻也不同,重发数据能够成功。同时,设定重发最小时间间隔大于最大数据分组的传输时间,保证重发数据分组与其他节点无重合时间。根据433 MHz射频通信帧的定义,数据分组长度为22 byte,即176 bit,空中传输速率为200 kbit/s时,空中传输时间为880uS,加上CC1101状态机的转换,由接收态RX转换为发射态TX(CC1101中断接收需要使芯片处于RX状态),所需时间约为600uS,则发送一次数据总的时间开销约1.5 ms,即重发最小时间间隔为1.5 ms。如果某一节点的重发时间为Tms,该节点地址为addr,则该节点重发时间间隔为T=addrx1.5。

5.2数据重发机制

数据重发是在冲突检测与退避的基础上实现。如图7所示,433 MHz射频网络中的数据通信要求可靠性,这就需要节点消息应答,如果智能网关控制信息发送后,在规定的时间中没有收到节点的应答,则消息要进行重发。

    协议栈的数据发送rf_send_thread()进程中,在实际发送前,首先进行冲突检测,若信道冲突,则进行冲突退避机制,信道空闲使用CCllOISendPacket()函数进行物理层的消息发送。发送完成后,该进程通过response_mg_sem信号量等待节点应答,协议栈在接收到应答消息后,在中断处理函数中增加信号量.rf_send_thread0进程完成一次数据发送过程,若该进程在100 ms内没有接收到应答消息则再次发送,在规定的次数中没有接收到应答,则通告应用进程消息发送失败,节点无应答。

5.3  433 MHz射频网络工作流程

整个433 MHz射频网络要遵循一定的通信逻辑,如图8所示(为描述方便,省略中继节点转发),主要分为以下4个部分。

    ·初始化与网络组建:智能网关与智能节点上电后进行初始化工作,智能网关监听入网帧,控制节点入网注册,入网后控制节点进入正常工作流程。

  ·主动控制:手机或者电脑端发送控制命令,智能网关接收后进行解析,通过433 MHz射频网络发送至相应的控制节点,控制节点执行后反馈。

    ·控制节点状态上报:控制节点状态改变或者有信息需要主动上报时,智能网关接收上报信息,进行分析与处理,并反馈给用户空间进程。

    ·智能网关轮询与节点删除:智能网关中轮询进程rf_poll_thread()每隔一定的时间就会发送轮询信息至各个控制节点,控制节点应答,智能网关接收到应答后证明该控制节点工作正常,如果没有接收到应答,则说明该节点出现故障或者主动离开,智能网关更新树型网络结构。

6  实验结果

测试表明,射频芯片CC1101输出功率设置为0dB时,电流消耗为15.9mA,传输距离为15m,具有良好的穿透能力。图9为测试结果,当通过浏览器发送客厅灯光亮度1指令给智能网关后,智能网关通过433MHz射频网络将消息发送至智能调光系统,家电控制终端的状态通过433 MHz射频网络反馈给智能网关,智能网关通过SSI技术在浏览器中显示状态。

7结束语

本文设计了一种适合家庭内部网络使用的433 MHz射频通信协议栈,并详细讨论了协议栈的工作原理。在下一步工作中,会继续增加家电控制终端,完善协议栈的设计,提高系统的稳定性。

8摘要:

针对智能家居内部网络低成本、短距离、低数据速率的通信与组网需求,设计了一种基于CC1101的433 MHz射频通信协议栈,并实现了以嵌入式操作系统uC/OS-II与微控制器STM32F407为基础的智能网关。该智能网关搭载Wi-Fi、CSM、网卡等功能模块,与433 MHz射频通信协议栈协调工作实现了多种智能控制方式,详细介绍了433 MHz射频协议栈设汁、通信协议与节点模型的定义、433 MHz射频网络组建、数据冲突退避与重发机制。该方案具有简单实用的特点,适合家庭内部网络使用。

关键字:

上一篇: 理论与实践: 一种基于狄利克雷过程混合模型的文本聚类算法

下一篇:理论与实践:HACCP质量管理体系在缢蛏酱加工生产中的应用

行业资讯月点击排行

展会信息月点击排行

招商信息月点击排行

首页 资讯 招标 项目 展会
关于我们 | 广告服务 | 友情连接 | 联系我们
触屏版 电脑版
安装信息网 www.36qyk.cn.