电子发烧友网 > 控制/MCU > 正文

单片机无线传输系统的设计及nRF905无线收发模块的实用

2018年11月06日 16:00 次阅读

1 引 言

随着计算机、通信和无线技术的逐步融合,在传统的有线通信的基础上,无线通信技术应运而生,他具有快捷、方便、可移动和安全等优势,所以广泛应用到遥控玩具、汽车电子、环境监测和电气自动化等。

在一些特殊应用场合中,单片机与上位机之间通信不再采用有线的数据传输,例如采用有线的串、并行总线、I2CCAN总线等,而是需要无线数据传输,本文介绍了基于nRF905无线收发模块的实用单片机无线传输系统的设计。

2 无线收发模块nRF905

nRF905是挪威Nordic VLSI公司推出的单片射频收发器,工作电压为1.9~3.6 V,32引脚QFN封装(5×5 mm),工作于433/868/915 MHz三个ISM(工业、科学和医学)频道,频道之间的转换时间小于650μs。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器,ShockBurstTM工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。此外,其功耗非常低,以-10 dBm的输出功率发射时电流只有11 mA,工作于接收模式时的电流为12.5 mA,内建空闲模式与关机模式,易于实现节能。nRF905适用于无线数据通信、无线报警及安全系统、无线*、无线监测、家庭自动化和玩具等诸多领域。

3 芯片结构及工作模式

nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器、功率放大器等模块,曼彻斯特编码/解码由片内硬件完成,无需用户对数据进行曼彻斯特编码,因此使用非常方便。

nRF905有两种工作模式和两种节能模式。两种工作模式分别是ShockBurstTM接收模式和ShockBurstTM发送模式,两种节能模式分别是关机模式和空闲模式。nRF905的工作模式由TRX_CE,TX_EN和PWR_UP三个引脚决定,详见表1。

单片机无线传输系统的设计及nRF905无线收发模块的实用

: 与射频数据包有关的高速信号处理都在nRF905片内进行,数据速率由微控制器配置的SPI接口决定,数据在微控制器中低速处理,但在nRF905中高速发送,因此中间有很长时间的空闲,有利于节能。由于nRF905工作于ShockBurstTM模式,因此使用低速的微控制器也能得到很高的射频数据发射速率。在ShockBurstTM接收模式下,当一个包含正确地址和数据的数据包被接收到后,地址匹配(AM)和数据准备好(DR)两引脚通知微控制器。在ShockBurstTM发送模式,nRF905自动产生字头和CRC校验码,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。由以上分析可知,nRF905的ShockBurstTM收发模式有利于节约存储器和微控制器资源,同时也减小了编写程序的时间。

4 器件配置

所有配置字都是通过SPI接口送给nRF905,SIP接口的工作方式可通过SPI指令进行设置,当nRF905处于空闲模式或关机模式时,SPI接口可以保持在工作状态。

(1)SPI接口配置

SPI接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器5个寄存器组成。

(2)射频配置

设CH_NO中的值为a,HFREQ_PLL中的值为b,则nRF905的工作频率由公式:

所决定。若nRF905的工作频率取433.20 MHz,则口a=108,b=0。

射频寄存器的各位的长度是固定的。然而,在Shock-BurstTM收发过程中,TX_PAYLOAD,RX_PAYLOAD,TX_ADDRESS和RX_ADDRESS 4个寄存器使用字节数由配置字决定。nRF905进入关机模式或空闲模式时,寄存器中的内容保持不变。

5 电路设计

nRF905在使用中,根据不同需要,其电路图不尽相同,图1所示为其应用原理图,该电路天线部分使用的是50 Ω单端天线。在nRF905的电路板设计中,也可以使用环形天线,把天线布在PCB板上,这可减小系统的体积。更详细的设计可参考nRF905的芯片手册。

单片机无线传输系统的设计及nRF905无线收发模块的实用

nRF905通过SPI接口和微控制器进行数据传送,通过ShockBurstTM收发模式进行无线数据发送,收发可靠,使用方便,在工业控制、消费电子等各个领域都具有广阔的应用前景。

6 程序流程

系统采用了一种应用最广泛的单片机AT89S52为数据处理部分。具体的读、发程序流程如图2,图3所示。

单片机无线传输系统的设计及nRF905无线收发模块的实用

7 配置程序

对于射频芯片nRF905的寄存器操作是个很关键的问题。由于采用了SPI协议,在配置寄存器过程应用指令及Pl中模拟时钟上升沿时,很容易出现移错位及时钟上升沿无效的情况。SPI接口有4个信号线:MOSI,MISO,SCK,CSN,分别为输入线、输出线、时钟线、配置使能线。SPI的通信时序如图4所示。

单片机无线传输系统的设计及nRF905无线收发模块的实用

8 系统的参数测量

无线通信在自由空间中传播距离的计算方法:所谓自由空间传播系指天线周围为无限大真空时的电波传播,他是理想传播条件。电波在自由空间传播时,其能量既不会被障碍物所吸收,也不会产生反射或散射。

通信距离与发射功率、接收灵敏度和工作频率有关:

式中Lfs(单位:dB)为传输损耗,d(单位:km)为传输距离,频率f的单位以MHz计算。由上式可见,自由空间中电波传播损耗(亦称衰减)只与工作频率f和传播距离d有关,当f或d增大一倍时,[Lfs]将分别增加6 dB。

下面的公式说明在自由空间下电波传播的损耗:

Los是传播损耗,单位为dB;d是距离,单位是km;f是工作频率,单位是MHz。

本系统的无线收发模块nRF905选择工作在第一频道为433.2 MHz,发射功率为+10 dBm(10 mW),接收灵敏度为-105 dBm的系统在自由空间的传播距离:

(1)由发射功率+10 dBm,接收灵敏度为-105 dBm:

Los=115 dB

(2)由Los,f计算得出:

d=31 km

这是理想状况下的传输距离,实际的应用中会低于该值,这是因为无线通信要受到各种外界因素的影响,如大气、阻挡物、多径等造成的损耗,将上述损耗的参考值计入上式中,即可计算出近似通信距离。

假定大气、遮挡等造成的损耗为25 dB,可以计算得出通信距离为:

d=1.7 km=1 700 m

9 影响无线通信距离的主要因素

图5是一个无线通信系统的信道模型,在工作频率固定的前提下,影响工作距离的主要因素包括发射功率、发射天线增益、传播损耗、接收天线增益、接收机灵敏度等,通过加大发射功率,提高天线增益,提高接收机灵敏度均起到提高通信距离的作用,在影响无线通信距离的以上几个因素中,作为设计者可以控制的因素有:接收灵敏度、RX一天线增益、发射输出功率。不能控制的因素是由无线电波的特点所决定的,主要有:传输损耗、路径损耗、多径损耗、周围环境的吸收。

单片机无线传输系统的设计及nRF905无线收发模块的实用

在设计者可以控制的因素中,接收灵敏度、天线增益、发射功率都是可以作为提高通信距离的手段。

无线传输系统具有体积小、抗干扰能力强、数据安全可靠、无需布线、维护方便等优点,将会在各领域中带来广泛的市场。本系统结构简单,但这并没有影响系统的性能和用途。他可应用到遥控、遥测、汽车电子、安全防火、生物信号采集、环境监测和电气自动化等领域。

技术专区

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

浅析单片机、ARM、FPGA 、嵌入式的特点

自带廉价的程序存储器(FLASH)和非易失的数据存储器(EEPROM)。这些存储器可多次电擦写,使程...

发表于 2018-11-07 09:54 83次阅读
浅析单片机、ARM、FPGA 、嵌入式的特点

求一个基于单片机的数字电压表设计的电路原理图

发表于 2018-11-06 17:27 84次阅读
求一个基于单片机的数字电压表设计的电路原理图

如何系统地入门学习stm32?老司机筒子们有自己...

arm 官方也开始推这种通用库了。而此时st发现一剑走天涯的方法的确有很多弊端,开始了stmcube...

发表于 2018-11-06 17:07 177次阅读
如何系统地入门学习stm32?老司机筒子们有自己...

C语言指针的高级用法

发表于 2018-11-06 16:50 80次阅读
C语言指针的高级用法

五花八门的关于单片机的开发经验

AT89C51我认为是一个非常标准的51单片机了,4个P口,1个串口,RAM只有标准的128Byte...

发表于 2018-11-06 15:58 145次阅读
五花八门的关于单片机的开发经验

基于传感器设计室内照明设备的自动控制系统

发表于 2018-11-06 15:32 45次阅读
基于传感器设计室内照明设备的自动控制系统

基于单总线数字温度传感器DS18B20的测温系统方案

发表于 2018-11-06 15:18 20次阅读
基于单总线数字温度传感器DS18B20的测温系统方案

卷发棒单片机芯片方案—专注电子产品方案开发

发表于 2018-11-06 14:34 14次阅读
卷发棒单片机芯片方案—专注电子产品方案开发

浅析单片机中断处理过程

中断处理过程可分为中断响应、中断处理和中断返回三个阶段。

发表于 2018-11-06 14:31 60次阅读
浅析单片机中断处理过程

新手求助,通过SPI发送一个数据,片选信号应该怎么设置?

发表于 2018-11-06 10:21 32次阅读
新手求助,通过SPI发送一个数据,片选信号应该怎么设置?

DAC芯片AD5760调试示波器测试没有回来的数据

发表于 2018-11-06 09:29 37次阅读
DAC芯片AD5760调试示波器测试没有回来的数据

如何使用可编程斜坡发生器外设创建参考信号和时序源

可编程斜坡发生器(PRG)(在Microchip最近推出的几款8位PIC 单片机上提供)是一种高度灵...

发表于 2018-11-06 09:15 80次阅读
如何使用可编程斜坡发生器外设创建参考信号和时序源

请问下用NPN能不能控制共阴级数码管?电路如图

发表于 2018-11-05 19:20 12次阅读
请问下用NPN能不能控制共阴级数码管?电路如图

MT2502技术资料下载 MT2502规格说明分析

发表于 2018-11-05 18:41 42次阅读
MT2502技术资料下载 MT2502规格说明分析

单片机中的定时计数器的四种工作方式解析

在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。,TMOD和TCON是名称...

发表于 2018-11-05 16:11 66次阅读
单片机中的定时计数器的四种工作方式解析

借助Vivado来学习FPGA的各种配置模式

单片机是基于FLASH结构的,所以单片机上电直接从本地FLASH中运行。但SRAM 架构的FPGA是...

发表于 2018-11-05 15:12 171次阅读
借助Vivado来学习FPGA的各种配置模式

精选单片机面试题

发表于 2018-11-05 15:04 98次阅读
精选单片机面试题

单片机IO口另外三种状态

标准 51 单片机的P0 口默认就是开漏输出,如果要用的时候外部需要加上拉电阻。而强推挽输出就是有比...

发表于 2018-11-05 11:40 240次阅读
单片机IO口另外三种状态

上拉电阻应用很多,都可以起到什么作用呢?

加大普通 IO 口的驱动能力。标准 51 单片机的内部 IO 口的上拉电阻,一般都是在几十 K 欧,...

发表于 2018-11-05 11:35 257次阅读
上拉电阻应用很多,都可以起到什么作用呢?

为何不在单片机上实现PLC的逻辑呢?

内存规划,包括堆栈区的设置,定时器,计数器的累加值和预设值地址等等,目前初步定义8个计数器的当前计数...

发表于 2018-11-05 11:31 300次阅读
为何不在单片机上实现PLC的逻辑呢?

开发单片机时需掌握的四个基本技巧

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着。现归纳出单片机开发中应...

发表于 2018-11-05 11:21 232次阅读
开发单片机时需掌握的四个基本技巧

准备学习单片机,该做哪些准备呢?

这估计是争论最大的一个问题了,有些人坚持学单片机软件一定要用汇编,也有人坚持选择高级语言。C51刚推...

发表于 2018-11-05 11:00 232次阅读
准备学习单片机,该做哪些准备呢?

单片机为什么需要晶振?外接晶体的值可以随意选择呢...

获取稳定的脉冲!那只要有合适的方法生成稳定的脉冲,那就可以去掉外接的晶体。举例,AVR单片机,它在单...

发表于 2018-11-05 10:40 162次阅读
单片机为什么需要晶振?外接晶体的值可以随意选择呢...

MCU的内存分配详解

其中code和RO-data存储在flash中,所以两者之和为单片机中flash需要分配给它们的空间...

发表于 2018-11-04 11:24 74次阅读
MCU的内存分配详解

单片机、ARM、DSP与CPU之间的关系大揭秘

你知道单片机、ARM、DSP都是CPU吗,它们之间又有什么不同,小编进行了整理和编辑。

发表于 2018-11-02 17:38 316次阅读
单片机、ARM、DSP与CPU之间的关系大揭秘

单片机中的上下拉电阻有什么作用

上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻也起到一个限流作用,下拉就是下拉到低电平...

发表于 2018-11-02 16:22 105次阅读
单片机中的上下拉电阻有什么作用

单片机中的CY与OV详细解析

CY(Carry): 用于表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位...

发表于 2018-11-02 16:15 84次阅读
单片机中的CY与OV详细解析

基于STM32单片机的64Mbit单对单通信

简单的一种应用,ARM芯片作为master,flash为slaver,实现单对单通信。

发表于 2018-11-02 14:19 156次阅读
基于STM32单片机的64Mbit单对单通信

AVR系列单片机的主要特性及选型

AVR单片机是1997年由ATMEL公司研发 出的增强型内置Flash的RISC(Reduced I...

发表于 2018-11-02 09:20 226次阅读
AVR系列单片机的主要特性及选型

单片机中的冷复位和热复位是什么意思

冷复位用英文来表示是Restart,热复位用英文来表示是Reset。

发表于 2018-11-01 16:25 120次阅读
单片机中的冷复位和热复位是什么意思

单片机存储器的工作原理及选片与总线的概念解析

存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低...

发表于 2018-11-01 16:15 76次阅读
单片机存储器的工作原理及选片与总线的概念解析

基于单片机的I2C和EEPROM连接

在实际的应用中,保存在单片机RAM中的数据,掉电后就丢失了,保存在单片机的FLASH 中的数据,又不...

发表于 2018-11-01 10:38 189次阅读
基于单片机的I2C和EEPROM连接

面对芯片及其相关的软件开发技术的快速发展变化如何...

单片机不是裸奔就是RTOS,其实玩过RTOS和linux的同学都知道,RTOS虽然也叫操作系统,但是...

发表于 2018-10-31 17:05 287次阅读
面对芯片及其相关的软件开发技术的快速发展变化如何...

单片机通用寄存器的分类及应用

通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。除此之外,它们还各自具有一些特...

发表于 2018-10-31 16:50 89次阅读
单片机通用寄存器的分类及应用

单片机为何不能直接驱动继电器

虽然这个问题对于电子老白来说不值一提,不过对于初学单片机的朋友,问这个问题的人实在是太多了,以前总是...

发表于 2018-10-31 16:23 324次阅读
单片机为何不能直接驱动继电器

如何实现单片机UART串行数据与CAN数据之间相...

GCAN-601模块是嵌入式单片机UART串口转CAN模块,可实现将UART串行数据与CAN数据之间...

发表于 2018-10-31 16:00 220次阅读
如何实现单片机UART串行数据与CAN数据之间相...

单片机硬件电路设计的七个原则分享

一个单片机硬件系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RA...

发表于 2018-10-30 16:22 141次阅读
单片机硬件电路设计的七个原则分享

单片机实现利用中断复位的两种方式

如果想要实现利用中断复位,我所知道的有两种方式:看门狗中断和无中断服务程序的中断。

发表于 2018-10-30 15:55 201次阅读
单片机实现利用中断复位的两种方式

简单分析树莓派的优点与缺点

关于树莓派,想必从事嵌入式开发的开发者都有听过,树莓派原名为Raspberry Pi,也就是它的英文...

发表于 2018-10-30 15:08 150次阅读
简单分析树莓派的优点与缺点

Arduino/树莓派/单片机/arm区别分析

Arduino是一款由开源软件环境提供支撑的开源硬件原型平台。最早是意大利的一个团队的一个开源项目,...

发表于 2018-10-30 11:06 241次阅读
Arduino/树莓派/单片机/arm区别分析

浅谈树莓派与单片机的区别

树莓派指的是一款硬件开源的,树莓派是一个成品开发板,上面也有CPU、内存,但是它们都是以分立的芯片的...

发表于 2018-10-30 09:42 170次阅读
浅谈树莓派与单片机的区别

如何使用单片机中printf

1. 如c语言同:printf(“”);在控制台就会输出“”中的内容; 2. 通过串口输出:只...

发表于 2018-10-29 15:48 106次阅读
如何使用单片机中printf

远程代码执行漏洞现身运行内嵌式系统的流行操作系统

在主要用于智能家居及关键基础设施系统中的大部分微处理器与单片机的开源操作系统FreeRTOS中,已发...

发表于 2018-10-28 09:30 380次阅读
远程代码执行漏洞现身运行内嵌式系统的流行操作系统

STM32单片机如何超频工作超大约多少还能正常工...

根据微软学术的定义,所谓超频(OVERCLOCKING)就是强制将计算机或硬件运行于厂商指定的时钟频...

发表于 2018-10-28 09:26 410次阅读
STM32单片机如何超频工作超大约多少还能正常工...

基于单片机D/A输出程序编写分享

D/A 是和 A/D 刚好反方向的,一个 8 位的 D/A,从 0~255,代表了 0~2.55V ...

发表于 2018-10-26 16:03 104次阅读
基于单片机D/A输出程序编写分享

基于stm8s103k3单片机串口UART的正确...

我使用的是stm8s103k3,32脚单片机,这个使用手册上说了UART1,UART2,UART3。...

发表于 2018-10-26 15:43 70次阅读
基于stm8s103k3单片机串口UART的正确...

基于单片机在异形曲面在线检测系统中的应用设计

随着三维设计软件常利用对系统模拟优化分析、路况的反馈和理论的计算,能够设计出高水平曲面异形线和截面,...

发表于 2018-10-26 15:19 54次阅读
基于单片机在异形曲面在线检测系统中的应用设计

单片机中的定时器与计数器有何不同,二者的区别是什...

定时器实际上也是工作在计数方式下,只是计数的是固定周期的脉冲,由于脉冲周期固定,由计数值可以计算时间...

发表于 2018-10-26 14:58 108次阅读
单片机中的定时器与计数器有何不同,二者的区别是什...

网上单片机制作“2.4G频率计”方案之我见

注:本文是作者以前发表在其个人博客,现在发布到聚丰开发专栏 在网上看到有朋友发布一个单片机制作2.4...

发表于 2018-10-25 17:01 339次阅读
网上单片机制作“2.4G频率计”方案之我见

转学STM32的入门总结和学习步骤

大家可能是从51单片机过来的,回想一下,我们之前学单片机时如何入门呢?实际上都是先看书(理论),再玩...

发表于 2018-10-25 16:19 395次阅读
转学STM32的入门总结和学习步骤

基于单片机应用程序编写的七大步骤分享

接到一个单片机项目设计文件之后,并不是马上动手编写程序,而是仔细研究用户提出的技术要求或者技术说明,...

发表于 2018-10-25 15:37 108次阅读
基于单片机应用程序编写的七大步骤分享

基于单片机Stm32f103 DAC电流输出解决...

用的是64封装的芯, 此芯ADC的基准Vref+和电源是同一个端口,Vref-共用电源地。在电池输出...

发表于 2018-10-25 15:20 99次阅读
基于单片机Stm32f103 DAC电流输出解决...

基于单片机设计堆栈的基本概念解析

向上生长:向高地址方向生长,称为递增堆栈 向下生长:向低地址方向生长,称为递减堆栈

发表于 2018-10-25 15:16 46次阅读
基于单片机设计堆栈的基本概念解析

我被红外遥控闪了一下腰

发表于 2018-10-25 11:26 407次阅读
我被红外遥控闪了一下腰

基于KL16的指纹锁低功耗方案

ZLG基于数百厂家的需求共性,设计了基于NXP KL16的指纹锁方案,单触摸休眠状态下达到7.52u...

发表于 2018-10-25 10:26 410次阅读
基于KL16的指纹锁低功耗方案

学STM32对你来说有什么好处

STM32是32位的单片机却只要八位单片机的价格,速度也是八位的好几倍。

发表于 2018-10-25 09:06 1358次阅读
学STM32对你来说有什么好处

如何利用单片机来驱动继电器

注意:单片机的IO口驱动能力不够,加一片ULN2003来驱动继电器,一个ULN2003可以驱动7个继...

发表于 2018-10-24 16:02 186次阅读
如何利用单片机来驱动继电器

基于51单片机直流电机PWM调速程序

这是一款AT89C51单片机直流电机PWM调速程序,程序可以直接用于AT89C52、AT89S51、...

发表于 2018-10-24 15:56 371次阅读
基于51单片机直流电机PWM调速程序

打破思维定式——两种键盘扫描方法比较分析

发表于 2018-10-24 11:24 293次阅读
打破思维定式——两种键盘扫描方法比较分析

应广双核单片机应用提示

发表于 2018-10-24 11:24 230次阅读
应广双核单片机应用提示

用一条IO口实现两个按键功能

发表于 2018-10-24 11:24 260次阅读
用一条IO口实现两个按键功能

基于S3C6410裸机程序中可能用到的函数分享

*函数:voidSetEINT_TriggerMode(u8EINT0_N,u8Trigger) ...

发表于 2018-10-23 16:00 59次阅读
基于S3C6410裸机程序中可能用到的函数分享

基于LED图文显示屏控制系统的设计

LED显示屏系统组成 LED图文显示屏系统由软件控制系统、无线传输系统、设备主控制器、LED显示点阵...

发表于 2018-10-23 15:35 208次阅读
基于LED图文显示屏控制系统的设计

双核单片机之初体验--2

发表于 2018-10-23 10:08 262次阅读
双核单片机之初体验--2

双核单片机之初体验--1

注:本文是作者以前发表在其个人博客,现在 发布到 聚丰开发专栏 不 经意间,酷睿双核已经成为电脑CP...

发表于 2018-10-23 09:08 557次阅读
双核单片机之初体验--1

单片机的构成及功能特点解析

单片机是一种控制芯片,一个微型的计算机,而加上晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器)...

发表于 2018-10-22 15:23 117次阅读
单片机的构成及功能特点解析

51单片机4种简单的扩展方法

MCS—51系列单片机内部只有两个外部中断源输入端,当外部中断源多于两个时,就必须进行扩展。

发表于 2018-10-22 10:37 426次阅读
51单片机4种简单的扩展方法

单片机的发展有哪几个阶段

单片机(Microcontrollers)诞生于1971年,早期的SCM单片机都是8位或4位的。其中...

发表于 2018-10-21 10:15 402次阅读
单片机的发展有哪几个阶段

单片机控制继电器原理是怎样的?

单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大...

发表于 2018-10-20 11:43 708次阅读
单片机控制继电器原理是怎样的?

如何写出高效优美的单片机C语言代码

将比较慢的顺序查找法用较快的二分查找或乱序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排...

发表于 2018-10-19 15:55 472次阅读
如何写出高效优美的单片机C语言代码