RF无线收发模块设计_第1页
RF无线收发模块设计_第2页
RF无线收发模块设计_第3页
RF无线收发模块设计_第4页
RF无线收发模块设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 无线收发模块的设计 一、设计方案 为了能实现数据通过无线方式进行传输的目的,采用 hopeRF 公司的无线单 片收发 IC RF12 完成无线收发功能。为了能对 RF12 进行控制,采用 ATMEL 公 司单片机AVRMEGA48 对 RF12 进行控制,为了与 PC 机连接方便,采用了沁包 公司的 USB 转申口电路 CH340 与单片机相连。系统结构示意图如下: 二、电路设计 2.1 RF12 电路设计 2.1.1 RF12 功能简介 RF12是通用ISM频段的FSK发送接收集成单片电路,低功耗,多通道,可以工作在 免许可的433,868和915MHz频段。RF12首发电路为需要外部很少

2、器件的集成电路,具有 低本钱,柔韧性好的高度集成的解决方案。 芯片集成所有射频要求功能,完整的模拟射频部 分和数字基带收发局部, 多频段PLL频率合成器,射频功率放大器 PA,低噪声放大器LNA。 正交I/Q下变频混频器,基带滤波器和基带放大器,和正交 I/Q解调器。唯一需要的外 部器件就是外部晶振和带同滤波器。 RF12具有一个全集成的 PLL,便于射频设计,它的快速设定时间可以用于快速调频, 对于多路径衰落信道可以获得强健的无线连接。 PLL的高分辨率允许在任一频段进行多信道 应用。接收局部的基带滤波带宽 BW是可编程的,以可以包纳各种偏差,数据速率和晶 振偏差的要求。接收局部应用了零中频

3、方法, 该方法采用了正交解调技术。 同样在大多数应 用中不需要外部器件除了晶振和耦合电路 。 RF12通过集成的数字信号处理特性:数字滤波,时钟恢复,数字判决,集成的 FIFO 和发送数据存放器 TX data register,显著的减小了微处理器的负担。 自动频率控制特性允 许使用低精度低本钱晶振。 对于低功耗应用,RF12支持基于内部唤醒定时器的小占空比的周期工作模式。 功能模块框图 2.1.2RF12 电路设计 在设计中采用RF12接收局部采用片内数字滤波器来提取接收数据流的位 时钟方案,通过 SPI接口设置工作参数,发送数据和接收数据。频带设计为 433MHz,射频匹配滤波电路根据生

4、产商提供的资料设计电路如下: SCK 2 nSEL 3 SDO 4 nIRQ 5 NFFS 6 FFIT 7 CLK 8 ,SDI NINT/VDI i sck ARSSI .NSEL VDD ,SDO RF1 ,NIRQ RF2 .NFFS VSS .FFIT NRES CLK XTL/REF J1 SDO 1 nIRQ_2 NFFS 二3 FFIT 4 CLK 5 nRES 6 SDO nSEL nIRQ SCK FSK SDI FFIT VDI CLK GND nRES VDD GND ANT 8 nSEL 9 SCK 1F SDI 布 VDI一 12 GND 13 VCC 14ANT

5、二 LI K INC 史! MLL 4 困 f giJ AMrf CcrWtl-a g 功 it .,w j _ _ _ ZCHF FEF SDI U1 C2 VCC 4.7nF L2 150nH L1 14 39nH 13 12 C4 I D V 止 6.8nF 16 15 11 IC1 搠牛 2.2、RF112 与单片机 Mega48 接口设计 Mega48 单片机通过 SPI接口与 RF12 相接,系统图如下: VCC 8 nSEL SCK 顽 MOSI 11 12 13 14 RFM12S GND由丁 SPI接口是单片机在线编程的下载口,同时乂是与 RF12 的通信接口,为了 在下载时

6、不受 RF12 的影响,特在 SPI接口与 RF12 接口之间通过电阻进行隔离。 2.3USB转传申口电路设计: CH340 集成电路可以完成 USB 转申口的功能,PC 机的驱动程序有沁包公司提供, 在PC 上的界面与申口通信界面相同,根据厂家提供的参考电路设计如下: UART-USB 二、射频参数计算 VCC 12 T3 15 16 n SEL R1 MOSI 1 K R2 MISO 1 K R3 XTAL1 7 XIAL2 8 RXD 30 XD 3 1 n IRQ 32 1 2 9 LEDCTRL 10 PD7 n RESET 5 SCK 7 C C C C V V 6 4 Cc C

7、C V V PB0 (ICP) ADC7 PB1 (OC1 A) ADC6 PB2 (SS/OC1B) AVCC PB3 (MOSI/OC2 ) AREF PB4 (MISO) GND PB5 (SCK) PB6 (XTAL1 /TOSC1) PB7 (XTAL2 /TOSC2) PD0 (RXD) (ADC0 ) PC0 PD1 (TXD) (ADC1 ) PC1 PD2(INT0) (ADC2 ) PC2 PD3 (INT1 ) (ADC3 ) PC3 PD4 (XCK/T0 ) (ADC4 /SDA) PC4 PD5 (T1 ) (ADC5 /SCL) PC5 PD6 (AIN0 ) (

8、RESET) PC6 PD7 (AIN1 ) D D N N G G 3 5 D D N N G G 22 T9 20 21 23 24 25 27 28 29 RESET ATMEGA4 8 _TQFP3 2 U2 ID N G ,C KO AC T# TXD NOS# VC C R 2 32 R XD NC. V3 R TS# UD+ DTR # ,UD- DC D# GND R I # XI DSR # XO C TS# ID N G SCK 17 3 9 J1 1 0 GND ISP 2 VCC 8 GND 4 GND 6 GND U1 D X ID N G N G c c c 丁 2

9、.1、 RF12 的工作原理: RF12 为单片无线收发芯片,接收局部为采用正交解调的零中频技术,片上集成 有基带低通滤波器,其带宽可程序控制,到达减低噪声系数的目的,同时还具有 频率自动控制功能,以离散步进方式使得本振频率与发射机的载波频率差最小。 对丁 RF12 的应用需要根据接收信号的特性需要对基带滤波器的代换进行计算。 2.2、 正交零中频解调原理及低通滤波器带宽的计算: 接收机结构如以下图所示: 本振 设射频输入信号为: s(t)=Acos( 3 ot+(-1) 3 t); 本振信号为: L(t)=cos( 3 Lt+ (f) 通过正交下变频器: I(t)=s(t) x L(t)=A

10、(cos( 3 ot+(-1) DA 3 t- 3 Lt- (f) )+ cos( 3 ot+(-1) D 31+ 3 Lt+ 4 )/2 Q(t)=s(t) x sin ( 3 Lt+() =A(sin( 3 0t+(-1) D 3 t- 3 Lt-()+ sin( w t+(-1)D A w t+ w Lt+ 4 )/2 通过低通滤波器有: Ib (t) = Acos( 3 t+(-1) A w t-3 Lt-()/2 Qb (t) = Asin( t+(-1)D A t- 3 Lt-力)/2 当 3 0 =3 L , 4 = 0 时有: Ib (t) = Acos( (-1)D 3 t)

11、/2 Qb (t) = (-1)D Asin( A t)/2 当D=0时Ib和Qb构成正方向旋转向量,标识为频偏大于零;判读为 0或1 当D=1时Ib和Qb构成反方向旋转向量,标识为频偏小于零;判读为 1或0. 在这里对于码元宽度为 T,频偏为 3 ,那么低通滤波器的带宽不应小于: +2n /T 当考虑到本振与信号载波的偏差,滤波器的带宽应包含:频偏,数据速率和频率误差。 三、RF12的命令 RF12的命令通过SPI 口发送,共有15条命令: 1 Configuration Setting Command Frequency band, crystal oscillator load capa

12、citance, baseband filter bandwidth, etc. el, ef, b1 to b0, x3 to x0 2 Power Management Command Receiver/Transmitte r mode change, synthesizer, xtal osc, PA, wake-up timer, clock output can be enabled here er, ebb, et, es, ex, eb, ew, dc 3 Frequency Setting Command Data frequency of the local oscilla

13、tor/carrier signal f11 to f0 4 Data Rate Command Bit rate cs, r6 to r0 5 Receiver Control Command Function of pin 16, Valid Data Indicator, baseband bw, LNA gain, digital RSSI threshold p16, d1 to d0, i2 to i0, g1 to g0, r2 to r0 6 Data Filter Command Data filter type, clock recovery parameters al,

14、ml, s1 to s0, f2 to f0 7 FIFO and Reset Mode Command Data FIFO IT level, FIFO start control, FIFO enable and FIFO fill enable f3 to f0, s1 to s0, ff, fe 8 Receiver FIFO Read Command RX FIFO can be read with this command 9 AFC Command AFC parameters a1 to a0, rl1 to rl0, st, fi, oe, en 10 TX Configur

15、ation Control Command Modulation parameters, output power, ea mp, m3 to m0, p2 to p0 11 Transmitter Register Write Command TX data register can be written with this command t7 to t0 12 Wake-Up Timer Command Wake-up time period r4 to r0, m7 to m0 13 Low Duty-Cycle Command Enable low duty-cycle mode.

16、Set duty-cycle. d6 to d0, en 14 Low Battery Detector and Microcontroller Clock Divider Command LBD voltage and microcontroller clock division ratio d2 to d0, v4 to v0 15 Status Read Command Status bits can be read out 对于局部命令说明如下: 频率设置命令 bit 15 14 13 12 11 10 9 3 | 7 6 5 4 3 i IPOK I 1 0 t 0 fll no f

17、P f? f5 科 f3 fi | MSOh 12位参数F取值在96到3903之间,当送入的F值在范围之外,以前的F数据任然被保存。 频率合成器的中心频率 f0可以计算如下: f0 = 10 * C1 * (C2 + F/4000) MHz 常数C1和C2由所选择频段确定: Band MHz C1 C2 433 1 43 868 2 43 915 3 30 数据速率命令 bit I 14 13 10 9 es 5 4 | 3 2 1 0 FOR I I 1 0 1 I 0 1 1 lcs T5 r4 r2 il IO C623h 在发射模式中发送数据的实际位速率和接收模式中接收数据期望的位速率

18、通过 7位参数 R(bits r6 to r0)和 cs 位确定。 BR = 10000 / 29 / (R+1) / (1+cs*7) kbp s 在接收局部根据下面的函数设置 R参数: R= (10000 / 29 / (1+cs*7) / BR) - 1, 这里 BR 是期望的位速率 kbps。 除了设定客户数值外,标准位速率可以很小的误差设定从 600bps到115.2kbps 数据数率精度要求: 在慢模式恢复时钟: BR/BR 1/(29*Nbit) 在快模式恢复时钟: BR/BR 3/(29*N bit) BR是在接收机设置的位速率, BR是发射机与接收机之间的数率偏差。 Nbit

19、是在数据流中 最大的连续1或0的个数。建议在长数据包中要包含足够多的 1/0或0/1的变换,并在接收 机和发射机中小心应用相同的分频比。 发送设置命令: bit 1 - 14 13 - 10 9 I 6 5 -I 2 1 I 3 0 I0 0 mp | 1m2 ml p1 p| 9800h 位 8-4 mp, m3 to m0:FSK 调制参数为: 导致输出的频率为: fout = f 0+ -1SIGN * M + 1 * 15 kHz 这里: f0为信道的中心频率见频率设置命令 M is思维二进制数: SIGN = (mp) XOR (Data bit) 四、控制接口时序: 对RF12的命

20、令以串行方式发送。只要当引脚 nSEL信号为低逻辑电平,在 SDI弓I脚上的数 据在引脚SCK上的时钟信号的上升沿被移入器件。当 nSEL信号为高,接口被初始化。所 有命令由命令码,后跟可变数量的参数或数据位构成。所有数据以高位先发送例如对于 16位命令的第15位。用X标识的位没有影响。上电复位 POR电路所有控制存放器和 命令存放器设置默认值。 当以下事件发生,接收机通过将 nIRQ引脚拉低对微处理机产生一个中断请求: TX存放器准备接收下一个字节 RGIT FIFO已经接收到程序设定的位数量FFIT 上电复位POR FIFO 溢出FFOV /TX 存放器覆盖RGUR 唤醒定时器溢出WKUP

21、 在中断输出引脚 nINT有负脉冲EXT 电源电压低于设定的电压LBD 当FIFO许可时FFIT和FFOV才能应用。当 TX存放器许可时 RGIT和RGUR才能应用。 通过读出状态位来识别中断源。 控制接口的时序图 PC机通过USB 口发送命令使无线模块工作在不同的通道上, 功率大小分布,频率精度等情况,以检验是否工作正常。 六、天线的制作: 采用四分之一波长的天线,设计过程主要计算大线的尺寸,关键是调试其阻抗,调到 50欧 姆。截取略长与四分之一波长硬铜线 20CM,与50欧姆同轴电缆芯线焊接。通过微波网络 分析仪测量天线的驻波比, 用手钳对天线顶端小心剪截, 改变大线长度,使其驻波比最小即

22、 可。 五、调试方法: 对于发射功能调试的方法为采用频谱分析仪测量 意图如下: RF12的发射功率和频率,调试系统结构示 连续发射,来观察整个频段的 七、单片机程序设计: 两个模块分别通过 USB 口与PC机连接,PC机上运行串口调试程序,两台 PC可以互相收 发数据,下面是单片机程序: / /芯片采用 mega48,时钟米用外部晶振 11.0592M / /连线图 mega48 RFM12 / / (PB5)SCK 一 SCK / (PB3)MOSI SDI / (PB4)MISO SDO / / (PB2)SS nSEL / / (PD2) nIRQ / 编译器用 CodeVisionAV

23、R C Compiler / / #include #include typedef unsigned char uchar; typedef unsigned int uint; #define SDI PORTB.3 #define SDO PINB.4 #define SCK PORTB.5 #define nSEL PORTB.2 #define nIRQ PIND.2 #define LED PORTD.6 void Init_RF12(void); void Write0(void); void Write1(void); void WriteCMD(uint CMD); void

24、 WriteFSKbyte(uchar *ptr,uchar num); void uart0_init(void); void INT0_init(void); uchar RF12_RDFIFO(void); /uchar mes=0 xAA,0 xAA,0 x2D,0 xD4,0 x30,0 x31,0 x32,0 x33,0 x34,0 x35,0 x36,0 x37,0 x38,0 x39,0 x3A,0 x3B,0 x3C,0 x3D,0 x3E,0 x61,0 xAA; /eeprom uchar mes125; uchar mes50=0 xAA,0 xAA,0 x2D,0 x

25、D4; uchar RF_RXBUF50; uchar i=0,j=0,t=0; uchar flag1=0,flag2=0; uchar tempdata; void Init_RF12(void) DDRB=0 x2c; DDRD=0 x42; PORTD.2=1; nSEL=1; SDI=1; SCK=0; WriteCMD(0 x80D8);/EL,EF,433Mband,12.5pF WriteCMD(0 x82D8);/turn on crystal,!PA WriteCMD(0 xA640);/434MHz / WriteCMD(0 xAE10);/439M / WriteCMD

26、(0 xA9B0);/436.2M WriteCMD(0 xC647);/4.8kbps WriteCMD(0 x94A0);/VDI,FAST,134kH z,0dBm,-103dBm WriteCMD(0 xC2AC);/AL,!ml,DIG ,DQD4 WriteCMD(0 xCA80);/FIFO8,SYNC,!ff,DR WriteCMD(0 xCA83); WriteCMD(0 xC49B);/PWR,NO RSTRIC,!st,!fi,OE,EN WriteCMD(0 x9850);/!mp,9810=30kHz,MAX OUT WriteCMD(0 xE000);/NOT US

27、E WriteCMD(0 xC80E);/NOT USE WriteCMD(0 xC000);/1.0MHz,2.2V void main() ( Init_RF12(); uart0_init(); /INT0_init(); delay_us(10); #asm(sei); while(1) ( if(flag1) ( #asm(cli); LED=0; flag1=0; WriteCMD(0 x8228); /OPEN PA delay_us(4); WriteCMD(0 x8238); #asm(nop); #asm(nop); WriteFSKbyte(mes,i+4); delay

28、_ms(10); WriteCMD(0 x8208); /CLOSE PA LED=1; i=0; #asm(sei); WriteCMD(0 x82D8); WriteCMD(0 xCA83); if(!nIRQ) LED=0; /WriteCMD(0 xCA83); RF_RXBUFt+=RF12_RDFIFO(); /tempdata=RF_RXBUFt-; /if(tempdata=a) if(RF_RXBUFt-1=0 x61) flag2=0; WriteCMD(0 xCA80); for(j=0;jt-1;j+) while(!(UCSR0A&(0 x20); UDR0=

29、RF_RXBUFj; t=0; LED=1; / #asm(sei); /*/ / /WriteCMD(0 x82D8); void uart0_init(void) UCSR0A = 0 x00; UCSR0C = 0 x06; 模式 UBRR0L = 51; UBRR0H = 0; UCSR0B = 0 x98; void Write0(void) ( SDI=0; /SDI=0 #asm(nop); /使用波特率不倍增,不使用多从机模式 /异步串口模式,禁止奇偶校验,1位停止位,8-bit帧 /设置波特率,9600 /允许接收发送 允许接收中断 SCK=0; /SCK=0 #asm(no

30、p); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); SCK=1; /SCK=1 #asm(nop); void Writel(void) ( SDI=1; /SDI=1 #asm(nop); SCK=0; /SCK=0 #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); #asm(nop); SCK=1; #asm(nop); void WriteCMD(uint CMD) ( uchar n=16; SCK=0; n

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论