基于DSP的信号发生器的设计.docx
《基于DSP的信号发生器的设计.docx》由会员分享,可在线阅读,更多相关《基于DSP的信号发生器的设计.docx(25页珍藏版)》请在冰豆网上搜索。
基于DSP的信号发生器的设计
2011届本科生毕业论文(设计)
题目:
基于DSP的信号发生器的设计
作者姓名:
学号:
系(院):
机械与电子工程学院
专业:
电子信息工程
指导教师姓名:
指导教师职称:
2012年3月9日
Year2011BachelorGraduationassignment(Design)
Title:
DesignofSignalGeneratorbasedonDSP
Author:
TaoLi-juan
StudentID:
2007080305
Department:
Mechanicalandelectronicengineeringfaculty
Major:
Electronicandinformationengineering
Instructor:
WenYan
ProfessionalTitle:
Lecturer
MARCH9,2012
摘要
阐述了基于TMS320V5402DSP(以下简称C5402)芯片实现信号发生器的设计方法和原理。
首先介绍了实现信号发生器的几种算法及信号生成原理,接着阐述了系统的软件和硬件的设计。
该信号发生器可以产生任意波形,且信号的幅度和频率可以由DSP程序控制。
具有易于修改,灵活性强等优点。
克服了通常信号发生器模式固定,波形不可编程的不足。
该发生器满足信号发生器的小型化,低成本和方便使用发展趋势的需要,充分利用DSP信片的优点。
这个设计的硬件部分有该DSP芯片和D/A转换芯片TLC7528组成,DSP芯片用于产生各种波形,D/A转换芯片用于把数字信号转换为模拟信号。
在以上硬件的基础上,通过软件编程来实现三角波,方波和正弦波等波形。
关键词:
数字信号处理器;信号发生器;D/A转换器;波形
ABSTRACT
ThispaperexpoundsthedesignofsignalgeneratorbasedonTMS320VC5402DSP.First,severalalgorithmsofsignalgeneratorrealityandtheprincipleofsignalgenerationisintroduced.Next,thehardwareandthesoftwaredesignisdiscussedinpaper.Thissignalgeneratorcangenerateseveralwaveforms,notonlythevoltageandthefrequencyofthesignalarebothcontrolledbyDSPprograms,butalsoitcanbeeasilymodified,moreflexibleandmanyotheradvantages.Thereforeitimprovedtheshortcomingoffixedpatternandwaveformcannotprogram.Thegeneratorsignalgeneratortomeettheminiaturization,lowcostandeasytousedevelopmenttrendoftheneedtofullyusetheadvantagesofDSPsignal.ThehardwareofthisdesignismadebyTMS320VC5402DSPCchipandD/AconversionchipTLC7528.DSPchipproducewavesandD/Aconversionchipisusedchangedigitalsignalstoanalogsignals.Basedonthehardware,weusesoftwaretocarryouttrianglewave,squarewaveandsinewave.
Keywords:
digitalsignalprocessing;signalgenerator;D/Aconversion;wave
绪论
信号发生器在现代工程中的应用非常广泛。
在实际中常产生一些特殊波形,用于仿真实际信号的波形,以监测和调试测量装置。
然而目前市场上的信号发生器的价格昂贵,体积比较大而且波形的可编程灵活性小,不能满足实际的需要。
随着电子技术和科技的快速发展,DSP具有快速,编程方便,精度高,稳定行好,接口方便,集成度高的特点。
为了充分利用其优点,需要一个合理的,方便使用的系统来满足市场发展的需要。
DSP(digitalsignalprocessing)即数字信号处理器,它是在模拟信号变成数字信号以后进行的高速实时处理器[1],自从20世纪70年代以来以其独特的结构和快速实现个种数字信号处理算法的突出优点已经广泛的应用于社会生活各个领域,例如:
通信,雷达,声纳,仪器仪表,医疗设备,家用电器等,同时它也推动了其他各个科学的发展和创新[2]。
因为正弦波是任何波形构成的基本单元,所以本文在此以正弦波为例,介绍了基于DSP正弦波信号发生的算法(查表法、内插法)和构成,在此DSP芯片采用的是TMS320VC5402,它是TI公司对消费类电子推出的一款定点DSP,其具有性价比高,处理速度快接口丰富等特点。
产生系统所需要的设定频率和幅度的正弦波[3];可以为科研和实验提供基础。
也介绍了对MATLAB仿真的运用[4]。
本文设计的这种信号发生器比以前的数字信号发生器具有速度更快且实现更加简单。
1正弦信号生成算法的简介
本章以正弦信号为例,介绍了正弦信号产生的几种常见的算法,包括采样法、查表法、插值法,泰勒展开法等
1.1采样回放法
该方法很容易实现,只要对已有的标准的正弦波信号源进行采样,得到数据后直接回放或进行变频处理后放回。
该方法关键在于采样高性能的A/D、D/A、芯片并合理设计硬件电路,使信号处理过程中保证波形良好,以保证采样数据的精确性。
进行数字变频及变幅处理时,要清楚数据的格式并保证回放数据的点数满足奈斯特定理,防止频谱混迭。
1.2查表法
查表是比较普遍地方法,首先自己生成正弦数据表,再进行查表、D/A转换后,得到所需的波形。
优点是处理速度快,调频调相较放回法容易,避免了数据的单一,增加了精度。
如果存储的空间足够大,那么就可以通过制作较大的查找表来得到较高的精度。
如建立一个100个数据点的正弦数据表,具体过程如下,采用查表法来实现对某一正弦波的频率及幅值的设定,在程序里要建立一张正弦查找表。
根据分析及计算的到每周期最多向D/A送多少个数据点,假设送100个数据,因此建立一张有100个数据的正弦查表。
对于频率为f的正弦波来说,若每周期取100点数据,则取样间隔就为(1/f)/100=1/(100f),则对幅值为1的正弦波如下式:
(1-1)
n=0,1,2,……,99
这里采用MATLAB软件来产生一个100个数据点的正弦波数据文件,之后将其添加到CCS工程中进行编译,连接,调试直接至成功[5]。
如何运用MATLAB程序来产生sin100.dat的数据文件将在第三章有介绍,请作为参考。
1.3查表结合插值法
查表结合插值法是在查表的基础上加以改进得到的[6]。
发生相同性能正弦波,查表法结合插值法的长度远远要小于单纯查表法的表格长度,从而克服了查表法中占用大量内存资源的缺点,节约了存储空间。
查表法结合插值法的表格如表1-1所示。
先将一个周期的单位正弦波分成N等份,并计算所有离散点的幅值,
之后将这些幅值依次排列存入数据区,从而构成一张表格。
表1-1查表法结合插值法的表格格式
序号(I)
度数
函数值
0
1
2
…
N-2
N-1
0×360°/N
1×360°/N
2×360°/N
…
N-2×360°/N
N-1×360°/N
sin(0°/N)
sin(360°/N)
sin(720°/N)
…
sin[(N-2)360°/N]
sin[(N-1)360°/N]
查表法结合插值法产生的正弦波形方法是通过在两个表项之间插入若干个值来实现的,插入值的大小决定于相邻的两个表项值和插入点的位置。
考虑到DSP处理速度,一般采用线性插值。
每一个插值根据下式得到:
sin[360(I+D)/N]=sin(360I/N)+D{sin[360(I+1/N]-sin(360I/N)}(1-2)
其中,D是一个介于0到1之间的小数,表示插值点离左边表项点的相对位置;N是表格的长度;sin(360I/N)和sin[360(I+1)/N]是相邻的两个表项值。
1.4泰勒展开法
查表法是使用比较普遍的方法,但需要的存储器容量很大。
泰勒级数展开法需要的存储单元少,其优点是处理速度快,调频调相容易,精度高,但具有稳定性好,算法简单,易于编程等优点;而且展开的级数越多,失真度就越小。
一个角度为θ的正弦和余弦函数采用,可以展开成泰勒级数,取其前5项进行近似得。
下面式中:
x为θ的弧度值,x=2πf/fs(fs是采样频率;f是所要发生的信号频率)。
2系统的硬件设计
所设计的基于DSP的信号发生器是采用TI公司生产的DSP芯片TMS320VC5402和D/A转换芯片TLC7528组成,其中DSP芯片TMS320VC5402是系统的核心。
硬件结构框图如图1所示(详细原理图见附录1)。
整个系统设计简单灵活,功能却很强大,通过软件编程可实现以下功能:
1)能产生正弦波、三角波、锯齿波、方波等常用波形。
2)产生的各种波形可以改变相位、频率和幅度。
图2-1硬件结构图
2.1硬件系统设计思想
本系统是以TMS320VC5402这个DSP芯片为核心,通过DSP芯片产生各种的波形,通过D/A转换芯片实现把数字信号转换为模拟信号。
整个硬件系统所要做的就是正确连接DSP芯片和D/A转换芯片,确保芯片正常工作,整个系统能正常运行。
D/A把数字信号转换为连续的模拟信号,然后通过示波器把模拟波形输出到示波器上。
这就是整个硬件方案的工作原理。
整个硬件方案围绕DSP和D/A转换器展开,这个硬件方案可以产生正弦波、方波、锯齿波、三角波等常见波形。
这些波形的输出频率、幅度等值可以通过控制DSP的输入程序来控制,也就是说,这些波形的频率、幅度是可以调节的。
近年来,由于DSP技术的飞速发展,其运算速度有了很大的提高,由于本方案选择了DSP作为产生信号源的芯片,所以相对于运算速度较慢的单片机来说,DSP产生的信号源频率可以达到更高。
2.2系统相关电路的介绍
2.2.1DSP芯片的特点及使用说明
本文采用的DSP芯片是C5402,该芯片是TI公司推出的低功耗16bit,点DSP芯片,哈佛结构,支持流水线操作,运算速度可达100MI/S(兆指令/秒),指令周期为10ns;TMS320VC5402片内的16K双访问RAM可以保证系统算法程序在片内实时运行。
IM的程序扩展空间也可足够的保存算法处理的中间数据。
包括此外,C5402既支持软件中断,也支持硬件中断。
TMS320VC5402主要有中央处理器CPU,特殊功能寄存器,数据存储器RAM,程序存储器ROM,I/O接口功能,串行口,主机通信接口HPI,定时器,中断系统等10部分组成[1,7]。
各部分功能如下:
(1)中央处理器(CPU)
它是DSP芯片的核心,它有以下特点:
(a)采用多总线结构,通过一组程序总线、三组数据总线和四组地址总线来实现。
(b)40位算术逻辑运算单元ALU,包括一个40位的桶形移位寄存器和两个独立的40位累加器。
(c)17×17位并行乘法器,与40位专用加法器相连,可用于进行非流水线的单周期乘法—累加运算。
(d)比较、选择、存储单元,可用于Viterbi译码器的加法-比较-选择运算。
(e)指数编码器,是一个支持单周期指令EXP的专用硬件。
可以在一个周期内计算40位累加器数值的指数。
(f)配有两个地址生成器,包括8个辅助寄存器和2个辅助寄存器运算单元。
(2)数据存储器RAM
TMS320VC5402有两种片内数据存储器:
(a)双寻址RAM:
在一个指令周期内,可对其进行两次存取操作,一次读出和一次写入;
(b)双寻址RAM:
在一个指令周期内,只能进行一次存取操作。
(3)程序存储器ROM
TMS320VC5402的程序存储器可由ROM和RAM配置而成,程序空间可以定义在ROM上,也可以定义在ROM上。
当需要高速运行程序时,可以将片外ROM中的程序调入到片内RAM中,以提高程序运行速度。
降低对外部ROM的要求,增强系统整体抗干扰性能。
(4)I/O口
TMS320VC5402芯片只有两个通用I/O引脚BIO和XF,BIO主要用来监测外部设备工作状态,而XF用来发信号给外部设备。
另外,芯片还配有主机接口HPI,同步串行口和64K字的I/O空间,HPI和串行口通过控制,用做通用I/O口使用。
而64K字I/O空间可通过外加缓冲器或
锁存电路,配合外部I/O读写控制时序构成片外外设的控制电路。
(5)定时器
定时器是一个软件可编程计数器,用来产生定时中断。
定时器主要由定时寄存器TM,定时周期寄存器PRD,定时控制寄存器TCR及相应的逻辑控制电路组成。
其中寄存器TIM、PRD和TCR都是存储映象寄存器,它们在数据存储器中的地址分别为0024H、0025H和0026H。
TIM是一个减1寄存器。
PRD用来存放定时时间常数。
TCR中包含定时器的控制位和状态位。
(6)中断系统
TMS320VC5402的中断系统具有硬件中断和软件中断。
硬件中断:
由外围设备引起的中断分为片外外设所引起的中断和片内外设所引起的中断。
软件中断:
有程序指令INTR、TRAP和RESET所引起的中断。
中断管理优先级为11—16个固定级,有4种工作方式。
TMS320VC5402中断系统设置有两个中断寄存器,分别为中断标志寄存器和中断屏蔽寄存器。
中断标志寄存器:
是一个存储映象寄存器,当一个中断出现时,IFR中相应的中断标志位置1,直到CPU识别该中断为止。
中断屏蔽寄存器:
也是一个存储映象的CPU寄存器,主要用于屏蔽外部和内部的硬件中断。
如果状态寄存器ST1中的INTM=0,IMR寄存器中的某位置1,就能开放相应的中断。
由于RS和NMI都不包含在IMR中,因此IMR对这两个中断不能进行屏蔽。
(7)指令系统
支持单指令重复和块指令重复;支持存储器块传送指令;支持32位长操作数指令;具有支持2操作数或3操作数的读指令;具有能并行存储和并行加载的算术指令;支持条件存储指令及中断快速返回指令。
(8)片外围电路
具有软件可编程等待状态发生器;设有可编程分区转换逻辑电路;带有内部震荡器或外部时钟源的片内锁相环发生器;支持全双工操作的串行口,可进行8位或16位串行通信。
分为:
单通道同步串行口SP、带缓冲器多通道同步串行口BSP、并行带缓冲器多通道同步串行口MCBSP及时分多通道带缓冲器串行口TMD;带4位预定标器的16位可编程定时器;设有与主机通信的并行接口HPI;具有外部总线判断控制,以断开外部的数据总线、地址总线和控制信号;数据总线具有总线保持器的特性。
(9)主机接口HPI
HPI是一个与主机通信的并行接口,主要用于DSP与其他总线或CPU进行通信,信息可通过TMS320VC5402的片内存储器与主机进行数据交换。
不同型号的器件配置不同的HPI口,可分为8位标准HPI口、8位增强型HPI接口和16位增强型HPI接口。
其框图如图2-2所示:
图2—2HPI接口框图
2.2.2D/A转换器TLC7528使用说明
TLC7528C是双路、8位数字-模拟转换器,内部具有各自单独的数据锁存器,其特性包括两DAC非常精密的一致性,数据通过公共8位输入口转送至两DAC数据锁存器的任意一个。
控制输入端DACA/DACB决定哪一个DAC被装载。
器件的装载周期与随机存取存储器的写周期类似,能方便地与大多数通用微处理器总线或端口相接口。
器件的工作电压5V至15V,功耗小于15mW(典型值)。
2或4象限的乘法功能使该器件成为许多微处理器的增益设置和信号控制的良好选择。
它可工作于电压模式,与电流输出相比较,更适合于电压输出。
TLC7528C的工作温度范围从0℃至70℃。
TLC7528C的工作特点如下:
(a)易于微处理器接口;
(b)片内数据锁存;
(c)在每一个A/D转换范围内具有单调性;
(d)适合于包括TMS320借口的数字信号应用的快速控制信号;
(e)价格便宜。
(1)结构框图:
TLC7528的结构框图如图2-3所示:
图2—3TLC7528的结构框图
(2)TLC7528的引脚描述:
表2—1TLC7528的引脚定义
引脚
名称
描述
引脚
名称
描述
1
AGND
模拟地
11
OUTB
通道2输出
2
OUTA
通道1输出
12
RFTB
通道2反馈电压
3
RFBA
通道1反馈电压
13
REFB
通道2参考电压
4
REFA
通道1参考电压
14
VDD
驱动电压
5
DGND
数字地
15
WR
读写选通
6
A/B
通道1,2选通
16
CS
片选
7
DB7
数据位7
17
DB0
数据位0
8
DB6
数据位6
18
DB1
数据位1
9
DB5
数据位5
19
DB2
数据位2
10
DB4
数据位4
20
DB3
数据位3
(3)TLC7528的工作原理:
TLC7528包括两个相同的8位乘法D/A转换器DACA和DACB。
每一个DAC由反相R-2R梯形网络、模拟开关以及数据锁存器组成。
二进制加权电流在DAC输出与AGND之间切换,于是在每一个梯形网络分支中保持恒定电流,与开关状态无关。
大多数仅需要加上外部运算放大器和电压基准。
TLC7528通过数据总线、CS、WR以及DACA与DACB等控制信号与微处理器接口。
当CS与WR均为低电平时TLC7528模拟输出对DB0~DB7数据总线输入端的活动做出响应。
在此方式下,输入锁存器是透明的,输入数据直接影响模拟输出。
当CS与WR信号变为高电平时,DB0~DB7输入端上的数据被锁存,直到CS与WR信号再次变为低电平时为止。
CS为高电平时,不管WR的信号为何种状态,数据输入被禁止。
当用5V电源电压工作时,此器件的数字输入提供TTL兼容,此器件可以用在5V~15V范围内任何电源电压工作,但是,电源电压工作在5V以上时,输入逻辑电平与TTL不兼容。
2.2.3电源电路和晶振电路使用说明
一个完整的DSP系统通常是由DSP芯片和其他相应的外围芯片组成的,下面介绍本次设计中用到的电源电路、复位电路和晶振电路。
(1)电源电路使用说明
TMS320VC5402DSP芯片采用低电压设计,并且采用双电源供电,即内核电源CVDD和I/O电源DVDD。
I/O电源采用3.3V电源供电,而内核电源采用1.6V供电,降低内核电源的目的是为了降低功耗。
由于TMS320VC5402DSP芯片采用双电源供电,使用时需要考虑它们的加电次序。
在理想情况下,DSP芯片上的两个电源应该同时加电,但在有些场合很难做到。
若不能做到同时加电,应先对DVDD加电,然后再对CVDD加电,同时要求DVDD电压不超过CVDD电压2V。
这个加电次序主要依赖于芯片内部静电保护电路。
内部保护电路如图2—4所示:
图2—4内部静电保护电路图
从图中可以看出,DVDD电压不超过CVDD电压2V,即用4个二极管降压,而CVDD电压不超过DVDD电压0.5V,即一个二极管降压,否则有可能损坏芯片。
下图2-5是产生3.3V的电源电路图
图2—5产生3.3V的电源电路
这个是产生3.3V电压的电路图,考虑大部分数字系统使用的电源是5V,图中VCC采用5V电压。
通过电压调节器产生3.3V电压。
(2)晶振电路说明
振荡器是用来将直流电源能量转换为一定波形的交变振荡信号能量的转换电路。
利用石英晶体的压电效应可以做成晶体谐振器。
石英晶振的固有频率十分稳定,它的温度系数(温度变化1°C所引起的固有频率相对变化量)在10-6以下。
另外,石英晶振的振动具有多谐性,即除了基频振动以外,还可利用其泛音振动。
前者称基频晶体,后者称泛音晶体。
在工作频率较高的晶体振荡器中,多采用泛音晶体振荡电路。
在泛音晶振电路中,为了保证振荡器能准确地振荡在所需要的奇次泛音上,不但必须有效的抑制掉基频和低次泛音上的寄生振荡,而且必须正确的调节电路的环路增益,使其在工作泛音频率上略大于1,满足起振条件。
而在更高的泛音频率上都小于1,不满足起振条件。
本次设计所用的晶振电路如图2—6所示:
图2—6晶振电路图
2.3DSP芯片与D/A转换器的接口电路
本文采用的是TMS320VC5402DSP和TLC7528,则两芯片的接口电路如下图2-7所示:
图2—7接口电路图
3系统的软件设计
在应用系统中,系统软件是建立在具体的硬件基础上的,根据系统功能要求可靠的实现系统的各种功能。
好的软件设计能够充分发挥微控制器的运算和逻辑控制功能,从而提高仪器的精度和使用的方便性。
该软件设计是基于CCS开发环境的。
CCS是TI公司推出的为开发TMS320系列DSP软件的集成开发环境,是目前使用最为广泛的DSP开发软件之一。
它提供了环境配置、源文件编译、编译连接、程序调试、跟踪分析等环节,并把软、硬件开发工具集成在一起,使程序的编写、汇编、程序的软硬件仿真和调试等开发工作在统一的环境中进行,从而加速软件开发进程。
本文采用了与硬件开发板相结合的在线编程模式,通过CCS软件平台上应用C语言及MATLAB语言来实现正弦信号发生装置[8,9,10]。
3.1基于泰勒展开实现正弦波
正弦波的波形可以也看作由无数点组成,则整个系统软件由主程序和基于泰勒展开法的SIN子程序组成,相应的软件流程图如图3-1和图3-2所示:
图3-1主流程图图3-2子流程图
程序中,N值为产生正弦信号一个周期的点数,产生的正弦信号频率与N数值大小及D/A转换频率f有关,产生正弦波信号频率F的计算公式为:
F=f/N
因此,选择每个正弦周期中的样点数,改变每个采样点之间的延迟,即通过调节N值产生不同频率的波形,同时也可以利用软件改变输出的离散波形值乘以相应的缩放因子A,从而调节波形的幅度。
3.2基于MATLAB语言实现正弦波
正弦波的波形可以看作由无数点组成,这些点与x轴的每一个角度值相对应,利用MATLAB语言来计算x轴每一点对应的y的值(在x轴取N个点进行逼近)。
其系统程序流程图如下图3-3所示:
对如何用MATLAB语言取得数据文件,本文后面将有介绍。
图3-3系统程序流程图
3.2.1如何用MATLAB产生数据序列
MATLAB用两个参数量x和n表示有限长序列x(n),x是x(n)样值向量,n是位置向量(相当于图形表示方法中的横