NRF905无线模块程序
- 格式:doc
- 大小:35.00 KB
- 文档页数:7
Nrf905无线模块使用教程nRF905是挪威NordicVLsl公司推出的单片射频收发器,工作电压为1.9一3.6V,32引脚QFN封装,工作于433/868/gl5MHz三个IsM(工业、科学和医学)频道,频道之间的转换时间小于650us。
nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,使用SPI接口与微控制器通信,配置非常方便。
其主要特点如下:●工作电源电压范围:1.9一3.6V;●数据包自动重发功能;●输出功率可调至IOdBm;●自动产生CRC和前导码;●低工作电流(TX),在输出功率为一10dBm时典型值为llmA;●低工作电流(RX),典型值为12.smA;的只有10个引脚。
(1)模式控制引脚由PWR、TXEN、TRX_CE三个引脚来控制NRF905芯片的工作模式各种模式的控制如下表下面这个函数将nrf905设置成发射模式,模式转换需要大于650usvoid SetTxMode(void){TX_EN=1;TRX_CE=0;Delay(1); // delay for mode change(>=650us)}下面这个函数将nrf905设置成接收模式void SetRxMode(void){TX_EN=0;TRX_CE=1;Delay(1); //delay for mode change(>=650us)}(2)SPI接口SPI接口由SCK、MISO、MOSI以及CSN这四个引脚组成。
在配置模式下单片机通过SPI接口配置无线模块的工作参数;在发射/接收模式下单片机SPI接口发送和接收数据。
:.。
NRF905程序参考教程。
本资料主要是将程序中各部分子程序的功能与NRF905的手册相关联,使得各位同仁在每个子程序为什么这么写都在手册中找到具体的体现,特别是寄存器配置。
内涵完整参考程序,是100%可用程序。
硬件的连接方法在参考程序之后,并介绍原理。
本人最后只是为了提供给大家一个入门的资料或是引子罢了,至于如何应用的巧妙那是后期编程巧妙的结果,目前只是给刚进门的人士一个可以快速理解和掌握的浅显易懂的教程罢了。
本人疏忽之处还请见谅。
按照惯例先展示作品抛砖引玉:四路AD采集+温度采集彩屏显示信息数据GSM手机电话最近做的,音频功放四路电机控制大功率led控制,不解释。
以前做的,舵机和摄像头,不解释。
更早先的,VGA显示,不解释。
已发送为例子。
1.通过spi接口把寄存器相应的值写到905中2.把要发的数据写到905中3.把状态设置成发送4.数据被发出那么操作905就主要是前三步的问题,那么请带个这前三个问题深入理解下面的相关解释了。
无线通信模块的三个要素:Nrf905模式的配置Nrf905通过寄存器配置Nrf905需要spi通信配置寄存器先看模式配置:程序加解释根据这个图表,我们发觉有四种模式。
捡重点的说实现收发功能有两种模式。
这两种模式在程序段中的实现是:设置成接受模式,程序中没写PWR_UP,如果他是低电平就变成断电,所以个程序段默认PWR_UP为高电平。
void SetRxMode(void){TXEN=0;TRX_CE=1;Delay(1); // delay for mode change(>=650us)}设置发送模式,这里会有疑问,在于 TRX_CE=0;。
这里给出的解释是,如果我们直接写TRX_CE=1;这样模块立即将其内部所写好的数据发送出去。
而对于编程的人员来说编出的程序五花八门,就比如说这条,改程序员的意图并不想让设置发送模式时,数据就被立即发出,所以写了T RX_CE=0;。
基于nRF905的无线串口通信系统王萍1,2,陈长青1,龚睿1,2,康晓娜1,2(1.中科院长春光学精密机械与物理研究所吉林长春1300332.中国科学院研究生院北京100039)中图分类号:TP273+.5 文献标识码:A 基金资助:中科院二期创新项目(C04708Z)摘要:本文介绍了一种硬件设计简单、数据传输可靠的无线串口通信系统的设计与实现。
文中从基于nRF905芯片的无线收发模块的设计开发、系统的硬件结构、数据包处理格式、无线串口通信的软件设计等方面介绍了该系统的实验开发及实现过程。
该系统以nRF905无线收发模块和AT89C52单片机为核心,具有低成本、易扩展、操作简单等优点,可广泛应用于远程控制、无线数据采集等多个领域。
关键词:无线;串口通信;nRF905A Wireless Series Port Communicate System Based on nRF905W ANG Ping1,2,CHEN Chang-qing1,GONG Rui1,2,KANG Xiao-na1,2 (1.Changchun Institute of Optics, Fine Mechanics and Physics, Chinese Academy ofSciences,Changchun 130033, China2. Graduate School of the Chinese Academy of Sciences, Beijing 100039, China) Abstract: The paper introduces the design and implementation of a wieldy and stable wireless series port system. It also introduces the development and realizing process of the experiments in the aspects of the design of wireless transfer-receive module based on nRF905, the hardware configuration of system, the disposal format of data package, the software design of communication with wireless series port and so on. This system combines nRF905 wireless transfer-receive module with AT89C52, i t’s provided with very convenient operation, low-cost and easy to extendity,thus it is able to be found to use widely in many fields such as long-range control and wireless data collection.Key words: wireless; series port communicate; nRF9051 引言网络和通信技术的高速发展,使人们对无线通信的需求越来越高。
目录中英文摘要 (II)引言 (1)1 系统设计 (1)1.1 设计指标 (1)1.1.1 设计任务 (1)1.1.2 设计思路 (1)1.2 方案设计与论证 (2)1.2.1 温度传感器方案论证 (2)1.2.2 显示模块方案论证 (2)1.2.3 通信标准及收发器方案论证 (2)2 单元电路设计 (2)2.1 电源模块 (3)2.1.1 电源模块原理图 (3)2.1.2 工作原理 (3)2.2.1 温度采集原理图 (3)2.2.2 温度采集工作原理 (3)2.3 无线通信模块 (4)2.3.1 无线通信模块原理图 (4)2.3.2 无线通信模块工作原理 (4)2.4 单片机与PC机通信模块 (5)2.4.1单片机与PC机通信模块原理图 (5)2.4.2单片机与PC机通信模块原理 (5)2.4.3 VB上位机 (5)3 主模块程序流程图 (6)3.1 主程序流程图 (6)3.1.1主机主程序流程图 (6)3.1.1从机主程序流程图 (7)3.2 无线收发模块流程图 (8)3.2.1无线模块发射流程图 (8)3.2.2无线模块接收流程图 (9)3.3 温度采集流程图 (10)3.2.1 DS18B20读操作程序流程图 (10)3.2.1 DS18B20写操作程序流程图 (11)4 系统测试 (12)4.1 系统性能 (12)4.2 测试结果 (13)5 结论 (13)6 改进意见 (13)7 参考文献 (13)致谢 (14)附录 (i)摘要该设计是基于NRF905无线收发模块的温度采集系统。
环境温度通过数字温度传感器DS18B20测得,从机将采集的温度信息处理后通过无线模块传送给主机,之后主机通过串口再将温度信息发送给PC机,并通过上位机显示,从而使系统起到远距离实时监测环境温度的作用。
本文较为详细地介绍了温度的采集,NRF905无线模块的使用方法以及单片机与PC机之间通过RS232串行标准进行通信的基本原理。
一、模块介绍(1) 433Mhz 开放ISM 频段免许可证使用(2) 最高工作速率50kbps,高效GFSK 调制,抗干扰能力强,特别适合工业控制场合(3) 125 频道,满足多点通信和跳频通信需要(4) 内置硬件CRC 检错和点对多点通信地址控制(5) 低功耗1.9 - 3.6V 工作,待机模式下状态仅为2.5uA(6) 收发模式切换时间< 650us(7) 模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便(8) TX Mode: 在+10dBm 情况下,电流为30mA; RX Mode: 12.2mA(9) 标准DIP 间距接口,便于嵌入式应用二、接口电路管脚说明说明:(1) VCC 脚接电压范围为3.3V~3.6V 之间,不能在这个区间之外,超过3.6V 将会烧毁模块。
推荐电压3.3V 左右。
(2) 除电源VCC 和接地端,其余脚都可以直接和普通的5V 单片机IO 口直接相连,无需电平转换。
当然对3V 左右的单片机更加适用了。
(3) 硬件上面没有SPI 的单片机也可以控制本模块,用普通单片机IO 口模拟SPI 不需要单片机SPI 模块介入,只需添加代码模拟SPI 时序即可。
(4) 13 脚、14 脚为接地脚,需要和母板的逻辑地连接起来(5) 排针间距为100mil,标准DIP 插针,如果需要其他封装接口,比如密脚插针,或者其他形式的接口,可以联系我们定做。
(6) 与51 系列单片机P0 口连接时候,需要加10K 的上拉电阻,与其余口连接不需要。
(7) 其他系列的单片机,如果是5V 的,请参考该系列单片机IO 口输出电流大小,如果超过10mA,需要串联电阻分压,否则容易烧毁模块! 如果是3.3V 的,可以直接和RF905 模块的IO 口线连接。
三、模块引脚和电气参数说明AY-RF905 模块使用Nordic 公司的nRF905 芯片开发而成。
NRF905无线收发芯片原理及设计实现介绍了无线收发芯片nRF905的功能,及其与51单片机的接口设计。
单片机可以很容易地通过SPI接口访问nRF905,功耗低。
多频道多频段,可以很方便地实现点对点及点对多点无线通信。
标签:无线收发器;SPI接口;单片机1 引言nRF905是Nordic VLSI公司推出的一款无线收发芯片。
32脚封装(32L QFN 5 x 5mm),供电电压为1.9~3.6V,工作于433/868/915MHz三个ISM(工业、科学和医学)频道。
可自动处理字头和CRC(循环冗余码校验)。
微处理器可以通过SPI接口及相关指令访问nRF905的寄存器。
功耗低,高抗干扰GFSK调制,可跳频,载波检测输出,地址匹配输出以及数据就绪输出。
nRF905适用于遥感、遥测、无线抄表、工业数据采集以及家庭自动化等领域。
2 nRF905简介2.1 芯片结构MOSI/MISO是发射/接收数据的通道;TRX_CE,TX_EN是收/发通道的控制端;PWR_UP是工作模式控制端;CSN、SCK为串行接口控制端;CD是接收模式下载波监测信号输出端;AM是接收到正确的数据包地址后芯片指示信号的输出端;DR是发射完一个数据包后芯片指示信号的输出端;uPCLK是芯片提供的一个可设置的时钟源信号输出端;ANT1和ANT2用于天线部分;XC1和XC2外接电路构成了晶体振荡电路。
nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器、功率放大器、通信协议控制等模块,曼彻斯特编码/解码由片内硬件完成,无需用户对数据进行曼彻斯特编码,因此使用非常方便。
可自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。
由于nRF905采用抗干扰能力强的高斯频移键控(GFSK)调制方式,抗干扰能力强,能很好的减少噪声环境对系统性能的干扰。
2.2 工作模式nRF905有两种工作模式和两种节能模式。
毕业设计——无线智能报站系统(NRF905及ISD4004语音芯毕业设计说明书无线智能报站系统(NRF905及ISD4004语音芯片的应用)学生姓名专业名称指导教师无线智能报站器Radiofrequency bus stop reporter摘要这篇文章介绍了AT89C51单片机、ISD4004语音芯片等一些器件,并说明了它们的原理及功能。
文章中给出了采用ISD4004语音芯片的一种公交车报站系统的应用电路,重点介绍其接口原理和实现方法。
文章分析了使用单片机实现的报站系统的意义。
在整个设计过程中,需要充分理解MCS-51单片机实现的报站系Protel99se,绘制出系统的原理图。
通统的组成原理,并且要求使用绘图软件过分析其工作原理,建立了程序流程。
文章中使用了Visio绘制了流程图,并且采用了Ultra Edit和Keil等软件编写出了部分系统程序。
本文最后还介绍了如何使用Insight仿真器,并通过使用这种仿真器对所编写的系统程序进行了调试。
本文针对ISD4004语音芯片和AT89C51的特点设计的这种语音报站系统涵盖了许多智能化、人性化及自动化的因素,具备信息管理的功能,而且可以做到循环录放,从而节省了存储空间,降低了成本,具有较高的使用价值。
关键词:AT89C51单片机;ISD4004语音芯片;nRF905模块ABSTRACTThis article introduces AT89C51 MCU,ISD4004 and other devices, and on theirprinciples and functions. The paper gives an application cicurit of bus station system employing ISD4004, emphasizes mainly on interface principle and method.The article analyzes the meaning of the programme. Throughout the design process, the need to fully understand the integral theory of the system .And requires the use of mapping softwareProtel99se,mapping out the tenets of the system.Then works through the analysis of its principles, and establishes procedures.The article tells us how to use Visio mapping the flow and use of software such as Ultra Edit and Keil prepareing some system procedures.In conclusion, the article also describes how to use Insight simulation devices, and through the devices to prepare a systematic procedure debugging.The design of bus station system based on AT89C51 MCU and ISD4004 covers many factors such as intelligent, and the humanization of automated.The system have information management functions, and it also can cycle recording.So that it is saving storage space and reducing the cost of a higher value.Key words:AT89C51MCU;ISD4004sound chip;nRF905 module目录第1章系统设计背景 ....................................................... 1 第2章系统工作原理 ....................................................... 2 第3章系统硬件设计 .......................................................33.1系统框图 (3)3.2 ISM射频收发系统 (3)3.2.1 ISM射频收发系统的射频模块部分 .................................33.2.2 ISM射频系统的液晶模块 .........................................43.2.3 ISM射频模块的中央处理器部分 ...................................53.3语音报站系统 (9)3.3.1 ISD4004语音芯片的主要性能 .....................................93.3.2 ISD4004语音芯片的录放部分 ....................................153.3.3语音功放电路 ..................................................163.4电源电路部分 .....................................................183.5 MAX813复位电路 (20)AT89C51单片机与ISD4004语音芯片接口电路 ..........................21 3.6第4章系统软件部分 (23)4(1 系统软件流程设计 ................................................234(2系统软件流程图 ..................................................234(3 语音部分程序设计及分析 ..........................................24 第5章设计使用的软件说明 (25)5(1 使用PROTEL 99SE绘制原理图 (25)5(2 使用VISIO2003 绘制系统流程图 (26)5(3 使用KEILUVISION2 ................................................. 27 第6章系统调试 (29)6.1 80S51仿真器及其部件 (29)6.2 连接与测试 (30)6.3 调试 ............................................................. 32 致谢 (34)参考文献 (35)附录 ...................................................................36第1章系统设计背景第1章系统设计背景城市的快速发展和城市人口数量的不断增多,公交车已成为人们最主要的交通工具,然而随之而来的公交车乘坐拥挤、等车废时等问题越来越突出。
发射#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit TX_EN= P3^5;sbit TRX_CE=P1^1;sbit PWR_UP=P3^4;sbit CD=P3^3;sbit AM=P1^3;sbit DR=P3^2;sbit MISO=P1^6;sbit MOSI=P1^4;sbit SCK=P1^7;sbit CSN=P1^5;sbit led=P3^0;sbit key1=P1^2;sbit key2=P1^0;sbit key3=P3^7;uchar key_value=0;void Delay(uint x){uint i;for(i=0;i<x;i++){_nop_();}}void SpiWrite(uchar date){uchar i=8;while (i--){Delay(10);MOSI=(bit)(date&0x80);date<<=1 ;Delay(10);SCK=1;Delay(10);SCK=0;}}void TxPacket(void){PWR_UP=1;TX_EN=1;TRX_CE=0;Delay(2);CSN=0;SpiWrite(0x22); //写发送地址,后面跟4字节地址//SpiWrite(0xE7);SpiWrite(0xE7);SpiWrite(0xE7);SpiWrite(0xE7);CSN=1;Delay(2);CSN=0;SpiWrite(0x20); //写发送数据命令,后面跟三字节数据//SpiWrite(0x01);SpiWrite(0x02);SpiWrite(key_value);CSN=1;Delay(5);TRX_CE=1; //使能发射模式//Delay(500); //等带发送完成//TRX_CE=0;while(!DR);}////////////初始化配置寄存器////////////////void Ini_System(void){CSN=1;SCK=0;PWR_UP=1;TRX_CE=0;TX_EN=0;Delay(2);CSN=0;SpiWrite( 0x00); //配置命令//SpiWrite( 0x6C); //CH_NO,配置频段在433.2MHZSpiWrite( 0x0C); //输出功率为10db,不重发,节电为正常模式SpiWrite( 0x44); //地址宽度设置,为4字节SpiWrite( 0x03);SpiWrite( 0x03); //接收发送有效数据长度为3字节SpiWrite( 0xE7);SpiWrite( 0xE7);SpiWrite( 0xE7);SpiWrite( 0xE7); //接收地址SpiWrite( 0xDE);CSN=1;PWR_UP=1;TRX_CE=1;TX_EN=0;Delay(1000);}void main(void){Ini_System();DR=1;TRX_CE=0;Delay(1000);TX_EN=0;TRX_CE=1;PWR_UP=1;key_value=0x00;while(1){if(!key1) //senfing key1{Delay(5);if(!key1){ Delay(3);while(!key1);key_value=0xa0;}}elseif(!key2) //senfing key2{Delay(5);if(!key2){ Delay(3);while(!key2);key_value=0xa1;}}if(!key3) //senfing key3{Delay(5);if(!key3){ Delay(3);while(!key3);key_value=0xa2;}}if(key_value!=0x00){led=0;TxPacket();key_value=0x00;TX_EN=0;TRX_CE=1;PWR_UP=1;Delay(6000);led=1;}}}接收#include <reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit TX_EN= P0^0;sbit TRX_CE=P0^1;sbit PWR_UP=P0^2;sbit CD=P0^3;sbit AM=P0^4;sbit DR=P0^5;sbit MISO=P0^6;sbit MOSI=P0^7;sbit SCK=P2^0;sbit CSN=P2^1;sbit led1=P1^1;sbit led2=P1^2;sbit led3=P1^3;uchar TxRxBuffer[3];bit success_flag=0;void Delay(uint x){uint i;for(i=0;i<x;i++)_nop_();}void SpiWrite(uchar date){uchar i=8;while (i--){Delay(10);MOSI=(bit)(date&0x80);date<<=1 ;Delay(10);SCK=1;Delay(10);SCK=0;}}uchar SpiRead() //from 905 read data{uchar i=8,date1=0;;while (i--){date1<<=1 ;date1|=MISO;SCK=1 ;Delay(10);SCK=0 ;Delay(10);}return date1;}void Ini_System(void) /*初始化配置寄存器*/{CSN=1;SCK=0;PWR_UP=1;TRX_CE=0;TX_EN=0;Delay(2);CSN=0;SpiWrite(0x00); //配置命令//SpiWrite(0x6C); //CH_NO,配置频段在433.2MHZSpiWrite(0x0C); //输出功率为10db,不重发,节电为正常模式SpiWrite(0x44); //地址宽度设置,为4字节SpiWrite(0x03);SpiWrite(0x03); //接收发送有效数据长度为3字节SpiWrite(0xE7);SpiWrite(0xE7);SpiWrite(0xE7);SpiWrite(0xE7); //接收地址SpiWrite(0xDE);CSN=1;PWR_UP=1;TRX_CE=1;TX_EN=0;Delay(1000);}void Wait_Rec_Packet(void){if(DR){TRX_CE=0;//如果数据准备好,则进入待机模式,以便SPI口操作CSN=0;SpiWrite(0x24);//接收数据包TxRxBuffer[0] = SpiRead();TxRxBuffer[1] = SpiRead();TxRxBuffer[2] = SpiRead();CSN=1;while(DR);TRX_CE=1;if((TxRxBuffer[0]==0x01)&&(TxRxBuffer[1]==0x02)){TxRxBuffer[0]=0xff;TxRxBuffer[1]=0xff;success_flag=1;if(TxRxBuffer[2]==0xa0){ led1=~led1; }elseif(TxRxBuffer[2]==0xa1){ led2=~led2; }elseif(TxRxBuffer[2]==0xa2){ led3=~led3; }Ini_System();}}}void main(void){Ini_System();PWR_UP=0;DR=1;led1=0;led2=0;led3=0;success_flag=0;TRX_CE=0;Delay(1000);TX_EN=0;TRX_CE=1;PWR_UP=1;while(1){Wait_Rec_Packet(); //等待接收完成if(success_flag){TX_EN=0;TRX_CE=1;PWR_UP=1;Delay(5000);Delay(5000);success_flag=0;Delay(10000);}}}。