.def start .text
Start: STM #x, AR1 RPT #19
MVPD table, *AR1+ ; 程序存储器传送到数据存储器 STM #x, AR2 STM #y, AR3 RPT #19 MVDD *AR2+, *AR3+ ; 数据存储器传送到数据存储器 end: B end .end
/ exp15.cmd*/链接命令 vectors.obj exp15.obj
-o exp15.out -m exp15.map -e start MEMORY {
PAGE 0: EPROM: org=0E000h len=01F80h VECS: org=0FF80h len=00080h PAGE 1:
SPRAM: org=00060h len=00030h DARAM: org=00090h len=01380h }
SECTIONS {
.vectors:> VECS PAGE 0 .text:> EPROM PAGE 0 .data:> EPROM PAGE 0 .bss:> SPRAM PAGE 1 .STACK:> DARAM PAGE 1 }
第六章DSP片内外设 1.定时器的结构及特点
(1)C5402内部有定时器0(20位)和定时器1(20位)两个定时器。每个定时器有3个控制寄存器:①TIM定时器寄存器(减1计数器);②PRD定时器周期寄存器;③TCR定时器控制寄存器。
(2)DSP定时器的主要特点 ①定时器是一个减计数器。
②由16位计数器和4位预分频计数器(共20位)组成。16位计数器的触发脉冲由预分频计数器提供,预分频计数器由CPU工作时钟决定。
③ 有复位功能。④可以选择调试断点时定时器的工作方式。
2.定时器的中断周期 =T?(T?1)?(T?1)
CLKTDDRPRD
3. 定时器初始化:
(1) 将TCR中的TSS位置1,停止定时器。 (2) 加载PRD。
(3) 重新加载TCR以初始化TDDR。
(4) 重新启动定时器。TSS位为0,TRB位为l, 以重载定时器周期值,使能定时器。 4.使能定时器中断(假定INTM=1):
(1) 将IFR中的TINT位置1,清除尚未处理完(挂起)的定时器中断。 (2) 将IMR中的TINT位置l,使能定时器中断。 (3) 可以将ST1中的INTM位清0,使能全局中断。
【例6.1】 利用定时器Timer0在XF引脚产生周期为1s的方波。 分析:设f=100MHz,
定时最大值是: =10(ms), 要输出1s的方波,1和0分别为500ms.
可定时5ms,再在中断程序中加个100计数器, 定时器周期=10ns×(1+9)×(1+49999)=5ms。
CounterSet .set 100 ;定义计数次数 PERIOD .set 49999 ;定义计数周期
.asg AR1,Counter ;AR1做计数指针,重新命名以便识别 STM #CounterSet,Counter ;设计数器初值 STM #0000000000010000B,TCR ;停止计数器
STM #PERIOD,TIM ;给TIM设定初值49999 STM #PERIOD,PRD ;PRD与TIM一样 STM #0000001001101001B,TCR ;开始定时器的工作 STM #0008H,IMR ;开TIME0的中断 RSBX INTM ;开总中断 End: NOP B End
中断服务程序:TINT0_ISR TINT0_ISR:
PSHM ST0 ;保护ST0,因要改变TC
BANZ Next,*Counter- ;计数器不为0,计数器减1,推出中断 STM #CounterSet,Counter ;计数器为0, 根据当前XF的状态, BITF *AR2,#1 ;分别到setXF或ResetXF BC ResetXF,TC
setXF: SSBX XF ;置XF为高 ST #1,*AR2 B Next
ResetXF: RSBX XF ;置XF为低 ST #0, *AR2 Next:
POPM ST0 RETE end
5.串口分为4种:
(1)标准同步串口(SP); (2)带缓冲的串行接口(BSP);
(3)时分复用(TDM)串行口; (4)多通道带缓冲串行接口(McBSP) 6.标准同步串行口(SP) 标准同步串行口是一种高速、全双工同步串行口。每个串行口的发送和接收部分都有独立的时钟、帧同步脉冲以及串行移位寄存器。它由16位数据接收寄存器(DRR)、数据发送寄存器(DXR)、接受移位寄存器(RSR)、发送移位寄存器(XSR)以及控制电路组成。 7.通用I/O引脚
(1) 分支转移控制输入引脚( BIO )
它可以用于监控外部设备的状态。
当时间要求严格时,它代替中断非常有用。
根据它输入的状态可以有条件地执行一个分支转移。 (2)外部标志输出引脚 (XF)
XF可以用来为外部设备提供输出信号; XF引脚由软件控制。
复位时,XF为高电平。 第8章
1.正弦信号发生器的3种基本方法
(1)查表发 (2)泰勒级数展开法 (3)迭代法 2.C54实现FIR滤波器的两种方法
(1)线性缓冲区法 (2)循环缓冲区法
一、单项选择题
1.TMS320C54X DSP软硬件复位时,中断向量为________。 A FF00H B FF80H C 0080H D 0000H 2.TMS320C54X DSP主机接口HPI是________位并行口。 A 32 B 16 C 8 D 2
3. TMS320C54X DSP采用改进的哈佛结构,围绕______条_______位总线建立。 A 8,16 B 16,8 C 8,8 D 16,16
4.TMS320C54XDSP多通道缓冲串口(MCBSP)发送和接收通道数最多可达________路。 A 128 B 64 C 32 D 16
5.TMS320C54X DSP的32个中断源分为14级,其中________级别最高。 A INTR B NMI C RS D INT0
6. TMS320C54X DSP共有129条指令,分为________大类。 A 6 B 5 C 4 D 3
7.TMS320C54X DSP最多可与________个器件进行时分串行通信。 A 16 B 8 C 4 D 2 8.可编程数字信号处理器简称________。
A CPU B DSP C MCS D MCU
二、填空题
1. TMS320C54X DSP共有______种基本的数据寻址方式。
2. DSP实现FIR滤波器延时一个采样周期的方法有两种,一是采用________缓冲区法,二是采用________缓冲区法。
3.DSP技术 (Digital Signal Process)是利用专用或通用数字信号处理芯片,通过________________的方法对信号进行处理。 4.TMS320C54X可编程定时器的定时周期 =(时钟周期)*(定标器+1)*(________________ +1)。
5. TMS320C54X具有两个通用I/O口,________用于输入外设的状态;________用于输出外设的控制信号。
三、判断题
1. TMS320C54X DSP缓冲串行接口是在同步串口基础上,增加了一个自动缓冲单元,主要提供灵活的数据串长度,并降低服务中断销。 ( ) 2.循环缓冲区是一个滑动窗,包含最近的数据,若有新的数据到来,它将覆盖旧的数据。 ( ) 3.浮点DSP与定点DSP相比,价格便宜、功耗较小、运算精度稍低。 ( ) 4.TMS320C54X DSP的40位ALU和累加器,仅支持16位算术运算。 ( ) 5.C5000系列DSP低功耗、大运算量,主要用于便携式信息处理终端产品。 ( )
四、简答题
1.DSP实现FIR滤波器的基本运算有哪些?
2.TMS320C54X DSP片内可编程定时器有哪些主要特征? 3.请简述一下TMS320C54X DSP如何将三个独立的可寻址存储空间区分开,又是通过哪些信号完成对外部程序或数据存储器的访问、I/O设备的访问和控制数据传送方向? 4.链接命令文件CMD的作用是什么?该文件由哪些部分组成?
5. TMS320C54X DSP的串行接口有哪几种类型,它们之间有什么区别?
五、编程题
按下述要求分别编写出TMS320C54X DSP汇编源程序。
1.试编写一段程序,将程序存储器中的5个数据(2,4,6,9,10)首先传送到BUF1开始的5个数据存储器单元,然后将BUF1开始的5个单元内容分别加5后,传送到BUF2开始的单元中。
要求:A 源程序含必要的伪指令; B 加入适当的指令注释。
六、应用题(12分)
用TMS320C5402作为方波发生器实例如下,试分析该程序有哪几部分组成?各部分完成的主要功能?画出程序流程图。 ;源程序清单
;---------------------------------- TIM0 .set 0024H
PRD0 .set 0025H TCR0 .set 0026H
;----------------------------------- t0_flag .usect“vars”, 1 ST #1, t0_flag STM #79, TIM0 STM #79, PRD0 STM #0269H, TCR0
;---------------------------------- STM #0008H, IFR STM #0008H, IMR RSBX INTM
;---------------------------------- …
LOOP: B LOOP
;----------------------------------- timer0_rev: PSHM TRN PSHM T PSHM ST0 PSHM ST1
BITF t0_flag, #1 BC xf_out,NTC SSBX XF ST #0, t0_flag B next
xf_out: RSBX XF ST #1, t0_flag next: POPM ST1 POPM ST0 POPM T POPM TRN RETE