dsp报告.docx

上传人:b****7 文档编号:10853502 上传时间:2023-02-23 格式:DOCX 页数:17 大小:1.05MB
下载 相关 举报
dsp报告.docx_第1页
第1页 / 共17页
dsp报告.docx_第2页
第2页 / 共17页
dsp报告.docx_第3页
第3页 / 共17页
dsp报告.docx_第4页
第4页 / 共17页
dsp报告.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

dsp报告.docx

《dsp报告.docx》由会员分享,可在线阅读,更多相关《dsp报告.docx(17页珍藏版)》请在冰豆网上搜索。

dsp报告.docx

dsp报告

1绪论

数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。

20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。

数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。

在过去的二十多年时间里,信号处理已经在通信等领域得到极为广泛的应用。

下图是数字信号处理系统的简化框图。

此系统先将模拟信号转换为数字信号,经数字信号处理后,再转换成模拟信号输出。

其中抗混叠滤波器的作用是将输入信号x(t)中高于折叠频率的分量滤除,以防止信号频谱的混叠。

随后,信号经采样和A/D转换后,变成数字信号x(n)。

数字信号处理器对x(n)进行处理,得到输出数字信号y(n),经D/A转换器变成模拟信号。

此信号经低通滤波器,滤除不需要的高频分量,最后输出平滑的模拟信号y(t)。

 

数字信号处理系统简化框图

数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。

例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。

近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。

2总体方案的分析和设计

2.1总体方案设计

(1)基于DSP的特点,本设计采用TMS320X2812系列的DSP作为正弦信号发生器的核心控制芯片。

(2)用泰勒级数展开法实现正弦波信号。

(3)将数据传递给D/A,控制D/A的输出信号,该信号通过滤波放大后输出,并显示出幅频图。

2.2正弦波信号发生器

正弦波信号发生器已被广泛地应用于通信、仪器仪表和工业控制等领域的信号处理系统中。

通常有两种方法可以产生正弦波,分别为查表法和泰勒级数展开法。

查表法是通过查表的方式来实现正弦波,主要用于对精度要求不很高的场合。

泰勒级数展开法是根据泰勒展开式进行计算来实现正弦信号,它能精确地计算出一个角度的正弦和余弦值,且只需要较小的存储空间。

本次主要用泰勒级数展开法来实现正弦波信号。

产生正弦波的算法正弦函数和余弦函数可以展开成泰勒级数,其表达式:

(2-1)

(2-2)

取泰勒级数的前5项,得近似计算式:

 

(2-3)

 

(2-4)

递推公式:

sin(nx)=2cos(x)sin[(n-1)x]-sin[(n-2)x](2-5)

cos(nx)=2cos(x)sin[(n-1)x]-cos[(n-2)x](2-6)

由递推公式可以看出,在计算正弦和余弦值时,需要已知cos(x)、sin(n-1)x、sin(n-2)x和cos(n-2)x。

3硬件设计

3.1硬件设计内容

本次设计采用TI公司生产的DSP芯片TMS320F2812和D/A转换产生正弦波。

TMS320F2812系列DSP(数字信号处理器)是TI公司最新推出的数字信号处理器,该系列处理器是基于TMS320C2xx内核的定点数字信号处理器。

器件上集成了多种先进的外设,为电机及其他运动控制领域应用的实现提供了良好的平台。

同时代码和指令与F24x系列数字信号处理器完全兼容,从而保证了项目或产品设计的可延续性。

与F24x系列数字信号处理器相比,F2812系列数字信号处理器提高了运算的精度(32位)和系统的处理能力(达到150MIPS)。

该系列数字信号处理器还集成了128KB的Flash存储器,4KB的引导ROM,数字运算表以及2KB的OTPROM,从而大大改善了应用的灵活性。

128位的密码保护机制有效地保护了产品的知识产权。

两个事件管理器模块为电机及功率变换控制提供了良好的控制功能。

16通道高性能12位ADC单元提供了两个采样保持电路,可以实现双通道信号同步采样。

归纳起来,TMS320F2812系列DSP有以下特点。

TMS320F2812有3个独立的片选信号,并且读/写时序可编程,兼容不同速率的外设扩展;通过配置外部接口寄存器,TMS320F2812在访问外部设备时不必额外增加延时等待,既提高了程序的实时性又减少了代码量。

TMS320F2812是TI2000系列中功能最为强大的DSP芯片。

它是一种32位DSP,片内有128KFLASH,18KSRAM,DART.56I/0,12MAD+l6路输入,指令处理速度高达150MPIS.TMS320F2812样片于2003年推出,经过了试用期,现在己经非常成熟。

国内公司己经开始陆续使用,其开发工具完备,购买渠道畅通,价格低廉,是一款非常适合本课题需要的控制芯片。

TMS320F2812的时钟频率是150MHz,即时钟周期是6.67ns。

有众多的外设接口,GPIO,SPI,SCIA,SCIB,McBSP,eCAN,SRAM.FLASH,EVA,EVB,ADC。

这些外设模块使TMS320F2812很适用于控制领域。

该设计主要是利用了数字信号处理器以及D/A转换两个部分,其中DSP芯片TMS320F2812是系统的核心处理器(控制器),数模转换被驱动后,将系统产生的数字信号进行转化(数模转换),输出连续的模拟信号,即产生正弦波,整个系统设计简单,清晰易懂。

3.2系统设计原理

整个硬件电路设计主要由中心处理器和数模转换构成,其核心部分就是TMS320F2812数字信号处理芯片,它的作用是接受PC机传来的各种数据,然后再对接收到的数据进行加工和运算。

当DSP对数据进行计算以后,它就把得到的数据输出到D/A转换,D/A转换对接收到的离散的数字信号进行运算,把数字信号转换为连续的模拟信号,该信号通过滤波放大后输出。

这就是整个硬件方案的工作原理。

3.3系统部分模块介绍

JTAG接口设计:

DSP系统在开发调试阶段必须使用具有仿真器的标准接口,主机与DSP实验板通过JTAG接口实现。

通过JTAG接口,用户可以通过上位机下载应用程序到DSP系统上进行在线调试。

TI公司的系列DSP可以使用CCS软件实现程序下载,控制程序的运行并可以实时监视程序的运行。

电源电路:

TMS320F2812芯片工作时需要的电压有两个部分:

+3.3V的Flash电压和+1.8V的内核电压。

TMS320F2812对电源很敏感,所以在此可以用电压精度比较搞得电源芯片TPS767D301或者TPS767D319。

TPS767D301输入电压为+5V,芯片起震,正常工作之后,能够产生3.3V和1.8V两种电压工DSP使用。

图3.1为电源产生电路。

图3.1电源产生电路

D/A转换:

在本次课程设计中需要D/A转换,将数字信号转换为模拟信号才能输出。

图3.2所示的D/A转换电路可以产4路模拟信号,通过相关软件程序,可以实现正弦波的输出。

图3.2D/A转换电路图

 

4CCS简介

4.1CCS工作模式

CCS是TI公司针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。

CCS有两种工作模式,即:

(1)软件仿真器模式:

可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。

(2)硬件在线编程模式:

可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。

4.2CCS的组成

CCS的开发系统主要由以下组件构成

(1)TMS320X2812集成代码产生工具

用来对C语言、汇编语言或混合语言编程的DSP源程序进行编译汇编,并链接成为可执行的DSP程序。

主要包括汇编器、链接器、C/C++编译器和建库工具等。

(2)CCS集成开发环境

集编辑、编译、链接、软件仿真、硬件调试和实时跟踪等功能于一体。

包括编辑工具、工程管理工具和调试工具等。

(3)DSP/BIOS实时内核插件及其应用程序接口API

主要为实时信号处理应用而设计。

包括DSP/BIOS的配置工具、实时分析工具等。

(4)实时数据交换的RTDX插件和相应的程序接口API

可对目标系统数据进行实时监视,实现DSP与其他应用程序的数据交换。

(5)由TI公司以外的第三方提供的应用模块插件

4.3CCS的主要功能

CCS的功能十分强大,它集成了代码的编辑、编译、链接和调试等诸多功能,而且支持C/C++和汇编的混合编程,其主要功能如下

(1)具有集成可视化代码编辑界面,用户可通过其界面直接编写C、汇编、.cmd文

件等;

(2)含有集成代码生成工具,包括汇编器、优化C编译器、链接器等,将代码的编

辑、编译、链接和调试等诸多功能集成到一个软件环境中;

(3)高性能编辑器支持汇编文件的动态语法加亮显示,使用户很容易阅读代码,发现语法错误;

(4)工程项目管理工具可对用户程序实行项目管理。

在生成目标程序和程序库的过程中,建立不同程序的跟踪信息,通过跟踪信息对不同的程序进行分类管理;

(5)基本调试工具具有装入执行代码、查看寄存器、存储器、反汇编、变量窗口等功能,并支持C源代码级调试;

(6)断点工具,能在调试程序的过程中,完成硬件断点、软件断点和条件断点;

4.4CCS的安装及设置

在使用CCS之前,必须首先按照CCS的产品说明安装CCS软件;其次创建CCS系统配置,进行环境设置;最后,按照具体使用的仿真器,安装目标板和驱动程序。

4.5系统配置要求

机器部件

最低配置

推荐配置

内存

32MB

128MB

剩余硬盘空间

100MB

200MB

CPU

Pentium

PentiumⅢ以上

显示分辨率

SVGA800600

SVGA1024768

主板插槽

一条空余EISA插槽

一条空余EISA插槽

5软件设计

5.1流程图

本系统软件可以按照模块化设计思想来编写,包括主程序、常数计算程序、占空比计算程序和相应的一些功能子程序,主程序用于调用各功能子程序、初始化变量、查询键盘、判断显示数据是否需要刷新、同时判断一个脉冲是否完成发送等工作,具体方案见图5.1所示的流程图。

图5.1程序流程图

在程序中,应在第N-1个脉冲周期里计算占空比,并在第N个脉冲周期里输出波形,这就要求在设计时要在一个脉冲周期内完成计算,如果选用20MHz的晶振,那么,在一倍频下,执行一条执行只需50ns,若输出400Hz的正弦波,即每一个周期(即2.5ms)要输出200个脉冲,也就是说,一个脉冲需要12.5μs(相当于12500/50=250条指令)。

而执行一个占空比的计算程序只需要几十条指令,这种算法从软件开销上考虑是可以实现的。

5.2正弦信号发生器源程序清单

#include"DSP281x_Device.h"//DSP281xHeaderfileIncludeFile

#include"DSP281x_Examples.h"//DSP281xExamplesIncludeFile

#defineN128

#definepi3.1415926

/*************************************************************/

/********************全局变量定义与初始化*********************/

inti;

unsignedintdata;

unsignedinty1[N+1];

unsignedinty2[N+1];

doublex0,x1,x2,x3;

doublex,r,xx,y[N+1];

/*************************************************************/

/*******************函数、子程序声明与定义********************/

voidspi_init()

{

SpiaRegs.SPICCR.bit.SPISWRESET=0;//ResetSCI

SpiaRegs.SPICCR.all=0x000F;//Reseton,risingedge,16-bitcharbits

SpiaRegs.SPICTL.all=0x000E;//Enablemastermode,normalphase,

SpiaRegs.SPISTS.all=0x0080;//enabletalk,andSPIintdisabled.

SpiaRegs.SPIBRR=0x0000;//Baudrate;

SpiaRegs.SPIPRI.bit.FREE=1;//Setsobreakpointsdon'tdisturbxmission

SpiaRegs.SPICCR.bit.SPISWRESET=1;//EnableSPI

}

 

voiddelay()//延时子程序

{

unsignedintk;

.for(k=0;k<50;k++);

}

/*************************************************************/

/**************************主程序*****************************/

voidmain()

{

//InitializeSystemControl:

//PLL,WatchDog,enablePeripheralClocks

InitSysCtrl();

EALLOW;

GpioMuxRegs.GPFMUX.all=0x000F;//SelectGPIOstobeSPIpins

//PortFMUX-x000000000001111

EDIS;

//DisableCPUinterrupts

DINT;

//InitializethePIEcontrolregisterstotheirdefaultstate.

InitPieCtrl();

//DisableCPUinterruptsandclearallCPUinterruptflags:

IER=0x0000;

IFR=0x0000;

//InitializethePIEvectortablewithpointerstotheshellInterrupt

//ServiceRoutines(ISR).

InitPieVectTable();

spi_init();

r=2*pi/N;

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

{

x=i*r-pi;

xx=x*x;

x0=1-xx/(8*9);

x1=1-x0*xx/(6*7);

x2=1-x1*xx/(4*5);

x3=1-x2*xx/(2*3);

y[i]=x*x3;

data=127.5*(1+y[i]);

/*将数据打包*/

y1[i]=data&0x00ff|0x0100;

/*将数据打包,且用数据寄存器同时更新A和B两个DA的值*/

y2[i]=data&0x00ff|0x2500;

}

for(;;)

{

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

{

SpiaRegs.SPITXBUF=y1[i];

delay();

SpiaRegs.SPITXBUF=y2[i];

delay();

}

}

}

/***************************结束******************************/

6总结

在本次课程设计过程中我遇到一些课堂中从未有过的问题,通过网络查找和请教指导老师,大大促进了实训进程。

并在过程中进一步提高自身的创作、创新水平。

课程设计过程中经常遇到问题,通过自己在网上查找资料和在老师的帮助下,一步一步地解决了问题,最终得到了结果,使我独立解决问题的能力得到了很大的提高。

并且此次课程设计,基于课程理论知识和网上资料,使我对数字信号处理课程有了更深一步的了解和掌握,对利用CCS软件编程的数字信号处理方法有了进一步的了解。

在理论课的基础上进行实验实习,是对本门课程的深入学习和掌握,在以后的工作和学习中,数字信号的处理都是采用计算机仿真。

虽然《DSP原理及应用》这门课程的课时很短,但是通过本次课程设计我对这门课程有了更深的了解,明白了TMS320X2812DSP芯片的一些简单的编程和应用。

“纸上得来终觉浅,绝知此事要躬行”,理论和实践是有差距的,只有动手实践,才能更好的理解所学知识,理论只有实践才能得到升华,这次课程设计确实让我学到了很多东西,同时增强了团队意识。

参考文献

[1]顾卫钢.手把手教你学DSP-基于TMS320x281x北京航空航天大学出版社,2011.

[2]苏奎峰等.TMS320X281xDSP原理及C程序开发.北京航空航天大学出版社,2008.

[3]苏奎峰等.TMS320F2812原理与开发.电子工业出版社,2005.

[4]万山明.TMS320F2812/2810原理及应用实例.北京航空航天大学出版社,2007.

[5]TI公司著,胡广书等编译.TMS320C28X系列DSP的CPU与外设.清华大学出版社,2005.

[6]TI公司著,胡广书等编译.TMS320C28X系列DSP指令和编程指南.清华大学出版社,2005.

 

附录A正弦波幅频图

 

附录B正弦波示波器显示图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1