DSP简介主要内容
1,为什么用 DSP
2,DSP特点
3,DSP的种类
4,TI的 DSP
5,DSP应用领域
6,DSP系统开发步骤
7,DSP知识平台
8.,DSP实验,课程内容
9,教学模式
DSP
Digital Signals Processing 数字信号处理(方法、技术)
Digital Signals Processor 数字信号处理器作为一个案例研究,我们来考虑数字领域里最通常的功能:滤波。简单地说,滤波就是对信号进行处理,以改善其特性。例如,滤波可以从信号里清除噪声或静电干扰,从而改善其信噪比。为什么要用微处理器,而不是模拟器件对信号做滤波呢?
我们来看看其优越性:
模拟滤波器(或者更一般地说,模拟电路)的性能要取决于温度等环境因素。而数字滤波器则基本上不受环境的响。
数字滤波易于在非常小的宽容度内进行复制,因为其性能并不取决于性能已偏离正常值的器件的组合。
一个模拟滤波器一旦制造出来,其特性(例如通带频率范围)是不容易改变的。使用微处理器来实现数字滤波器,就可以通过对其 重新编程 来改变滤波的特性。
信号处理方式的比较比较因素 模拟方式 数字方式修改设计的灵活性 修改硬件设计,
或调整硬件参数改变软件设置 A/D的位数和计算机字长算法精度 元器件精度可靠性和可重复性 受环境温度、湿度、噪声、
电磁场等的干扰和影响大不受这些因素的影响大规模集成 尽管已有一些模拟集成电路,
但品种较少、集成度不高、
价格较高
DSP器件体积小、功能强、功耗小、一致性好、
使用方便、性能 /价格比高实时性 除开电路引入的延时外,处理是实时的由计算机的处理速度决定高频信号的处理 可以处理包括微波毫米波乃至光波信号按照奈准则的要求,
受 S/H,A/D和处理速度的限制一个硬件系统适用于不同的软件数字信号处理的实现
1.在通用的微机上用软件实现。
2.用单片机来实现。
3.利用专门用于信号处理的可编程 DSP来实现。
4.利用特殊用途的 DSP芯片来实现。
5.用 FPGA开发 ASIC芯片实现数字信号处理算法。
6.在通用的计算机系统中使用加速卡来实现。 R
DSP的特点
1,DSP与 MCU的比较
2,DSP特点几种微处理器 Microprocessor
通用处理器( GPP)
采用冯,诺依曼结构,程序和数据的存储空间合二而一
8086/286/386/486/Pentium/Pentium II/
Pentium III Pentium Ⅳ
PowerPc 64-bit CPU( SUN Sparc,DEC Alpha,
HP)
CISC 复杂指令计算机,RISC 精简指令计算机
采取各种方法提高计算速度,提高时钟频率,
高速总线,多级 Cashe,协处理器等
Single Chip Computer/ Micro Controller Unit
( MCU)
除通用 CPU所具有的 ALU和 CU,还有存储器
( RAM/ROM) 寄存器,时钟,计数器,定时器,
串 /并口,有的还有 A/D,D/A
INTEL MCS/48/51/96( 98)
MOTOROLA HCS05/011
DSP
采用哈佛结构,程序和数据分开存储
采用一系列措施保证数字信号的处理速度,如对 FFT的专门优化采用冯,诺依曼结构的处理器采用哈佛结构的 DSP处理器哈佛结构的 指令流的定时关系改进的哈佛结构
DSP典型系统
R
DSP芯片的主要特点
哈佛 (Harvard)结构和改进的哈佛结构
专用的硬件乘法器
指令系统的流水线操作
片内外两级存储结构
特殊的 DSP指令
快速指令周期
DSP的特点
考虑一个数字信号处理的实例,比如有限冲击响应滤波器( FIR)。 用数学语言来说,
FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。
类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了 DSP器件与通用处理器( GPP)
的分流:
1 对密集的乘法运算的支持
GPP不是设计来做密集乘法任务的,即使是一些现代的 GPP,也要求多个指令周期来做一次乘法。而 DSP处理器使用专门的硬件来实现单周期乘法。 DSP处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果 bits的额外
bits来避免溢出。
同时,为了充分体现专门的乘法 -累加硬件的好处,几乎所有的 DSP的指令集都包含有显式的 MAC指令。
2 存储器结构传统上,GPP使用冯,诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,
做一次乘法会发生 4次存储器访问,用掉至少四个指令周期。
大多数 DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的 MAC指令。
还有一个问题,即现在典型的高性能 GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,
两者还是有重要的区别。
GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。与此相反,DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用 DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中。程序员在写程序时,必须保证处理器能够有效地使用其双总线。
此外,DSP处理器几乎都不具备数据高速缓存。
这是因为 DSP的典型数据是数据流。也就是说,DSP
处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。
3 零开销循环
如果了解到 DSP算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的 DSP都有专门的硬件,
用于零开销循环。所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、
条件转移到循环的顶部、将循环计数器减 1。
与此相反,GPP的循环使用软件来实现。某些高性能的 GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。
4 定点计算
大多数 DSP使用定点计算,而不是使用浮点。虽然 DSP的应用必须十分注意数字的精确,
用浮点来做应该容易的多,但是对 DSP来说,
廉价也是非常重要的。定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确,DSP处理器在指令集和硬件方面都支持饱和计算、舍入和移位。
5 专门的寻址方式
DSP处理器往往都支持专门的寻址模式,
它们对通常的信号处理操作和算法是很有用的。
例如,模块(循环)寻址(对实现数字滤波器延时线很有用)、位倒序寻址(对 FFT很有用)。这些非常专门的寻址模式在 GPP中是不常使用的,只有用软件来实现。
6 执行时间的预测
大多数的 DSP应用(如蜂窝电话和调制解调器)
都是严格的实时应用,所有的处理必须在指定的时间内完成。这就要求程序员准确地确定每个样本需要多少处理时间。
如果打算用低成本的 GPP去完成实时信号处理的任务,执行时间的预测大概不会成为什么问题,应为低成本 GPP具有相对直接的结构,比较容易预测执行时间。然而,大多数实时 DSP应用所要求的处理能力是低成本 GPP所不能提供的。
DSP对高性能 GPP的优势在于,即便是使用了高速缓存的 DSP,哪些指令会放进去也是由程序员(而不是处理器)来决定的,因此很容易判断指令是从高速缓存还是从存储器中读取。 DSP一般不使用动态特性,
如转移预测和推理执行等。因此,由一段给定的代码来预测所要求的执行时间是完全直截了当的。从而使程序员得以确定芯片的性能限制。
7 定点 DSP指令集
定点 DSP指令集是按两个目标来设计的:
使处理器能够在每个指令周期内完成多个操作,从而提高每个指令周期的计算效率。
将存贮 DSP程序的存储器空间减到最小(由于存储器对整个系统的成本影响甚大,该问题在对成本敏感的 DSP应用中尤为重要)。
为了实现这些目标,DSP处理器的指令集通常都允许程序员在一个指令内说明若干个并行的操作。例如,在一条指令包含了 MAC操作,
即同时的一个或两个数据移动。在典型的例子里,一条指令就包含了计算 FIR滤波器的一节所需要的所有操作。这种高效率付出的代价是,
其指令集既不直观,也不容易使用(与 GPP的指令集相比)。
GPP的程序通常并不在意处理器的指令集是否容易使用,因为他们一般使用象 C或 C++等高级语言。而对于 DSP的程序员来说,不幸的是主要的
DSP应用程序都是用汇编语言写的(至少部分是汇编语言优化的)。这里有两个理由:首先,大多数广泛使用的高级语言,例如 C,并不适合于描述典型的 DSP算法。其次,DSP结构的复杂性,如多存储器空间、多总线、不规则的指令集、高度专门化的硬件等,使得难于为其编写高效率的编译器。
即便用编译器将 C源代码编译成为 DSP的汇编代码,优化的任务仍然很重。典型的 DSP应用都具有大量计算的要求,并有严格的开销限制,使得程序的优化必不可少(至少是对程序的最关键部分)。因此,考虑选用 DSP的一个关键因素是,是否存在足够的能够较好地适应 DSP处理器指令集的程序员。
8 开发工具的要求因为 DSP应用要求高度优化的代码,大多数 DSP厂商都提供一些开发工具,以帮助程序员完成其优化工作。
例如,大多数厂商都提供处理器的仿真工具,以准确地仿真每个指令周期内处理器的活动。无论对于确保实时操作还是代码的优化,这些都是很有用的工具。
GPP厂商通常并不提供这样的工具,主要是因为
GPP程序员通常并不需要详细到这一层的信息。 GPP
缺乏精确到指令周期的仿真工具,是 DSP应用开发者所面临的的大问题:由于几乎不可能预测高性能 GPP
对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能。
R
DSP的种类
定点与浮点 DSP芯片
通用与专用 DSP芯片
静态 DSP芯片与一致性 DSP 芯片
TI的 DSP系列应用领域数字峰窝通讯、个人通讯系统、个人数据处理、数字无绳电话通讯、无线数据通讯、网络、计算机电话、语音打包传输、便携 Internet音响,Mode、
2G/3G手机、数字照相机,IP电话等等
DSP系统的开发步骤前、后向通道示意图
D
S
P
总体设计框图根据需求写出任务说明书根据任务书确定技术指标
DSP芯片及外围芯片总体设计确定软硬件分工软件设计说明书 硬件设计说明书软件编程与调试 硬件(,sch /,pcb )
系统集成 硬件调试系统测试、样机完成、中试、产品测试与生产软件设计框图硬件系统设计框图确定硬件方案器件选型原理图设计
PCB图设计硬件调试系统分析系统综合
DSP的知识平台
DSP技术计算机 电子计算机硬件 计算机软件 电子线路 数字信号处理教学模式
1,教师指定实验专题,给予简单指导。
2,学生查找资料、设计实验内容。
3,教师核定实验内容、并指导学生完成实验。
4,师生讨论实验内容的相关问题。
5,学生自行完成实验报告。
课程内容
TMS320C54x的硬件结构
TMS320C54x指令系统及软件体系
CCS( Code Composer System)应用
EVM评估板的使用与编程
数字滤波器
自适应滤波
快速傅立叶变换
1,为什么用 DSP
2,DSP特点
3,DSP的种类
4,TI的 DSP
5,DSP应用领域
6,DSP系统开发步骤
7,DSP知识平台
8.,DSP实验,课程内容
9,教学模式
DSP
Digital Signals Processing 数字信号处理(方法、技术)
Digital Signals Processor 数字信号处理器作为一个案例研究,我们来考虑数字领域里最通常的功能:滤波。简单地说,滤波就是对信号进行处理,以改善其特性。例如,滤波可以从信号里清除噪声或静电干扰,从而改善其信噪比。为什么要用微处理器,而不是模拟器件对信号做滤波呢?
我们来看看其优越性:
模拟滤波器(或者更一般地说,模拟电路)的性能要取决于温度等环境因素。而数字滤波器则基本上不受环境的响。
数字滤波易于在非常小的宽容度内进行复制,因为其性能并不取决于性能已偏离正常值的器件的组合。
一个模拟滤波器一旦制造出来,其特性(例如通带频率范围)是不容易改变的。使用微处理器来实现数字滤波器,就可以通过对其 重新编程 来改变滤波的特性。
信号处理方式的比较比较因素 模拟方式 数字方式修改设计的灵活性 修改硬件设计,
或调整硬件参数改变软件设置 A/D的位数和计算机字长算法精度 元器件精度可靠性和可重复性 受环境温度、湿度、噪声、
电磁场等的干扰和影响大不受这些因素的影响大规模集成 尽管已有一些模拟集成电路,
但品种较少、集成度不高、
价格较高
DSP器件体积小、功能强、功耗小、一致性好、
使用方便、性能 /价格比高实时性 除开电路引入的延时外,处理是实时的由计算机的处理速度决定高频信号的处理 可以处理包括微波毫米波乃至光波信号按照奈准则的要求,
受 S/H,A/D和处理速度的限制一个硬件系统适用于不同的软件数字信号处理的实现
1.在通用的微机上用软件实现。
2.用单片机来实现。
3.利用专门用于信号处理的可编程 DSP来实现。
4.利用特殊用途的 DSP芯片来实现。
5.用 FPGA开发 ASIC芯片实现数字信号处理算法。
6.在通用的计算机系统中使用加速卡来实现。 R
DSP的特点
1,DSP与 MCU的比较
2,DSP特点几种微处理器 Microprocessor
通用处理器( GPP)
采用冯,诺依曼结构,程序和数据的存储空间合二而一
8086/286/386/486/Pentium/Pentium II/
Pentium III Pentium Ⅳ
PowerPc 64-bit CPU( SUN Sparc,DEC Alpha,
HP)
CISC 复杂指令计算机,RISC 精简指令计算机
采取各种方法提高计算速度,提高时钟频率,
高速总线,多级 Cashe,协处理器等
Single Chip Computer/ Micro Controller Unit
( MCU)
除通用 CPU所具有的 ALU和 CU,还有存储器
( RAM/ROM) 寄存器,时钟,计数器,定时器,
串 /并口,有的还有 A/D,D/A
INTEL MCS/48/51/96( 98)
MOTOROLA HCS05/011
DSP
采用哈佛结构,程序和数据分开存储
采用一系列措施保证数字信号的处理速度,如对 FFT的专门优化采用冯,诺依曼结构的处理器采用哈佛结构的 DSP处理器哈佛结构的 指令流的定时关系改进的哈佛结构
DSP典型系统
R
DSP芯片的主要特点
哈佛 (Harvard)结构和改进的哈佛结构
专用的硬件乘法器
指令系统的流水线操作
片内外两级存储结构
特殊的 DSP指令
快速指令周期
DSP的特点
考虑一个数字信号处理的实例,比如有限冲击响应滤波器( FIR)。 用数学语言来说,
FIR滤波器是做一系列的点积。取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。
类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了 DSP器件与通用处理器( GPP)
的分流:
1 对密集的乘法运算的支持
GPP不是设计来做密集乘法任务的,即使是一些现代的 GPP,也要求多个指令周期来做一次乘法。而 DSP处理器使用专门的硬件来实现单周期乘法。 DSP处理器还增加了累加器寄存器来处理多个乘积的和。累加器寄存器通常比其他寄存器宽,增加称为结果 bits的额外
bits来避免溢出。
同时,为了充分体现专门的乘法 -累加硬件的好处,几乎所有的 DSP的指令集都包含有显式的 MAC指令。
2 存储器结构传统上,GPP使用冯,诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。通常,
做一次乘法会发生 4次存储器访问,用掉至少四个指令周期。
大多数 DSP采用了哈佛结构,将存储器空间划分成两个,分别存储程序和数据。它们有两组总线连接到处理器核,允许同时对它们进行访问。这种安排将处理器存贮器的带宽加倍,更重要的是同时为处理器核提供数据与指令。在这种布局下,DSP得以实现单周期的 MAC指令。
还有一个问题,即现在典型的高性能 GPP实际上已包含两个片内高速缓存,一个是数据,一个是指令,它们直接连接到处理器核,以加快运行时的访问速度。从物理上说,这种片内的双存储器和总线的结构几乎与哈佛结构的一样了。然而从逻辑上说,
两者还是有重要的区别。
GPP使用控制逻辑来决定哪些数据和指令字存储在片内的高速缓存里,其程序员并不加以指定(也可能根本不知道)。与此相反,DSP使用多个片内存储器和多组总线来保证每个指令周期内存储器的多次访问。在使用 DSP时,程序员要明确地控制哪些数据和指令要存储在片内存储器中。程序员在写程序时,必须保证处理器能够有效地使用其双总线。
此外,DSP处理器几乎都不具备数据高速缓存。
这是因为 DSP的典型数据是数据流。也就是说,DSP
处理器对每个数据样本做计算后,就丢弃了,几乎不再重复使用。
3 零开销循环
如果了解到 DSP算法的一个共同的特点,即大多数的处理时间是花在执行较小的循环上,也就容易理解,为什么大多数的 DSP都有专门的硬件,
用于零开销循环。所谓零开销循环是指处理器在执行循环时,不用花时间去检查循环计数器的值、
条件转移到循环的顶部、将循环计数器减 1。
与此相反,GPP的循环使用软件来实现。某些高性能的 GPP使用转移预报硬件,几乎达到与硬件支持的零开销循环同样的效果。
4 定点计算
大多数 DSP使用定点计算,而不是使用浮点。虽然 DSP的应用必须十分注意数字的精确,
用浮点来做应该容易的多,但是对 DSP来说,
廉价也是非常重要的。定点机器比起相应的浮点机器来要便宜(而且更快)。为了不使用浮点机器而又保证数字的准确,DSP处理器在指令集和硬件方面都支持饱和计算、舍入和移位。
5 专门的寻址方式
DSP处理器往往都支持专门的寻址模式,
它们对通常的信号处理操作和算法是很有用的。
例如,模块(循环)寻址(对实现数字滤波器延时线很有用)、位倒序寻址(对 FFT很有用)。这些非常专门的寻址模式在 GPP中是不常使用的,只有用软件来实现。
6 执行时间的预测
大多数的 DSP应用(如蜂窝电话和调制解调器)
都是严格的实时应用,所有的处理必须在指定的时间内完成。这就要求程序员准确地确定每个样本需要多少处理时间。
如果打算用低成本的 GPP去完成实时信号处理的任务,执行时间的预测大概不会成为什么问题,应为低成本 GPP具有相对直接的结构,比较容易预测执行时间。然而,大多数实时 DSP应用所要求的处理能力是低成本 GPP所不能提供的。
DSP对高性能 GPP的优势在于,即便是使用了高速缓存的 DSP,哪些指令会放进去也是由程序员(而不是处理器)来决定的,因此很容易判断指令是从高速缓存还是从存储器中读取。 DSP一般不使用动态特性,
如转移预测和推理执行等。因此,由一段给定的代码来预测所要求的执行时间是完全直截了当的。从而使程序员得以确定芯片的性能限制。
7 定点 DSP指令集
定点 DSP指令集是按两个目标来设计的:
使处理器能够在每个指令周期内完成多个操作,从而提高每个指令周期的计算效率。
将存贮 DSP程序的存储器空间减到最小(由于存储器对整个系统的成本影响甚大,该问题在对成本敏感的 DSP应用中尤为重要)。
为了实现这些目标,DSP处理器的指令集通常都允许程序员在一个指令内说明若干个并行的操作。例如,在一条指令包含了 MAC操作,
即同时的一个或两个数据移动。在典型的例子里,一条指令就包含了计算 FIR滤波器的一节所需要的所有操作。这种高效率付出的代价是,
其指令集既不直观,也不容易使用(与 GPP的指令集相比)。
GPP的程序通常并不在意处理器的指令集是否容易使用,因为他们一般使用象 C或 C++等高级语言。而对于 DSP的程序员来说,不幸的是主要的
DSP应用程序都是用汇编语言写的(至少部分是汇编语言优化的)。这里有两个理由:首先,大多数广泛使用的高级语言,例如 C,并不适合于描述典型的 DSP算法。其次,DSP结构的复杂性,如多存储器空间、多总线、不规则的指令集、高度专门化的硬件等,使得难于为其编写高效率的编译器。
即便用编译器将 C源代码编译成为 DSP的汇编代码,优化的任务仍然很重。典型的 DSP应用都具有大量计算的要求,并有严格的开销限制,使得程序的优化必不可少(至少是对程序的最关键部分)。因此,考虑选用 DSP的一个关键因素是,是否存在足够的能够较好地适应 DSP处理器指令集的程序员。
8 开发工具的要求因为 DSP应用要求高度优化的代码,大多数 DSP厂商都提供一些开发工具,以帮助程序员完成其优化工作。
例如,大多数厂商都提供处理器的仿真工具,以准确地仿真每个指令周期内处理器的活动。无论对于确保实时操作还是代码的优化,这些都是很有用的工具。
GPP厂商通常并不提供这样的工具,主要是因为
GPP程序员通常并不需要详细到这一层的信息。 GPP
缺乏精确到指令周期的仿真工具,是 DSP应用开发者所面临的的大问题:由于几乎不可能预测高性能 GPP
对于给定任务所需要的周期数,从而无法说明如何去改善代码的性能。
R
DSP的种类
定点与浮点 DSP芯片
通用与专用 DSP芯片
静态 DSP芯片与一致性 DSP 芯片
TI的 DSP系列应用领域数字峰窝通讯、个人通讯系统、个人数据处理、数字无绳电话通讯、无线数据通讯、网络、计算机电话、语音打包传输、便携 Internet音响,Mode、
2G/3G手机、数字照相机,IP电话等等
DSP系统的开发步骤前、后向通道示意图
D
S
P
总体设计框图根据需求写出任务说明书根据任务书确定技术指标
DSP芯片及外围芯片总体设计确定软硬件分工软件设计说明书 硬件设计说明书软件编程与调试 硬件(,sch /,pcb )
系统集成 硬件调试系统测试、样机完成、中试、产品测试与生产软件设计框图硬件系统设计框图确定硬件方案器件选型原理图设计
PCB图设计硬件调试系统分析系统综合
DSP的知识平台
DSP技术计算机 电子计算机硬件 计算机软件 电子线路 数字信号处理教学模式
1,教师指定实验专题,给予简单指导。
2,学生查找资料、设计实验内容。
3,教师核定实验内容、并指导学生完成实验。
4,师生讨论实验内容的相关问题。
5,学生自行完成实验报告。
课程内容
TMS320C54x的硬件结构
TMS320C54x指令系统及软件体系
CCS( Code Composer System)应用
EVM评估板的使用与编程
数字滤波器
自适应滤波
快速傅立叶变换