什么是DSP
嵌入式工程师都知道什么是CPU、MCU,还有一位成员——DSP,DSP到底是什么?
DSP概述
DSP(digital signal processor)
是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。其最大特点是内部有专用的硬件乘法器和哈佛总线结构对大量的数字信号处理的速度快。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。
DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。
当今的数字化时代背景下,DSP己成为通信、计算机、消费类电子产品等领域的基础器件。
根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:
- 在一个指令周期内可完成一次乘法和一次加法。
- 程序和数据空间分开,可以同时访问指令和数据。
- 片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。
- 具有低开销或无开销循环及跳转的硬件支持。
- 快速的中断处理和硬件I/O支持。
- 具有在单周期内操作的多个硬件地址产生器。
- 可以并行执行多个操作。
- 支持流水线操作,使取指、译码和执行等操作可以重叠执行。
与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。
DSP 芯片的诞生过程
DSP 芯片的诞生是时代所需。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。在 DSP 芯片出现之前数字信号处理只能依靠微处理器来完成。但由于微处理器较低的处理速度不快,根本就无法满足越来越大的信息量的高速实时要求。
上世纪 70 年代,DSP芯片的理论和算法基础已成熟。但那时的DSP仅仅停留在教科书上,即使是研制出来的 DSP 系统也是由分立元件组成的,其应用领域仅局限于军事、航空航天部门。
- 1978 年, AMI 公司发布世界上第一个单片 DSP 芯片 S2811,但没有现代 DSP芯片所必须有的硬件乘法器;
- 1979 年, 美国 Intel 公司发布的商用可编程器件 2920 是 DSP 芯片的一个主要里程碑,但其依然没有硬件乘法器;
- 1980 年,日本 NEC 公司推出的 MPD7720 是第一个具有硬件乘法器的商用 DSP芯片,从而被认为是第一块单片 DSP 器件;
- 1982 年世界上诞生了第一代 DSP 芯片 TMS32010 及其系列产品。这种 DSP 器件采用微米工艺 NMOS 技术制作,虽功耗和尺寸稍大,但运算速度却比微处理器快了几十倍。
DSP 芯片的问世是个里程碑,它标志着 DSP 应用系统由大型系统向小型化迈进了一大步。至 80 年代中期,随着 CMOS 工艺的 DSP 芯片应运而生,其存储容量和运算速度都得到成倍提高,成为语音处理、图像硬件处理技术的基础。
80 年代后期,第三代 DSP 芯片问世,运算速度进一步提高,其应用范围逐步扩大到通信、计算机领域;
90 年代 DSP 发展最快,相继出现了第四代和第五代 DSP 芯片。第五代与第四代相比系统集成度更高,将 DSP 芯核及外围元件综合集成在单一芯片上。
进入 21 世纪后,第六代 DSP 芯片横空出世。第六代芯片在性能上全面碾压第五代芯片,同时基于商业目的的不同发展出了诸多个性化的分支,并开始逐渐拓展新的领域。
DSP 芯片的应用领域
如今,各种各样的DSP器件已相当丰富。大大小小封装形式的DSP器件,已广泛应用于各种产品的生产领域,而且DSP的应用领域仍在不断地扩大,发展迅速异常。
DSP芯片强调数字信号处理的实时性。DSP作为数字信号处理器将模拟信号转换成数字信号,用于专用处理器的高速实时处理。它具有高速,灵活,可编程,低功耗的界面功能,在图形图像处理,语音处理,信号处理等通信领域起到越来越重要的作用。
根据美国的权威资讯公司统计,目前 DSP 芯片在市场上应用最多的是通信领域,其次是计算机领域。
DSP芯片的应用领域
1)DSP芯片在多媒体通信领域的应用。 媒体数据传输产生的信息量是巨大的,多媒体网络终端在整个过程中需要对获取的信息量进行快速分析和处理,因此 DSP 被运用在语音编码,图像压缩和减少语音通信上。如今 DSP 对于语音解码计算产生实时效果,设计协议要求已经成为最基本的一条国际标准。
2)DSP芯片在工业控制领域的应用。 在工业控制领域, 工业机器人被广泛应用,对机器人控制系统的性能要求也越来越高。机器人控制系统重中之重就是实时性,在完成一个动作的同时会产生较多的数据和计算处理,这里可以采用高性能的 DSP。DSP通过应用到机器人的控制系统后,充分利用自身的实时计算速度特性,使得机器人系统可以快速处理问题,随着不断提高 DSP 数字信号芯片速度,在系统中容易构成并行处理网络,大大提高控制系统的性能,使得机器人系统得到更为广泛的发展。
3)DSP芯片在仪器仪表领域的应用。 DSP 丰富的片内资源可以大大简化仪器仪表的硬件电路,实现仪器仪表的 SOC 设计。器仪表的测量精度和速度是一项重要的指标,使用 DSP 芯片开发产品可使这两项指标大大提高。例如 TI 公司的 TMS320F2810 具有高效的 32 位 CPU 内核,12 位 A/D 转换器,丰富的片上存储器和灵活的指挥系统,为高精密仪器搭建了广阔的平台。高精密仪器现在已经发展成为 DSP 的一个重要应用,正处于快速传播时期,将推动产业的技术创新。
4)DSP芯片在汽车安全与无人驾驶领域的应用。 汽车电子系统日益兴旺发达起来,诸如装设红外线和毫米波雷达,将需用 DSP 进行分析。如今,汽车愈来愈多,防冲撞系统已成为研究热点。而且,利用摄像机拍摄的图像数据需要经过 DSP 处理,才能在驾驶系统里显示出来,供驾驶人员参考。
5)DSP芯片在军事领域的应用。 DSP 的功耗低、体积小、实时性反应速度都是武器装备中特别需要的。如机载空空导弹,在有限的体积内装有红外探测仪和相应的 DSP信号处理器等部分,完成目标的自动锁定与跟踪。先进战斗机上装备的目视瞄准器和步兵个人携带的头盔式微光仪,需用 DSP 技术完成图像的滤波与增强,智能化目标搜索捕获。DSP 技术还用于自动火炮控制、巡航导弹、预警飞机、相控阵天线等雷达数字信号处理中。
未来DSP技术将向以下几个方向继续发展:
1)DSP芯核集成度越来越高。 缩小 DSP 芯片尺寸一直是 DSP 技术的发展趋势,当前使用较多的是基于 RISC 结构,随着新工艺技术的引入,越来越多的制造商开始改进DSP 芯核,并且把多个 DSP 芯核、 MPU 芯核以及外围的电路单元集成在一个芯片上,实现了 DSP 系统级的集成电路。
2)可编程DSP芯片将是未来主导产品。 随着个性化发展的需要, DSP 的可编程化为生产厂商提供了更多灵活性,满足厂家在同一个 DSP 芯片上开发出更多不同型号特征的系列产品,也使得广大用户对于 DSP 的升级换代。例如冰箱、洗衣机,这些原来装有微控制器的家电如今已换成可编程 DSP 来进行大功率电机控制。
3)定点DSP占据主流。 目前,市场上所销售的 DSP 器件中,占据主流产品的依然是16 位的定点可编程 DSP 器件,随着 DSP 定点运算器件成本的不断低,能耗越来越小的优势日渐明显,未来定点 DSP 芯片仍将是市场的主角。
DSP芯片的分类
DSP的芯片可以按照以下的三种方式进行分类。
(1)按基础特性分 这是根据DSP芯片的工作时钟和指令类型来分类的。如果DSP芯片在某时钟频率范围内的任何频率上能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称之为静态DSP芯片。
如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码机管脚结构相互兼容,则这类DSP芯片称之为一致性的DSP芯片。
(2)按数据格式分 这是根据DSP芯片工作的数据格式来分类的。数据以定点格式工作的DSP芯片称之为定点DSP芯片。以浮点格式工作的称为DSP芯片。不同的浮点DSP芯片所采用的浮点格式不完全一样,有的DSP芯片采用自定义的浮点格式,有的DSP芯片则采用IEEE的标准浮点格式。
(3)按用途分 按照DSP芯片的用途来分,可分为通用型DSP芯片和专用型的DSP芯片。通用型DSP芯片适合普通的DSP应用,如TI公司的一系列DSP芯片。专用型DSP芯片为特定的DSP运算而设计,更适合特殊的运算,如数字滤波,卷积和FFT等。
DSP芯片的基本结构
DSP芯片的基本结构包括:
(1)哈佛结构。哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。与两个存储器相对应的是系统中设置了程序总线和数据总线,从而使数据的吞吐率提高了一倍。由于程序和存储器在两个分开的空间中,因此取指和执行能完全重叠。
(2)流水线操作。流水线与哈佛结构相关,DSP芯片广泛采用流水线以减少指令执行的时间,从而增强了处理器的处理能力。处理器可以并行处理二到四条指令,每条指令处于流水线的不同阶段。
(3)专用的硬件乘法器。乘法速度越快,DSP处理器的性能越高。由于具有专用的应用乘法器,乘法可在一个指令周期内完成。
(4)特殊的DSP指令。特殊的DSP指令DSP芯片是采用特殊的指令。
(5)快速的指令周期。快速的指令周期哈佛结构、流水线操作、专用的硬件乘法器、特殊的DSP指令再加上集成电路的优化设计可使DSP芯片的指令周期在200ns以下。
DSP系统的特点、构成和设计过程
数字信号处理系统是以数字信号处理为基础,因此具有数字处理的全部特点:
- 接口方便。DSP系统与其它以现代数字技术为基础的系统或设备都是相互兼容,这样的系统接口以实现某种功能要比模拟系统与这些系统接口要容易的多。
- 编程方便。DSP系统中的可编程DSP芯片可使设计人员在开发过程中灵活方便地对软件进行修改和升级。
- 稳定性好。DSP系统以数字处理为基础,受环境温度以及噪声的影响较小,可靠性高。
- 精度高。16位数字系统可以达到的精度。
- 可重复性好。模拟系统的性能受元器件参数性能变化比较大,而数字系统基本上不受影响,因此数字系统便于测试,调试和大规模生产。
- 集成方便。DSP系统中的数字部件有高度的规范性,便于大规模集成。
DSP系统的设计过程
- 根据需求确定DSP系统的性能指标
- 算法研究及模拟实现和功能验证
- 选择适合的DSP芯片和外围组件
- 软件设计及调试
- 硬件设计及调试
- 系统集成及测试
定点DSP和浮点DSP的区别
一般来说,定点DSP处理器具有速度快,功耗低,价格便宜的特点;而浮点DSP处理器则计算精确,动态范围大,速度快,易于编程,功耗大,价格高。
而它们的区别,还可以从各方面去比较。
- 宏观上
从宏观上讲,浮点DSP比定点DSP的动态范围大得多。定点运算中,程序员必须时刻关注溢出的发生,为了防止溢出,要么不断进行移位定标,要么做截尾。前者耗费大量时间和空间,后者则带来精度的损失。相反,浮点运算DSP扩大了动态范围,提高了精度,节省了运算时间和存储空间,因而大大减少了定标,移位和溢出检查。
- 硬件上
单纯从技术的角度来看,定点与浮点的区别主要在两个方面,即硬件和软件。硬件上的区别来自于:浮点DSP处理器具有浮点/整数乘法器,整数/浮点算术逻辑运算单元ALU,适合存放扩展精度的浮点结果的寄存器等。
- 软件上
再看看在软件开发上的不同之处,主要有浮点DSP编程的特点以及注意事项;定点DSP进行浮点运算时的定标,移位,检测溢出操作。比较两个浮点数时,永远不要使用操作符==来判断是否相等。即使比较两个相同的数,还是可能有微小的舍入差别。甚至定义精确的0,也不是很安全,尽管C语言中有0的表示,永远不要写这样的代码(x==0),而应该写成(fabs(x) < TINY),其中TINY定义为一个很小的值,也就是处理器的浮点格式舍入误差。
- 应用实例
另外一个比较重要区别涉及应用场合对定点与浮点dsp处理器的选择。设计师关心的是最后的系统性能、成本以及上市时间。
例如,在移动电视中,没必要进行浮点处理。而在军用雷达中,经常用到浮点处理器。
DSP芯片的选择依据
- 运算速度
- 运算精度
- 功耗
- 价格
- 硬件资源
- 开发工具