NRF905无线收发模块开发指南.pdf

上传人:asd****56 文档编号:70322819 上传时间:2023-01-19 格式:PDF 页数:21 大小:2.10MB
返回 下载 相关 举报
NRF905无线收发模块开发指南.pdf_第1页
第1页 / 共21页
NRF905无线收发模块开发指南.pdf_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《NRF905无线收发模块开发指南.pdf》由会员分享,可在线阅读,更多相关《NRF905无线收发模块开发指南.pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、V&T 武汉微安武汉微安通通科技有限公司科技有限公司 1 NRF905 无线收发模块无线收发模块开发指南开发指南 武汉微安通科技有限公司武汉微安通科技有限公司 V&T 武汉微安武汉微安通通科技有限公司科技有限公司 2一一、模块介绍模块介绍 RF905 无线收发模块(PTR8000+),在 Nordic VLSI 公司最新封装改版 NRF905 无线通信芯片基础上,特做优化设计,采用高精度贴片晶振,体积更小,性能更优。工作于 433MHz 全球开放 ISM 频段免许可证使用,高性能低功耗,接收灵敏度高,抗干扰性强,集成度高,通信稳定,是目前最主流的无线收发电路 目前我公司共有 3 款基于 NRF

2、905 的微功率无线模块:RF905B(PCB 板载天线),模块尺寸:38*44(最宽处)V&T 武汉微安武汉微安通通科技有限公司科技有限公司 3 RF905SE(垂直外置天线,标配短柱状天线,其他天线可选)模块尺寸 32*19mm(不含天线部份)RF905RD(新推出版本,尺寸更小,精度更高,标配水平外置天线)模块尺寸:25*19mm(尺寸不含天线及 SMA 座);RF905RD 的低成本版本(主板及性能完全一致)。V&T 武汉微安武汉微安通通科技有限公司科技有限公司 4 RF905RD-TH,配置高品质弹簧天线,极具性价比,尤其适合在批量使用的场合。模块性能及特点:(1)433MHz 开

3、ISM 频段免许可证使用。(2)最高工作速率 50kbps,高效 GSFK 调制,抗干扰能力强,特别适合工业控制场合(3)125 频道,满足多点通信和跳频通信需要(4)内置硬件 CRC 检错和点对多点通信地址控制(5)低功耗 1.9-3.6V 工作,待机模式下状态仅为 2.5Ua(6)收发模式切换时间650us(7)模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便(8)TX Mode:在+10dBm 情况下,电流为 30 mA,RX Mode:12.2 mA(9)标准 DIP 间距接口,便于嵌入式应用(10)RF905B 配 PCB 板

4、天线,传输距离 100 米,RF905E 及 RF905RD 配 SMA 天线,传输距离 300 米 二、接口电路管脚说明接口电路管脚说明 V&T 武汉微安武汉微安通通科技有限公司科技有限公司 5 说明:(1)VCC 脚接电压范围为 3.3V3.6V 之间,不能在这个区间之外,超过 3.6V 将会烧毁模V&T 武汉微安武汉微安通通科技有限公司科技有限公司 6块。推荐电压 3.3V 左右 (2)除电源 VCC 和接地端,其余脚都可以直接和普通的 5V 单片机 IO 口直接相连,无需电平转换。当然对 3V 左右的单片机更加适用 (3)硬件上没有 SPI 的单片机,可以用普通单片机 IO 口模拟 S

5、PI,不需要单片机 SPI 模块介入,只需添加代码模拟 SPI 时序即可 (4)13 脚、14 脚为接地脚,需要和母板的逻辑地连接起来 (5)排针间距为 100mil,标准 DIP 插针,如果需要其他封装接口,比如密脚插针,或者其他形式的接口,可以联系我们定做 (6)与 51 系列单片机 P0 口连接时候,需要加 10K 的上拉电阻,与其余口连接不需要 (7)其他系列的单片机,如果是 5V 的,请参考该系列单片机 IO 口输出电流大小,如果超过10mA,需要串联电阻分压,否则容易烧毁模块!如果是 3.3V 的,可以直接和 RF905 模块的 IO 口线连接。三三、模块引模块引脚和电气参数说明脚

6、和电气参数说明 RF905 模块使用 Nordic 公司的 nRF905 芯片开发而成。RF905 单片无线收发器工作在 433/868/915MHZ 的 ISM 频段由一个完全集成的频率调制器一个带解调器的接收器一个功率放大器一个晶体震荡器和一个调节器组成ShockBurst工作模式的特点是自动产生前导码和CRC可以很容易通过SPI接口进行编程配置电流消耗很低在发射功率为10dBm 时发射电流为 30mA 接收电流为 12.5mA.进入POWERDOWN 模式可以很容易实现节电。V&T 武汉微安武汉微安通通科技有限公司科技有限公司 7 四四、工作方式工作方式 RF905一共有四种工作模式,其

7、中有两种活动RX/TX 模式和两种节电模式。活动模式 ShockBurst RX ShockBurst TX 节电模式 掉电 和 SPI编程 STANDBY 和 SPI编程 4.1 ShockBurst 模式 ShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器送入,但高速发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率。与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处:尽量节能;低的系统费用(低速微处理器也能进行高速射频发射);数据在空中停留时间短,抗干扰性高。ShockBurstTM技术同时也减小了整个系统的平均工作

8、电流。在ShockBurstTM收发模式下,RF905自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时,自动加上字头和CRC校验码,当发送过程完成后,V&T 武汉微安武汉微安通通科技有限公司科技有限公司 8DR引脚通知微处理器数据发射完毕。4.1.1 ShockBurst TX 发送流程 典型的RF905发送流程分以下几步:A.当微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给RF905,SPI接口的速率在通信协议和器件配置时确定;B.微控制器置高TRX_CE和TX_EN,激发RF905的ShockBurstTM发送模式;C.

9、RF905的ShockBurstTM发送:(1)射频寄存器自动开启;(2)数据打包(加字头和CRC校验码);(3)发送数据包;(4)当数据发送完成,数据准备好引脚被置高;D.AUTO_RETRAN被置高,RF905不断重发,直到TRX_CE被置低;E.当TRX_CE被置低,RF905发送过程完成,自动进入空闲模式。注意:ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,RF905才能接受下一个发送数据包。4.1.2 ShockBurst RX 接收流程 接收流程 A.当TRX_CE为高、T

10、X_EN为低时,RF905进入ShockBurstTM接收模式;B.650us后,RF905不断监测,等待接收数据;C.当RF905检测到同一频段的载波时,载波检测引脚被置高;D.当接收到一个相匹配的地址,AM引脚被置高;E.当一个正确的数据包接收完毕,RF905自动移去字头、地址和CRC校验位,然后把DR引脚置高 F.微控制器把TRX_CE置低,nRF905进入空闲模式;G.微控制器通过SPI口,以一定的速率把数据移到微控制器内;H.当所有的数据接收完毕,nRF905把DR引脚和AM引脚置低;I.nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机

11、模式。当正在接收一个数据包时,TRX_CE或TX_EN引脚的状态发生改变,RF905立即把其工作模式改变,数据包则丢失。当微处理器接到AM引脚的信号之后,其就知道RF905正在接收数据包,其可以决定是让RF905继续接收该数据包还是进入另一个工作模式。4.1.3 节能模式 RF905的节能模式包括关机模式和节能模式。在关机模式,RF905的工作电流最小,一般为2.5uA。进入关机模式后,RF905保持配置字中的内容,但不会接收或发送任何数据。空闲模式有利于减小工作电流,其从空闲模式到发送模式或接收模式的启动时间也比较短。在空闲模式下,RF905内部的部分晶体振荡器处于工作状态。五、配置配置RF

12、905RF905模块模块 所有配置字都是通过SPI接口送给RF905。SIP接口的工作方式可通过SPI指令进行设置。当RF905处于空闲模式或关机模式时,SPI接口可以保持在工作状态。5.1 SPI接口寄存器配置 SPI接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器5个寄存器组成。状态寄存器包含数据准备好引脚状态信息和地址匹配引脚状态V&T 武汉微安武汉微安通通科技有限公司科技有限公司 9信息;射频配置寄存器包含收发器配置信息,如频率和输出功能等;发送地址寄存器包含接收机的地址和数据的字节数;发送数据寄存器包含待发送的数据包的信息,如字节数等;接收数据寄存器包

13、含要接收的数据的字节数等信息。SPI 接口由5 个内部寄存器组成执行寄存器的回读模式来确认寄存器的内容 SPI 接口和5 个内部寄存器 状态寄存器Status-Register 寄存器包含数据就绪DR 和地址匹配AM 状态 RF配置寄存器RF-Configuration Register 寄存器包含收发器的频率,输出功率等配置信息 发送地址TX-Address 寄存器包含目标器件地址字节长度由配置寄存器设置 发送有效数据TX-Payload 寄存器包含发送的有效ShockBurst 数据包数据字节长度由配置寄存器设置 接收有效数据TX-Payload 寄存器包含接收到的有效ShockBurst

14、 数据包数据字节长度由配置寄存器设置在寄存器中的有效数据由数据准备就绪DR 指示 5.2 SPI 指令设置 当CSN 为低时,SPI接口开始等待一条指令。任何一条新指令均由CSN 的由高到低的转换开始。用于SPI 接口的有用命令见下表:SPI 串行接口指令设置 V&T 武汉微安武汉微安通通科技有限公司科技有限公司 10 5.3 SPI 时序 V&T 武汉微安武汉微安通通科技有限公司科技有限公司 11 5.4 配置寄存器RF-Configuration-Register 说明 V&T 武汉微安武汉微安通通科技有限公司科技有限公司 12 5.5 配置寄存器内容 V&T 武汉微安武汉微安通通科技有限

15、公司科技有限公司 13 V&T 武汉微安武汉微安通通科技有限公司科技有限公司 14 注意:射频寄存器的各位的长度是固定的。然而,在ShockBurstTM收发过程中,TX_PAYLOAD、RX_PAYLOAD、TX_ADDRESS和RX_ADDRESS 4个寄存器使用字节数由配置字决定。RF905进入关机模式或空闲模式时,寄存器中的内容保持不变。六六、RF905RF905编程指南编程指南 使用RF905模块无需掌握任何专业无线或高频方面的理论,读者只需要具备一定的C语言程序基础即可。本文档没有涉及到的问题,读者可以参考nRF905官方手册。6.1 nRF905 配置寄存器 V&T 武汉微安武汉

16、微安通通科技有限公司科技有限公司 15 字节0:7:0 CH_NO7:0:连同字节1的CH_NO8和HFREQ_PLL控制905的载波频段 参考设置:Operating frequency HFREQ_PLL CH_NO 430.0 MHz 0 001001100 433.1 MHz 0 001101011 433.2 MHz 0 001101100 434.7 MHz 0 001111011 862.0 MHz 1 001010110 868.2 MHz 1 001110101 868.4 MHz 1 001110110 869.8 MHz 1 001111101 902.2 MHz 1 1

17、00011111 902.4 MHz 1 100100000 927.8 MHz 1 110011111 载波频率的计算公式:字节1:0 CH_NO 8:参见字节0 1 HFREQ_PLL:0-器件工作在433MHZ频段 1-期间工作在868/915MHZ频段 3:2 PA_PWR:输出功率 00-10dBm(默认)01-2dBm 10+6dBm V&T 武汉微安武汉微安通通科技有限公司科技有限公司 16 11+10dBm 4 RX_RED_PWR:降低接收模式电流消耗至1.6mA,灵敏度降低。0-正常模式(默认)1-低功耗模式 5 AUTO_RETRAN:自动重发TX寄存器中的数据包,如果T

18、RX_CE和TX_EN被设置为高。0-不重发数据包(默认)1-自动重发数据包 7:6 保留 字节2 2:0 RX_AWF 2:0:RX地址宽度 001-1字节RX地址宽度(默认)100-4字节RX地址宽度 3 保留 6:4 TX_AWF 2:0:TX地址宽度 001-1字节TX地址宽度 100-4 字节TX地址宽度 7 保留 字节3 5:0 RX_PW 5:0:RX接收有效数据宽度 000001-1字节RX有效数据宽度 000010-2字节RX有效数据宽度 100000-32字节RX有效数据宽度 7:6 保留 字节4 5:0 TX_PW 5:0:TX发送有效数据宽度 000001-1字节TX有

19、效数据宽度 000010-2字节TX有效数据宽度 100000-32字节TX有效数据宽度 7:6 保留 字节5:RX地址0字节 字节6:RX地址1字节 字节7:RX地址2字节 字节8:RX地址3字节 字节 9 1:0 UP_CLK_FREQ 1:0:输出时钟频率 V&T 武汉微安武汉微安通通科技有限公司科技有限公司 17 00-4MHZ 01-2MHZ 10-1MHZ 11-500KHZ 2 UP_CLK_EN:输出时钟使能 0-没有外部时钟 1-外部时钟信号使能(默认)5:3 XOF 2:0:晶体振荡器频率,必须依据外部晶体的标称频率设置 (无线模块上905芯片外接晶振的频率)000-4MH

20、Z 001-8MHZ 010-12MHZ 011-16MHZ 100-20MHZ(默认)6 CRC_EN:CRC校验允许 0 不允许 1-允许(默认)7 CRC_MODE:CRC模式 0-8位CRC校验位 1-16位CRC校验位(默认)范例程序中的相关代码段:/*nRF905寄存器配置参数*/typedef struct RFConfig uchar n;uchar buf10;RFConfig;code RFConfig RxTxConf=10,0 x4c,0 x0c,0 x44,0 x20,0 x20,0 xcc,0 xcc,0 xcc,0 xcc,0 x58 ;/buf10 中数据对应

21、字节0 字节9,具体内容可参考上文寄存器配置章节 /注:对于频段设置参数CH_NO,在我们提供的范例程序中CH_NO7:0的值为0 x4c。我们不建议各位用户使用其他数值,因为我们的模块在硬件上只适应430MHz左右的频率,为了达到最好的效果,软件参数上应当与硬件匹配,否则会影响通讯距离。6.2 通过SPI接口向nRF905 配置寄存器读写配置信息 nRF905通过SPI接口与单片机通讯,因此必须首先了解SPI接口。SPI概念 SPI外围串行接口由四条线构成:MOSI主机输出从机输入(主机写操作)V&T 武汉微安武汉微安通通科技有限公司科技有限公司 18 MISO主机输入从机输出(主机读操作)

22、SCK 串行时钟信号,由主机控制 CSN 片选信号,低电平有效 /void SpiWrite(uchar byte)uchar i;DATA_BUF=byte;/将需要发送的数据写入缓存 for(i=0;i8;i+)/循环8次发送一个字节的数据 if(flag)/flag=DATA_BUF7;MOSI=1;else MOSI=0;SCK=1;/SCK 高电平 DATA_BUF=DATA_BUF1;/左移一位,为下一位的发送做准备 SCK=0;/SCK 低电平 步骤一:MOSI线准备好需要发送的数据位 步骤二:SCK置高,器件读取MOSI线上的数据 步骤三:SCK置低,准备发送数据的下一位 以上

23、步骤循环执行8次,通过SPI向器件发送数据完成!注意:数据的传输时,高位在前,低位在后。/uchar SpiRead(void)uchar i;for(i=0;i8;i+)/循环8次发送一个字节的数据 DATA_BUF=DATA_BUF1;/左移一位,准备接收下一位数据 SCK=1;/SCK 高电平 if(MISO)flag1=1;/flag1=DATA_BUF0;else flag1=0;SCK=0;/SCK低电平 return DATA_BUF;/DATA_BUF 为接收到的完整数据 步骤一:MISO线准备好需要发送的数据位 步骤二:SCK置高,主机读取MISO线上的数据 步骤三:SCK置

24、低,准备接收数据的下一位 以上步骤循环执行8次,通过SPI从器件上读数据完成!V&T 武汉微安武汉微安通通科技有限公司科技有限公司 19 注意:数据的传输时,高位在前,低位在后。/void Config905(void)uchar i;CSN=0;/CSN片选信号,SPI使能 SpiWrite(WC);/向905芯片写配置命令 for(i=0;iRxTxConf.n;i+)/循环写入配置信息 SpiWrite(RxTxConf.bufi);/RxTxConf保存预先设置好的配置信息 CSN=1;/结束SPI数据传输 步骤一:CSN置低电平,SPI接口开始等待第一条指令 步骤二:调用SpiWri

25、te函数,向器件发送WC信号,准备写入配置信息 (SpiWrite函数在上文讲解)步骤三:反复调用SpiWrite函数,向器件配置寄存器写入配置信息 步骤四:CSN置高电平,结束SPI通讯。nRF905配置完成!代码中nRF905 SPI接口指令的宏定义 /(以下操作全部从对应寄存器的字节0开始)#define WC 0 x00/写配置寄存器(RF-Configuration Register)#define RC 0 x10/读配置寄存器(RF-Configuration Register)#define WTP 0 x20/向TX-Payload寄存器写入发送有效数据#define RTP

26、 0 x21/从TX-Payload寄存器读取发送有效数据#define WTA 0 x22/向TX-Address寄存器写入发送地址#define RTA 0 x23/从TX-Address寄存器读取发送地址#define RRP 0 x24/从RX-Payload寄存器读取接收到的有效数据 /使用nRF905发送数据 void TxPacket(void)uchar i;CSN=0;SpiWrite(WTP);/Write payload command for(i=0;i32;i+)SpiWrite(TxBufi);/写入32直接发送数据 CSN=1;/关闭SPI,保存写入的数据 Del

27、ay(1);CSN=0;/SPI使能,准备写入地址信息 SpiWrite(WTA);/写数据至地址寄存器 for(i=0;i4;i+)/写入4字节地址 V&T 武汉微安武汉微安通通科技有限公司科技有限公司 20 SpiWrite(RxTxConf.bufi+5);CSN=1;/关闭SPI TRX_CE=1;/进入发送模式,启动射频发送 Delay(1);/进入ShockBurst发送模式后,芯片保证数据发送完成后返回STANDBY模式 TRX_CE=0;步骤一:通过SpiWrite 函数发送WTP命令,准备写入TX有效数据 步骤二:循环调用SpiWrite向TX-Payload寄存器写入TX有

28、效数据 (中间夹有CSN电平变化)步骤三:延时 步骤四:通过SpiWrite函数发送WTA命令,准备写入TX地址 步骤五:循环调用SpiWrite向TX-Address寄存器写入TX地址 步骤六:TRX_CE=1;开始发送数据 延时,nRF905数据发送完成 当nRF905接收到一条完成的信息时,会将DR引脚置高。/这段代码和范例中提供的有所不同,做了较大的简化,只留下必要的部分 void RxPacket(void)uchar i;TRX_CE=0;/设置905进入待机模式 CSN=0;/使能SPI SpiWrite(RRP);/准备读取接收到的数据 for(i=0;i32;i+)RxBuf

29、i=SpiRead();/通过SPI接口从905芯片读取数据 CSN=1;/禁用SPI while(DR|AM);TRX_CE=1;步骤一:TRX_CE=0;必须将此引脚置低,使905进入standby模式 步骤二:发送RRP指令 步骤三:循环调用SpiRead函数,读取接收到的数据 步骤四:等待DR和AM引脚复位为低电平 (中间夹有CSN电平变化)数据包接收完成!注:AM 地址匹配,接收到有效地址,被置高 DR 接收到有效数据包,并解码后,被置高 当所有有效数据被读取后,nRF905将AM和DR置低 最后需要注意的是,必须首先设置器件的发送/接收模式才能保证有效的数据发送接收 /void S

30、etTxMode(void)V&T 武汉微安武汉微安通通科技有限公司科技有限公司 21 TX_EN=1;TRX_CE=0;Delay(1);/delay for mode change(=650us)/void SetRxMode(void)TX_EN=0;TRX_CE=1;Delay(1);/delay for mode change(=650us)6.3SPI接口相关数据 在使用高性能的单片机作为nRF905的主机时需要考虑这个表格中的相关数据。6.4器件模式切换时间 备注备注:1、更详细的开发代码请参考相关例程,本公司提供基于目前主流单片机(51、AVR、MSP430等)的开发代码,这些参考例程均通过实际验证,可直接移植使用。同时公司配套有基于(AVR,MSP430,51等)的无线开发系统,帮助更快构建无线应用,欢迎配套选购 2、本公司提供全程技术支持,保证您开发无忧,轻松用无线

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁