版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、- 1 -第第5 5章章无线射频与无线射频与MAC层层- 2 -本章目标本章目标掌握掌握RF内核结构内核结构掌握掌握FIFO访问访问掌握掌握CC2530无线发送模式无线发送模式掌握掌握CC2530无线接收模式无线接收模式掌握掌握IEEE802.15.4程序设计方法程序设计方法- 3 -本章目标本章目标掌握掌握RF内核结构内核结构掌握掌握FIFO访问访问掌握掌握CC2530无线发送模式无线发送模式掌握掌握CC2530无线接收模式无线接收模式掌握掌握IEEE802.15.4程序设计方法程序设计方法- 4 -CC2530是兼容是兼容IEEE802.15.4标准射频模块的片上系统标准射频模块的片上系统
2、 5.1 概述概述- 5 -RF内核控制无线射频模块,并且在内核控制无线射频模块,并且在MCU和无线电之间提供一个接口,和无线电之间提供一个接口,可以发出命令,读取状态和自动对无线电事件排序。可以发出命令,读取状态和自动对无线电事件排序。RF内核包括以下几内核包括以下几部分:无线电控制状态模块(部分:无线电控制状态模块(FSM)、调制器,解调器、帧过滤和源匹)、调制器,解调器、帧过滤和源匹配、频率合成器(配、频率合成器(FS)、命令选通处理器,定时器)、命令选通处理器,定时器2(MAC定时器)定时器) 5.2 RF内核内核lFSM模块的主要功能包括控制模块的主要功能包括控制RF收发器的状态、发
3、送和接收收发器的状态、发送和接收FIFO,以及大部分,以及大部分动态受控的模拟信号,比如模拟模块的上电动态受控的模拟信号,比如模拟模块的上电/掉电掉电 l调制器:将原始数据转换为调制器:将原始数据转换为I/Q(同相(同相/正交)信号发送到发送器正交)信号发送到发送器DAC,并且遵守,并且遵守IEEE802.15.4标准标准 l解调器:负责从收到的信号中检索无线数据。解调器的振幅信息由自动增益控解调器:负责从收到的信号中检索无线数据。解调器的振幅信息由自动增益控制使用,自动增益控制调整模拟制使用,自动增益控制调整模拟LAN的增益,使接收器内的信号水平大约是个的增益,使接收器内的信号水平大约是个常
4、量。常量。- 6 -RF内核控制无线射频模块,并且在内核控制无线射频模块,并且在MCU和无线电之间提供一个接口,和无线电之间提供一个接口,可以发出命令,读取状态和自动对无线电事件排序。可以发出命令,读取状态和自动对无线电事件排序。RF内核包括以下几内核包括以下几部分:无线电控制状态模块(部分:无线电控制状态模块(FSM)、调制器,解调器、帧过滤和源匹)、调制器,解调器、帧过滤和源匹配、频率合成器(配、频率合成器(FS)、命令选通处理器,定时器)、命令选通处理器,定时器2(MAC定时器)定时器) 5.2 RF内核内核l帧过滤和源匹配:其功能是支持帧过滤和源匹配:其功能是支持RF内核中的内核中的F
5、SM模块来执行帧过滤和源地址匹模块来执行帧过滤和源地址匹配。配。l频率合成器:其功能是为频率合成器:其功能是为RF信号产生载波。信号产生载波。l命令选通处理器:处理命令选通处理器:处理CPU所发出的命令。它包含一个所发出的命令。它包含一个24字节的程序存储器,字节的程序存储器,可以自动执行可以自动执行CSMA/CA机制。机制。- 7 -RF内核控制无线射频模块,并且在内核控制无线射频模块,并且在MCU和无线电之间提供一个接口,可以发出和无线电之间提供一个接口,可以发出命令,读取状态和自动对无线电事件排序。命令,读取状态和自动对无线电事件排序。RF内核包括以下几部分:无线电控内核包括以下几部分:
6、无线电控制状态模块(制状态模块(FSM)、调制器,解调器、帧过滤和源匹配、频率合成器()、调制器,解调器、帧过滤和源匹配、频率合成器(FS)、)、命令选通处理器,定时器命令选通处理器,定时器2(MAC定时器)定时器) 5.2 RF内核内核l无线电无线电RAM:为发送:为发送TXFIFO和接收和接收RXFIFO分别分配分别分配128字节的字节的FIFO,为帧过,为帧过滤和源匹配存储参数保留滤和源匹配存储参数保留128字节。字节。l定时器定时器2(MAC定时器):用于为无线电事件计时,以捕获输入数据包的时间定时器):用于为无线电事件计时,以捕获输入数据包的时间戳,这一定时器在睡眠模式下也保持计数。
7、戳,这一定时器在睡眠模式下也保持计数。- 8 -RFERR中断中断RF中断中断5.2.1 中断中断 CC2530无线射频的工作涉及到无线射频的工作涉及到CPU两个中断向量两个中断向量- 9 -RFERR中断其功能是表示无线射频的错误情况,无线射频内核错误表现中断其功能是表示无线射频的错误情况,无线射频内核错误表现为为RF TX RFIO下溢或下溢或RX FIFO溢出,通过控制溢出,通过控制SFR寄存器的寄存器的IEN0.RFERRIE位使能。并且在位使能。并且在TCON.RFERRIF保存了保存了RFERR中断标志中断标志位(即是否发生中断),位(即是否发生中断), 5.2.1 中断中断 RF
8、ERR中断中断- 10 -5.2.1 中断中断 IEN0.RFERRIE位位名称名称复位复位R/W描述描述0RFERRIE0R/WRF内核错误中断内核错误中断0:中断禁止:中断禁止1:中断使能:中断使能/使能使能RF内核错误中断内核错误中断IEN0 |=0 x01; RFERR中断中断- 11 -5.2.1 中断中断 TCON.RFERRIF中断标志中断标志/判断判断RFERRIF中断是否发生中断是否发生if(RFERRIF = 1)位位名称名称复复位位R/W描述描述1RFERRIF0R/WH0RF内核错误中断标志,当发生内核错误中断时此位置内核错误中断标志,当发生内核错误中断时此位置1。0:
9、无中断:无中断1:发生中断:发生中断 RFERR中断中断- 12 -5.2.1 中断中断 RF中断中断 RF中断其功能是数据发送和接收中断。中断其功能是数据发送和接收中断。RF中断是上升沿触发的,通过中断是上升沿触发的,通过控制控制SFR寄存器的寄存器的IEN2.RFIE位使能,并且在位使能,并且在S1CON.RFIF保存了保存了RFIF中断标志位中断标志位- 13 -5.2.1 中断中断 RF中断中断 IEN2.RFIE位位名称名称复位复位R/W描述描述0RFIE0R/WRF一般中断使能一般中断使能0:中断禁止:中断禁止1:中断使能:中断使能/使能使能RF中断中断IEN2 |=0 x01;-
10、 14 -5.2.1 中断中断 RF中断中断 S1CON.RFIF 中断标志中断标志/判断判断RF一般中断是否发生一般中断是否发生if(RFIF_1 = 1)&( RFIF_2 = 1) 位位名称名称复位复位R/W描述描述7:2-000000R/W保留保留1RFIF_10R/WRF一般中断。一般中断。RF有两个中断标志,有两个中断标志,RFIF_1和和RFIF_0,设,设置其中一个标志就会请求中断服务。当无线设备请求中断置其中一个标志就会请求中断服务。当无线设备请求中断时两个标志都要设置。时两个标志都要设置。0:无中断:无中断1:中断发生:中断发生0RFIF_00R/WRF一般中断。一般中断。
11、RF有两个中断标志,有两个中断标志,RFIF_1和和RFIF_0,设,设置其中一个标志就会请求中断服务。当无线设备请求中断置其中一个标志就会请求中断服务。当无线设备请求中断时两个标志都要设置。时两个标志都要设置。0:无中断:无中断1:中断发生:中断发生- 15 -5.2.2 中断寄存器中断寄存器 RF内核的两个中断源(内核的两个中断源(RFERR和和RF),是),是RF内核中若干中断源的组合,其内核中若干中断源的组合,其中每个单独的中断源在中每个单独的中断源在RF内核中有自己的中断屏蔽寄存器和中断标志寄存器。内核中有自己的中断屏蔽寄存器和中断标志寄存器。 中断屏蔽寄存器中断屏蔽寄存器 中断标志
12、寄存器中断标志寄存器- 16 -5.2.2 中断寄存器中断寄存器 中断屏蔽寄存器中断屏蔽寄存器 RF中断屏蔽寄存器中断屏蔽寄存器RFIRQM0 RF中断屏蔽寄存器中断屏蔽寄存器RFIRQM1 RF错误中断屏蔽寄存器错误中断屏蔽寄存器RFERRM - 17 -5.2.2 中断寄存器中断寄存器 中断屏蔽寄存器中断屏蔽寄存器 RF中断屏蔽寄存器中断屏蔽寄存器RFIRQM0位位名称名称复位复位R/W描述描述7RXMASKZERO0R/WRXENABLE寄存器从一个非零状态到全零状态。寄存器从一个非零状态到全零状态。0:中断禁用:中断禁用1:中断使能:中断使能6RXPKTDONE0R/W接收到一个完整的
13、帧接收到一个完整的帧0:中断禁用:中断禁用1:中断使能:中断使能5FRAME_ACCEFTED0R/W帧经过帧过滤帧经过帧过滤0:中断禁用:中断禁用1:中断使能:中断使能4SRC_MATCH_FOUND0R/W发现源匹配发现源匹配0:中断禁用:中断禁用1:中断使能:中断使能3SRC_MATCH_DONE0R/W源匹配完成源匹配完成0:中断禁用:中断禁用1:中断使能:中断使能2FIFOP0R/WRXFIFO中的字节数超过设置的阈值。当收到一个完成的帧后会触发中中的字节数超过设置的阈值。当收到一个完成的帧后会触发中断断0:中断禁用:中断禁用1:中断使能:中断使能1SFD0R/W收到或发出收到或发出
14、SFD0:中断禁用:中断禁用1:中断使能:中断使能0ACT_UNUSED0R/W保留保留0:中断禁用:中断禁用1:中断使能:中断使能/ RXPKTDONE 中断位使能中断位使能RFIRQM0 |= (16);- 18 -5.2.2 中断寄存器中断寄存器 中断屏蔽寄存器中断屏蔽寄存器 RF中断屏蔽寄存器中断屏蔽寄存器RFIRQM1位位名称名称复位复位R/W描述描述7:6-00R0保留,读作保留,读作05CSP_WAIT0R/WCSP的一条等待指令之后继续进行的一条等待指令之后继续进行0:中断禁用:中断禁用1:中断使能:中断使能4CSP_STOP0R/WCSP停止程序执行停止程序执行0:中断禁用:
15、中断禁用1:中断使能:中断使能3CSP_MANINT0R/W来自来自CSP的手动中断产生的手动中断产生0:中断禁用:中断禁用1:中断使能:中断使能2RFIDLE0R/W射频状态机制进入空闲状态射频状态机制进入空闲状态0:中断禁用:中断禁用1:中断使能:中断使能1TXDONE0R/W发送一个完整的帧完成发送一个完整的帧完成0:中断禁用:中断禁用1:中断使能:中断使能0TXACKDONE0R/W完整发送了一个确认帧完整发送了一个确认帧0:中断禁用:中断禁用1:中断使能:中断使能/ TXPKTDONE 中断位使能中断位使能RFIRQM1 |= (11);- 19 -5.2.2 中断寄存器中断寄存器
16、中断屏蔽寄存器中断屏蔽寄存器 RF错误中断屏蔽寄存器错误中断屏蔽寄存器RFERRM位位名称名称复位复位R/W描述描述7-0R0保留保留6STROBEERR0R/W命令选通命令选通 0:中断禁用:中断禁用1:中断使能:中断使能5TXUNDERF0R/WTXFIFO下溢下溢0:中断禁用:中断禁用1:中断使能:中断使能4TXOVERF0R/WTXFIFO上溢上溢0:中断禁用:中断禁用1:中断使能:中断使能3RXUNDERF0R/WRXFIFO下溢下溢0:中断禁用:中断禁用1:中断使能:中断使能2RXOVERF0R/WRXFIFO上溢上溢0:中断禁用:中断禁用1:中断使能:中断使能1RXABO0R/W
17、接收一个帧被停止接收一个帧被停止0:中断禁用:中断禁用1:中断使能:中断使能0NLOCK0R/W频率合成器在接收器件超时或锁丢失后,完成锁失败频率合成器在接收器件超时或锁丢失后,完成锁失败0:中断禁用:中断禁用1:中断使能:中断使能- 20 -5.2.2 中断寄存器中断寄存器 中断标志寄存器中断标志寄存器 RFIRQF0 RFIRQF1 错误中断标志寄存器错误中断标志寄存器RFIERRF - 21 -5.2.2 中断寄存器中断寄存器 中断标志寄存器中断标志寄存器 RFIRQF0位位名称名称复位复位R/W描述描述7RXMASKZERO0R/W0RXENABLE寄存器从一个非零状态到全零状态。寄存
18、器从一个非零状态到全零状态。0:无中断发生:无中断发生1:中断发生:中断发生6RXPKTDONE0R/W0接收到一个完整的帧接收到一个完整的帧0:无中断发生:无中断发生1:中断发生:中断发生5FRAME_ACCEPTED0R/W0帧经过帧过滤帧经过帧过滤0:无中断发生:无中断发生1:中断发生:中断发生4SRC_MATCH_FOUND0R/W0源匹配发现源匹配发现0:无中断发生:无中断发生1:中断发生:中断发生3SRC_MATCH_DONE0R/W0源匹配完成源匹配完成0:无中断发生:无中断发生1:中断发生:中断发生2FIFOP0R/W0RXFIFO中的字节数超过设置的阈值,当收到一个完整的中的
19、字节数超过设置的阈值,当收到一个完整的帧也会激发。帧也会激发。0:无中断发生:无中断发生1:中断发生:中断发生1SFD0R/W0收到发出收到发出SFD0:无中断发生:无中断发生1:中断发生:中断发生0ACT_UNUSED0R/W0保留保留/判断判断RF一般中断是否发生一般中断是否发生if(RFIRQF0 & 0 x40) - 22 -5.2.2 中断寄存器中断寄存器 中断标志寄存器中断标志寄存器 RFIRQF1位位名称名称复位复位R/W描述描述7:6-00R0保留保留5CSP_WAIT0R/W0CSP的一条等待指令之后继续执行的一条等待指令之后继续执行0:无中断发生:无中断发生1:中断发生:中
20、断发生4CSP_STOP0R/W0CSP停止程序执行停止程序执行0:无中断发生:无中断发生1:中断发生:中断发生3CSP_MANINT0R/W0来自来自CSP的手动中断产生的手动中断产生0:无中断发生:无中断发生1:中断发生:中断发生2RFIDLE0R/W0无线电状态机制进入空闲状态无线电状态机制进入空闲状态0:无中断发生:无中断发生1:中断发生:中断发生1TXDONE0R/W0发送一个完整的帧完成发送一个完整的帧完成0:无中断发生:无中断发生1:中断发生:中断发生0TXACKDONE0R/W0发送一个完成的确认帧完成发送一个完成的确认帧完成0:无中断发生:无中断发生1:中断发生:中断发生-
21、23 -5.2.2 中断寄存器中断寄存器 中断标志寄存器中断标志寄存器 RFIERRF 位位名称名称复位复位R/W描述描述7-0R0保留保留6STROBEERR0R/W0命令选通在它无法被处理的时间发出。如果当已经禁用无线电命令选通在它无法被处理的时间发出。如果当已经禁用无线电时尝试禁用,且当不再活跃时尝试禁用,且当不再活跃RX下尝试执行下尝试执行SACK、SACKPEND、或或SNACK命令命令0:无中断发生:无中断发生1:中断发生:中断发生5TXUNDERF0R/W0TXFIFO下溢下溢0:无中断发生:无中断发生1:中断发生:中断发生4TXOVERF0R/W0TXFIFO上溢上溢0:无中断
22、发生:无中断发生1:中断发生:中断发生3RXUNDERF0R/W0RXFIFO下溢下溢0:无中断发生:无中断发生1:中断发生:中断发生2RXOVERF0R/W0RXFIFO上溢上溢0:无中断发生:无中断发生1:中断发生:中断发生1RXABO0R/W0接收帧被停止接收帧被停止0:无中断发生:无中断发生1:中断发生:中断发生0NLOCK0R/W0频率合成器在接收期间超时或锁丢失后,完成锁失败频率合成器在接收期间超时或锁丢失后,完成锁失败0:无中断发生:无中断发生1:中断发生:中断发生- 24 -5.3 FIFO访问访问 CC2530发送或接收数据是通过发送或接收数据是通过FIFO操作来进行的。操作
23、来进行的。FIFO访问可以分为访问可以分为TXFIFO访问和访问和RXFIFO访问,其操作都是通过访问,其操作都是通过SFR寄存器的寄存器的RFD操作进行。操作进行。当写入当写入RFD寄存器时,数据被写入到寄存器时,数据被写入到TXFIFO,当读取数据,当读取数据RFD寄存器时,寄存器时,数据从数据从RXFIFO中读出。中读出。 位位名称名称复位复位R/W描述描述7:0RFD7:00 x00R/W数据写入寄存器,就是写入数据写入寄存器,就是写入TXFIFO,当读取该,当读取该寄存器的时候,即从寄存器的时候,即从RXFIFO中读取数据中读取数据unsigned char i;signed cha
24、r tx =dh;/将将mac的内容写到的内容写到RFD中中for(i=0;i3;i+) RFD = txi;- 25 -5.3.1 RXFIFO访问访问 RXFIFO存储器区域位于地址存储器区域位于地址0 x6000到到0 x607F,一共,一共128字节,在字节,在XREG存储区域中是可以访问的。存储区域中是可以访问的。RXFIFO可以保存一个或多个收到可以保存一个或多个收到的帧,只要总字节数不大于的帧,只要总字节数不大于128字节。有两种方式确定字节。有两种方式确定RXFIFO中的中的字节数:字节数: l 读读RFD寄存器寄存器 l 读读RXFIFOCNT寄存器寄存器 - 26 -5.3
25、.1 RXFIFO访问访问 读读RFD寄存器寄存器/ 通过通过RFD读接收的数据长度读接收的数据长度unsigned char len;len = RFD;- 27 -5.3.1 RXFIFO访问访问 读读RXFIFOCNT寄存器寄存器/ 通过通过RXFIFOCNT读接收的数据长度读接收的数据长度unsigned char len;len = RXFIFOCNT;位位名称名称复位复位R/W描述描述7:0RXFIFOCNT7:00 x00RRXFIFO中的字节数,无符号位中的字节数,无符号位通过通过RFD寄存器读取的帧长度为数据帧的寄存器读取的帧长度为数据帧的“实际发送数实际发送数据域据域+帧尾
26、域帧尾域”部分;通过部分;通过RXFIFOCNT寄存器读取的帧寄存器读取的帧长度为数据帧长度为数据帧“帧长度域帧长度域+实际发送数据域实际发送数据域+帧尾域帧尾域”,由于帧长度域占一个字节,因此通过由于帧长度域占一个字节,因此通过RXFIFOCNT寄存寄存器读出来的数据长度比通过器读出来的数据长度比通过RFD寄存器读出来的长度多寄存器读出来的长度多一个字节一个字节 - 28 -5.3.2 TXFIFO访问访问 TXFIFO存储器区域位于地址存储器区域位于地址0 x6080到到0 x60FF,一共,一共128字节。它在字节。它在XREG存储区域中是可以访问的。存储区域中是可以访问的。 在不产生在
27、不产生TX下溢的情况下,帧数据可以在执行下溢的情况下,帧数据可以在执行TX命令选通之前或之后缓冲命令选通之前或之后缓冲 阴影部分的字节必须写到阴影部分的字节必须写到TXFIFO的字节,其他字节可以被忽略。写入的字节,其他字节可以被忽略。写入TXFIFO的帧数据根据的帧数据根据AUTOCRC(CRC自动校验)是否启用可以分为两种自动校验)是否启用可以分为两种情况:当情况:当AUTOCRC为为0时,没有启动硬件自动检测;当时,没有启动硬件自动检测;当AUTOCRC为为1时,时,启动了硬件自动检测。启动了硬件自动检测。 - 29 -5.3.2 TXFIFO访问访问 TXFIFO中的字节数存储在中的字
28、节数存储在TXFIFOCNT寄存器中,可以通过两种方式来进行寄存器中,可以通过两种方式来进行TXFIFO的写操作的写操作 写入写入RFD寄存器。寄存器。 由于帧缓冲总是开始于由于帧缓冲总是开始于TXFIFO存储器的起始地址,因此可以通过使能存储器的起始地址,因此可以通过使能FRMCTRL1.IGNORE_TX_UNDERF位,直接将帧数据写到无线电存储器的位,直接将帧数据写到无线电存储器的RAM区域。本书中建议使用区域。本书中建议使用RFD写数据到写数据到TXFIFO。不建议用此种操作不建议用此种操作- 30 -5.4 发送模式发送模式 CC2530射频的发送过程:射频的发送过程:l 发送器的
29、控制发送器的控制l 帧的处理帧的处理- 31 -5.4.1 TX控制控制 在帧处理和报告状态下,无线电有许多内置的功能,这些功能可精确控制输出在帧处理和报告状态下,无线电有许多内置的功能,这些功能可精确控制输出帧的时序。帧的时序。 在设置在设置TX和和RX的过程中可以通过寄存器来设置,且必须在的过程中可以通过寄存器来设置,且必须在TX和和RX中同时设置中同时设置 寄存器名称寄存器名称值(十六进制)值(十六进制)描述描述AGCCTRL10 x15调整调整AGC目标值目标值TXFILTCFG0 x09设置设置TX抗混叠过滤器抗混叠过滤器FSCAL10 x00降低降低VCO,推荐默认值获得最佳的,推
30、荐默认值获得最佳的EVM/设置设置TX抗混叠过滤器以获得合适的带宽抗混叠过滤器以获得合适的带宽TXFILTCFG = 0 x09;/调整调整AGC目标值目标值AGCCTRL1 = 0 x15;/获得最佳的获得最佳的EVMFSCAL1 = 0 x00;- 32 -5.4.2 帧处理帧处理 CC2530数据帧的基本结构如下:数据帧的基本结构如下: 同步头同步头 需要传输的数据需要传输的数据 帧尾帧尾- 33 -5.4.2 帧处理帧处理 同步头同步头 帧引导序列帧引导序列 帧开始界定符帧开始界定符 当已经发送了所需的帧引导序列字节数,射频部分会自动发送当已经发送了所需的帧引导序列字节数,射频部分会自
31、动发送1字节长的字节长的SFD(帧开始界定符)。(帧开始界定符)。SFD是固定的,软件不能改变其值。是固定的,软件不能改变其值。 - 34 -5.4.2 帧处理帧处理 需要传输的数据需要传输的数据 LEN(帧长度域):帧长度域用于确定要发送多少个字节。(帧长度域):帧长度域用于确定要发送多少个字节。 MAC帧:帧:MAC帧包括帧包括MHR(MAC帧头)和帧头)和MAC负载两部分,是来自负载两部分,是来自与与MAC层的数据。层的数据。 当发送了当发送了SFD,调制器开始从,调制器开始从TXFIFO读数据,首先读帧长度域,然后读数据,首先读帧长度域,然后是是MHR(MAC帧头)和帧头)和MAC负载
32、。负载。 - 35 -5.4.2 帧处理帧处理 帧尾帧尾 寄存器寄存器FRMCTRL0.AUTOCRC控制位控制帧尾域的帧校验序列自动产控制位控制帧尾域的帧校验序列自动产生,其中帧尾不写入生,其中帧尾不写入TXFIFO中,存储在一个单独的中,存储在一个单独的16位寄存器中。位寄存器中。 除了可能用于调试的目的,建议使能除了可能用于调试的目的,建议使能AUTOCRC。 如果如果FRMCTRL.AUTOCRC=0,那么调制器期望在,那么调制器期望在TXFIFO中找到中找到FCS,所以软件必须产生所以软件必须产生FCS,连同,连同MAC负载一起写到负载一起写到TXFIFO FRMCTRL0 帧处理寄
33、存器帧处理寄存器位位名称名称复位复位R/W描述描述7APPEND_DATA_MODE0R/W当当AUTOCRC = 0:可以不考虑:可以不考虑当当AUTOCRC = 1时有两种情况时有两种情况0:RSSI+ CRC_OK位和位和7位相关值附加到每个收到帧的末尾。位相关值附加到每个收到帧的末尾。1:RSSI+ CRC_OK位和位和7位位SRCRESINDEX附加到每个收到帧附加到每个收到帧的末尾。的末尾。6AUTOCRC1R/W在在TX中中1:硬件检查一个:硬件检查一个CRC-16,并附加到发送帧。不需要写最后,并附加到发送帧。不需要写最后2个个字节到字节到TXBUF.0:没有:没有CRC-16
34、附加到帧。帧的最后两个字节必须手动产生并写附加到帧。帧的最后两个字节必须手动产生并写到到TXBUF(如果没有发生(如果没有发生TX下溢)下溢)在在RX中:中:1:硬件检查一个:硬件检查一个CRC-16,并以一个,并以一个16位状态字寄存器代替位状态字寄存器代替RX_FIFO,包括一个,包括一个CRC_OK位。状态字可通过位。状态字可通过APPEND_DATA_MODE控制。控制。0:帧的最后:帧的最后2个字节(个字节(CRC-16域)存储在域)存储在RXFIFO,CRC校验校验(如果有必须手动完成)(如果有必须手动完成)5AUTOACK0R/W定义无线电是否自动发送确认帧。当定义无线电是否自动
35、发送确认帧。当AUTOACK使能,所有经使能,所有经过地址过滤接受的帧都设置确认请求标志,在接收之后自动确认过地址过滤接受的帧都设置确认请求标志,在接收之后自动确认一个有效的一个有效的CRC12符号周期。符号周期。0:AUTOACK禁用禁用1:AUTOACK使能使能- 36 -5.4.2 帧处理帧处理 帧尾帧尾FRMCTRL0 帧处理寄存器帧处理寄存器位位名称名称复位复位R/W描述描述4ENERGY_SCAN0R/W定定RSSI寄存器是否包括自能量扫描使能以来最新的信号强度或寄存器是否包括自能量扫描使能以来最新的信号强度或峰值信号强度峰值信号强度0:最新的信号强度:最新的信号强度1:峰值信号强
36、度:峰值信号强度3:2RX_MODE1:000R/W设置设置RX模式模式00:一般模式,使用:一般模式,使用RXFIFO01:保留:保留10:RXFIFO循环忽略循环忽略RXFIFO的溢出,无限接收的溢出,无限接收11:和一般模式一样,除了禁用符号搜索。当不用于找到符号可:和一般模式一样,除了禁用符号搜索。当不用于找到符号可以用于测量以用于测量RSSI或或CCA。1:0TX_MODE1:000R/W设置设置TX的测试模式的测试模式00:一般操作,发送:一般操作,发送TXFIFO01:保留,不能使用:保留,不能使用10:TXFIFO循环忽略循环忽略TXFIFO的溢出和读循环,无线发送的溢出和读循
37、环,无线发送11:发送来自:发送来自CRC的伪随机数,无限发送的伪随机数,无限发送- 37 -5.4.2 帧处理帧处理 数据帧的产生数据帧的产生 CC2530射频部分产生并自动传输物理层的同步头,包括帧引导序列和射频部分产生并自动传输物理层的同步头,包括帧引导序列和帧开始界定符(帧开始界定符(SFD)。)。 通过射频部分传输帧长度域和指定的字节数,包括通过射频部分传输帧长度域和指定的字节数,包括MAC帧头和帧头和MAC负负载。载。 通过操作寄存器计算并自动传输帧尾(通过操作寄存器计算并自动传输帧尾(FSC)。)。- 38 -5.5 接收模式接收模式 接收器的控制接收器的控制 RX帧的处理帧的处
38、理 - 39 -5.5.1 RX控制控制 一般接收数据是通过接收中断来处理的,在发送数据完成之后,首先要打开接一般接收数据是通过接收中断来处理的,在发送数据完成之后,首先要打开接收中断,接收中断是通过寄存器收中断,接收中断是通过寄存器RFIRQM0的第的第6位位RXPKTDONE和和IEN2寄存器寄存器的第的第0位来控制的位来控制的 /* 打开接收中断打开接收中断*/ 打开打开RX中断中断 RFIRQM0 |= (16);/打开打开RF中断中断IEN2 |= (10);/* 接收数据接收数据*/接收帧长度接收帧长度len = RFD;len &= 0 x7f;/将接收的数据写入将接收的数据写入
39、buf中中for (i = 0; i len; i+) bufi = RFD; Delay(200);- 40 -5.5.2 帧处理帧处理 CC2530的接收器收到的帧结构如下的接收器收到的帧结构如下 当当CC2530的射频模块接收到一个数据帧时执行以下操作的射频模块接收到一个数据帧时执行以下操作 a)移除同步头:由移除同步头:由CC2530射频硬件部分检测和移除收到的射频硬件部分检测和移除收到的PHY同步头(帧引导同步头(帧引导序列和序列和SFD)。)。b) 接收数据帧:通过操作寄存器接收帧长度域规定的字节数,(包括接收数据帧:通过操作寄存器接收帧长度域规定的字节数,(包括MHR和和MAC负
40、载)。负载)。c)帧过滤:通过操作寄存器可以实现帧过滤功能,拒绝接收目标不明确的数据帧过滤:通过操作寄存器可以实现帧过滤功能,拒绝接收目标不明确的数据帧。帧。- 41 -5.5.2 帧处理帧处理 CC2530的接收器收到的帧结构如下的接收器收到的帧结构如下 当当CC2530的射频模块接收到一个数据帧时执行以下操作的射频模块接收到一个数据帧时执行以下操作 d) 匹配源地址:包括多达匹配源地址:包括多达24个短地址的表,或个短地址的表,或12个扩展个扩展IEEE地址。源地址存储地址。源地址存储在无线电在无线电RAM中。中。e)自动自动FCS检查:通过操作寄存器可以选择把自动检查的结果和其它状态值检
41、查:通过操作寄存器可以选择把自动检查的结果和其它状态值(RSSI、LQI和源匹配结果)填入接收到的帧中。和源匹配结果)填入接收到的帧中。f)具有正确时序的自动确认传输:可以通过操作寄存器且正确设置帧未决位,具有正确时序的自动确认传输:可以通过操作寄存器且正确设置帧未决位,基于源地址匹配和基于源地址匹配和FCS校验的结果校验的结果 “匹配源地址匹配源地址”是符合是符合IEEE802.15.4标准的,在直接操标准的,在直接操作寄存器实现数据的发送和接收作寄存器实现数据的发送和接收是可以不考虑此项操作的,即可是可以不考虑此项操作的,即可以禁止帧过滤功能以禁止帧过滤功能。 - 42 -5.6 CSMA
42、/CA选通处理器选通处理器 CSMA/CA选通处理器提供控制选通处理器提供控制CPU和无线射频模块之间的通信。和无线射频模块之间的通信。CSMA/CA选通处理器通过选通处理器通过SFR寄存器寄存器RFST以及以及XREG寄存器和寄存器和CPU通信。本书中采用通信。本书中采用RFST寄存器和寄存器和CPU进行通信。进行通信。 RFST CSMA/CA选通处理选通处理寄存器寄存器位位名称名称复位复位R/W描述描述7:0RFST7:00 x00R/WH0无线电的选通命令写入此寄存器,当此寄存器准无线电的选通命令写入此寄存器,当此寄存器准备好一个新的命令时,该寄存器被清零(备好一个新的命令时,该寄存器
43、被清零(0 x00)。)。/为为RX使能并校准频率合成器使能并校准频率合成器RFST = 0 xe3;写入写入RFST寄存器的指令为寄存器的指令为CC2530的的RF指指令集令集 ,操作,操作RFST实现使能实现使能RX并校准频率并校准频率合成器的操作指令码为合成器的操作指令码为0 xe3 - 43 -5.6 CSMA/CA选通处理器选通处理器 以下内容将实现任务描述以下内容将实现任务描述5.D.1 ,操作寄存器实现数据的发送接收。发送节,操作寄存器实现数据的发送接收。发送节点发送完数据点发送完数据LED1灯闪烁,接收节点接收完数据后灯闪烁,接收节点接收完数据后LED1闪烁闪烁 射频初始化程序
44、射频初始化程序 void rf_init()/硬件硬件CRC以及以及AUTO_ACK使能使能FRMCTRL0 |= (0 x20 | 0 x40);/设置设置TX抗混叠过滤器以获得合适的带宽抗混叠过滤器以获得合适的带宽TXFILTCFG = 0 x09;/调整调整AGC目标值目标值AGCCTRL1 = 0 x15;/获得最佳的获得最佳的EVMFSCAL1 = 0 x00;/ RXPKTDONE 中断位使能中断位使能RFIRQM0 |= (16);/ RF 中断使能中断使能IEN2 |= (10);/开中断开中断EA = 1;/信道选择,选择信道选择,选择11信道信道FREQCTRL = 0 x
45、0b; /目标地址过滤期间使用的短地址目标地址过滤期间使用的短地址SHORT_ADDR0 = 0 x05;SHORT_ADDR1 = 0 x00;/目标地址过滤期间使用的目标地址过滤期间使用的PANIDPAN_ID0 = 0 x22; PAN_ID1 = 0 x00;/清除清除RXFIFO缓冲区并复位解调器缓冲区并复位解调器 RFST = 0 xed; /为为RX使能并校准频率合成器使能并校准频率合成器RFST = 0 xe3; /禁止帧过滤禁止帧过滤FRMFILT0 &= (10);- 44 -5.6 CSMA/CA选通处理器选通处理器 以下内容将实现任务描述以下内容将实现任务描述5.D.1
46、 ,操作寄存器实现数据的发送接收。发送节,操作寄存器实现数据的发送接收。发送节点发送完数据点发送完数据LED1灯闪烁,接收节点接收完数据后灯闪烁,接收节点接收完数据后LED1闪烁闪烁 发送程序发送程序 void tx() unsigned char i; signed char tx=hello; /为为RX使能并校准频率合成器使能并校准频率合成器 RFST = 0 xe3; / TX_ACTIVE | SFD while (FSMSTAT1 & (11) | (15); /禁止禁止RXPKTDONE中断中断 RFIRQM0 &= (16); /禁止禁止RF中断中断 IEN2 &= (10);
47、 / 清除清除TXFIFO缓存缓存 RFST = 0 xee; / 清除清除 TXDONE 中断中断 RFIRQF1 = (11); / 发送的第一个字节是传输的帧长度发送的第一个字节是传输的帧长度 RFD = 5; /将将mac的内容写到的内容写到RFD中中 for(i=0;i5;i+) RFD = txi; / 打开打开RX中断中断 RFIRQM0 |= (16); /打开打开RF中断中断 IEN2 |= (10); /校准后使能校准后使能TX RFST = 0 xe9; /等待传输结束等待传输结束 while (!(RFIRQF1 & (11); /清除清除 TXDONE状态状态 RFI
48、RQF1 = (11); /LED1灯状态改变灯状态改变 LED1=LED1; /延时延时 Delay(200); Delay(200);- 45 -5.6 CSMA/CA选通处理器选通处理器 以下内容将实现任务描述以下内容将实现任务描述5.D.1 ,操作寄存器实现数据的发送接收。发送节,操作寄存器实现数据的发送接收。发送节点发送完数据点发送完数据LED1灯闪烁,接收节点接收完数据后灯闪烁,接收节点接收完数据后LED1闪烁闪烁 接收程序接收程序 /接收中断处理接收中断处理#pragma vector=RF_VECTOR_interrupt void rf_isr(void) unsigned
49、char i; /关中断关中断IEN2 &= 0X01; /接收帧结束接收帧结束if (RFIRQF0 & (16) /接收帧长度接收帧长度len = RFD;len &= 0 x7f;/将接收的数据写入将接收的数据写入buf中中for (i = 0; i len; i+) bufi = RFD;Delay(200);/ 清清RF中断中断S1CON = 0; /清清 RXPKTDONE中断中断 RFIRQF0 &= (16); /LED1等状态改变等状态改变LED1 = LED1;IEN2 |= (10);- 46 -5.6 CSMA/CA选通处理器选通处理器 以下内容将实现任务描述以下内容将
50、实现任务描述5.D.1 ,操作寄存器实现数据的发送接收。发送节,操作寄存器实现数据的发送接收。发送节点发送完数据点发送完数据LED1灯闪烁,接收节点接收完数据后灯闪烁,接收节点接收完数据后LED1闪烁闪烁 主函数主函数 #include ioCC2530.h#define LED1 P1_0#define LED2 P1_1static unsigned char buf128;static unsigned char len=0;unsigned char i;void main(void) /P1为普通为普通 I/O 口口 P1SEL &= (10); /P1.0 P1.1设置为输出设置为
51、输出 P1DIR |= 0 x03; /关闭关闭LED1 LED1=1; /关闭关闭LED2 LED2=1; /关闭总中断关闭总中断 EA = 0; /设置时钟频率为设置时钟频率为32M SLEEPCMD &= 0 x04; /等待时钟稳定等待时钟稳定 while(!(SLEEPSTA & 0 x40); CLKCONCMD &= 0 x47; SLEEPCMD |= 0 x04; /初始化初始化RF rf_init(); /中断使能中断使能 EA = 1; /发送或等待接收中断发送或等待接收中断 while(1) /宏定义宏定义RX #ifndef RX /如果没有定义如果没有定义RX,开始
52、发送,开始发送 tx(); /延时延时 Delay(200); Delay(200); /如果定义如果定义RX,等待接收中断,等待接收中断 # else #endif - 47 -5.6 CSMA/CA选通处理器选通处理器 以下内容将实现任务描述以下内容将实现任务描述5.D.1 ,操作寄存器实现数据的发送接收。发送节,操作寄存器实现数据的发送接收。发送节点发送完数据点发送完数据LED1灯闪烁,接收节点接收完数据后灯闪烁,接收节点接收完数据后LED1闪烁闪烁 实验结果实验结果 l分别将发送程序与接收程序下载至两个不同的设备中,首先打开发分别将发送程序与接收程序下载至两个不同的设备中,首先打开发送
53、设备,可以观察到发送设备的送设备,可以观察到发送设备的LED1闪烁;然后打开接收设备,可闪烁;然后打开接收设备,可以观察到接收设备的以观察到接收设备的LED1闪烁频率和发送设备的闪烁频率和发送设备的LED1是相同的。是相同的。如果将发送设备关掉,接收设备的如果将发送设备关掉,接收设备的LED1将停止闪烁。将停止闪烁。 - 48 -5.7 IEEE802.15.4 CC2530芯片的射频发送和接收是通过操作寄存器来实现的,虽然直接操作芯片的射频发送和接收是通过操作寄存器来实现的,虽然直接操作寄存器可以实现数据的发送和接收,但是直接操作寄存器实现数据的发送和寄存器可以实现数据的发送和接收,但是直接
54、操作寄存器实现数据的发送和接收存在以下弊端:接收存在以下弊端:l不能指定接收者,即一个接收设备可以接收任何一个发送者发来的不能指定接收者,即一个接收设备可以接收任何一个发送者发来的数据。数据。l当发送者比较多时会出现信道碰撞问题。当发送者比较多时会出现信道碰撞问题。l不能建立个域网。不能建立个域网。- 49 -5.7.1 IEEE802.15.4调制规范调制规范 IEEE802.15.4的数字高频调制使用的数字高频调制使用2.4G直接序列扩频技术。直接序列扩频技术。 直接序列扩频(直接序列扩频(Direct Sequence Spread Spectrum)工作方式,简称直)工作方式,简称直扩
55、方式(扩方式(DSSS方式)。方式)。 DSSS是直接用伪噪声序列对载波进行调制,要传送的数据信息需要经过信是直接用伪噪声序列对载波进行调制,要传送的数据信息需要经过信道编码后,进行调制。道编码后,进行调制。 在接收机收到发射信号后,首先通过解调以便能够及时恢复出数据信息,完在接收机收到发射信号后,首先通过解调以便能够及时恢复出数据信息,完成整个直扩通信系统的信号接收。成整个直扩通信系统的信号接收。 - 50 -5.7.1 IEEE802.15.4调制规范调制规范 采用直接序列扩频系统的优点如下采用直接序列扩频系统的优点如下l 抗干扰能力强,且具有强的抗多径干扰能力。抗干扰能力强,且具有强的抗
56、多径干扰能力。l 对其他电台干扰小,抗截获能力强。对其他电台干扰小,抗截获能力强。l 可以同频工作。可以同频工作。l 便于实现多址通信。便于实现多址通信。- 51 -5.7.2 IEEE802.15.4数据格式数据格式 IEEE802.15.4定义了定义了MAC层以及物理层的通信数据格式。其中,物理层的层以及物理层的通信数据格式。其中,物理层的数据格式是在数据格式是在MAC协议数据单元格式前加上同步头以及物理头两部分协议数据单元格式前加上同步头以及物理头两部分 同步头包括帧引导序列和帧开始界定符。同步头包括帧引导序列和帧开始界定符。 物理头即帧长度域。物理头即帧长度域。 物理层服务数据单元(物
57、理层服务数据单元(PSDU)即)即MAC协议数据单元(协议数据单元(MPDU),包括以下),包括以下几部分:几部分:MAC头、头、MAC载荷以及帧尾。载荷以及帧尾。- 52 -5.7.3 IEEE802.15.4射频程序设计射频程序设计 IEEE802.15.4射频程序主要分为发送和接收两部分。其主函数部分程序设计射频程序主要分为发送和接收两部分。其主函数部分程序设计流程如下:流程如下:- 53 -5.7.3 IEEE802.15.4射频程序设计射频程序设计 IEEE802.15.4射频程序主要分为发送和接收两部分。其操作过程如下:射频程序主要分为发送和接收两部分。其操作过程如下: 下载软件包
58、下载软件包 定义发送和接收选项定义发送和接收选项 修改程序修改程序- 54 -5.7.3 IEEE802.15.4射频程序设计射频程序设计 下载软件包下载软件包 首先从首先从TI的官方网站上的官方网站上下载下载srf05_cc2530软件包,解压后使用软件包,解压后使用IAR打开打开CC2530 BasicRFidesrf05_cc2530iarlight_switch.eww文件文件 从从TI官方网站官方网站下载下载的的srf05_cc2530软件包,要求软件包,要求用用IAR 7.51A版本打开版本打开 - 55 -5.7.3 IEEE802.15.4射频程序设计射频程序设计 定义发送和接
59、收选项定义发送和接收选项 为了实现点对点的发送和接收需要对为了实现点对点的发送和接收需要对light_switch工程做如下改动:工程做如下改动: 需要定义需要定义“发送发送”和和“接收接收”两个不同的工程选项,本例程将两个不同的工程选项,本例程将“发送发送”定定义为义为“SWITCH”,“接收接收”定义为定义为“LIGHT”。 以定义发送选项以定义发送选项“SWITCH为例讲解为例讲解”- 56 -5.7.3 IEEE802.15.4射频程序设计射频程序设计 定义发送和接收选项定义发送和接收选项点击工程的工具栏的Project选项,选择下拉菜单中的“Edit Configuration”选项
60、 - 57 -5.7.3 IEEE802.15.4射频程序设计射频程序设计 定义发送和接收选项定义发送和接收选项点击点击Edit Configuration选选项后,弹出项后,弹出Configuration for “light_switch”对话框,对话框,点击点击“New”选项选项 - 58 -5.7.3 IEEE802.15.4射频程序设计射频程序设计 定义发送和接收选项定义发送和接收选项弹出弹出“New Configuration”的对的对话框后,在此对话框的话框后,在此对话框的“Name:”一栏中写入一栏中写入“SWITCH”,点击,点击“OK”选项选项 - 59 -5.7.3 IE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 鲁智深拳打镇关西课件
- 2026年家用智能充电桩项目可行性研究报告
- 重庆市重庆市第一中学2025-2026学年七校联考高考一模化学试题含解析
- 四川省眉山一中办学共同体重点中学2026年高三第二学期学生月考测试卷(2.22)生物试题试卷含附加题含解析
- 山西省太原市山西大学附属中学2026届高三第二学期开学质量检测试题生物试题试卷含解析
- 河北省衡水市故城县高级中学2026年高三3月月考生物试题试卷含解析
- 广西壮族自治区贵港市港南中学2025-2026学年高三下学期第一次统练生物试题含解析
- 高速公路养护知识
- 高血压知识课件
- 2025-2030竹笋加工食品市场前景发展动态研究分析评估规划趋势分析报告
- 股骨干骨折脂肪栓塞护理查房
- 美容护肤技术授课张秀丽天津医学高等专科学校04课件
- GB/T 25383-2025风能发电系统风力发电机组风轮叶片
- 公司越级汇报管理制度
- 石油化工基础知识课件
- 2025年江苏省淮安市涟水县中考一模化学试题(原卷版+解析版)
- DBJ33T 1307-2023 微型钢管桩加固技术规程
- 叉车安全管理人员岗位职责
- 忠诚宣言:出轨丈夫的保证书
- 苏教版四年级上册四则混合运算练习400题及答案
- 探伤检测报告
评论
0/150
提交评论