基于MSP430单片机和nRF905的无线通信系统
引言
随着信息技术的不断发展,人们对通信技术的需求越来越强,摆脱有线网络的束缚实现无线通信始终是大家关心的问题,当今无线通信研究越来越热,应用非常广泛,使人与人之间的通信更加方便快捷,更具有市场发展前景。
本文以Nordic公司的nRF905作为通讯的核心,设计了无线通信系统。
系统设计
无线通信系统,由两个部分组成:发送终端,接收终端。数据的发送和接收显示是借助于串口来实现的,通过PC机串口给发送终端送数据,然后发送终端通过nRF905把数据发送出去;接收终端通过nRF905接收数据,然后把接收到的数据通过串口传给PC机。系统框图如图1所示。
图1
无线系统的硬软件设计
系统的硬件设计
本系统采用的射频收发器为Nordic VLSI公司的nRF905, 工作电压为1.9~3.6V,工作于433/868/915MHz三个ISM频段,频段之间的转换时间小于650us。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器。高抗扰GFSK调制,数据速率为50kbps,独特的载波监测输出,地址匹配输出,数据就绪输出。ShockBurstTM工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。此外,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,工作于接收模式时的电流为12.5mA,内建空闲模式与关机模式,易于实现节能。nRF905的硬件连接电路图如图2所示。
采用的微处理器为TI公司的MSP430F149,它是一种超低功耗的混合信号控制器,具有16位RISC结构,CPU中的16个寄存器和常数产生器使MSP430能达到最高的代码效率。单片机通过采用不同的时钟源工作可以使器件满足不同功耗要求,适当选择时钟源,可以让器件的功耗达到最小。外设主要有存储器、时钟模块、定时器、USART和A/D转换器等。
此次设计主要用到了MSP430F149两个串口通信模块USART0和USART1,USART0作为UART使用,提供异步通信,通过MAX3232电平转换芯片提供RS-232接口和PC机进行通信,USART1作为SPI使用,提供同步通信,主要是和nRF905之间进行命令和数据通信。把MSP430F149的P2口作为一般引脚使用,与nRF905的其他引脚相连。对MSP430F149提供双晶振系统,低频晶振为32.768K,与微控制的XIN和XOUT相连,为RS-232接口提供频率支持,高频晶振为8M,和微控制器的XT2相连,为系统运行的主时钟。系统的整体设计相对较为简单,不过在此基础上可以实现遥测,无线抄表,工业数据采集,机器人控制等。发送和接收的硬件电路是一样的,系统设计主要硬件电路图如图3所示。
系统的软件设计
系统软件设计包括下位机软件设计和PC机软件设计。前者主要是微控制器通过SPI口对nRF905的控制以及微控制器串口通讯的设计,后者包括串口通讯模块、主界面和数据库设计。
}RFConfig;
RFConfig RxTxConf=
{
10,
0x01, 0x0c, 0x44, 0x20, 0x20, 0xcc,
0xcc, 0xcc, 0xcc, 0x58
};
nRF905提供SPI口的读写指令,当CSN为低时,SPI接口开始等待一条指令,任何一条新指令均由CSN的由高到底的转换开始。下面主要介绍nRF905的发送流程和接收流程。
发送流程:
A.当微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给nRF905,SPI接口的速率在通信协议和器件配置时确定;
B.微控制器置高TRX_CE和TX_EN,激发nRF905的ShockBurstTM发送模式;
C.nRF905的ShockBurstTM发送:射频寄存器自动开启;数据打包(加字头和CRC校验码);发送数据包;当数据发送完成,数据准备好引脚被置高;
D.当TRX_CE被置低,nRF905发送过程完成,自动进入空闲模式。
ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,nRF905才能接受下一个发送数据包。
接收流程:
A.当TRX_CE为高、TX_EN为低时,nRF905进入ShockBurstTM接收模式;
B.650us后,nRF905不断监测,等待接收数据;
C.当nRF905检测到同一频段的载波时,载波检测引脚被置高;
D.当接收到一个相匹配的地址,地址匹配引脚被置高;
E.当一个正确的数据包接收完毕,nRF905自动移去字头、地址和CRC校验位,然后把数据准备好引脚置高
F.微控制器把TRX_CE置低,nRF905进入空闲模式;
G.微控制器通过SPI口,以一定的速率把数据移到微控制器内;
H.当所有的数据接收完毕,nRF905把数据准备好引脚和地址匹配引脚置低;
I.nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。
MSP430F149的串口通讯程序设计,主要是设定传输的速率为4800bps,数据传输为8位数,1个停止位,无奇偶校验。根据相应的发送端和接收端来设定发送模块和接收模块使能,发送中断和接收中断使能。
在PC机软件设计中,串口通信模块负责PC机与下位机之间的数据通信。而主界面和数据库设计主要是方便对接收的数据进行管理。
实验测试分析
在发送和接收时利用示波器和万用表对nRF905的相关引脚进行测量分析如下:
发射时nRF905的分析情况如表1所示。
接收时nRF905的分析情况如表2所示。
结语
本设计实现了基于MSP430F149和nRF905的无线通信。发送端和接收端之间的距离为80米,之间没有任何有线连接,通过发送端发送数据,在接收端能正确接收数据并显示在PC机上。实验表明,该系统实时性好,性能可靠。