基于nRF905模块的AT89S单片机无线收发系统设计
- 格式:pdf
- 大小:152.46 KB
- 文档页数:3
36 2009年第02期,第42卷 通 信 技 术 Vol.42,No.02,2009总第206期 Communications Technology No.206,Totally基于nRF905模块的AT89S 单片机无线收发系统设计马金祥, 何一鸣(常州工学院,江苏 常州 213002)【摘 要】介绍了挪威Nordic 公司的nRF905无线收发模块的结构和工作特点,并在此基础上设计了基于nRF905模块的AT89S 单片机的无线通信系统。
给出了无线收发系统的硬件组成电路和数据收发流程图,并通过实际数据通信实验验证了系统的可靠性。
最后还对本系统的应用作了进一步的说明。
【关键词】无线通信;nRF905;单片机【中图分类号】TN92 【文献标识码】A 【文章编号】1002-0802(2009)02-0036-03Design on Wireless Transceiver System Based onnRF905 Module and AT89S MCUMA Jin-xiang, He Yi-ming(Changzhou Institute of Technology, Changzhou Jiangsu 213002, China)【Abstract】Based on the description of the structure and working features of RF transceiver nRF905 module, a wireless transceiver system based on nRF905 module and AT89S MCU is designed .The hardware circuit and the complete transceiver flow charts are given in the paper, and the data transceiver experiment has proved that the design of the system is effective and reliable. Finally, the application of this transceiver system is discussed in detail.【Key words】wireless transceiver; nRf905; MCU0 引言在传统的测控系统中,通常使用导线来传输信号。
但有线传输方式存在如下的缺点:①产生电磁干扰,②存在信号衰减,③复杂的线路连接。
随着射频技术和集成电路技术的高速发展,人们对无线通信的要求越来越高。
无线通信功能的实现更便捷,数据传输速率更快,抗干扰能力更强。
短程、便捷、廉价的无线通信技术正引起越来越多的关注。
因此,许多的应用领域采用了无线通信技术。
文中的无线收发系统以MCS-51系列单片机中的具有ISP 功能的AT89S 单片机为微控制器,采用挪威Nordic 公司的nRF905芯片组成的无线收发模块,给出了一种简单便捷的无线通信设计系统。
1 无线收发系统硬件设计1.1 nRF905模块简介nRF905芯片是挪威Nordic 公司推出的的单片射频收发器。
芯片工作电压DC1.9~3.6V ,32引脚QFN 封装,内置硬件CRC 检错和点对多点通信地址控制,工作在433/868/915MHz 三个ISM 频段,频段之间收发模式切换时间<650us [1]。
nRF905模块是使用nRF905芯片开发而成。
nRF905模块的高频头用户接口电路管脚图如图1所示,接口电路管脚功能说明如表1所示。
图1 nRF905模块的高频头用户接口电路管脚收稿日期:2008-07-04。
作者简介:马金祥(1977-),男,讲师,硕士,现主要从事微机控制系统方面的教学和科研工作。
表1 nRF905模块的高频头用户接口电路管脚功能说明管脚 名称 管脚功能 说明1 VCC 电源 电源+3.3~3.6V DC2 TX_EN 数字输入 工作模式选择3 TRX_CE 数字输入 使能芯片发射或接收4 PWR_UP 数字输入 芯片上电5 uCLK 时钟输出 (未使用)6 CD 数字输出 载波检测7 AM 数字输出 地址匹配8 DR 数字输出 接收或发射数据完成9 MISO SPI 接口 SPI 输出10 MOSI SPI 接口 SPI 输入11 SCK SPI 时钟 SPI 时钟12 CSN SPI 使能 SPI 使能13、14 GND 地 接地nRF905模块具有两种工作模式和两种节电模式。
工作模式包括:ShockBurst接收模式和ShockBurst发射模式;节电模式包括:掉电与SPI编程模式和待机与SPI编程模式。
nRF905模块这四种模式的选择PWR_UP、TRX_CE和TX_EN 的设置来决定。
nRF905模块模式控制表如表2所示[2]。
表2 nRF905模块模式控制PWR_UP TRX_CE TX_EN 选择模式0 X X 掉电与SPI编程模式1 0 X 待机与SPI编程模式1 1 0 ShockBurst接收模式1 1 1 ShockBurst发射模式nRF905模块在ShockBurst工作模式的特点是自动产生前导码和CRC校验码,使用SPI接口与微控制器通信,配置非常方便。
下面给出了nRF905模块的SPI串行接口的指令设置[3]:#define WC0x00//写配置寄存器指令#define RC0x10//读配置寄存器指令#define WTP 0x20 //向TX_Payload寄存器写入发送有效数据指令#define RTP0x21//从TX_Payload寄存器读取发送有效数据指令#define WTA 0x22 //向TX_Address寄存器写入发送地址指令#define RTA0x23//从TX_Address寄存器读取发送地址指令#define RRP0x24//从RX_Payload寄存器读取接收到的有效数据指令当CSN为低电平时,SPI接口开始等待下一条指令,任何一条指令均由CSN电平由高到低的转换开始。
硬件上面没有SPI接口的单片机也可以控制nRF905模块,可以使用普通单片机的I/O端口模拟SPI接口。
1.2 系统硬件设计系统硬件电路是以AT89S单片机和nRF905模块为核心元件,由单片机的I/O端口分别控制nRF905模块的状态接口、模式接口和SPI接口,系统硬件组成电路如图2所示。
图2 无线收发系统硬件组成电路无线收发系统的通信底板是以AT89S单片机为微控制器,与设计好的nRF905无线收发模块相连接,具备数据发送和数据接收的功能。
硬件系统由一对配置nRF905模块的通信底板构成,其中一端作为发送端,另一端作为接收端。
在AT89S单片机系统中增加按键输入部分是为了实现有条件数据发送,而增加LED输出部分是为了观察数据发送和接收的效果。
发送端的微控制器通过将TRX_CE 和TX_EN 管脚同时置为高电平,控制发送端的nRF905模块向外发送数据。
接收端的微控制器通过将TRX_CE置为高电平,同时将TX_EN管脚置为低电平,接收由接收端nRF905模块收到的数据。
无线收发系统采用半双工的通信模式,可以实现两台单片机系统之间的双向数据收发。
2 无线收发系统程序设计2.1 无线发送系统程序设计发送端的单片机将接收机的地址和要发送的数据写完后,就要控制nRF905模块将数据信息发送出去,nRF905模块在发送模式时会自动产生字头和CRC校验码。
当发送过程结束后,nRF905模块的数据传输完成管脚会通知单片机数据发送完毕。
下面为典型的nRF905模块数据发送流程[3]:(1)当微控制器要发送数据时,将接收机的地址和发送数据通过SPI接口传输给nRF905模块;(2)微控制器设置TRX_CE 和TX_EN管脚同时置为高电平,启动发送端的nRF905模块为发送模式;(3)发送端的nRF905模块发送过程处理:a)射频寄存器开启;b)数据打包(加字头和CRC校验码);c)数据包发送;d)当数据包发送结束,将数据发送完成管脚(DR管脚)置为高电平;(4)如果AUTO_RETRAN被设置为高,nRF905模块37将连续地发送数据包,直到TRX_CE被设置为低;(5)TRX_CE被设置为低时,nRF905模块数据包发送过程结束并回到待机模式。
AT89S单片机控制nRF905模块数据发送流程图如图3所示。
图3 nRF905模块数据发送流程2.2无线接收系统程序设计接收端的单片机控制nRF905模块进入接收模式后,当nRF905模块监测到有同一频段的载波信号且接收到相匹配的地址时,就开始数据包接收。
当数据包正确接收完毕后,接收端的单片机在nRF905模块处于待机状态时通过SPI接口提取数据包中的有效接收数据。
下面为典型的nRF905模块数据接收流程[4]:(1)微控制器控制TRX_CE为高电平、TX_EN为低电平,nRF905模块进入接收模式;(2)650us后,nRF905模块监测空中的信息,等待接收数据;(3)当nRF905模块检测到与接收频率相同的载波时,设置载波检测管脚(CD管脚)为高电平;(4)当nRF905模块接收到有效的地址时,设置地址匹配管脚(AM管脚)为高电平;(5)当一个正确的数据包接收完毕后,nRF905模块自动去掉数据包的字头、地址和CRC校验码,然后将数据接受完成管脚置为高电平;(6)微控制器将TRX_CE设置为低电平;(7)微控制器通过SPI接口以一定的速率提取数据包中的有效接收数据;(8)当所有的有效数据接收完毕,微控制器控制nRF905模块数据接收完成管脚(DR管脚)和地址匹配管脚(AM 管脚)为低电平;(9)nRF905进入待机模式。
AT89S单片机控制nRF905模块数据接收流程图如图4图4 nRF905模块数据接收流程3 结语(1)nRF905模块VCC与GND管脚电压范围为DC 3.3~3.6V之间,不能超过这个区间,超过3.6V将会烧毁模块。
(2)nRF905模块的其它管脚都可以直接和单片机的I/O端口连接,无需电平转换。
如果单片机是3.3V的,可以直接和nRF905模块的I/O口线连接。
如果单片机是5V的,请参考该系列单片机I/O端口输出电流大小,如果超过10mA,需要串联分压电阻,否则会烧毁模块。
(3)本系统通过了实际数据通信实验的验证,运行稳定,通信可靠,能够实现400米左右的无线通信。
(4) 本系统可以应用于点对点、点对多点通信的一些实际工作环境中。
参考文献[1] 荚庆,王代华,张志杰. 基于nRF905的无线数据传输系统[J].国外电子元器件.2008,(1):29-31.[2] .[3] 王萍,陈长青,龚睿等. 基于nRF905的无线串口通信系统[J].微计算机信息.2007:281-282.[4] 吕跃刚,高晟辅,范俊峰等: 基于nRF905无线数传模块的设计及其实现[J]. 微计算机信息.2006:281-282.38。