首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心理工论文电子通信
   系统级RF芯片nRF24E1收发原理与应用编程      ★★★ 【字体: 】  
系统级RF芯片nRF24E1收发原理与应用编程
收集整理:佚名    来源:本站整理  时间:2009-01-10 23:55:13   点击数:[]    

nRF2401子系统能够区分接收到数据包中的有效数据和CRC字节;

*地址宽度(ADDR2和ADDR1),设置RF数据包中地址字节所占用的位数,最高为40位,这使nRF2401字节系统能够区分地址和有效数据;

*接收频道地址(ADDR_W),即接收数据的目标地址;

*CRC配置(CRC_L和CRC_EN),CRC_L用于设置CRC为8位或16位校验,CRC_L=0为8位,CRC_L=1为16位,CRC_EN使能片内的CRC。

在发送方式,CPU必须产生与接收数据的nRF2401子系统配置相同的地址和有效数据块。当使用nRF240子系统片内的CRC特性时,注意CRC是否已经使能,并且注意在发送器和接收器上使用相同的长度。

3.2 配置字描述

配置字的读取在CLK1的正边沿时,从MSB(最高位)开始。新的配置从CS的下降沿开始。假如nRF2401子系统需要配置为ShockBurst方式,两个接收频道,则在VDD(芯片电源)上电后,只需120位的配置字。在协议、工作方式和接收频道都配置好后,只需要1位(RXEN)来切换是接收或发射。在配置字被读取的过程中,MSB(最高位)最先被读到寄存器中。默认配置字为:h8E08.1C20.2000.0000.00E7.0000.E721.0F04,共18字节,可根据需要进行取舍。

ShockBurst数据包的总位数最多不能超过256位,可通过式(1)计算有效数据的最大位数。

DATAx_W(bits)=256-ADDR_W-CRC (1)

其中:ADDR_W为配置字中B[32:18]所设置的接收地址的长度,8位~40位;CRC为配置字B[17]所设置的校验字,8位或16位。4位或8位前缀是自动加进去的,不占用数据包的位数。由式(1)可知,要想在每个数据包中得到更长的有效数据,可减少地址和CRC校验位。

3.3 收发常用的配置

在两个接收频道的方式下,nRF24E1同时接收来自两个不同频率频道的数据。第一个频道的频率在配置字B[7-1]中设置,第二个频道通常比第一个频道的频率高8MHz。RX2_EN(B[15])为第二个频道的使能位:RX2_EN=0时,第二个频道不工作;RX2_EN=1时,第二个频道使能。RFDR_SB为收发速率设置位:RFDR_SB(B[13])=0时,收发速率为250kbps;RFDR_SB=1时,收发速率为1Mbps。16MHz晶振时,250kbps的收发灵敏度比1Mbps的高10dB。XO_F(B[12-10])为晶振选择位。RF_PWR(B[9-8])设置nRF24E1射频输出功率。

RF_CH#(B[7-1])设置nRF24E1的工作频率,可通过式(2)计算发射频率和频道1的接收频率,通过式(3)计算频道2的接收频率。RXEN为收发切换位。

ChannelRF=2400MHz+RF_CH#×1.0MHz (2)

ChannelRF=2400MHz+RF_CH#×1.0MHz+8MHz (3)

4 数据包描述

完整的射频数据包由四部分组成:前缀、地址、有效数据和CRC。前缀一般是8位,也要吧设置为4位,由地址的首位决定。如果地址的首位是0,前缀为01010101;如果地址的首位是1,前缀为10101010。ShockBurst方式,前缀、地址和CRC都是在接收器收到数据包后自动移去只留有效数据。

5 应用中的程序

下面所述的程序都是在Keil C51 V7.07下调试通过的。限于篇幅,只分析其中的主要函数代码。

(1)系统初始化函数

void Init(void){

//配置I/O口

P0_ALT=0x06;//P0_ALT=00000110B,P0.1为RXD,P0.2为TXD

P0_DIR=0x09;//P0_DIR=00001001B,P0.0和P0.3设为输入

P1_DIR=0x03;//P1_DIR=00000011B,P1.0和P1.1设为输入

…………//其它I/O口配置

PWR_UP=1;//开Radio,读时不用,写时为电源

SPICLK=0;//SPI时钟为XTAL/8

SPI_CTRL=0x02;//把SPI与第一收发通道(CH1)相连

…………//串口配置、A/D配置等,或自己系统相关的一些配置

}

(2)接收器配置函数

void Init_Receiver(void){

unsigned char b;

CS=1;//打开配置方式

for(b=0;b<rconf.n;b++){ //b<15

SpiReadWrite(rconf.buf); //发送接收器配置字

}

CS=0; //关配置方式

CE=1; //使能收发功能

}

(3)接收函数

void Receiver(void){

unsigned char b;

CS=1; //打开配置方式

for(b=0;b<rconf.n;b++){

SpiReadWrite(rconf.buf); //发送接收器配置字

}

CS=0; //关配置方式

for(;;){

b=ReceivePacket(); //接收数据包

…………//接收后的处理函数等,可自己扩展

}

}

(4)发送函数

void Transmitter(void){

unsigned char b;

CS=1; //开配置方式

for(b=0;b<tconf.n;b++){

SpiReadWrite(tconf.buf);//发送发送器配置字

}

CS=0; //关配置方式

b=KeyByte; //读取数据

TransmitPacket(b); //发送数据

}

(5)其它

nRF24E1程序除了主要的初始化配置函数、接收器配置函数、接收函数和发送函数外,还有接收包处理函数、发送包处理函数、接收器配置字和发射器配置字等。Keil C51 V7.01及其以且的版本都支持nRF24E1,因此,编程非常方便。由于nRF24E1只有512字节的ROM,所以,在使用过程中,要扩展片外存储器(Nordic公司推荐使用25320)。应用中,当VDD上电后,芯片通过SPI接口自动从片外存储器读取数据到片内4KB和RAM中以便程序运行时使用。



上一页  [1] [2] 


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:一种新颖的多媒体SoC芯片--VirgineG2

  • 下一篇文章:基于8051嵌入式系统的GPRS终端实现
  • 返回上一页】【打 印】【关闭窗口
    中查找“系统级RF芯片nRF24E1收发原理与应用编程”更多相关内容 5VAR论文频道
    中查找“系统级RF芯片nRF24E1收发原理与应用编程”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››嵌入式系统的通信规约管理平台设计...
  • ››一种基于七号信令的局间话单采集系...
  • ››对于变频器的制动技术分析
  • ››电子文件管理元数据宏观结构多维分...
  • ››浅论卫星电视接收机的常见故障的检...
  • ››信息时代网络用户信息检索焦虑的心...
  • ››论GIS在高校房产管理中的实际应用
  • ››关于电力通信发展战略的思考 金李莎...
  • ››2G、3G切换精细化优化分析思路探讨...
  • ››光纤自动化生产的需求与时机
  • ››系统级RF芯片nRF24E1收发原理与应用...
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .