DSP-5402实验仪说明书.doc
- 文档编号:507485
- 上传时间:2023-04-29
- 格式:DOC
- 页数:63
- 大小:2.02MB
DSP-5402实验仪说明书.doc
《DSP-5402实验仪说明书.doc》由会员分享,可在线阅读,更多相关《DSP-5402实验仪说明书.doc(63页珍藏版)》请在冰点文库上搜索。
WWW.SZDSP.COM
SZ-DSP54A型开发教学实验仪
实验指导书
(教师/学生用)
DSP
长沙三知电子有限公司
2001/11
前言
随着DSP在中国的普及与发展,越来越多的领域已经应用了DSP技术。
为了适应这一新的形式,加速培养高素质的DSP专门人才,国内各高等院校除了加强DSP学科的理论教学之外,都纷纷开设DSP实验课,以提高学生的实际动手能力,加快学生与社会的接轨的时间。
因此我公司首先想联合高校开发DSP实验仪,通过学生对数字信号的学习以及对DSP实验仪的实践,使DSP之花在学校开始发芽。
由于编者水平有限,书中有不当之处再所难免,恳请读者批评指正。
最后,向关心和厚爱“三知”系列产品的广大用户表示忠心感谢!
长沙三知电子有限公司
二OO一年十一月
概述
TI(德州仪器半导体公司)生产的数字信号处理器,简称DSP(DIGITALSIGNALPROCESSOR)TMS320是包括定点、浮点和处理器在内的数字信号处理器(DSPs)系列,其结构尤其适用于作实时信号处理。
DSP是运算密集型的微处理器。
这使得DSP完成滤波器和FFT算法比一般的事务型处理器快的多。
DSP的另一重要特征是采用改进的哈佛结构,具有独立的数据和地址总线,从而使得处理器指令和数据并行,与冯诺伊曼的结构相比,大大提高了处理效率。
该系列DSP具有以下特点:
l灵活的指令系统
l灵活的操作性能
l高速的性能
l改进的哈佛结构
l低功耗
l很高的性能价格比
TMS320系列中的同一代芯片具有相同的CPU结构,但片内存储器和片内外设的配置是不同的。
还有一些派生器件使用了存储器和外设新的组合,以适应不同的需要。
该系统以TI的TMS320C5402的DSP为该实验仪的主体芯片。
54系列DSP应用改进的哈佛结构,具有三个数据存储总线、一个程序存储总线、两个数据地址产生器和一个程序地址产生器。
这种结构使得可以同时存取数,适合多操作数运算,从而完成同样的功能所需的周期少。
加之54系列指令集还包含几条专用指令,包括:
单条指令重复和指令块重复、条件指令、FIR(有限脉冲响应)和LMS(最小均方)滤波器运算指令等。
HPI扩展接口:
8bit,可以与多种处理器相连接。
54系列DSP芯片主要用于:
数字蜂窝式电话、个人数字助理—商务通(PDA)、数字无绳通信、无线数据通信、IP电话等低功耗、多算法的场合,尤其是随着第三代移动通信的到来,无线数据业务的应用,应用54系列DSP这一趋势将会加速。
利用54系列的I/O扩展口进行基本的I/O口操作。
实验目标系统标准配置:
1、TMS320VC5402PGE100芯片一片
2、TL16C550芯片异步串口实验电路
3、同步串口实验电路
4、64K16位RAM
5、A/D、D/A采样芯片TLC320AD50
6、I/O口的扩展电路
7、语音电路
8、CPLD电路
9、HPI接口
10、直流电机、步进电机电路
11、键盘、液晶屏电路
12、数码管、发光二极管电路
第一章系统安装和启动
一、实验系统工作模式
SZ-DSP542A型DSP实验仪只能工作在并口监控模式。
实验仪上没有EEPROM。
1、用户做DSP实验时,将仿真机的的并行电缆插入计算机的打印口,将仿真机的JTAG头插进实验仪的仿真头插座DSP-JTAG上,注意插入如果有误,将不能插入,位置如图下所示。
将电源电缆插入220V交流电压,打开实验仪的电源开关(POWER-SW)至ON,注意POWER-SW只对±5V起开关作用,±12V由电源直接输入。
打开电源,实验仪上的±5V、±12V、3.3V、1.8V灯都应该亮,只要有一个不亮,请立即关闭电源开关,检查连线和电源电压。
2、指示灯正常后,在PC机上运行实验调试软件CCs5000,下载实验程序。
具体操作请参见第二章。
二、插座定义
1、异步串口模块中的232-PORT(左上方)为232接口,将9芯电缆与电脑连接可实现DSP与PC机的数据交换。
2、在语音模块中的语音输出处接入耳机的喇叭线、语音输入处接入耳机的话筒线。
3、在语音模块中的探钩IN为模拟量正极的输入,探钩AGND为模拟量负极的输入,探钩AGND接示波器的地端,探钩OUT接示波器的探头。
4、HPI-INTERFACE为TMS320VC5402的HPI接口(3.3V的电平)。
HPI-INTERFACE
5、同步串行接口SPI-1。
6、CPLD的下载口为CPLD-JTAG1、CPLD-JTAG2。
CPLD-JTAG2CPLD-JTAG1
三、实验仪开关、插座初始状态
1、对位于实验仪左下角的跳线J2,当输入直流模拟信号时应短接1、2脚(左边为1脚),输入交流信号时断开1、2脚。
2、在语音模块中的K1、K2(位于中间偏下)用于音频与模拟通道的切换:
K1为音频信号或模拟量的输入;K2为音频信号或模拟量的输出。
开关初始状态为闸刀向下(打至模拟通道档)时,通道为模拟量的输入、输出;当K1、K2向上时为音频信号状态。
3、在直流电机模块中的K1用于控制直流电机,当K1向上时打开直流电机的控制信号。
4、在电源模块中POWER-SW为电源(+/-5V)开关,当开关打至ON是为开。
5、在LCD模块中的精密电位器T2是用于调节LCD的对比度,出厂前已经设置好,建议不要轻易去调节。
6、在语音模块的T1是用于调节语音通道的偏至电压,出厂前已经设置好,建议不要轻易去调节。
7、CLK1、CLK2、CLK3为DSP的频率跳线(请参考TMS320C5000系列原理说明书),MP/MC为DSP的工作模式。
出厂前已经设置好,建议不要轻易去调节。
8、对于其他的上述未提及到的跳线或插座,是供厂家调试用,请勿调节。
四、DSP对系统各模块的资源的分配
模块名称
地址(I/O空间)
硬件中断
交通灯模块
0x5008h
数码管显示模块
0xB000h
键盘模块扫描入口地址
0xA008h
INT2
步进电机模块
0x1008h
直流电机模块
0xB007h
触发开关(红色按纽)INT-KEY
INT0
串行通信模块
DSP地址线
A4
A5
A6
INT1
16C550地址线
A0
A1
A2
液晶显示模块片选1
0x600xh
写数据
0x6009h
读状态
0x600ah
写命令
0x6008h
液晶显示模块片选2
0x700xh
写数据
0x7009h
读状态
0x700ah
写命令
0x7008h
数码管的段码由数据线的高8位确定,例如:
“0”的段码为0x3F00h;“1”的段码为0x0600h;“2”的段码为0x5B00h;“3”的段码为0x4f00h,依次类推。
数码管的位码由数据线的低3位经过译码产生,例如:
个位的位码为0x0001h,十位的位码为0x0002h,依次类推。
例如要在个位显示“0”,即往地址0xB000h送0x3F01h。
由于位码是经过译码产生且没有所存,因此在显示时应轮回刷新数码管。
直流电机的正反由数据线的D9、D8控制。
例如:
使电机全速正转,则应往地址0xB007h发送0x0200h,若使电机全速反转,则应往地址0xB007h发送0x0100h。
交通灯模块由高8位数据线控制:
南北红灯D9、D11为高,南北黄灯D9、D11、D13、D15为高,南北绿灯D13、D15为高,东西红灯D8、D10为高,东西黄灯由D8、D10、D12、D14为高,东西绿灯D12、D14为高。
第二章5402DSP软件实验
实验一DSP指令实验
实验目的:
了解DSP的结构及管脚功能(请参阅TMS320C5000系列原理说明书)
掌握DSP的基本指令
实验要求:
让学生了解怎样连接对DSP进行简单的编程操作,运算控制等基本汇编语言及算术语言实验测试及除错验证。
实验说明:
DSP指令实验,主要是对54系列DSP一个基本的了解实验,主要是熟悉54系列的语句、了解54系列DSP的基本框架、了解DSP的特征。
该实验所需硬件主要是TMS320C5402DSP芯片,以及发光二极管等有可观性电路。
实验过程是:
让学生了解怎样连接对DSP进行简单的编程操作,运算控制等基本汇编语言及算术语言实验测试及除错验证。
实验步骤:
安装CCS的Simulator方式:
双击桌面上的SetupCCSC5000图标,关闭ImportConfiguration窗口,在SystemConfiguration中的MySystem的下面可看到一个类似板卡的图标,如果该图标的名称是“tisim54x”的话,就可直接关闭该窗口,不存盘退出。
如果该图标的名称不是“tisim54x”的话,在该图标上点击右键,选择remove删除该结构,然后在AvailableBoardTypes中双击“tisim54x”的图标(如果有的话),弹出BoardProperties的对话框点击“next”、“finish”然后关闭CodeComposerSetup窗口,存盘退出即可。
如果在AvailableBoardTypes中没有“tisim54x”的图标,则在右边框内单击“InstallaDeviceDriver”,在路径“c:
\ti\driver\”中打开tisim54x.dvr文件,在AvailableBoardTypes中可看到“tisim54x”的图标,然后按上述操作。
即生成CCS的Simulator方式。
1、以Simulator方式启动CCS,在[Project]-[Open]菜单中打开ex1.mak;
2、在左边树状列表框内双击[Project]展开目录树,双击[ex1.asm]打开源程序文件(或者打开自己编写的程序),参考程序中的注释仔细阅读源程序;
3、在[Project]-[Build]菜单中编译项目文件,编译成功后在下端的状态窗口中显示BuildComplete,0Errors,0Warnings;
4、在[File]-[LoadProgramm]中加载输出执行代码文件ex1.out,此时,反汇编窗口将显示在前端,当前PC指针为0000:
0080(黄色高亮显示),指令代码将以汇编语言方式显示,可以在反汇编窗口中点击鼠标右键,在弹出菜单中选择[Properties]-[Dis-AssemblyOptions]打开反汇编选项对话框,在[Dis-AssemblyStyle]选项中选择[Algebraic],以算术语言方式显示指令代码(注意:
此时可能标号显示异常,按PageUP再按PageDown即可刷新显示);
5、选择[View]-[CPURegisters]-[CPURegister](或点击左边工具栏的快捷按钮)打开处理器映射寄存器窗口;
6、选择[View]-[Memory](或点击左边工具栏的快捷按钮),在弹出的[WindowsMemoryOptions]对话框的Address文本框中输入0x0200,Page下拉框中选中Data,确定后将打开数据存储器查询窗口,此时数据存储器地址0x0200~0x0203将对应ex1.asm中声明的标号DAT0~DAT3;
7、调整[Dis-Assembly][memory][CPURegisters]三个窗口的大小,以便于观察;
8、依次把光标移动到反汇编窗口中标号为bk?
(?
表示从0开始的整数)的标号行下的指令处,选择菜单[Debug]-[Breakpoint](或者点击快捷按钮)设置断点,断点设置后,都将以紫色高亮显示;
9、选择[Debug]-[Run](也可以按快捷键F5或点击快捷按钮)执行程序;
10、程序将在第一个断点bk0处停止,bk0标号下的指令将以半黄半紫高亮显示,在处理器映射寄存器窗口和数据存储器查询窗口中双击相应操作数的内容,即可进行修改(注意:
如步骤6所述,DAT0~DAT3对应地址为0X0200~0X0203),试修改下一条指令操作数的内容,然后按F5执行程序,再在处理器映射寄存器窗口中或数据存储器查询窗口中观察指令执行结果;
11、重复执行9、10步骤,依次观察加法指令、减法指令、乘法指令、除法指令、平方指令以及3数累加宏指令的执行结果;
12、上指令执行完毕后,程序转到bk0处,可再次进行熟悉运算控制的实验。
************************************************;注释,从第一列开始的注释必须
*FileName:
ex1.asm*以*号开头,其它处开始的可用*
*Description:
DSP指令实验*号也可用;号。
************************************************
.title "ex1";在清单页头上打印标题ex1
.mmregs;输入存储器映射寄存器进符号表,即为存储器映射寄存器定义符号名,相当于用.set伪指令为00h~31h的所有存储器映射寄存器定义相应的符号,后面语句可直接使用其符号表示该存储器映射寄存器
.def_c_int00;指定定义在当前模块中可被其它模块使用的一个或多个符号,
DAT0 .SET 60H;给标号DAT0设定值为60h,此值作为数据页的页
内地址(7位二进制代码)
DAT1 .SET 61H
DAT2 .SET 62H
DAT3 .SET 63H
.text;以下指令汇编进.text(可执行代码)段
ADD3 .MACROP1,P2,P3,ADDRP ;三数相加宏定义:
ADDRP=P1+P2+P3,宏名为
ADD3,宏参为P1、P2、P3、ADDRP
LDP1,A;将P1的内容装入累加器A
ADDP2,A;将A中内容跟P2相加,结果存于A中
ADDP3,A;将A中内容跟P3相加,结果存于A中
STLA,ADDRP;将A中40位内容的低16位储存到ADDRP中
.ENDM ;结束宏定义
_c_int00:
;定义标号为_c_int00的代码块
Bstart;无条件转移到标号为start的代码块
start:
LD#004h,DP ;置数据页指针DP,DP为16位地址的高9位,将立即数004h
装载到状态寄存器ST0(06h)的0~8位(DP字段),此时ST0
中的值为ST0=xxx4h,DP=0004h
STM#1000h,SP ;置堆栈指针SP,SP是一16位的特殊功寄存器(18h),用于
存放堆栈指针,此时(SP)=1000h
SSBXINTM ;禁止中断,SSBX是位操作指令,将状态寄存器ST1(07h)
中的中断方式控制位INTM置1用来关闭所有可屏蔽中断
此时INTM=1
bk0:
ST#0012h,DAT0;该行标号为bk0,将立即数0012h储存到由DP(页号9位)
作为高9位和DAT0的值(7位)作为低7位拼接成的16位
地址为0260h(0000001001100000b)的数据存储器
中,此时数据存储器(0260h)=0012h
LD#0023h,A;立即数0023h装载到A中,(A)=0023h
ADDDAT0,A ;加法操作:
A=A+DAT0,将DAT0为页内地址指定的内容(数
值0012h)跟A中的内容(数值0023h)相加,结果(数值0035h)
放在A中,(A)=0035h
NOP;执行以下4条空操作
NOP
NOP
NOP
bk1:
ST#0054h,DAT0;将立即数0054h储存到地址为0260h的数据存储器中,此时
(0260h)=0054h
LD#0002h,A;将立即数0002h装载到A中,(A)=0002h
SUBDAT0,A ;减法操作:
A=A-DAT0,(A)=FFFFFFAEh
因A=2h-54h,即00000002+FFFFFFFACh
NOP
NOP
NOP
NOP
bk2:
ST#0345h,DAT0;(DAT0)=(0260h)=0345h
STM#0002h,T;将立即数0002h储存到(存储器映象寄存器)暂存寄存器T
(0Eh)中,T=0002h
MPYDAT0,A ;乘法操作:
A=DAT0*T,将T寄存器的值跟DAT0指定的值相乘(0002h*0345h=068Ah),并将结果放在A中,(A)=00000068Ah
NOP
NOP
NOP
NOP
;无符号除法操作:
DAT0÷DAT1;结果:
DAT2:
商;DAT3:
余数
bk3:
ST#1000h,DAT0;(DAT0)=(0260h)=1000h
ST#0041h,DAT1;(DAT1)=(0261h)=0041h
RSBXSXM ;复位SXM,SXM是(位于ST1中的)符号扩展方式控制位,
SXM=1表示数据进入ALU之前进行符号位扩展(高的空位填
符号值),SXM=0表示不进行符号位扩展(高的空位填0),此
处进行符号位扩展(由于是正数,故高的空位填0)
LDDAT0,A;(A)=(DAT0)=0000001000h
RPT#15;单指令循环,表示紧跟其后的一条语句重复执行15次
SUBCDAT1,A;将DAT1的内容(0000000041h)左移15位(0000208000h),
再将A中的内容减去DAT1左移15位后的内容
(0000001000h-0000208000h<0),所得结果的第31位作为符
号位,若该位为1,则A中原来的内容左移1位右边补0存入
A中,说明不够除,继续第二次(0000002000h-0000208000h<0),
则A中内容为(0000004000h),重复进行,直到第十次
(0000400000h-0000208000h>0)开始,将相减后的值左移1
位并加1存于A中,直到第十五次完成。
SUBC是有条件减
法指令,语法为:
SUBCSmem,src其功能为:
If(src-Smem<<15)≥0src=(src-Smem<<15)<<1+1
Elsesrc=src<<1
STLA,DAT2;将A累加器中的低16位(商003Fh)储存到DAT2所指定的
数据存储器单元(地址为DP+DAT2=0262h),(0262h)=003Fh
STHA,DAT3;将A累加器中的高16位(余数0001h)储存到DAT3所指定
的数据存储器单元(地址为DP+DAT3=0263h),(0263h)=0001h
NOP
NOP
NOP
NOP
;平方操作:
A=DAT0*DAT0
bk4:
ST#0333h,DAT0;(DAT0)=(0260h)=0333h
SQURDAT0,A ;操作数的平方,A=DAT0*DAT0=A3C29h
NOP
NOP
NOP
NOP
;三数相加操作:
DAT3=DAT0+DAT1+DAT2
bk5:
ST#0034h,DAT0;(DAT0)=(0260h)=0034h
ST#0243h,DAT1;(DAT1)=(0261h)=0243h
ST#1230h,DAT2;(DAT2)=(0262h)=1230h
ADD3DAT0,DAT1,DAT2,DAT3;宏调用,宏参对应关系为P1=(DAT0),
P2=(DAT1),P3=(DAT2),(DAT3)=ADDRP
其宏展开为:
ST#034h,60h;(0260h)=34h
ST#234h,61h;(0261h)=243h
ST#1230h,62h;(0262h)=1230h
LD60h,A;(A)=0034h
ADD61h,A;(A)=0277h
ADD62h,A;(A)=14A7h
STLA,63h;(0263h)=14A7h
NOP
NOP
NOP
NOP
bk6:
Bbk0 ;循环执行,无条件跳转到行标号为bk0处继续往
下执行,该循环为死循环
.end;程序结束
实验二数据存储器和程序存储器实验
实验目的:
了解DSP内部数据存储器和程序存储器的结构
了解DSP指令的几种寻址方式
实验要求:
主要是对外扩数据存储器进行数据的存储、移动。
该实验所需要的硬件主要是DSP、CPLD、DRAM。
实验过程是:
让学生通过CCS5000的DSP仿真器对DSP进行仿真,向DSP外扩DRAM写入数据、读数据、数据块的移动,其操作结果通过CCS5000仿真界面进行观察或通过发光二极管观察其正确性。
实验步骤:
经过了实验一以后,相信各位同学对于CCS的基本操作已经了解,故在此不再赘述。
1、以Simulator方式启动CCS,打开项目文件,编译程序,加载目标代码文件。
2、打开各个观察窗口,值得注意的是,本实验需要打开三个内存窗口:
Data页的0x2000(.data段)起始处、Data页的0x3000(.stack段)起始处、以及Program页的0x1f00起始处
3、按照实验一的步骤设置断点,观察方法也基本相同,下面仅对各个小段程序进行简要说明:
bk0:
通过对XF引脚的置位和复位实现发光二
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 5402 实验 说明书