TMS320VC5402定时器实验
- 格式:doc
- 大小:125.00 KB
- 文档页数:5
基于TMS320C5402的DSP实验开发系统的设计的开题报告一、选题背景及意义随着数字信号处理技术的不断发展,在通信、音视频处理、自动控制等领域中,数字信号处理技术得到了广泛应用。
而DSP(Digital Signal Processor)作为数字信号处理核心部件,其灵活、高效、低功耗等特性,成为数字信号处理领域中最为重要的处理器之一。
本课题选用TMS320C5402作为研究对象,设计并实现一个基于TMS320C5402的DSP实验开发系统。
该系统主要面向高校教学和科研领域,旨在为学生提供更好的教学环境及科研平台,帮助学生更好地理解和应用数字信号处理技术。
二、项目内容1. 系统硬件设计:系统硬件主要包括TMS320C5402核心板和外设扩展板,外设扩展板包括通用输入输出、LCD显示屏、音频输入输出、AD、DA、网络接口等。
2. 系统软件设计:系统软件主要包括DSP板支持库、应用程序开发、数据采集与处理、算法实现等。
其中,算法实现部分将选用经典数字信号处理算法,如FFT、数字滤波器等。
3. 系统测试与评估:通过对系统的性能测试和评估,了解系统实现的效果,并对系统进行改进和优化。
三、研究方法1. 硬件设计:通过原理图设计、PCB设计等方式,设计硬件电路,并进行模拟仿真和实际测试,验证电路设计的正确性。
同时,通过外设扩展板的设计,拓展TMS320C5402的应用范围和功能,提高系统的可拓展性和可复用性。
2. 软件设计:根据系统需求和硬件设计,进行DSP板支持库的开发、应用程序开发、数据采集与处理、算法实现等。
其中,算法实现部分将选取合适的数字信号处理算法,并采用MATLAB等工具进行仿真和算法验证,保证算法的正确性和可行性。
3. 系统测试与评估:通过对系统性能进行测试和评估,了解系统实现的效果,并对系统进行改进和优化。
其中,系统测试包括相关性能指标的测试,如运行速度、稳定性、抗干扰性等;系统的评估则需要将系统与其它类似系统进行对比,并分析出差异所在,并做出改进建议。
TMS320VC5402系列DSP 精品实验数例实验一新手上路]初学者编写的第一个程序通常是控制XF引脚的变化,然后用示波器测量XF脚波形或观察与相接的LED。
这个程序也常常用来测度一下DSP能否正常工作。
实验1.1 最简单的程序:控制XF引脚周期性变化实验目的:通过简单的程序了解DSP程序的结构,熟悉CCS开发环境。
**************************************************************最简单的程序:TestXF1.asm*循环对XF位置1和清0,用示波器可以在XF脚检测到电平高低周期性变化*常用于检测DSP是否工作。
*************************************************************.mmregs ;预定义的寄存器.def CodeStart ;定义程序入口标记.text ;程序区CodeStart: ;程序入口SSBX XF ;XF置1RPT #999 ;重复执行1000次空指令产生延时NOPRSBX XF ;XF清0RPT #999 ;重复执行1000次空指令产生延时NOPB CodeStart ;跳转到程序开头循环执行.endNOP指令执行时间为一个时钟周期,设DSP工作频率是50MHz,可以估算出XF引脚电平的变化频率约为:5 0M/2000=25kHz在没有示波器的情况下,就要将程序1.1稍作改进,增加延时,用一个延时子程序将XF脚电平变化频率降到肉眼可分辨的程度,就可以用LED来显示电平的变化,程序如下:实验1.2 子程序调用实验目的:学习子程序的调用**************************************************************TestXF2.asm*对TestXF1.asm稍作改进,用延时子程序设置较长的延时,*可以用试验板上的LED看到XF引脚电平的变化*************************************************************.mmregs ;预定义的寄存器.def CodeStart ;定义程序入口标记.text ;程序区CodeStart: ;程序入口SSBX XF ;XF置1CALL Delay ;调用延时程序RSBX XF ;XF清0CALL Delay ;调用延时程序B CodeStart ;跳转到程序开头循环执行***************************************************************延时子程序:Delay*用两级减一计数器来延时。
TMS320VC5402定时器实验一、实验目的1. 了解DSP汇编程序与C语言程序的构成;2. 了解DSP程序各段的含义;3. 熟悉如何编写中断服务程序;4. 掌握片内定时器的设置方法;5. 掌握长时间间隔的定时器的处理二、实验内容(要求)1. DSP的初始设置;2. DSP中断向量表的建立;3. 定时器的使用;三、实验原理(背景知识)TMS320VC5402定时器中有一个可编程的片上定时器,总共包含有三个可由用户设置的寄存器,并可以申请主机的中断。
这三个寄存器分别为TIM、PRD、TCR。
时间寄存器(TIM)是一个16 位的存贮器映射寄存器,它的值由周期寄存器来进行装载,并且做减一操作。
周期寄存器(PRD)是一个16 位的存贮器映射寄存器,它是用来重装时间寄存器(TIM)寄存器的值的。
定时器控制寄存器(TCR)是一个16 位的存贮器映射寄存器,包含了定时器的控制与状态信息。
定时器的工作过程:①定时分频系数和周期数分别装入TCD和PRC寄存器中;②每来一个定时脉冲CLKOUT,计数器PSC减1;③当PSC减至0时,PSC产生借位信号;④在PSC的借位信号作用下,TIM减1计数,同时将分频系数装入PSC,重新计数;⑤当TIM减到0时,定时时间到,由借位产生定时中断TINT和定时输出TOUT并将PRD中的时间常数重新装入TIM。
定时器的定时时间为:定时周期= CLKOUT×(TDDR+1)×(PRD+1)程序框图如下:开开开开开CLKMD= 47FFh PMST=00A0h t0_count=250开开开INTM=1TCR=0010h PRD=270Fh TCR=0669h开timer0开开IFR=8IMR=8INTM=0timer0开开开开开开开开YN开开t0_count=t0_count-1to_count=0t0_count=250XF=0XF=1XF=0Y NYN开开四 、实验步骤1、打开CCS ,并设置好相对应的参数,显示硬件连接成功后,编写主函数。
实验二DSP系统定时器的使用一、实验目的:1、掌握5402 DSP片上定时器的初始化设置及应用;2、掌握DSP系统中实现定时的原理及方法;3、了解5402 DSP中断寄存器IMR、IFR的结构和使用;4、掌握5402 DSP系统中断的初始化设置过程和方法;5、掌握在C语言中嵌入汇编语句实现数字I/O的方法。
二、实验原理:1、定时器及其初始化在5402内部包括两个完全相同的定时器:定时器0和定时器1。
每个定时器分别包括3个寄存器:定时器周期寄存器PRD、定时器寄存器TIM、定时器控制寄存器TCR,其中TCR 寄存器中包括定时器分频系数TDDR、定时器预分频计数器PSC两个功能寄存器。
通过PRD 和TDDR可以设置定时器的初始值,TIM(16bits)和PSC(4bits)是用于定时的减法计数器。
CLKOUT是定时器的输入时钟,最大频率为100Mhz。
定时器相当于20bit的减法计数器。
定时器的结构如图1所示。
图1 定时器的组成框图定时器的定时周期为:CLKOUT×(TDDR+1)×(PRD+1)其中,CLKOUT为时钟周期,TDDR和PRD分别为定时器的分频系数和时间常数。
在正常工作情况下,当TIM减到0后,PRD中的时间常数自动地加载到TIM。
当系统复位或者定时器单独复位时,PRD中的时间常数重新加载到TIM。
同样地,每当复位或PSC减到0后,定时器分频系数TDDR自动地加载到PSC。
PSC在CLKOUT作用下,作减1计数。
当PSC 减到0时,产生一个借位信号,令TIM作减l计数。
TIM减到0后,产生定时中断信号TINT,传送至CPU和定时器输出引脚TOUT。
例如:欲设置定时器0的定时周期为1ms,当DSP工作频率为100Mhz时,通过上式计算可得出:TDDR=15,PRD=6520。
2、定时器的使用下面是一段定时器应用程序,每检测到一次中断,ms+1,利用查询方式每计500个数就令XF引脚的电平翻转一次,在XF引脚输出一矩形波信号,因定时器1ms中断一次,故500ms就使LED翻转一次,这样LED指示灯就不停地闪烁。
HPI方式自举在TMS320VC5402 DSP芯片上实现当前,数字信号处理器()芯片以其强大的运算能力在通信、、图像处理等各个领域得到了广泛的应用。
用法DSP的系统可以按处理器用法的数目分为单处理器系统和多处理器系统。
单DSP的系统尽管结构容易,但系统的功能将不行避开地有所限制。
因为DSP的控制功能不是十分强大,在应用中往往不得不把DSP作为目标系统特地负责复杂的运算,而另外用法一个主机(PC机或是)对囫囵系统的运行采取控制。
所以,在用法DSP的多处理器系统中,主机(单片机、PC机、另一个DSP芯片)与目标系统 DSP的数据交换就成为应用系统设计中必需考虑的重要问题。
1 主机接口的传统解决计划解决主机与目标系统的数据交换是一个十分复杂的问题。
传统的方式是采纳 DMA(Direct Memory Access)或全局存储器(Global Memory)完成多机系统中的数据分享。
在DMA方式下,读写分享内存必需要求其它处理器处于停止工作的状态,所以DMA分享存储器的方式往往不为人所用。
全局存储器是多个处理器分享的存储器。
在用法全局存储器的应用系统中,DSP的地址空间被分成局部块(Local Section)和全局块(Global Section)。
局部块用于完成处理器自己的工作,而全局块则用来完成与其它处理器的通信工作。
在TMS320C5X器件中,用法全局存储器分配寄存器GReg完成对全局内存的管理工作。
GReg指定部分DSP内存为全局内存。
比如,TMS320C5x器件能够分配全局数据内存空间,并通过BR(Bus Request)和 hcs控制信号实现与该内存的通信。
当需要寻址全局内存空间时,BR和hcs信号变低电平。
于是外部规律举行全局内存控制权的裁决,裁决的结果将通过选通信号通知某个TMS320C5x 从而使该DSP现在就拥有对全局内存的控制权。
明显,用法全局内存的方式来完成多DSP的分享数据通信是十分便利的。
摘要本课程设计的主要目的是熟悉CCS集成开发环境。
然后在CCS环境下实现基于TMS320VC5402芯片的语音采集压缩与存储和回放。
本课程设计首先采用A/D转换器从MIC输入口实行语音信号采集,进行压缩后存储到DSP的片内和片外RAM存储器中,等到存储器存满之后,使用DSP实行解压缩,并从SPEAKER输出口进行回放输出,并且用指示灯对语音存储和回放过程进行指示。
关键词:CCS;DSP;采集;压缩;存储与回放;Ⅰ第1章引言随着信息技术革命的深入和计算机技术的飞速发展,数字信号处理技术已经逐渐发展成为一门关键的技术学科。
而DSP芯片的出现则为数字信号处理算法的实现提供了可能。
这一方面极大地促进了数字信号处理技术的进一步发展;另一方面,它也使数字信号处理的应用领域得到了极大的拓展。
在国外DSP芯片已经被广泛地应用于当今技术革命的各个领域;在我国,DSP技术也正以极快的速度被应用到科技和国民经济的各个领域。
目前,在微电子技术发展的带动下,DSP芯片的发展日新月异,DSP的功能日益强大,性能价格比不断上升,开发手段不断改进。
DSP芯片已经完全走下了“贵族”的圣坛。
DSP芯片已经在通信与电子系统、信号处理系统、自动控制、雷达、军事、航空航天、医疗、家用电器、电力系统等许多领域中得到了广泛的应用,而且新的应用领域在不断地被发掘。
第2章硬件设计2.1 TMS320VC5402芯片的基本原理TMS320VC5402 数字信号处理器是TI公司为实现低功耗,高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适用于远程通信等实时嵌入式应用的需要。
广泛应用于电子测试、电子设计、模拟仿真、通信工程中。
TMS320VC5402具有的主要优点如下:(1) 围绕一组程序总线、三组数据总线和四组地址总线而建立的改进哈佛结构,提高了系统的多功能性和操作的灵活性。
(2) 具有高度的并行性和专用硬件逻辑的CPU设计,提高了芯片的性能。
SZ-DSP54A型开发教学实验仪实验指导书(教师/学生用)DSP长沙三知电子有限公司2001/11前言随着DSP在中国的普及与发展,越来越多的领域已经应用了DSP 技术。
为了适应这一新的形式,加速培养高素质的DSP专门人才,国内各高等院校除了加强DSP学科的理论教学之外,都纷纷开设DSP 实验课,以提高学生的实际动手能力,加快学生与社会的接轨的时间。
因此我公司首先想联合高校开发DSP实验仪,通过学生对数字信号的学习以及对DSP实验仪的实践,使DSP之花在学校开始发芽。
由于编者水平有限,书中有不当之处再所难免,恳请读者批评指正。
最后,向关心和厚爱“三知”系列产品的广大用户表示忠心感谢!长沙三知电子有限公司二OO一年十一月概述TI(德州仪器半导体公司)生产的数字信号处理器,简称DSP(DIGITAL SIGNAL PROCESSOR)TMS320是包括定点、浮点和处理器在内的数字信号处理器(DSPs)系列,其结构尤其适用于作实时信号处理。
DSP是运算密集型的微处理器。
这使得DSP完成滤波器和FFT算法比一般的事务型处理器快的多。
DSP的另一重要特征是采用改进的哈佛结构,具有独立的数据和地址总线,从而使得处理器指令和数据并行,与冯诺伊曼的结构相比,大大提高了处理效率。
该系列DSP具有以下特点:●灵活的指令系统●灵活的操作性能●高速的性能●改进的哈佛结构●低功耗●很高的性能价格比TMS320系列中的同一代芯片具有相同的CPU结构,但片内存储器和片内外设的配置是不同的。
还有一些派生器件使用了存储器和外设新的组合,以适应不同的需要。
该系统以TI的TMS320C5402的DSP为该实验仪的主体芯片。
54系列DSP 应用改进的哈佛结构,具有三个数据存储总线、一个程序存储总线、两个数据地址产生器和一个程序地址产生器。
这种结构使得可以同时存取数,适合多操作数运算,从而完成同样的功能所需的周期少。
加之54系列指令集还包含几条专用指令,包括:单条指令重复和指令块重复、条件指令、FIR(有限脉冲响应)和LMS(最小均方)滤波器运算指令等。
TMS320VC5402定时器实验
一、实验目的
1. 了解DSP汇编程序与C语言程序的构成;
2. 了解DSP程序各段的含义;
3. 熟悉如何编写中断服务程序;
4. 掌握片内定时器的设置方法;
5. 掌握长时间间隔的定时器的处理
二、实验内容(要求)
1. DSP的初始设置;
2. DSP中断向量表的建立;
3. 定时器的使用;
三、实验原理(背景知识)
TMS320VC5402定时器中有一个可编程的片上定时器,总共包含有三个可由用户设置的寄存器,并可以申请主机的中断。
这三个寄存器分别为TIM、PRD、TCR。
时间寄存器(TIM)是一个16 位的存贮器映射寄存器,它的值由周期寄存器来进行装载,并且做减一操作。
周期寄存器(PRD)是一个16 位的存贮器映射寄存器,它是用来重装时间寄存器(TIM)寄存器的值的。
定时器控制寄存器(TCR)是一个16 位的存贮器映射寄存器,包含了定时器的控制与状态信息。
定时器的工作过程:
①定时分频系数和周期数分别装入TCD和PRC寄存器中;
②每来一个定时脉冲CLKOUT,计数器PSC减1;
③当PSC减至0时,PSC产生借位信号;
④在PSC的借位信号作用下,TIM减1计数,同时将分频系数装入PSC,重新计数;
⑤当TIM减到0时,定时时间到,由借位产生定时中断TINT和定时输出TOUT并将PRD中的时间常数重新装入TIM。
定时器的定时时间为:
定时周期= CLKOUT×(TDDR+1)×(PRD+1)
程序框图如下:
开开
开开开
CLKMD= 47FFh PMST=00A0h t0_count=250
开开开INTM=1
TCR=0010h PRD=270Fh TCR=0669h
开timer0开开
IFR=8IMR=8INTM=0
timer0开开
开开开开开开
Y
N
开开
t0_count=t0_count-1
to_count=0
t0_count=250
XF=0XF=1
XF=0
Y N
Y
N
开开
四 、实验步骤
1、打开CCS ,并设置好相对应的参数,显示硬件连接成功后,编写主函数。
2、主函数中先初始化,然后关中断,设置定时的相对应寄存器,打开中断,等待中断的到来,定时中断服务函数中对输出引脚取反,然后实现了LED 的亮灭变化。
为了改变定时的长度,还引入了按键中断服务,在按键中断服务函数中每按一下健,增加定时的长度。
3、接着编写中断向量表,中断向量表只要和主函数的中断一一对应就行。
4、添加支持c 语言的库函数的头文件,编译,看一下会产生哪些链接文件,然后编写链接文件。
5、编译通过后,下载到板子上,验证是否有逻辑错误,然后进行修改。
五、程序源代码
1、主函数:
#include "timer.h"
int t0_count,coeff;
void main()
{ *CLKMD=0x0000;
while(*CLKMD&0x0001);
*CLKMD=0x47ff;
*PMST=0x00a0;
coeff=1;
t0_count=250*coeff;
asm(" ssbx intm");
//*ST1=*ST1|0x0800; //INTM=1 *TCR=0x0010;
*PRD=9999;
*TIM=9999;
*TCR=0x669;
*IFR=0x0108;
*IMR=0x0108;
asm(" rsbx intm");
//*ST1=*ST1&0xf7ff; //INTM=0; //------------------------------------------- while(1)
{ while(t0_count>0);
t0_count=250*coeff;
if(*ST1&0x2000)
{
*ST1=*ST1&0xDFFF;
}
else
{
*ST1=*ST1|0x2000;
}
}
}
interrupt void timer()
{
t0_count--;
}
interrupt void key_press()
{
coeff++;
if(coeff>5){coeff=1;}
}
2、中断函数:
.ref _c_int00
.ref _timer
.ref _key_press
.sect ".vectors"
rs: BD _c_int00
nop
nop ;Rest
nmi: .space 4*16 ;NMI, SINT16
sint17:.space 4*16 ;SINT17
sint18: .space 4*16 ;SINT18
sint19: .space 4*16 ;SINT19
sint20: .space 4*16 ;SINT20
sint21: .space 4*16 ;SINT21
sint22: .space 4*16 ;SINT22
sint23: .space 4*16 ;SINT23
sint24: .space 4*16 ;SINT24
sint25: .space 4*16 ;SINT25
sint26: .space 4*16 ;SINT26
sint27: .space 4*16 ;SINT27
sint28: .space 4*16 ;SINT28
sint29: .space 4*16 ;SINT29
sint30: .space 4*16 ;SINT30
int0: .space 4*16
int1: .space 4*16 ;INT1, SINT1
int2: .space 4*16 ;INT2, SINT2
tint0: BD _timer
NOP
NOP ;TINT0, SINT3
brint0: .space 4*16 ;BRINT0, SINT4
bxint0: .space 4*16 ;BXINT0, SINT5
dmac0: .space 4*16 ;DMAC0, brint2, SINT6 dmac1: BD _timer ;DMAC1, bxint2, SINT7 nop
nop
int3: BD _key_press ;INT3, SINT8
NOP
NOP
hpint: .space 4*16 ;HPINT, SINT9
brint1: .space 4*16 ;BRINT1 or DMAC2, SINT10 bxint1: .space 4*16 ;BXINT1 or DMAC3, SINT11 dmac4: .space 4*16 ;DMAC4, SINT12
dmac5: .space 4*16 ;DMAC5, SINT13
rsvd1: .space 4*16 ;reserved
rsvd2: .space 4*16 ;reserved
.end
3、链接文件:
MEMORY
{ PAGE 0:RESERVE: origin=00h, length=80h
PAGE 0: VECTOR_RAM: origin=0080h,length=80h
PAGE 0: PROG_RAM: origin=100h,length=0f00h
PAGE 1: DATA_RAM1: origin=1000h,length=500h
PAGE 1: STACK_RAM: origin=1500h,length=100h
}
SECTIONS
{
.vectors:>VECTOR_RAM PAGE 0
.text:>PROG_RAM PAGE 0
.cinit:> PROG_RAM PAGE 0
.bss:> DATA_RAM1 PAGE 1
.stack:>STACK_RAM PAGE 1
}
六、实验结果及体会
实验结果是每次按下按键,亮灭的周期发生了变化,本来是按5次后周期回到最初一样,但有时不用5次,经过老师的解释,中断口通过按键直接连接低电平,有时按一次可能被误判成了几次。
通过这次实验,我更加熟悉了CCS开发环境以及设计运行调试过程,认识到模块的各个工作原理以及三者之间的关系,学会对模块的初始化怎么定义和编写的流程。
使我对DSP产生了浓厚的兴趣,激发了我学习DSP的积极性,从这次实验结果上来说,清晰的结果使我对书本上的知识应用到了实验中,很满足。
最后,感谢老师的耐心指导。