DSP最终标准格式除程序报告 动态音乐喷泉.docx
《DSP最终标准格式除程序报告 动态音乐喷泉.docx》由会员分享,可在线阅读,更多相关《DSP最终标准格式除程序报告 动态音乐喷泉.docx(77页珍藏版)》请在冰豆网上搜索。
DSP最终标准格式除程序报告动态音乐喷泉
电气信息工程学院
DSP技术与综合训练
大作业
班级09通信1W
姓名陈学虎
学号09313112
指导老师倪福银刘舒祺
2012年9月
第一章DSP理论技术概述
1.1简介
数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
现代社会对数据通信需求正向多样化、个人化方向发展。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。
无线数据通信作为向社会公众迅速、准确、安全、灵活、高效地提供数据交流的有力手段,其市场需求也日益迫切。
正是在这种情况下,3G、4G通信才会不断地被推出,但是无论是3G还是4G,未来通信都将离不开DSP技术(数字信号处理器),DSP作为一种功能强大的特种微处理器,主要应用在数据、语音、视像信号的高速数学运算和实时处理方面,可以说DSP将在未来通信领域中起着举足轻重的作用。
1.2DSP的特点
DSP(digitalsignalprocessor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
DSP微处理器(芯片)一般具有如下主要特点:
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,DSP微处理器(芯片)的其他通用功能相对较弱些。
主要有以下六个优点:
(1)对元件值的容限不敏感,受温度、环境等外部参与影响小;
(2)容易实现集成;
(3)可以分时复用,共享处理器;
(4)方便调整处理器的系数实现自适应滤波;
(5)可实现模拟处理不能实现的功能:
线性相位、多抽样率处理、级联、易于存储等;
(6)可用于频率非常低的信号。
但是也存在一些缺点:
(1)需要模数转换;
(2)受采样频率的限制,处理频率范围有限;
(3)数字系统由耗电的有源器件构成,没有无源设备可靠。
总的来说,DSP的优点远远超过缺点,在实际应用中应根据产品设计要求,从成本、效率和可靠性等方面对使用何种器件进行综合考虑。
1.3DSP优点
(1)对元件值的容限不敏感,受温度、环境等外部因素影响小;
(2)容易实现集成;
(3)可以分时复用,共享处理器;
(4)方便调整处理器的系数实现自适应滤波;
(5)可实现模拟处理不能实现的功能:
线性相位、多抽样率处理、级联、易于存储等;
(6)可用于频率非常低的信号。
1.4DSP缺点
(1)需要模数转换;
(2)受采样频率的限制,处理频率范围有限;
(3)数字系统由耗电的有源器件构成,没有无源设备可靠。
1.5DSP典型应用框图
如图所示
图1-1DSP典型图
1.6DSP的开发工具
数字信号处理器(DSP)作为一种可编程专用芯片,是数字信号处理理论实用化过程的重要技术工具,在语音处理、图像处理等技术领域得到了广泛的应用。
但对于算法设计人员来讲,利用汇编语言或C语言进行DSP功能开发,具有周期长、效率低的缺点,不利于算法验证和产品的快速开发。
由Ti公司提供专业的开发工具CCS,自带DSP/BIOS操作系统,能够直接编写适合DSP开发工程及文件,满足DSP程序设计要求。
由MathWorks公司和TI公司联合开发的DSPMATLABLinkforCCSDevelopmentTools(简称CCSLink)是MATLAB6.5版本(Release13)中增加的一个全新的工具箱,它提供了MATLAB、CCS和DSP目标板的接口,利用此工具可以像操作MATLAB变量一样来操作DSP器件的存储器和寄存器,使开发人员在MATLAB环境下完成对DSP的操作,从而极大地提高DSP应用系统的开发进程。
MATLAB具有强大的分析、计算和可视化功能,利用MATLAB提供的数十个专业工具箱,可以方便、灵活地实现对自动控制、信号处理、通信系统等的算法分析和仿真,是算法设计人员和工程技术人员必不可少的软件工具。
1.7DSP技术未来发展趋势
通过对DSP技术的不断发展和改进,数字信号处理器的内核结构进一步改善,多通道结构和单指令多重数据(SIMD)、特大指令字组(VLIM)逐渐在新的高性能处理器中将占主导地位,如AnalogDevices的ADSP-2116x。
未来DSP技术发展趋势主要体现在一下几个方面:
1.DSP和微处理器的融合
2.DSP和高档CPU的融合
3.DSP和SOC的融合
4.DSP和FPGA的融合
1.8DSP系统设计的方法和步骤
下图为一个典型DSP系统
图1-2DSP系统流程图
先将输入的模拟信号进行带限滤波和抽样,在进行A/D变换,将信号变换成数字比特流,经DSP芯片处理后的数值样值,再经D/A变换成模拟样值之后再进行内插和平滑滤波即可得到连续的模拟信号输出。
根据奈奎斯特抽样定理,为保证信息不丢失,抽样频率至少是输入带限信号最高频率的两倍,其中抗混叠滤波的作用,就是将输入的模拟信号中高于折叠频率的分量滤除,以防止信号频谱出现混叠/DSP芯片是系统的关键。
1.8.1总体方案设计
在进行DSP系统设计之前首先应给出明确的设计任务,给出设计任务书。
在设计任务书中应将系统要达到的功能描述准确、清楚;描述的方式可以是人工语言,也可以是流程图或算法描述。
之后将设计任务书转化为量化的技术指标。
下图为DSP应用系统设计的一般步骤:
图1-3DSP应用系统设计
(1)软件设计阶段
软件变成步骤如下:
1)用C语言、汇编语言或者两种变成语言混合编写程序,再把它们分别转换成DSP的汇编语言并送到汇编语言汇编器进行汇编,生成目标文件.
2)将目标文件送入连接器进行连接,得到可执行文件.
3)将克制性文件掉如到调试器进行调试,检查运行结果是否正确.如果着呢宫阙进入下一步;如果不正确则返回第一步.
4)进行代码转换将代码写入EEPROM,并脱离仿真器进行程序,检查结果是否正确。
如果不正确,返回上一步;如果正确,进入下一步。
5)软件调试,软件调试借助DSP开发工具,如软件模拟器、DSP开发系统或仿真器等。
(2)硬件设计阶段
硬件件变成步骤如下:
1)设计硬件实现方案硬件实现方案是指根据性能指标、工期、成本等,确定最优硬件实现方案,并画出硬件系统框图。
2)器件的选型除选择DSP芯片外,一般还要考虑选择A/D、D/A、内存、电源、逻辑控制、通信、人机接口、总线等基本部件。
3)原理图设计硬件设计阶段原理图设计是关键。
在原理图设计时必须清楚了解器件的使用和系统的开发,对于关键环节要做仿真。
4)PCB板设计PCB设计要求DSP系统设计人员既要熟悉系统工作原理,又要清楚布线工艺和系统结构设计。
5)软、硬件调试在采用硬件仿真器进行调试时,如果没有仿真器、且系统不复杂,则可借助一般的工具进行调试。
(3)系统集成
系统的软、硬件设计分别调试完成之后,进行系统集成。
系统集成是将软、硬件结合起来,并组合成样机,在实际系统中运行,进行系统测试。
第2章DSP硬件部分设计
2.1硬件设计任务概述
DSP最小系统是由满足DSP运行的最小硬件组成,包括电源电路,复位电路,时钟电路,JTAG接口电路,电平转换电路等。
请选一55系列DSP芯片设计最小系统。
要求:
1.DSP芯片选择TMS320VC5509,VC5507,VC5502中的一种。
(根据学号的1,2,3,4,5,6分组)
外设扩展部分:
(1)液晶LCD1602(TMS320VC5509)
(2)一片4位数码管(TMS320VC5509)
(3)D/A:
TLV5639(TMS320VC5507)
(4)键盘和LED,设计一2X4键盘控制8个LED灯(TMS320VC5507)
(5)SRAM:
IS61LV6416(TMS320VC5502)
(6)FLASH:
AM29LV400B(TMS320VC5502)(我所选择的题目)
2.提高部分:
在必选题的基础上,可多加其它选题的外设功能。
3.请运用Protel完成最小系统的schematic原理图。
2.2基于protel的原理图设计
主芯片为TMS320C5502,引脚图如下:
图2-1TMS320C5502芯片图
如下所示为芯片的管脚标号:
引脚号引脚名引脚号引脚名引脚号引脚名引脚号引脚名
1GPIO645HCNTL189A19133D16
2GPIO446HCNTL090A18134D15
3GPIO247VSS91VSS135D14
4GPIO148HR/W92A17136D13
5GPIO049HDS293A16137D12
6TIM150CVDD94DVDD138D11
7TIM051HDS195A15139D10
引脚号引脚名引脚号引脚名引脚号引脚名引脚号引脚名
8INT052HRDY96A14140D9
9CVDD53DVDD97VSS141DVDD
10INT154CLKOUT98A13142D8
11INT255XF99A12143D7
12DVDD56VSS100CVDD144VSS
13INT357C15101A11145D6
14NMI/WDTOUT58C14102A10146D5
15IACK59HINT103A9147D4
16VSS60PVDD104A8148CVDD
17CLKR061NC105DVDD149D3
18DR062X1106A7150D2
19FSR063X2/CLKIN107A6151D1
20CLKX064EMIFCLKS108A5152D0
21CVDD65VSS109VSS153VSS
22DX066C13110A4154EMU1/OFF
23FSX067C12111A3155EMU0
24CLKR168C11112A2156TDO
25DR169C10113CVDD157VSS
26FSR170C9114D31158TDI
27DX171C8115D30159TRST
28CLKX172C7116D29160TCK
29VSS73VSS117VSS161TMS
引脚号引脚名引脚号引脚名引脚号引脚名引脚号引脚名
30FSX174ECLKIN118D28162RESET
31DR275ECLKOUT2119D27163HPIENA
32DX276ECLKOUT1120D26164HD7
33CVDD77CVDD121CVDD165CVDD
34SP378C6122D25166HD6
35SP279C5123D24167HD5
36DVDD80DVDD124DVDD168DVDD
37SP181C4125D23169HD4
38SP082C3126D22170HD3
39VSS83VSS127D21171CVDD
40SCL84C2128D20172HD2
41SDA85C1129D19173HD1
42HC186C0130VSS174VSS
43HC087A21131D18175HD0
44HCS88A20132D17176GPIO7
2.3外设电路原理图设计
2.3.1电源模块
C55x数字信号处理器电源包括内核电源和外部接口电源,其外部接口电源为3.3V,内核则根据型号不同而采用了不同电压。
由于C55x处理器大多应用于低功耗场合,因此电源电路的设计应注意电源的转换效率和电路的复杂程度,而高效率的DC-DC转换电路则十分适合这种应用。
TPS54110能够提供1.5A的连续电流输出,其输出电压可调,电压输出范围覆盖0.9~3.3V,能够较好的满足C55x处理器的供电要求,图5给出采用TPS54110实现DC-DC转换的电路原理图。
图2-2TPS54110实现DC-DC转换的电路原理图
2.3.2时钟电路模块
任何工作都按时间顺序。
用于产生这个时间的电路就是时钟电路。
现在流行的串行时钟电路很多,如DS1302、DS1307、PCF8485等。
这些电路的接口简单、价格低廉、使用方便,被广泛地采用。
实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
图2-3时钟电路
2.3.3JTAG仿真模块
JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。
JTAG仿真器比较便宜,连接比较方便,通过现有的JTAG边界扫描口与ARMCPU核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。
另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。
使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。
图2-4JTAG接口电路的连接图
2.3.4FLASH模块:
硬盘就是采用磁性物质记录信息的,磁盘上的磁性物质被磁化了就表示1,未被磁化就表示0,因为磁性在断电后不会丧失,所以磁盘断电后依然能保存数据。
而内存的储存形式则不同,内存不是用磁性物质,而是用RAM芯片。
图3-7给出了FLASH模块的连接
图2-5FLASH模块的连接图
2.3.5复位电路模块
在系统上电过程中,如果电源电压还没有稳定,这是DSP进入工作状态可能造成不可预知的后果,甚至引起硬件损坏,解决这个问题的方法是DSP在上电过程中保持复位状态,因此有必要在系统中加入上电复位电路。
上电复位电路的作用是保证上电可靠,并在用户需要时实现可靠复位。
本次设计采用MAX708S构建的DSP复位电路,该复位电路可以提供低输入电压保护、复位时间延迟和手工复位等功能。
图3-3中RESEST为DSP复位信号。
图2-6DSP复位信号产生电路图
2.4硬件设计小结
在硬件的设计中,因为我的课题用的芯片是5502,而这种芯片很难找到引脚图,查了很多资料最后好不容易才找到,按照课本上的要求将电平转换电路,JTAG接口电路,复位电路,时钟电路,功能芯片FLASH电路,总芯片图。
学着使用Protell,虽然做的比较慢,但是我却感觉到我学到了很多东西,有些东西不去慢慢琢磨是不会那么容易出来的。
第三章DSP软件部分设计
3.1软件设计任务概述
3.1.1功能要求:
选择一首音乐,利用蜂鸣器,进行播放,同时利用液晶设计喷泉,显示音乐的频率变化。
通过按键1,作为开始/停止键,另外七个键,作为七个音调(选用C调)。
提供部分:
1.能运用LED灯,根据音乐的演奏显示LED的变化。
2.根据相关内容自由发挥设计。
3.2程序设计思路与算法原理
设计思路:
第一:
要用按键来控制,就需要引入Switch语句来实现每个按键的功能。
引入相关的按键寄存器MCTRKEY,CTRCLKEY
第二:
要用显示频,引入相关的头文件和库文件.lib
第三:
要在按键按下时有LCD画面同时还要蜂鸣器响起,这样的话就需要在同一个Switch情况下有LCD画面显示和蜂鸣器以不同的频率响起
第四:
第八个按键控制暂停和开始,这就需要有一个中断来实现。
3.3软件程序分析:
#include"myapp.h"
#include"ICETEK-VC5509-EDU.h"
#include"scancode.h"
#include"LCD.h"
#include
#include
//#include
//#include
//:
--DefineTimer0'sRegisters---//
ioportunsignedint*tim0;
ioportunsignedint*prd0;
ioportunsignedint*tcr0;
ioportunsignedint*prsc0;
//:
--EndofDefine-----------------//
unsignedintstr1[16]=
{//教ì学§实害?
验é箱?
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff
};
unsignedintstr2[32]=
{//倪?
shang
0x0000,0x0000,0x8000,0x4000,0x3000,0x1c00,0xff00,0xfde0,
0x007c,0x0018,0x0008,0x0000,0xffe0,0xffe0,0x0820,0x0810,
0x0808,0x080c,0x000c,0x0008,0x0020,0x0020,0x0820,0x0820,
0x0820,0x0820,0xffe0,0xfff0,0x0020,0x0000,0x0000,0x0000
};
unsignedintstr3[32]=
{//倪?
下?
0x0000,0x0002,0x0001,0x0000,0x0000,0x0000,0x7fff,0x3fff,
0x0000,0x0000,0x4000,0x2000,0x3007,0x1007,0x0801,0x0601,
0x03e1,0x00ff,0x0007,0x0001,0x0001,0x0fff,0x3fff,0x3001,
0x3001,0x3001,0x3007,0x3003,0x3800,0x1c00,0x1000,0x0000
};
unsignedintstr4[32]=
{//laoup
0x0000,0x0000,0x2000,0x2000,0x2000,0x2000,0x2100,0x2100,
0x2100,0x2100,0x2100,0x2100,0x2100,0x2100,0x3ffc,0x3ffc,
0x2108,0xa100,0xe100,0x6100,0x3080,0x3cc0,0x2e80,0x2780,
0x21e0,0x20f0,0x2060,0x2000,0x3000,0x2000,0x0000,0x0000
};
unsignedintstr5[32]=
{//laodown
0x0000,0x0400,0x0400,0x0200,0x0200,0x0100,0x0100,0x0080,
0x00c0,0x0040,0x0060,0x1ffc,0x3ff8,0x3098,0x308c,0x30c6,
0x3043,0x3041,0x3020,0x3030,0x3030,0x3018,0x301c,0x300c,
0x3000,0x3000,0x3fc0,0x1800,0x0000,0x0000,0x0000,0x0000
};
unsignedintstr6[32]=
{//shiup
0x0000,0x0000,0x0000,0x0040,0xffc0,0x0080,0x0000,0x0000,
0x8004,0xfff8,0x0008,0x0000,0x0000,0xfc20,0xfc20,0x0820,
0x0820,0x0820,0x0820,0x0820,0xffe0,0x0820,0x0820,0x0820,
0x0820,0x0820,0x0810,0xfc18,0x0c18,0x0010,0x0000,0x0000
};
unsignedintstr7[32]=
{//shidown
0x0000,0x0000,0x4000,0x2080,0x107f,0x0800,0x0600,0x03c0,
0x00ff,0x000f,0x0000,0x0000,0x0000,0x03ff,0x03ff,0x0000,
0x0000,0x0000,0x0000,0x0000,0x7fff,0x7800,0x0000,0x0080,
0x0080,0x0180,0x0380,0x01ff,0x0000,0x0000,0x0000,0x0000
};
unsignedintstr8[16]=
{//huan
0x2014,0x1024,0x4c44,0x4384,0x4363,0x2c1c,0x2020,0x1018,
0x0c0f,0x03e8,0x0608,0x1808,0x3028,0x6018,0x2008,0x0000
};
unsignedintstr9[16]=
{//yingup
0x4040,0x2041,0x1fce,0x2004,0x4000,0x47fc,0x4204,0x4102,
0x4002,0x5ffc,0x4004,0x4204,0x4404,0x43fc,0x4000,0x0000
};
unsignedintstr10[16]=
{//ninup
0x8000,0x2004,0x3830,0x03fc,0x3803,0x