华东交通大学基于TMSLFDSP流水灯的课程设计_第1页
华东交通大学基于TMSLFDSP流水灯的课程设计_第2页
华东交通大学基于TMSLFDSP流水灯的课程设计_第3页
华东交通大学基于TMSLFDSP流水灯的课程设计_第4页
华东交通大学基于TMSLFDSP流水灯的课程设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录一、概述11.1 DSP介绍11.2 DSP的应用11.3问题描述2二、整体设计原理22.1原理22.2基本理论2三、DSP240773.1 DSP2407简介73.2 DSP2407事件管理器模块83.2.1事件管理器的引脚说明83.2.2 EV中断83.2.3定时器93.2.4比较单元9四、硬件电路说明94.1供电电路94.2复位电路104.3时钟电路114.4 DSP引脚扩展接口114.6 SCI串口通讯电路124.7 CAN通讯接口电路124.8 数码管控制电路134.9 AD电路134.10 DA电路144.11 PWM电机控制电路154.12 步进电机接口154.13液晶扩展电

2、路(1602和12864接口)164.14 外部中断控制电路16五、软件设计175.1程序所用的DSP的程序空间和寄存器175.2程序流程框图185.3.程序重要部分的说明195.4.源程序20六、实验结果226.1 实验结果22七、心得体会22八、参考文献22基于DSP2407的流水灯的实现一、概述1.1 DSP介绍数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,

3、来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。 DSP (digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或l的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运

4、行速度,是最值得称道的两大特色。DSP微处理器(芯片)一般具有如下主要特点:(1)在一个指令周期内可完成一玖乘法和一次加法;(2)程序和数据空间分开,可以同时访问指令和数据;(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无开销循环及跳转的硬件支持;(5)快速的中断处理和硬件1/0支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以熏叠执行。1.2 DSP的应用 语音处理:语音编码、语音合成、语音识别、语音增强、语音邮件、语音 储存等。 图像图形:二维和三维图形处理、图像压缩与传

5、输、图像识别、动画、机 器人视觉、多媒体、电子地图、图像增强等。 军事、保密通信、雷达处理、声呐处理、导航、全球定位、跳频电台、搜 索和反搜索等。 仪器仪表:频谱分析、函数发生、数据采集、地震处理等。 自动控制:控制、深空作业、自动驾驶、机器人控制、磁盘控制等。 医疗:助听、超声设备、诊断工具、病人监护、心电图等。 家用电器:数字音响、数字电视、可视电话、音乐合成、音调控制、玩具 与游戏等。 生物医学信号处理举例: CT:计算机X射线断层摄影装置。(其中发明头颅CT英国EMI公司的豪斯菲尔德获诺贝尔奖。) CAT:计算机X射线空间重建装置。出现全身扫描,心脏活动立体图形,脑肿瘤异物,人体躯干图

6、像重建。1.3问题描述输入输出端口(1/0)是DSP芯片内部电路与外部世界交换信息的通道。输入端口负责从外界接收检测信号键盘信号等各种开关量信弓;输出端口负责向外界输送有内部电路产生的处理结果显示信息,控制命令驱动信号。 使用中断和定时器延时循环程序,设计DSP的流水灯控制器,在事件管理器中应用EV中断。二、整体设计原理2.1原理通过对DSP结构、原理及应用的学习。在初步了解DSP结构和原理的基础上,进行简单的应用实验,掌握DSP的基本应用。通过熟悉DSP模板的内部结构以及CCS软件,掌握DSP2407的汇编语言编程和调试方法,了解DSP的指令和I/O端口的寄存器的配置,并结合DSP实验模板对

7、DSP进行编程控制数字输入/输出端口点亮LED显示管。实验的具体要求如下:实现LED显示管的循环显示:先第1个LED亮,然后是第2个LED亮,第3个LED显示管亮。第4个灯亮。如此循环显示。2.2基本理论指导实验的基本理论是DSP的数字I/O端口以及其寄存器的配置。通过对这些理论的掌握和运用,达到了解和熟悉一般DSP数字I/O的知识。(1)数字I/O端口TMS320LF2407系列有多达41个通用、双向的数字I/O(GPIO)引脚,其中大多数是基本功能和一般I/O复用引脚,TMS320LF2407系列的大多数都可以用来实现其他功能。数字I/O端口模块采用了一种灵活的方法,以控制专用I/O和复用

8、I/O引脚的功能,所有I/O和复用引脚的功能可以通过9个16位控制寄存器来设置,这些寄存器可以分为两类:l I/O口复用控制寄存器(MCRx):用来控制选择I/O引脚作为基本功能或一般I/O引脚功能。l 数据和方向控制寄存器(PxDATDIR):当I/O引脚作为一般I/O引脚功能时,用数据和方向控制寄存器可控制数据和I/O引脚的数据方向,这些寄存器直接和I/O引脚相连。(2)数字I/O端口寄存器图1给出了TMS320LF2407系列I/O端口复用引脚配置简图,从图上可以看出一些寄存器单元的配置对应于实际I/O引脚的内部结构之间的联系。图1 复用引脚配置图表1中所列的是数字I/O模块可用的寄存器

9、单元,和其他240xA外设一样,这些寄存器被存储器映射到数据空间,地址从7090h到709Fh。寄存器单元中保留的位所是无效的,读时为0,写对它无影响。表1 数字数字I/O模块控制寄存器地址地址存储寄存器说明7090hMCRAI/O复用控制寄存器A7092hMCRBI/O复用控制寄存器B7094hMCRCI/O复用控制寄存器C7098hPADATDIRI/O端口A数据和方向寄存器709AhPBDATDIRI/O端口B数据和方向寄存器709ChPCDATDIRI/O端口C数据和方向寄存器709EhPDDATAIRI/O端口D数据和方向寄存器7095hPEDATAIRI/O端口E数据和方向寄存器7

10、096hPEDATDIRI/O端口F数据和方向寄存器下面介绍I/O口复用输出控制寄存器。下面描述了I/O口复用控制寄存器A(MCRA)I/O口复用控制寄存器B(MCRB),I/O口复用控制寄存器C(MCRC),其中表2是I/O口复用控制寄存器A(MCRA)的配置,对寄存器的每个位的值做了详细的描述;表3是I/O口复用控制寄存器B(MCRB)的配置,对寄存器的每个位的值做了详细的描述。表4是I/O口复用控制寄存器C(MCRC)的配置,对寄存器的每个位的值做了详细的描述。l I/O口复用控制寄存器A(MCRA)地址7090h注:R=可读,W=可写,_0=复位后的值表2 I/O口复用控制寄存器A(M

11、CRA)的配置l I/O口复用控制寄存器B(MCRB地址7092h)注:R=可读,W=可写,_0=复位后的值表3 I/O口复用控制寄存器B(MCRB)的配置l I/O口复用控制寄存器C(MCRC地址7094h)注:R=可读,W=可写,_0=复位后的值表4 I/O口复用控制寄存器C(MCRC)的配置以下介绍DSP的I/O口数据和方向寄存器。TMS320LF2407系列总共有6个数据和向控制寄存器(PxDATADIR),当I/O口用作一般I/O引脚功能时,用数据和方向控制寄存器可控制数据和到双向I/O引脚的数据方向。这些寄存器直接和双向I/O引脚相连。当I/O用作基本功能时,这些寄存器的设置对相应

12、的引脚无影响。l 端口A数据和方向控制寄存器A(PADATADIR)地址7098h注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口B数据和方向控制寄存器(PBDATDIR)地址709Ah注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口C数据和方向控制键寄存器(PCDATDIR)地址709Ch注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口D数据和方向控制键寄存器(PDDATDIR)地址709Eh注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口E数据和方

13、向控制键寄存器(PEDATDIR)地址7094h注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值l 端口F数据和方向控制键寄存器(PFDATDIR)地址7096h注:_+复位后的值和相应引脚的状态有关,R=可读,W=可写,_0=复位后的值三、DSP24073.1 DSP2407简介2407开发板分为TI 2000-011 DSP2407增强型、DSP2407+CPLD开发板、SHX-DSP2407A开发板。引DSP2407+CPLD开发板套件是一套基TMS320LF2407A+EPM240的DSP+CPLD的学习开发平台,充分发挥DSP2407和ALTERA MAX

14、 II的灵活性和功能强大,用户手册详实易懂,大量源码轻松上手(分DSP和CPLD两部分),我们为用户提供一个完整的IP核通过CPLD进行系统资源分配,用户可以根据需要进行裁剪或追加功能。由于我们的外设都是通过CPLD连接与DSP连接进行电平转换、隔离和总线。 仲裁等先进技术,所以使用极为方便灵活、简洁、并且运行及其稳定。这种结构可以充分利用了CPLD的灵活性和功能强大的IP核进行功能更强的系统应用。是初学者和从事开发的科研工作者学习2407和CPLD的首选之品。本开发板供初学者学习使用,也可作为系统板嵌入到用户的产品供用户进行二次开发以便缩短产品开发周期。SHX-DSP2407A开发板是DSP

15、 2407系列产品中的重要一员。它的最大优点是直观简单明了,极为适于初学者。此棋板采用统一的系统结构、模块结构和机械结构,以多种典型DSP处理器构成的DSP基本系统、标准总线和相同物理尺寸的DSP嵌入式控制模板,将2407的功能发挥的淋漓尽致,为学习者提供了强大、有效的学习平台。用户手册详实易懂,大量源码轻松上手(分DSP和CPLD两部分),我们为用户提供一个完整的IP核通过CPLD进行系统资源分配,用户可以根据需要进行裁剪或追加功能。3.2 DSP2407事件管理器模块3.2.1事件管理器的引脚说明3.2.2 EV中断事件管理器中断总共分三组,每组均分别配一个CPU申断(INT2,3和4)。

16、因为每组中断均有多个中断源,所以CPU中断请求通过外设中断扩展控制器(PIE)模块来处理。 中断请求有以下几个响应阶段: (1) 中断源。如果外设中断发生,EVxIFRA、EVxIFRB、或EVxIFRC(x=A或 B)相应标志位被置l。 (2) 中断使能。事件管理器中断可以分别由寄存器EVxIMRA、EVxIMRB或EVxIMRC (x=A或B)来使能或禁止。 (3) PIE请求。如果中断标志位和中断屏蔽位被置l,那么外设会向PIE模块发送一个外设中断请求。 (4) CPU响应。CPU接收到中断后,IFR响应的位被置l,并相应中断。CPU响应中断后,中断响应被软件控制。(5) PIE响应。P

17、IE使用中断向量更新PIVR寄存器。(6) 中断软件。中断软件有两级响应,包括GISR和SISR。3.2.3定时器每个时间管理模块有两个通用定时器(GP),每个定时器有四种可选操作模式: (1) 停止保持模式 此模式操作停止并保持其当前状态,定时器的计数器,比较输出和预定计数器 多保持不变 (2) 连续递增计数模式 此模式GP将按照已定标的输入时钟计数,直到定时器计数器的值和周期存 储器的值匹配为止。 (3) 定向增减技术模式 此模式,定时器将根据TDIRA/B引脚的输入,对定时器的时钟进行递增和递 减计数。 (4) 连续增减技术模式 此模式与定向的增减模式一样,但是在本模式下,引脚TDIRA

18、/B的状态对计数的方向没有影响。3.2.4比较单元四、硬件电路说明4.1供电电路图1供电电路2407开发板既可使用独立的5V/1A 开关电源供电,也可使用USB 线直接供电,使用方便。电路部分的1117 输出所接的100UF/16V 的电容不能省略,这样更好的保证电压稳定。4.2复位电路图2复位电路2407开发板上使用专门的复位芯片SP708R,保证DSP 芯片可靠复位,并提供手动复位按钮,方便用户调试4.3时钟电路00IC2407 用20M 外部晶体给DSP 提供时钟,并使能2407A 片上PLL 电路。由PLL 控制寄存器控制,可由软件动态的修改。TMS320LF2407 的CPU 最高可

19、工作在40M 的主频下,也即是对20M 输入频率进行2 倍频。图3时钟电路4.4 DSP引脚扩展接口图4 DSP引脚扩展接口4.5 LED和按键电路图5 LED和按键电路开发板上有4个LED发光管和一个自由按键。4.6 SCI串口通讯电路图6 SCI串口通讯电路DSP内置SCI通讯模块,采用接口芯片是MAX232,可以使用一根直连串口线直接和PC通讯。4.7 CAN通讯接口电路图7 CAN通讯接口电路开发板中CAN总线收发器采用的是PCA82C250。它将CANTX和CANRX转化成CANH和CANL在CAN总线上传输。4.8 数码管控制电路使用DSP的SPI接口(IO方式)控制数码管。图8数

20、码管控制电路4.9 AD电路DSP 内置16 通道10 位ADC 。在00IC2407 板上通过运放隔离只扩展了2 通道,分别位于通道0 和通道8,DSP 能接收的ADC 输入电压为03.3V,在2407 板上没有单独采用基准源。直接使用系统的3.3V 。板上所引的2 路AD 输入电压范围为03 .3V, 在输入DSP 之前,已经采用电压跟随器增加了阻抗。如果需要采样的信号值更加准确,请采用专门的基准电压源,以保证信号源的定。图9 AD电路4.10 DA电路板上外扩的DA 转换器为TI 公司的TLC5620,该芯片为串行接口的4 路8 位DA 转换器,2407 通过SPI 口与其接口,由于TL

21、C5620 的工作频率是1M,所有SPI 的工作频率也设定在1M,由于TLC5620 的4 路DA 输出已经加了跟随器,所以本开发板上没有另外加。图10 DA电路4.11 PWM电机控制电路图11 PWM电机控制电路PWM 电机控制实验针对微型直流电机。两路带死区的PWM 信号从DSP 引脚上直接产生。电机驱动采用的是4 个NPN 的三极管,可控制正反转。4.12 步进电机接口图12步进电机接口开发板上提供的5V 的步进电机接口,标准6 芯,兼容市场上的5 芯接口。4.13液晶扩展电路(1602和12864接口)图13液晶扩展电路液晶接口的数据线都经过了74LVC4245 进行了缓冲。读信号和

22、写信号与DSP 直接相连。4.14 外部中断控制电路板子上扩展中断输入接口,其中EXINT 输入端接有小按键。平时为高电平,按下为低电平,如图所示。图14外部中断控制电路五、软件设计这里用软件延时的方法来调整发光二极管的延时时间间隔。当发光二极管被点亮之后,通过改变端口的数据输出,达到点亮不同的LED显示管的目的。实验要求实现LED显示管的循环显示:先第1个LED亮,然后是第2个LED亮,第3个LED显示管亮。第4个灯亮。如此循环显示。在给端口赋初值为0000 0001后,其高8位为0000 0000;主要是对低8位进行操作。通过对低8位左移一位再与0000 0001相或,得到的值通过端口输出

23、,便可以完成0000 0001à à0000 1111的显示,每改变一次显示的时间间隔是由软件延时控制产生的。当数据的最高位等于1的时候,根据判断将程序跳转,从1111 1111开始对数据的操作变为先与0111 1111B相与,再右移一位,将得到的结果输出。当输出数据的最低位为0的时候程序跳转,完成了基本功能的一个循环,程序跳到循环开始的地方,即给程序重新赋值为0000 0001,进行下一轮的循环。如此即可以实现实验要求的功能。5.1程序所用的DSP的程序空间和寄存器(一)系统寄存器包括系统控制和状态寄存器SCSR1,开始地址7018h;状态寄存器ST0和ST1;(二)I/

24、O口的寄存器I/O口复用控制寄存器A(MCRA),地址7090h;I/O口复用控制寄存器C(MCRC),地址7094h;端口B数据和方向控制键寄存器(PBDATDIR) 地址709Ah端口F数据和方向控制键寄存器(PFDATDIR) 地址7096h前面两者用来定义I/O的输入输出功能,后面两者控制LED的亮灭。(三)自定义寄存器 LED寄存器,定义在数据区。由.bss定义在数据区BLK_B2,长度为1个字节; DEYH寄存器,定义在数据区。由.bss定义在数据区BLK_B2,长度为1个字节;数据区BLK_B2在数据页(Page 1)上定义的,地址是从Page1的0060h开始,长度20个字节。

25、(四)存储空间 图3是定义的程序的存储控件和数据存储空间。图15 TMS320LF2402 DSP存储器映射图如图3中所示,程序存储在Page 0区,即程序区,起始位置为007Fh,终止位置为FE00h;数据存储在Page 1,即数据区,数据区的data0中,LED寄存器的地址从0060h到0061h;DEYH寄存器的地址是从0061h到0062h。5.2程序流程框图根据设计依据中介绍的算法,进行编程。主程序的流程图如图4所示:图16 主程序流程图其他子程序,如系统初始化,软件延时等的框图从略。5.3.程序重要部分的说明该程序最重要的部分是通过端口的赋值点亮LED显示管和点亮之后循环显示的过程

26、中的算法运算。在第2部分基本理论里面已经说了数字I/O口的I/O复用寄存器和数据、方向寄存器。第3部分讲到了具体的算法。根据算法产生的数据赋值到端口的数据寄存器上,数据寄存器的数据经过74HC273产生的驱动脉冲驱动输出,当对应的数据位输出为高电平的时候,就点亮所在LED显示管的相应的位置。同时产生的锁存脉冲使得被点亮的LED灯一直保持点亮的状态,直到软件延时结束之后,DSP将新的数据输送到端口寄存器,端口的数据被刷新,LED显示管的各位的灯就按照程序设计的方式被点亮起来。算法的重要性体现在灯的循环点亮的过程中,实际上是在每个循环中分为两个部分完成的。首先由第一个灯被点亮到1、2个被点亮,到1

27、4全部点亮,这个过程是一部分,通过对初始值01H左移后与01H相或,使得二进制初始值中的为1的最后一位不断前移,而且在移动的过程中不断补充后面左移得到的0,使之为1,那么就可以得到实验要求的循环的前面半部分;而后面的半部分是和前面的相反,但又不是仅仅相反而已。实际上实现程序的后半部分可以将前半部分显示过的数据进行逆运算完成,而这个过程结束判断的标志位也相应的发生了变化。将现有的输送到端口的值进行判断(根据寄存器的第9位的值是否为1),达到要求的时候认为前半部分的点亮完成;进入逆运算。将数据右移之后并与7FH相与,即是和0111 1111B(二进制数)相与,可以把寄存器的数据的较高位的1移到下一

28、位,并将原来的高位置零。这正是实验的目的。此时判断的条件其实变化为读取寄存器的最低位是否为0,当满足条件的时候就认为程序的一个循环结束了,跳转到循环开始之初,即赋初值的地方去就可以实现实验要求的功能了。5.4.源程序#include "2407c.h"#include<ioports.h>#define uint unsigned intunsigned char data4=0x01,0x02,0x04,0x08 ;uint index;void disable() asm(" setc INTM");void enable() asm(&

29、quot; clrc INTM"); void initial() asm(" setcSXM");/ 抑制符号位扩展asm(" clrcOVM");/ 累加器中结果正常溢出asm(" clrcCNF");/ B0被配置为数据存储空间asm(" setcINTM");/ 禁止所有中断*SCSR1=0x0E04;/ CLKIN=15M,CLKOUT=2*CLKIN=30M*WDCR=0x00E8;/ 不使能看门狗,因为SCSR2中的WDOVERRIDE/ 即WD保护位复位后的缺省值为1,故可以用软件禁止看门狗*IMR=0x0002;/ INT2中断*IFR=0x0FFFF;/ 清除全部中断标志,&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论