基于NRF24L01的无线控制系统 - 图文

更新时间:2024-05-19 12:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于NRF24L01的单片机无线控制系统的设计

XXX,物理与电子信息学院

摘要:随着智能化技术的发展,无线控制系统因功能实用,使用方便,减轻人

工操作负担而得到了广泛的应用。因此设计一款可靠,操作简便的无线控制系统,对于提高工作效率,提升生活质量,降低人力成本有积极的意义。本系统以89C52单片机和NRF24L01无线通信模块为核心,旨在设计一个简单实用,低成本的无线控制系统,使其能够实现基本的无线控制功能。最后,通过实物制作和测试,验证其可行性。该系统具备成本低廉,工作稳定,适用范围广,操作简单等特点,实际应用前景十分广阔。

关键词:NRF24L01;无线通信;单片机

WirelesscontrolsystembasedonMCUandNRF24L01

DingYueHu,CollegeofPhysicsandElectronicInformation

Abstract:

Withtherapiddevelopmentofintelligenttechnology,thewirelesscontrolsystemhasbeenwidelyadoptedandit’ssensefultodesignalowcost,reliableandeasy-usingsystem.ThissystemmainlybasedonNRF24L01wirelesscommunicationmoduleand89C52MCUcontrolmodule,thehostsendingdatathroughthewirelessmoduleandtheslavereceivingandtranslatingdatathentomakethecorrespondingdrivingmoduleaction,soitcanfinishsomebasiccontrolfunctions.Finally,weverifyitsfeasibilitythroughtheactualmakingandtesting.Thesystemhastheadvantagesoflowcost,stable,wideapplicationandsimpleoperation,withabroadprospectofapplication.

Keywords:Wirelesscontrol;MCU;NRF24L01

12

引言……………………………………………………………………………1系统制作方案……………………………………………………………………12.1主机模块制作………………………………………………………………12.1.2单片机最小系统………………………………………………………22.1.3显示模块…………………………………………………………………42.1.4键盘模块…………………………………………………………………52.1.5无线收发模块……………………………………………………………52.2从机模块制作………………………………………………………………62.2.1设备驱动模块……………………………………………………………63系统软件调试……………………………………………………………………83.1程序工作原理………………………………………………………………93.1.1系统通信原理……………………………………………………………93.1.2程序工作流程……………………………………………………………93.2开发环境与调试工具………………………………………………………93.3程序编译与调试……………………………………………………………104系统测试与性能分析……………………………………………………………124.1系统通信测试……………………………………………………………124.2系统性能分析………………………………………………………………135.结论……………………………………………………………………………13参考文献…………………………………………………………………………13附录…………………………………………………………………………………14

1引言

近些年随着信息化、智能化技术的发展,无线控制系统得到了广泛的应用,尤其是在逐渐兴起的智能硬件领域及物联网技术领域之中[1]。目前国家正在大力推广物联网产业,物联网是战略性新兴产业的重要组成部分,对加快转变经济发展方式具有重要推动作用,工业和信息化部还制定了《物联网“十二五”发展规划》,给智能家居系统领域的发展带来极大契机。作为物联网技术的重要组成部分,无线控制技术必然会得到极大的发展,具有无限的应用前景和市场。无线控制技术的广泛应用,不仅解决了需要人员亲临现场操作的问题,节省了人力成本,同时也克服了一些例如工作环境恶劣及场地限制因素的影响,给人们带来了极大的便利。从最常见的无线键盘鼠标、遥控灯光、无线抄表等,到无线智能家居和楼宇自动化,以及工业领域的无线控制设备等,可以说是渗透到了当今人们社会生产生活的方方面面[2]。

尽管如此,由于无线控制类产品种类繁多,成本及功能可靠性,使用简便性差距悬殊,整体质量参差不齐。真正功能强大,操作简便,成本低廉的产品并不多见。正是基于此情况,设计一款性能和品质兼备,易用与实用并行的无线控制系统显得十分有市场价值,本论文就以该系统具体实物的制作和测试来证明其可行性。

2系统制作方案

本系统旨在设计一个基于nRF24L01无线模块和89C52单片机的,低成本,高稳定性,操作简单的无线控制系统[3]。无线模块在单片机的控制之下能够实现指令和数据的无线传输,使从机产生相应动作,从而达到远程控制的目的。综合考虑以上要求,整个系统的制作分别从主机和从机两个部分进行。下面来具体介绍:2.1主机

主机主要功能是向从机发射控制命令以及显示从机当前的工作状态,具备相应的人机交互界面和接口。下面是主机结构图(图1.0)以及各模块介绍:

Nokia5110显示模块

电源模块单片机最小系统

nRF24L01无线收发模块

键盘模块

图1.0主机结构图2.1.1电源模块

电源模块功能是将交流220V市电转换为单片机需要的5V工作电压和无线模块工作需要的3.3V电压。为了缩短开发周期和使用方便,设计中由交流220V转直流5V的部分由市场上的电源模块来代替。考虑到单片机系统工作的稳定性,需要在5V电源输出端添加相应电容滤波电路,以滤除市电干扰。

同时由于nRF24L01无线模块工作电压在1.9V-3.6V之间,超出这个电压就有被烧坏的可能,因此在还要用集成三端稳压芯片AMS1117-3.3进行降压,该芯片是一个正向低压降稳压器,在1A电流下压降为1.2V,同时内部集成过流保护和限流电路,能将5V的直流电压稳定在3.3V,这样能保证无线模块正常稳定工作。下面是该芯片引脚图与实物图(图1.1):

图1.1AMS1117-3.3引脚图及实物图2.1.2单片机最小系统

单片机最小系统主要由电源、复位、晶振电路等部分组成,其原理图和制作的实物图分别如图1.2和图1.3所示。

对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源,电源模块的稳定可靠是系统平稳运行的前提和基础,51单片机虽然使用时间最早、应用范围最广,但是在实际使用过程中,一个和典型的问题就是相比其他系列的单片机,51单片机更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。此最小系统中的电源可以通过上述电源模块中稳定的5V电源提供,也可使用计算机的USB口供给。

图1.2单片机最小系统原理图图1.3单片机最小系统实物图单片机复位电路作用是把一个例如状态机初始化到空状态,原理是在单片机的复位引脚RST上外接电阻和电容,实现上电自动复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。

复位电路由按键复位和上电复位两部分组成[4],见图1.4所示。

(1)上电复位:STC89系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。

(2)按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。

图1.4复位模块

单片机系统里都有晶振电路,目的是产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,本系统为提高通信速率,使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间,电路见图1.5所示。

图1.5晶振模块2.1.3显示模块

显示模块我们采用了NOKIA5110液晶模块,相比于传统的显示模块

LCD1602,它的优点有分辨率为84x48,可显示4行汉字;采用串行接口与主处理器进行通信,包括电源和地在内的信号线只有8条,大大减少了单片机I/O口的占用;同时支持SPI等多种串行通信协议,传输速率可达4Mbps,可全速写入显示数据。模块实物图和电路原理图如图1.5所示,该模块总有8个脚,其中:

第1脚:RST——复位引脚第2脚:CE——片选信号

第3脚:DC——数据/指令选择第4脚:DIN——串行数据输入线第5脚:CLK——串行时钟线

第6脚:VCC——电源输入(3.3V和5V均可)第7脚:BL——背光控制端第8脚:GND——地线

图1.5NOKIA5110模块实物及原理图NOKIA5110显示模块的工作原理如下,在单片机程序中事先定义好各字符的编码数组,如字符’A’的编码数组为{0x00,0x7C,0x12,0x11,0x12,0x7C},//A。通过SPI串行通信协议向DIN引脚写入该数组内数据,即可显示字符字符’A’,显示汉字和图形也是同样的道理。2.1.4按键模块

按键模块是用户的输入设备,即通过按键使单片机发送不同控制指令。一般在单片机系统中按键模块有两种形式,一种是独立按键的形式,即每个按键占用一个I/O口,检测采用逐个扫描形式,常用在按键较少的情况。另一种是矩阵键盘的形式,目的是为了减少I/O口的占用,常用在按键数量较多的情况。检测方法有主要有两种,一种是“行扫描法”,另一种是“高低电平翻转法”。考虑到本系统需要的按键数目较少,故采用独立按键的形式。

原理图及实物图如图1.6所示:

图1.6按键模块2.1.5无线发射模块

nRF24L01(或nRF24L01P)是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurst模式控制器、功率放大器、晶体振荡器调制器、解调器。输出功率频道选择和协议的设置可以通过SPI接口进行设置。极低的电流消耗,当工作在发射模式下发射功率为0dBm时电流消耗为11.3mA,接收模式时为13.5mA,掉电模式和待机模式下电流消耗更低[5]。

因为在无线通讯应用中经常会遇到远距离通讯的要求,目前有一些

nRF24L01无线模块在原设计上增加了PA(功率放大器)和LNA(低噪声放大器)的型号,如“nRF24L01+PA”等。在发射部分通过PA电路将nRF24L01最大0dBm的输出功率放大到+22dBm左右,同时在接收部分通过LNA电路增加接收信号的强度。通过这种方式可以有效的增加nRF24L01无线模块的通讯距离,在空旷环境下最高可增加到2km[6]。

主机的无线模块功能主要是发送由单片机相应控制命令给从机,同时接收从机发来的状态数据交由单片机处理。

其电路原理图和实物图如图1.7和1.8所示:

图1.7nRF24L01原理图图1.8nRF24L01模块实物图这样主机部分就介绍完毕,制作完成后的主机模块如图1.9所示:

图1.9完成后的主机模块2.2从机模块制作

从机与主机是两个相对独立的模块,从机主机负责多主机发来的控制命令进行解释和执行,其结构图如图2.0所示,从机配备有相应的驱动模块(继电器)执行相应动作,但是也有一些和主机相同的部分,如单片机最小系统,无线收发模块等,这里就不再赘述,下面仅介绍设备驱动模块:

nRF24L01无线收发模块

电源模块

单片机最小系统

图2.0从机结构图设备驱动模块

2.2.1设备驱动模块

设备驱动模块是用于执行相应实际动作的单元,如电机驱动模块,LED驱动模块,继电器模块等,相应的动作也就是控制电机正反转,LED亮灭,继电器打开或关闭。在这里,为了测试方便,驱动模块用继电器来充当,主要是作为开关来控制。

图2.1是继电器的电路原理图和图2.2制作好的实物图:

图2.1继电器模块原理图图2.2继电器模块实物这样从机部分就制作完成了,图2.3是制作好的从机实物图:

图2.3从机部分实物图3系统软件调试

3.1程序工作原理

3.1.1无线模块通信原理

发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_P'LD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10us,延迟130us后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TXFIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TXFIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入卜一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。

在接收数据时,我们首先将nRF24L0l配置为接收模式,接着延迟130us进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RXFIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传

应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。在写寄存器之前一定要进入待机模式或掉电模式[7]。

3.1.2程序工作流程

本系统程序分为主机和从机两部分,为了便于直观形象地了解,采用流程图的方式叙述,源代码放在附录中。流程图如图3.1所示。

(a)主机程序工作流程图3.1流程图(b)从机程序工作流程图3.2开发环境与调试工具

本系统的程序采用C语言编写,故采用KEIL4集成开发环境进行开发,程序的下载通过STC-ISP软件和PL2303USB转串口线进行下载和调试,分别如图3.2和图3.3所示:

图3.2KEIL4集成开发环境图3.3程序下载软件和工具3.3程序编译与调试

程序采用模块化编程方式进行编写,即将相同功能的程序段放在一起,封装为一个头文件和C文件,在头文件中包含了该模块所有功能的API接口,使用时直接包含该头文件即可,便于后续的移植和使用。本系统中的5110显示模块函数即采用了此种方法编写,大大提高了编程效率[8]。在编写程序的时候,也出现了例如变量冲突,函数未定义等错误,通过下载到单片机中进行反复测试和修改后终于实现了程序的编译通过,实现了所要实现的远程控制功能。如图3.4所示:

现象说明:主机显示的为从机两路设备的状态,其中设备1即继电器模块,控制的为绿色LED灯,设备2为红色LED灯。从显示屏上可以看出,设备1处于开启状态,对应现象为绿灯亮;设备2处于关闭状态,对应现象为红灯灭。

3.4实际功能实现4系统测试

本测试旨在测试该系统在不同环境下的主机与从机间的最远通信距离以及系统工作的可靠度,从而分析系统的性能。4.1通信距离测试

下表是不同条件下测试的最远通信距离:(单位:米)

表1.2:测试条件空旷地带隔一堵墙隔二堵墙隔三堵墙

第一组27.921.417.59.4第二组28.021.617.39.3第三组27.821.117.49.2第四组28.121.517.59.1第五组27.721.317.19.4平均27.921.3817.369.28

4.2系统性能分析

通过以上测试,证明该系统在一般条件下,即通信距离在20米内,该无线控制系统均能正常工作,且能够实现基本的控制功能,且具备一定的抗干扰能力,可应用于实际的控制工程中去。但是超出一定距离(空旷地带为28米左右,其他地方不尽相同),系统稳定性和可靠性均变差,无法正常使用。在实际应用中出现这种情况,可以改用功率增强版的无线模块来解决这一问题。

5.结论

本系统以89C52单片机和nRF24L01无线通信模块为核心,通过实际制作和测试,实现了基本的无线控制功能,证明了其可行性。同时该系统具备成本低廉,工作稳定,适用范围广,操作简单等特点,实际应用前景十分广阔,如在日常生活中可控制楼层灯光亮灭,门窗开启闭合,舞台效果实现等情况,在工业控制中可实现电机转动控制、开启电源等功能,但是也存在着通信距离较短等部分值得完善的地方。总的来说,这次通过自己的亲手制作,熟悉了系统设计的流程,也拓宽了自己的知识面。更重要的是锻炼了自己的动手能力和独立解决问题的能力,收获颇丰。

参考文献

[1]李敏,张毅.基于nRF2401智能家居的自组织网络节点设计[J].电脑知识与技术:学术交流,2010(03),1693-1695.[2]施文灶,王平.无线传感器网络在智能家居系统中的应用[J].福建师范大学学报(自然科学版),2010(06),59-63.[3]王秀梅,刘乃安.低功耗2.4GHz无线通信系统的设计与实现[J].中国数据通信.2004(11)[4]郭天祥.单片机C语言教程一入门,提高,开发,扩展全攻略[M].北京:电子工业出版社,2008[5]辛洁,孙运强,张伦;基于ATmega16和nRF2401的无线射频收发系统设计[J].电子测试.2009(4)[6]刘志平,赵国良.基于nRF24L01的近距离无线数据传输[J].应用科技.2008(3)[7]陈丽娟,常丹华.基于nRF2401芯片的无线数据通信[J].电子器件.2006(01)[8]潭浩强.C程序设计[M].北京:清华大学出版社,2005附录:程序源代码参考和下载见https://yanyu-dyh.rhcloud.com/下载专区

本文来源:https://www.bwwdw.com/article/r6m7.html

Top