dsp报告Word下载.docx
《dsp报告Word下载.docx》由会员分享,可在线阅读,更多相关《dsp报告Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
数字信号处理系统简化框图
数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。
例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。
近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。
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转换电路图
4.CCS简介
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插槽
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
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(;
;
)
SpiaRegs.SPITXBUF=y1[i];
delay();
SpiaRegs.SPITXBUF=y2[i];
}
}
/***************************结束******************************/
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.