Dsp复习知识点
1. 最小系统包括?每个模块做什么的?
答:一个DSP系统要能够正常的运行程序完成简单的任务,并能够通过JTAG进行调试,它的
最小系统应该包括:
DSP芯片;
电源 ----加电顺序需求,电源监测需求和功耗分析;
时钟源 ----时钟管理;
复位电路;
JTAG电路;
程序ROM --接口
2. 什么叫定位
答:
连接器将段重定位到目标系统的存储器映射图内,这个功能称为定位(allocation)。
在目标存储器里安置输出段并分配它的地址的过程称为定位。
3. 数字信号中的几种序列?
答:
1、单位采样序列
2、单位阶跃序列
3、实指数序列
4、复指数序列
5、矩形序列
6、正弦序列
7、周期序列
4. C6000的2种寻址方式,地址计算
答:线性方式寻址和循环方式寻址
地址计算emmmmm
5. 目标文件?段
一个COFF目标文件总是包含有3个默认段:
.text段,通常含有可执行代码。
.data段,通常含有初始化数据。
.bss段,通常为未初始化变量预留空间。
段有两种基本类型:
初始化段:含有数据和代码。.text和.data段是初始化段,由汇编伪指令.sect创建的命名段也是初始化段。
未初始化段:为未初始化的数据在存储器映射图内预留空间。.bss是未初始化段,由汇编伪指令.usect创建的命名段也是未初始化段。
6. 流水线技术
7. (大)伪指令memory,sections的语法规则及用法
memory伪指令定义一个目标系统的存储器映像图。用户可以给存储器各部分命名,指定它们的起始地址和长度。 MEMORY 命令的一般语法如下:
MEMORY{
name 1 [( attr )] : origin = constant , length = constant [, fill = constant]
…
name n [( attr )] : origin = constant , length = constant [, fill = constant]}
命令的参数:name 命名一个存储器区域。attr指定与所命名区域相关联的1~4种属性。origin 指定存储器区域的起始地址;length指定存储器区域的长度;fill为存储器区域指定填充字符,以fill或f输入
例:指定一个具有R和W属性的存储器区域,存储器区域的起始地址为0x00000020,长度为0x00001000,填充常数为0x 0FFFFFFFF:
MEMORY
{ RFILE (RW) : o = 0x00000020, l = 0x00001000, f = 0x0FFFFFFFF}
sections伪指令告诉连接器怎样把输入段组合成输出段,以及把输出段放在存储器的什么位置。
SECTIONS伪指令的一般句法如下:
SECTIONS{
name : [property [, property] [, property] . . . ]
…
name : [property [, property] [, property] . . . ]
}
Name:输出段的段名; Property:输出段属性
如果不指定一个SECTIONS伪指令,连接器使用一个默认的组合和分配段的算法。
每一个段定义以段名name开始,段名是段定义的一部分。段名后是一张定义段内容以及段如何定位的属性列表。属性可以由可选的逗号分开。
段可能有以下的属性:
Load allocation;Run allocation;Input sections;Section type;Fill value
8. 连接器给数据段分配的2种地址
答:连接器给每个输出段在目标存储器内分配两个地址:
加载时的地址
和
运行时的地址。
9. C6000的库,运行时支持库,dsp library库
答:运行时支持库包括的内容:
ISO C/C++标准库;
C的I/O库;
提供低级支持函数,实现和主机操作系统的I/O;
内联算术程序;
系统启动程序(_c_int00);
使C/C++程序可以利用特定指令的函数和宏。
当连接程序时,必须设置目标库作为连接器输入文件之一,其中只能连接被调用的I/O和运行时支持库函数。
DSP函数库(DSP Library,DSPLib)提供一些已优化的ANSI C兼容代码函数模块,用于通用信号处理、数学和矢量运算。包括FFT运算、卷积与滤波运算、自适应滤波运算、相关运算、矢量数学运算、三角运算、矩阵运算以及数据类型转换运算等数十个函数模块。
在DSPLIB中,包括下面的7个函数类别:
自适应滤波算法;相关算法;FFT算法;数字滤波和卷积算法;数学函数;矩阵运算;常用函数;
10. 系统设计 上电顺序(外设内核啥的),为什么是这个顺序?--先内核后外设
答:
DSP的一些I/O管脚是双向的,方向由内核控制。
I/O电压一旦被加上后,I/O管脚就立即被驱动,
如果此时还没加核电压,
那么I/O的方向可能就不确定是输入还是输出。
如果是输出,且这时与之相连的其他器件的管脚也处于输出状态,
那么就会造成时序的紊乱或者对器件本身造成损伤。
这种情况下,就需要核电压比I/O电压先加载,至少是同时加载。
为了保证C6000芯片在电源未达到要求的电平时,不会产生不受控制的状态,建议在系统中加入电源监测电路。
11. 常用数字信号处理算法有
算法一、
克服大脉冲干扰的数字滤波法:
1.限幅 滤波法
2.中值 滤波法
3.基于 拉依达准则 的 奇异数据滤波法(剔除粗大误差)
4. 基于 中值数 绝对偏差 的 决策滤波器
算法二、
抑制小幅度高频噪声的平均滤波法:通常采用具有低通特性的线性滤波器
1.算数 平均 滤波法
2.滑动 平均 滤波法
3.加权滑动 平均 滤波法
算法三、复合滤波法
12. (大)对dsp公共资源使用限制的6--7种情况
答:
对dsp指令集:
1,指令和功能单元之间的映射
2,延迟时隙
3,指令操作码映射图
4,并行操作
5,条件操作
6,资源限制
资源对公共指令集的限制:
1,使用 相同功能单元指令 的限制
2,使用 交叉通路 的限制
3,使用 长定点型数据 的限制
4,数据 读写 的限制
5,寄存器 读取 的限制
6,寄存器 写 的限制。
13. 为什么有类型说明符,即typedef ?
答:
使用typedef类型说明符,用户可以自定义数据类型,简化书写,又增加了可读性。
例://将无符号的整型数据定义为Uint32
typedef unsigned int Uint32;
14. Dsp有几个系列
答:TI将常用的dsp分为:TMS320C2000系列,TMS320C5000系列,TMS320C6000系列
TMS320系列,ADSP-21xx系列,SHARC系列,TigerSHARC系列,Blackfin系列
15. 处理器——分类 ,分为哪2类?
答:根据硬件指令系统设计的特点分为
复杂指令集 处理器CISC(Complex Instruction Set Computer) 和
精简指令集 处理器RISC(Reduced Instruction Set Computer)
16. 汇编和C语言两者的比较优劣势
答:
汇编优点:
编译和执行效率高,能够满足实时性要求很高的场合;;易实现严格的时序要求,和DSP硬件配合较好;
缺点:不易学、编程周期长;;可移植性差;;需详细掌握系统的硬件结构细节;
C语言优点:
接近人的思维方式、便于编程、易学易用;;C语言的可移植性好;;不必详细掌握系统硬件结构细节;
缺点:编译、执行效率相对较低( >80%) ;;不如汇编语言紧凑;;不易保证严格的时间要求。
17. 数字信号处理 数字滤波器和传统的有什么优缺点
答:数字滤波器指输入、输出均为数字信号,通过数值运算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。它的优点:精度高;;稳定,适于批量生产;;体积小;;重量轻;;灵活;;不要求阻抗匹配;;可实现特殊的滤波功能
从滤波特性上分为:低通,高通,带通,带阻
从网络结构上分为:IIR滤波器;FIR滤波器
数字滤波器的技术指标:1;幅频特性:表示信号通过该滤波器后各频率成分的衰减情况。2;相频特性:反映各个频率成分通过滤波器后在时间上的延时情况。
一般选频滤波器的技术要求由幅频特性给出,相频特性一般不作要求;但如对输出波形有要求,则需要考虑相频特性的技术指标。
18. C6000中资源 数据通路 大致资源架构
答:C6000文献把在指令执行过程中使用的物理资源统称为数据通路,其中包括执行指令的8个功能单元、通用寄存器组以及CPU与片内数据存储器交换信息所使用的数据总线等。
8个功能单元(.L1,.L2,.S1,.S2,.M1,.M2,.D1,.D2)
两个通用寄存器组(A和B)
2个数据读取通路(LD1和LD2)
2个数据存储通路(ST1和ST2)
2个寄存器组交叉通路(1X和2X)
2个数据寻址通路(DA1和DA2)
19. 奈奎斯特采样定理,怎么采样
答:设连续信号属带限信号,最高截止频率为Ωc,如果采样角频率Ωs>2Ωc,那么让采样信号通过一个增益为T、截止频率为Ωs/2的理想低通滤波器,可以唯一地恢复出原连续信号。否则, Ωs<2Ωc会造成采样信号中的频谱混叠现象,不可能无失真地恢复原连续信号。一般把临界采样频率Ωs min =2Ωc称为奈奎斯特采样频率。
20. (大)序列中 序列之间互相关 (根据图)求序列的卷积
答:(1)相关运算,设有离散信号x(n)和y(n),其线性相关函数为:
上式表示的相关运算,是两数字序列的对应项相乘再相加的运算。式中m表示位移量,m>0表示序列左移,m<0表示右移。
(2)卷积:通过两个函数x和h生成第三个函数y的一种数学算子,表征函数x与h经过翻转和平移的重叠部分的面积。
卷积计算:1.图解法
2.例:已知x(n)和h(n)分别为:和,试求x(n)和h(n)的线性卷积。
解 : 参看下图,分段考虑如下:(1)对于n<0:(2)对于0≤n≤4:(3)对于n>4,且n-6≤0,即4
综合以上结果,y(n)可归纳如下:
21. 存储格式?大段,小端,dsp存储格式有什么特点
Endian表示长数据存储在外部存储器中,每个寻址单元如字节,字访问数据的次序,最常用的是字节次序。高字节先称为大端格式,低字节先称为小端格式。Dsp默认是小端格式。
22. 运算结果溢出,怎么解决
加减运算指令及溢出问题
1、分类
有符号数加减运算指令:
操作数为整型(32位)或长整型(40位)的ADD、SUB指令;
操作数为半字(16位)的ADD2/SUB2指令。
无符号数加减运算指令ADDU、SUBU,操作数为32或40位无符号数;
带饱和的有符号数加减运算指令SADD、SSUB,操作数为32或40位有符号数;
与16位常数进行加法操作的指令ADDK。
2、溢出问题
运算结果超出目的操作数字长所能表示数的范围,造成运算结果的高位丢失。
解决方法3种:
用较长的字长来存放运算结果,使目的操作数字长超出源操作数字长;
用带饱和的加减运算指令做补码数加减运算;
对整个系统乘一个小于1的比例因子,亦即将所有输入的数值减小,以保持运算过程不产生溢出,但该方法会降低计算精度。
3、减法运算举例
以相同的src1和src2做不同的减法指令说明:饱和减法指令与减法指令的差别;保护位防止溢出的作用。
SSUB .L2 B1,B2,B3
4、累加和运算举例
计算累加和的程序,用长型数存放和数,有8位保护位
下述程序在进入loop循环前,已使寄存器A4指向存放数组的基地址,寄存器B1存放欲累加的个数,寄存器组A3:A2用来存放累加和,进入循环前已清零。
loop: LDW .D1 *A4++,A0
NOP 4
ADD .L1 A3:A2,A0,A3:A2
SUB .L2 B1,1,B1
[B1] B .S1 loop
NOP 5
23. 什么叫周期序列,给一个序列证明是周期序列
答:若对所有n存在一个最小的正整数N,满足
则称序列x(n)是周期性序列,周期为N。
例: 因此,x(n)是周期为8的周期序列
一般正弦序列的周期性讨论,,
不是周期序列
24. C6000由三个主要部分组成:核CPU、外设和存储器
CPU,包括:
程序取指单元
指令分配单元
指令译码单元
32个32位寄存器
两个数据通路,每个数据通路4个功能单元
控制寄存器
控制逻辑
测试、仿真和中断逻辑
25. Dsp与通用CPU的优势
答:低成本,体积小,功耗低,对高频信号进行实时处理
通用:庞大的存储系统,先进复杂的操作系统