一种低功耗远距离无线传输系统的设计和实现

时间:2011-06-22

 

  随着无线技术的日益发展,无线传输技术应用越来越被各行各业所接受。无线监控作为一个特殊使用方式也逐渐被广大用户看好。其安装方便、灵活性强、性价比高等特性使得更多行业的监控系统采用无线监控方式,建立被监控点和监控中心之间的连接。无线监控技术已经在现代化小区、交通、运输、水利、航运、治安、消防等领域得到了广泛的应用。

    本文介绍一种采用通用的低功耗单片机MSP430作为主控芯片、具有多信道的单片收发芯片nRF905作为无线收发模块、利用SPI口实现双向通讯的无线数据传输系统。系统集成了MSP430在低功耗应用方面的优势和nRF905无线特有的多频道支持及功耗低、易控制等优点,特别适合于低功耗、小数据量的无线数据传输系统。

  1 系统的总体结构

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

 

 

  2 系统主要芯片介绍

  MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供"单片"解决方案。强大的处理能力 MSP430 系列单片机是一个 16 位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式( 7 种源操作数寻址、 4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8MHz 晶体驱动下指令周期为 125 ns .这些特点保证了可编制出高效率的源程序。

  射频部分使用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接口

  SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI有三个寄存器分别为:控制寄存器SPCR,状态寄存器SPSR,数据寄存器SPDR.外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。

  nRF905是挪威Nordic公司推出的单片射频发射器芯片,工作电压为1.9-3.6V,32引脚QFN封装(5mm×5mm),工作于433/868/915MHz3个ISM频道(可以使用)。nRF905可以自动完成处理字头和CRT(循环冗余码校验)的工作,可由片内硬件自动完成曼彻斯特编码/解码,使用SPI接口与微控制器通信,配置非常方便,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,在接收模式时电流为12.5mA.nRF905传输数据时为非实时方式,即发送端发出数据,接收端收到后先暂存于芯片存储器内,外面的MCU可以在需要时再到芯片中去取。nRF905的数据传输量多为32B,由四种模式,通过单片机来配置,nRF905的两种工作模式和两种节能模式,分别为掉电模式、待机模式、ShockBurst TM接收模式和ShockBurst TM发送模式,这几种模式由外界CPU通过控制nRF905的3个引脚PWR_UP、TRX_CE和TX_EN的高低电平来决定,外界MCU通过SPI总线配置nRF905的内部寄存器,读写数据时必须把其置为待机或掉电模式,nRF905在待机模式时功耗为40μA,在掉电模式时功耗为2.5μA.

  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所示。

 

  接收数据时,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协议

  MAC协议的主要作用是保证公平性和有效的资源共享。MAC机制主要分为两类:1基于竞争的协议2无竞争的信道协议。基于竞争的协议假定网络中没有中心实体来分配信道资源,每个节点必须通过竞争媒体资源来进行传送,当超过一个节点同时尝试发送时,碰撞就会发生。

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

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

  系统设定的数据链路层的数据帧格式如表1.

 

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

  由于射频芯片的高灵敏度,即使在没有进行数据传输时,其数据输出脚也会有杂波输出,这些杂波会被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米以上,可满足不同客户的需求。如果系统配以其他传感器组则可以实现多种应用环境的无线数据采集、传输与处理或远程监控等,在很多领域都具有广阔的应用前景。


  
上一篇:基于DAC0832的LED亮度控制系统设计
下一篇:一种基于MSP430和nRF401的家用射频无线自动抄表系统设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料