数字信号处理器(DSP)是专用的处理器,主要功能是高效率地执行信号处理算法。此外,应用中通常还需要执行传统的微控制器代码。为解决这一问题,设计人员通常在系统中同时使用DSP和微控制器。但这样会增加产品的成本。本文介绍了一种新的DSP架构,它非常适合通用DSP算法,同时又可高效率地执行微控制器代码,并且有高效率的编译器性能。
在1980年代早期,通用DSP进入了商用市场。第一代DSP很昂贵,其设计人员不断寻找适合DSP的应用。那时的应用开发过程很长并且需要特殊的技巧。开发人员既需要数字信号处理方面的背景知识,又需要了解如何编程DSP。用于开发的工具是非常原始的,而且几乎所有代码都是用汇编语言编写。在1980年代末,DSP已经成功地应用于一些市场之中,并且逐渐渗透到传统的微控制器市场。此时市场关注的焦点有所变化,客户正在寻找一种更为成熟的产品。
为满足客户的需求,摩托罗拉公司开发了一种新型处理器架构 DSP56800,不仅可提供高效率的DSP处理能力,还可提供高性能的控制功能。
DSP56800系列简介
DSP56800系列基于DSP56800 16位定点DSP微控制器中央处理单元(CPU)内核。DSP56800内核的设计目标是同时提供高效的DSP和控制器运算能力。其指令集效率可与最好的通用DSP架构相媲美,同时还可高效率地完成控制器类型任务的代码执行。通用MCU类型的指令集,再结合其功能强大的寻址模式和位操作指令,使得用户可以立即着手开发编写代码,而不必担心与传统DSP微处理器相关的复杂性。真正的软件栈允许实现无限的中断和子全程嵌套,并提供对传递参数和本地变量的支持。有经验的DSP程序员将会发现一组功能强大的DSP指令集,可实现多种不同的算术运算,而且灵活的单/双存储器移动可与算术运算同时进行。由于DSP56800指令集的通用特点,编译器针对DSP56800架构进行了高效率的优化实施。
围绕DSP56800内核,可以实现不同的存储器配置。同样,在DSP56800内核外围,也可以添加范围广泛的标准外设(图1), 如串行端口、通用定时器、实时和看门狗定时器以及通用输入/输出(GPIO)端口。每种外设都可通过标准外设接口总线连接到DSP内核。这一总线允许方便地挂接标准或定制设计的外设。同时,这一内核还通过一个符合JTAG标准的调试端口提供了片上仿真(OnCE)功能。这样就可以通过5脚JTAG接口,利用OnCE功能进行实时嵌入式系统调试,允许设计人员设置硬件和软件断点、显示和修改寄存器和存储器内容、单步执行指令或者一次执行多条指令。
高性能DSP功能、灵活的存储器并行处理能力、多个内部总线、一个外部总线接口、片上编程和数据存储器、标准外设以及JTAG调试端口,所有这些都使DSP56800系列成为完成实时嵌入式控制任务的理想解决方案。DSP56800系列非常适合需要强大处理能力的无线或有线DSP应用、数字控制和控制器应用。
DSP56800 16位DSP内核架构
DSP56800内核是一款旨在同时提供高效率实时数字信号处理能力和通用计算能力的可编程CMOS 16位DSP内核。DSP56800内核由四个并行执行的功能单元组成,从而可提高处理能力。四个功能单元,包括程序控制器(PC)、地址生成单元(AGU)、数据算术逻辑单元(Data
ALU)和位运算单元,每个都包括自己的寄存器组和控制逻辑,因此它们可独立地并行工作。每一功能单元都通过内核的内部地址和数据总线与其它单元、存储器和存储器映射外设相连接。因此,可以做到程序控制器抓取第一条指令,地址生成单元(AGU)为第二条指令生成多达两个地址,而Data
ALU则在第三条指令完成一次乘法运算。同样,在上述的第三条指令中,也可以是用位运算单元代替Data ALU单元完成一次操作。DSP56800内核架构是流水线式的,因此可充分利用并行执行的功能单元,从而大大减少每条指令的执行时间。
图2示出了DSP56800 内核的主要部件,包括:
●数据算术逻辑单元(Data ALU)
●地址生成单元(AGU)
●程序控制器和硬件循环单元
●位运算单元
●三个内部地址总线
●四个内部数据总线
●OnCE 调试端口
●时钟生成电路
DSP56800内核架构是流水线式的,并且针对高效DSP处理、紧凑的DSP和控制器代码尺寸以及优异的编译器性能而优化。下面列出了DSP内核的特点:
●工作电压4.57 V-5.5 V 、时钟60 MHz时,可提供30 MIPS的处理能力
●工作电压2.7 V-3.6 V 、时钟40 MHz时,可提供20 MIPS的处理能力
●并行指令集以及有用的DSP寻址模式
●单周期16 16位并行乘法器累加器(MAC)
●2 36位累加器,包括扩展位
●单时钟周期桶式移位寄存器
●硬件DO和REP循环
●三个16位内部内核数据总线和三个16位内部地址总线
●一个16位外设接口数据总线
●指令集同时支持DSP和控制器功能
●控制器类型的寻址模式和指令可获得更小的代码尺寸
●高效率的"C"编译器和局部变量支持
●内核提供1M字节程序地址空间寻址能力
●支持无限深度嵌套的软件子程序和中断栈
实现低功耗设计
DSP56800内核针对低功耗应用而设计。在设计中,同时采用了架构和电路设计技巧以保证DSP运行过程中提供智能功耗管理。功耗管理方案可自动关闭未使用的DSP模块。
当考虑功耗时,非常重要的是要牢记大量的处理实际上都发生在最繁忙的数值处理循环中。算法中需要的数值计算过程占用了大部分的执行时间,因此也是消耗功率最大的地方。这点表明,能够高效地执行数值算法的DSP架构需要的功耗最小,因为完成同样任务所需要的指令数量会大大减少。对于特定的应用,要获得最低的功耗不仅需要DSP架构本身是针对低功耗而设计的,还需要该架构可非常高效地完成DSP运算。
DSP56800架构的高性能和低功耗特点使DSP56800系列器件可提供优异的低功耗性能。
对于基于该的芯片,其时钟针对降低功耗进行了仔细的设计。通过锁相环(PLL)电路,可以动态改变DSP内核的时钟频率。如果需要的话,输出时钟引脚可被选择性地关闭。DSP还支持多种低功耗停止(Stop)和等待(Wait)模式,从而在等待事件发生地同时大大降低功耗。DSP56L811芯片提供的五种低功耗模式包括:
●所有内部时钟关闭
●振荡器运行,但PLL和DSP内核及所有外设关闭
●振荡器和定时器运行,但所有其它电路关闭
●振荡器和PLL运行,但DSP内核和外设关闭
●等待模式,DSP内核关闭,但所有外设功能正常
开发环境
基于DSP56800内核的芯片的开发非常直接和方便。外部总线支持从外部存储器中执行和调试应用程序。还可以同时从外部获得数据和程序,当外部程序和外部数据寻址同时发生时,DSP芯片简单地加入一个额外的等待时钟周期。可编程的等待状态可单独针对外部程序和数据存储器进行编程,从而支持较慢的存储器操作。
由于其通用特性,DSP56800汇编语言即简单又非常容易支持。同样,高效率的C编译器现在也支持用户利用C开发应用的大部分,而利用汇编语言完成繁重的数值运算例程。最初的结果表明,与现有DSP架构相比,程序代码尺寸可缩小1/3至1/2。
芯片上的一个片上调试端口即使在用户的目标系统中,也可通过5脚JTAG接口提供片上仿真能力。通过这一端口,开发人员可以设置断点、检查和修改寄存器和存储器内容以及完成其它对调试实时系统有用的操作。
为方便用户利用DSP56800系列器件进行应用和算法的开发和调试,摩托罗拉公司提供了全系统的软件和硬件数字信号处理器(DSP)开发工具。这些开发工具包括:
●可重定位的宏交叉汇编器
●链接器和库
●C/C++ 交叉编译器
●逐时钟多芯片指令传真器
●应用开发系统(ADS)支持下的硬件开发
●图形用户界面(GUI)和符号调试器
这一软件开发环境为程序员提供了一个可充分利用DSP芯片功能的灵活的、模块化编程环境,同时还提供了多种数据存储定义、生成代码的重定位能力、符号调试能力以及灵活的对象(.obj)文件链接能力。库管理工具则可用于创建最终应用代码文档。
应用
DSP56800系列DSP器件针对成本敏感的应用而开发,非常适合需要低功耗和中等性能的消费类应用,包括:
●有线和无线调制解调器
●数字无线消息应用
●数字应答机/多功能电话
●伺服和交流电机控制
●数字相机
结论
DSP56800是一种新的DSP内核架构,不仅可提供高效的DSP处理,还提供了强大的控制能力。其高性能DSP功能以及通用指令集特性使这一架构成为以下方面的领先器件。首先是以低成本提供了较高的DSP性能,功耗低且程序代码密度高。其次通过降低所需要的片上存储器数量进一步降低了系统成本。最后是具有较高的编译器代码密度和性能。
作者:摩托罗拉公司DSP消费类产品设计经理: JOSEPHP. GERGENDSP
消费类应用经理 :
PHIL HOANG
DSP 应用经理:
EPHREM A. CHEMALY
|