您现在的位置是:主页 > 电路技术 > rf射频/无线 >


STM32的调频无线发射与接收系统设计

2020-02-24 21:23rf射频/无线 人已围观

简介调频发射与接收系统一直有着广泛的应用,例如中短距离的语音对讲、家庭娱乐、小区、园区、会议音频信号的传输等。传统的调频发射与接收系统电路较复杂,为了提高稳定度需要用...

  调频发射与接收系统一直有着广泛的应用,例如中短距离的语音对讲、家庭娱乐、小区、园区、会议音频信号的传输等。传统的调频发射与接收系统电路较复杂,为了提高稳定度需要用晶振、锁相环或频率合成产生高稳定度的载波信号。早期的调频发射芯片集成度低,频率设置采用引脚组合配置的方式进行设定,外接元件较多。相比于单一的发射或接收系统,本系统包含独立发射和接收两部分。不同于收发一体的集成芯片 RDA5820,该芯片一般是通过配置其内部寄存器40H 的 Bit进行发射和接收的切换,本系统分别采用数字化的单片发射芯片 QN8027与接收芯片 RDA5807,单片机通过I²C总线形式与其进行通信,配置发射和接收的频率等信息,具有实时双向通信、效率高、发射和接收频率稳定、体积小的优点,在实现高保真音频传输的同时进一步降低功耗,便于集成与携带。通过软件编程灵活实现收发一体,进行双向实时通信或语音传输。
  

  1 系统组成

  
  系统框图如图1所示,本系统以STM32F103C8T6 作为主控单元,其丰富的定时器、串口、外中断等资源配置, 足够数量的I/O 端口完全满足本系统 CPU 的要求。
  图1 系统框图
  图1 系统框图
  
  QN8027 作为调频发射模块、RDA5807 作为接收模块、AT24C02作为存储模块,包含显示、按键、电源等外部设备。其中 QN8027、RDA5807 以及 AT24C02通过I2C 数据串口与 MCU 进行通信,并配置了一块 128×128的串行 TFT 显示屏用以显示调频发射与接收的频率,并显示接收信号音量、信号强度、信号质量等信息。
  
  系统中采用了5 个独立按键用于对发射与接收的频率、音量等功能的设置。图1 是一个完整的、具备发射和接收功能的装置,只要 A 和B都持有这套装置,就可以实现 A 和B的双向发射和接收功能,A 和B作为不同收发方,各自调节不同的发射与对应的接收频率即可实现实时语音通信,表1 所列为一个应用场景实例,A 的发射频率是B 的接收频率,反之 B 的发射频率是 A 的接收频率。实践证明,因为互相之间的频率设置为不同频率,因此实现了实时双向语音通话。发射和接收频率范围在程序初始化设定,实 际使用时,具体发射和接收频率可以在设定的频率范围内任意修改,步 进频率为±0.1 MHz。
  
  表1 发射与对应接收频率配置
  表1 发射与对应接收频率配置

  2 硬件设计

  
  2.1 QN8207调频发射模块
  
  外带功放的 QN8027 调频发射模块如图 2 所示, QN8027是一款便携式高性能数字调频发射设备,支 持 76~108 MHz全球调频波段传输,具有自适应天线调谐、集成电压调节器、自动输入音频感应,能高效地抗 TDMA(GSM/GPRS)突发噪声干扰,系统稳定性强,支持多晶体频率,广泛运用于手机、掌上电脑、便携式智能手机音频和媒体播放器、GPS 个人导航设备、汽车及配件等各种场合。QN8027 采用I²C串行通信接口与 MCU 进行通信,其中 ARI和 ALI可输入音频信号,还可连接麦克风放大电路,就可以实现实时对讲。QN8027 的输出送到9018构成功率放大电路输出。
  图2  外带功放的 QN8027 调频发射模块
  图2  外带功放的 QN8027 调频发射模块
  
  2.2 RDA5807调频接收模块
  
  RDA5807调频接收模块如图3 所示,RDA5807 是一款单片广播调频立体声收音机调谐器,具有完全集成的合成器、中频选择性、RDS/RBDS 和 MPX 解码器。76~ 108 MHz频段,支持自助搜索调谐、32.768kHz晶体振荡器,具有数字自动增益控制、数字自适应噪声消除。只需要极少外围元件即可进行工作,应用范围广泛,性价比极高。图3中 L3、C4接入电路,把 RDA5807 的耳机地线又当作接收天线用,L1、L2、C1、C2 抑制高频干扰后,可以直接驱动耳机发出声音。
  图3  RDA5807 调频接收模块
  图3  RDA5807 调频接收模块
  

  3 软件设计

  
  3.1  软件流程
  
  软件设计最核心的部分是采用软件模拟I²C 方式来配置,读取 QN8027 和 RDA5807 相应的寄存器进行系统初始化,然后设定初始发射与接收频率,系统就处于实时发射与接收的准备状态,用户可以通过按键设定不同的发射与接收频率、控制发射状态,或修改接收音量大小。显示程序可以放在主函数中,也可使用定时器定时刷新显示,显示发 射频率、接 收频率、发射状态和接收音量等, 图4为系统总流程图。
  图4 软件流程图
  图4 软件流程图
  
  3.2  模块初始化配置
  
  3.2.1  QN8027初始化
  
  voidqn8027init(){ write_qn8027(0x58,0x00,0x81); delayms(200);
  
  write_qn8027(0x58,0x03,0x20); write_qn8027(0x58,0x04,0x21);
  
  delayms(200); write_qn8027(0x58,0x00,0x41);
  
  write_qn8027(0x58,0x00,0x41);
  
  delayms(200);
  
  write_qn8027(0x58,0x01,0xE2); write_qn8027(0x58,0x02,0xB9);
  
  delayms(200); write_qn8027(0x58,0x00,0x21); delayms(200);
  
  }
  
  初始化程序的三个参数分别是器件地址0x58、寄存器地址和设定值。QN8027 初始化过程中需要先复位所有寄存器,配置晶振及晶振电流、输入电阻、输入增益等, 其中设置频率的寄存器有两个,低8位配置0x01 寄存器,高2位配置0x00 寄存器的 BIT1~BIT0。QN8027 手册中有详细的寄存器说明,本例的初始化程序段中,初始化频率为76+482×0.5=100.1 MHz。
  
  3.2.2 RDA5807初始化
  
  voidrda5807init(void){
  
  write_rda5807(0x22,0x02,0x0002);
  
  delay_ms(200);
  
  write_rda5807(0x22,0x02,0xD281);
  
  delay_ms(200);
  
  write_rda5807(0x22,0x03,0x0000);
  
  write_rda5807(0x22,0x04,0x0040);
  
  write_rda5807(0x22,0x05,0x8882);
  
  }
  
  DA5807器件地址是0x22。RDA5807 的初始化配置首先进行软件复位,然后再配置音频输出、音质选择、晶振选择、波段及频道间隔、音量大小、中断模式、RSSI、输入端口及半自动搜台等。
  
  3.3  实际测试结果
  
  图5所示是一个调频发射与接收装置应用实例,界面显示了当前装置发射频率、发射状态、接收频率、音量、信号强度(RSSI)以及当前音质(立体声 ST),只需要对两个装置发射频率和接收频率进行预先设置(参数见表1),即可实现两个装置的实时语音通话。
  图5 装置实物图
  图5 装置实物图
 

Tags: STM32 

标签云