NRF905NRF905NRF905NRF905433mhz433mhz433mhz433mhz接收发射芯片中文资料(附cccc程序)由于还没有加附件的权限,中文的pdf还不能上传现在发中文简要资料,附带程序,请大家谅解,待可加附件补上1.引言nRF905nRF905nRF905nRF905是挪威NordicVLSI公司推出的单片射频收发器,工作电压为1.9~3.6V,32引脚QFN封装(5×5mm),工作于433/868/915MHz三个ISM(工业、科学和医学)频道,频道之间的转换时间小于650us。nRF905nRF905nRF905nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器,ShockBurstTM工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。此外,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,工作于接收模式时的电流为12.5mA,内建空闲模式与关机模式,易于实现节能。nRF905nRF905nRF905nRF905适用于无线数据通信、无线报警及安全系统、无线开锁、无线监测、家庭自动化和玩具等诸多领域。2.芯片结构、引脚介绍及工作模式2.1芯片结构[1]nRF905nRF905nRF905nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器功率放大器等模块,曼彻斯特编码/解码由片内硬件完成,无需用户对数据进行曼彻斯特编码,因此使用非常方便。nRF905nRF905nRF905nRF905的详细结构如图1所示。2.2引脚介绍表1:nRF905nRF905nRF905nRF905引脚2.3工作模式nRF905nRF905nRF905nRF905有两种工作模式和两种节能模式。两种工作模式分别是ShockBurstTM接收模式和ShockBurstTM发送模式,两种节能模式分别是关机模式和空闲模式。nRF905nRF905nRF905nRF905的工作模式由TRX_CE、TX_EN和PWR_UP三个引脚决定,详见表2。2.3.1ShockBurstTM模式与射频数据包有关的高速信号处理都在nRF905nRF905nRF905nRF905片内进行,数据速率由微控制器配置的SPI接口决定,数据在微控制器中低速处理,但在nRF905nRF905nRF905nRF905中高速发送,因此中间有很长时间的空闲,这很有利于节能。由于nRF905nRF905nRF905nRF905工作于ShockBurstTM模式,因此使用低速的微控制器也能得到很高的射频数据发射速率。在ShockBurstTM接收模式下,当一个包含正确地址和数据的数据包被接收到后,地址匹配(AM)和数据准备好(DR)两引脚通知微控制器。在ShockBurstTM发送模式,nRF905nRF905nRF905nRF905自动产生字头和CRC校验码,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。由以上分析可知,nRF905nRF905nRF905nRF905的ShockBurstTM收发模式有利于节约存储器和微控制器资源,同时也减小了编写程序的时间。下面具体详细分析nRF90nRF90nRF90nRF905555的发送流程和接收流程。2.3.1.1发送流程典型的nRF905nRF905nRF905nRF905发送流程分以下几步:A.当微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给nRF905nRF905nRF905nRF905,SPI接口的速率在通信协议和器件配置时确定;B.微控制器置高TRX_CE和TX_EN,激发nRF905nRF905nRF905nRF905的ShockBurstTM发送模式;C.nRF905nRF905nRF905nRF905的ShockBurstTM发送:l射频寄存器自动开启;l数据打包(加字头和CRC校验码);l发送数据包;l当数据发送完成,数据准备好引脚被置高;D.AUTO_RETRAN被置高,nRF905nRF905nRF905nRF905不断重发,直到TRX_CE被置低;E.当TRX_CE被置低,nRF905nRF905nRF905nRF905发送过程完成,自动进入空闲模式。ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,nRF905nRF905nRF905nRF905才能接受下一个发送数据包。2.3.1.2接收流程A.当TRX_CE为高、TX_EN为低时,nRF905nRF905nRF905nRF905进入ShockBurstTM接收模式;B.650us后,nRF905nRF905nRF905nRF905不断监测,等待接收数据;C.当nRF905nRF905nRF905nRF905检测到同一频段的载波时,载波检测引脚被置高;D.当接收到一个相匹配的地址,地址匹配引脚被置高;E.当一个正确的数据包接收完毕,nRF905nRF905nRF905nRF905自动移去字头、地址和CRC校验位,然后把数据准备好引脚置高F.微控制器把TRX_CE置低,nRF905nRF905nRF905nRF905进入空闲模式;G.微控制器通过SPI口,以一定的速率把数据移到微控制器内;H.当所有的数据接收完毕,nRF905nRF905nRF905nRF905把数据准备好引脚和地址匹配引脚置低;I.nRF905nRF905nRF905nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。当正在接收一个数据包时,TRX_CE或TX_EN引脚的状态发生改变,nRF905nRF905nRF905nRF905立即把其工作模式改变,数据包则丢失。当微处理器接到地址匹配引脚的信号之后,其就知道nRF905nRF905nRF905nRF905正在接收数据包,其可以决定是让nRF905nRF905nRF905nRF905继续接收该数据包还是进入另一个工作模式。2.3.2节能模式nRF905nRF905nRF905nRF905的节能模式包括关机模式和节能模式。在关机模式,nRF905nRF905nRF905nRF905的工作电流最小,一般为2.5uA。进入关机模式后,nRF905nRF905nRF905nRF905保持配置字中的内容,但不会接收或发送任何数据。空闲模式有利于减小工作电流,其从空闲模式到发送模式或接收模式的启动时间也比较短。在空闲模式下,nRF905nRF905nRF905nRF905内部的部分晶体振荡器处于工作状态。nRF905nRF905nRF905nRF905在空闲模式下的工作电流跟外部晶体振荡器的频率有关。3.器件配置所有配置字都是通过SPI接口送给nRF905nRF905nRF905nRF905。SIP接口的工作方式可通过SPI指令进行设置。当nRF90nRF90nRF90nRF905555处于空闲模式或关机模式时,SPI接口可以保持在工作状态。3.1SPI接口配置SPI接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器5个寄存器组成。状态寄存器包含数据准备好引脚状态信息和地址匹配引脚状态信息;射频配置寄存器包含收发器配置信息,如频率和输出功能等;发送地址寄存器包含接收机的地址和数据的字节数;发送数据寄存器包含待发送的数据包的信息,如字节数等;接收数据寄存器包含要接收的数据的字节数等信息。3.2射频配置射频配置寄存器和内容如表3所示:表3:射频配置寄存器射频寄存器的各位的长度是固定的。然而,在ShockBurstTM收发过程中,TX_PAYLOAD、RX_PAYLOAD、TX_ADDRESS和RX_ADDRESS4个寄存器使用字节数由配置字决定。nRF905nRF905nRF905nRF905进入关机模式或空闲模式时,寄存器中的内容保持不变。4.应用电路nRF905nRF905nRF905nRF905在使用中,根据不同需要,其电路图不尽相同,图2所示为典型的应用原理图,该电路天线部分使用的是50Ω单端天线。在nRF905nRF905nRF905nRF905的电路板设计中,也可以使用环形天线,把天线布在PCB板上,这可减小系统的体积。更详细的设计,读者可参考nRF905nRF905nRF905nRF905的芯片手册[2]。5.结束语nRF905nRF905nRF905nRF905通过SPI接口和微控制器进行数据传送,通过ShockBurstTM收发模式进行无线数据发送,收发可靠,使用方便,在工业控制、消费电子等各个领域都具有广阔的应用前景。cccc补上#includereg52.h#includeintrins.h#includestdio.h#defineuintunsignedint#defineucharunsignedchar//配置口定义//sbitTXEN=P1^7;sbitTRX_CE=P1^6;sbitPWR=P1^5;//SPI口定义//sbitMISO=P1^2;sbitMOSI=P1^3;sbitSCK=P1^1;sbitCSN=P1^0;sbitP2_0=P2^0;//状态输出口//sbitDR=P1^4;sbitLCD=P3^2;//RF寄存器配置//unsignedcharidataRFConf[11]={0x00,//配置命令//0x6C,//CH_NO,配置频段在433.2MHZ0x0E,//输出功率为10db,不重发,节电为正常模式0x44,//地址宽度设置,为4字节0x03,0x03,//接收发送有效数据长度为3字节0xE7,0xE7,0xE7,0xE7,//接收地址0xDE,//CRC充许,16位CRC校验,外部时钟信号使能,16M晶振};ucharTxRxBuffer[5];bitlcdbit;///////////延时/////////////////voidDelay(uintx){uinti;for(i=0;ix;i++){_nop_();}}////////////用SPI口写数据至NRF905NRF905NRF905NRF905内//////////voidSpiWrite(unsignedcharb){unsignedchari=8;while(i--){Delay(10);SCK=0;MOSI=(bit)(b&0x80);b=1;Delay(10);SCK=1;Delay(10);SCK=0;}SCK=0;}///////////////from905readdata////////////////unsignedcharSpiRead(void){registerunsignedchari=8;unsignedcharddata=0;while(i--){ddata=1;SCK=0;_nop_();_nop_();ddata|=MISO;SCK=1;_nop_();_nop_();}SCK=0;returnddata;}///////////////接收数据包/////////////////voidRxPacket(void){uchari;i=0;while(DR){TxRxBuffer[i]=SpiRead();i++;}}/*;写发射数据命令:20H;读发射数据命令:21H;写发射地址命令:22H;读发射地址命令:23H;读接收数据命令:24H*/voidTxPacket(void){TXEN=1;CSN=0;SpiWrite(0x22);//写发送地址,后面跟4字节地址//SpiWrite(0xE7);SpiWrite(0xE7);SpiWrite(0xE7);SpiWrite(0xE7);CSN=1;_nop_();_nop_();CSN=0;SpiWrite(0x20);//写发送数据命令,后面跟三字节