基于nRF24L01无线通信温度监测系统文档格式.docx
- 文档编号:16645606
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:24
- 大小:446.22KB
基于nRF24L01无线通信温度监测系统文档格式.docx
《基于nRF24L01无线通信温度监测系统文档格式.docx》由会员分享,可在线阅读,更多相关《基于nRF24L01无线通信温度监测系统文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
在工业、农业,军事和生活等许多方面,都需要对温度进行监测。
目前能够实现无线温度采集设计有很多,但最大的缺点是价格过高维护复杂。
在实际温度控制过程中既要求系统具有稳定性、实时性又需要降低功耗。
因此设计一种低功耗的无线温度检测系统很有意义。
1.2无线数据传输的发展状况
在2.4GHz非授权频段上,目前已经有了蓝牙,Wi-Fi,Zigbee等多个标准无线协议。
蓝牙,一种可应用于设备短距离通信(一般10m内)的无线电通信技术。
其能够简化移动通信终端设备之间的信息传输,也能简化设备与因特网Internet之间的信息通信,所以数据传输更加迅速高效,为无线通信拓宽道路,但是其传输距离短。
Wi-Fi,是一个高频无线电信号。
一个无线的网路通信技术品牌,由Wi-Fi联盟所拥有。
很容易与IEEE802.11混为一谈。
甚至把就认为Wi-Fi是无线网际网路。
Zigbee,一种基于IEEE802.15.4标准的低功耗个域网协议。
其拥有短距离、低功耗的无线通信技术特点。
自动控制和远程控制领域非常适合其应用。
nRF24L01,一款单芯片无线收发芯片,工作在2.4GHz~2.5GHz频率范围内。
芯片包括一个完全集成的功率放大器,频率合成器,调制器和晶体振荡器。
通过3线SPI端口完成发射功率和工作频率等工作。
电流消耗极低,在输出功率为-5dBm仅为10.5mA,在接收模式仅为18mA。
可以通过SPI接口进行设置输出功率频道选择和协议的设置。
几乎可以用于到各种微控制器芯片,完成数据的无线传送。
1.3本课题研究的对象和内容
1.3.1对环境信号的采集及分析
首先,自然界一切环境因素信号一般是模拟信号,要么我们采用A/D转换器将采集的信号转换成数字信号;
要么直接使用数字式传感器,直接得到数字信号好;
而我们的系统便是直接采用数字式传感器直接得到数字信号。
其次,采集的信号还需要经过转换才可以使用,那么本次课题是采用软件来转换采集到的数据的。
1.3.2对无线模块发送接收数据分析
无线数据传输一般是将采集到的数据打包,加上起始位,停止位,还有一些校验信息一起发送给接收端,接收端经过数据信息的起始位,停止位,校验信息加以判断数据是否有效,如果有效返回一个电平信号给发送端,这样确保发送端明确这组数据已经接收成功,可以进入下一组数据的发送,如此循环下去。
2系统方案设计
2.1MCU芯片选择
方案一:
主控芯片采用AVR单片机系列芯片。
其以快速,稳定,低功耗,多功能等优点迅速占领市场,应用于越来越多的场合。
方案二:
主控芯片采用MSP430F149系列单片机。
功能强大,高性能,低功耗,是一款16位单片机,内置高速12位ADC。
但比较昂贵价格束缚了它更快的发展,而且封装不利于焊接,需要PCB制板,成本和开发周期不好控制。
方案三:
主控芯片采用STC12C5A60S2增强型51单片机。
内置SPI总线接口和ADC,内部时钟不分频,可达到1MPS。
综合各方面因素,选择方案一,即用AVR系列中的ATmega16作为本系统的主控芯片。
2.2无线通信模块的方案
通信模块采用GSM模块,GSM模块需要依赖移动卫星或者手机卡,传输距离大大提高,但其成本也随之增加、还需要办理SIM卡,通信过程中也会产生相应的收费,后期成本较高。
通信模块采用CC2430无线通信模块,它需要Zigbee总线模式,传输速率250kbps,且内部集成性能高级8051内核。
但同样昂贵的价格是普通用户很难接受,且Zigbee协议本身相对较为复杂。
通信模块采用nRF24L01无线射频模块,高速率、低功耗、传输距离远、而且价格较便宜,采用SPI总线通信模式电路简单,操作方便。
基于系统的复杂性和程序的复杂度考虑,我们选用方案三。
2.3温度传感方案
AD590用于测量热力学温度、两点温度差、摄氏温度、多点最低温度、多点平均温度的具体电路,AD590拥有高精度、低价格、不依赖辅助电源、线性好等优点,但其依赖差分放大器放大和A/D转换,依赖硬件多,成本提高。
采用DS18B20数字温度传感器芯片,耐磨耐碰,体积小,使用便捷,封装形式多样,各种狭小空间或危险环境是其发挥作用的好场所。
经济,方便。
使用DS18B20电路简单,编程也较为简单,但是比AD590精度低。
考虑到电路的设计,成本,精度要求,我们选择方案二。
2.4显示模块方案
显示信息选择LCD12864。
一款通用的液晶显示屏,显示常用的汉字及ASCII码是其一大优点。
显示信息采用字符液晶LCD1602,一款比较通用的字符液晶模块,能够显示字符数字信息,而且价格低廉,控制容易。
显示采用LED7段数码管,其成本低,容易显示控制,但不能显示字符。
综合以上方案,我们选择了LCD1602显示采集的温度数据。
3系统的硬件设计
3.1硬件的系统组成
图3-1硬件系统组成图
Figure3-1
Hardwaresystemdiagram
本系统的功能是监测温度数据,如图3-1,首先是由温度传感器检测环境温度,然后由温度传感器将其转化为数字信号,再将该数字信号传给发送端MCU,由其进行数据处理;
送到显示模块进行显示,以及将数据传送给无线发送模块,由其将数据发送到接收端;
当接收端MCU接收到数据时,进行数据处理,然后通过串口通信传给PC机,从而实现PC机对温度数据实时监测;
构成总电路图见附录1。
3.2ATmega16主控芯片介绍
ATmega16以AVRRISC结构为基本结构,属于8位CMOS低功耗微控制器。
ATmega16的数据吞吐率可高达1MIPS/MHz,先进的指令集以及单时钟周期指令执行时间的应用,从而系统在功耗和处理速度之间的冲突得到缓解。
ATmega16有一下特征:
16K字节可编程Flash(同时可读写,即RWW),1K字节SRAM,512字节EEPROM,32个通用寄存器,32个通用I/O口线,用于边界扫描的JTAG接口,可在片内进行调试与编程,三个定时器/计数器(T/C),片内/外部中断,可编程的串行USART,有初始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。
工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;
掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作。
3.3DS18B20温度传感器工作原理
DS18B20利用集成技术,将温度检测和数字数据输出集成到一个芯片内部,从而增强抗干扰力。
其一个工作周期可分为即温度检测和数据处理两个部分。
DS18B20共有三种形态的存储器资源,它们分别是:
用于存放DS18B20ID编码的ROM只读存储器,由前面8位是单线系列编码(DS18B20的编码是19H),中间48位是芯片唯一的序列号,后面8位是以上56的位的CRC码(冗余校验)组成64位数据。
数据不由用户更改,在出厂时已经由厂商设置好了。
RAM数据暂存器用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。
第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。
在初始化时值将被刷新。
用户第3个EEPROM的镜像在第5个字节中。
计数寄存器在第6、7、8个字节中,目的是让用户设置温度分辨率的,同时也是内部温度转换、换算的暂时存储单元。
第9个字节为前8个字节的CRC码。
引脚定义:
(1)DQ为单数据总线,是数字信号输入/输出端;
(2)GND为电源地;
(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。
控制器对DS18B20操作流程:
(1)复位:
要使用DS18B20,首先是要复位,由控制器(单片机)给DS18B20单总线发送一个至少480μs的低电平信号,当DS18B20接到此复位信号后则会在15~60μs后回发一个芯片存在的脉冲,并表明初始化成功。
(2)控制器发送ROM指令:
确定DS18B20存在后就可以发送ROM指令了,ROM指令共有5条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。
ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。
多个器件也可以同时挂载在一条单总线上,此时通过每个器件独有的ID来区分,如果挂载一个的话,就直接可以跳过ROM指令了。
(3)控制器对存储器进行操作:
在DS18B20接收到ROM指令之后,接着就可以对存储器进行操作了。
操作指令同样为8位,共6条,分别是写RAM数据、读RAM数据、把RAM数据复制到EEPROM、温度转换(500μs)、将EEPROM中的警告值拷贝到RAM、工作方式转换。
当主机收到DSl8B20的响应信号后,便可以发出ROM操作命令之一,这些命令如下:
指令代码代码
SkipROM(跳跃ROM指令)[CCH]
这条指令不读取ROM编码,在单总线挂接一个DS18B20时,选用此指令可节省时间,如果在多芯片挂接时
则不能跳过。
ReadScratchpad(从RAM中读数据)[BEH]
此指令将从RAM中读数据,读取范围地址0到地址9,可利用复位信号终止读取,不读后面不需要的地址区域,可以节省时间。
ConvertT(温度转换)[44H]
接到此指令,芯片将转换一次温度,将结果放入RAM的第1、2地址。
一般芯片在转化温度值时用时比较长,在寄生工作方式时,转化温度后,强上拉并至少保持500ms,来确保芯片完成转化。
与DS18B20的每次动作都是由单片机的复位脉冲和DS18B20的应答脉冲开始的。
过程就是,单片机先发一个复位脉冲,保持低电平480μs~960μs;
单片机释放总线,等待DS18B20的应答脉冲;
单片机从发送完复位脉冲到再次控制总线至少要等待480μs。
读时隙需15~60μs,写时隙需要15~75μs,且在2次独立的写时隙之间至少需要1μs的恢复时间。
写时隙起始于单片机拉低总线。
3.4nRF24L01无线模块的工作原理
3.4.1nRF24L01芯片概述
nRF24L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。
内部集成了频率合成器、功率放大器、晶体振荡器、调制器等功能模块,也内嵌了增强型ShockBurst技术,其中可通过程序进行配置输出功率和通信频道。
nRF24L01主要特性如下:
GFSK调制;
硬件集成OSI链路层;
具有自动应答和自动再发射功能;
片内自动生成报头和CRC校验码;
数据传输率为lMb/s或2Mb/s;
SPI速率为0Mb/s~10Mb/s;
125个频道;
可兼容其它nRF24L01系列器件;
QFN20引脚4mm×
4mm封装;
电源电压为1.9V~3.6V。
3.4.2引脚功能描述
如图3-2所示,是nRF24L01的封装及引脚排列,以下是引脚功能:
图3-2nFR24L01封装图
Figure3-2nFR24L01packagingfigure
CE:
使能端;
CSN,SCK,MOSI,MISO:
SPI引脚端,可配置nRF24L01模式;
IRQ:
中断标志;
VDD:
电源输入端;
VSS:
电源地;
XC2,XC1:
晶振引脚;
VDD_PA:
输出为1.8V,为功率放大器供电;
ANT1,ANT2:
天线接口;
IREF:
参考电流输入。
3.4.3工作模式
nRF241L01有发射、接收、空闲及掉电四种工作模式,如表1所示。
待机模式1:
用于降低电流损耗,晶体振荡器处于工作状态;
待机模式2:
进入此模式只需FIFO寄存器为空且CE=1;
待机模式:
所有配置字保留。
在掉电模式下电流消耗最小,同时nRF24L01也不工作,但配置寄存器的值仍然有效。
表1nRF24L01四种工作模式
Table1nRF24L01fourworkmodes
模式
PWR_UP
PRIM_RX
CE
FIFO寄存器状态
接收模式
1
-
发射模式
数据在TX
FIFO寄存器中
1→0
停留在发送模式,直至数据发送完
待机模式2
TX
FIFO为空
待机模式1
无数据传输
掉电
3.4.4工作原理
发射数据时,配置nRF24L01为发射模式:
按照时序由SPI口把接收节点地址TX_ADDR和有效数据TX_PLD写入nRF24L01缓存区,CSN为低时连续写入TX_PLD,TX_ADDR在发射初写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据。
接收数据时,配置nRF24L01为接收模式,延迟130μs,等待数据的到来。
当地址和CRC有效时,就将数据包写入RX_FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去获取数据。
如图3-3,图3-4,给出SPI操作及时序图:
图3-3SPI读操作
Figure3-3SPIreadoperation
图3-4SPI写操作
Figure3-4SPIwriteoperation
3.4.5配置字
SPI口为同步串行通信接口,最大传输速率为10Mb/s,传输时低位字节优先,高位字节接在后面。
但单个字节先高后低。
与SPI有关的指令共有8个,由MOSI输入指令。
MCU从MISO获取相应的状态和数据信息。
nRF24L0l的配置寄存器可以定义所有的配置字,通过SPI口可以轻松访问配置寄存器。
nRF24L01共有25个配置寄存器,如表2所示,是最常用的配置寄存器。
表2常用配置寄存器
Table2Commonconfigurationregister
地址(H)
寄存器名称
功能
00
CONFIG
设置24L01工作模式
01
EN_AA
设置接收通道及自动应答
02
EN_RXADDR
使能接收通道地址
03
SETUP_AW
设置地址宽度
04
SETUP_RETR
设置自动重发数据时间和次数
07
STATUS
状态寄存器,用来判定工作状态
0A~0F
RX_ADDR_P0~P5
设置接收通道地址
10
TX_ADDR
设置接收接点地址
11~16
RX_PW_P0~P5
设置接收通道的有效数据宽度
3.4.6nRF24L01模块的原理图
如图3-5所示,nRF24L01单端匹配网络:
晶振,偏置电阻,去耦电容。
图3-5nRF24L01单端50Ω射频输出电路原理图
Figure3-5nRF24L0150Ωsingle-endedrfoutputcircuitprinciplediagram
3.5发送端显示模块设计
本设计在发送端采用LCD1602液晶显示模块来显示温度,上拉电阻提高PB驱动能力,PB作为数据输出并作为LCD的驱动,PD口的PD6~PD4分别作为液晶显示模块的使能信号EN,RW端则配置成写,数据/命令选择RS。
具体电路如图3-6所示。
图3-6LCD1602液晶显示模块电路图
Figure3-6LCD1602LCDdisplaymodulecircuitdiagram
3.6接收端与PC机通信模块设计
本系统采用MAX232来完成转换电平。
MAX232内部有电压倍增电路和转换电路,仅需+5V电源便可工作,使用十分方便,MAX232的T1IN引脚连接ATmega16的串行输入口线TXD,R1OUT引脚连接ATmega16的串行输入口线RXD,MAX232的T1OUT、R1IN分别于与RS232的2、3引脚相连。
MAX232泵电源引脚必须接0.1μf电容,如图3-7中的C7、C8、C9、C10。
图3-7单片机与PC机串口通信电路
Figure3-7MCUandPCserialcommunicationcircuit
4系统的软件设计
4.1发送端软件设计
本系统发送端采用DS18B20温度传感器采集温度,经ATmega16收集处理数据,温度数据由LCD1602显示,再由nRF24L01模块发送到接收端。
其中包括DS18B20和nRF24L01模块的初始化配置等。
软件流程图如图4-1。
图4-1发送端软件流程图
Figure4-1Thesendersoftwareflowchart
4.2接收端软件设计
本系统接收端主要完成接收发送端温度数据,在通过串口通信,将数据发送到PC端。
软件过程包括nRF24L01初始化,串口初始化等,过程如图4-2。
图4-2接收端软件流程图
Figure4-2Thereceiversoftwareflowchart
5系统的调试
在不通电提前下,用万用表检查线路的连通性,并核对元器件的型号、规格。
特别注意电源的短路问题,并重复检查地址总线、数据总线、控制总线是否存在相互间的短路或其他信号线的短路。
晶体振荡器和电容应尽可能靠近单片机以减少寄生电容,确保振荡器稳定和可靠地工作。
我们仔细检查了本系统的所有元件以及连线,所以此步骤不会发生故障。
在通电前提下,检查各器件引脚的电位是否正常。
其中遇到的问题很多,如焊接电路线不合格,中间有些许断路或虚焊,造成失败。
还有USB电源电压经过供电给负载,电压下降0.5V,致使单片机不工作的问题。
我们进行的是单点通信,传输温度数据。
发送端采集温度,在LCD1602上显示,并发送到接收端。
其结果如图5-1。
图5-1发送端温度显示
Figure5-1Thesendertemperaturedisplay
接收端接收到数据并通过串口通信发送到PC机客户端,PC端显示如图5-2。
图5-2接收端上传给PC机的温度数据显示
Figure5-2ThereceivertothetemperatureofthePCdatashow
结束语
单片机数据采集与处理是非常重要的应用领域,除电信号之外,单片机还可以运用传感器实现对非电信号的采集转化。
我们的设计就是一个非常有利的证明。
本设计采用一种数字式的温度传感芯片DS18B20实现了单片机温度监测系统。
本设计内容重点:
1.nRF24L01无线传输模块的操作。
2.DS18B20的各种操作命令。
3.单片机LCD1602显示。
4.单片机的串口通信。
研究展望:
智能无线温度监测系统正朝着高精度、多功能、总线标准化、高可靠性及安全性和网络温度监测器、研制单片测温测温监测系统等高科技的方向迅速发展。
1.提高温度监测系统的精度和分辨力
在21世纪初期就推出了智能无线温度监测系统,当时采用的是8位A/D转换器,其测温精度较低,分辨力只有2°
C。
目前,世界其他国家已相继推出了多种高精度、高分辨力的智能温度传感器,所用的是9~12位A/D转换器,分辨力一般都可达0.5~0.0625°
为了提高多通道智能无线温度监测系统的转换速率,也有的芯片采用高速逐次逼近式A/D转换器。
2.增加温度监测系统的测试功能
新型智能无线温度监测系统的测试功能也在不断增强。
比如,采用DS1629型单总线温度传感器增加了实时日历时钟(RTC),使其功能更加完善。
DS1624还增加了存储功能,可将短信息存储于芯片内部256字节的E2PROM存储器。
另外,智能无线温度监测系统正从单通道向多通道的方向发展,这就为研制和开发多路无线温度监测系统创造了优良条件。
智能无线温度监测系统具有多种工作模式,主要有单次转换、连续转换、待机模式,有的还提供低温极限扩展模式,操作非常简单。
对某些智能无线温度监测系统而言,主机(外部微处理器或单片机)还可通过配置相应的寄存器来设置其A/D转换速率,分辨率及最大转换时间。
最后敬请各位专家、老师和同学对论文提出宝贵的指导意见和建议。
参考文献
[1]马潮.AVR单片机嵌入式系统原理与应用实践[M].北京:
北京航天航空大学出版社,2011.8.1.
[2]老杨.李鹏举.AVR单片机工程师是怎样炼成的:
基于C语言+Proteus仿真[M].北京:
电子工业出版社,2012.11.1
[3]彭伟.单片机C语言程序设计实训100例[M].北京:
北京航空航天大学出版社,2010.5
[4]何钦铭.C语言程序设计(第2版)[M].北京:
高等教育出版社,2012.3
[5]吕秀锋.C语言程序设计现代方法(第2版)[M].北京:
人民邮电出版社,2010.4
[6]徐科军.传感器与检测技术(第3版)[M].北京:
电子工业出版社,2011.9
[7]樊尚春.传感器技术及应用(第2版)[M].北京:
北京航天航空大学出版社,2010.10
[8]赵广林.常用电子器件识别/检测/选用一读通(第2版)[M].北京:
电子工业出版社,2011.3
[9]李朝青.单片机原理及接口技术(第3版)[M].北京:
北京航空航天出版社,2009.
[10]张毅刚.单片机应用设计[M].哈尔滨:
哈尔滨工业大学出版社社,2009.
[11]沈红卫.单片机应用系统设计实例与分析[M].北京:
航天航空大学出版社,2008.
[12]康华光.数字电子技术基础(第五版)[M].北京:
高等教育出版社,2010.431~456
[13]龙一鸣等编著.单片机总线扩展技术[M].北京:
北京航空航天大学出版社,1993
[14]康华光.模拟电子技术基础
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 nRF24L01 无线通信 温度 监测 系统