微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > 基于C8051F060单片机控制AD9833实现FSK调制

基于C8051F060单片机控制AD9833实现FSK调制

时间:09-24 来源:中电网 点击:

  引言 

  在数字信息传输中,基带数字信号通常要经过调制器调制,将频率搬移到适合信息传输的频段上。2FSK就是用数字信号去调制载波的频率(移频键控),由于它具有方法简单、易于实现、抗噪声和抗衰落性能较强等优点,因此在现代数字通信系统的低、中速数据传输中得到了广泛应用。

直接数字频率合成技术(DDS)将先进的数字处理技术与方法引入信号合成领域。DDS器件采用高速数字电路和高速D/A转换技术,具备频率转换时间短、频率分辨率高、频率稳定度高、输出信号频率和相位可快速程控切换等优点,可以实现对信号的全数字式调制。

  DDS芯片——AD9833的介绍

AD9833是一块完全集成的DDS芯片,仅需要1个外部参考时钟、1个低精度电阻器和一些解耦电容器就能产生高达12.5MHz的正弦波。除了产生射频信号外,该电路还广泛应用于各种调制解调方案,这些方案全都用在了数字领域。

AD9833的内部电路包括数字器件和模拟器件两部分。主要由相位累加器(由加法器和相位寄存器组成)、ROM波形查询表、数模转换器DAC和低通滤波器LPF构成。AD9833的基本结构原理如图1所示。其中M为频率控制字、FMCLK为时钟频率,相位累加器在时钟FMCLK的控制下以步长M作累加,相位寄存器的输出与相位控制字相加后输入到正弦查询表地址中。正弦查询表包含1个周期正弦波的数字幅度信息,每个地址对应正弦波中0°~360°范围内的1个相位点。查询表把输入的地址相位信息映射成正弦波幅度的数字量信号S(n),经D/A转化器变成阶梯波S(t),再经低通滤波器平滑后就可得到合成的信号波形。其形状取决于波形ROM中存放的幅码,因此用DDS可以产生任意波形。输出正弦波频率为:fOUT=M(fMCK/228),其中,M为频率控制字,由外部编程给定,其范围为0≤M≤228-1 。

  硬件电路连接

本设计用Silicon Labs公司推出的完全集成的混合信号片上系统C8051F060来控制AD9833,C8051F060有大量的数字资源需要通过4个低端I/O端口P0、P1、P2和P3才能使用。P0、P1、P2和P3的每个引脚既可定义为通用的端口I/O引脚,又可以分配给一个数字外设或功能(例如:UART0或INT1)。不管引脚被分配给一个数字外设或是作为通用I/O,总是可以通过读相应的数据寄存器得到端口I/O引脚的状态。

AD9833与单片机C8051F060连接时,使用单片机的3个I/O口和AD9833连接。FSYNC(控制输入,低电平有效)与单片机的可编程管脚P0.7连接,SCLK(串行时钟输入)与可编程管脚P0.4连接,SDATA(串行数据输入)与可编程管脚P0.5连接。三个可编程管脚都可用软件编程实现数据的传送。硬件电路连接如图2所示,单片机产生控制信号和波形参数,通过串行接口将数据传送到AD9833,经AD9833输出的正弦波信号再经低通滤波后输出。

  软件控制

  写数据到控制寄存器

单片机传送数据到AD9833的时序如图3所示:FSYNC引脚是使能引脚,电平触发方式,低电平有效。进行串行数据传输时,FSYNC 引脚必须置低,这种情况下,16个SCLK的下降沿数据被送到AD9833的输入移位寄存器。在第16个SCLK的下降沿FSYNC可以被置高,当然,也可以连续加载多个16位数据,仅在最后一个数据的第16个SCLK的下降沿时将FSYNC置高。需要注意的是,在FSYNC开始变为低前(即将开始写数据时)),SCLK必须为高电平。

单片机写16位数据到AD9833时,高位在前,低位在后。用软件模拟时钟信号和片选信号。传送数据的程序如下:

SCLK =1; //时钟信号

FSYNC=1;

Delay(100) ; 延时子程序

FSYNC=0; //片选有效

for(i=0;i<16;i++)

{ SDATA=datas&0x8000;

SCLK=0; //时钟信号下降沿数据送入I/O口。

Delay(50) ;

SCLK=1;

datas=datas<<1; //16位数据从高位到低位送入

}

Delay(50) ;

FSYNC=1;

SCLK=0;

  数据写入方式

设置控制寄存器中的D15D14=00,表示数据写入控制寄存器;设置B28(D13)=1,表示28位数据可以连续写入频率寄存器,默认先写入低14位频率字,再连续写入高14位频率字到频率寄存器中;设置B28(D13)=0,表示28位数据分两次写入频率寄存器,此时配合 HLB 的值使用(当HLB=1时允许高14位频率字写入到频率寄存器,当HLB=0时允许低14位频率字写入到频率寄存器)。因此写入到控制寄存器的数据可为:0010 0000 0000 0000,表示设置连续28位频率字。数据写入流程图如图4所示。

  选择频率寄存器

由于AD9833片内有2个频率寄存器,即FREQ0、FREQ1,因此要确定是将频率控制字写入哪一个。这可通过设置 D15D14 的值来进行选择,当D15D14=01表示14位的频率字将写入FREQ0;当D15D14=10表示

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top