|
RF内核
RF内核控制无线射频模块,并且在MCU和无线电之间提供一个接口,可以发出命令,读取状态和自动对无线电事件排序。RF内核包括:无线电控制状态模块(FSM)、调制器,解调器、帧过滤和源匹配、频率合成器(FS)、命令选通处理器,定时器2(MAC定时器)。
FSM模块
FSM模块的主要功能包括控制RF收发器的状态、发送和接收FIFO,以及大部分动态受控的模拟信号,比如模拟模块的上电/掉电;
解调器
负责从收到的信号中检索无线数据。解调器的振幅信息由自动增益控制使用,自动增益控制调整模拟LAN的增益,使接收器内的信号水平大约是个常量。
调制器
将原始数据转换为I/Q(同相/正交)信号发送到发送器DAC, 并且遵守IEEE802.15.4标准
帧过滤和源匹配
其功能是支持RF内核中的FSM模块来执行帧过滤和源地址匹配。
频率合成器
其功能是为RF信号产生载波
命令选通处理器
处理CPU所发出的命令。它包含一个24字节的程序存储器,可以自动执行CSMA/CA机制。
无线电RAM
为发送TXFIFO和接收RXFIFO分别分配128字节的FIFO,为帧过滤和源匹配存储参数保留128字节。
定时器2(MAC定时器)
用于为无线电事件计时,以捕获输入数据包的时间戳,这一定时器在睡眠模式下也保持计数。
RF_FIFO
CC2530发送或接收数据是通过FIFO操作来进行的。FIFO访问可以分为TXFIFO访问和RXFIFO访问,其操作都是通过SFR寄存器的RFD操作进行。当写入RFD寄存器时,数据被写入到TXFIFO,当读取数据RFD寄存器时,数据从RXFIFO中读出。
unsigned char i;
signed char tx[ ]={"dh"};
//将mac的内容写到RFD中
for(i=0;i<3;i++)
{ RFD = tx;
}
1、RXFIFO存储器区域位于地址0x6000到0x607F,一共128字节,在XREG存储区域中是可以访问的。RXFIFO可以保存一个或多个收到的帧,只要总字节数不大于128字节。有两种方式确定RXFIFO中的字节数:
1)读RFD寄存器
// 通过RFD读接收的数据长度
unsigned char len;
len = RFD;
2)读RXFIFOCNT寄存器
// 通过RXFIFOCNT读接收的数据长度
unsigned char len;
len = RXFIFOCNT;
TXFIFO中的字节数存储在TXFIFOCNT寄存器中,可以通过两种方式来进行TXFIFO的写操作,这里我介绍一种,因为另一种是不推荐的
写入RFD寄存器。
TXFIFO存储器区域位于地址0x6080到0x60FF,一共128字节。它在XREG存储区域中是可以访问的。
在不产生TX下溢的情况下,帧数据可以在执行TX命令选通之前或之后缓冲
阴影部分的字节必须写到TXFIFO的字节,其他字节可以被忽略。写入TXFIFO的帧数据根据了FRMCTRL0.AUTOCRC(CRC自动校验)是否启用可以分为两种情况:当AUTOCRC为0时,没有启动硬件自动检测;当AUTOCRC为1时,启动了硬件自动检测。
|
|