基于MCU和nRF905的低功耗远距离无线传输系统

发布者:WanderlustGaze最新更新时间:2012-04-17 来源: 21ic 关键字:MCU  nRF905  无线传输系统 手机看文章 扫描二维码
随时随地手机看文章

目前,在遥控遥测、无线抄表、门禁系统、小区传呼、工业数据采集、无线遥控系统、无线鼠标键盘等许多应用领域,都采用无线方式进行远距离数据传输。本文介绍一种采用通用的低功耗单片机MSP430作为主控芯片、具有多信道的单片收发芯片nRF905作为无线收发模块、利用SPI口实现双向通讯的无线数据传输系统。系统集成了MSP430在低功耗应用方面的优势和nRF905无线特有的多频道支持及功耗低、易控制等优点,特别适合于低功耗、小数据量的无线数据传输系统。

1 系统的总体结构

系统总体框图如图1所示。主控MCU使用TI公司MSP430系列中的 F1491型,射频收发模块使用Nordic公司的nRF905实现无线数据收发。除MSP430和nRF905外,系统还提供RS-232接口,可以实现与PC机的通讯,RS-485接口满足一些通用仪器仪表的要求。根据不同的应用需求,可选择采用PCB天线或高增益的外置式天线以满足远距离的需求。

2 系统主要芯片介绍

MSP430是TI公司推出的16位系列单片机,在电池供电的低功耗应用中具有独特的优势。其工作电压在1.8~3.6V之间,正常工作时功耗可控制在 200μA左右,低功耗模式时可实现2μA甚至0.1μA的低功耗。本系统所采用的MSP4301491系列在单个芯片上集成8通道12位的A/D转换、 2个16位定时器、2个USART接口、16位看门狗、48个GPIO 端口及2 048KB RAM和60KB的flash,单片即可满足大多数应用需要。其高效率精简16 位指令结构可以确保任何任务的快速执行,大多数指令可以在一个时钟周期内完成;它还具有高级语言编程能力,使软件开发更为便利[1]。

射频部分使用Nordic公司的多通道单片收发芯片nRF905[2]。它采用GFSK 调制解调技术,工作电压为1.9~3.6V,工作于433/868/915MHz 3个ISM频道。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,具有低功耗的Shock Burst工作模式,可以自动完成前导码和CRC的工作,可由片内硬件自动完成曼彻斯特编码/解码,使用SPI接口与MCU通信,配置非常方便。作为射频发射芯片,其低功耗性能是极为突出。以-10dBm的输出功率发射时,电流只有11mA,在接收模式时电流为12.5mA。nRF905传输数据时为非实时方式,即发送端发出数据,接收端收到后先暂存于芯片存储器内,外部的MCU可以在需要时再到芯片中去取。nRF905一次发射最多可传输的数据量为 32B。天线接口设计为差分天线,便于使用低成本的PCB天线[3]。

3 点对点无线通信的实现

3.1 SPI接口

nRF905利用SPI口实现与MCU的双向通讯。nRF905的SPI总线包括4个引脚:CSN(SPI使能)、SCK(SPI时钟)、MISO (主入从出)和MOSI(主出从入)。其中CSN可以接到一个GPIO端口控制芯片工作,而其他三个脚则连接到主控MCU的SPI接口上。主控MCU可以使用GPIO端口控制nRF905的3根控制线,控制低功耗的PWR_UP、正常工作的TX_EN、选择发送还是接收方式的TRX_CE。nRF905有两种节能模式和两种工作模式,分别为掉电模式、待机模式、Shock Burst 接收模式和Shock Burst发送模式。这几种模式由主控MCU通过控制nRF905的3个引脚PWR_UP、TRX_CE和TX_ EN的高低电平来决定。nRF905有3个引脚用于状态输出,分别是:CD(载波检测)、AM(地址匹配)和DR(数据就绪),均为高电平有效。 nRF905在处于接收模式时,若检测到接收频率段的载波,就置CD为高。接着检测载波数据中的地址字节,若与本身已配置的接收地址相同,则置AM为高;若检测到接收数据中的CRC校验正确,则存储有效数据字节,置DR为高。

MCU通过SPI总线配置nRF905的内部寄存器和收发数据。这里nRF905为从机,其SPI的时钟范围很宽,可为1Hz~10MHz,因此 MCU在写控制程序时不必苛求时间的准确度。SPI总线的每次操作都必须在使能引脚CSN的下降沿开始,CSN 低电平有效,总线上的数据在时钟的上升沿有效。MCU对SPI总线进行读操作时,先把CSN置低,然后在MOSI 数据线上输出一个表示读命令的字节,与此同时,nRF905会在MISO数据线上输出一个字节表示状态信息的数据,随后输出一个地址字节,后面跟随有效数据。在进行写操作时比较简单,MCU先把CSN拉低,然后在MOSI线上输出写命令字节和数据字节即可。

3.2 数据收发过程

在nRF905正常工作前,必须由MCU根据需要写好配置寄存器。发送数据时,先通过MCU把nRF905置于待机模式(PWR_UP置为高、 TRX_CE置为低),然后通过SPI总线把发送地址和待发送的数据都写入相应的寄存器中,之后把nRF905置于发送模式(PWR_UP、TRX_CE 和TX_EN全部置高),配置成功后数据就会自动发送出去。若射频配置寄存器中的自动重发位(AUTO_RETRAN)设为有效,数据包就会被重复发出,直到MCU拉低TRX_CE退出发送模式为止。nRF905发送数据的流程图如图2所示。

[page]

接收数据时,MCU 先在nRF905的待机状态中写好射频配置寄存器中的接收地址,然后将nRF905置于接收模式(PWR_UP和TRX_CE置高、TX_EN置低),nRF905就会自动接收空中的载波。当收到有效数据(地址匹配且校验正确)时,DR引脚会自动置高,MCU 在检测到这个信号后,可以将nRF905置为待机模式,然后通过SPI总线从接收数据寄存器中读出有效数据。nRF905接收数据的流程如图3所示。

3.3 点对点传输距离

传输距离主要由传播损耗、工作频率、外部损耗等因素决定。而传播损耗是非常复杂的问题,涉及电波传播机理、地形地物影响、载波工作频段和天线指向等很多因素。这里给出自由空间传播时的无线通信距离计算公式:

20lgd[km]=Los[dB]-32.44-20lgf[MHz]           (1)

式中Los为传播损耗,f为工作频率,d为通信距离[4]。nRF905的最大发射功率为10dBm,接收灵敏度为-100dBm,假定由大气、阻挡物、多径等造成的损耗为25dB,可以计算得出通信距离d=0.98km,这是理想状况下的计算。实测结果表明,在采用高增益天线时,基本可以达到800 米以上的传输距离;使用PCB天线时距离有所下降,但也可达到300米左右。

4 通信协议设计

4.1 MAC协议

本系统采用了一个简化的点对多点通讯协议,主要分为三层。第一层为物理层,由nRF905模块硬件实现;第二层为数据链路层,提供可靠的无线数据传输,每一个数据包都包括具体数据和一些必要的控制信息;第三层为应用层,调用数据链接层完成具体的应用逻辑,包括数据收集、数据查询等。

整个系统硬件可分为两部分,分别定义为基站模块和节点模块。节点模块应用层的功能是使数据与无线通讯相结合。对于不同的应用,可能有不同的数据采集方法。应用层接收数据链路层发来的命令,完成对数据的采集,并将数据打包发给数据链路层。基站模块的应用层负责与中心控制器的链接。将中心控制器发来的数据校验处理后转发给数据链路层,将数据链路层发来的数据打包处理后发给中心控制器。因为协议是分层的,相邻层之间的联系只是调用发送接收函数,因此实现了各层的独立,更换被采集的仪表或更换无线传输模块所做的改动都不会影响其他层,从而提高了系统的灵活性。

每个数据帧包括2B的帧头、1B的帧类型、6B的本地地址和目的地址、1B的帧长度、NB的数据、16位CRC校验和2B的帧尾。本系统针对较小数据量 的应用设计,每个数据包的有效数据长度N一般小于32B,每个节点每一次需要传送的数据都可以通过一个数据包发送完成。数据帧的类型包括采集命令、正确接 收确认、重发请求、异常信号等,用两个字节来标示以便接收方分类处理。在N个字节的数据之后是16位CRC校验。接收方同样计算CRC后与校验和比较,如 果CRC正确,则发送正确接收确认(ACK)。如果CRC不同,即为传输中出现错误,则给出出错反馈要求发送方重新发送数据。数据的通信流程基本可概述为 DATA+ACK形式,即发送完DATA 等待ACK,接收到DATA 则发送ACK确认。

[page]

由于射频芯片的高灵敏度,即使在没有进行数 据传输时,其数据输出脚也会有杂波输出,这些杂波会被MCU的串口接收并处理。同时处于低功耗的考虑,在每个数据帧之前要先发几个字节的同步码以实现数据 同步和射频唤醒。实践证明四个字节的0xCC 就可以确保在有效数据帧到达前双方通讯实现同步。为了准确区分噪声与有效数据,分别加入了2B的帧头(0xD792)和帧尾(0xC2D5),以确保有效 数据的确认。

4.2 跳频机制

为避免信道阻塞,系统采用了二进制指数退避算法[5]随机延时一段时间再发送数据,有效地避免了同频道下的数据冲突。除此之外,系统还设计了跳频机制以有效地保证数据传输的准确性。

跳频机制的基本原理是将频段分为一系列的通道,发送端查找预先设定的频率列表,以伪随机方式产生通信频道及发射前导码,发射前导码的时间应确保接收机可 以扫描所有的通道[6]。接收端以一定的跳频序列扫描,在某一通道上,接收端收到完整的前导码则收发双方频率同步。一旦完成频率捕获,发送端与接收端即可 识别对方,并且相互通信。发送端和接收端的跳频过程示意图分别如图4(a)和图4(b)所示。

本系统设定了5个随机频道,当跳频次数hop大于5后认为通信失败。由于同时采用了重发和退让机制,收发双方并不需要同时跳入随机频道,系统具有一定的容错性。通常一定时间内干扰只在某个频段存在,只要将5个通信频道拉开一段频距,即可有效抵制干扰。

5 系统的低功耗设计

系统中MSP430完成初始化后,处于低功耗工作模式,在有外部事件发生时唤醒进入中断服务程序,完成后重新进入低功耗模式。如此循环往复,可以最大限度地降低功耗。所以系统低功耗设计的重点是射频芯片nRF905的控制。nRF905在接收状态时功耗比较大,工作电流为10mA左右,所以应尽量使 nRF905 处于休眠状态。对于下层节点模块,当上层基站模块需要进行数据采集时,首先发送唤醒码。本系统使用0xCC作为唤醒码,即主机连续发送0xCC,从机收到连续两个0xCC后即保持接收状态而不进入休眠。如果两个周期内没有收到有效数据帧的帧头,则视为杂波干扰,重新进入休眠状态。如此设定之后,nRF905的平均工作电流可降至200?滋A以下,整个模块的平均工作电流在250?滋A以下,采用两节电池供电可以使用一年以上。上层基站模块作为主机,可主动发起通信,所以等待时nRF905可一直工作在休眠状态,整个模块的平均工作电流在100μA以下,采用两节电池供电可以使用一年半以上。

本文利用低功耗单片机MSP430和nRF905芯片设计了一种成本低、低功耗、抗干扰性强的远距离无线传输系统,给出了具体的硬件实现和独特的通信协议。nRF905的高灵敏度为其提供了稳定的传输距离,即使利用无增益的PCB天线其传输距离也可达300米,采用高增益的天线则可达到800米以上,可满足不同客户的需求。如果系统配以其他传感器组则可以实现多种应用环境的无线数据采集、传输与处理或远程监控等,在很多领域都具有广阔的应用前景。

关键字:MCU  nRF905  无线传输系统 引用地址:基于MCU和nRF905的低功耗远距离无线传输系统

上一篇:低功耗通用语音处理平台的设计实现
下一篇:基于MSP430的无线传感器节点动态功率管理研究

推荐阅读最新更新时间:2024-03-16 12:58

单片机复位电路的可靠性设计
影响 单片机 系统运行稳定性的因素可大体分为外因和内因两部分: 1、外因 射频 干扰,它是以空间电磁场的形式传递 在机器内部的导体(引线或零件引脚)感生出相应的干扰,可通过电磁屏蔽和合理的布线/器件布局衰减该类干扰; 电源 线或 电源 内部产生的干扰,它是通过电源线或电源内的部件耦合或直接传导,可通过电源滤波、隔离等措施来衰减该类干扰。 2、内因 振荡源的稳定性,主要由起振时间 频率稳定度和占空比稳定度决定 起振时间可由 电路 参数整定 稳定度受振荡器类型 温度和电压等参数影响复位 电路 的可靠性。 二、复位电路的可靠性设计 1、基本复位电路 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤
[电源管理]
瞬态电磁脉冲对单片机的辐照效应实验及加固方法研究
静电放电产生的电磁辐射可产生很强的瞬态电磁脉冲(ESD EMP)。随着电子技术的高速发展,ESD EMP的危害也日趋严重。ESD EMP具有峰值大、频带宽等特点,作为近场危害源,对各种数字化设备的危害程序可与核电磁脉冲(NEMP)及雷电电磁脉冲(LEMP)相提并论 。因此,研究ESD EMP对电子系统的各种效应及防护方法已成为静电防护中的一个热点问题。笔者以单片机系统为实验对象,进行了ESD EMP对单片机系统的辐照效应实验,并在实验的基础上研究了ESD EMP的防护和加固方法。 1 实验配置及方法 1.1 实验配置 实验配置如图1所示。它主要由台式静电放电抗扰性实验标准装置、静电放电模拟器和数据采集系统组成。
[单片机]
瞬态电磁脉冲对<font color='red'>单片机</font>的辐照效应实验及加固方法研究
MCS51系列单片机双机并行互连的实现方法
摘要:介绍了在同一系统内,MCS51系列两单片机之间采用单向并行通信接口、主从双向并行通信接口、无主从双向并行通信操作实现双机互连的方法,分析了在每一种通信接口工作方式下数据传送的特点。在三种并行通信接口为单片机应用系统扩充硬件资源的设计提供了新的途径。 关键词:单片机 并行通信 接口 数据传送 由于MCS51系列单片机具有性能稳定、工作可靠、价格低廉等特点,因此其应用相当广泛。一个MCS51系列的单片机(如Atmel89cxx)内部包含有RAM、FLASH ROM、两个或者三个16位的定时器/计数器、一个通用异步串行通信控制器(UART)等多种资源。但即便如此,在一些相对复杂的单片机应用系统中,仅仅一个单片机资源还是不够的
[单片机]
单片机·DS18B20温度传感器
一、DS18B20的特点 1. 一线总线 数字化温度传感器。(一线掌握好时序,比较简单) 2. 3~5V宽电压工作范围 3. 分辨9-12位可调 二、DS18B20的正确接线 面对着扁平的那一面,左负右正,一旦接反就有可能烧毁,也是温度显示85 C的原因。 且只有一根I/O线,注意读写时序 。 三、DS18B20时序介绍 1)复位 输入 t0-t1时刻:复位脉冲 480-960us ; t1-t2时刻:释放总线 15-60us ; 检测 t2-t3时刻:虚线部分由DS18B20控制,60-240us低电平则表示复位成功,否则失败
[单片机]
MCU/SoC芯片出货量增长 纳思达预计上半年净利4- 5亿元
7月6日,纳思达发布上半年业绩预告称,公司预计2021年上半年实现归属于上市公司股东的净利润分别为4亿元-5亿元,同比增长11.45%-39.31%,上年同期盈利为3.59亿元。 关于业绩增长的主要原因,纳思达表示,在后疫情时代,公司积极把握市场机遇,对核心业务与产品进行针对性调整,重点布局新产品与市场,切实推进2021年既定的各业务模块经营计划落地。本报告期内,公司打印机业务硬件销量与收入企稳回升,芯片与通用打印耗材业务收入同比增长,其中,打印机主控芯片、通用MCU、物联网SoC安全芯片出货量增长趋势良好,通用打印耗材芯片与通用打印耗材销量去年同期因家用需求大幅增长,本期销量有所回落。 另外,本报告期内,纳思达预计公司所购买
[手机便携]
<font color='red'>MCU</font>/SoC芯片出货量增长 纳思达预计上半年净利4- 5亿元
单片机实现自控飞艇舵控系统
  以单片机为核心设计并实现了小型自控飞艇的舵机控制系统,对系统的硬件设计进行了说明,对软件设计中的关键问题——串行通讯及帧识别、多单片机通讯及PWM波的软件产生方法进行了详细阐述。   引言   平流层飞艇是一种利用轻于空气的气体(如氦气等)产生浮力作为升力的飞行于平流层区域的飞行器。它依靠飞艇内部装载的轻于空气的气体产生的静升力,通过控制飞艇上的舵面和动力装置,以较小的能耗实现在平流层的飞行。小型自控飞艇是为了验证平流层飞艇飞行特性和控制性能的小型软式试验飞艇,对其控制系统的研究是平流层飞艇研制中一个重要的过渡阶段,具有极其重要的意义。   1 小型自控飞艇舵控系统简介   舵机是小型自控飞艇执行机构中最主要的执行部件
[单片机]
<font color='red'>单片机</font>实现自控飞艇舵控系统
基于单片机的多功能智能小车机器人
随着科学技术的日新月异及传感器技术的不断发展,各国对智能移动机器人的研制和开发力度也不断加大,各式各样的机器人进入社会生活的方方面面。机器人可以代替人力进行许多具有一定危险性的活动,进入一些人类难以涉足的空间,比如不久前成功在月球登陆的 玉兔 号月球车。本文设计的小车可以应用于无人驾驶机动车、无人工厂、仓库等领域,有实际应用推广价值。 1 系统总体设计 本文设计的小车采用51单片机作为控制核心,使用光电传感器检测小车的运动状态,进行循迹和避障,并由LCD实时显示小车的运动状态。金属传感器检测到铁片后小车由循迹状态进入到避障状态,按下遥控器可使小车进入遥控状态,每次状态转换都有报警指示。智能小车实物照片及功能示意图如图1所示。
[单片机]
基于<font color='red'>单片机</font>的多功能智能小车机器人
单片机笔记】NodeMcu入坑—局域网通信
先上源码 --wifi_light.lua wifi.setmode(wifi.STATION) wifi.sta.config( wifi_ssid , wifi_psw ) print(wifi.sta.getip()) led1 = 0 gpio.mode(led1, gpio.OUTPUT) srv=net.createServer(net.TCP) srv:listen(80,function(conn) conn:on( receive , function(client,request) local buf = ; local _, _, method, path, vars = string.fi
[单片机]
【<font color='red'>单片机</font>笔记】NodeMcu入坑—局域网通信
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved