




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计 题目 基于nRF905的无线数据发射器电 路 设 计学院名称 电气工程学院指导老师 黄智伟 班 级 通信工程092班学 号 20094400228学生姓名 张晋杰 二0一二年五月摘要简要介绍内嵌AVR RISC微控制器的无线数据发射器nRF905的功能、内部结构、引脚排列及典型的应用电路。nRF905单片无线收发器是挪威Nordic公司推出的单片射频发射器芯片,工作电压为1.9-3.6V,32引脚QFN封装(5mm×5mm),工作于433/868/915MHz3个ISM频道。要求只有一个晶振,一个LiMnO2 铸造单元(CR2032或者类似的),三个电容,一个感应器,一个
2、调谐环路天线来实现完整的开关无线RF数据传送。关键字: 微型发射器 微控制器 VCO电感 外部环路滤波器 1. nRF905芯片简介-22. nRF905模块介绍-32.1 NRF905无线模块特点-41. 2.2 接口电路管脚说明nRF905可以自动完成处理字头和CRC(循环冗余码校验)的工作,可由片内硬件自动完成曼彻斯特编码/解码,使用SPI接口与微控制器通信,配置非常方便,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,在接收模式时电流为12.5mA。 nRF905单片无线收发器工作由一个完全集成的频率调制器,一个带解调器的接收器,一个功率放大器,一个晶体震荡器和一个调节器
3、组成。ShockBurst工作模式的特点是自动产生前导码和CRC,可以很容易通过SPI接口进行编程配置。 2.1 模块介绍NRF905无线模块特点:(1) 433Mhz 开放ISM 频段免许可证使用(2) 最高工作速率50kbps,高效GFSK调制,抗干扰能力强,特别适合工业控制场合(3) 125 频道,满足多点通信和跳频通信需要(4) 内置硬件CRC 检错和点对多点通信地址控制(5) 低功耗1.9 -3.6V 工作,待机模式下状态仅为2.5uA (6) 收发模式切换时间< 650us (7) 模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件
4、编程非常方便(8) TX Mode: 在+10dBm情况下,电流为30mA; RX Mode: 12.2mA (9) 标准DIP间距接口,便于嵌入式应用(10)RFModule-Quick-DEV 快速开发系统,含开发板2.2 接口电路管脚说明2.4.3 ShockBurst RX 接收流程接收流程寄存器包含目标器件地址字节长度由配置寄存器设置发送有效数据TX-Payload寄存器包含发送的有效ShockBurst 数据包数据字节长度由配置寄存器设置接收有效数据TX-Payload 寄存器包含接收到的有效ShockBurst 数据包数据字节长度由配置寄存器设置在寄存器中的有效数据由数据准备就绪
5、DR 指示2.5.2 SPI 指令设置当CSN 为低时, SPI接口开始等待一条指令。任何一条新指令均由CSN 的由高到低的转换开始。用于SPI 接口的有用命令见下表:SPI 串行接口指令设置3. 单片机最小系统介绍1.51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用1030uF,51单片机最小系统容值越大需要的复位时间越短。2.51单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。3.51单片机最小系统起振电容C2、C3一般
6、采用1533pF,并且电容离晶振越近越好,晶振离单片机越近越好4.P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从
7、1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms。 标识符号 地址 寄存器名称P3 0B0H I/O口3寄存器PCON 87H 电源控制及波特率选择寄存器SCON 98H 串行口控制寄存器SBUF 99H 串行数据缓冲寄存器TCON 88H 定时控制寄存器TMOD 89H 定时器方式选择寄存器TL0 8AH 定时器0低8位TH0 8CH 定时器0高8位TL1 8BH 定时器1低8位TH1 8DH 定时器1高8位4. 原理图及PCB图5.发射程序#include<reg52.
8、h>#define uint unsigned int#define uchar unsigned charsbit wei1 =P10;sbit wei2 = P11;sbit wei3=P12;sbit wei4=P13;uchar code table=0xc0,0xf9,0xa4,0xb0, /不带小数点的数码管编码表0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;uchar code table1=0x40,0x79,0x24,0x30, /带小数点的数码管编码表0x19,0x12,0x02,0x78,0x
9、00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e/*,0x3f,0x7f*/;unsigned char code ditab16 = 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;unsigned char data temp_data2 = 0x00,0x00 ;unsigned char data display5 = 0x00,0x00,0x00,0x00,0x00 ;/*-ptr8000.h无线发射nRF905模块Using for play
10、RF unit PTR8000-*/sbit ptr_en=P36;/1为发射模式,0为接收模式sbit ptr_ce=P15;/使能发射、接收模式sbit ptr_pwr=P31;/上电掉电模式sbit ptr_cd=P34;/载波检测输出检测到频率匹配的载波就变1)sbit ptr_am=P16;/地址匹配输出 地址匹配就变1这三个标志位只对取出数据进行标志sbit ptr_dr=P35;/数据就绪输出数据就绪就变1) 注意,所有动作完成后,三个1都被拉低了sbit ptr_miso=P17;/SPI的输入口 注意,sck低时在miso上准备数据,sck高时把数据读出sbit ptr_mo
11、si=P14;/SPI的输出口 注意,sck低时先把数据放到mosi上,sck高时再送出去sbit ptr_sck=P33;/SPI的时钟口 注意,I/O数据都是在上升沿读出/写入的数据都是先高后低sbit ptr_csn=P32;/SPI的数据使能口 注意,SPI的数据出入都是在csn的低电平动作的uchar tdat=0xf0,0x0f;/要发送的3字节数据uchar rdat=0x00,0x00;/要接收的3字节数据uchar config10=0x4c,0x00,0x11,0x02,0x02,0xaa,0xab,0xac,0xad,0x58;/* 名称 : delay()* 功能 :
12、延时,延时时间大概为140US。* 输入 : 无* 输出 : 无*/void delay11()int i,j;for(i=0; i<=10; i+)for(j=0; j<=2; j+);/*1:工作频率430MHz2:-10dBm,433MHz频段,正常功耗,不重发数据3:发射/接收地址宽度均为1字节,1字节地址可放8字节数据4:接收数据宽度3字节5:发送数据宽度3字节6,7,8,9:4字节的地址,地址可随便定义,但一定要保证收发端的地址一致10:8位CRC校验,外接16MHz晶振,无时钟输出 */<设置器件为发送模式> void SetTxMode(void) ui
13、nt i; ptr_en=1; ptr_ce=0; for(i=0;i<255;i+); /<设置器件为接收模式> void SetRxMode(void) uint i; ptr_en=0; ptr_ce=1; for(i=0;i<255;i+); void spi_wr(uchar dat)/sck低时先把数据放到mosi上,sck高时再送出去uchar i,d=0;/记得一定要把数据清0,不然会头疼的for(i=0;i<8;i+)ptr_sck=0;d=dat;d=(d>>(7-i)&0x01;/发送最高位ptr_mosi=d;ptr_s
14、ck=1;/for(j=0;j<200;j+);/若用高速MCU,在此加上延时函数,1ms即可ptr_sck=0;uchar spi_re(void)/sck低时在miso上准备数据,sck高时把数据读出uchar i,d=0,dat=0;/记得清0!ptr_sck=0;for(i=0;i<8;i+)ptr_sck=1;/置高,读取数据d=ptr_miso; d=d<<(7-i);/发送最高位dat=dat|d;ptr_sck=0;/准备下一次读取的数据/若用高速MCU,在此加上延时函数,1ms即可return dat;void ptr_init(void)/初始化配置
15、,想改的话参照一下资料uchar i;ptr_csn=1;ptr_sck=0;/SPI控制引脚的安全状态ptr_pwr=1;ptr_ce=0;ptr_en=0;/配置为待机模式ptr_csn=0;/注意,csn拉低时可以连续写指令,写到其被拉高为止spi_wr(0x00);/写配置寄存器的指令,资料上提都不提,他奶奶的for(i=0;i<10;i+)spi_wr(configi);/想什么配置去资料上对照ptr_csn=1;/拉高以保证其安全性void ptr_tx(uchar *p)/发送数据,一次发送3字节uchar i;ptr_en=1;/参照时序图写ptr_csn=0;/开始写发
16、送的数据的地址spi_wr(0x22);/写地址的指令spi_wr(0xaa);spi_wr(0xab);spi_wr(0xac);spi_wr(0xad);/写地址ptr_csn=1;/地址写入完毕for(i=0;i<255;i+);/延时,保存地址ptr_csn=0;/开始写发送的数据spi_wr(0x20);/写数据的指令for(i=0;i<2;i+)spi_wr(pi);/写入数据ptr_csn=1;/数据写入完毕for(i=0;i<255;i+);/延时,保存数据ptr_ce=1;/在ce为高时发出数据for(i=0;i<255;i+);/等待数据发送完毕pt
17、r_ce=0;/归位ptr_en=0;/归位for(i=0;i<255;i+);/*注意:接收数据时,是按配置中的位数依次接收进来的。比如在初始化中设置的四个地址分别为0xaa、0xab、0xac、0xad,但在接收/发射模式的数据位数上只设置了9字节,且只发射了9位,那么接收时只会判断前两字节地址是否匹配。如果匹配,则把0xaa中的前8字节和0xab中的后1字节接收过来,其余两个字节地址不管了。意思就是,0xaa这四个地址每个都对应8个字节的数据,但是不能通过寻址的方式取出哪个地址里的8字节的数据,只能从第一个地址里一个一个字节的取数据。建议一次取8个数据为好。*/uchar ptr_
18、rx(void)/接收数据,一次接收3字节uchar i,dat=0;ptr_ce=1;/此时en为低,ce高en低,进入接收模式for(i=0;i<200;i+);/等待650us,切换状态while(ptr_dr=0);ptr_csn=0;/准备接收数据spi_wr(0x24);/读RX的数据之指令for(i=0;i<2;i+)rdati=spi_re();/把数据从miso上读出来ptr_csn=1;/数据接收完毕while(ptr_dr=0);/等到标志归位,更保险ptr_ce=0;/归位for(i=0;i<255;i+);return dat;/如果只需要接收一位数
19、据可以开这个void display_temp()P2=tabledisplay3;wei1=0;wei2=1;wei3=1;wei4=1;delay11();wei1=1;/P1=0xff;P2=tabledisplay2;wei1=1;wei2=0;wei3=1;wei4=1;delay11();wei2=1;/P1=0xff;P2=table1display1;wei1=1;wei2=1;wei3=0;wei4=1;wei3=1;delay11();/P1=0xff;P2=tabledisplay0;wei1=1;wei2=1;wei3=1;wei4=0;delay11();wei4=1
20、;/P1=0xff;void main()uint tt=0;uchar dat=0;ptr_init();SetRxMode();while(1)dat=ptr_rx();display4=rdat0&0x0f ; display0=ditabdisplay4 ; /查表得小数位的值 display4=(rdat0&0xf0)>>4)|(rdat1&0x0f)<<4) ; display3=display4/100 ; display1=display4%100 ; display2=display1/10 ; display1=display
21、1%10 ;while(tt+<1)display_temp();tt=0;6.总结本次课程设计的过程中,遇到很多问题。但通过询问同学和查阅资料,基本都顺利解决。同时通过这次课程设计,我学到了很多知识,尤其是对以前课程的掌握,比如高频、数电和模电等等。同时也意识到知识融合的重要性。所以以后的学习中,要尽量联系前面所学的知识,做到融会贯通,只有这样,才能真正掌握东西,真正学到东西。课程设计的过程中,我查阅了很多通信方面的前沿科技,感叹科技的伟大力量的同时,也意识到了自己的不足,同时也懂得了只有好好学习才能跟上时代的脚步。7.参考书目通信电子线路课程设计任务书1课程设计的内容和要求(包括原始数据、技术要求、工作要求等):一、课程设计内容 题目:一个基于单片机的无线数据收发与控制系统设计要求:输入信号为传感器、电压、电流、开关等形式,输出控制信号为模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年植物保护专业资格考试试题及答案
- 2025年声乐与音乐教育专业技能考核试卷及答案
- 2025年化学工程与工艺专业考试试卷及答案
- 2025年物业管理专业能力测试试卷及答案
- 2025年黄金投资分析师考试试卷及答案
- 2025年乡村医学考试试卷及答案
- 2025年健康管理师资格考试试题及答案发布
- 烧烤网红店品牌形象授权及区域代理合作协议
- 跨境法律文书快递保险及价值保全合同附件
- 跨区域物流企业叉车操作员派遣服务合同
- 从财务视角看央企“一利五率”体系及实现路径
- 学大讲义六年级下册数学(含答案)第一讲 百分数(二)及百分数的复习
- 广东省佛山市南海区2025年中考历史模拟试题(含答案)
- 2025年中国血型试剂行业竞争格局及市场发展潜力预测报告
- 中山大学自主招生个人陈述自荐信范文
- 塔吊培训资料课件
- T-ZAWS 004-2024 金属非金属露天矿山安全现状评价报告编制导则
- 面神经麻痹课件
- 2025专业技术人员继续教育考试题库(含答案)
- 【MOOC】中国税法:案例·原理·方法-暨南大学 中国大学慕课MOOC答案
- 2024水电站输水发电系统运行安全评价导则
评论
0/150
提交评论