32 点对点射频通信实验.docx

上传人:牧羊曲112 文档编号:4881494 上传时间:2023-05-21 格式:DOCX 页数:6 大小:194.11KB
返回 下载 相关 举报
32 点对点射频通信实验.docx_第1页
第1页 / 共6页
32 点对点射频通信实验.docx_第2页
第2页 / 共6页
32 点对点射频通信实验.docx_第3页
第3页 / 共6页
32 点对点射频通信实验.docx_第4页
第4页 / 共6页
32 点对点射频通信实验.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《32 点对点射频通信实验.docx》由会员分享,可在线阅读,更多相关《32 点对点射频通信实验.docx(6页珍藏版)》请在三一办公上搜索。

1、3.2点对点射频通信实验一、实验目的1、在CC2430/1节点板上运行自己的程序。2、熟悉通过射频通信的基本方法。3、练习使用状态机实现收发功能。二、实验内容接收节点上电后进行初始化,然后通过指令ISRXON开启射频接收器,等待接收数据, 直到正确接收到数据为止,通过串口打印输出。发送节点上电后和接收节点进行相同的初始 化,然后将要发送的数据输出到TXFIFO中,再调用指令ISTXONCCA通过射频前端发送数 据。三、实验预备知识及工具1、掌握在IAR集成开发环境中编写和调试程序的基本过程。2、熟悉CC2430/1芯片射频寄存器的基本操作。四、实验设备及工具硬件:CC2430/1节点板、USB

2、接口的仿真器,PC机Pentium100以上。软件:PC机操作系统WinXP、IAR集成开发环境、串口监控程序,TI公司的烧写软件。五、实验原理无线电与CPU的两个中断向量有关,它们是RF和RFERR中断,RFERR用于TXFIFO 下溢和RXFIFO上溢的中断,RF用于无线电8个不同中断源(具体参考数据手册的RFIF 和RFIM寄存器的介绍)的中断。CC2430/1芯片有两个主要的中断控制SFR寄存器,用于 使能RF和RFERR中断。它们是:RFERR:IEN0.RFERRIERF:IEN2.RFIE两个主要的中断标志SFR寄存器保存了 RF和RFERR的中断标志。它们是:RFERR:TCO

3、N.RFERRRF:S1CON.RFIFRF中断是无线电8个不同中断源的结合。有两个SFR寄存器用于设置8个不同的 RFIF无线电中断标志和中断使能。它们是RFIF和RFIM寄存器。对于RF中断向量,SFR 寄存器的中断标志RFIF表示每个中断源的状态。RFIM的使能位用于为RF中断向量禁用 不同的中断源。注意在RFIM中屏蔽一个中断源不影响RFIF寄存器状态的更新。若清除中 断标志,需先清除RFIF再清除S1CON.RFIF,否则由于同一个中断S1CON.RFIF可能再次 设置。本实验中发送节点需要用到发送完成中断RFIF.IRQ_TXDONE,当发送节点将数据通过 射频发送出去后将设置RF

4、IF.IRQ_TXDONE中断标志,程序中通过判断该标志确定数据是否 发送成功(也可通过RFIM.TX_DONE使能发送完成中断,这样将在发送出数据后产生一个中 断,可在中断服务程序中进一步处理)。接收节点需要用到RFIF.IRQ_FIFOP中断标志,和 中断使能位RFIM.IM_FIFOP,当RXFIFO(射频接收缓冲器)中的字节数 高于通过寄存器IOCFG0.FIFOP_THR6:0设置的界限或一个数据帧结 束时将设置中断标志位RFIF.IRQ_FIFOP,当中断使能位RFIM.IM_FIFOP设置为 1时,RXFIFO中的字节数超过IOCFG0.FIFOP_THR6:0设置的界限或一个数

5、据帧结束时将产 生一个中断,可在中断服务程序中将RXFIFO用于设置RXFIFO(射频接收缓存器)中的数据取出。CPU使用一组命令选通来控制CC2430/1芯片无线电的运行,命令选通认为是单个字节 的指令,每个指令控制无线电的某些功能,这些命令选通必须用于使能频率合成器,使能接 收模式,使能传输模式和其它功能。总共为无线电定义了九个命令选通,它们可以分别写入 无线电,或以一定序列给定,连同一组专门的软件指令,组成一个简单的程序,从CPU到 无线电的所有命令选通的传输是通过CSMA-CA/命令选通处理(CSP)完成的。本程序中将用 到以下命令:表3-1命令选通表命令选通功能描述SRXON为RX使

6、能和校准频率合成器指令SRXON宣称输出FFCTL_SRXON_STRB,为RX使能和 校准频率合成器。该指令在执行下一条指令之前,等待无线SFLUSHTX清空 TXFIFO缓指令FLUSHTX清空TXFIFO缓冲器。该指令在执行下一 条指SFLUSHRX清器空 RXFIFO缓冲区并复位解指之前等待无HRX应答RXFIFO缓冲器,并复位解调器, 该指令在执行下一条指令之前,等待无线模块应答。STXCALN为TX使能和 校准指令STXCALN为TX使能和校准频率合成器。该指令在执 行下ISSTART开始程成运行指令指令有RT,从写入指令模块应斜的第一条指令开始运 行CSPISTXON在频率合成器

7、 校指令ISTXON在频率合成器校准之后使能TX,该指令在执 行下可通过准之后使能FQ访问一条指令和前等待无线模写入的应答寄存器时,数据被写入 到TXFIFO,当读取RFD时数据从RXFIFO中读出。CC2430/1芯片的硬件可自动生成CRC校验(该校验不包括发送帧的第一个字节,即数 据的长度),附在每一帧的帧尾,当MDMCTRLOL.AUTOCRC控制位设置为1时将使能硬件 CRC校验。FCS并不写入TXFIFO,而是存放在一个分隔开的16位寄存器中,在接收模式 下FCS由硬件校核,在接收期间FCS本身的序列不写入RXFIFO中 当MDMCTRLOL.AUTOCRC置1时,两个FCS字节被R

8、SSI值、平均相关值(用于链路质量指 示LQI)和CRC OK/notOK所取代,如果收到的CRC正确或低电平,则每帧的最后一个字 节的最高位将设置为1。CC2430/1芯片的硬件支持地址识别,本实验发送的数据不符合802.15.4标准(基于 msstatePAN协议栈和zstack协议栈的实验发送的数据符合802.15.4标准)的,未用到 地址识别,通过将MDMCTRLOH.ADDR_DECODE置零屏蔽硬件地址识别功能。寄存器RFPWR.RREG_RADIO_PD用于使能和禁用模拟无线设备,当该位位0时给模拟无 线设备供电,为1时给模拟无线设备断电,应在射频初始化中将该位置0,使能模拟无线

9、 设备。寄存器FSMTC1.AUTO_TX2RX_OFF,控制在TX后自动进行RX,同时适用于数据包和ACK 包,该位置0在TX后自动RX,1在TX后不自动RX,一般应将此位置0,寄存器 FSMTC1.ABORTRX_ON_SRXON,控制当SRXON选通发送时终止 RX,当该位为0时,SRXON 发送时包接收不终止,为1时SRXON发送时包接收终止,一般该位需置0。本实验为简单的射频通讯实验,不需要对数据进行应答。程序的执行流程如下所示:图3-3程序执行流程图下面对射频初始化,发送数据和接收数据部分程序进行介绍。射频初始化中需要清除射频中断标志,使能射频中断(用于接收数据的中断),关闭地 址

10、识别功能,使能自动CRC校验,配置RF寄存器FSMTC1,设置寄存器IOCFG0的值, 通过命令选通来清除RX和TX缓存器,指令SFLUSHRX应该执行两次,以复位帧首定界符(SFD),使能无线射频的接收,依次用到以下指令SFLUSHTX、SFLUSHRX、SRXON、 STXCALN、 ISSTARTo射频发送数据的函数如下所示:BYTE halRfSendPacket(BYTE* pData, BYTE length)BYTE i ;if(length 125) | | (length = 0)/每一帧数据的最大长度是125字节,加 上数据长度和FCS共128字节return 0;ISFL

11、USHTX; /确保发送缓存器在发送数据前为空RFIF &= IRQ_TXDONE;/清除发送完成中断标志RFD = length + 2;/发送数据的第一个字节为数据的长度,需要加上CRC校验/向TXFIFO中插入数据for(i=0;ilength;i+)RFD = pDatai;ISTXON; /发送数据/等待发送完成while(!(RFIF & IRQ_TXDONE);RFIF &= IRQ_TXDONE;/发送完成,清除发送中断标志return 1;射频的接收通过在射频中断服务程序中执行,设置一个表示接收状态的全局变量 rxstatus,它取两种值,接收数据前赋值为RX_WAIT,当中

12、断服务程序完成数据接收时,将 该变量设置为PACKET_RECEIVED,在接收函数中判断该状态值,当 该 状态值为PACKET_RECEIVED时,表示接收完成,退出接收函数。射频中断服务程序如 下所示:#pragma vector=RF_VECTOR/设置中断向量为射频中断向量,表明是射频中断服务程 序_interrupt void spp_rf_IRQ(void)BYTE enabledAndActiveInterrupt;/用 于存放中断标志BYTE len,i;INT_GLOBAL_ENABLE(INT_OFF);/关闭所有中断enabledAndActiveInterrupt =

13、RFIF;RFIF = 0x00;/清除所有中断标志INT_SETFLAG(INUM_RF, INT_CLR); / 清除 MCU 中断标志 enabledAndActiveInterrupt &= RFIM;if(enabledAndActiveInterrupt & IRQ_FIFOP)/判 断是否是接收数据的中断len = (RFD & 0x7F);/存放接收数据的长度for(i=0; ilen-1; i+)rf_receivei = RFD; / rf_receive127为定义的静态全局数组,用来存放 接收数据if(rf_receive len-2&0x80)/通过CRC校验判断该数

14、据是否正确halreceivecallback(,rf_receive len-1);rxstatus=PACKET_RECEIVED;ISFLUSHRX;/清除接收缓存器的数据,清除两次以复位帧首界定符ISFLUSHRX;RFIM |= IRQ_FIFOP; /用于下次接收数据INT_GLOBAL_ENABLE(INT_ON); /开启中断六、实验步骤1、打开工程,在3.2点对点射频通信rf_test文件夹下。2、将节点类型变量设置为RECEIVE_NODE,编译工程,生成HEX文件,将HEX文件下 载到CC2430/1节点板中,作为接收节点3、将节点类型变量设置为SEND_NODE,编译工

15、程,生成HEX文件,将HEX文件下载 到CC2430/1节点板中,作为发送节点。4、将发送节点通过串口线连接到PC上,打开串口调试助手,配置串口助手波特率为 57600。5、复位发送节点(让节点发送数据),可是看到串口调试助手上打印出发送情况。6、将接收节点通过串口线连接到PC上,先复位接收节点,再复位发送节点,让节点 重新收发数据,可以看到串口调试助手上打印出接收的数据7、修改发送数据的内容和长度,发送最小长度的字符串(1个字符),编译工程,重 复步骤2、3,先复位接收节点,再复位发送节点,让节点重新收发数据,可以在串口调试 助手上观察打印出接收的数据。8、修改发送数据的内容和长度,发送最大

16、长度(125个字节)的字符串,编译工程, 重复步骤2、3,先复位接收节点,再复位发送节点,让节点重新收发数据,可以在串口调 试助手上观察打印出接收的数据。七、实验数据分析及结论发送节点将数据发送出去后,接收节点接收到数据,并通过串口调试助手打印输出。发 送数据的最大长度为125(加上发送的数据长度和校验,实际发送的数据长度为128字节)。 结果:Ford文件 编辑但)视图但)插入任)格式工具隹)表格Q)窗口地)帮助Qi)涯入需要帮助的问题忠次E园11 lift 4司f 125% D 中阅读麒Q t也正文 Times New Roman 五号 B I Q 言 M正事切 A amu JUiLiCC

17、2430 - ID0050: Erase, program and verify OKBttMmnzKAOiMS $+穴*CM110 I 112 IinjtMTot Read flash into hexWriteNo upper pagesWrite protect boot bBlock debug commands (incl. readNB: Cannot Append and verifyPerform actionsI14 I 116 I 118 I 120112211241 i26i i28i i30132i42ii441i4$ i i+8f2 4JtAM*lXlriomane nI2 44tMaXKft=(3 回:* t$J 位置12. 9厘米IAR Embedded Workb.物联网实验指导书.p.文档 1 - Microsoft W.-.tf; Texas Instruments串口调试助手

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号