SDR直接数字频率系统设计.docx
《SDR直接数字频率系统设计.docx》由会员分享,可在线阅读,更多相关《SDR直接数字频率系统设计.docx(32页珍藏版)》请在冰豆网上搜索。
SDR直接数字频率系统设计
学科分类号0712
本科生毕业论文(设计)
题目(中文)SDR直接数字频率合成系统的设计实现
(英文)SDRDirectdigitalfrequencysynthesissystemdesignandImplementation
学生姓名:
学 号:
系 别:
物理与信息工程系
专 业:
电子信息科学与技术
指导教师:
起止日期:
2011年12月-2012年5月
2012年5月1日
怀化学院本科毕业论文(设计)诚信声明
作者郑重声明:
所呈交的本科毕业论文(设计),是在指导老师的指导下,独立进行研究所取得的成果,成果不存在知识产权争议。
除文中已经注明引用的内容外,论文不含任何其他个人或集体已经发表或撰写过的成果。
对论文的研究做出重要贡献的个人和集体均已在文中以明确的方式标明。
本声明的法律结果由作者承担。
本科毕业论文(设计)作者签名:
年月日
SDR直接数字频率合成系统的设计实现
摘要
SDR(SoftwareDefinitionRadio),“软件定义的无线电”。
软件定义的无线电(SDR)是无线电广播通信技术,它基于软件定义的无线通信协议而非通过硬件连线实现。
换言之,频带、空中接口协议和功能可通过软件下载和更新来升级,而不用完全更换硬件。
SDR针对构建多模式、多频和多功能无线通信设备的问题提供有效而安全的解决方案。
SDR能够重新编程或配置,从而通过动态加载新的波形和协议可使用不同的波形和协议操作。
这些波形和协议包含各种不同的部分,其中有调制技术、在软件中定义为波形本身的一部分的安全和性能特性。
本设计主要是用单片机结合DAC0832进行直接频率合成,产生一个正弦波,然后通过LM324对信号进行放大。
正弦波的频率和幅度不受限,两者可以调节。
关键字
软件无线电;单片机;直接频率合成;正弦波
SDRDirectdigitalfrequencysynthesissystemdesignandImplementation
Abstract
SDRmensSoftwareDefinitionRadio.
SoftwareDefinedRadio(SDR)isaradiocommunicationtechnology,whichisbasedonthesoftwaredefinedradiocommunicationprotocolratherthanviaahardwiredimplementation.Inotherwords,band,airinterfaceprotocolsandfunctionsthroughsoftwaredownloadandupdatetoupgrade,withoutacompletereplacementofhardware.SDRtoconstructmultimode,multifrequencyandmultifunctionalwirelesscommunicationequipmentproblemstoprovideeffectiveandsafesolution.SDRisabletoreprogramorreconfigured,throughthedynamicloadingofnewwaveandprotocolcanbeusedwithdifferentwaveformsandprotocoloperations.Thesewaveformsandagreementcontainsavarietyofdifferentparts,includingthemodulationtechnologyinsoftwaredefinedaswaveform,itselfapartofthesafetyandperformancecharacteristics.
Thisdesignismainlyusingsingle-chipcombinationofDAC0832directfrequencysynthesis,producesasinewave,andthenthroughtheLM324toamplifythesignal.Thesinewavefrequencyandamplitudeisnotrestricted,theycanbeadjustable.
Keywords
Softwareradio;signalchipmicrocomputer;directfrequencysynthesis;sinewave
1前言
从历史发展的阶段来看,要产生一个正弦波形,共经历了以下五个阶段。
最初是用简单的LC振荡电路产生,采用并联谐振的时候,可以实现选频,这种类型的振荡器构造最简单,价格低廉,但是稳定性比较低。
第二是采用SAW谐振器,即表面声波,它是用电能驱动,使物体产生机械振动。
SAW谐振器的稳定度为±30KHZ,而LC振荡电路的稳定度是100KHZ左右。
由于稳定度的提高,SAW谐振器有取代LC的趋势。
经过进一步的发展,石英晶体振荡应运而生。
晶体的物理特性决定振荡器的参数,它的稳定度较高,但是它产生的频率比较低,依照这种特性,使用晶体的思路产生了。
晶体振荡器可以通过倍频产生高频。
第四是合成器产生控制,即PLL(锁相环)压控振荡,直接合成所需的频率。
直接合成的频率往往存在偏差,但是可以通过控制相位来控制偏差。
直接数字频率合成,其频率稳定,相位和振幅都非常精确。
到了现当代,随着无线通信的发展,软件无线电的思想被提了出来。
软件无线电的基本思想是以一个通用、标准、模块化的硬件平台为依托,通过软件编程来实现无线电台的各种功能,从基于硬件、面向用途的电台设计方法中解放出来。
功能的软件化实现要求减少功能单一、灵活性差的硬件电路,尤其是减少模拟环节,把数字化处理(A/D和D/A变换)尽量靠近天线。
软件无线电强调体系结构的开放性和全面可编程性,通过软件更新改变硬件配置结构,实现新的功能。
软件无线电采用标准的、高性能的开放式总线结构,以利于硬件模块的不断升级和扩展,其采用的方法是用数字合成正弦的模拟信号,然后通过DA转换,得到所需频率的波形,它的重点是数字频率合成。
20世纪70~80年代,无线电由模拟向数字全面发展,从无编程向可编程发展,由少可编程向中等可编程发展,出现了可编程数字无线电(PDR)。
由于无线电系统,特别是移动通信系统的领域的扩大和技术复杂度的不断提高,投入的成本越来越大,硬件系统也越来越庞大。
为了克服技术复杂度带来的问题和满足应用多样性的需求,特别是军事通信对宽带技术的需求,提出在通用硬件基础上利用不同软件编程的方法。
20世纪80年代初开始的软件无线电的革命,把无线电的功能和业务从硬件的束缚中解放出来。
1992年5月在美国通信系统会议上,JesephMitola(约瑟夫·米托拉)首次提出了“软件无线电”(SoftwareRadio,SWR)的概念。
1995年IEEE通信杂志(CommunicationMagazine)出版了软件无线电专集。
当时,涉及软件无线电的计划有军用的SPEAKEASY(易通话),以及为第三代移动通信(3G)开发基于软件的空中接口计划,即灵活可互操作无线电系统与技术(FIRST)。
1996年3月发起“模块化多功能信息变换系统”(MMITS)论坛,1999年6月改名为“软件定义的无线电”(SDR)论坛。
1996年至1998年间,国际电信联盟(ITU)制订第三代移动通信标准的研究组对软件无线电技术进行过讨论,SDR也将成为3G系统实现的技术基础。
从1999年开始,由理想的SWR转向与当前技术发展相适应的软件无线电,即软件定义的无线电(SoftwareDefinedRadio,SDR)。
1999年4月IEEEJSAC杂志出版一期关于软件无线电的选集。
同年,无线电科学家国际联合会在日本举行软件无线电会议。
同年还成立亚洲SDR论坛。
1999年以后,集中关注使SDR的3G成为可能的问题。
2设计任务与要求
2.1设计任务
设计一个可以产生正弦波的系统。
2.2设计的技术要求
要求输出的波形用示波器观察没有明显的失真,产生的波形幅度没有特殊限制,可以单一也可以是可调的,在频率方面,当按下不同的按键时,可以产生出多种频率的正弦波,在本设计中是产生两种或以上频率的正弦波。
3系统设计及方案比较
根据设计的任务与要求,我制定出了系统的设计方案,并且通过比较论证,选择了合适的器件。
采用STC89C52单片机作为控制的核心芯片,DAC0832对单片机输的的电压做数模转换,LM324运放对经过DAC0832处理后的信号进行放大,以达到产生一个正弦波的目的,加入一个独立按键,当按下按键时,产生出另外一种频率的正弦波,在LM324的输出端加入一个低通滤波器,对输出的波形进行平滑处理,得到规则的正弦波。
。
3.1整体设计方案
设计要求设计一个能产生正弦波的系统,产生的波形用示波器观察没有明显失真。
根据题目要求,本系统主要由单片机最小系统、DA模块、信号放大模块构成,键盘控制模块。
系统框图如3.1所示。
图3.1系统框图
为了较好实现各模块的功能,我分别设计了几种方案并分别进行了论证。
3.1.1MCU的选择
近年来,单片机的应用技术发展迅速,为智能装置的开发设计带来了很大的便利。
但在开发设计中选择合适的的MCU带来了很大的困难。
方案1:
采用可编程逻辑器件CPLD作为控制器。
CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、I/O资源丰富、易于进行功能扩展。
采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。
但本系统不需要复杂的逻辑功能,对数据处理速度的要求也不是很高。
且从使用及经济的角度考虑我放弃了此方案。
方案2:
采用凌阳公司的16位单片机,它是16位控制器,具有体积小、驱动能力高、集成度高、易扩展、可靠性高、功耗低、结构简单、中断处理能力强等特点。
处理速度高,尤其使用于语音处理和识别等领域。
但是当凌阳单片应用语音处理和辨识时,由于其占用的CPU自源较多而使得凌阳单片机同时处理其他任务的速度和能力降低。
由于本系统主要是要结合DA产生一个正弦波就可以了,所以没有必要使用位数这么多的单片机,从系统的稳定和经济方面我放弃了使用这种类型的单片机。
方案3:
采用Atmel公司的AT89S52单片机作为主控制器。
AT89S52是一个低功耗,高性能的51内核的CMOS8位单片机,片内含8K空间的可反复擦写1000次的Flash只读存储器,具有256bytes的随机存储数据存储器(RAM),32个I/O口,2个16位可编程定时计数器。
且该系列的51单片机可以不用烧写器而直接用串口或并口就可以像单片机中下载程序。
但是考虑到本系统要实现的功能不要如此高档的控制芯片,因此我不选择此方案。
方案4:
采用Atmel公司的STC89C52单片机作为主控制器。
STC89C52单片机是宏晶科技推出的新一代告诉/低功耗超强抗干扰能力的单片机,指令代码完全兼容传统的8051单片机,12时钟机器周期和6时钟机器周期可以任意选择。
片内含8K空间可反复擦写10000次的Flash只读存储器(RAM),32个I/O口,2个16位可编程定时计数器。
从方便使用和经济角度的考虑,我选择了方案4。
3.1.2DA的选择
方案一:
使用DAC7512,DAC7512是TI公司生产具有内置缓冲放大器低功耗单片12位数模转换器。
其片内高精度输出放大器可获得满幅(供电电源电压与地电压间)任意输出。
DAC7512带有一个时钟达30MHz通用三线串行接口,因而可以接入高速DSP。
其接口与SPI、QSPI、Microwire及DSP接口兼容,因而可与intel系列单片机、Motorola系列单片机直接连接而无需任何其他接口电路。
由于DAC7512串行数模转换器可以选择供电电源来作为参考电压,印而具有很宽动态输出范围。
此外,DAC7512数模转换器还具有三种关断工作模式。
正常工作状态下,DAC7512在5V电压下功耗仅为0.7mW,而省电状态下功耗为1μW。
因此,低功耗DAC7512无疑是便携式电池供电设备理想器件。
但是考虑到本设计的任务并不要产生一个精度很高的正弦波,从经济和合适性方面考虑,我放弃了这个方案。
方案2:
使用TLC5615。
TLC5615是10位的数模转换器,一个16位移位寄存器,接受串行移入的二进制数,并且有一个级联的数据输出端DOUT;并行输入输出的10位DAC寄存器,为10位DAC电路提供待转换的二进制数据;电压跟随器为参考电压REFIN提供很高的输入阻抗。
具有串行接口,其输出为电压型,最大输出电压是基准电压的两倍。
带有上电复位功能,即把DAC寄存器复位至全零。
性能比一般的电流型输出的DAC要好。
只需要通过3根串行总线就可以完成10位数据的串行输入,易于和工业标准的微处理器或微控制器(单片机)接口,适用于电池供电的测试仪表、移动电话,也适用于数字失调与增益调整以及工业控制场合。
由于设计的目的只要产生一个正弦波,输出的波形只要无明显失真即可。
所以本设计没有必要采用10位的数模转换器。
方案3:
采用DAC0832。
DAC0832是使用非常普遍的8位D/A转换器,其转换时间为1μs,工作电压为+5V到+15V,基准电压为±10V。
它主要由两个8位寄存器和一个8位D/A转换器组成。
使用两个寄存器(输入寄存器和DAC寄存器)的好处是可以进行两级操作,是该操作有更大的灵活性,其转换原理与T型解码网络一样,由于其片内有输入数据寄存器,故可以直接与单片机接口。
DAC0832以电流形式输出,当输出需要转换为电压时,可外接运算放大器。
本设计对转换精度要求不是很高,输出的波形要求也一般,从经济和方便的角度考虑,我选择了方案3。
3.1.3运算放大器的选择
方案一:
采用OP07,OP07芯片是一种低噪声,非斩波稳零的双极性运算放大器集成电路。
由于OP07具有非常低的输入失调电压(对于OP07A最大为25μV),所以OP07在很多应用场合不需要额外的调零措施。
OP07同时具有输入偏置电流低(OP07A为±2nA)和开环增益高(对于OP07A为300V/mV)的特点,这种低失调、高开环增益的特性使得OP07特别适用于高增益的测量设备和放大传感器的微弱信号等方面。
因为本设计对放大倍数的要求不是很高,主要是起对DAC0832输出的电流信号转换成电压信号的作用,从节约成本来看,我放弃了此方案。
方案2:
uA741M,uA741I,uA741C(单运放)是高增益运算放大器,用于军事,工业和商业应用.这类单片硅集成电路器件提供输出短路保护和闭锁自由运作
这些类型还具有广泛的共同模式,差模信号范围和低失调电压调零能力与使用适当的电。
但是这些芯片的价格都比较高并且都是单运放,而在本设计中我将用到两级放大,考虑到经济和设计的方便性,我放弃了此方案。
方案3:
用TL082。
TL082是以通用的J-FET双运放放大器。
它有较低的输入偏置和偏移电流;输出设有短路保护;输入级具有较高的输入阻抗;内建频率补偿电路;较高的压摆率。
最大的工作电压为±18V。
这种运放比较高档,在本设计中不需要如此高档的运放,并且其价格也比较高,所以我放弃了此方案。
方案4:
用LM324。
LM324系列器件为价格偏移的带有真差动输入的四运放大器。
与单电源应用场合的标准运算放大器相比,它们有一些显著优点。
该四运放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流大致为MC1741的静态电流的五分之一(对每一个放大器而言)。
共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。
输出电压范围也包含负电源电压。
此运放很适合本设计需要用到的运放,并且其价格低廉,因此我选择了方案4。
3.1.4硬件总体设计方案
经过反复论证,我最终确定如下方案:
1:
采用STC89C52单片机做主控制器。
2:
用DAC0832,8位数模转换芯片对单片机I/O的信号进行数模转换。
3:
用LM324运算放大器对DAC0832输出的电流信号转换成电压信号,并进行两级的放大,同时在第二级的时候加入滑动变阻器,实现输出信号的幅度可调。
4:
设计一个键盘模块,实现对输出不同波形的键控。
5:
设计一个滤波电路,对采样得到的梯形状波形进行平滑滤波。
3.2软件总体设计方案
3.2.1软件设计思路
将一个周期的正弦波的幅值量化为0-255,将这256个值存在程序空间里面,单片机定时依次循环取出这些值送到DAC0832转换器,DA输出后经过LM324进行电源到电压的转换,并进行一定的放大,加入滑动变阻器就可以得到一个幅度可调的正弦波了。
并且当按下不同的键盘时候,通过键盘检测,便能实现对输出不同频率的波形的控制。
3.2.2软件开发平台介绍
编程语言选用C语言。
汇编语言作为传统的嵌入式系统的编程语言,具有执行效率高的优点,但其本身是低级语言,编程效率较低,可移植性和可读性差,维护极不方便。
而C语言以其结构化,容易维护,容易移植的优势满足开发的需要。
MCS-51是支持C语言编程的编译器,它主要有两种:
FranklinC51编译器和KeilC51编译器,我们简称C51。
C51是专为MCS-51开发的一种高性能的C编译器。
由C51产生的目标代码的运行速度极高,所需存储空间极小,完全可以和汇编语言媲美。
Keil软件公司提供的专用8051嵌入式应用开发工具套件,可以编译C源文件、汇编源文件、连接定位目标模块和库、生成并调试目标程序,为实际的每一种8051及其派生系列产品生成嵌入式应用系统。
KeilC51交叉编译器兼容ANSI(美国国家标准协会)C编译器,专用于为8051微控制器系列生成快速紧凑的目标代码。
使用Keil8051开发工具套件,以工程的形式组织各种文件,工程开发周期与任何其他软件开发工程的周期大致相同。
µVision2IDE是Keil公司提供的用于开发MCS-51系列芯片的汇编语言与C程序的集成开发环境,是标准的Windows应用程序,同其他Windows应用程序一样,µVision2IDE环境包括菜单、工具条、编辑及显示多种窗口。
µVision2IDE支持使用的KeilC51工具,包括C编译器、宏汇编器、连接定位器、目标代码到HEX的转换器。
4硬件单元电路设计
这里主要讲述了以STC89C52为主要控制器,设计相关的硬件电路。
主要硬件电路有:
电源电路、单片机最小系统、DA转换模块、信号放大模块(电流信号转化为电压信号)、键盘控制电路、滤波电路。
4.1电源电路
STC89C52需要5V的正电源供电,而在信号放大部分所用到的LM324是采用±15V电源供电,所以需要设计一个电源电路为系统供电。
电源电路如图4.1所示。
图4.15V电源电路
上图给出的是产生5V电压输出的电路,当把图中的7805相应换成7815和7915,并且将初级的滤波电解电容换成4700μF时便能输出分别为+15V和-15V的电压。
4.2微控制器模块的设计
4.2.1STC89C52单片机介绍
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35Mhz,6T/12T可选。
其引脚部分图如图4.2所示。
图4.2STC89C52引脚图
具体引脚及功能介绍如下:
主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
外接晶振引脚(2根)
XTAL1(Pin19):
片内震荡电路的输入端
XTAL2(Pin18):
片内震荡电路的输出端
控制引脚(4根)
RST/VPP(Pin9):
复位电路,引脚上出现2个机器周期的高电平将使单片机复位
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
可编程输入/输出引脚(32根)
STC89C52单片机油4组8为的可编程I/O口,分别是P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
P0口(Pin32-Pin39):
8位双向I/O口线,名称为P0.0-P0.7
P1口(Pin1-Pin8):
8位准双向I/O口线,名称为P1.0-P1.7
P2口(Pin21-Pin28):
8位准双向I/O口线,名称为P2.0-P2.7
P3口(Pin10-Pin17):
8位准双向I/O口线,名称为P3.0-P3.7
4.2.2STC89C52单片机最小系统电路
STC89C52单片机最小系统电路如图4.3所示。
主要包括复位电路、晶振电路、以及各种滤波电容。
图4.3单片机最小系统
4.3DA转换模块的设计
在本设计中,我是用到的DA其型号是DAC0832,DAC0832的主要特性如下:
8位分辨率;
电流建立时间1μs;
数据输入可采用双缓冲、单缓冲或直通方式;
输出电流线性度可在满量程下调节;
逻辑电平输入与TTL电平兼容;
单一电源供电(+5V~+15V);
低功耗,20mW。
DAC0832芯片为20脚双列直插式封装,其引脚部分如图4.4所示。
图4.4DAC0832引脚图
DAC0832各引脚功能如下所述:
D0~D7:
8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);
ILE:
数据锁存允许控制信号输入线,高电平有效;
CS:
片选信号输入线(选通数据锁存器),低电平有效;
WR1:
数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;
XFER:
数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;
WR2:
DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。
IOUT1:
电流输出端1,其值随DAC寄存器