基于ARM和nRF905的无线数据收发系统
扫描二维码
随时随地手机看文章
所设计的无线数据收发系统是无线随动控制系统的重要组成部分,主要由nRF905无线收发模块和LPC2148 ARM开发板组成,用来实现手动系统与随动系统之间的无线数据传输,有效地解决了在恶劣环境下布线困难的问题。
1 nRF905无线收发模块
nRF905是一个工作在433/868/915 MHz的ISM频段,完全集成的单片无线收发器芯片。nRF905芯片内部包含有一个完全集成的调制器、带解码器的接收器、功率放大器、晶体振荡器等电路。其采用DSS+PLL频率合成技术和GMSK调制,频率稳定性非常好,抗干扰能力强;可以很容易通过SPI接口编程配置其工作模式;最多信道数可达170个,能够满足需要多信道工作的特殊场合;最远传输距离可达1 000 m;最高数据速率为50 Kb/s;工作电压为1.9~3.6 V;在发射功率为-lO dBm时,电流消耗为11 mA;在接收状态时,电流消耗为12.5 mA,具有低功耗模式;采用32引脚端的QFN 5 mm×5 mm封装。
nRF905通过对TRX_CE,TX_EN,PWM_UP的设置来实现不同的工作模式,工作模式如表1所示,模式设置如表2所示。
nRF905的工作模式通过SPI接口对芯片内部的寄存器进行配置实现。所有配置字都是通过SPI接口送给nRF905。SIP接口的工作方式可通过SPI指令进行设置。当nRF905处于空闲模式或关机模式时,SPI接口可以保持在工作状态。
SPI接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器5个寄存器组成。状态寄存器包含数据准备好引脚状态信息和地址匹配引脚状态信息;射频配置寄存器包含收发器配置信息,如频率和输出功能等;发送地址寄存器包含接收机的地址和数据的字节数;发送数据寄存器包含待发送的数据包的信息,如字节数等;接收数据寄存器包含要接收的数据的字节数等信息。
nRF905的应用电路如图1所示,nRF905外围元件均采用贴片封装形式。[!--empirenews.page--]
2 LPC2148开发板与无线收发器电路模块的连接
nRF905无线收发器电路模块与LPC2148开发板的连接如图2所示。两者之间的通信是通过SPI接口进行的,LPC2148有2个专用SPI总线接口,用户也可使用模拟SPI对nRF905进行操作,此处采用LPC2148的SPI0。搭建两个这样的模块即可以组成一个无线数据收发系统,示意图如图3所示。
3 无线收发系统程序设计
无线收发系统主程序包含有发射和接收两部分,用来完成数据的收发。
3.1 发射部分
使用定时器0定时1 s,每隔1 s蜂鸣器开启且发送一次数据,发送完一次数据后蜂鸣器停止呜叫。发射部分流程图如图4所示。[!--empirenews.page--]
启动ADS 1.2,使用ARM Executable Image forLPC2148工程模板创建一个工程。使用过程中,要将nRF905.c和nRF905.h包含入工程。nRF905.c中包含了nRF905的管脚初始化和配置函数,nRF905.h中包含nRF905的管脚定义、地址定义等。
3.2 接收部分
接收部分的程序流程图如图5所示。
系统收发程序清单读者如有需要可以向作者索取。
4 结语
采用LPC2148和nRF905构成的无线数据收发系统工作在433 MHz的ISM频段,最远传输距离可达1 000 m,数据速率为50 Kb/s。工作电压为3.3 V,在发射功率为-10 dBm时,电流消耗为11 mA。由于系统采用DSS+PLL频率合成技术和GMSK调制,频率稳定性非常好,抗干扰能力强;可以很容易通过SPI接口编程配置其工作模式。信道数最多可达170个,能够满足需要多信道工作的特殊场合使用。系统具有低功耗模式,低功耗模式电流消耗仅为42μA。
利用LPC2148具有45个可承受5 V电压的I/O接口,全速USB 2.O,UART,SPI和SSP串行外设接口,I2C总线接口,2个8通道10位的A/D和1个10位的D/A转换器,以及6路输出的PWM接口,可以方便地构成一个无线数据采集与控制系统。
实验证明该系统在无线随动控制系统中使用效果良好。