课程设计说明书实验课程:DSP技术及其应用实验内容:基于TMS320的Led显示控制系统设计院(系):计算机学院专业:通信工程2014年7月5日目录一、设计任务………………………………………………………………………1二、实验目的………………………………………………………………………1三、设计内容………………………………………………………………………2四、实验原理………………………………………………………………………24.1DSP(2812)性能概述……………………………………………………24.2TMS320F2812的引脚图及功能……………………………………………44.3DSP最小系统………………………………………………………………4五、程序设计………………………………………………………………………75.1流程图………………………………………………………………………75.2程序源代码…………………………………………………………………8六、实验总结………………………………………………………………………13七、参考资料………………………………………………………………………14DSP技术及其应用1序言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画系统流程图。DSP技术及其应用2三、设计内容:(1)使用AltiumDesigner软件绘制原理图。(2)使用VISIO软件绘制系统框图和软件流程图。(3)使用CCStudiov3.3软件设计程序实现流水灯。四、实验原理:4.1DSP(2812)性能概述1、F2812DSP芯片采用高性能静态CMOS技术(1)主频高达150MHz,每个时钟周期为6.67ns。(2)采用低电压供电,当主频为135MHz时,内核电压为1.8V,主频150MHz时内核电压为1.9V,I/O引脚电压为3.3V。2、支持JTAG在线仿真接口3、32位高性能处理器(1)支持16bX16b和32bX32b的乘法加法运算。(2)支持16bX16b双乘法运算。(3)采用哈佛总线结构模式。(4)快速的中断响应和中断处理能力。(5)统一的存储设计模式。(6)兼容C/C++语言以及汇编语言。4、片内存储空间(1)片内FLASH空间大小为128KX16b,分为4个8KX16b和6个16KX16b存储段。(2)OTPROM空间大小1KX16b。(3)L0、L1两块4KX16b单地址寻址随机存储器(SARAM)。(4)H0:一块8KX16b随机存储器(SARAM)。(5)M0、M1:两块1KX16bSARAM。5、BootROM空间空间大小为4KX16b,内含软件启动模式以及标准数学函数库。6、外部接口(1)高达1MX16b的总存储空间。(2)可编程的等待时间。(3)可编程的等待读写时序。(4)3个独立的片选信号。7、时钟和系统控制(1)支持动态锁相环倍频。DSP技术及其应用3(2)片内振荡器。(3)内含看门狗定时模块。8、3个外部中断9、外设中断模块(PIE)可以支持45个外设中断10、3个32位CPU定时器11、128位安全密钥(1)可以包含FlashROMOTP以及L0L1SARAM。(2)防止系统硬件、软件被修改。12、用于控制电机的外设两路事件管理(EVA、EVB)。13、串行通信端口(1)串行外设接口SPI。(2)两路串行通信接口SCI,标准URAT口。(3)增强型CAN模块(eCAN)。(4)多通道缓冲串行接口(MSBSP)。14、12位ADC转换模块(1)2X8路输入通道。(2)两个采样保持器。(3)单一或级联转换模式。(4)最高转换速度80ns/12.5Msps。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封装,带扩展存储接口。DSP技术及其应用44.2TMS320F2812的引脚图及功能如图4-2-1为TMS320F2812引脚图以及各个引脚的作用。图4-2-14.3DSP最小系统系统整体框图如下图4-3-1所示。DSP2812时钟电路复位电路JTAG接口电路LED流水灯电源电路图4-3-1系统整体框图DSP技术及其应用51、电源转换DSP最小系统仅有5V电源供电,由于DSP芯片供电电压只能是3.3V,所以在设计电路时,需要将5V电源转换为3.3V给CPU供电,因此使用了TI公司的5V/3V的TPS7333Q高性能稳压芯片,并可提供上电复位信号,该信号/RS—DSP接到DSP的复位引脚上。该芯片最大输出电流500mA。TPS7333Q输出后的10μf和0.1μf的电容不能省略,否则得不到稳定的3.3V电压。图4-3-2为电源转换原理图。图4-3-2电源转换原理图2、复位电路DSP系统的复位电路的设计对于系统性能有重要影响。DSP2812为低电平复位,由于内部有复位电路,所以直接在复位引脚/xrs接一个10K的上拉电阻即可;有些电源芯片有复位引脚,可用于DSP的直接复位。复位电路原理图如图4-3-3所示:图4-3-3复位电路原理图3、时钟电路TMS320F2812DSP的时钟可以有两种连接方式,即外部振荡器方式和谐振器方式。有源晶振驱动能力较强,频率范围较宽,在1HZ—400MHZ之间。无源晶振驱动能力差,价格便宜,频率范围较窄。DSP技术及其应用6本文采用的是外部有源时钟方式,直接选择一个3.3V供电的30MHz有源晶振实现。晶振电路如图4-3-4所示。图4-3-4时钟电路4、JTAG仿真接口电路几乎所有的高速控制器和可编程器件都配有标准仿真接口JTAG,F2812也不例外。JTAG扫描逻辑电路用于仿真和测试,采用JTAG可实现在线仿真,同时也.是调试过程装载数据、代码的唯一通道。通过JTAG接口可将仿真器与目标系统相连接。为了与仿真器通信,DSP控制板必须带有14引脚的双排直插管座。F2812和14针仿真插座连接的电路如图4-3-5。图4-3-5JTAG接口设计电路DSP技术及其应用75、流水灯控制系统电路流水灯控制电路如下图4-3-6所示。图4-3-6流水灯电路图五、程序设计:5.1程序流程图这里用软件延时的方法来调整发光二极管的延时时间间隔。当发光二极管被点亮之后,通过改变端口的数据输出,达到点亮不同的LED显示管的目的。实验要求实现LED显示管的循环显示:先第1个LED亮,然后是第2个LED亮,第3个LED显示管亮。第4个灯亮。如此循环显示。首先给temp赋初值00000001(由于高八位都为00000000,这里只写低八位),再给寄存器GPBCLEAR的值与temp的值相或,其相应位被写1,实现相应的端口输出低电平,LED灯亮,通过寄存器GPBSET的值再与temp值相或,则相应的端口输出高电平,LED等灭,通过tenp的值左移便可以完成00000001……10000000的改变,每改变一次就可以实现相应的LED灯的亮灭。当数据的最高位等于1的时候,temp重新赋初值,即给程序重新赋值为00000001,进行下一轮的循环。如此即可以实现实验要求的功能。程序流程图如下图5-1-1所示。DSP技术及其应用8开始初始化设计将temp的值与寄存器GPBCLEAR值相或,则相应引脚输出低电平,LED灯亮延时temp值与寄存器GPBSET的值相或,相应引脚输出高电平,LED灯灭temp左移一位判断temp值是否为0X0100yLED灯显示N结束图5-1-1程序流程图5.2程序源代码(1)系统初始化子程序DSP28_sysctrl.c#includeDSP281x_Device.h#includeSystem.h#pragmaCODE_SECTION(InitFlash,ramfuncs);/*------------------------------------------*//*形式参数:void*//*返回值:void*//*函数描述:初始化系统*//*------------------------------------------*/voidInitSysCtrl(void){DisableDog();//禁止看门狗InitPll(0x02);//设置系统时钟=XCLKIN*2/2InitPeripheralClocks();//设置外设时钟DINT;//关闭总中断DSP技术及其应用9IER=0x0000;//关闭外设中断IFR=0x0000;//清中断标志InitPieCtrl();//初始化PIE控制寄存器InitPieVectTable();//使能PIE向量表}/*------------------------------------------*//*形式参数:void*//*返回值:void*//*函数描述:禁止看门狗*//*------------------------------------------*/voidDisableDog(void){EALLOW;SysCtrlRegs.WDCR=0x0068;EDIS;}/*------------------------------------------*//*形式参数:void*//*返回值:void*//*函数描述:喂看门狗*//*------------------------------------------*/voidKickDog(void){EALLOW;SysCtrlRegs.WDKEY=0x0055;SysCtrlRegs.WDKEY=0x00AA;EDIS;}/*------------------------------------------*//*形式参数:void*//*返回值:void*//*函数描述:设置锁相环倍频系数*//*------------------------------------------*/voidInitPll(Uint16val){DSP技术及其应用10volatileUint16iVol;if(SysCtrlRegs.PLLCR.bit.DIV!=val){EALLOW;SysCtrlRegs.PLLCR.bit.DIV=val;EDIS;for(iVol=0;iVol4096;i