| 设计与应用 |
| 驿站大卖场 |
| 驿站课堂 |
| 代客设计 |
| 服务与支持 |
| 留言本 |
第三讲:DSP芯片的原理与开发应用 之 可编程DSP芯片 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1.3 可编程DSP芯片 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1.3.1 什么是DSP芯片 DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点: (1) 在一个指令周期内可完成一次乘法和一次加法; (2) 程序和数据空间分开,可以同时访问指令和数据; (3) 片内具有快速 RAM,通常可通过独立的数据总线在两块中同时访问; (4) 具有低开销或无开销循环及跳转的硬件支持; (5) 快速的中断处理和硬件I/O支持; (6) 具有在单周期内操作的多个硬件地址产生器; (7) 可以并行执行多个操作; (8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行。 当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1.3.2 DSP芯片的发展 世界上第一个单片 DSP 芯片应当是1978年 AMI公司发布的 S2811,1979年美国Intel公司发布的商用可编程器件2920是DSP芯片的一个主要里程碑。这两种芯片内部都没有现代DSP芯片所必须有的单周期乘法器。1980 年,日本 NEC 公司推出的μP D7720是第一个具有乘法器的商用 DSP 芯片。 在这之后,最成功的DSP 芯片当数美国德州仪器公司(Texas Instruments,简称TI)的一系列产品。TI 公司在1982年成功推出其第一代 DSP 芯片 TMS32010及其系列产品TMS32011、TMS320C10/C14/C15/C16/C17等,之后相继推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS320C30/C31/C32,第四代DSP芯片TMS320C40/C44,第五代 DSP 芯片TMS320C5X/C54X,第二代DSP芯片的改进型TMS320C2XX,集多片DSP芯片于一体的高性能DSP芯片TMS320C8X以及目前速度最快的第六代DSP芯片TMS320C62X/C67X等。TI将常用的DSP芯片归纳为三大系列,即:TMS320C2000系列(包括TMS320C2X/C2XX)、TMS320C5000系列(包括TMS320C5X/C54X/C55X)、TMS320C6000系列(TMS320C62X/C67X)。如今,TI公司的一系列DSP产品已经成为当今世界上最有影响的DSP芯片。TI公司也成为世界上最大的 DSP 芯片供应商,其DSP市场份额占全世界份额近 50%。 第一个采用CMOS工艺生产浮点DSP芯片的是日本的 Hitachi 公司,它于1982年推出了浮点DSP芯片。1983 年 日本Fujitsu 公司推出的MB8764,其指令周期为 120ns,且具有双内部总线,从而使处理吞吐量发生了一个大的飞跃。而第一个高性能浮点DSP芯片应是 AT&T 公司于1984 年推出的DSP32。 与其他公司相比,Motorola 公司在推出 DSP 芯片方面相对较晚。1986年,该公司推出了定点处理器MC56001。1990年,推出了与IEEE 浮点格式兼容的浮点 DSP 芯片 MC96002。 美国模拟器件公司(Analog Devices,简称AD)在DSP芯片市场上也占有一定的份额,相继推出了一系列具有自己特点的DSP芯片,其定点DSP芯片有ADSP2101/2103/2105、ASDP2111/2115、ADSP2161/2162/2164以及ADSP2171/2181,浮点DSP芯片有ADSP21000/21020、ADSP21060/21062等。 自1980年以来,DSP芯片得到了突飞猛进的发展,DSP芯片的应用越来越广泛。从运算速度来看,MAC(一次乘法和一次加法)时间已经从20世纪80年代初的400ns(如TMS32010)降低到10ns以下(如TMS320C54X、TMS320C62X/67X等),处理能力提高了几十倍。DSP芯片内部关键的乘法器部件从1980年的占模片区(die area)的40%左右下降到5%以下,片内RAM数量增加一个数量级以上。从制造工艺来看,1980年采用4μm 的 N沟道MOS(NMOS)工艺,而现在则普遍采用亚微米(Micron)CMOS工艺。DSP芯片的引脚数量从1980年的最多64个增加到现在的200个以上,引脚数量的增加,意味着结构灵活性的增加,如外部存储器的扩展和处理器间的通信等。此外,DSP芯片的发展使DSP系统的成本、体积、重量和功耗都有很大程度的下降。表1.1 是TI公司DSP芯片1982年、1992年、1999年的比较表。表1.2则是世界上主要DSP芯片供应商的代表芯片的一些数据。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表1.1 TI DSP 芯片发展比较表(典型值) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表1.2 单片可编程DSP芯片 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1.3.3 DSP芯片的分类 DSP芯片可以按照下列三种方式进行分类。 1.按基础特性分 这是根据DSP芯片的工作时钟和指令类型来分类的。如果在某时钟频率范围内的任何时钟频率上,DSP芯片都能正常工作,除计算速度有变化外,没有性能的下降,这类DSP芯片一般称为静态DSP芯片。例如,日本OKI 电气公司的DSP芯片、TI公司的TMS320C2XX系列芯片属于这一类。 如果有两种或两种以上的DSP芯片,它们的指令集和相应的机器代码机管脚结构相互兼容,则这类DSP芯片称为一致性DSP芯片。例如,美国TI公司的TMS320C54X就属于这一类。 2.按数据格式分 这是根据DSP芯片工作的数据格式来分类的。数据以定点格式工作的DSP芯片称为定点DSP芯片,如TI公司的TMS320C1X/C2X、TMS320C2XX/C5X、TMS320C54X/C62XX系列,AD公司的ADSP21XX系列,AT&T公司的DSP16/16A,Motolora公司的MC56000等。以浮点格式工作的称为浮点DSP芯片,如TI公司的TMS320C3X/C4X/C8X,AD公司的ADSP21XXX系列,AT&T公司的DSP32/32C,Motolora公司的MC96002等。 不同浮点DSP芯片所采用的浮点格式不完全一样,有的DSP芯片采用自定义的浮点格式,如TMS320C3X,而有的DSP芯片则采用IEEE的标准浮点格式,如Motorola公司的MC96002、FUJITSU公司的MB86232和ZORAN公司的ZR35325等。 3.按用途分 按照DSP的用途来分,可分为通用型DSP芯片和专用型DSP芯片。通用型DSP芯片适合普通的DSP应用,如TI公司的一系列DSP芯片属于通用型DSP芯片。专用DSP芯片是为特定的DSP运算而设计的,更适合特殊的运算,如数字滤波、卷积和FFT,如Motorola公司的DSP56200,Zoran公司的ZR34881,Inmos公司的IMSA100等就属于专用型DSP芯片。 本书主要讨论通用型DSP芯片。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1.3.4 DSP芯片的选择 设计DSP应用系统,选择DSP芯片是非常重要的一个环节。只有选定了DSP芯片,才能进一步设计其外围电路及系统的其他电路。总的来说,DSP芯片的选择应根据实际的应用系统需要而确定。不同的DSP应用系统由于应用场合、应用目的等不尽相同,对DSP芯片的选择也是不同的。一般来说,选择DSP芯片时应考虑到如下诸多因素。 1.DSP芯片的运算速度。运算速度是DSP芯片的一个最重要的性能指标,也是选择DSP芯片时所需要考虑的一个主要因素。DSP芯片的运算速度可以用以下几种性能指标来衡量: (1) 指令周期:即执行一条指令所需的时间,通常以ns(纳秒)为单位。如TMS320LC549-80在主频为80MHz时的指令周期为12.5ns; (2) MAC时间:即一次乘法加上一次加法的时间。大部分DSP芯片可在一个指令周期内完成一次乘法和加法操作,如TMS320LC549-80的MAC时间就是12.5ns; (3) FFT执行时间:即运行一个N点FFT程序所需的时间。由于FFT运算涉及的运算在数字信号处理中很有代表性,因此FFT运算时间常作为衡量DSP芯片运算能力的一个指标; (4) MIPS:即每秒执行百万条指令。如TMS320LC549-80的处理能力为80 MIPS,即每秒可执行八千万条指令; (5) MOPS:即每秒执行百万次操作。如TMS320C40的运算能力为275 MOPS; (6) MFLOPS:即每秒执行百万次浮点操作。如TMS320C31在主频为40MHz时的处理能力为40 MFLOPS; (7) BOPS:即每秒执行十亿次操作。如TMS320C80的处理能力为2 BOPS。 2.DSP芯片的价格。DSP芯片的价格也是选择DSP芯片所需考虑的一个重要因素。如果采用价格昂贵的DSP芯片,即使性能再高,其应用范围肯定会受到一定的限制,尤其是民用产品。因此根据实际系统的应用情况,需确定一个价格适中的DSP芯片。当然,由于DSP芯片发展迅速,DSP芯片的价格往往下降较快,因此在开发阶段选用某种价格稍贵的DSP芯片,等到系统开发完毕,其价格可能已经下降一半甚至更多。 3.DSP芯片的硬件资源。不同的DSP芯片所提供的硬件资源是不相同的,如片内RAM、ROM的数量,外部可扩展的程序和数据空间,总线接口,I/O接口等。即使是同一系列的DSP芯片(如TI的TMS320C54X系列),系列中不同DSP芯片也具有不同的内部硬件资源,可以适应不同的需要。 4.DSP芯片的运算精度。一般的定点DSP芯片的字长为16位,如TMS320系列。但有的公司的定点芯片为24位,如Motorola公司的MC56001等。浮点芯片的字长一般为32位,累加器为40位。 5.DSP芯片的开发工具。在DSP系统的开发过程中,开发工具是必不可少的。如果没有开发工具的支持,要想开发一个复杂的DSP系统几乎是不可能的。如果有功能强大的开发工具的支持,如C语言支持,则开发的时间就会大大缩短。所以,在选择DSP芯片的同时必须注意其开发工具的支持情况,包括软件和硬件的开发工具。 6.DSP芯片的功耗。在某些DSP应用场合,功耗也是一个需要特别注意的问题。如便携式的DSP设备、手持设备、野外应用的DSP设备等都对功耗有特殊的要求。目前,3.3V供电的低功耗高速DSP芯片已大量使用。 7.其他。除了上述因素外,选择DSP芯片还应考虑到封装的形式、质量标准、供货情况、生命周期等。有的DSP芯片可能有DIP、PGA、PLCC、PQFP等多种封装形式。有些DSP系统可能最终要求的是工业级或军用级标准,在选择时就需要注意到所选的芯片是否有工业级或军用级的同类产品。如果所设计的DSP系统不仅仅是一个实验系统,而是需要批量生产并可能有几年甚至十几年的生命周期,那么需要考虑所选的DSP芯片供货情况如何,是否也有同样甚至更长的生命周期等。 在上述诸多因素中,一般而言,定点DSP芯片的价格较便宜,功耗较低,但运算精度稍低。而浮点DSP芯片的优点是运算精度高,且C语言编程调试方便,但价格稍贵,功耗也较大。例如TI的TMS320C2XX/C54X系列属于定点DSP芯片,低功耗和低成本是其主要的特点。而TMS320C3X/C4X/C67X属于浮点DSP芯片,运算精度高,用C语言编程方便,开发周期短,但同时其价格和功耗也相对较高。 DSP应用系统的运算量是确定选用处理能力为多大的DSP芯片的基础。运算量小则可以选用处理能力不是很强的DSP芯片,从而可以降低系统成本。相反,运算量大的DSP系统则必须选用处理能力强的DSP芯片,如果DSP芯片的处理能力达不到系统要求,则必须用多个DSP芯片并行处理。那么如何确定DSP系统的运算量以选择DSP芯片呢?下面我们来考虑两种情况。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1.按样点处理 所谓按样点处理就是DSP算法对每一个输入样点循环一次。数字滤波就是这种情况。在数字滤波器中,通常需要对每一个输入样点计算一次。例如,一个采用LMS算法的256 抽头的自适应FIR滤波器,假定每个抽头的计算需要3个MAC周期,则256抽头计算需要256×3=768个MAC周期。如果采样频率为8kHz,即样点之间的间隔为125us,DSP芯片的MAC周期为200ns,则768个MAC周期需要153.6us的时间,显然无法实时处理,需要选用速度更高的DSP芯片。表1.3示出了两种信号带宽对三种 DSP 芯片的处理要求,三种DSP芯片的MAC周期分别为200ns、50ns和25ns。从表中可以看出,对话带的应用,后两种DSP芯片可以实时实现,对声频应用,只有第三种DSP芯片能够实时处理。当然,在这个例子中,没有考虑其他的运算量。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表1.3 用DSP芯片实现数字滤波 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2.按帧处理 有些数字信号处理算法不是每个输入样点循环一次,而是每隔一定的时间间隔(通常称为帧)循环一次。例如,中低速语音编码算法通常以10ms或20ms为一帧,每隔10ms或20ms语音编码算法循环一次。所以,选择DSP芯片时应该比较一帧内DSP芯片的处理能力和DSP算法的运算量。假设DSP芯片的指令周期为 p(ns),一帧的时间为△t(ns),则该DSP芯片在一帧内所能提供的最大运算量为△t/p条指令。例如TMS320LC549-80的指令周期为12.5ns,设帧长为20ms,则一帧内TMS320LC549-80所能提供的最大运算量为160万条指令。因此,只要语音编码算法的运算量不超过160万条指令,就可以在TMS320LC549-80上实时运行。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1.3.5 DSP芯片的应用 自从20世纪70年代末80年代初DSP芯片诞生以来,DSP芯片得到了飞速的发展。DSP芯片的高速发展,一方面得益于集成电路技术的发展,另一方面也得益于巨大的市场。在近20年时间里,DSP芯片已经在信号处理、通信、雷达等许多领域得到广泛的应用。目前,DSP芯片的价格越来越低,性能价格比日益提高,具有巨大的应用潜力。DSP芯片的应用主要有: (1) 信号处理——如数字滤波、自适应滤波、快速傅立叶变换、相关运算、谱分析、卷积、模式匹配、加窗、波形产生等; (2) 通信——如调制解调器、自适应均衡、数据加密、数据压缩、回波抵消、多路复用、传真、扩频通信、纠错编码、可视电话等; (3) 语音——如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音存储等; (4) 图形/图像——如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等; (5) 军事——如保密通信、雷达处理、声纳处理、导航、导弹制导等; (6) 仪器仪表——如频谱分析、函数发生、锁相环、地震处理等; (7) 自动控制——如引擎控制、声控、自动驾驶、机器人控制、磁盘控制等; (8) 医疗——如助听、超声设备、诊断工具、病人监护等; (9) 家用电器——如高保真音响、音乐合成、音调控制、玩具与游戏、数字电话/电视等。 随着DSP芯片性能价格比的不断提高,可以预见DSP芯片将会在更多的领域内得到更为广泛的应用。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
版主:威特 E-Mail:edadesign@tom.com |