当前位置: 首页 > 范文大全 > 公文范文 >

基于nRF24L01的智能家居网络的设计

时间:2022-03-19 09:10:37  浏览次数:

摘 要:智能家居是当前物联网的主要应用之一,当前采用的技术主要有ZigBee和Z-Wave技术。然而,ZigBee器件成本昂贵,Z-Wave技术是非开发式标准,存在系统的兼容性问题。针对上述问题,文中提出了基于NRF24L01实现智能家居系统的解决方案。同时详细地介绍了智能家居系统的框架和通信协议,并给出了可行的解决方法。最终测试结果表明,使用f24L01是一套低成本的智能家居解决方案,可进一步推进智能家居的应用。

关键词:2.4 GHz;智能家居;nRF24L01;通信协议

中图分类号:TP393;TN92 文献标识码:A 文章编号:2095-1302(2013)09-0042-03

0 引 言

随着计算机、通信、自动控制和微电子技术的发展, 无线传感网络[1]成为当前研究热点,其主要应用领域涉及工业控制、环境监测和智能家居等。其中,智能家居应用尤为瞩目[2],旨在建立由家庭安全防护系统、网络服务系统和家庭自动化系统组成的家庭综合服务和管理集成系统,实现全面安全防护、便利通信网络以及舒适的居住环境。目前,在智能家居领域开发应用中,2.4 GHz的ZigBee和900 MHz频段的Z-Wave两大技术应用最为广泛。

Z-Wave是一种基于射频的低成本、低功耗、高可靠性的短距离无线通信技术,数据传输速率达9.6 Kb/s,信号有效覆盖范围室内为30 m,室外可超过100 m;单一家庭网络最多可支持232个节点,足以满足一般家庭需求。目前,美国市场上已有成品的Z-Wave家居产品销售,包括各种家电控制设备,如 Zensys公司推出的远程遥控器、插座等,然而 Z-Wave联盟并没有开放其标准,束缚了系统的开发和扩展。

基于IEEE 802.15.4 协议的ZigBee技术是一种短距离的通信标准,有着近距离、低复杂度、自组织、低功耗、低数据速率的特点。由 ZigBee 协议标准可知,一个 ZigBee 网络可容纳65 536 台设备, 有着250 Kb/s 的高带宽,且节点间通信具备较高的可靠性,再加上ZigBee联盟开放了这一标准,吸引了更多的厂商和研究机构对ZigBee的研究,使得ZigBee 在智能家居中成为通行的国际标准。然而,ZigBee的器件成本相对较高,智能家居中无线传感器网络的建立需要一笔巨额费用。

针对上述问题,本文采用2.4 GHz 这一频段来实现无线数据传输,选用的NRF24L01芯片在此频段上具备较多的频点,能够解决家庭间信道干扰问题,同时搭配成本低廉的STM8S103F3组成智能节点,降低了节点的成本,也降低了开发难度。

1 节点硬件设计

节点分为网关节点和普通节点:普通节点带有各类传感器,负责实时采集数据和网络组建;网关节点负责该网段网络的控制和数据的汇总、分析、上传。图1所示为网关节点和普通节点的结构图。

图1 节点结构图

1.1 MCU

STM8S103F3单片机具有用户可调整的16 MHz CPU时钟频率,容量为8 KB的Flash程序存储器,集成640 B真正的数据存储器EEPROM和1 KB的RAM,强大的I/O功能,具有16位高级控制定时器(TIM1)、SPI、I2C、UART、窗口看门狗、独立看门狗、ADC、PWM定时器(TIM2)、8位定时器(TIM4)等资源。单线接口模块(SWIM)和调试模块(DM),允许非侵入式、实时的在线调试和快速的存储器编程。STM8S103F3高度集成,精简外部电路可以设计出更小的节点。由于STM8S103F3单片机的这些特点,非常适合应用在无线传感器网络中。

1.2 射频收发器件nRF24L01

nRF24L01是一款工作在2.4~2.5 GHz世界通用工科医用频段的单片无线收发器芯片,芯片内置晶体振荡器、功率放大器、频率合成器以及调制器等功能模块,工作电压为1.9~3.6 V,有多达125个频道可供选择,输出功率和通信信道可以通过软件进行配置。

nRF24L01采用SPI总线接口与外部微控制器通信,最高可达10 Mb/s,数据发送传输最快可达2 Mb/s。

芯片自动处理字头和CRC,当发送数据时,只需要配置相关寄存器,将发送的数据和接收地址发送给nRF24L01,它会自动完成数据的打包(加字头和CRC校验码)和发送;当接收数据时,nRF24L01自动检测载波并进行地址匹配,接收到正确数据后自动移去字头、地址和CRC校验码,mcu通过SPI读取数据即可。

2 通信协议的设计

2.1 网络地址的分配

节点的网络地址设置为5字节,前4个字节表示网段地址,最后一字节设置为0表示网关节点,设置为1~190表示传感器节点,191~254表示子网组播地址,255用于局部广播地址。理论上能划分232个网段,在单个网段内,可以容纳1个网关节点,190个传感器节点,划分44个子网。节点的网络地址事先写入MCU的EEPROM中,上电自动获取。

2.2 数据传输模式

本次设计中数据传输的模式有单播、广播和组播3种。单播是指从网关节点到传感器节点或者传感器节点到网关节点数据的传输,是点对点通信;广播是指从一个节点到该网段的所有节点的通信;组播是指从网关节点到一组传感器节点的数据传输。

由于nRF24L01具有6个接收地址,将pipe0设置为单播使用,开启nRF24L01的自动应答和重发功能,pipe1设置为局部广播使用,pipe2设置为组播使用,在广播和组播时关闭自动应答和重发功能。

2.3 MAC层协议

为了避免节点发送数据和接受数据时导致信道的冲突,在网络的MAC层采用CSMA/CA协议[3]。该协议就是在发送数据帧之前先对信道进行预约。图2所示是节点A-E分布图。图中,第一种情况是节点B、C、E在节点A的无线信号覆盖范围内,而D不在;第二种情况是节点B、A、D在节点B的无线信号覆盖范围内,而C不在。

图2 两种节点分布图

这样,可将CSMA/CA协议的实现流程分为两个部分,分别解决以下两个问题。

第一,当节点B和节点C都要向节点A发送数据时,会导致发送端数据的冲突。解决的方法可以采用在通信之前,节点设置为接收模式,利用nRF24L01的载波检测(CD)功能监听信道是否空闲。若检测到信道忙碌,则节点随机延迟一段时间后重新监听;若检测到信道空闲,则节点并不立即发送,而是采用一定的退避机制,将信道冲突的可能性降到最低。所以,节点随机退避一段时间后再进行发送。这里采用二进制指数退避算法BEB。

第二,当节点A 和节点D都向节点B发送数据时,会导致接受端数据的冲突。解决的方法可以利用RTS/CTS/DATA/ACK握手机制。具体过程如下:

(1)发送节点向接收节点发送前,先通过竞争方式获得信道使用权,再向接收节点发送请求连接帧(request to send, RTS)。

(2)接收节点收到发送节点的 RTS 帧后,向外广播确认帧 (clear to send,CTS),里面包含发送节点地址, 建立两者之间的通信连接。

(3)发送节点收到接收节点的CTS帧后,向接收节点发送数据帧DATA,若没有收到CTS帧,则重新发送RTS帧。

(4)接收节点收到发送节点的 DATA 帧后,向从站发送数据确认帧 ACK。

(5)发送节点收到接收节点的 ACK 帧后,整个通信过程结束,若没有收到,则重新发送 DATA。

2.4 差错控制

在差错控制方面,系统采取数据重发机制与nRF24L01自身CRC校验相结合的方式。发送节点在发送RTS或 DATA 后, 若在一定时间内没有收到接受节点的 CTS 或ACK,则重新发送传输失败的帧,直到接收到回复或重发次数达到设定值。另外,nRF24L01 提供对 CRC 校验的硬件支持,通过设置 RF 配置寄存器,采取8位 CRC校验[4]。当接收的数据CRC校验出错时,nRF24L01 会自动丢弃错误帧。

2.5 数据帧格式

nRF24L01在增强型ShockBurstTM模式下的数据包格式如图3所示。

图3 增强型ShockBurstTM模式下的数据包格式

将网络中所有节点的通道都配置为32字节模式,因此,一个数据帧可以发送32字节。其中数据帧的格式如图4所示。

图4 数据帧的格式

图4中,Network segment为4字节,Send address为1字节,Receive address为1字节,Source address为1字节,CMD为1字节,剩下的24字节为data。Cmd具体含义见表1所列。

2.6 路由表的初始化和维护

在设计中,每个节点都要保存它下一跳的路径,也就是要保存它的邻居节点信息。每个节点的路由表结构图5所示。

图5 节点的路由表结构

Addi是邻居节点地址,Ci表示该节点与它第i个邻居通信所需要的cost,Li表示节点通过第i个邻居向网关节点发送数据所需要的cost。邻居节点在路由表中的位置按照Li从小到大的顺序排列。L1是节点的min cost。数据发送时按照min cost发送。

3 实验测试

笔者制作了7个节点模块,通过软件将网络地址前4个字节统一写为00:FF:EE:FF,最后一位分别写为0,1,2,3,10,12,34,66。将7个节点模块放置在2个房间中,上电组网测试。

通过实验得出:点对点通信时,在无障碍物时距离可以达到30 m,有一墙之隔时可传输10 m。对于单播和广播通信正常,丢包率不到0.5%。

4 结 语

本设计采用2.4 GHz 这一频段来实现无线数据传输,考虑到选用的nRF24L01芯片在此频段上具备较多的频点,能够解决家庭间信道干扰问题,同时搭配成本低廉的STM8S103F3组成智能节点,可降低节点成本,也降低了开发难度。本文阐述了系统中的硬件模块实现,家庭内部无线传感器网络的通信协议及通信数据包的设计方法,最后测试系统的可行性及稳定性。

参 考 文 献

[1] GAO Z F, ZHU S A. Multipoint wireless communication module on MSP430 and nRF905 [J]. Chinese Journal of Electron Devices, 2006, 29(1): 264-289.

[2] MA Shu-guang. Construction of wireless fire alarm system based on ZigBee technology [C]// Proceedings of the 5th Conference on Performance-based Fire and Fire Protection Engineering. Guangzhou, China: IFE, 2011: 308-313.

[3] Le S S, Wang P K. Energy efficient routing algorithm for wireless sensor networks [J]. Computer Engineering, 2008, 34(7): 113-117.

[4] ZHAO J H, HAN J Y. Wireless data transmission system based on nRF905 of greenhouse [J]. Development and Innovation of Machinery and Electrical Products, 2009, 22(6): 141-142.

[5] 朱桂峰. 基于nRF24L01的无线传感局域网络的研究与设计[D]. 保定:河北大学,2011.

推荐访问: 智能家居 设计 网络 NRF24L01