全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验十七 无线收发实验 一实验目的 1.熟悉并学习使用开发板上的无线通信模块(NRF24L01) 2.复习串口以及 GPIO 的应用 3.掌握 SPI 的基本知识 4.理解 NRF24L01 无线模块的基本工作原理 二实验原理 1.NRF24L01 nRF24L01 是一款工作在 2.42.5GHz 世界通用 ISM 频段的单片无线收发器 芯片无线收发器包括:频率发生器增强型 SchockBurstTM 模式控制器、功率放大 器、晶体振荡器、调制器解调器输、出功率频道选择和协议的设置可以通过 SPI 接口进行设置。 极低的电流消耗当工作在发射模式下发射功率为-6dBm 时电流消耗为 9.0mA 接收模式时为 12.3mA 掉电模式和待机模式下电流消耗更低。 我们需要格外注意一下几个参数: (1) 供电电压 1.93.6V (2) 数据传输率 1 或 2Mbps (3) SPI 接口数据速率 08Mbps (4) 可接受 5V 电平的输入 (5) 125 个可选工作频道(信道) (6) 可以同时接收 6 个频道 引脚名称 方向 发送模式 接收模式 待机模式 掉电模式 CE 输入 高电平10us 高电平 低电平 CSN 输入 SPI 片选使能,低电平使能 SCK 输入 SPI 时钟 MOSI 输入 SPI 串行输入 MISO 三态输出 SPI 串行输出 IRQ 输出 中断,低电平使能 表 1 NRF24L01 管脚定义 2.SPI SPI(Serial Peripheral Interface)串行外围模块接口是 Motorola 首先 在其 MC68HCXX 系列处理器上定义的,它是一种同步的高速串行通信协议。这里 我们需要注意的一点是串行异步通信,也就是我们平常所说的串口,是不需要 时钟同步,所以叫做串行异步通信,而 SPI 需要时钟进行同步,这就是两者的 区别所在。 SPI 总线系统是一种同步串行外设接口;是一种高速的,全双工,同步的通 信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多 的芯片集成了这种通信协议。SPI 有主从两种工作方式,可以工作在 3 线或者 4 线模式下。 先简单介绍一下 3 线模式,3 线模式的管脚定义如表 2 所示 引脚 含义 主机模式 从机模式 SIMO 从进主出 数据输出引脚 数据输入引脚 SOMI 从出主入 数据输入引脚 数据输出引脚 UCLK USART 时钟 输出时钟 输入时钟 表 2 线模式管脚定义 写到这里大家可以有些疑问为什么在我们介绍 NRF24L01 的过程中,我们认 为 MOSI 管脚是输入管脚,而 SPI 介绍中 SIMO 既可以输入也可以是输出,在 NRF24L01 过程中,我们认为 MISO 是输出管脚,而 SPI 介绍中 SOMI 既可以输入 也可以是输出,其实这个问题的答案很简单,就是无论是接收还是发送 NRF24L01 一直处于从机模式,那么就和上表中的定义是完全符合的,由此我们 也可以知道,单片机中无论是收还是发都是处于主机模式。这一点在单片机端 口初始化过程中,有比较明显的体现。 4 线模式主要为了解决还有 STE 管脚,此管脚的作用主要是解决多从机共享 总线,避免发生冲突。 4 线 SPI 操作在主模式中,STE 的含义如下: 0:SIMO 和 UCLK 被强制进入输入状态,简单的说就是在多主过程中,当另 一设备申请为主机,则当前的主机 SIMO 和 UCLK 引脚被强制为输入,不再驱动 SPI 总线,同时出错标志位 FE 和 URCTL 的中断标志位 URXIFG 置位。 1:SIMO 和 UCLK 正常操作 4 线 SPI 操作在从模式中,STE 的含义如下: 0:SOMI 正常操作,也就是说允许从机发送接收数据 1:SOMI 被强制进入输入输入状态,也就是禁止从机发送数据 由以上可以看出,解决多从机共享总线冲突的问题,主要是通过强制其余主 从机从为输出模式进入输入模式实现的。 3.原理图 NRF24l01 的原理图如图 1 所示 图 1 NRF24L01 原理图 NRF24L01 与 MSP430 的管脚对应关系如表 3 所示 NRF24L01 管脚 MSP430 管脚 NRF24L01 管脚 MSP430 管脚 NRF_CE P3.1 SPI1_MISO P3.0 NRF_CS P3.3 SPI1_MOSI P1.6 SPI1_SCK P3.2 NRF_IRQ P1.7 表3 NRF24L01与MSP430管脚对应关系 三程序设计 1端口初始化 由于单片机都设置为主机模式,所以主从初始化过程中端口相同 /单片机 IO 初始化 void RF24L01_IO_set(void) P1DIR /P1.6 输出 P1DIR |= 0x40; P1SEL P1IE=P1IE P3DIR /P3.0 输入 P3DIR |= 0x0E; P3SEL 我们可以清楚的看出,P1.6 设置为输出模式,P3.0 设置为输入模式,也 就是 MSP430F149 设置为主机模式 /NRF24L01 初始化 /功能:配置地址 频道 信道 void init_NRF24L01(void) delay_us(100); RF24L01_CE_0 ; / 片选使能 RF24L01_CSN_1; / 禁止 SPI RF24L01_SCK_0; / Spi clock line init high SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 写本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 写接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); / 频道 0 自动 ACK 应答允许 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允许接收地址只有频道 0 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 设置信道工作为 2.4GHZ,收发必须一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /设置接收数据长度,本次设置为 32 字节 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /设置发射速率为 1MHZ,发射功率为最大值 0dB SPI_RW_Reg(WRITE_REG + CONFIG, 0x0E); / IRQ 收发完成中断响应, 16 位 CRC ,主接收 此段代码的功能主要是配置 NRF24L01 的频道 信道 数据长度等。这里我 们设置频道 0,信道为 2.4G,数据长度为 32 位。 2发送数据 void nRF24L01_TxPacket(char * tx_buf) RF24L01_CE_0 ; /StandBy I 模式 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); / 装载接收端地址 SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); / 装载数据 / SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); / IRQ 收发完成中断响应,16 位 CRC,主 发送 RF24L01_CE_1; /置高 CE,激发数据发送 delay_us(10); 3接收数据 /函数:void SetRX_Mode(void) /功能:数据接收配置 void SetRX_Mode(void) RF24L01_CE_0 ; SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); / IRQ 收发完成中断响应, 16 位 CRC ,主接收 RF24L01_CE_1; delay_us(130);/注意不能太小 /函数:unsigned char nRF24L01_RxPacket(unsigned char* rx_buf) /功能:数据读取后放如 rx_buf 接收缓冲区中 /返回值为 1 表示读取完成 返回值为 0 表示读取失败 char nRF24L01_RxPacket(char* rx_buf) char revale=0; sta=SPI_Read(STATUS); / 读取状态寄存其来判断数据接收状况 if(sta /SPI 使能 SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);/ read receive payload from RX_FIFO buffer revale =1; /读取数据完成标志 SPI_RW_Reg(WRITE_REG+STATUS,sta); /接收到数据后 RX_DR,TX_DS,MAX_PT 都置高为 1,通 过写 1 来清楚中断标志 return revale; 四实验现象 将无线接收程序和无线发送程序分别下载到单片机,可以看到每接收到 一个数据 LED_2(P5.1)变化一次(熄灭或者点亮) ,此时 LED_4(P5.3)没 有变化; 如果没有接收到任何数据则 LED_4(P5.3)不停的变化,而 LED_2(P5.1)没有变化。 五注意事项 1.大家一起做实验的时候,同时使用 NRF24L01 可能会造成相互干扰的现 象,这时我们可以尝试做一下修改。如将发送程序中宏定义中 char TX_AD DRESSTX_ADR_WIDTH=0x34,0x43,0x10,0x10,0x01;改为 char TX_ADDRES STX_ADR_WIDTH=0x34,0x43,0x10,0x10,0x02;那么相应的接收程序中宏 定义 char RX_ADDRESSRX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;也应该相应的 改为 char RX_ADDRESSRX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x02。 2.NRF24L01 有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商品购货质保合同模板
- 团体采购采购合同范例
- 农民租地合同范例
- 2024互联网医院建设与医疗服务合作合同
- 代理雅迪合同模板
- 企业办公租赁合同范例
- 佰仟公司合同范例
- 商铺股合同范例
- 土地流转中止合同范例
- 占用场地合同模板
- 文明礼仪主题班会课件(共23张)
- 航站楼管理部《机场使用手册》实施细则
- 脑卒中基本知识课件
- 高效沟通与管理技能提升课件
- 消防维保方案 (详细完整版)
- 四年级上册英语课件- M3U1 In the school (Period 3 ) 上海牛津版试用版(共15张PPT)
- 档案馆建设标准
- 高边坡支护专家论证方案(附有大量的图件)
- 苏教版五年级上册数学试题-第一、二单元 测试卷【含答案】
- 人员定位矿用井口唯一性检测系统
- 电力系统数据标记语言E语言格式规范CIME
评论
0/150
提交评论