如何设计无线红外测温模块块

博客访问: 19897
博文数量: 63
博客积分: 0
博客等级: 民兵
技术积分: 650
注册时间:
分类: 嵌入式 22:24:31
随着信息化时代的到来,ZigBee无线模块广泛应用在军事、智能家居、医疗监护环境监测和远程工业控制领域。事实证明,无论是工厂、办公楼还是家居都需要无线传感网络的支持。为了满足社会对无线传感器技术的需求,出现了多种短距离的无线通信技术,如Bluetooth和红外技术等。这些技术确实给我们的工作和生活带来方便。但是对于远程监控系统、家居智能控制和工业自动化控制领域来,这些技术难以满足人们的需求, ZigBee数传技术的出现带来了革命性的变革。
由于使用成本低,技术难度小,被广泛地应用工业远程控制和智能家居领域。无线传感器网络不需要太高的传输带宽,其极低的功率消耗使得无线传感器网络设备的工作寿命更长。
1 无线传感网的构成
ZigBee无线模块无线传感网(RSN)配备了三种类型的节点:传感器节点(sensor node)、汇聚节点(syntaxesnode)和管理节点(management node)。将许多的带有射频功能的节点任意地分布在被监控区域之内,然后自动地组建一个无线网络。当数据经过节点的预处理后,再传输到其它的节点,然后再转到汇聚节点,最后到达管理节点。
图1 无线传感网(RSN)组成
该传感器节点既可以作为终端设备也可作为当路由设备,汇聚节点相对其它节点来说具有更强的功能,它能够转换协议使得管理节点和传感器网络实现通信,并且保证了管理节点发布一些控制命令的功能。
RSN的基本组成单元是无线传感器网络节点,它一般包括和处理模块、传输模块、供电模块和其它的组件,如图2所示。
图2 无线传感器网络节点结构
主要包括:
(1)模块:包括传感器和AD转换模块,主要用于获取数据信息
(2) 数据存储模块:包括处理器单元和存储器,进行数据的存储转发工作。
    (3)数据传输模块:ZigBee无线模块,主要是和其它节点交换数据。
    (4)电源模块:采用普通5号电池。
    (5)辅助模块:一些用户自定义的系统。
2 系统软硬件设计与实现
本文基于设计的的无线温度传感网络系统实现了温度传感器的无线信号传输与控制,具有低功耗、安装维护方便等有点。它还可以和其它的通信技术(如GSM/GPRS)以及其它传感器结合起来,实现对监测区域的远程监控。
(1)网络结构
本系统采用星型网络结构,主要包括了三个部分,分别是:一个协调器、三个终端节点和上位PC机。终端节点上加上DS18B20和蜂鸣器,将终端放置于监测区域的不同位置,通过DS18B20进行ZigBee数据采集并存储外部的温度,当温度超过或低于某一温度限度时则发出报警;协调器负责搜索并组建Zigbee数传网络,同时完成传感终端与上位PC机间的数据传输;PC机负责显示接收到的温度数据并绘制出平均温度的实时变化曲线图。
(2)系统实现过程描述
中心板上电后,首先自启动为协调器,搜索信道组建网络成功后,自动进入允许绑定状态的自启动模式。在该模式下,LED状态指示节点中的LED1和LED3长亮,LED2闪烁几秒变暗,指示设备已被配置成成协调器并自动处于允许绑定状态。终端节点上电后自动发送加入网络的请求,它会试图发现一个合适的协调器并且将自己和协调器绑定起来,在本系统中,采用星型网络拓扑结构只存在一个协调器,因而终端节点能够自动加入网络并和协调器建立绑定,此时它的LED状态指示节点中的LED1和LED2会快速闪烁。绑定成功建立后,终端设备会根据程序中设定的发送报告周期时间周期性地将采集到的温度数据发送给协调器,此时协调器的LED状态指示节点中的LED2会慢速闪烁。
(3)系统硬件总体设计
主协调器的硬件系统包括了供电模块、LCD显示人机交互模块、LED节点状态指示模块、串口转USB模块、仿真器模块。主协调器的硬件整体系统设计框架如图3所示。
图3 主协调器硬件设计框图
其中,仿真器模块主要用来将程序下载到硬件板中;CC2530通信模块负责接收和存储数据,并向传感器节点传输控制信息,并且负责与PC机进行数据交换;LCD显示模块和PC上位机负责显示传感节点发送的温度数据,方便进行人机交互;LED节点状态显示模块用来指示节点的工作状态,方便系统的测试和使用;串口模块负责转换CC2530模块和PC机之间的通讯信号。本系统中采用USB供电方式进行供电。
(4)传感器节点设计
传感器节点硬件系统包括供电模块、温度测量传感器模块、蜂鸣器报警模块、LED节点状态指示模块和CC2530通信模块。传感器节点硬件整体系统设计实现框架如图4所示。
图4 传感器节点硬件结构示意图
温度测量传感器采用DS18B20,负责采集监测区域内的温度数据;蜂鸣器报警模块负责当温度数据超过或低于限定值时发出报警信号;LED节点状态显示模块用来指示节点的工作状态,方便进行系统的测试和使用。
(5)供电电路的设计
本系统中为了保证电压的稳定性和测试方便采用了USB供电的方式,通过AMSV将5V的电压降压成3.3V供电路使用。
    传感器终端节点采用用微型电池进行供电,由于系统的功耗极低,因而电池供电可持续6个月-2年,本系统采用了两节5号电池,其供电电路较为简单。
(6)协调器液晶显示电路的设计采用ZLE12864A的点阵图形液晶显示模块,采用串口控制方式,液晶显示电路如图5所示:
图5 液晶显示电路图
(7)协调器串口电路的设计
上位PC机通过串口电路对从协调器传送来的温度数据进行实时显示并绘制变化曲线。系统通过MAX3232来实现电平的转换,该器件支持小电压工作,工作电压可在3-5V,外围器件少且工作可靠,被广泛地用于RS232通信标准的收发信号转换。串口电路图如图6所示:
图6 串口电路图
(8)协调器仿真器模块的设计
本系统的仿真器采用高性价比的smartrf04EB,smartrf04EB具有方便使用容易上手等特点,具有较稳定的仿真性能。其硬件电路如图7所示:
图7 仿真器连接电路图
3 测试结果
经过测试,温度传感网络在室内进行通信时,有效距离为70m左右,在空旷地域测试时有效通信距离为350m左右,运行稳定。经过以上的整体测试,系统基本达到了预订的设计目标,并且具有一定的可扩展性,只要在软件和硬件上进行相应的改动就可以增加传感器的种类和数量,同时还可以加上路由节点来扩大通信的范围,可以实现对多种环境参量的实时监测,具有较大的发展前景。
以射频芯片CC2530和DS18B20为核心,设计实现了基于的温度传感网络的硬件和软件部分。基于ZigBee设计的无线温度传感网络具有很多优点,特别适用于工业化监测和需要进行大范围布置ZigBee数据采集的应用场合, 具有很强的实用价值。
    CC2530外围电路较简单,控制方便,并且传输距离较远,适合用于ZigBee组网的应用。
   
阅读(503) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
请登录后评论。没有更多推荐了,
不良信息举报
举报内容:
超低功耗 无线测温模块 无线测温系统, 待机数年无需更换电池
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!低功耗无线测温系统的设计--《第六届全国信息获取与处理学术会议论文集(3)》2008年
低功耗无线测温系统的设计
【摘要】:介绍了基于无线收发芯片nRF24E1的短距离低功耗无线测温系统的设计思想和实现过程。系统以嵌入式8051单片机内核的射频收发芯片nRF24E1为核心,采用数字式温度传感器DS18B20,应用传感技术、无线收发技术及计算机技术实现温度数据的采集和短距离无线传输。系统的结构简单、可靠性高、数据传输速度快,功能易扩展,适用于多种应用领域的无线温度检测。
【作者单位】:
【分类号】:TP274
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【参考文献】
中国期刊全文数据库
金懿,刘彭义,张葡青;[J];暨南大学学报;2004年01期
韩学军,赵文涛;[J];电力信息化;2005年03期
郭刚,李思敏;[J];桂林电子工业学院学报;2004年03期
【共引文献】
中国期刊全文数据库
王宪伟;[J];长春大学学报;2005年04期
李稢;杨剑;张文根;邹忠;;[J];工业控制计算机;2006年08期
吕昂;[J];农机化研究;2005年05期
章云峰,钱立根,张荣标;[J];微计算机信息;2005年19期
高廓,田小建,田宁君;[J];现代电子技术;2005年22期
朱滨峰;徐桂云;李俊敏;;[J];仪器仪表标准化与计量;2006年05期
中国硕士学位论文全文数据库
张其武;[D];山东大学;2005年
章云峰;[D];江苏大学;2005年
冯改玲;[D];东华大学;2006年
李兰兰;[D];西北工业大学;2006年
朱亮;[D];山东大学;2006年
冯燕尔;[D];浙江工业大学;2006年
严斌;[D];桂林电子科技大学;2006年
栾昌海;[D];天津大学;2005年
王茂军;[D];沈阳工业大学;2007年
林龙森;[D];福建农林大学;2007年
【二级参考文献】
中国期刊全文数据库
,李富英;[J];电子产品世界;2002年14期
【相似文献】
中国期刊全文数据库
,李平康;[J];微计算机信息;2004年06期
赵望达,刘勇求,贺毅;[J];电子技术应用;2004年11期
陈旭,张昭秦;[J];成组技术与生产现代化;2004年03期
刘鸣,车立新,陈兴梧,赵煜;[J];电测与仪表;2001年10期
赵海兰,毛玉良;[J];电子工程师;2003年08期
过幼南;[J];电气电子教学学报;2004年05期
,孙传友;[J];测控技术;2003年10期
张广明,司栋森;[J];计算机测量与控制;2003年04期
彭光辉;[J];电脑知识与技术;2004年26期
李文江,张岩,刘晓平;[J];辽宁工程技术大学学报;2004年05期
中国重要会议论文全文数据库
刘挺进;;[A];第六届全国信息获取与处理学术会议论文集(3)[C];2008年
邓奕;刘少军;刘忠伟;周育才;;[A];第二十六届中国控制会议论文集[C];2007年
林秀萍;徐继宁;杨晓敏;;[A];全国自动化新技术学术交流会会议论文集(一)[C];2005年
付晓;王勇;仇永生;;[A];中国电子学会第十五届信息论学术年会暨第一届全国网络编码学术年会论文集(下册)[C];2008年
刘永春;王秀碧;陈彬;;[A];第六届全国信息获取与处理学术会议论文集(3)[C];2008年
闫文浩;闫卫平;;[A];第八届全国信息获取与处理学术会议论文集[C];2010年
毕卫红;付兴虎;;[A];中国光学学会2006年学术大会论文摘要集[C];2006年
薛启龙;黄蕾蕾;;[A];中国石油石化数字管道信息化建设论坛暨燃气管网安全、经济、运营技术交流研讨会论文集[C];2009年
邓晓燕;朱维璐;刘建华;;[A];中国自动化学会全国第九届自动化新技术学术交流会论文集[C];2004年
高翔宇;李邓化;梁爽;;[A];第六届中国功能材料及其应用学术会议论文集(2)[C];2007年
中国重要报纸全文数据库
金杰;[N];电子报;2005年
肖建大;[N];电子报;2004年
李杰;[N];电子报;2003年
中国电子科技集团公司第四十九研究所 徐泽善;[N];中国电子报;2002年
彭宏碧;[N];电子报;2002年
樊孝辉;[N];电子报;2005年
刘少龙;[N];电子报;2005年
中国硕士学位论文全文数据库
武晓明;[D];山东科技大学;2004年
杨久河;[D];中国海洋大学;2010年
覃鲜艳;[D];武汉理工大学;2012年
陈海燕;[D];山东科技大学;2005年
刘恒;[D];西北工业大学;2006年
傅海军;[D];江苏大学;2007年
石权;[D];吉林大学;2008年
刘纯利;[D];合肥工业大学;2008年
贾澜萍;[D];内蒙古大学;2005年
赵志琴;[D];吉林大学;2006年
&快捷付款方式
&订购知网充值卡
400-819-9993设计一款无线模块能带给您什么价值? -- 公司资讯 -- 无线抄表,无线定位,无线数传模块,Si,nrf905,nrf24l01,cc1101,cc1020,zigbee,无线遥控,无线监控,温度传感,无线测温
您的位置: >> 公司资讯
产品分类 Products
&&&&&&&中远距离无线RS232/RS485&&&&支持无线唤醒的超低功耗数传模块&&&&&&&配套电脑端无线数传模块&&&&&&&&&&无源RFID&身份识别&&&&&&&&&&温度&定时无线采集模块
设计一款无线模块能带给您什么价值?
  工业4.0的核心就是:设计模块化,生产自动化,管理标准化,而RFinchina唯一做的就是无线模块化,无线应用简单化,这就是RFinchina的理念。产品设计无需天花乱坠的浮夸,更需工匠精神,一点一点的雕琢,浑然天成。没有最好的装饰,只有最合身的装束,生活如此,做产品也一样,我们不高假大空,只做最实用的产品,做最真实的无线应用传播者和推广者。
  尽管无线技术普及和发展的速度继续领先绝大部分相关工程要素的速度,但通过购买现成的射频芯片并把其与天线连接起来,仍不能使OEM实现一个完整设计。其中阻抗匹配和PCB布局优化等因素对RF设计提出艰巨挑战。虽然无线IC制造商在芯片开发过程中、在硅片级投入了大量时间和资金以解决各种设计挑战,但从设计精良的RFIC到将其成功整合进OEM产品还有相当的距离。因此,RF参考模块应运而生,为OEM围绕芯片进行应用设计提供了便利,所以模块能给您带来的价值就是让无线应用简单化,让您少走弯路,仅此而已。
&&&& 在做出对一款陌生的射频芯片在研发资金和时间方面进行不菲的投入决策前,OEM想做的第一步是评估该无线IC的性能。RF参考模块就提供了这样一种平台,它一般与带所需固件的开发或评估工具包连接使用。利用该模块可进行室内或室外的覆盖距离测试。OEM借此模块可大致了解该射频芯片的实际性能。
图1:采用差分天线的模块
所以,产品开发商所需评估的将仅是射频的标测基准性能,此举规避了OEM仅凭数据手册规范而非实际性能就着手进行基于该芯片的设计带来的风险。避开高频这一黑匣子,更多只需要应用层软件设计,从而大大降低了投资风险。
&&&&& 用SMA或微型同轴连接器(见图2)取代天线时,可实现该RF参考模块的另一种方式。这一种简化了直到天线端电路链路的传导RF测量的实施处理。这种模块还为进一步研究RF管脚后链路的匹配网络、利用网络分析仪所进行回波损耗和阻抗测量成为可能。此举使OEM有能力根据其所拟用的天线修改匹配网络。借助频谱分析仪或功率表可进行诸如不同功放等级的峰值RF输出功率等传导测量。还可测量感兴趣频带的杂散谐波。可对发射机占用频段和接收机传导杂散进行测量和检测以确定它们是否满足无线管理委员会相关规约。
图2:采用SMA单鞭天线的模块
PCB布局和原理图设计要点
&&&&& RF参考模块提供了采用该射频芯片的典型应用电路原理图及满足该模块规范的优化PCB布局。因芯片制造商为RF布局工程师提供了充足资源放手让他们为了确保最佳性能对PCB进行修改优化,所以,OEM在布局时可能犯的若干错误,射频芯片厂家都已为它们修正过了。这些可能的失误包括:
(a)如引入边带噪声的将晶体放置在RF输出匹配回路下面
(b)可使接收机性能降低几个dB的支离破碎的地电位孤“岛”;
(c)在其附近排布类似螺丝等机械元件,这种做法易于使天线失谐;
(d)可导致ESD失效的封闭走线错误。
&&&&& 无线模块的PCB线迹的线宽需要考虑到不同信号(如电源线和发射输出的发射线等)的要求。另外,制造商一般会把重要的IC管脚引出到接线端子排或测试点以方便测试测量。若OEM打算利用外接功放加大 发射功率来拓展覆盖范围,参考模块可提供驱动功放的几个管脚并采用外接RX-TX状态RF切换。在设计中采用的是建议的电源去耦电容值。采用参考模块的另一个显著好处是若制造商采用的是PCB导线式天线,则你就拥有了可工作的天线设计从而省去了模拟测试各种其他天线拓扑的麻烦。借助参考模块可方便地估算你的设计所需的PCB层数和PCB厚度。
原材料成本估算及FCC认证
&&&&& 就低成本应用来说,RFIC所需外围器件数,常常决定在两款具有相同RF数据指标的射频芯片间的取舍。借助RF参考模块可准确估算所需原材料及搭建OEM自己模块所需的大致成本。制造商一般选用可方便从分销商处买到的分离器件。
&&&&& 一些射频IC制造商的RF参考模块已经过了FCC的预认证。这些RF参考模块都通过了若干FCC测试,如:杂散发射测试、输出功率和占用带宽测试等。预认证规避了产品开发商面临的一个主要瓶颈,特别是当原理图和布局是原封不同照搬RF参考模块时更是省事。
&&&&& RF参考模块使OEM有能力立即评估该射频芯片、可对其应用所需的原材料成本进行精准估算分析、并拥有了经过充分测试的设计指导。这样就加快了其产品的上市速度、进而降低前期开发成本和风险,提升了其投资回报率。因此,RF参考模块在无线通信领域具有一定的是实用参考价值。希望国内各无线模组供应商以精益求精的态度,加速无线通信领域的快速发展。
友情链接:
版权所有 rfinchina.com
技术支持:
网站友情链接:如何为编程爱好者设计一款好玩的智能硬件(十)——无线2.4G通信模块研究·一篇说完
如何为编程爱好者设计一款好玩的智能硬件(十)——无线2.4G通信模块研究·一篇说完
六、温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)!
七、点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计一款好玩的智能硬件(七)——LCD1602点阵字符型液晶显示模块驱动封装(上)
六、温湿度传感器DHT11驱动封装(下):
七、点阵字符型液晶显示模块LCD1602驱动封装(上):
八、LCD1602点阵字符型液晶显示模块驱动封装(中):
九、LCD1602点阵字符型液晶显示模块驱动封装(下):
十、nRF24L01无线2.4G一篇说完
  承接上文,本节将从零开始带你认识无线2.4G模块,了解其控制和通信指令,从而封装一个nRF24L01底层的驱动函数,并最终写一个3-3通信的小实验验证我们的封装。在Quick Know部分你将快速浏览到nRF24L01的基本信息;在Thorough Understand部分你将深入nRF24L01细节了解其通信属性;在最后一部分你将看到我关于nRF24L01的底层驱动封装,并基于这个封装做了个简陋的3对3无线互传实验。
QUICK KNOW
1、芯片简介:
  NRF24L01 是 NORDIC 公司最近生产的一款无线通信通信芯片,采用 FSK 调制,内部集成 NORDIC 自己的 Enhanced Short Burst 协议。可以实现点对点或是 1 对 6 的无线通信。无线通信速度可以达到 2M(bps)。NORDIC 公司提供通信模块的 GERBER 文件,可以直接加工生产。嵌入式工程师或是单片机爱好者只需要为单片机系统预留 5 个GPIO,1 个中断输入引脚,就可以很容易实现无线通信的功能,非常适合用来为 MCU 系统构建无线通信功能。
2、数据接口主要是SPI接口:
CSN:芯片的片选线,CSN 为低电平芯片工作。
SCK:芯片控制的时钟线(SPI 时钟)
MISO:芯片控制数据线(Master input slave output)
MOSI:芯片控制数据线(Master output slave input)
IRQ:中断信号。无线通信过程中 MCU 主要是通过 IRQ 与 NRF24L01 进行通信。
CE: 芯片的模式控制线。在 CSN 为低的情况下,CE 协同 NRF24L01 的 CONFIG 寄存器共同决定 NRF24L01 的状态(参照 NRF24L01 的状态机)。
3、NRF24L01状态及状态机:
Power Down Mode:掉电模式
Tx Mode:发射模式
Rx Mode:接收模式
Standby-1 Mode:待机 1 模式
Standby-2 Mode:待机 2 模式
4、对24L01的固件编程的基本思路如下:
1) 置CSN为低,使能芯片,配置芯片各个参数。配置参数在Power Down状态中完成。
2) 如果是Tx模式,填充TxFIFO。
3) 配置完成以后,通过 CE 与 CONFIG 中的 PWR_UP 与 PRIM_RX 参数确定 24L01要切换到的状态。
Tx Mode:PWR_UP=1; PRIM_RX=0; CE=1 (保持超过 10us 就可以);
Rx Mode: PWR_UP=1; PRIM_RX=1; CE=1;
4) IRQ 引脚会在以下三种情况变低:
Tx FIFO 发完并且收到 ACK(使能 ACK 情况下)
Rx FIFO 收到数据
达到最大重发次数
将 IRQ 接到外部中断输入引脚,通过中断程序进行处理。
5、Tx与Rx的配置过程 :
  Tx模式初始化过程
1)写 Tx 节点的地址
2)写 Rx 节点的地址(主要是为了使能 Auto Ack)
RX_ADDR_P0
3)使能 AUTO ACK
4)使能 PIPE 0
5)配置自动重发次数
SETUP_RETR
6)选择通信频率
7)配置发射参数(低噪放大器增益、发射功率、无线速率)
8 ) 选择通道 0 有效数据宽度
9)配置 24L01 的基本参数以及切换工作模式
Rx 模式初始化过程
1)写 Rx 节点的地址
RX_ADDR_P0
2)使能 AUTO ACK
3)使能 PIPE 0
4)选择通信频率
5) 选择通道 0 有效数据宽度
6)配置发射参数(低噪放大器增益、发射功率、无线速率)
7)配置 24L01 的基本参数以及切换工作模式
6、原理图:
THOROUGH UNDERSTAND
1、Introduction:
  The nRF24L01+ is a single chip 2.4GHz transceiver with an embedded baseband protocol engine(Enhanced ShockBurst(TM)), suitable for ultra low power wireless applications. The nRF24L01+ is designed for operation in the world wide ISM frequency band at 2.400 - 2.4835GHz.
  To design a radio system with the nRF24L01+, you simply need an MCU (microcontroller) and a few external passive components.
  You can operate and configure the nRF24L01+ through a Serial Peripheral Interface (SPI). The register map, which is accessible through the SPI, contains all configuration registers in the nRF24L01+ and is accessible in all operation modes of the chip.
  The embedded baseband protocol engine (Enhanced ShockBurst(TM)) is based on packet communication and supports various modes from manual operation to advanced autonomous protocol operation. Internal FIFOs ensure a smooth data flow between the radio front end and the system’s MCU. Enhanced Shock-Burst(TM) reduces system cost by handling all the high speed link layer operations.
  The radio front end uses GFSK modulation. It has user configurable parameters like frequency channel,output power and air data rate. nRF24L01+ supports an air data rate of 250 kbps, 1 Mbps and 2Mbps. The high air data rate combined with two power saving modes make the nRF24L01+ very suitable for ultra low power designs.
  nRF24L01+ is drop-in compatible with nRF24L01 and on-air compatible with nRF2401A, nRF2402,nRF24E1 and nRF24E2. Intermodulation and wideband blocking values in nRF24L01+ are much improved in comparison to the nRF24L01 and the addition of internal filtering to nRF24L01+ has improved the margins for meeting RF regulatory standards.
  Internal voltage regulators ensure a high Power Supply Rejection Ratio (PSRR) and a wide power supply range.
2、Features:
? Worldwide 2.4GHz ISM band operation
? 126 RF channels
? Common RX and TX interface
? GFSK modulation
? 250kbps, 1 and 2Mbps air data rate
? 1MHz non-overlapping channel spacing at 1Mbps
? 2MHz non-overlapping channel spacing at 2Mbps
o Transmitter
? Programmable output power: 0, -6, -12 or -18dBm
? 11.3mA at 0dBm output power
o Receiver
? Fast AGC for improved dynamic range
? Integrated channel filters
? 13.5mA at 2Mbps
? -82dBm sensitivity at 2Mbps
? -85dBm sensitivity at 1Mbps
? -94dBm sensitivity at 250kbps
o RF Synthesizer
? Fully integrated synthesizer
? No external loop filer, VCO varactor diode or resonator
? Accepts low cost ±60ppm 16MHz crystal
o Enhanced ShockBurst(TM)
? 1 to 32 bytes dynamic payload length
? Automatic packet handling
? Auto packet transaction handling
? 6 data pipe MultiCeiver(TM) for 1:6 star networks
o Power Management
? Integrated voltage regulator
? 1.9 to 3.6V supply range
? Idle modes with fast start-up times for advanced power management
? 26μA Standby-I mode, 900nA power down mode
? Max 1.5ms start-up from power down mode
? Max 130us start-up from standby-I mode
o Host Interface
? 4-pin hardware SPI
? Max 10Mbps
? 3 separate 32 bytes TX and RX FIFOs
? 5V tolerant inputs
o Compact 20-pin 4x4mm QFN package
3、Operational Modes:
  You can configure the nRF24L01+ in power down, standby, RX or TX mode. This section describes these modes in detail.
Power Down Mode
  In power down mode nRF24L01+ is disabled using minimal current consumption. All register values available are maintained and the SPI is kept active, enabling change of configuration and the uploading/downloading of data registers. Power down mode is entered by setting the PWR_UP bit in the CONFIG register low.
Standby-I mode
  By setting the PWR_UP bit in the CONFIG register to 1, the device enters standby-I mode. Standby-I mode is used to minimize average current consumption while maintaining short start up times. In this mode only part of the crystal oscillator is active. Change to active modes only happens if CE is set high and when CE is set low, the nRF24L01 returns to standby-I mode from both the TX and RX modes.
Standby-II mode
  In standby-II mode extra clock buffers are active and more current is used compared to standby-I mode. nRF24L01+ enters standby-II mode if CE is held high on a PTX device with an empty TX FIFO. If a new packet is uploaded to the TX FIFO, the PLL immediately starts and the packet is transmitted after the normal PLL settling delay (130μs).Register values are maintained and the SPI can be activated during both standby modes.
RX mode(important one !!!)
  The RX mode is an active mode where the nRF24L01+ radio is used as a receiver. To enter this mode, the nRF24L01+ must have the PWR_UP bit, PRIM_RX bit and the CE pin set high.
  In RX mode the receiver demodulates the signals from the RF channel, constantly presenting the demodulated data to the baseband protocol engine. The baseband protocol engine constantly searches for a valid packet. If a valid packet is found (by a matching address and a valid CRC) the payload of the packet is presented in a vacant slot in the RX FIFOs. If the RX FIFOs are full, the received packet is discarded.
  The nRF24L01+ remains in RX mode until the MCU configures it to standby-I mode or power down mode. However, if the automatic protocol features (Enhanced ShockBurst(TM)) in the baseband protocol engine are enabled, the nRF24L01+ can enter other modes in order to execute the protocol.
  In RX mode a Received Power Detector (RPD) signal is available. The RPD is a signal that is set high when a RF signal higher than -64 dBm is detected inside the receiving frequency channel. The internal RPD signal is filtered before presented to the RPD register. The RF signal must be present for at least 40μs before the RPD is set high.
TX mode (also the important mode!!!)
  The TX mode is an active mode for transmitting packets. To enter this mode, the nRF24L01+ must have the PWR_UP bit set high, PRIM_RX bit set low, a payload in the TX FIFO and a high pulse on the CE for more than 10μs.
  The nRF24L01+ stays in TX mode until it finishes transmitting a packet. If CE = 0, nRF24L01+ returns to standby-I mode. If CE = 1, the status of the TX FIFO determines the next action. If the TX FIFO is not empty the nRF24L01+ remains in TX mode and transmits the next packet. If the TX FIFO is empty the nRF24L01+ goes into standby-II mode. The nRF24L01+ transmitter PLL operates in open loop when in TX mode. It is important never to keep the nRF24L01+ in TX mode for more than 4ms at a time. If the Enhanced ShockBurst(TM) features are enabled, nRF24L01+ is never in TX mode longer than 4ms.
The following table describes how to configure the operational modes
4、Air data rate:
  The air data rate is the modulated signaling rate the nRF24L01+ uses when transmitting and receiving data. It can be 250kbps, 1Mbps or 2Mbps. Using lower air data rate gives better receiver sensitivity than higher air data rate. But, high air data rate gives lower average current consumption and reduced probability of on-air collisions.(high rate low right data transmission)
  The air data rate is set by the RF_DR bit in the RF_SETUP register. A transmitter and a receiver must be programmed with the same air data rate to communicate with each other.
  nRF24L01+ is fully compatible with nRF24L01. For compatibility with nRF2401A, nRF2402, nRF24E1, and nRF24E2 the air data rate must be set to 250kbps or 1Mbps.
5、RF channel frequency:
  The RF channel frequency determines the center of the channel used by the nRF24L01+. The channel occupies a bandwidth of less than 1MHz at 250kbps and 1Mbps and a bandwidth of less than 2MHz at 2Mbps. nRF24L01+ can operate on frequencies from 2.400GHz to 2.525GHz. The programming resolution of the RF channel frequency setting is 1MHz.
  At 2Mbps the channel occupies a bandwidth wider than the resolution of the RF channel frequency setting. To ensure non-overlapping channels in 2Mbps mode, the channel spacing must be 2MHz or more. At 1Mbps and 250kbps the channel bandwidth is the same or lower than the resolution of the RF frequency.
  The RF channel frequency is set by the RF_CH register according to the following formula:
F0= 2400 + RF_CH [MHz]
  You must program a transmitter and a receiver with the same RF channel frequency to communicate with each other.
6、数据包处理方式:
nRF24L01 有如下几种数据包处理方式
? ShockBurstTM 与nRF2401 nRF24E1 nRF2402 nRF24E2 数据传输率为1Mbps 时相同
? 增强型ShockBurstTM 模式
7、ShockBurstTM 模式:
  ShockBurst 模式下,nRF24L01可以与成本较低的低速MCU相连,高速信号处理是由芯片内部的射频协议处理的,nRF24L01提供SPI 接口数据率取决于单片机本身接口速度。ShockBurst 模式通过允许与单片机低速通信而无线部分高速通信,减小了通信的平均消耗电流。
  在ShockBurstTM 接收模式下当接收到有效的地址和数据时,IRQ通知MCU,随后MCU可将接收到的数据从RX FIFO 寄存器中读出。
  在ShockBurstTM 发送模式下,nRF24L01自动生成前导码及CRC。数据发送完毕后IRQ通知MCU,减少了MCU的查询时间,也就意味着减少了MCU 的工作量同时减少了软件的开发时间。nRF24L01 内部有三个不同的RX FIFO 寄存器,6 个通道共享此寄存器和三个不同的TX FIFO 寄存器。在掉电模式下、待机模式下和数据传输的过程中MCU 可以随时访问FIFO 寄存器,这就允许SPI接口可以以低速进行数据传送并且可以应用于MCU 硬件上没有SPI 接口的情况下。
8、增强型的ShockBurstTM 模式:
  增强型 ShockBurstTM 模式可以使得双向链接协议执行起来更为容易、有效。典型的双向链接为发送方要求终端设备在接收到数据后有应答信号,以便于发送方检测有无数据丢失,一旦数据丢失则通过重
新发送功能将丢失的数据恢复。增强型的ShockBurstTM 模式可以同时控制应答及重发功能而无需增加MCU工作量。
9、MultiCeiver(TM):
  MultiCeiver(TM) is a feature used in RX mode that contains a set of six parallel data pipes with unique addresses. A data pipe is a logical channel in the physical RF channel. Each data pipe has its own physical address (data pipe address) decoding in the nRF24L01+.
  nRF24L01+ configured as PRX (primary receiver) can receive data addressed to six different data pipes in one frequency channel as shown in Figure up. Each data pipe has its own unique address and can be configured for individual behavior.
  Up to six nRF24L01+s configured as PTX can communicate with one nRF24L01+ configured as a PRX. All data pipe addresses are searched for simultaneously(同时地). Only one data pipe can receive a packet at a time. All data pipes can perform Enhanced ShockBurst(TM) functionality.
  The following settings are common to all data pipes:
o CRC enabled/disabled (CRC always enabled when Enhanced ShockBurst(TM) is enabled)o CRC encoding schemeo RX address widtho Frequency channelo Air data rateo LNA gain
  注:The data pipes are enabled with the bits in the EN_RXADDR register. By default only data pipe 0 and 1 are enabled. Each data pipe address is configured in the RX_ADDR_PX registers.
   注: Always ensure that none of the data pipes have the same address.
  数据通道0是唯一的一个可以配置为40 位自身地址的数据通道1~5数据通道都为8位自身地址和32位公用地址。The LSByte must be unique for all six pipes. Flowing figure is an example of how data pipes 0-5 are addressed.
  nRF24L01在确认收到数据后记录地址并以此地址为目标地址发送应答信号。在发送端数据通道0被用做接收应答信号,因此,数据通道0的接收地址要与发送端地址相等,以确保接收到正确的应答信号。
  nRF24L01配置为增强型的ShockBurstTM发送模式下时,只要MCU有数据要发送nRF24L01就会启动ShockBurstTM模式来发送数据。在发送完数据后,nRF24L01转到接收模式并等待终端的应答信号。如果没有收到应答信号,nRF24L01将重发相同的数据包,直到收到应答信号或重发次数超过SETUP_RETR_ARC寄存器中设置的值为止(如果重发次数超过了设定值则产生MAX_RT中断)。只要收到确认信号,nRF24L01 就认为最后一包数据已经发送成功(接收方已经收到数据),把TX FIFO中的数据清除掉并产生TX_DS(中断IRQ引脚置高)。
START PROGRAMMING
  上面看了那么多文字,想来头疼,遂!
最终效果视频
三个51单片机开发板每个都接一个无线2.4G模块
上位机通过串口向任何一个模块发送指令"1",该模块会向其他模块发送该信息
其他模块收到该信息则单片机控制一个灯闪烁表示收到数据
三个模块配置为发送地址和接收地址全部一样,所以可以互相通信
1、工程概览
为了方便,这里的delay文件是借用前几次的(不要看)
2.4G模块封装全在nRF24L01.C和.H文件中(重点)
test.C文件中主要是main函数,实现通信逻辑(了解)
2、封装讲解
  在.H中前面主要是对nRF24L01通信引脚(6个的宏定义-便于移植到其他平台),每个封装类似,如下:
1 #define nRF24L01_CE_PIN
nRF24L01_CE
2 #define nRF24L01_CE_PIN_SET
nRF24L01_CE=1
3 #define nRF24L01_CE_PIN_CLEAR
nRF24L01_CE=0
4 //#define nRF24L01_CE_PIN_IN
5 //#define nRF24L01_CE_PIN_OUT
6 #define nRF24L01_CE_PIN_WRITE
nRF24L01_CE
7 #define nRF24L01_CE_PIN_READ
nRF24L01_CE
  因为这几个引脚没有既是输出又要做输入的引脚,所以注释掉了第4、5两行,但是对于CC2541这样的单片机,虽然省了引脚属性切换,但是还是要在初始化的地方进行属性设置的!由于51的引脚操作简单,所以set、clear、read、write都比较简单。
  接着是nRF24L01的一些寄存器指令和寄存器地址,这里只贴部分:  
1 //NRF24L01寄存器指令
2 #define READ_REG
// 读寄存器指令
3 #define WRITE_REG
// 写寄存器指令
4 #define RD_RX_PLOAD
// 读取接收数据指令
5 #define WR_TX_PLOAD
// 写待发数据指令
6 #define FLUSH_TX
// 冲洗发送 FIFO指令
7 #define FLUSH_RX
// 冲洗接收 FIFO指令
8 #define REUSE_TX_PL
// 定义重复装载数据指令
9 #define NOP
10 //SPI(nRF24L01)寄存器地址
11 #define CONFIG
// 配置收发状态,CRC校验模式以及收发状态响应方式
12 #define EN_AA
// 自动应答功能设置
13 #define EN_RXADDR
// 可用信道设置
14 #define SETUP_AW
// 收发地址宽度设置
15 #define SETUP_RETR
// 自动重发功能设置
  最后是.C内封装的函数,上面几个是基本通信函数(其中第一个是最基本的通信函数,负责传送8bit数据)。下面几个就是nRF24L01的功能函数,分别负责初始化、检测是否正常、设置为接收模式、设置为发送模式、接收数据和发送数据。一会在main函数中你会看到一些关于它们的基本组合用法。
1 t_uc nRF24L01_SPI_SendByte(t_uc dat);//传送一字节的超底层的通信函数
2 t_uc nRF24L01_SPI_ReadReg(t_uc reg);//NRF24L01的SPI时序,读取指定寄存器的内容
3 t_uc nRF24L01_SPI_WriteReg(t_uc reg, t_uc value);//NRF24L01的SPI时序,写入指定寄存器的内容
4 t_uc nRF24L01_SPI_ReadBuf(t_uc reg, t_uc *pBuf, t_uc Len);
5 t_uc nRF24L01_SPI_WriteBuf(t_uc reg, t_uc *pBuf, t_uc Len);
8 void nRF24L01_Init(void);
9 t_uc nRF24L01_Check(void);
10 void nRF24L01_Set_RX_Mode(void);//数据接收模式
11 void nRF24L01_Set_TX_Mode(void);//数据发送模式
12 t_uc nRF24L01_RxPacket(unsigned char *rx_buf);//数据读取后放入rx_buf接收缓冲区中
13 void nRF24L01_TxPacket(unsigned char *tx_buf);//发送tx_buf中数据
3、主函数描述
  主函数便是调用封装的几个函数实现简单的无线通信功能。虽然main函数代码看起来烂了点,但是我发现自己修改一下反而不利于理解,索性就拿这个原汁原味的厂家给的demo中的main函数介绍了:
1 void main()
//初始灯6熄灭
uart_flag = 0;
//串口标志初始为0
nRF24L01_Init();
//初始化24L01
UART_Init();
//初始化串口
while(nRF24L01_Check())
//检查不到24l01则报警
delay_ms(200);
delay_ms(200);
nRF24L01_Set_RX_Mode();
//接收模式
while(!nRF24L01_RxPacket(Rx_Buf))
//等待接收数据,返回1则接收到数据,在等待接收数据期间,可以随时变成发送模式
if(uart_flag == 1)
//当串口接受标志为1表示有数据过来
//关串口中断
nRF24L01_Set_TX_Mode();
//发送模式
Tx_Buf1[0] = a - '0';
//将串口数据给发送缓冲区
nRF24L01_TxPacket(Tx_Buf1);
//发送命令数据24L01
UART_Send_Byte('O');
//向串口发送已经传送
UART_Send_Byte('K');
UART_Send_Byte(':');
UART_Send_Byte(a);
UART_Send_Byte('\n');
delay_ms(300);
delay_ms(300);
//发送后LED1闪一下
//允许串口中断
uart_flag = 0;
//中断标志位置0
//退出最近的循环,从而变回接收模式,这句关键
if(Rx_Buf[0] == 1)
//若接收到对应的数据则实现对应功能
Rx_Buf[0] = 0;
//清空数据
delay_ms(300);
delay_ms(300);
//接收到数据 后闪烁
  至此,算是马马虎虎封装了一传感器、一个显示器、一个通信模块。是不是我们可以着手做一个组合型的更有意思的东西了?还太早!因为我们无论是串口还是2.4还是蓝牙,都仅仅实现通信,并没有采取必要措施保证通信的可靠与稳定,所以接下来一段时间我们将会在底层通信物理层上继续封装高层稳定的通信协议~敬请期待!
希望这些资料对大家有帮助
大家顺手点个赞支持一下(⊙o⊙)哦
大晚上的,不容易丫!
@beautifulzzzz
持续更新中~
本文转自beautifulzzzz博客园博客,原文链接:http://www.cnblogs.com/zjutlitao/p/4855120.html,如需转载请自行联系原作者
用云栖社区APP,舒服~
【云栖快讯】青年们,一起向代码致敬,来寻找第83行吧,云栖社区邀请大神彭蕾、多隆、毕玄、福贝、点评Review你的代码,参与互动者将选取50位精彩回复赠送“向代码致敬”定制T恤1件,最终成为“多隆奖”的小伙伴还将获得由阿里巴巴提供的“多隆奖”荣誉证书和奖杯。&&
是一款提供了现场可编程门阵列(FPGA)的计算实例,基于阿里云弹性计算框架,用户可以几分钟内...
阿里云专门为物联网领域的开发人员推出的,其目的是帮助开发者搭建安全性能强大的数据通道,方便终...
高速通道(ExpressConnect)是一款便捷高效的网络服务,用于在云上的不同网络环境间...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效...

我要回帖

更多关于 无线测温 的文章

 

随机推荐