流水灯实习报告.docx
《流水灯实习报告.docx》由会员分享,可在线阅读,更多相关《流水灯实习报告.docx(52页珍藏版)》请在冰豆网上搜索。
流水灯实习报告
1概述
1.1DSP介绍
数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。
DSP(digitalsignalprocessor)是一种独特的微处理器,是以数字信号
来处理大量信息的器件。
其工作原理是接收模拟信号,转换为0或l的数字信
号。
再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解
译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可
达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界
中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道
的两大特色。
DSP微处理器(芯片)一般具有如下主要特点:
(1)在一个指令周期内可完成一玖乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件1/0支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以熏叠执行。
1.2DSP芯片的分类
DSP芯片可以按照下列三种方式进行分类。
1.按基础特性分
这是根据DSP芯片的工作时钟和指令类型来分类的。
如果在某时钟频率范围内的任何时钟频率上,DSP芯片都能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称为静态DSP芯片。
例如,日本OKI电气公司的DSP芯片、TI公司的TMS320C2XX系列芯片属于这一类。
如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码机管脚结构相互兼容,则这类DSP芯片称为一致性DSP芯片。
例如,美国TI公司的TMS320C54X就属于这一类。
2.按数据格式分
这是根据DSP芯片工作的数据格式来分类的。
数据以定点格式工作的DSP芯片称为定点DSP芯片,如TI公司的TMS320C1X/C2X、TMS320C2XX/C5X、TMS320C54X/C62XX系列,AD公司的ADSP21XX系列,AT&T公司的DSP16/16A,Motolora公司的MC56000等。
以浮点格式工作的称为浮点DSP芯片,如TI公司的TMS320C3X/C4X/C8X,AD公司的ADSP21XXX系列,AT&T公司的DSP32/32C,Motolora公司的MC96002等。
不同浮点DSP芯片所采用的浮点格式不完全一样,有的DSP芯片采用自定义的浮点格式,如TMS320C3X,而有的DSP芯片则采用IEEE的标准浮点格式,如Motorola公司的MC96002、FUJITSU公司的MB86232和ZORAN公司的ZR35325等。
3.按用途分
按照DSP的用途来分,可分为通用型DSP芯片和专用型DSP芯片。
通用型DSP芯片适合普通的DSP应用,如TI公司的一系列DSP芯片属于通用型DSP芯片。
专用DSP芯片是为特定的DSP运算而设计的,更适合特殊的运算,如数字滤波、卷积和FFT,如Motorola公司的DSP56200,Zoran公司的ZR34881,Inmos公司的IMSA100等就属于专用型DSP芯片。
1.3DSP的应用:
(1)语音处理:
语音编码、语音合成、语音识别、语音增强、语音邮件、语音储存等。
(2)图像/图形:
二维和三维图形处理、图像压缩与传输、图像识别、动画、机器人视觉、多媒体、电子地图、图像增强等。
军事、保密通信、雷达处理、声呐处理、导航、全球定位、跳频电台、搜索和反搜索等。
(3)仪器仪表:
频谱分析、函数发生、数据采集、地震处理等。
(4)自动控制:
控制、深空作业、自动驾驶、机器人控制、磁盘控制等。
(5)医疗:
助听、超声设备、诊断工具、病人监护、心电图等。
(6)家用电器:
数字音响、数字电视、可视电话、音乐合成、音调控制、玩具与游戏等。
(7)生物医学信号处理举例:
CT:
计算机X射线断层摄影装置。
(其中发明头颅CT英国EMI公司的豪斯
菲尔德获诺贝尔奖。
)
CAT:
计算机X射线空间重建装置。
出现全身扫描,心脏活动立体图形,脑
肿瘤异物,人体躯干图像重建。
随着DSP芯片性能价格比的不断提高,可以预见DSP芯片将会在更多的领域内得到更为广泛的应用。
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。
因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。
而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。
数字信号处理的算法需要利用计算机或专用处理设备如DSP和专用集成电路(ASIC)等。
数字信号处理的研究方向应该更加广泛、更加深入.特别是对于谱分析的本质研究,对于非平稳和非高斯随机信号的研究,对于多维信号处理的研究等,都具有广阔前景。
数字信号处理技术发展很快、应用很广、成果很多。
多数科学和工程中遇到的是模拟信号。
以前都是研究模拟信号处理的理论和实现。
模拟信号处理缺点:
难以做到高精度,受环境影响较大,可靠性差,且不灵活等。
数字系统的优点:
体积小、功耗低、精度高、可靠性高、灵活性大、易于大规模集成、可进行二维与多维处理。
随着大规模集成电路以及数字计算机的飞速发展,加之从60年代末以来数字信号处理理论和技术的成熟和完善,用数字方法来处理信号,即数字信号处理,已逐渐取代模拟信号处理。
数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们所需要的信号形式。
数字信号处理是将信号以数字方式表示并处理的理论和技术。
数字信号处理与模拟信号处理是信号处理的子集。
数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。
数字信号处理是20世纪60年代,随着信息学科和计算机学科的高速发展而迅速发展起来的一门新兴学科。
它的重要性日益在各个领域的应用中表现出来。
其主要标志是两项重大进展,即快速傅里叶变换(FFT)算法的提出和数字滤波器设计方法的完善。
数字信号处理是把信号用数字或符号表示成序列,通过计算机或通用(专用)信号处理设备,用数值计算方法进行各种处理,达到提取有用信息便于应用的目的。
例如:
滤波、检测、变换、增强、估计、识别、参数提取、频谱分析等。
1.4问题描述
输入输出端口(1/0)是DSP芯片内部电路与外部世界交换信息的通道。
输入端口负责从外界接收检测信号.键盘信号等各种开关量信弓;输出端口负责向外界输送有内部电路产生的处理结果.显示信息,控制命令.驱动信号。
使用中断和定时器延时循环程序,设计DSP的流水灯控制器,在事件管理器中应用EV中断。
2TMS320C54X
2.1DSP54X简介
TMS320C54X是TI公司为实现低功耗、高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高速的操作灵活性和运行速度,适用于远程通信等实时嵌入式应用需要,现已广泛地应用于无线电通信系统中。
TMS320C54X具有的主要优点如下:
⑴围绕1组程序总线、3组数据总线和4组地址总线而建立的改进哈佛结构,提高了系统的多功能性和操作的灵活性;
⑵具有高度并行性和专用硬件逻辑的CPU设计,提高了芯片的性能;
⑶具有完善的寻址方式和高度专业化指令系统,更适应于快速算法的实现和高度语言编程的优化;
⑷模块化结构设计,使派生器件得到了更快的发展;
⑸采用先进的IC制造工艺,降低了芯片的功耗,提高了芯片的性能;
⑹采用先进的静态设计技术,进一步降低功耗,使芯片具有更强的应用能力。
TMS320C54X系列DSP芯片种类很多,但结构基本相同,主要由中央处理器CPU、内部总线控制、特殊功能寄存器、数据存储器RAM、程序存储器ROM、I/O接口扩展功能、串行口、主要通信接口HPI、定时器、中断系统等10个部分组成。
54X开发板分为TI2000-011DSP54X增强型、DSP54X+CPLD开发板、SHX-DSP54X开发板。
引DSP54X+CPLD开发板套件是一套基TMS320C54X+EPM240的DSP+CPLD的学习开发平台,充分发挥DSP54X和ALTERAMAXII的灵活性和功能强大,用户手册详实易懂,大量源码轻松上手(分DSP和CPLD两部分),我们为用户提供一个完整的IP核通过CPLD进行系统资源分配,用户可以根据需要进行裁剪或追加功能。
由于我们的外设都是通过CPLD连接与DSP连接进行电平转换、隔离和总线。
仲裁等先进技术,所以使用极为方便灵活、简洁、并且运行及其稳定。
这种结构可以充分利用了CPLD的灵活性和功能强大的IP核进行功能更强的系统应用。
是初学者和从事开发的科研工作者学习5416和CPLD的首选之品。
本开发板供初学者学习使用,也可作为系统板嵌入到用户的产品供用户进行二次开发以便缩短产品开发周期。
SHX-DSP5416A开发板是DSP5416系列产品中的重要一员。
它的最大优点是直观简单明了,极为适于初学者。
此棋板采用统一的系统结构、模块结构和机械结构,以多种典型DSP处理器构成的DSP基本系统、标准总线和相同物理尺寸的DSP嵌入式控制模板,将5416的功能发挥的淋漓尽致,为学习者提供了强大、有效的学习平台。
用户手册详实易懂,大量源码轻松上手(分DSP和CPLD两部分),我们为用户提供一个完整的IP核通过CPLD进行系统资源分配,用户可以根据需要进行裁剪或追加功能。
2.2DSP54X事件管理器模块
2.2.1事件管理器的引脚说明
表1事件管理器的引脚
事件管理器A的引脚
事件管理器A的引脚
引脚名称
描述
引脚名称
描述
CAP1/QEP1
捕获单元1输入,QEP电路输入1
CAP4/QEP3
捕获单元4输入,QEP电路输入3
CAP2/QEP2
捕获单元2输入,QEP电路输入2
CAP5/QEP4
捕获单元5输入,QEP电路输入4
CAP3
捕获单元3输入
CAP6
捕获单元6输入
PWM1
比较单元1输出1
PWM7
比较单元4输出1
PWM2
比较单元1输出2
PWM8
比较单元4输出2
PWM3
比较单元2输出1
PWM9
比较单元5输出1
PWM4
比较单元2输出2
PWM10
比较单元5输出2
PWM5
比较单元3输出1
PWM11
比较单元6输出1
PWM6
比较单元3输出2
PWM12
比较单元6输出2
T1CMP/T1PWM
定时器1比较/PWM输出
T3CMP/T3PWM
定时器3比较/PWM输出
T2CMP/T2PWM
定时器2比较/PWM输出
T4CMP/T4PWM
定时器4比较/PWM输出
TLCKINA
EVA定时器的外部时钟输入
TLCKINB
EVB定时器的外部时钟输入
TDIRA
EVA定时器的计数方向输入
TDIRB
EVB定时器的计数方向输入
2.2.2EV中断
事件管理器中断总共分三组,每组均分别配一个CPU申断(INT2、3和4)。
因为每组中断均有多个中断源所以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响应。
PIE使用中断向量更新PIVR寄存器。
(6)中断软件。
中断软件有两级响应包括GISR和SISR。
2.2.3定时器
每个时间管理模块有两个通用定时器(GP)每个定时器有四种可选操作模式
(1)停止保持模式
此模式操作停止并保持其当前状态定时器的计数器比较输出和预定计数器多保持不变。
(2)连续递增计数模式
此模式GP将按照已定标的输入时钟计数直到定时器计数器的值和周期存储器的值匹配为止。
(3)定向增减技术模式
此模式定时器将根据TDIRA/B引脚的输入对定时器的时钟进行递增和递减计数。
(4)连续增减技术模式
此模式与定向的增减模式一样但是在本模式下引脚TDIRA/B的状态对计数的方向没有影响。
2.2.4比较单元
表2比较单元
EVA模块
EVB模块
设置T1PR
设置T2PR
设置ACTRA
设置ACTRB
设置COMCONA
设置COMCONB
初始化CMPRx
初始化CMPRx
设置T1CON
设置T3CON
3整体设计原理
3.1要求
通过对DSP结构、原理及应用的学习。
在初步了解DSP结构和原理的基础上,进行简单的应用实验,掌握DSP的基本应用。
通过熟悉DSP模板的内部结构以及CCS软件,掌握DSP5416的汇编语言编程和调试方法,了解DSP的指令和I/O端口的寄存器的配置,并结合DSP实验模板对DSP进行编程控制数字输入/输出端口点亮LED显示管。
实验的具体要求如下:
了解串行口8位LED数码管及64键盘智能控制芯片7279A的基本原理;
学习用TMS320C54XDSP芯片控制HD7279A键盘和LED的基本方法和步骤;
实现LED显示管的循环显示:
先第1个LED亮,然后是第2个LED亮,第3个LED显示管亮。
第4个灯亮。
如此循环显示。
3.2实验设备
计算机,CCS5.0版软件,DSP仿真器,实验箱
3.3实验芯片介绍
⑴HD7279A芯片
该芯片是一片具有串行接口的,可同时驱动8位共阴式数码管或64只独立LED的智能显示驱动芯片,该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能,HD7279A内部含有译码器,可直接接受BCD码或16进制码,并同时具有2种译码方式。
此外,还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等。
HD7279A具有片选信号,可方便地实现多于8位的显示或多于64键的键盘接口。
3.4基本原理
指导实验的基本理论是DSP的数字I/O端口以及其寄存器的配置。
通过对这些理论的掌握和运用,达到了解和熟悉一般DSP数字I/O的知识。
(1)数字I/O端口
TMS320C54X系列有两个通用、双向的数字I/O(GPIO)引脚,分别是XF外部标志输出信号和BIO控制分支转移的输入信号,XF主要用于程序向外设传输标志信息,BIO用来监测外部设备的运动状态。
TMS320C54X系列的大多数都可以用来实现其他功能。
数字I/O端口模块采用了一种灵活的方法,以控制专用I/O和复用I/O引脚的功能,所有I/O和复用引脚的功能可以通过9个16位控制寄存器来设置,这些寄存器可以分为两类:
I/O口复用控制寄存器(MCRx):
用来控制选择I/O引脚作为基本功能或一般I/O引脚功能。
数据和方向控制寄存器(PxDATDIR):
当I/O引脚作为一般I/O引脚功能时,用数据和方向控制寄存器可控制数据和I/O引脚的数据方向,这些寄存器直接和I/O引脚相连。
(2)数字I/O端口寄存器
图1给出了TMS320C54X系列I/O端口复用引脚配置简图,从图上可以看出一些寄存器单元的配置对应于实际I/O引脚的内部结构之间的联系。
图1复用引脚配置图
表3中所列的是数字I/O模块可用的寄存器单元,和其他C54X系列外设一样,这些寄存器被存储器映射到数据空间,TMS320C54X的地址总线有16~23条,如5402芯片共有20根,最多可以扩展1兆字外部程序存储空间,其中高4位地址线(A19~A16)受XPC寄存器控制。
寄存器单元中保留的位所是无效的,读时为0,写对它无影响。
表3外部扩展寄存器的地址及说明
分类
名称
地址(I/O空
间)
说明
存储器控制寄存器
Port0
0000h@IO
存储器控制寄存器
看门狗
Port1
0001h@IO
看门狗控制寄存器
A/D
Port2
0002h@IO
A/D数据寄存器
Port3
0003h@IO
A/D通道选择寄存器
Port4
0004h@IO
A/D采集控制寄存器
D/A
Port1000
1000h@IO
DA通道1数据寄存器
Port1001
1001h@IO
DA通道2数据寄存器
Port1002
1002h@IO
DA通道3数据寄存器
Port1003
1003h@IO
DA通道4数据寄存器
Port1004
1004h@IO
DA控制寄存器
USER-LED
Port3002
3002h@IO
LED0..LED7控制寄存器
USER-SW
Port3003
3003h@IO
SW0..SW7控制寄存器
中断控制寄存器
Port3004
3004h@IO
中断控制寄存器
串口控制寄存器
Port2000
2000h@IO
RBR/THR/DLL
Port2001
2001h@IO
IER/DLM
Port2002
2002h@IO
IIR/FCR
Port2003
2003h@IO
LCR
Port2004
2004h@IO
MCR
Port2005
2005h@IO
LSR
Port2006
2006h@IO
MSR
Port2007
2007h@IO
SCR
DSP的I/O口数据和方向寄存器。
TMS320C5416系列总共有6个数据和方向控制寄存器(PxDATADIR),当I/O口用作一般I/O引脚功能时,用数据和方向控制寄存器,可控制数据和到双向I/O引脚的数据方向。
这些寄存器直接和双向I/O引脚相连。
当I/O用作基本功能时,这些寄存器的设置对相应的引脚无影响。
在实时控制系统中,当执行对时间要求很严格的循环程序时,往往不允许外部中断干预,此时,可以用BIO引脚替代中断与外设连接,通过查询此引脚的状态控制程序的流向,以避免中断引起的失控现象。
XF引脚可通过对状态寄存器ST1中的XF位的置位或复位,使该引脚输出高电平或低电平,从而控制外设工作。
通过指令对XF引脚的置位和复位,CPU可向外部设备发出1和0信号,控制外部工作。
4硬件电路设计与软件设计
4.1硬件原理图及说明
⑴供电电路
图2硬件供电电路图
5416开发板即可使用独立的5V/1A开关电源供电,也可使用USB线直接供电,使用方便。
电路部分的1117输出所接的100UF/16V的电容不能省略,这样更好的保证电压的稳定。
⑵显示电路
根据TMS320C5416的数字I/O口复用寄存器和数据、方向寄存器,可应用到LED显示管的点亮上。
因为用发光二极管作为指示是控制系统中常用的方法。
而且接口电路简单,编程方便而且直观。
设计的电路图如图3所示。
图3TMS320C5416与LED显示管相连
⑶LED与按键电路
图4LED与按键电路图
⑷SCI串口通讯电路
图5SCI串口通讯电路图
⑸CAN通讯接口电路
图6CAN通讯接口电路图
4.2软件设计及说明
这里用软件延时的方法来调整发光二极管的延时时间间隔。
当发光二极管被点亮之后,通过改变端口的数据输出,达到点亮不同的LED显示管的目的。
实验要求实现LED显示管的循环显示:
先第1个LED亮,然后是第2个LED亮,第3个LED显示管亮。
第4个灯亮。
如此循环显示。
在给端口赋初值为00000001后,其高8位为00000000;主要是对低8位进行操作。
通过对低8位左移一位再与00000001相或,得到的值通过端口输出,便可以完成00000001……00001111的显示,每改变一次显示的时间间隔是由软件延时控制产生的。
当数据的最高位等于1的时候,根据判断将程序跳转,从11111111开始对数据的操作变为先与01111111B相与,再右移一位,将得到的结果输出。
当输出数据的最低位为0的时候程序跳转,完成了基本功能的一个循环,程序跳到循环开始的地方,即给程序重新赋值为00000001,进行下一轮的循环。
如此即可以实现实验要求的功能。
4.2.1程序所用的DSP的程序空间和寄存器
(一)系统寄存器
包括系统控制和状态寄存器SCSR1,开始地址7018h;
状态寄存器ST0和ST1;
(二)I/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在数据页(Page1)上定义的,地址是从Page1的0060h开始,长度20个字节。
(四)存储空间
图7是定义的程序的存储控件和数据存储空间。
图7TMS320C5416DSP存储器映射图
如图7中所示,程序存储在Page0区,即程序区,起始位置为007Fh,终止位置为FE00h;数据存储在Page1,即数据区,数据区的data0中,LED寄存器的地址从0060h到0061h;DEYH寄存器的地址是从0061h到0062h。
4.2.2程序流程框图
根据设计依据中介绍的算法,进行编程。
主程序的流程图如图8所示:
图8主程序流程图
4.2.3程序重要部分的说明
该程序最重要的部分是通过端口的赋值点亮LED显示管和点亮之后循环显示的过程中的算法运算。
在第2部分基本理论里面已经说了数字I/O口的I/O复用寄存器和数据、方向寄存器。
第3部分讲到了具体的算法。
根据算法产生的数据赋值到端口的数据寄存器上,数据寄存器的数据经过74HC273产生的驱动脉冲驱动输出,当对应的数据位输出为高电平的时候,就点亮所在LED显示管的相应的位置。
同时产生的锁存脉冲使得被点亮的LED灯一直保持点亮的状态,直到软件延时结束之后,DSP将新的数据输送到端口寄存器,端口的数据被刷新,LED显示管的各位的灯就按照程序设计的方式被点亮起来。
算法的重要性体现在灯的循环点亮的过程中,实际上是在每个循环中分为两个部分完成的。
首先由第一个灯被点亮到1、2个被点亮,…,到1-4全部点亮,这个过程是一部分,通过对初始值01H左移后与01H相或,使得二进制初始值中的为1的最后一位不断前移,而且在移动的