DSP课程设计.pdf
课程设计说明书 实验课程:DSP 技术及其应用 实验内容:基于 TMS320 的 Led 显示控制系统设计 院(系):计算机学院 专 业:通信工程 2014 年 7 月 5 日 目录 一、设计任务 1 二、实验目的 1 三、设计内容 2 四、实验原理 2 DSP(2812)性能概述 2 TMS320F2812的引脚图及功能 4 DSP最小系统 4 五、程序设计 7 流程图 7 程序源代码 8 六、实验总结13 七、参考资料14 序言 DSP 芯片的特点 DSP 芯片,也称器,是一种具有特殊结构的微处理器。DSP 芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的 DSP指令,可以用来快速的实现各种数字信号处理算法。根据数字信号处理的要求,DSP 芯片一般具有如下的一些主要特点:在一个指令周期内可完成一次乘法和一次加法。程序和数据空间分开,可以同时访问指令和数据。片内具有快速 RAM,通常可通过独立的数据总线在两块中同时访问。具有低开销或无开销循环及跳转的硬件支持。快速的中断处理和硬件 I/O 支持。具有在单周期内操作的多个硬件地址产生器。可以并行执行多个操作。支持流水线操作,使取指、译码和执行等操作可以重叠执行。与通用微处理器相比,DSP 芯片的其他通用功能相对较弱些。一、设计任务:1、基于 TMS320X2812 的 Led 流水灯显示控制系统设计 要求:(1)绘制系统框图(VISIO);(2)包括复位电路设计、JTAG 接口设计、时钟电路设计、电源设计等,并且用 Protel软件绘制原理图;(3)编写程序,实现流水灯;(4)系统理论分析和设计陈述;(5)设计过程、源代码和注释、设计说明书。二、实验目的:学习并了解 DSP 开发版的基本原理;学习并了解 TMS320X2812 芯片的基本结构和原理;熟悉流水灯的软件实现原理和硬件设计;熟悉 Emulator 方式下的程序调试规程,并最终能够熟练掌握在 DSP 软硬件环境下的程序开发流程;能够对现有器件进行简单地编程,实现各种简单地显示控制;(5)熟练 CCS 软件及使用 VISIO 画系统流程图。三、设计内容:(1)使用 Altium Designer 软件绘制原理图。(2)使用 VISIO 软件绘制系统框图和软件流程图。(3)使用 CCStudio 软件设计程序实现流水灯。四、实验原理:DSP(2812)性能概述 1、F2812 DSP 芯片采用高性能静态 CMOS 技术 (1)主频高达 150MHz,每个时钟周期为。(2)采用低电压供电,当主频为 135MHz 时,内核电压为,主频 150MHz 时内核电压为,I/O 引脚电压为。2、支持 JTAG 在线仿真接口 3、32 位高性能处理器 (1)支持 16bX16b 和 32bX32b 的乘法加法运算。(2)支持 16bX16b 双乘法运算。(3)采用哈佛总线结构模式。(4)快速的中断响应和中断处理能力。(5)统一的存储设计模式。(6)兼容 C/C+语言以及汇编语言。4、片内存储空间 (1)片内 FLASH 空间大小为 128KX16b,分为 4 个 8KX16b 和 6 个 16KX16b 存储段。(2)OTP ROM 空间大小 1KX16b。(3)L0、L1 两块 4KX16b 单地址寻址随机存储器(SARAM)。(4)H0:一块 8KX16b 随机存储器(SARAM)。(5)M0、M1:两块 1KX16bSARAM。5、Boot ROM 空间 空间大小为 4KX16b,内含软件启动模式以及标准数学函数库。6、外部接口 (1)高达 1MX16b 的总存储空间。(2)可编程的等待时间。(3)可编程的等待读写时序。(4)3 个独立的片选信号。7、时钟和系统控制 (1)支持动态锁相环倍频。(2)片内振荡器。(3)内含看门狗定时模块。8、3 个外部中断 9、外设中断模块(PIE)可以支持 45 个外设中断 10、3 个 32 位 CPU 定时器 11、128 位安全密钥 (1)可以包含 Flash ROM OTP 以及 L0 L1SARAM。(2)防止系统硬件、软件被修改。12、用于控制电机的外设 两路事件管理(EVA、EVB)。13、串行通信端口 (1)串行外设接口 SPI。(2)两路串行通信接口 SCI,标准 URAT 口。(3)增强型 CAN 模块(eCAN)。(4)多通道缓冲串行接口(MSBSP)。14、12 位 ADC 转换模块 (1)2X8 路输入通道。(2)两个采样保持器。(3)单一或级联转换模式。(4)最高转换速度 80ns/。15、56 个通用 GPIO 口 16、先进的仿真模式 (1)具有实时仿真及设置断点的功能。(2)支持硬件仿真。17、开发工具 (1)DSP 集成环境 CCS。(2)JTAG 仿真器。18、低电模式和电源存储 (1)支持 IDLE、STANDBY、HALT 模式。(2)禁止/使能独立外设时钟。19、封装 (1)179 引脚 BGA 封装,带扩展存储接口。(2)176 引脚 PGF 封装,带扩展存储接口。TMS320F2812 的引脚图及功能 如图4-2-1为 TMS320F2812 引脚图以及各个引脚的作用。图 4-2-1 DSP最小系统 系统整体框图如下图 4-3-1 所示。DSP2812时钟电路复位电路JTAG接口电路LED流水灯电源电路 图 4-3-1 系统整体框图 1、电源转换 DSP 最小系统仅有 5V 电源供电,由于 DSP 芯片供电电压只能是,所以在设计电路时,需要将 5V 电源转换为给 CPU 供电,因此使用了 TI 公司的 5V/3V 的 TPS7333Q 高性能稳压芯片,并可提供上电复位信号,该信号/RSDSP 接到 DSP 的复位引脚上。该芯片最大输出电流 500mA。TPS7333Q 输出后的 10f 和f 的电容不能省略,否则得不到稳定的电压。图 4-3-2 为电源转换原理图。图 4-3-2 电源转换原理图 2、复位电路 DSP 系统的复位电路的设计对于系统性能有重要影响。DSP2812 为低电平复位,由于内部有复位电路,所以直接在复位引脚/xrs 接一个 10K 的上拉电阻即可;有些电源芯片有复位引脚,可用于 DSP 的直接复位。复位电路原理图如图 4-3-3 所示:图 4-3-3 复位电路原理图 3、时钟电路 TMS320 F2812 DSP 的时钟可以有两种连接方式,即外部振荡器方式和谐振器方式。有源晶振驱动能力较强,频率范围较宽,在 1HZ400MHZ 之间。无源晶振驱动能力差,价格便宜,频率范围较窄。本文采用的是外部有源时钟方式,直接选择一个供电的 30MHz 有源晶振实现。晶振电路如图 4-3-4 所示。图 4-3-4 时钟电路 4、JTAG 仿真接口电路 几乎所有的高速控制器和可编程器件都配有标准仿真接口JTAG,F2812 也不例外。JTAG 扫描逻辑电路用于仿真和测试,采用 JTAG 可实现在线仿真,同时也.是调试过程装载数据、代码的唯一通道。通过 JTAG 接口可将仿真器与目标系统相连接。为了与仿真器通信,DSP 控制板必须带有 14 引脚的双排直插管座。F2812 和 14 针仿真插座连接的电路如图 4-3-5。图 4-3-5 JTAG 接口设计电路 5、流水灯控制系统电路 流水灯控制电路如下图 4-3-6 所示。图 4-3-6 流水灯电路图 五、程序设计:程序流程图 这里用软件延时的方法来调整发光二极管的延时时间间隔。当发光二极管被点亮之后,通过改变端口的数据输出,达到点亮不同的 LED 显示管的目的。实验要求实现 LED 显示管的循环显示:先第 1 个 LED 亮,然后是第 2 个 LED 亮,第3 个 LED 显示管亮。第 4 个灯亮。如此循环显示。首先给 temp 赋初值 0000 0001(由于高八位都为 0000 0000,这里只写低八位),再给寄存器 GPBCLEAR 的值与 temp 的值相或,其相应位被写 1,实现相应的端口输出低电平,LED 灯亮,通过寄存器 GPBSET 的值再与 temp 值相或,则相应的端口输出高电平,LED 等灭,通过 tenp 的值左移便可以完成 0000 0001 的改变,每改变一次就可以实现相应的 LED 灯的亮灭。当数据的最高位等于 1 的时候,temp 重新赋初值,即给程序重新赋值为 0000 0001,进行下一轮的循环。如此即可以实现实验要求的功能。程序流程图如下图 5-1-1 所示。开始初始化设计将temp的值与寄存器GPBCLEAR值相或,则相应引脚输出低电平,LED灯亮延时temp值与寄存器GPBSET的值相或,相应引脚输出高电平,LED灯灭temp左移一位判断temp值是否为0X0100yLED灯显示N结束 图 5-1-1 程序流程图 程序源代码 (1)系统初始化子程序#include#include#pragma CODE_SECTION(InitFlash,ramfuncs);/*-*/*形式参数:void */*返回值:void */*函数描述:初始化系统 */*-*/void InitSysCtrl(void)DisableDog();/禁止看门狗 InitPll(0 x02);/设置系统时钟=XCLKIN*2/2 InitPeripheralClocks();/设置外设时钟 DINT;/关闭总中断 IER=0 x0000;/关闭外设中断 IFR=0 x0000;/清中断标志 InitPieCtrl();/初始化 PIE 控制寄存器 InitPieVectTable();/使能 PIE 向量表 /*-*/*形式参数:void */*返回值:void */*函数描述:禁止看门狗 */*-*/void DisableDog(void)EALLOW;=0 x0068;EDIS;/*-*/*形式参数:void */*返回值:void */*函数描述:喂看门狗 */*-*/void KickDog(void)EALLOW;=0 x0055;=0 x00AA;EDIS;/*-*/*形式参数:void */*返回值:void */*函数描述:设置锁相环倍频系数 */*-*/void InitPll(Uint16 val)volatile Uint16 iVol;if !=val)EALLOW;=val;EDIS;for(iVol=0;iVol4096;iVol+);/*-*/*形式参数:void */*返回值:void */*函数描述:初始化外设时钟 */*-*/void InitPeripheralClocks(void)EALLOW;=0 x0001;/设置高速时钟 2 分频 =0 x0002;/设置低速时钟 4 分频 /使能外围模块时钟 EDIS;/*-*/*形式参数:void */*返回值:void */*函数描述:初始化 Flash */*-*/void InitFlash(void)EALLOW;=3;/设置 Flash 为正常工作状态 =5;/设置随机存取等待时间 =5;/设置页面存取等待时间 =0 x01FF;/设置从睡眠到等待的转换时间 =0 x01FF;/设置从等待到激活的转换时间 =1;/使能流水线模式 EDIS;asm(RPT#7|NOP);/软件延时,等待流水线刷新 /*-*/*形式参数:void */*返回值:状态值 */*函数描述:unlocks the CSM */*-*/#define STATUS_FAIL 0#define STATUS_SUCCESS 1 Uint16 CsmUnlock()volatile Uint16 temp;/写入密钥,应将 0 xFFFF 替换成密钥值 EALLOW;=0 xFFFF;=0 xFFFF;=0 xFFFF;=0 xFFFF;=0 xFFFF;=0 xFFFF;=0 xFFFF;=0 xFFFF;EDIS;/执行空读 temp=;temp=;temp=;temp=;temp=;temp=;temp=;temp=;if =0)return STATUS_SUCCESS;else return STATUS_FAIL;(2)程序主函数#include#include /*端口宏定义*/*常量宏定义*/*全局变量定义*/*函数声明*/void Init_LED(void);/*形式参数:void */*返回值:void */*函数描述:主函数 */void main(void)unsigned int i,j,temp;InitSysCtrl();/系统初始化子程序,在中 Init_LED();temp=0 x0001;while(1)|=temp;/*向寄存器 GPBCLEAR 的相应位写 1,GPIOBX 引脚输出低电平,灯亮*/for(i=0;i10;i+)for(j=0;j60000;j+);|=temp;/*向寄存器 GPBST 的相应位写 1,GPIOBX 引脚输出高电平,灯灭*/temp=1;if(temp=0 x0100)temp=0 x0001;/*形式参数:void */*返回值:void */*函数描述:初始化 LED 端口为输出 */void Init_LED(void)EALLOW;/*写保护*/|=0 x00FF;/将 GPIOB0GPIOB7 引脚配置为输出口 EDIS;六、实验总结 通过调试以上程序运行无误,利用程序延时,使用数码管显示和接口转换实现了使用 dsp 芯片设计流水灯。通过本次课程设计实现了用 DSP 芯片设计 LED 流水灯,学习到了很多关于 DSP 的基础知识。并且更加深刻的巩固了课堂上所学的课本知识,DSP 技术有了更进一步的认识和了解。掌握了 DSP 的基本实验方法,更加深了对 CSS 软件、protel 软件和 VISIO软件的使用,提高了工程设计和组织实验能力。通过这次的课程设计,让我明白了,书本上的东西光看看是很难掌握好的,很多东西要理论与实践结合在一起才能算真正的掌握,要通过自己动手去做,去实践,去研究,才能真正的将它转化成自己的东西。能完成这次的课程设计,我要谢谢袁老师在上课时说的,现在才发现这些都是很有用的,在实践中的重要性,是不可缺少的东西,也要谢谢那些给过我意见和帮助的同学,没有他们的意见和帮助,我是很难这么快的完成的。七 参考文献 刘和平DSP 原理及电机控制应用北京航空航天大学出版社 2006 年 顾卫钢手把手教你学 DSP北京航空航天大学出版社 2011 年 戴明帧 周建江TMS320C2407X DSP 结构、原理及应用(第二版)北京航空航天大学出版社 2007