基于TMS329F2812DSP的课程设计.docx
- 文档编号:1816661
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:19
- 大小:1.19MB
基于TMS329F2812DSP的课程设计.docx
《基于TMS329F2812DSP的课程设计.docx》由会员分享,可在线阅读,更多相关《基于TMS329F2812DSP的课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
基于TMS329F2812DSP的课程设计
一引言
随着运算机技术的飞速进展,对信号发生器波形的要求愈来愈高。
目前,经常使用信号发生器大部份是由模拟电路组成,当这种模拟信号发生器用于低频输出时,由于需要较大的RC值,致使参数准确度难以保证,且造成体积和功耗偏大,而数字式波形发生器,因其输出幅值稳固、输出频率持续可调的优势,已慢慢取代了模拟电路信号发生器。
由于其运算速度高,系统集成度强的优势,能够设计基于DSP的正弦信号发生器,该发生器实时性强、可扩展性好、波形精度高、可调剂频率和幅度、稳固性好、用途普遍,各方面均优于模拟信号发生器和数字信号发生器。
因此,本文提出了一种基于TMS320F2812的正弦信号发生器的设计方式。
本文提出了一种基于TMS320F2812实现正弦信号发生器的设计原理与方式,介绍了所设计的正弦信号发生器硬件电路结构和软件程序流程图。
在CCS开发环境下,成立了正弦信号发生器的陈或许编写工程。
通过导入加载程序,在PC机上利用软件仿真将正弦波形显示出来。
结合DSP硬件特性,通过D/A转换器取得设定参数的正弦波形输出,达到设计目的。
该信号发生器弥补了通常信号仪发生器模式固定,波形不可编程的缺点,其具有实时性强,波形精度高,可方便调剂频率和幅度、稳固性好等优势。
论述了基于TMS320F2812DSP实现信号的设计原理和实现方式,详细介绍了所设计的信号发生器的硬件电路结构和程序设计流程图。
该信号发生器能够产生任意复杂的波形,且信号的幅度和频率全数由DSP程序操纵,易于修改,弥补了通常信号发生器模式固定、波形不可编程和精度低的不足。
另外,还运用了DSP的外部并行16位FLASH引导装载设计方式,通过在线FLASH编程,使得所设计的DSP目标系统成为一个独立的脱机运行系统,灵活性大大增强,利用也加倍方便。
二设计目的
在CCS集成开发环境下,通过编写的TMS320F2812利用串行外设接口SPI的驱动程序,设定128个采样点,编译调试成功以后,将该程序加载到PC机里面。
通过Simulator软件仿真环境,把程序里面的正弦信号的波形显示出来。
利用硬件仿真器将程序烧在硬件F2812芯片里面,通过示波器来显示正弦信号,并观看两个输出口的波形和稳固性。
最后在模转换的大体操作的基础上,设计基于数模转换芯片AD7303的正弦信号发生电路。
再结合串行通信接口SCI,在硬件芯片和PC机之间进行数据的传输。
三设计要求
1、编写串行外设接口SPI的驱动程序;
2、编译运行程序,加载程序于PC机内和硬件F2812芯片里面;
3、了解数模转换的大体操作,设计基于数模转换芯片AD7303的正弦信号发生电路;
4、编写TMS320F2812利用SPI接口驱动AD7303输出正弦信号波形的应用程序。
5、利用硬件芯片F2812来实现PC机与硬件之间的数据传输。
四整体设计
4、1硬件部份
数模转换操作的应用基础
DAC是最大体最重要的混合信号构建模块,其输出能够是单端,也能够是差分;器件能够是单极性,也能够是双极性的;DAC的传递函数是线性的,也能够是非线性的。
实际传递函数与理想传递函数的拟合度能够用DAC的积分非线性或INL来描述,通常有两种表达方式:
一种是端点方式。
另一种是最正确直线的方式。
即便是简单的Σ-Δ转换器那样并非呈现微分非线性误差的转换器也都有INL误差,而且那个误差还会阻碍到杂散和失真的性能。
数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。
D/A转换器大体上由4个部份组成,即权电阻网络、运算放大器、基准电源和模拟开关。
模数转换器中一样都要用到数模转换器,模数转换器即A/D转换器,简称ADC,它是把持续的模拟信号转变成离散的数字信号的器件。
利用专用的数模转换芯片,能够实现将数字信号转换成模拟量输出的功能。
在EXPIV型实验箱上,利用的是AD7303数模芯片,它能够实现同时转换2路模拟信号数出,并有8位精度,DA转换时刻1.2μs。
其操纵方式较为简单:
第一将需要转换的数值及操纵指令同时通过SPI总线传送到AD7303上相应寄放器,通过一个时刻延迟,转换后的模拟量就从AD7303输出引脚输出。
数模转换器的大体工作原理确实是将输入的二进制数字量转换城模拟量,以电压或电流的形式输出。
D/A转换器实质上是一个译码器。
一样经常使用的线性D/A转换器输出电压和输入数字量之间是成正比关系的。
将输入的每一名二进制代码按其权值大小转换成相应的模拟量,然后将代表列位的模拟量相加,那么所得的总模拟量就与数字量成正比,如此便实现了从数字量到模拟量的转换。
数字量与模拟量的转换如下表:
4.1.2AD7303简介
AD7303是一款双通道、8位电压输出DAC,采纳+2.7V至+5.5V单电源供电。
它内置片内周密输出缓冲,能够实现轨到轨输出摆幅。
这款器件采纳多功能三线式串行接口,能够以最高30MHz的时钟速度工作,并与QSPI、SPI、MICROWIRE和数字信号处置器接口标准兼容。
串行输入寄放器为16位,其中8位用作DAC的数据位,其余8位组成一个操纵寄放器。
移位寄放器中的数据能够在移位脉冲作用下一次逐位右移或左移,数据既能够并行输入、并行输出,也能够串行输入、串行输出,还能够并行输入、串行输出,串行输入、并行输出,十分灵活,用途也很广。
输入移位寄放器
AD7303输入移位寄放器位概念及设置方式
4.1.3应用AD7303的DAC电路设计
AD7303采纳的是+2.7V至+5.5V的单电源供电。
本课程设计顶用的是+3.3V。
但在波形中可达+5.5V。
AD7303的DAC电路设计的进程中,用到了运算放大器,电阻,电容等。
在电路设计时,应注意运算放大器的连接和模拟地的接通。
还运用U12和串行外设接口SPI来连接。
有两个输出OUTA和OUTB。
具体的AD7303的电路连接设计如以下图所示:
AD7303电路设计
A/D7303具体的工作流程如以下图所示,从以下图咱们能够看出,当寄放器接收到外部的时钟信号以后,在十六位的移位寄放器里面自动的将十六位分为高八位的数据寄放器和低八位的操纵寄放器。
将这十六位的数据别离送入到输入寄放器和DAC寄放器里面。
通过DAC的A和B通道以后,再通过电流电压转换器,有通道A和B输出来。
这确实是A/D7303的工作流程。
4.2软件部份
4.2.1程序流程图
4.2.2在CCS集成开发环境下新建工程
双击桌面的CCS图标打开CCS的运行环境,显现了一个运行界面。
点击Project下New新建一个工程,新建工程后编写串行外设接口SPI的驱动程序。
该程序是采样128个点,利用FOR循环输出正弦信号的波形。
依照DSP编程的一样步骤,对各个函数和变量进行声明,对各个寄放器进行初始化。
并对各个寄放器设置相应的值。
还有对主函数,子函数的编写,和子函数的正确挪用。
如以下图1为新建工程后编写的串行外设接口SPI的驱动程序的界面。
图2为添加断点以后的程序运行到断点位置的界面。
图3为给整个程序添加驱动程序的界面。
图4为在Debug下调试的界面。
图1
图2
图3
图4
4.2.3在Simulator环境下观看信号的时域及FFTMagnitude波形
在将工程新建后,把串行通信接口SPI的驱动程序键入后,进行编译,运行无误后。
在FILE下LoadProgram加载程序到PC机。
再通过调试和运行,和断点的设置。
在View下Graph选择时域。
弹出对话框,设置相应的参数,如以下图:
图5
对应的输出的正弦信号波形如以下图:
图6
在GraphPropertyDialog的对话框中,StartAddress的地址是Curve。
因为Curve是曲线上的取样点组成的数组,数组的名称也即是数组的起始地址。
DSP的数据类型是十六位的无符号数。
幅度能够自动的调剂,也能够自己来设定。
这和Autoscale的ON,OFF有关。
Q-value表示的是量标,取0时,幅度最大255(自己设定值时);而若是取1时,幅度最大值减半。
从其对应的波形能够明白,波形的曲线有明显的断层。
这和取的样值点数少有关,取值多时,能够使得曲线更接近实际情形。
但不能超过256,因为在程序中的寄放器用的是十六位的。
超过了256,就会溢出,造成波形的严峻失真。
(若是量标值是2,那么其幅度确实是原先的1/4)具体的设定值情形如下图7:
图7
对应的输出正弦信号波形如下图8:
图8
在View下选Graph,选择频域FFTMagnitude。
在接下来显现的对话框里设定相应的参数值,与时域的情形类似,其设定情形如下面的界面所示:
图9
其对应的频域波形如下面的界面所示:
图10
一样,与时域的参数设置类似,若是将Q-value量标值改成1,频率的值也将是原先的一样。
从信号的时域和频域的波形能够看出,它的时域的幅值和频域的幅值是符合时刻与频率的函数关系的。
4.2.4程序清单
在SPI驱动程序的基础上,需要添加功能函数。
scia_loopback_init(void),scia_fifo_init(void),scia_xmit(inta)。
设置GPIO寄放器组的位是0x003F,如此设置I/O口是SCI和SPI口。
初始化SCI的寄放器scia_fifo_init,scia_loopback_init()。
在程序里加入FOR循环,输出曲线的图形。
因为通过计算波特率是9600,因此波特率寄放器的设置值是01E7。
应该注意在程序的开始声明了函数,因尔后面应该有对应的子函数。
在加入了串口SCI程序以后的总程序如下:
文件名称:
;*适用平台:
DSP专家4实验箱
;*CPU类型:
DSPTMS320F2812
;*软件环境:
CCS2.20(2000系列)
;*接线说明:
一、F2812CPU板的JUMP1的2和3脚短接,JUMP2的1和2脚短接;
;*二、实验箱底板的开关K9拨到右边,选择CPU2.
;*测试现象:
设置好CCS的环境,打开本工程,编译、下载、运行。
;*利用示波器观看实验箱DA单元的二号孔"输出1"有正弦波输出。
*/
/***************************头文件*******************************/
#include"DSP281x_Device.h"//DSP281xHeaderfileIncludeFile
#include"DSP281x_Examples.h"//DSP281xExamplesIncludeFile
#include""
unsignedintcurve[128];
unsignedintcurve1[128];
unsignedintcurve2[128];
//Prototypestatementsforfunctionsfoundwithinthisfile.
voidspi_init(void);
voiddelay(void);
voidscia_loopback_init(void);
voidscia_fifo_init(void);
voidscia_xmit(inta);
voidmain(void)
{
inti,p,data,j;
//Step1.InitializeSystemControl:
//PLL,WatchDog,enablePeripheralClocks
//ThisexamplefunctionisfoundintheDSP281x_SysCtrl.cf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 TMS329F2812DSP 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)