DSP处理器的应用领域很广,但实际上没有一个处理器能完全满足所有的或绝大多数应用需要,设计工程师在选择处理器时需要根据性能、成本、集成度、开发的难易程度以及功耗等因素进行综合考虑。
DSP器件按设计要求可以分为两类。第一类,应用领域为廉价的、大规模嵌入式应用系统,如手机、磁盘驱动(DSP用作伺服电机控制)以及便携式数字音频播放器等。在这些应用中价格和集成度是最重要的考虑因素。对于便携式电池供电的设备,功耗也是一个关键的因素。尽管这些应用常常需要开发运行于DSP的客户应用软件和外围支持硬件,但易于开发的要求仍然是次要的因素,因为批量生产可以分摊开发成本,从而降低单位产品的开发成本。
另外一类是需要用复杂算法对大量数据进行处理的应用,例如声纳探测和地震探测等,也需要用DSP器件。该类设备的批量一般较小、算法要求苛刻、产品很大而且很复杂。所以设计工程师在选择处理器时会尽量选择性能最佳、易于开发并支持多处理器的DSP器件。有时,设计工程师更喜欢选用现成的开发板来开发系统而不是从零开始硬件和软件设计,同时可以采用现成的功能库文件开发应用软件。
在实际设计时应根据具体的应用选择合适的DSP。不同的DSP有不同的特点,适用于不同的应用,在选择时可以遵循以下要点。
DSP开发的简便性
对不同的应用来说,对开发简便性的要求不一样。对于研究和样机的开发,一般要求系统工具能便于开发。而如果公司在开发下一代手机产品,成本是最重要的因素,只要能降低最终产品的成本,一般他们愿意承受很烦琐的开发,采用复杂的开发工具(当然如果大大延迟了产品上市的时间则是另一回事)。
因此选择DSP时需要考虑的因素有软件开发工具(包括汇编、链接、仿真、调试、编译、代码库以及实时操作系统等部分)、硬件工具(开发板和仿真机)和高级工具(例如基于框图的代码生成环境)。利用这些工具的设计过程如图4所示。
选择DSP器件时常有如何实现编程的问题。一般设计工程师选择汇编语言或高级语言(如C或Ada),或两者相结合的办法。现在大部分的DSP程序采用汇编语言,由于编译器产生的汇编代码一般未经最优化,需要手动进行程序优化,降低程序代码大小和使流程更合理,进一步加快程序的执行速度。这样的工作对于消费类电子产品很有意义,因为通过代码的优化能弥补DSP性能的不足。
使用高级语言编译器的设计工程师会发现,浮点DSP编译器的执行效果比定点DSP好,这有几个原因:首先,多数的高级语言本身并不支持小数算法;其次,浮点处理器一般比定点处理器具有更规则的指令,指令限制少,更适合编译器处理;第三,由于浮点处理器支持更大的存储器,能提供足够的空间。编译器产生的代码一般比手动生成的代码更大。
不管是用高级语言还是汇编语言实现编程,都必须注意调试和硬件仿真工具的使用,因为很大一部分的开发时间会花在这里。几乎所有的生产商都提供指令集仿真器,在硬件完成之前,采用指令集仿真器对软件调试很有帮助。如果所用的是高级语言,对高级语言调试器功能进行评估很重要,包括能否与模拟机和/或硬件仿真器一起运行等性能。
大多数DSP销售商提供硬件仿真工具,现在许多处理器具有片上调试/仿真功能,通过采用IEEE1149.1JTAG标准的串行接口访问。该串行接口允许基于扫描的仿真,即程序员通过该接口加载断点,然后通过扫描处理器内部寄存器来查看处理器到达断点后寄存器的内容并进行修改。
很多的生产商都可以提供现成的DSP开发系统板。在硬件没有开发完成之前可用开发板实现软件实时运行调试,这样可以提高最终产品的可制造性。对于一些小批量系统甚至可以用开发板作为最终产品电路板。
支持多处理器
在某些数据计算量很大的应用中,经常要求使用多个DSP处理器。在这种情况下,多处理器互连和互连性能(关于相互间通信流量、开销和时间延迟)成为重要的考虑因素。如ADI的ADSP-2106X系列提供了简化多处理器系统设计的专用硬件。
电源管理和功耗
DSP器件越来越多地应用在便携式产品中,在这些应用中功耗是一个重要的考虑因素,因而DSP生产商尽量在产品内部加入电源管理并降低工作电压以减小系统的功耗。在某些DSP器件中的电源管理功能包括:
a.降低工作电压:许多生产商提供低电压DSP版本(3.3V,2.5V,或1.8V),这种处理器在相同的时钟下功耗远远低于5V供电的同类产品。
b.“休眠”或“空闲”模式:绝大多数处理器具有关断处理器部分时钟的功能,降低功耗。在某些情况下,非屏蔽的中断信号可以将处理器从“休眠”模式下恢复,而在另外一些情况下,只有设定的几个外部中断才能唤醒处理器。有些处理器可以提供不同省电功能和时延的多个“休眠”模式。
c.可编程时钟分频器:某些DSP允许在软件控制下改变处理器时钟,以便在某个特定任务时使用最低时钟频率来降低功耗。
d.外围控制:一些DSP器件允许程序停止系统未用到的外围电路的工作。
不管电源管理特性怎么样,设计工程师要获得优秀的省电设计很困难,因为DSP的功耗随所执行的指令不同而不同。多数生产商所提供的功耗指标为典型值或最大值,而TI公司给出的指标是一个例外,该公司的应用实例中详细地说明了在执行不同指令和不同配置下的功耗。
成本因素
在满足设计要求条件下要尽量使用低成本DSP,即使这种DSP编程难度很大而且灵活性差。在处理器系列中,越便宜的处理器功能越少,片上存储器也越小,性能也比价格高的处理器差。
封装不同的DSP器件价格也存在差别。例如,PQFP和TQFP封装比PGA封装便宜得多。
在考虑到成本时要切记两点。首先,处理器的价格在持续下跌;第二点,价格还依赖于批量,如10,000片的单价可能会比1,000片的单价便宜很多。 |