TMS320VC5502最小系统版.docx
《TMS320VC5502最小系统版.docx》由会员分享,可在线阅读,更多相关《TMS320VC5502最小系统版.docx(83页珍藏版)》请在冰豆网上搜索。

TMS320VC5502最小系统版
电气信息工程学院
DSP技术及应用综合训练
大作业
班级11电子1
姓名xxx
学号1131xxxx
指导老师吴全玉潘玲佼
得分
2014年11月
序言
DSP数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
自1965年由Cooley和Tukey提出DFT(离散傅里叶变换)的高效快速算法(FourierTransform,简称FFT)以来,DSP已有近50年的历史。
随着计算机和信息技术的发展,数字信号处理技术已形成一门独立的学科系统。
最初的DSP器件只是被设计成用以完成复杂数字信号处理的算法。
DSP器件紧随着数字信号理论的发展而不断发展。
在20世纪60年代,数字信号处理技术才刚刚起步。
60年代中期以后,快速傅里叶算法的出现及大规模集成电路的发展大大促进了DSP技术与器件的飞速发展。
DSP器件的发展大致可分为三个阶段:
(1)1980年前后的雏形阶段。
(2)1990年前后的成熟阶段。
(3)2000年之后的完善阶段
数字信号处理利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,得到符合人们所需要的信号形式。
数字信号处理与模拟信号处理是信号处理的子集,数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。
数字信号处理是以众多的学科为理论基础的,它所涉及的范围及其广泛。
例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。
一些新兴的学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。
可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。
DSP芯片,是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。
根据数字信号处理的要求,设计DSP应用系统,选择DSP芯片是非常重要的一个环节。
只有选定了DSP芯片,才能进一步设计其外围电路及系统的其他电路。
总的来说,DSP芯片的选择应根据实际的应用系统需要而确定。
不同的DSP应用系统由于应用场合、应用目的等不尽相同,对DSP芯片的选择也是不同的。
DSP处理器的着眼点是要求速度快、处理的数据量大、效率高。
但是单纯提高时钟速度受到工艺等各种因素的限制,一般是缓慢的,所以必须从结构上着手。
某些概念其实在二十世纪40年代已经出现:
其一是改造处理器的处理方法,用多总线、多存储器体系结构;其二是提高程序和数据流的速度,采用流水线,并行处理等方法。
尽管不同厂商采用不同的技术和措施,但在这些方面都有共同点。
数字化技术有今天的飞速发展,是依仗于强大的软、硬件环境支撑。
作为数字信号处理的一个实际任务就是要求能够快速、高效、实时完成处理任务,这就要通过通用或专用的数字信号处理器来完成。
因此,数字信号处理器是用来完成数字信号处理任务的一个软、硬件环境和硬件平台。
在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
德州仪器、Freescale等半导体厂商在DSP处理器的开发上拥有很强的实力。
第一章DSP理论技术概述
1.1课程设计目的与意义
本课程是一门以实践为主的技术类专业选修课,课程的教学目的是使学生了解DSP及DSP控制器的发展过程及其特点,使学生较熟练地在硬件上掌握DSP及DSP硬件器的结构、各部件基本工作原理,在软件上掌握DSP的指令系统、程序设计方法,学会TMS320系列中1至2种DSP芯片的基本使用方法,并能重点利用DSP及DSP控制器设计典型的应用系统,为今后从事相关设计与研究打下基础。
1.2DSP芯片的选择与封装
1)芯片的选择原则:
根据实际应用系统需要、应用场合、目的,选择满足所需功能、成本低、耗电小、使用方便、有技术支持、升级方便的芯片。
DSP芯片的选择是有技术指标决定的,例如:
由信号的频率决定系统的采样频率;有采样频率句顶完成任务书中最复杂的算法所需的最大时间以及系统对实时程序的要求,判断系统能否完成工作;有数量及程序的长短决定RAM的容量,是否需要扩展RAM及RAM的容量;等等。
在确定DSP芯片型号之后,应当先进行系统的总体的设计。
首先采用高级语言matlab等对算法进行仿真,确定最佳算法并初步确定参数,对系统的软硬件进行初步分工。
2)芯片的封装:
1)DIP双列直插式封装,插装型封装之一,引脚从封装两侧引出,封装材料有塑料和陶瓷两种。
2)SIP单列直插式封装引脚从封装的一个侧点引出,排列成一条直线。
当装配到印刷基板上的封装成侧立状。
3)SOJJ型引脚小外型封装表面贴装型封装之一,引脚从封装两侧引出象下呈J字型。
4)SDP也叫SOIC小外型封装,表面贴装型封装之一,引脚从封装两侧引出呈海鸥翼型。
5)PLCC带引线的塑料芯片载体,表面贴装型封装之一,引脚从封装的四个侧面引出,呈J字型,是塑料制品。
6)QFP四侧引脚扁平封装,引脚从四个侧面引出呈海鸥翼型,基材有陶瓷、金属和塑料三种。
7)BGA球型触点阵列表面封装之一,在印刷基板的背面按阵列方式制作出球型凸点,以代替引脚。
1.3DSP系统设计的方法和步骤
下图为一个典型DSP系统
输出
图1-1DSP典型系统框图
先将输入的模拟信号进行带限滤波和抽样,在进行A/D变换,将信号变换成数字比特流,经DSP芯片处理后的数值样值,再经D/A变换成模拟样值之后再进行内插和平滑滤波即可得到连续的模拟信号输出。
根据奈奎斯特抽样定理,为保证信息不丢失,抽样频率至少是输入带限信号最高频率的两倍,其中抗混叠滤波的作用,就是将输入的模拟信号中高于折叠频率的分量滤除,以防止信号频谱出现混叠/DSP芯片是系统的关键。
(1)总体方案设计
在进行DSP系统设计之前首先应给出明确的设计任务,给出设计任务书。
在设计任务书中应将系统要达到的功能描述准确、清楚;描述的方式可以是人工语言,也可以是流程图或算法描述。
之后将设计任务书转化为量化的技术指标。
下图为DSP应用系统设计的一般步骤:
图1-2总体设计方案流程图
(2)软件设计阶段
软件变成步骤如下:
1)用C语言、汇编语言或者两种变成语言混合编写程序,再把它们分别转换成DSP的汇编语言并送到汇编语言汇编器进行汇编,生成目标文件.
2)将目标文件送入连接器进行连接,得到可执行文件.
3)将克制性文件掉如到调试器进行调试,检查运行结果是否正确.如果着呢宫阙进入下一步;如果不正确则返回第一步.
4)进行代码转换将代码写入EEPROM,并脱离仿真器进行程序,检查结果是否正确。
如果不正确,返回上一步;如果正确,进入下一步。
5)软件调试,软件调试借助DSP开发工具,如软件模拟器、DSP开发系统或仿真器等。
(3)硬件设计阶段
1)设计硬件实现方案硬件实现方案是指根据性能指标、工期、成本等,确定最优硬件实现方案,并画出硬件系统框图。
2)器件的选型除选择DSP芯片外,一般还要考虑选择A/D、D/A、内存、电源、逻辑控制、通信、人机接口、总线等基本部件。
3)原理图设计硬件设计阶段原理图设计是关键。
在原理图设计时必须清楚了解器件的使用和系统的开发,对于关键环节要做仿真。
4)PCB板设计PCB设计要求DSP系统设计人员既要熟悉系统工作原理,又要清楚布线工艺和系统结构设计。
5)软、硬件调试在采用硬件仿真器进行调试时,如果没有仿真器、且系统不复杂,则可借助一般的工具进行调试。
(4)系统集成
系统的软、硬件设计分别调试完成之后,进行系统集成。
系统集成是将软、硬件结合起来,并组合成样机,在实际系统中运行,进行系统测试。
1.4DSP前沿技术与应用
语音处理:
语音编码、语音合成、语音识别、语音增强、语音邮件、语音储存等。
图像/图形:
二维和三维图形处理、图像压缩与传输、图像识别、动画、机器人视觉、多媒体、电子地图、图像增强等。
军事:
保密通信、雷达处理、声呐处理、导航、全球定位、跳频电台、搜索和反搜索等。
仪器仪表:
频谱分析、函数发生、数据采集、地震处理等。
自动控制:
控制、深空作业、自动驾驶、机器人控制、磁盘控制等。
医疗:
助听、超声设备、诊断工具、病人监护、心电图等。
家用电器:
数字音响、数字电视、可视电话、音乐合成、音调控制、玩具与游戏等。
生物医学信号处理举例:
CT:
计算机X射线断层摄影装置。
(其中发明头颅CT英国EMI公司的豪斯菲尔德获诺贝尔奖。
)
CAT:
计算机X射线空间重建装置。
出现全身扫描,心脏活动立体图形,脑肿瘤异物,人体躯干图像重建。
第二章DSP硬件部分设计
2.1硬件设计任务概述
DSP最小系统是由满足DSP运行的最小硬件组成,包括电源电路,复位电路,时钟电路,JTAG接口电路,电平转换电路等。
请选一55系列DSP芯片设计最小系统。
要求:
1.DSP芯片选择TMS320VC5502
外设扩展部分:
(1)液晶LCD12864;
(2)2片4位数码管(3)键盘和LED,设计设计一2X4键盘控制8个LED(4)SRAM:
IS61LV6416(5)FLASH:
AM29LV400B。
在必选题的基础上,可多加其它选题的外设功能。
3.请运用Protel或者AltiumDesigner等完成最小系统的schematic原理图及PCB布线图。
4.设计完成,根据规范格式撰写设计报告,并附上布线3D效果截图,器件物料表BOM等。
2.2总体方案设计
本次硬件电路设计大体方案设计如下:
最小系统框图如下:
图2-1DSP最小系统框图
2.3.1主芯片为TMS320C5502
引脚图如下:
图2-2TMS320VC5502引脚图
2.3.2外设电路原理图设计
2.3.3电源模块
C55x数字信号处理器电源包括内核电源和外部接口电源,其外部接口电源为3.3V,内核则根据型号不同而采用了不同电压。
由于C55x处理器大多应用于低功耗场合,因此电源电路的设计应注意电源的转换效率和电路的复杂程度,而高效率的DC-DC转换电路则十分适合这种应用。
TPS54110能够提供1.5A的连续电流输出,其输出电压可调,电压输出范围覆盖0.9~3.3V,能够较好的满足C55x处理器的供电要求,图3-1给出采用TPS76HD301实现DC-DC转换的电路原理图。
图2-3电源模块图
2.3.4时钟电路模块
任何工作都按时间顺序。
用于产生这个时间的电路就是时钟电路。
现在流行的串行时钟电路很多,如DS1302、DS1307、PCF8485等。
这些电路的接口简单、价格低廉、使用方便,被广泛地采用。
实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
采用普通20MHz晶振。
图2-4时钟电路模块图
2.3.5JTAG仿真模块
JTAG仿真器也称为JTAG调试器,是通过ARM芯片的JTAG边界扫描口进行调试的设备。
JTAG仿真器比较便宜,连接比较方便,通过现有的JTAG边界扫描口与ARMCPU核通信,属于完全非插入式(即不使用片上资源)调试,它无需目标存储器,不占用目标系统的任何端口,而这些是驻留监控软件所必需的。
另外,由于JTAG调试的目标程序是在目标板上执行,仿真更接近于目标硬件,因此,许多接口问题,如高频操作限制、AC和DC参数不匹配,电线长度的限制等被最小化了。
使用集成开发环境配合JTAG仿真器进行开发是目前采用最多的一种调试方式。
图2-5JTAG仿真模块
2.3.6复位电路模块
在系统上电过程中,如果电源电压还没有不稳定,这时DSP进入工作状态可能造成不可预知的后果,甚至造成硬件的损坏,解决这个问题的方法就是DSP在上电过程中保持复位状态,因此有必要在系统中加入上电复位电路,上电复位电路的作用可以保证上电可靠,并在用户需要时实现手工复位。
2.3.7数码管电路模块
一共12个引脚,4个位选,8个段选。
从上面一排左边第一引脚开始,按顺时针顺序依次往下遍历所有引脚。
由于DSP芯片属于信号处理类,故带载能力较差,由于需要驱动8个数码管所以需要加上其他的辅助电路,这里我选择了74HC573锁存器,使用这个芯片有两个原因:
其一是它能使DSP芯片带动8个数码管,其二它有片选信号引脚,可以提高I/O口利用率
图2-74位数码管电路模块
2.3.8FLASH:
AM29LV400B模块
如图2-8所示,电路FLASH中的接口与DSP芯片VC5502的接口相连接构成电路系统。
图2-8FLASH:
AM29LV400B
2.4硬件电路PCB设计
利用Protel分别完成了电源电路、时钟电路、复位电路等外设电路的绘制,完成了最小系统的原理图,绘制过程结束后进行ERC检测,确保绘制无错,并生成了PCB图、PCB板及3D效果图。
硬件设计成果如图2-9、图2-10、图2-11所示
图2-9电路原理图
图2-10电路PCB图
图2-11PCB3D效果图
在一周的硬件设计中,最为麻烦的就是对于芯片资料的获取。
因为在整个设计的过程中,对于所使用的软件—Protel,因此使用起来没有任何的难度。
所以硬件设计的关键就是要查找所使用的芯片的资料,包括芯片的功能、管脚及其定义、封装等等。
因为我们所查找到的芯片资料几乎都是英文资料,而且涉及的专业词语较多,翻译比较困难。
第三章DSP软件部分设计
3.1.1、软件设计任务概述
结合按键设计小游戏贪吃蛇。
(1)控制游戏:
按方向键"W","S","A","D"能控制蛇的移动;
(2)蛇在固定的范围内移动,不能撞到自身,否则,游戏结束。
(3)固定范围内随机出现食物,蛇每吃一个白子长长一格,长度增加。
3.1.2.程序设计思路与算法原理
(1) 接受玩家按下的方向键消息,并保存到方向向量中。
(2) 定义一个时间定时器。
(3) 当每次时间间隔到达时,则根据方向变量来更新贪吃蛇BODY向量。
(4) 判断BODY向量的第一个元素的坐标数是否碰到边界或者蛇身,如果有,转到第(7)步。
(5) 判断BODY向量的第一个元素中的坐标数据是否与当前果实坐标重合,如果有,表示贪吃蛇已经吃到果实。
这时就像贪吃蛇游戏结束,显示游戏时间和得分。
BODY向量添加一个元素,并重新生成一个果实。
(6) 重绘整个贪吃蛇界面及果实。
重复前面步骤
(1)~(6)。
(7) 游戏结束时,计算当前游戏得分,并显示游戏所用时间。
3.1.4设计程序编写
#include"LCD.h"
#defineMCTRKEY(*(unsignedint*)0x602802)//port8005
#defineCTRCLKEY(*(unsignedint*)0x600803)//port8006
#defineCTRLED(*(unsignedint*)0x600802)//port8004
intx,y,x1,y1,x2,x3,x4,y2,y3,y4,x5,y5,xx,yy,xx1=40,yy1=40,a,b,color,i,j=0,k=0,k1=0,k2=0,flag=0,c=8,d=8,xx2=160,yy2=60,tt=0;
voidkeyscan();
voidfangshi1();
voidfangshi2();
voidfangshi3();
voidfangshi4();
voidfangshi5();
voiddraw();
voiddraw1(intxx,intyy);
voidchi1();
voidchi2();
voidchi3();
voidjieshu();
voidxiayiguan();
voiddierguan();
unsignedintledkey1[16]={0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,//黑色方块
0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff};
unsignedintstr2[8]={0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff};
unsignedinttu1[48]={0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x8000,0xC000,0xC000,0x6000,0x3FF8,0x000E,
0x0006,0x0006,0x000C,0x1FF8,0x1900,0x1800,0x1800,0x1800,
0x1800,0x1800,0x1FC0,0x003C,0x0006,0x0006,0x0006,0x1F9E,//图片
0x33F0,0x2000,0x6000,0xC000,0xC000,0x8000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};
unsignedinttu2[48]={0x0000,0x0000,0x0000,0x0800,0x7F00,0x83E0,0x0038,0x000C,
0x0006,0x0003,0x0181,0x0180,0x0180,0x0180,0x0180,0x0180,
0x0180,0x0180,0x0180,0x0180,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0100,0x0180,0x0180,0x0180,0x0180,0x0180,0x0180,
0x0180,0x0180,0x0180,0x0180,0x0001,0x0001,0x0003,0x000E,
0x003C,0x81F0,0xFFE0,0x0C00,0x0000,0x0000,0x0000,0x0000};
unsignedinttu3[48]={0x0000,0x0000,0x0000,0x0000,0x0000,0x0007,0x001C,0x0030,
0x6060,0x70C0,0x08C0,0x0780,0x0700,0x6300,0x6300,0x0200,
0x0200,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0200,0x0200,0x7300,
0x7300,0x6300,0x0780,0x0D80,0x38C0,0x70C0,0x0060,0x0038,
0x000E,0x0007,0x0001,0x0000,0x0000,0x0000,0x0000,0x0000};
unsignedintledkey[10][8]=
{
{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00},//0
{0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00},//1
{0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00},//2
{0x00,0x00,0x44,0x92,0x92,0x92,0x6C,0x00},
{0x00,0x00,0x30,0x28,0x24,0xFE,0x20,0x00},
{0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00},
{0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00},
{0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00},
{0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00},
{0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}
};
unsignedintstr1[80]=
{
0x0080,0x0040,0x4240,0xE220,0x5250,0x4A48,0x4644,0x6243,
0x2244,0x2248,0x2A50,0xF220,0x6260,0x00C0,0x0040,0x0000,
0x0820,0x1C24,0x0B24,0x08E4,0x0C24,0x0524,0x4E24,0x2420,
0x1010,0x0C10,0x03FF,0x2010,0x4010,0x3FF0,0x0000,0x0000,
0x0000,0x7FF8,0x108C,0x108B,0x1088,0x3FF8,0x0040,0x0030,
0x008F,0x0308,0x2608,0x4008,0x2008,0x1FF8,0x0000,0x0000,
0x4008,0x4008,0x2008,0x1008,0x0C08,0x0308,0x00F9,0x004A,
0x204C,0x4048,0x4048,0x3FC8,0x0008,0x0008,0x0008,0x0000,//会动的方块
0x0810,0x1810,0x0FFF,0x0410,0x8510,0x4100,0x3108,0x0D08,
0x03FF,0x0508,0x0908,0x1108,0x31F8,0x6100,0x2100,0x0000
};
unsignedintstr3[80]=
{0x0400,0x0420,0x2224,0x1924,0x00A4,0x407F,0x8024,0x7F24,
0x0024,0x087F,0x30A4,0x0924,0x3224,0x0424,0x0420,0x0000,
0x0200,0x0202,0x020A,0x7AEA,0x4AAA,0x4BAA,0x4AAA,0x4AAF,
0x4AAA,0x4BAA,0x4AAA,0x7AEA,0x020A,0x0202,0x0200,0x0000,//恭喜过关!
0x4080,0x2081,0x1F8E,0x2004,0x2000,0x4010,0x4050,0x4390,
0x4110,0x4810,0x5010,0x4FFF,0x4010,0x4010,0x4010,0x0000,
0x0100,0x8110,0x4110,0x2110,0x1111,0x091E,0x0514,0x03F0,
0x0510,0x0918,0x3117,0x6112,0xC118,0x4110,0x0100,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xCFFF,
0xCFFF,0x0000,0x0000