基于 STC 单片机和 nRF905 的无线传输系统设计
徐凌峰
摘要: 随着网络和通信技术的高速发展,使人们对无线通信技术的需求越来
越高,与有线通信相比,无线通信可以避免复杂的线路连接,有效的节约了人力
物力。射频通信在所有的应用中都可归结为发送特定的数据给接收端,接收端根
据接收到的数据按照事先规定的协议来执行相应操作的问题。本文主要介绍了利
用 nRF905 射频模块实现一个单片机上输入的数据以无线方式发送到接收端并显
示这样一个射频系统的设计。
关键词:单片机,nRF905,射频通信
1. 研究目标
研究目标:1、要求系统能够实现基本的无线数据通信;2、应用于单片机系
统的低功耗射频通信,设计应满足低功耗的要求;3、实现室内的短距离通信(100m
之内);4、要求系统设计简便,易于实现。
具体功能:通过射频模块将发送端输入的数据传送到接收端,并通过接收端
设置的数码管来显示接收的数据,以验证通信是否成功。
2. 方案论证与理论分析
目前所使用的无线通信方式种类很多,大致可分为两类,一类是基于标准通
信协议的,如 WLAN、Bluetooth、IrDA、Zigbee 等;另一类是基于非标准通信协
议的,如 nRF905 射频模块所使用的通信方式。
WLAN(无线局域网)是一种基于 IEEE 802.11 系列协议的通信方式。这种通信
方式的特点就是数据传输速率快,能够适应现在的多媒体通信。缺点是功耗大,
系统复杂。
Bluetooth(蓝牙)是 1998 年 5 月最先提出的一种通信协议。这种通信方式
传输速率可达到 1Mbps。传输距离在 10m 左右。最多可接 8 个外设,如蓝牙鼠标
和蓝牙耳机。因为传输距离过短,不太适合本系统。
IrDA(红外)传输速率最高可达到 4Mbps,功耗低,但方向性要求较高,接
收角度一般只有 30°,传输距离 5m 左右。无法进行组网,只适用于点对点通信。
Zigbee 协议是以协议栈的方式给出的,物理层和 MAC 层用的是 IEEE 802.15.4
协议,Zigbee 联盟只制定了网络层和应用层的规范。
常利用含有 Zigbee 协议栈的模块组成无线传感器网络,Zigbee 有三个工作频
段,分别为 2.4GHz、915MHz 和 868MHz,这三个频段分成 27 个信道,可根据
不同的情况选择其中一个工作信道。在基于 Zigbee 的无线网络中,Zigbee 模块
被分为三种类型:协调器、中继或路由、终端设备。Zigbee 模块功耗极低,最大
功耗为 1mW~3mW,传输速率最高可达 250kbps,差分编码方式,BPSK 或 O-QPSK
调制,DSSS 扩频,单点覆盖距离在 50m~300m。典型芯片有 CC2430/CC2431。
本文所使用的 nRF905 模块是挪威的 Nordic 公司推出的单片射频收发器,采
用 GFSK 调制方式,低功耗,工作电压为 1.9~3.6V,工作于 433/868/915MHz 三
个 ISM 频段。模块通过 SPI 接口与单片机相连,可以很容易通过 SPI 接口对射
频模块进行编程和配置。发送时模块会自动加上前导码和 CRC 检验码,曼彻斯
特编码下传输速率为 50kbps。
3. 硬件电路设计
3.1 模块介绍
nRF905 射频模块引脚图如图 1 所示
引脚功能如表 1 所示:
图 1 nRF905 射频模块引脚
表 1 nRF905 射频模块引脚说明
管脚
1
2
3
4
5
6
7
8
9
10
11
12
13、14
名称
VCC
TX_EN
TRX_CE
PWR_UP
µCLK
CD
AM
DR
MISO
MOSI
SCK
CSN
GND
管脚功能
电源
数字输入
数字输入
数字输入
时钟输出
数字输出
数字输出
数字输出
SPI 接口
SPI 接口
SPI 时钟
SPI 使能
地
说明
3.3V~3.6V DC
工作模式选择
使能芯片发射或接收
芯片上电
(未使用)
载波检测
地址匹配
接收或发射数据完成
SPI 输出
SPI 输入
SPI 时钟
SPI 使能
接地
3.2 系统架构
系统框图如图 2 所示,包括发送端和接收端两部分。
射频模块与单片机连接如图 3 所示
图 2 系统框图
单片机的 P0 口用于数码管的显示,P3 口用于矩阵键盘。
图 3 射频模块与单片机连接图
4. 软件设计
4.1 工作模式
nRF905 有两种活动模式和两种节电模式。活动模式为 ShockBurst TX 和
ShockBurst RX 模式,两种节电模式分别为 Stanby/SPI 编程模式、掉电/SPI 编
程模式,通过 PWR_UP、TRX_CE、TX_EN 来选择相应的工作模式,具体的配置方式
如表 2 所示
表 2 nRF905 工作模式设置
PWR_UP
0
TRX_CE
X
TX_EN
X
工作模式
掉电和 SPI 编程
1
1
1
0
1
1
4.2 发送流程
X
0
1
Standby 和 SPI 编程
ShockBurst RX
ShockBurst TX
在发送端的矩阵键盘上输入一段不超过 6 位的数据,输入完成之后按下键盘
上设定的发送键,系统进入发送程序。发送端时序图如图 4,发送流程图如图 5
图 4 发送时序图
4.3 接收流程
图 5 发送流程图
首先对系统进行初始化后,配置射频寄存器,其中的配置内容与发送端相一
致。设置工作模式为接收模式,一段时间之后,nRF905 不断检测,等待接收数
据。当发现同一频率的载波后,载波检测引脚 CD 被置高。当接收到一个相匹配
的地址后,地址匹配引脚 AM 被置高,当一个正确的数据包接收完毕后,数据准
备好引脚 DR 被置高,通知单片机读出接收到的数据,同时将工作模式设置为
Standby 模式。接收端的时序图如图 6
根据时序图和系统功能要求,接收端的程序流程图如图 7 所示。
图 6 接收时序图
图 7 接收流程图
5. 结果分析
5.1 传输距离
自由空间下电磁波的传播损耗可用下式表示,
Los
44.32
lg20
lg20
d
[1]
f
(1)
式中,Los 是传播损耗,单位为 dB;d 为传播距离,单位为 km;f 为电磁波
发射频率,单位为 MHz。
本系统中所使用的传输频段为 433MHz,发射功率为+10dBm,接收灵敏度为
-100dBm,根据上式即可求得的最大传输距离约为 17km。若假设传输路线上大气
和遮挡物照成的损耗为 25dB,则所得到的最大传输距离约为 1km,这是系统最远
传输距离的理论值。
5.2 传输时间
[1]
(2)
address
payload
CRC
t
startup
preamble
和
N
CRC
N
N
/)
BR
(
N
分别为启动传输模式所
分别为地址、有效数据
和
需时间和前导码传输时
间;
address
payload
是波特率。
t
t
和
preamble
N
、
TOA
t
startup
N
BR
射频模块从节电模式到活动模式的转换时间为 650μs、前导码为 10bit、地址
长度为 32bit、有效数据长度为 64bit、CRC 校验长度为 8bit。数据传输速率为
100kbps,由于采用的是曼彻斯特编码方式,因此波特率为 50kbps。由此算得的
数据传输时间为 2930μs。
校验的长度;
CRC
6. 结论
此设计可广泛应用于无线控制系统中,不同的功能按键可以表示为向接收端
发送不同的数据信息,接收端根据接收到的数据信息做相应的处理。如无线电子
计分牌,无线温度采集系统等。
在无线网络的应用中,常用轮询方式进行通信。在这种通信方式中,nRF905
模块被分为两类,一类是与上位机相连的协调器节点,另一类是普通节点,连接
终端设备。通信时,由协调器节点依次向普通节点发送通信请求信号,如果收到
普通节点反馈回的应答信号则进行协调器与普通节点间的通信。[5]
参考文献
[1] 谭晖. Nordic 中短距离无线应用入门与实践. 北京: 北京航空航天大学出版社,
2009. 12, 2-3, 74.
[2] 马金祥, 何一鸣. 基于 nRF905 模块的 AT89S 单片机无线收发系统设计. 通信
技术, 2009, 02: 36-38.
[3] 李文仲, 段朝玉 等. Zigbee2006 无线网络与无线定位实战. 北京: 北京航空
航天大学出版社, 2008. 1.
[4] 金纯, 罗祖秋, 罗凤 等. Zigbee 技术基础及案例分析. 北京: 国防工业出版社,
2008. 1.
[5] 杨海粟, 吴长奇, 刘立芳. 基于 nRF905 的无线传感器网络节点的设计与实现.
微型机与应用, 2010, 29(15): 56.