单片机无线传输系统的设计及nRF905无线收发模块的实用

合集下载

基于nRF905的无线串行通信系统设计

基于nRF905的无线串行通信系统设计
机 通 过 R 2 2 口传 递 给接 收 端 P 机 , 而 实 现 两 台P 机 之 间 S3 串 C 从 C
不 断重 发 , 到 直
TX R
_
C被置低, E
当 T X C 被 置 R—E 低, R 9 5 n F 0 完
的无线串口通信 。 系统 采用半双 工的通信模 式, 实现两台P 机 c


[ FP e F n a n n P M r n 0 s i er . o e i g 1 .er z o t a d a i E p n I i aM d l n
t Wi he rel ess pr paga o o ti n Cha nne1 A S umul i n Wi h at o t
6 — 6 3 6 .
( 上接 第1 页) 9
射点多普 勒效应 明显。 于滤 波法 的C S 2 7 基 O T 0 宽带信道 模型能
10 2 00


够较好 的描述C S 2 7 O T 0这一宽带信道模型。
1 0 00 0



[ 考 文献 ] 参
; ≯ I≮ 一l— i _ I 0 0 l l l 、 :
图如 图2 示 。 所 管 熄 灭 。 在 输 入 数 据 长 度 大 于或 等 于 3 字 节 时 发 送 , 色 二 若 2 绿
n F 0 接 收 数据 实现 过 程如 下: R 9 5 入接 收模 式 极管将_直亮 , R 95 nF 0进 提示发送数 据溢出。 R 9 5 n F 0 的数 据寄存 器最多 6 0 s n F 0 开始监听无线电信号; R 9 5 5 u 后, R 9 5 当n F 0 检测到接收频 能存储3 字节 的数 据, 2 当一次性发送 的数据超 过此值时, 据 数 率 的载 波时c 变 为高 电平, D 当接 收到有效地 址时, M 置高; A被 传送将不完整。 当接收的数据包C C R 校验正确 , R 9 5 n F 0 将除去报 头, 址及C C 42 收发 数据 调试 地 R . P机 1 c 发送长度小于3 字节的数据时, c 相连的电路 2 与P 机1

基于MSP430单片机和nRF905的无线通信

基于MSP430单片机和nRF905的无线通信

基于MSP430单片机和nRF905的无线通信系统引言随着信息技术的不断发展,人们对通信技术的需求越来越强,摆脱有线网络的束缚实现无线通信始终是大家关心的问题,当今无线通信研究越来越热,应用非常广泛,使人与人之间的通信更加方便快捷,更具有市场发展前景。

本文以Nordic公司的nRF905作为通讯的核心,设计了无线通信系统。

系统设计无线通信系统,由两个部分组成:发送终端,接收终端。

数据的发送和接收显示是借助于串口来实现的,通过PC机串口给发送终端送数据,然后发送终端通过nRF905把数据发送出去;接收终端通过nRF905接收数据,然后把接收到的数据通过串口传给PC机。

系统框图如图1所示。

图1无线系统的硬软件设计系统的硬件设计本系统采用的射频收发器为NordicVLSI公司的nRF905,工作电压为1.9~3.6V,工作于433/868/915MHz三个ISM频段,频段之间的转换时间小于650us。

nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器。

高抗扰GFSK调制,数据速率为50kbps,独特的载波监测输出,地址匹配输出,数据就绪输出。

ShockBurstTM工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。

此外,其功耗非常低,以-10dBm的输出功率发射时电流只有11 mA,工作于接收模式时的电流为12.5mA,内建空闲模式与关机模式,易于实现节能。

nR F905的硬件连接电路图如图2所示。

采用的微处理器为TI公司的MSP430F149,它是一种超低功耗的混合信号控制器,具有1 6位RISC结构,CPU中的16个寄存器和常数产生器使MSP430能达到最高的代码效率。

单片机通过采用不同的时钟源工作可以使器件满足不同功耗要求,适当选择时钟源,可以让器件的功耗达到最小。

外设主要有存储器、时钟模块、定时器、USART和A/D转换器等。

51单片机的nRF905无线发射接收程序

51单片机的nRF905无线发射接收程序

基于51单片机的nRF905无线发射接收程序无线发射程序:#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int//*******************定义命令字**********************#define WC 0x00 // Write configuration register command#define RC 0x10 // Read configuration register command#define WTP 0x20 // Write TX Payload command#define RTP 0x21 // Read TX Payload command#define WTA 0x22 // Write TX Address command#define RTA 0x23//*******************管脚配置*********sbit MOSI=P1^6;sbit CSN=P1^7;sbit SCK=P1^0;sbit MISO=P1^1;sbit TRX_CE=P1^2;sbit TXEN=P1^3;sbit PWR=P1^4;sbit DR=P1^5;uchar Txbuf[4]={0x03,0x04,0x05,0x06};uchar Rfconfig[10]={0x4c,0x0e,0x44,0x04,0x04,0xe7,0xe7,0xe7,0xe7,0xde};//------------------------------------------------void delay(uint x){uint i;for(i=0;i<x;i++){_nop_();}}//------------------------------------------------void Spiwrite(uchar dat){uchar i=8;while(i--){delay(10);SCK=0;MOSI=(bit)(dat&0x80);dat<<=1;delay(10);SCK=1;delay(10);SCK=0;}SCK=0;}//------------------------------------------------void Txpacket(void){TXEN=1;TRX_CE=1;CSN=0;Spiwrite(0x22);Spiwrite(0xe7);Spiwrite(0xe7);Spiwrite(0xe7);Spiwrite(0xe7);CSN=1;_nop_();_nop_();CSN=0;Spiwrite(0x20);Spiwrite(Txbuf[0]);Spiwrite(Txbuf[1]);Spiwrite(Txbuf[2]);Spiwrite(Txbuf[3]);CSN=1;_nop_();_nop_();delay(50);while(!DR);TRX_CE=0;}//--------------------------------------------------void ini_system(void){uchar i;CSN=1;SCK=0;PWR=1; // PWR_UP | TRX_CE |TXEN | M O D E TRX_CE=0; // 1 | 0 | 0 | SPI ProgrammingTXEN=0;_nop_();CSN=0;Spiwrite(0x00);for(i=0;i<10;i++){Spiwrite(Rfconfig[i]);}CSN=1;}//-------------------------------------------------void setmode(){PWR=1; // PWR_UP TRX_CE TXEN MODE TRX_CE=1; // 1 1 1 SHOCKBURST TX TXEN=1;delay(1000); //time must be >=650us}//-----------------------------------------------------void main(){ini_system();while(1){setmode();Txpacket();P2=~P2;}}无线接收程序:#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define WC 0x00#define RC 0x10#define WTP 0x20#define RTP 0x21#define WTA 0x22#define RTA 0x23#define RRP 0x24sbit TXEN=P1^7;sbit TRX_CE=P3^0;sbit PWR=P1^6;sbit MISO=P1^0;sbit MOSI=P1^3;sbit SCK=P1^1;sbit CSN=P1^2;sbit DR=P1^4;sbit CD=P1^5;sbit we=P3^7;sbit de=P3^6;unsigned int Rxbuf[4]={0};unsigned char Rfconfig[10]={0x4c,0x0e,0x44,0x04,0x04,0xe7,0xe7,0xe7,0xe7,0xde}; void display(uint e,uint f,uint g,uint h);void delay(uint x){uint i;for(i=0;i<x;i++){_nop_();}}void Dela(uint a){uint b,c;for(b=a;b>0;b--)for(c=110;c>0;c--);}void Spiwrite(uchar dat){uchar i=8;while(i--){delay(10);SCK=0;MOSI=(bit)(dat&0x80);dat<<=1;delay(10);SCK=1;delay(10);SCK=0;}SCK=0;}unsigned char Spiread(void) {uchar i=8;uchar ddat;while(i--){ddat<<=1;SCK=0;_nop_();_nop_();ddat|=MISO;SCK=1;_nop_();_nop_();}SCK=0;return ddat;}void Rxpacket(void){unsigned char j=0;TRX_CE=0;PWR=1;CSN=0;_nop_();Spiwrite(RRP);for(j=0;j<4;j++){Rxbuf[j]=Spiread();}CSN=1;TRX_CE=1;while(!DR);}void ini_system(void){uchar i;CSN=1;SCK=0;PWR=1; // PWR_UP | TRX_CE |TXEN | M O D ETRX_CE=0; // 1 | 0 | 0 | SPI ProgrammingTXEN=0;_nop_();CSN=0;_nop_();Spiwrite(WC);for(i=0;i<10;i++){Spiwrite(Rfconfig[i]);}CSN=1;}void setmode(){PWR=1; // PWR_UP TRX_CE TXEN MODE TRX_CE=1; // 1 1 0 SHOCKBURST RX TXEN=0;delay(300); //time must be >=650us}void display(uint e,uint f,uint g,uint h){uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};we=1;P0=0xfe;we=0;de=1;P0=table[e];de=0;Dela(5);we=1;P0=0xfd;we=0;de=1;P0=table[f];de=0;Dela(5);we=1;P0=0xfb;we=0;de=1;P0=table[g];de=0;Dela(5);we=1;P0=0xf7;we=0;de=1;P0=table[h];de=0;Dela(5);}void main(){ini_system();setmode();while(1){Rxpacket();P2=~P2;display(Rxbuf[0],Rxbuf[1],Rxbuf[2],Rxbuf[3]);}}。

nRF905无线模块使用手册

nRF905无线模块使用手册

4
NBC905_V2.0 使用手册
9 10 11 12 13 MISO MOSI SPI输入 SPI时钟 SPI使能,低电平有效 地
14 GND 地 该接口可以直接和 3.3V的MCU 相连接。对于5V的MCU,为防止I/O口的输出灌电流过大烧毁 模块,该模块和 MCU 连接需作如下处理,即在IO与NRF905接口间加1个限流电阻来减小灌电流。
8
NBC905_V2.0 使用手册
SPI 读操作
SPI 写操作 1) 、 SPI 接口配置 SPI 接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存 器 5 个寄存器组成。 状态寄存器包含数据准备好引脚状态信息和地址匹配引脚状态信息; 射频配置 寄存器包含收发器配置信息, 如频率和输出功能等; 发送地址寄存器包含接收机的地址和数据的字 节数;发送数据寄存器包含待发送的数据包的信息,如字节数等;接收数据寄存器包含要接收的数 据的字节数等信息。
7
NBC905_V2.0 使用手册
D. 当接收到一个相匹配的地址,地址匹配引脚AM被置高; E. 当一个正确的数据包接收完毕,nRF905自动移去字头、地址和CRC校验位,然后把数据准备 好引脚DR置高 F. 微控制器把TRX_CE置低,nRF905进入空闲模式; G. 微控制器通过SPI口,以一定的速率把数据移到微控制器内; H. 当所有的数据接收完毕,nRF905把数据准备好引脚DR和地址匹配引脚AM置低; I. nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。 当正在接收一个数据包时,TRX_CE或TX_EN引脚的状态发生改变,nRF905立即把其工作模式改 变,数据包则丢失。当微处理器接到地址匹配引脚的信号之后,其就知道nRF905正在接收数据包, 其可以决定是让nRF905继续接收该数据包还是进入另一个工作模式。 通过上面的介绍,对 nRF905 的接收流程有了一定的了解。在应用过程中一定要注意在进入接 收模式之前,nRF905 需要 650ns 的反应时间,这是不可忽略的。

基于nRF905无线收发芯片的串口数据传输系统研究与设计

基于nRF905无线收发芯片的串口数据传输系统研究与设计
1 R 器 配 置 的 S I接 1决 定 .由 于 n F 0 工 作 于 Sok B rs T 模 式 。 接 收 发 送 地 址 宽 度 为 4 字 节 , 6 位 C C 效 验 。 P 3 R 95 hc2 u t M
因此使 用低 速 的微 控 制器 也能 得 到很 高 的射 频 数据 发 射速 率 。 n F 0 在 使 用 中 , 据 不 同 需 要 , 电 路 图 不 尽 相 同 。 可 在 电 R95 根 其
在 传 , 冗 余 码 校 验 ),使 用 S I接 口 与 微 控 制 器 通 信 ,配 置 方 便 .与 射 频 数 定 着 无 线 上 的 作 用 距 离 , 这 里 配 置 为 最 大 增 益 , 输 距 离 最 长 ) P
外 6 z接 据 包 有 关 的 高 速 信 号 处 理 都 在 n F 0 片 内 进 行 . 据 速 率 由 微 控 制 不 需 要 自动 重 发 , 接 晶 振 为 1 MH , 收 发 送 数 据 宽 度 为 8 字 节 , R g5 数
2 .系 统 设 计
线 上 接 收 到 的 数 据 读 回 。 完 成 接 收 过 程 。 在 接 收 数 据 时 . 先 将 n F 0 配 置 为 接 收 模 式 :X_ N = 0 R _ E 1 R g5 T E ;T X C = ;如 D 引 脚 被 拉 R
式 5 1系 列 单 片 机 具 有 市 场 广 泛 的 支 持 和 大 量 的 设 计 资 料 , 同 高 ,则 表 示 有 正 确 的 数 据 包被 接收 ,接 收 到 的数 据包 被 全 部读 出 时 是 应 用 最 广 泛 的 单 片 机 之 一 。T 9 5 A 8 S 2是 新 型 5 l系 列 单 片 机 。 且 后 , R 和 A 信 号 被 复 位 为 低 , 等 待 数 据 包 读 完 。 并 D M 故 支 持 IP 在 线 系 统 编 程 ) 以 上 介 绍 的 n F 0 S( 。由 R 9 5芯 片 可 知 , 择 此 款 选 单片 机与 其 组合 设计 , 有 稳 定可 靠 , 单 易行 的优势 。 具 简 选 也 用 普 通 IO 口 , 样 设 计 便 于 控 制 对 数 据 的 处 理 。 / 这 已经 是非 常成 熟 的方 案 。 收 发 模 块 设 计 一 样 . 是 需 要 配 置 无 线 芯 片 的 收 发 模 式 , 个 只 一

基于nRF905无线模块的体温测量系统设计

基于nRF905无线模块的体温测量系统设计

T XE N、 P WR 组 成 ; S P I接 口 由 S C K、 MI S O、 MO S I 块 工 作 。本 设 计 采 用 电 压 调 节 器 1 M1 1 1 7将 + 5 V
以及 C S N组成 ; 状态输 出接 口由 C D ( 载波检测输 直 流 电 源 转 换 为 + 3 . 3 V直 流 电源 , 如 图 8所 示 。 出) 、 A M( 地址 匹配输 出 ) 、 D R( 数据 就绪 输 出 ) 组 成 。1 1 R 0 5无线收发模块 与 A T 8 9 S 5 2 单 片机 的
R F 9 0 5芯 片 开 发 而成 ( RA M) , 3 2个 外 部双 向输 入/ 输 出( 的 ) 口, 一个 6 司 推 出 的单 片 射 频 收 发 器 n 具有单 片 、 低电压 、 低功耗 、 无需 外部 S AW 滤 向量 2级 中 断结构 , 3个 1 6位 可编 程定 时 计 数 的 ,
接 口电路 如 图 5所 示 .
1 ,


3 ●




1 l
1 . 1 .
l ,
图8 + 3 . 3 V 电 源 电路 原 理 图
图5
F 9 0 5无 线 收发 模 块接 口电路 原 理 图
三、 系统 软 件 设 计
( 一) 发送部分软件设计
1 5 9
常范围则报警 。其中包括 n R F 2 4 L 0 1 模块和 L C D1 6 0 2液晶显示器的初始化 。接 收部分流程
图如图 l 0所示 。
基于 n R F 9 o 5无 线 收 发 模 块 为 核 心 的无 线 体 温 测
A T 8 9 S 5 2 单片机接 口电路 如图 3 所示 。

无线传输系统分析方案

无线传输系统分析方案

无线数据传输系统设计报告1.系统目的、用途、功能该系统目的是运用两个无线收发模块实现向计算机传输信息的功能。

在该系统中,用一块单片机来控制信号发送模块,另一块单片机来控制信号接收模块并将信息通过USART口传输给计算机。

该系统可方便的实现无线通信,功能扩展之后还可在计算机之间实现无线通信。

在该系统中,用两个NewMsg RF905C 模块实现无线通信,然后通过USART口将信息在计算机上显示。

2.软件设计思想、流程图模块采用了NRF2401芯片进行无线传输,一次传输的数据包的大小总共为28字节,由于加入了包的校验机制,占用了第1,2字节,故只有后26字节可用,其格式为:1字节的“标识字节”+25字节的“数据段”,标志字节用来表示数据段中的数据的有效数,数据段用来存放用户的数据。

注意:标识字节一定要正确表示后25字节数据的有效字节,否则在PC上的应用程序就不能正确标识出有效数据。

以下发送的原理示意图:以下是接收的示意图:3.详细软件功能以下是主机完成一次发送的步骤:(1)在主机发送一个包前,先在“序号字节”标识好该次包顺序n,再在“标志字节”中写入0X22标志DATA包,最后在后26字节中打包好数据,最终发送出去,等待Twait时间接收从机的ACK包(2)若在Twait时间内等待到了ACK包,并校验ACK包中的“标志字节”是0X11和“标志字节”是步骤<1)中写入的顺序号n,则说明从机已经正确接收到了本次数据;若在Twait时间内没接收到ACK包,则说明可能是从机没收到本次数据包或是ACK包丢失,则重新进行步骤<1),总共尝试10次。

(3)完成一次发送后,把“标志字节”自加1,为下一个包做准备以下是从机完成一次接收的步骤:(1)从机接收到一个数据包,检验“标志字节”中是0X22,说明是DATA包,则接收,否则丢弃该包。

(2)从机检验“序号字节”,并以该“序号字节”的值作为即将发送的ACK包的“序号字节”的值(3)从机制作ACK包,并发送。

基于nRF905的无线温湿度检测与传输系统设计

基于nRF905的无线温湿度检测与传输系统设计

外 , 要注 意 S I 口只 有在 掉 电和 Sa d y模式 需 P接 t b n 下 处 于工作 状态 。
只需 对程 序稍 加 修 改 便 可 实 现 系 统 的灵 活扩 展 。 显 示 部分 由性 价 比高 、 耗 低 的 L D10 功 C 6 2液 晶 显 示 模块 组成 , 模块 的 数据接 口与 A 8 S 2的 P 该 T95 1 口相 连接 , 中 P . P . 其 12、 1 3分 别 用 于 控 制 液 晶屏 的读 写操 作 , 温 湿 度 数 据 通 过 单 片 机 P 口的 而 o
S T 1的 D T H 1 A A线 接 到 A 8 S 2的 P . T95 1 0口, C SK 时钟线 连 接 到 P. 1 1口 , 时 在 D T 线 上 加 同 AA
P 2 2.
1 _
MOS I


SI | P接 J
P 3 2.
—'
Mf S0
——
P 2 3.
P. 0 0~P . 0 7分 另 传 递 至 C 6 2的 D U 0 D10 L O~D 口 7
并 实 时显示 在 液 晶屏 幕 上 , 了解 现 场 的 温湿 为 度 情况 提供 了直观 的观 测手段 。
专 用转 换 芯 片 , 支 持 R 2 2 串行 接 口 , 全 兼 其 S3 完 容 UB. S 1 1规 范 , 有 双 向数 据 流 缓 冲器 和 片 上 具 U B 收 发 器 , 输 速 率 超 过 1 / … 。 由 于 S 传 s Mb P 20 L 3 3的输 入输 出 电压要 求 T L C S电平 , T / MO 因
构成 。上 位 机 和 下位 机 之 间通 过 n 9 5无 线 收 发 模 块 和 P 2 0 RF 0 L 3 3转 换 芯 片 完 成 数 据 的 无 线 传 输 以 及
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机无线传输系统的设计及nRF905无线收发模块的实用
1 引言
随着计算机、通信和无线技术的逐步融合,在传统的有线通信的基础上,无线通信技术应运而生,他具有快捷、方便、可移动和安全等优势,所以广泛应用到遥控玩具、汽车电子、环境监测和电气自动化等。

在一些特殊应用场合中,单片机与上位机之间通信不再采用有线的数据传输,例如采用有线的串、并行总线、I2C和CAN总线等,而是需要无线数据传输,本文介绍了基于nRF905无线收发模块的实用单片机无线传输系统的设计。

2 无线收发模块nRF905
nRF905是挪威Nordic VLSI公司推出的单片射频收发器,工作电压为1.9~3.6 V,32引脚QFN封装(5×5 mm),工作于433/868/915 MHz三个ISM(工业、科学和医学)频道,频道之间的转换时间小于650μs。

nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器,ShockBurstTM工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。

此外,其功耗非常低,以-10 dBm的输出功率发射时电流只有11 mA,工作于接收模式时的电流为12.5 mA,内建空闲模式与关机模式,易于实现节能。

nRF905适用于无线数据通信、无线报警及安全系统、无线*、无线监测、家庭自动化和玩具等诸多领域。

3 芯片结构及工作模式
nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器、功率放大器等模块,曼彻斯特编码/解码由片内硬件完成,无需用户对数据进行曼彻斯特编码,因此使用非常方便。

nRF905有两种工作模式和两种节能模式。

两种工作模式分别是ShockBurstTM接收模式和ShockBurstTM发送模式,两种节能模式分别是关机模式和空闲模式。

nRF905的工作模式由TRX_CE,TX_EN和PWR_UP三个引脚决定,详见表1。

相关文档
最新文档