DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 308|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:18:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
引言
在数字信息传输中,基带数字信号通常要经过调制器调制,将频率搬移到适合信息传输的频段上。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
[tr]
[td]


[/td][/tr][/table]
选择频率寄存器
由于AD9833片内有2个频率寄存器,即FREQ0、FREQ1,因此要确定是将频率控制字写入哪一个。这可通过设置 D15D14 的值来进行选择,当D15D14=01表示14位的频率字将写入FREQ0;当D15D14=10表示14位的频率字将写入FREQ1。以输出频率为7230Hz为例,介绍写入到频率寄存器1的频率字。
写入低14位数据为:1011 0110 0001 1110,表示将低14位频率字写入FREQ1。
写入高14位数据为:1000 0000 0000 1011,表示将高14位频率字写入FREQ1。
主程序设计
首先,对C8051F060单片机初始化,这包括单片机晶振初始化、端口初始化,定义控制AD9833的I/O接口及交叉开关,接着初始化AD9833。当AD9833初始化时,为避免DAC产生虚假输出,RESET必须置为1(RESET不会复位频率、相位和控制寄存器),直到配置完毕,需要输出时才将RESET置为0;RESET为0后的8-9个MCLK时钟周期可在DAC的输出端观察到波形。AD9833初始化流程图如图5所示。然后,写频率寄存器0的控制字(0x2000),在进行FSK调制时,AD9833的两个频率寄存器装载不同的频率值,本实验中,频率寄存器0装载低频率6830Hz,频率寄存器1装载高频率7230Hz,通过设置AD9833的控制寄存器的FSELECT位来选择频率寄存器。主程序流程如图6所示。







实验结果
在示波器上能观测到FSK调制信号,为方便截图,设置频率为7230Hz的正弦信号在示波器上进行观察,图7是频率为7230Hz的正弦信号经过低通滤波之后的频谱图。由图7可以看出,实际输出频率为7.22985Hz。图8是对应的时域图形。




结论
本实验中设计的FSK调制信号,在工程中有较强的实用价值,已成功应用于井下声波传输系统中。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-9-18 01:03 , 耗时 0.085542 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表