第1章 数字信号处理概述
1.1 DSP技术概念
ARM与DSP区别:
ARM具有比较强的事务管理功能
DSP主要是用来计算的,优势是强大的数据处理能力和较高的运行速度,适合于一些专业领域的应用
1.2 数字信号处理的优势
- 可控性强
通过改变程序使微处理器实现不同的功能
功能 | 实现方法 |
---|---|
数字滤波器 | 通过改变程序中的系数来实现低通、高通、带通等不同的滤波任务及性能 |
自适应滤波器 | 系统参数随输入信号的改变而改变 |
软件无线电技术 | 在一个统一的以高性能DSP处理器为核心的硬件平台上,加载不同的程序来实现不同工作模式的电台通信 |
虚拟仪器技术 | 是以在同一硬件平台上获取外部采样信号,编写不同的软件来实现传统仪器的测量任务,甚至更为复杂的信号运算、信号产生等功能 |
稳定性好
可重复性好
抗干扰性强
实现自适应算法
数据压缩
大规模集成
-
模拟信号处理不可替代的原因
- 自然界的绝大多数信号都是模拟信号
- 模拟信号处理系统从根本上来说是实时的
- RF信号的处理要由模拟系统来完成
1.3 实时数字信号处理概念
实时指的是系统必须在有限的时间内完成外部输入信号的指定处理,即信号处理速度必须大于等于输入信号更新的速度,而且从信号输入到处理后输出的延迟必须足够的小。
-
音频信号:
采样时钟44.1KHz,字长16bit,数据率为88.2KBps:
实时处理速度至少为88.2KBps:
-
视频信号:
一帧画面512×512点阵,每个像素点用16个色阶表示,当传输速率为30帧/秒时,则数据率15MBps
则实时处理速度至少为15MBps :
通常1080p的画面分辨率为1920×1080,帧率为60Hz,数据率约为250MBps
-
结论:
对实时信号处理素的的要求与原始模拟信号带宽及数据格式(字长、维数)、算法复杂程度等因素时密切相关的。
1.4 实时DSP系统的组成
1.4.1 DSP子系统实现方式
-
通用微计算机
利用统一的平台,编写软件,实现不同的功能。这种方法缺点是速度太慢,不能用于实时系统,只能用于仿真研究。
-
加速处理模块
在通用微机内部加入专用的加速处理模块,微机作为系统控制使用。缺点是不适合嵌入式应用。
-
单片机(MCS51)
单片机采用的是冯•诺依曼总线结构,用它构成的系统比较复杂,尤其是乘法运算速度慢,在运算量大的实时控制系统中很难有所作为。
-
专用DSP芯片
专用DSP芯片可用于FFT、FIR、卷积、相关等高速运算。一般速度较快,但是灵活性较差,而且开发工具不完善。
-
可编程FPGA器件
利用VHDL或是VerilogHDL硬件开发语言,通过软件编程来改变FPGA内部门阵列结构,最终用硬件实现特定数字信号处理算法。这种实现方法具有通用性、并行性,一般作为DSP芯片的协处理器。
-
通用可编程DSP芯片
通用可编程DSP芯片有着更适合于数字信号处理的硬件特点和指令系统,而且其性价比随着微电子的发展不断提高,非常适合实现性能要求高的应用领域。
1.4.2 通用DSPs构成的子系统
- DSP典型系统框图:
- 前向通道示意图:
- 后向通道示意图:
1.4.3 DSP系统典数据处理方式
数据流处理(Stream Processing)
数据是在一个输入样本到达后,就立即开始进行与该样本有关的运算,并在下一个样本到达之前完成。这种在下一个样本输入之前完成上一个样本处理的方法称为数据流处理方式。
例如数字FIR滤波。
特点:每接收一个样本,就做一次新的运算。输入样本周期与输出样本周期保持一致。
优点:其结果是随时更新的。输出样本和其影响的输出结果之间的时延达到理论的最小值。
缺点:要求处理器的速度必须足够高,能在下一个样本到达之前完成所有计算。
块处理(Block Processing)
首先将输入样本存放到存储器中,当L个输入样本都到达以后,才开始处理。这种同时处理多个样本的方法称为块处理技术,也叫帧处理(Frame Processing)。
在块处理技术中,输入样本按组存储,当有足够多的样本到达后,开始处理这个样本块。主要应用在输出采样率小于输入采样率(采用间隔T)的场合,其计算时间限制在LT以内。
譬如傅里叶变换运算。
- 优点:减少频繁读写存储器所带来的额外开销,获得较高处理效率;可以使用较低速度的处理器。
- 缺点:时延以及足够的存储空间。
矢量处理(Vector Processing)
同时处理多路输入/输出信号的方法,称为矢量处理技术。
通常情况下,矢量处理用来计算两个信号之间的相关程度。
1.5 通用DSPs芯片概述
1.5.1 发展历程
-
第一代——20世纪70年代末80年代初
特点:采用了哈佛结构,内部设置硬件乘法器。
-
第二代——20世纪80年代中期
特点:与第一代相比,在功能、速度及内存容量方面有了很大突破,强化完善了指令功能及寻址方式。
-
第三代——20世纪80年代末
特点:高速、多功能、大内存,并能进行32位浮点运算。
-
第四代——20世纪90年代末
特点:
- 支持片内多核或多片并行工作
- 片内海量的存储器,包括Cache
- 增强的DMA控制器
- 丰富的外设及片内资源
- 低功耗,小尺寸
1.5.2 DSP芯片的分类
- 按基础特性分:工作时钟和指令类型
- 按数据格式分:定点和浮点
- 按用途分:通用和专用
定点与浮点DSP芯片
- 定点DSP芯片:数据格式用整数和小数表示结构较简单,MAC速度较快,运算精度低,动态范围小:一般16bit
- 浮点DSP芯片:数据格式用指数和尾数形式表示结构较复杂,主频较低,功耗较高,但运算精度高,动态范围大:32bit
TI公司DSP芯片类别
C2000系列:面向自动控制领域,全部为16位定点DSP。该系列中的一些型号具有片内FLASH RAM,如TMS320F24x, TMS320LF240x等。TI所有DSP中,也只有 C2000有FLASH。作为控制器,C2000系列除了有DSP核以外,还有大量的外设资源,如A/D、定时器、各种串口、WATCHDOG、CAN总线、PWM发生器、数字IO脚等等。
C5000系列:面向通信、信息技术领域,定点低功耗系列,特别适用于手持通讯产品,如手机、PDA、GPS等。目前的处理速度一般在80MIPS一400MIPS。C5000系列主要分为C54xx 和C55xx两个系列。
C6000系列:面向图像、视频等高性能处理场合, 32位的高性能的DSP芯片,目前处理速度从800MIPS-2400MIPS。其中,C62XX为定点系列, C67XX和C64XX为浮点系列。
OMAP系列 :OMAP处理器集成ARM的命令及控制功能,另外还提供DSP 的低功耗实时信号处理能力,最适合移动上网设备和多媒体家电。
Davinci:TMS320DM644x 架构是一款高度集成的片上系统(SoC),集成了数字视频所需的许多外部组件。其主要应用为网络照相机、机顶盒、视频电话、医疗成像等。
C3X系列:浮点系列,非主流产品,VC33仍在广泛使用,但其速度较低,最高在150MIPS,但功耗较低。
1.6 DSPs芯片主要结构特点
1.6.1 哈佛总线结构
-
通用微处理器CPU:冯·诺伊曼总线结构
- 数据、程序空间共享
- 数据、程序总线复用
-
数字信号处理器芯片DSP:哈佛总线结构
数据、程序空间独立
数据、程序总线分离
1.6.2 流水技术
流水技术是将各指令的各个步骤重叠起来执行,即使得若干条指令的不同执行阶段可以处于同一时刻并行处理,这样每一个阶段称作一个流水。
流水技术是提高DSPs程序执行效率的另一个主要手段。
对比非流水指令执行,每一个时刻只执行一条指令的一个执行阶段:
TMS320C62x/64x系列DSP流水线结构:
缩写 | 含义 |
---|---|
PG | 程序地址产生 |
PS | 程序地址发送 |
PW | 程序地址等待 |
PR | 程序取指包接收 |
DP | 指令分配 |
DC | 指令译码 |
E1-E5 | 执行级的5个节拍 |
1.6.3 硬件乘法器和乘-加(MAC)指令
硬件乘法器和乘-加指令可以在单周期内取两个操作数相乘,并将乘积加到累加器里。
硬件乘法器基本结构如下所示:
1.6.4 专用寻址单元
DSPs通常都有支持地址计算的算术单元——地址产生器。地址产生器与ALU并行工作,地址的计算不再额外占用CPU时间。
寻址方式:DSPs的地址产生器一般都支持直接寻址、间接寻址, 完成地址的加减运算,而且有DSPs还能够支持位反转寻址(用于FFT计算)和循环寻址(用于FIR计算)。
1.6.5 独立的直接存储器访问(DMA)总线
DSP处理器为DMA单独设置了完全独立的总线和控制器,在数据传输时不影响CPU及其相关总线的工作。DMA也是多核处理器之间进行数据传输的主要通道。
1.6.6 丰富的外设
- 时钟发生器(振荡器与锁相环PLL)
- 定时器(Timer),看门狗(watchdog)
- 软件可编程等待状态发生器
- 同步串口(SSP)、异步串口(ASP) 、主机接口(HPI)
- JTAG边界扫描逻辑电路(IEEE 1149.1标准)
- CAN总线、PCI总线、以太网接口,接口
- DMA控制器
- ADC
- USB,USB OTG,MMC/SD
- EMIF(DDR2)
1.7 DSP处理器实现高速运算途径
-
硬件乘法器及乘加单元
支持单周期的乘法指令
单周期的乘-加操作(MAC)
-
多个执行单元
片内多个独立单元并行执行
如TMS320C62x/67x片内8个功能单元,指令执行速度最高可8倍于主频
高效的储存器访问
数据格式
-
零开销循环
支持高效的循环操作,在无须花费任何时钟周期的情况下,实现FOR—NEXT循环。往往将这种特性称为“零 开销循环”。
-
数据流的线性I/O
为了达到高性能低成本的输入和输出,大多数DSP处理器都有一个或多个专门的串口或并口,并采用线性的处理机制,例如低开销的中断和DMA,使得数据的传输不影响或尽可能少地影响处理器计算单元的工作。
专门的指令集
1.8 DSP芯片性能指标及选型依据
1.8.1 DSP评价方法
传统性能评价
- MIPS 百万指令每秒 (Millions of Instructions per Second)
- MOPS 百万操作每秒 (Millions of Operations per Second)
- MFLOPS 百万浮点操作每秒 (Millions of Float Operations per Second)
- MACS 乘加次数每秒 (Multiply-Accumulates per Second)
误导:
- 不同处理器的指令所完成的工作是不同的
- 完成同一项算法所需的指令数是不同的
- 存储器的误导
- 芯片数据吞吐量的误导
- 能耗的误导
完整应用评价
-
优点 :
可以完整的评估不同系列DSP芯片完成某一特定应用任务的详细性能指标,包括执行时间、存储器使用、 功耗等指标。
-
缺点:
- 真实的环境难以模拟,评价难以做到公平
- 难以确保不同DSP应用软件的最优
- 评价更依赖于系统而非DSP本身
- 评价系统成本过高
核心算法评价
BDTI (Berkeley Design Technology, Inc.) 提出了一种使用核心算法和应用测试的方法。它是介于过于简单的MIPS类指标和过于复杂的完全基于应用的指标之间的方法。核心算法是构成大多数信号处理系统的基本模块,其中包括FFT、滤波器等。
-
优点:
- 中肯性 :重点关注耗时
- 指标的宽松性:核心算法大小适度,可以规定测试向量的输入和输出要求
- 便于优化:大小适度,可以采用汇编语言,并针对处理器进行优化
- 实现的宽松性:核心算法大小适度,可以在可接受的时间内实现并优化
- BDTI核心算法:
函数 | 描述 | 应用举例 |
---|---|---|
复数块FIR | 复数块有限冲击响应滤波 | 调制解调器的信道均衡 |
实数块FIR | 样本块数据的FIR计算 | 语音处理(G.728语音编码) |
单样本FIR | 实数的单样本FIR计算 | 语音处理,通用滤波 |
LMS自适应FIR | 最小均方根自适应滤波计算 | 信道均衡,线性预测编码 |
IIR | 无限冲击响应滤波计算 | 音频处理,通用滤波 |
向量点积 | 两个向量的点积运算 | 卷积相关、多维信号处理 |
向量和 | 两个向量叠加 | 图形、声音图像信号组合 |
向量最值 | 求向量中最大值 | 纠错编码,块浮点运算 |
Viterbi译码器 | 对卷积编码的数据块译码 | 纠错编码 |
控制 | 转移,压栈,出栈,调用 | 控制代码 |
位解包 | 从数据流中解出不同长度数据 | 语音解压缩,协议处理 |
256点FFT | 时频转换 | 雷达、MPEG压缩、谱分析 |
- BDTI核心算法的统计量
控制指标的优化则在于存储器的使用。
控制代码的大小,基本上决定了片内存储器的大小,从而在很大程度上决定DSP处理器的成本。
-
核心算法执行情况的测量
1.8.2 选型依据
-
速度:
运算速度是DSP处理器一个最重要的性能指标,也是选择DSP处理器主要因素。可以用以下指标来衡量:指令周期,MACS,FFT执行时间,MIPS,MOPS,MFLOPS
-
数据格式和数据宽度:
浮点与定点的选择,字长的选择
-
**芯片资源 **:
片内RAM,ROM,FLASH等储存器的大小,可扩展空间,总线接口,I/O接口,外设资源:比如定时器,DMA,串口,PCI接口,CAN总线接口,网 络接口,硬件译码器,PWM产生器,AD,HPI接口等等
-
开发工具:
开发工具是否完备,开发环境功能是否强大,开发界面是否友好,是否有现成的库函数
-
支持多处理器:
雷达和声纳等高数据率和大运算量的应用系统,往往需要使用多个DSP处理器。多处理器之间的连接是否容易(处理器之间通信电路时间以及成本)和 连接性能成为主要因素
-
功耗与电源管理:
工作电压,休眠与待机模式,外设电源控制
成本
封装形式、质量标准、供货情况、生命周期等等