MSP430和nRF905的无线数传系统设计

2006-09-25 10:35:52来源: 单片机及嵌入式系统应用
在特殊环境的数据测控应用中,无线数据传输已经越来越广泛地被运用,MSP430+nRF905的组合特别适合于低功耗,短距离(100-200m)、小数据量的无线数传系统,MSP430 CPU在低功耗应用方面有很大优势,nRF905无线收发芯片具有功耗低、控制简单、可自动处理字头和CRC校验的优点,两者结合组成的数传系统可以在很多产品中得到应用。

1 MSP430简介

MSP430是TI公司新推出的16位系列单片机,在电池供电的低功耗应用中具有独特的优势,其工作电压在1.8-3.6V之间,正常工作时功耗可控制在200μA左右,低功耗模式使可实现2μA甚至0.1μA的低功耗,MSP430具有非常高的集成度,通常在单个芯片上集成有12位的A/D、比较器、多个定时器,片内USART、看门狗、片内振荡器、大量的I/O端口及大容量的片内存储器,一般单片就可以满足大多数的应用需要。

在低功耗应用中设计程序时,最好采用以下方法:CPU在初始化完成后,处于低功耗工作模式,在有外部事件发生时唤醒进入终端服务程序,完成后重新进入低功耗模式,照此循环往复,可以最大限度地降低功耗。

2 nRF905简介

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。

2.1 nRF905的工作模式及设置

nRF905的两种工作模式和两种节能模式,分别为掉电模式、待机模式、ShockBurst TM接收模式和ShockBurst TM发送模式,这几种模式由外界CPU通过控制nRF905的3个引脚PWR_UP、TRX_CE和TX_EN的高低电平来决定,如表1所列。

外界MCU通过SPI总线配置nRF905的内部寄存器,读写数据时必须把其置为待机或掉电模式,nRF905在待机模式时功耗为40μA,在掉电模式时功耗为2.5μA。

2.2 nRF905的状态输出

nRF905有3个引脚用于状态输出,分别是:CD(载波检测)、AM(地址匹配)和DR(数据就绪),均为高电平有效,nRF905在处于接收模式时,若检测到接收频率段的载波,就置CD为高,接着检测载波数据中的地址字节,若与本身已配置的接收地址相同,则置AM为高,若再检测到接收数据中的CRC校验正确,则存储有效数据字节,置DR为高。

此外,nRF905还有一个时钟输出引脚uPCLH,供用户选择使用。通过配置内部寄存器,可改变其频率输出,这一点在调试时很有用。无线系统至少需要一发一收两个设备,调试时若出现问题很难判断是哪一方的故障。可以通过修改nRF905的寄存器,用示波器观察uPCLK输出是否变化的方法,来判断其硬件电路和CPU操作,nRF905的程序是否正确,从而判断及设备是否工作正常。

2.3 nRF905的数据接口

外围MCU通过SPI总线配置nRF905的内部寄存器和收发数据,nRF905的SPI总线包括4个引脚:CSN(SPI使能)、SCK(SPI时钟)、MISO(主入从出)和MOSI(主出从入)。这里nRF905为从机,其SPI的时钟范围很宽,可以从1Hz-10MHz,因此MCU在写控制程序时不必苛求时间的准确度。

SPI总线的每次操作都必须在使能引脚CSN的下降沿开始,CSN低电平有效,总线上的数据在时钟的上升沿有效,MCU对SPI总线的操作不外乎两种方式:读和写,在进行读操作时,先把CSN置低,然后在MOSI数据线上输出一个表示读命令的字节,与此同时,nRF905会在MISO数据线上输出一字节表示状态信息的数据,随后输出一地址字节,后面跟随有效数据,在进行写操作时比较简单,MCU先把CSN拉低,然后在MOSI线上输出写命令字节和数据字节即可。

2.4 nRF905的寄存器配置

nRF905内部有5类寄存器:一是射频配置寄存器,共10个字节,包括中心频点、无线发送功率配置、接收灵敏度、收发数据的有效字节数、结社地址配置等重要信息;二是发送数据寄存器,共32字节,MCU要向外发的数据就需要写在这里,三是发送地址,共4个字节,一对收发设备要正常通信,就需要发送端的发送地址与接收端的接手地址配置相同,四是接收数据寄存器,共32字节,nRF905接收到的有效数据就存储在这些寄存器中,MCU可以在需要时到这里读取,五是状态寄存器,1个字节,含有地址匹配和数据就绪的信息,一般不用。

MCU若要操作这些寄存器,需遵循nRF905规定的操作命令,常用的有以下7种,都是1个字节;写射频配置(0XH,“X”含4位二进制位,该字节表示要开始写的初始字节数)、读射频配置(1XH,“X”含4位二进制位,该字节表示要从哪个字节开始读)、写发送数据(20H),读发送数据(21H)、写发送地址(22H)、读发送地址(23H)和读接收数据(24H),关于寄存器的详细信息可以参阅nRF905的数据手册。

2.5 nRF905的工作过程

nRF905在正常工作前应由MCU先根据需要写好配置寄存器,或是按照默认配置工作,其后的工作主要是两个:发送数据和接收数据。

发送数据时,MCU应先把nRF905置于待机模式(PWR_UP引脚为高、TRX_CE引脚为低)然后通过SPI总线把发送地址和待发送的数据都写入相应的寄存器中,之后把nRF905置于发送模块(PWR_UP、TRX_CE和TX_EN全置高)数据就会自动通过天线发送出去,若射频配置寄存器中的自动重发位(AUTO_RETRAN)设为有,数据包就会重复不断地一直向外发,直到MCU把TRX_CE拉低,退出发送模式为止。为了数据更可靠地传输,建议多使用此种方式。

接收数据时,MCU先在nRF905的待机模式中把射频配置寄存器中的接收地址写好,然后置其于接收模式(PWR_UP=1、TRX_CE=1、TX_EN=0),nRF905就会自动接收空中的载波,若收到地址匹配的和校验正确的有效数据,DR引脚会自动置高,MCU在检测到这个信号后,可以改其为待机模式,通过SPI总线从接收数据寄存器中读出有效数据。

3 系统硬件设计

MSP430的USART模块可通过寄存器配置为通用异步串行口或SPI模块功能,这里配置为SPI模块,本系统选用的MCU是MSP430F133,在硬件设计时把MCU的SPI接口和nRF9051SPI接口相连即可,另外再选几个I/O口连接Nrf9051输出输出信号,如图1所示。

对于初次接接触无线系统的设计者,因其射频部分的元件采购,焊接和调试比较麻烦,可以选用PTR8000模块,该模块内核使用nRF905,硬件电路已经焊好,十月起来相对方便一些。

4 控制程序设计

本系统设计的重点是控制nRF901的程序设计,大致分为两个阶段:首先是对NrF905进行初始配置,配置完成后按 需要便携书记的发送或接收程序。

4.1 初始化配置

第一阶段应完成初始化配置,分以下几项:

1)MSP430的SPI接口设置,MSP4301异步串行接口和SPI接口用同一个USART模块,贼里需要用软件配置为SPI功能,本设计中SPI配置为主机模块、3线制和8位数据,程序源代码参见子程序“SPI_SET五”。(编者注:程序源代码见网站www.mesnet.com.cn)

2)初始化nRF901的射频配置寄存器,这些寄存器中有很多信息,必须根据实际情况进行配置,本设计中nRF905外界16MHz晶体,“XOF应配置为“011”;“PA_PWR”为发射功率,RX_RED_PWR”为接收命灵敏度,可根据需要配置;另外还有发送地址、接收地址、发送数据和结社数据的长度(字节数)可根据实际应用配置,注意贼组寄存器中海油接收时的实际地址,不而发送地址在其他单独的寄存器中。

3)配制nRF901的发送地址,最多4个字节(32位),发送端的发送地址应于接受端设备的结社地址相同,在实际工作中nRF901可以自动滤滤除地址不相同的数据,只有地址匹配且校验正确的数据彩绘被接受,并存储在接收数据寄存器中。

4.2 发送数据

使nRF905发送数据前需要MSP430通过SPI总线在待机模式便板待法数据填进发送数据寄存器中,一次最多32B,然而把nRF9051“TRX_CE”、“TX_EN” 因该都置为高电平,数据就会自动发送出去,本设计射频配置寄存器中选定了自动重发位,因此在“TRX_CE”被置高的时间内数据一直在重复不断地发。本程序中设计延时500ms,之后拉低“TR X_CE”因该,回到待机模式。

4.3 接收数据

MSP430把nRF905的“TRX_CE”引脚置为高电平,“TX_CE引脚拉为低电平后就刻蚀结社数据,本设计中CPU在设定的35s内一直判断Nrf9051“DR”引脚是否便变高个,若为高则证明接收到了有效数据,可以退出接收模式,弱一致没有接受2到,待时间到时也退出接接受是模块,退出后在待机模块,CPU通过SPI总线把NRF905内部的接收数据寄存器中数据读出,即接收道德有效数据。

便携接受部分程序时,有一点应该注意,很多资料中都没有提到,就是CPU在MOSI信号线上发出读命令字节后“MISO”信号线上nRF905会自动返回一字节数据,本本身的状态寄存器信息,后续的接收数据并不会自动跟着输出,只有CPU在MOSI上输出一个字节(可以是随意值),nRF905才会在“MISO”上返回一个字节,CPU再发,nRF905再满会,直到读完为止。

关键字:数据  功耗  芯片  收发

编辑: 引用地址:http://www.eeworld.com.cn/wltx/RFID/200609/2288.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
数据
功耗
芯片
收发

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved