1.TI公司的定点DSP产品主要有 TMS320C2000 系列、TMS320C5000系列和 TMS320C6000 系列。
2.’C54x DSP中传送执行指令所需的地址需要用到 PAB 、CAB、DAB和 EAB 4条地址总线。
3.DSP的内部存储器类型可分为随机存取存储器(RAM)和只读存储器(ROM)。其中RAM又可以分为两种类型:单寻址RAM(SARAM)和双寻址RAM(DARAM)。
4.’C54x DSP的内部总存储空间为192K字,分成3个可选择的存储空间:64K字的程序存储空间 、64K字的数据存储空间和64K字的 I/O空间 。
5.从功能结构上,’C54X DSP的CPU可以划分成 运算部件 和 控制部件 两大部分。
6.’C54x DSP的寻址方式有七种,分别为立即寻址、绝对寻址、累加器寻址、直接寻址、 间接寻址 、存储器映象寄存器寻址、堆栈寻址。
7.在’C54x DSP寻址和指令系统中,Xmem和Ymem表示 16位双寻址 *** 作数 ,Dmad为16位立即数,表示 数据存储器地址 ,Pmad为16位立即数,表示 程序存储器地址 。
8.程序计数器的值可以通过 复位 *** 作 、 顺序执行指令 、 分支转移 ,累加器转移,块重复,子程序调用,从累加器调用子程序,中断等 *** 作改变。
9.’C54x DSP芯片采用了6级流水线的工作方式,即一条指令分为 预取指 、取指、译码、 寻址 、读数和执行6个阶段。
10.解决MMR写 *** 作的流水线冲突时,一般可用采用推荐指令和 插入空 *** 作指令 的方法。
11.’C54x DSP定时器由3个16位存储器映射寄存器组成:定时器寄存器(TIM)、 定时器周期寄存器(PRD)和 定时器控制寄存器(TCR) 。
12. 主机接口(HPI,Host Port Interface) 是TMS320C54x 系列定点芯片内部具有的一种接口部件,主要用于DSP与其他总线或CPU进行通信。
13.’C54x DSP的指令系统有 助记符指令 和 代数指令 两种形式。
14.COFF目标文件中.text段通常包含 可执行代码 ,.data段通常包含己初始化的数据,.bss段中通常为 未初始化的数据 保留空间。
15.DSP芯片的开发工具可以分为 代码生成工具 和 代码调试工具 两类。
二、简答题(每题5分,共20分)
1.什么是定点DSP芯片和浮点DSP芯片?各有什么优缺点?
解:按数据的定点格式工作的DSP芯片称为定点DSP;
按数据的浮点格式工作的DSP芯片称为浮点DSP;
定点DSP的价格便宜,功耗低,但运算精度低;
浮点DSP的价格较高,C语言编程调试方便,运算精度高。
2. 简述流水线 *** 作的基本原理。
解:流水线 *** 作是各指令以机器周期为单位相差一个时钟周期,连续并行工作的情况。其本质是DSP多条总线彼此独立地同时工作,使得同一条指令在不同机器周期内占用不同总线资源。同时,不同指令在同一机器周期内占用不同总线资源。
3. ’C54x DSP有哪些重复 *** 作?各有什么优点?
解:有单条指令重复执行和程序块重复执行两种重复 *** 作。
单条指令重复 *** 作功能,可以使乘法/累加和数据块传送那样的多周期指令在执行一次之后变成单周期指令,大大提高了这些指令的执行速度。
利用块重复 *** 作进行循环,是一种零开销循环。
4. 软件可编程等待状态发生器的功能是什么?
解:软件可编程等待状态产生器可以将外部总线周期扩展到7个机器周期(C549、C5402、C5410和C5420为14个机器周期),这样’C54x DSP可以方便地与慢速的片内存储器和I/O器件接口。
三、问答题(10分)
1. ’C54x DSP的串行口有哪些类型?各有什么特点?
解:有标准同步串口SP、缓冲同步串口BSP、多路缓冲串口McBSP、时分多路同步串口TMD 四种。
缓冲串口(BSP)是一个增强型的标准串口,它由一个全双工双缓冲串口和一个自动缓冲单元(ABU)组成。
由于其中的串行口与标准串口的功能相同,因此在标准模式下,缓冲串口的 *** 作与标准串口的工作方式是一样的。不过无论是标准模式还是自动缓冲模式,BSP都提供了一些增强功能。主要包括了可编程控制的串口时钟、可选择时钟和帧同步信号的正负极性,能够以每帧8位、10位、12位和16位传输数据。通过配置BSP的控制寄存器,BSP还能实现忽略帧同步信号的数据传输。
时分复用串行口TDM采用时分复用技术,将多个外部器件复用与’C54x进行串行通信,每一个时隙对应于其中的1路通信。
TDM可以和外部的多个应用接口实现方便灵活的数据交换。’C54x最多可以和8个外部器件接口通信。
多通道缓冲串口(McBSP)是在缓冲串口的基础上发展起来的增强版。
McBSP具有高速、全双工、可与各种总线标准的器件直接接口等特点,它为DSP使用者在不同方面的应用提供了方便,尤其适合在通信领域的应用。
四、阅读指令并填空(每题5分,共25分)
1.BANZ 2000h, *AR3-
2.CMPR GT, AR3
3.ADD *AR3+, 14, A
4.SUB A, -8, B
5.MPY *AR3+, A
五、程序题(15分)
写出计算 的主要汇编程序,并给程序添加注释,画出程序的流程图。
解:程序及注释:
.bss x, 20给变量x分配20个字单元
.bss y, 1 给变量y分配1个字单元
STM #x, AR1 取x地址
STM #19, AR2设置循环次数
LD#0, A 累加器清零
loop: ADD *AR1+, A 累加x分量
BANZ loop, *AR2- 循环是否结束,没有结束则继续累加
STLA, @y 把结果存入y
流程图:
从这些宏定义可以看到C语言是如何支持硬件编程的。以#define IMR *(volatile unsigned int *)0x0004 为例:
1)0x0004,这个容易理解,是一个十六进制的常数
2)再看(volatile unsigned int *),这是一个强制转换,将0x0004转换成(volatile usigned int *)
3)现在解释volatile usigned int *是什么。* 表示指针(地址),这个指针指向一个 usigned int的数。最前面的volatile有特殊含义:这个指针必须保存在RAM中(不是FLASH或DSP寄存器中)
4)综合上面1)2)3)可知: (volatile unsigned int *)0x0004 的含义是:
0x0004是一个地址,在这个地址内保存的是一个unsigned int 类型的整数。这个地址存在于RAM
5)*(volatile unsigned int *)0x0004 最左边多一个*,表示取地址指向单元的内容。综合起来的意思是:从0x0004地址单元中取出一个usigned int 类型的数据值
6)#define IMR *(volatile unsigned int *)0x0004 的意思是,将从0x0004地址单元中取出一个usigned int 类型的数据值定义为IMR
7)根据DSP硬件,在DSP中RAM中的 0x0004地址单元恰好是中断管理寄存器!
8)绕了半天,#define IMR *(volatile unsigned int *)0x0004 的意思是:在C语言程序中,定义了一个宏标示符 IMR 来表示DSP中的中断管理寄存器。在程序中,可以通过这个宏标示符来使用这个寄存器:
unsigned int v = IMR //取出中断管理寄存器的值并赋给v
要做好有效值运算,必须遵守相关的前提和约束。1、dsp是对数字信号进行处理,因此,先要保证源头的数据的正确性和充分性。首先,电路带宽必须大于信号带宽,其次,采样频率必须满足采样定理要求,至少是信号带宽的2倍以上,建议采用10倍以上。
2、进行方均根运算时,关键在于“均”,也就是必须明白是多少数据的“均”。对于交流信号,严格讲,必须是信号周期的整倍数时间内的采样点的“均”。因此,运算前,必须知道信号的频率(周期)。信号频率除以采样频率再乘以任意自然数都可以作为运算的点数。
3、对于低频信号而言,若运算的信号周期数太大,数据更新时间太长,可设置较少的周期数。对于较高频率的信号,可以设置较多的周期数。
4、对于较高频率的信号,若运算的点数足够多,也就是信号的时间跨度远远大于信号周期,可以不考虑整数倍的问题。
5、有了上述基础,按照计算或设定的运算点数,提取最近采样的相应点数的数据,依次平方、求和、开方,即可得到有效值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)