1.3 DSP应用系统的开发流程和开发工具
在设计需求规范,确定设计目标时,要解决两方面的问题:即信号处理和非信号处理方面的问题。随着DSP处理器功能的不断强化和系统开发周期的不断缩短,设计和调试DSP系统越来越依赖于DSP开发系统和开发工具。
1.3.1 DSP应用系统的开发流程
信号处理的问题包括:输入、输出结果特性的分析,DSP算法的确定,以及按要求对确定的性能指标在通用机上用高级语言编程仿真。
非信号处理问题包括:应用环境、设备的可靠性指标,设备的可维护性,功耗、体积,重量、成本、性能价格比等。
算法的研究与仿真是DSP应用系统设计中非常重要的一步。系统性能指标能否实现,以何种算法和结构满足需求,都是这一步需要考虑的内容。这种仿真是在通用机上用高级语言编程实现的,编程时最好能按照DSP处理器形式运行,以达到更真实的效果。
设计DSP应用系统,选择DSP芯片也是一个非常重要的环节。只有选定了合适的DSP芯片,才能进一步设计其外围电路及系统的其他电路。总的来说,DSP芯片的选择应根据实际的应用系统需要而确定。不同的DSP应用系统由于应用场合、应用目的等不尽相同,对DSP芯片的选择也是不同的。
DSP应用系统的运算量是确定选用处理能力为多大的DSP芯片的基础。运算量小则可以选用处理能力不是很强的DSP芯片,从而降低系统成本。相反,运算量大的DSP系统则必须选用处理能力强的DSP芯片,如果DSP芯片的处理能力达不到系统要求,则必须用多个DSP芯片并行处理。
那么如何确定DSP系统的运算量以选择DSP芯片,下面我们来考虑两种情况。
1.按帧处理
有些数字信号处理算法不是每个输入样点循环一次,而是每隔一定的时间间隔(通常称为帧)循环一次。例如中低速语音编码算法通常以10ms或20ms为一帧,即每隔10ms或20ms语音编码算法循环一次。所以在选择DSP芯片时,应该比较一帧内DSP芯片的处理能力与DSP算法的运算量。假设DSP芯片的指令周期为p(ns),一帧的时间是tD(ns),则此DSP芯片在一帧时间内所能提供的最大运算量为tD/p条指令。例如TMS320LC549-80的指令周期为12.5ns,设帧长为20ms,则一帧内TMS320LC549-80所能提供的最大运算量为160万条指令。因此只要语音编码算法的运算量不超过160万条指令,就可以在TMS320LC549-80上实时运行。
2.按样点处理
所谓按样点处理就是DSP算法对每一个输入样点循环一次。数字滤波就与此种情况相同。在数字滤波器中,通常需要对每一个输入样点进行一次计算。例如,一个采用LMS算法的256抽头的自适应FIR滤波器,假定每个抽头的计算需要3个MAC周期,则256抽头计算需要256×3=768个MAC周期。如果采样频率为8kHz,即样点之间的间隔为125ms,DSP芯片的MAC周期为200ns,则768个MAC周期需要153.6ms的时间,显然无法实时处理,需要选用速度更高的DSP芯片。
上述两点因素是确定DSP应用系统运算量的关键性因素。
此外,在DSP芯片选择时通常有下列几项注意事项:
(1)DSP芯片的速度
运算速度是DSP芯片的一个最重要的性能指标,也是选择DSP芯片时所需要考虑的一个主要因素。DSP芯片的运算速度可以用下列几种性能指标来衡量:
① 指令周期:即执行一条指令所需的时间,通常以ns为单位。如TMS320LC549-80在主频为80MHz时的指令周期为12.5ns;
② MAC时间:即一次乘法加上一次加法的时间。大部分DSP芯片可在一个指令周期内完成一次乘法和加法操作,如TMS320LC549-80的MAC时间就是12.5ns;
③ FFT执行时间:即运行一个N点FFT程序所需的时间。由于FFT运算涉及的运算在数字信号处理中很有代表性,因此FFT运算时间常作为衡量DSP芯片运算能力的一个指标;
④ MIPS:即每秒执行百万条指令。如TMS320LC549-80的处理能力为80MIPS,即每秒可执行八千万条指令;
⑤ MOPS:即每秒执行百万次操作。如TMS320C40的运算能力为275 MOPS;
⑥ MFLOPS:即每秒执行百万次浮点操作。如TMS320C31在主频为40MHz时的处理能力为40MFLOPS;
⑦ BOPS:即每秒执行十亿次操作。如TMS320C80的处理能力为2BOPS。
(2)DSP芯片的字长选择
一般浮点DSP芯片都用32 位的数据字,大多数定点DSP芯片是16 位数据字。而MOTOROLA公司定点芯片用24位数据字,以便在定点和浮点精度之间取得折中。字长大小是影响成本的重要因素,它影响芯片的大小、引脚数以及存储器的大小,设计时在满足性能指标的条件下,尽可能选用最小的数据字。
(3)DSP芯片的存储器安排
包括存储器的大小,片内存储器的数量,总线寻址空间等。片内存储器的大小决定了芯片运行速度和成本,例如TI公司同一系列的DSP芯片,不同种类芯片存储器的配置等硬件资源各不相同。
(4)DSP芯片的开发工具
在DSP系统设计中,开发工具是必不可少的,一个复杂的DSP系统,必须有功能强大的开发工具支持。
开发工具包括软件和硬件两部分。软件开发工具主要包括:C编译器、汇编器、链接器、程序库、软件仿真器等,在确定DSP算法后,编写的程序代码通过软件仿真器进行仿真运行,来确定必要的性能指标。硬件开发工具包括在线硬件仿真器和系统开发板。在线硬件仿真器通常是JTAG测试接口板,可以对设计的硬件进行在线调试;在硬件系统完成之前,不同功能的开发板上实时运行设计的DSP软件,可以提高开发效率。甚至在数量小的产品中,直接将开发板当作最终产品。
(5)DSP芯片的功耗与电源管理
在一些手提便携式的消费类电子产品中,供电电源的节省是很重要的问题,因而目前DSP生产厂商对这方面的问题越来越重视。它通常包括供电电压的选择和电源的管理功能。
供电电压一般取得比较低,实施芯片的低电压供电,通常有3.3V,2.5V,1.8V,0.9V等,在同样的时钟频率下,它们的功耗将远远低于5V供电电压的芯片。
加强了对电源的管理后,通常用休眠、等待模式等方式节省功率消耗。例如TI公司提供了详细的、功能随指令类型和处理器配置而改变的应用说明。
(6)DSP芯片的成本
特别要注意DSP芯片的生产和主推产品,以便以低的成本实施来要求产品。但低价位的芯片必然是功能较少、片内存储器少、性能上差一些的,这就给编程带来一定的困难。
(7)DSP芯片的片内硬件资源
不同的DSP芯片所提供的硬件资源是完全不相同的,如片内RAM、ROM的数量,外部可扩展的程序和数据空间,总线接口,I/O接口等。即使是同一系列的DSP芯片(如TI的TMS320C54x系列),其中所包含的不同型号的片种也具有不同的内部硬件资源,可以适应不同的需要。
(8)其他因素
除了上述因素外,选择DSP芯片还应考虑到封装的形式、质量标准、供货情况、生命周期等。有的DSP芯片可能有DIP、PGA、PLCC、PQFP等多种封装形式。有些DSP系统可能最终要求的是工业级或军用级标准,在选择时就需要注意到所选的芯片是否有工业级或军用级的同类产品。如果所设计的DSP系统不仅仅是一个实验系统,而是需要批量生产并可能有几年甚至十几年的生命周期,那么需要考虑所选的DSP芯片供货情况如何,是否也有同样甚至更长的生命周期等。
1.3.2 DSP应用系统的开发工具
DSP处理器的系统开发流程图如图1-6所示。
图1-6 DSP处理器开发流程图
DSP软件可以使用汇编语言或者C语言编写源程序、通过编译、链接工具产生DSP的执行代码。在调试阶段,可以利用软件在计算机上进行仿真,也可以利用硬件调试工具将代码下载至DSP,并通过计算机监控、调试运行程序。当调试完成后,可以将程序代码固化到EPROM中,以便DSP目标系统脱离计算机单独运行。
下面简要介绍几种常用的开发工具。虽然厂家不同,但提供的开发调试工具大致类同。
1.代码生成工具
代码生成工具一般包括编译器、链接器、优化C编译器、转换工具等。可以使用C语言或者汇编语言编写源程序代码。编写完成后,利用代码生成工具进行工具编译、链接、最后形成机器代码。
(1)C编译器(C Compiler)
为了开发DSP系统方便,减小编写汇编程序的难度,很多厂商都提供了高级语言设计方法,一般为C语言。开发系统针对DSP库函数、头文件及编写的C程序,自动生成对应的汇编语言,这一步称为C编译。C编译器通常符合ANSIC标准,可以对编写的程序进行不同等级的优化,以产生高效的汇编代码;C编译器还具有对存储器的配置、分配及部分链接功能;并应具有灵活的汇编语言接口等多种功能。
C编程方法简单、易学易用,但编译出的汇编程序比手工汇编程序要长得多,因而效率比较低。为了克服C编译器的低效率,在提供标准C库函数同时,开发系统也提供了许多针对DSP运算的高效库函数,例如FFT、FIR、IIR、相关、矩阵运算等,它们都是手工汇编的,带有高级语言调用/返回接口。
很多情况下,为了得到高效编程,在系统软件开发过程中,核心的DSP运算程序都是使用汇编语言手工编写,按照规定的接口约定,由C程序进行调用,这样就极大地提高了编程的效率。
(2)汇编器(Assembler)
汇编器的主要功能是将汇编语言源文件转换为基于公用目标文件格式的机器语言目标文件。
(3)链接器(Linker)
链接器的主要作用是将子程序、库函数和主程序等由汇编器产生的目标文件链接在一起,产生一个可执行的模块,形成DSP目标代码。
2.软件仿真器(Simulator)
软件仿真器是一种脱离硬件的纯软件仿真工具。将程序代码加载后,在一个窗口工作环境中,可以模拟DSP的运行程序,同时对程序进行单步执行、设置断点,对寄存器/存储器进行观察、修改,统计某段程序的执行时间等。通常在程序编写完成以后,都会在软件仿真器上进行调试,以初步确定程序的可运行性。软件仿真器的主要缺点是对外部接口的仿真不够完善。
早期的软件仿真器与其他开发工具是分开的,用起来不方便。现在,软件仿真器是作为CCS的一个目标插件,被广泛应用于DSP的开发中。
3.硬件仿真器(Emulator)
硬件仿真器是一种在线仿真工具,它用JTAG接口电缆把DSP硬件目标系统和装有仿真软件/仿真卡的PC接口板连接起来,用PC平台对实际硬件目标系统进行调试,能真实的仿真程序在实际硬件环境下的功能。
TMS320扩展的开发系统XDS(eXtend Development System)是一种功能强大的全速仿真器,用于系统的集成和调试。扫描式仿真是一种独特的、非插入式的系统仿真与集成调试的方法。程序可以从片外或者片内的目标存储器实时执行,在任何时钟速度下都不会引入额外的等待状态。
4.DSP开发系统
DSP开发系统是一个包含DSP、存储器、常用接口电路的通用电路板和相应软件的软/硬件系统。通常有两种形式:一种是电路板卡的形式,插入计算机中;另一种是通过计算机的串口或并口连接到计算机。这些都是通过计算机的控制端口来控制DSP的运行,并具有简单的DSK(DSP starter Kit)入门套件和较为复杂的EVM(Evaluation Module)评估模块等。这些都有助于初学者熟悉和使用DSP处理器的应用,也可以作为程序的初步运行对象,方便调试。
随着DSP应用范围的扩大、处理能力的加强以及DSP更新速度的加快,DSP处理系统越来越复杂,对设计者来说难度也越来越大,因此一些生产厂家已经制定出了一定的标准,依据标准来设计生产电路板和DSP处理模块,同时为这些标准模块提供丰富的软件开发系统和算法库。其中典型的如TMS320C4x和SDSP2106x,它们可以通过通信口和全局总线插座,将若干个模块安装在母板上,方便地组成多处理器系统。这种模块化设计降低了硬件设计难度,减少了硬件设计时间,有利于更高效的开发DSP系统。
目前各DSP芯片生产厂家已经把已有的各开发工具集成在一起,构成集成开发环境。例如TI公司的CCS IDE(Code Composer Studio Integrated Development Environment)可以提供环境配置、源程序编辑、编译连接、程序调试、跟踪分析等各个环节,以加速软件开发进程,提高工作效率。它把编译、汇编、链接等工具集成在一起,用一条命令即可完成全部的汇编工作。另外把软、硬件开发工具集成在其中,使程序的编写、汇编、程序的软/硬件仿真和调试等开发工作在统一的环境中进行,给开发工作带来极大的方便。
在DSP应用系统的开发过程中,需要开发工具支持的情况如表1-1所示。
表1-1 DSP应用系统开发工具支持
1.3.3 SHX-DSP2812开发系统简介
SHX-DSP2812开发系统是由北京三恒星科技公司开发研制的。为了使用户能更好的学习和了解本系统,下面介绍SHX-DSP2812开发板和仿真器。
1.SHX-DSP2812开发板介绍
北京三恒星科技公司开发的SHX-DSP2812开发板实物图如图1-7所示。
图1-7 开发板实物图
本套件是基于TMS320F2812 DSP的学习开发平台,全面而又系统地展现了F2812的各个功能,是初学者学习2812的首选产品。
下面详细介绍本套件的系统资源、扩展接口及相关配件。
(1)系统资源
SHX-DSP2812开发板的系统资源如下:
· DSP处理器TMS320F2812,最高工作频率150MHz;
· DSP芯片内置18K×16位SRAM,4K×16位BOOT ROM,1K×16位OPT ROM;
· DSP芯片内置128K ×16位Flash;
· 外扩32K×16bit的程序RAM,32K×16bit的数据RAM;
· 监视用LED发光管一个;
· DSP所有功能引脚引出,176pin;
· 4MB程序、数据寻址空间;
· I/O输入/输出模块8个LED;
· SCI模块RS—232通信接口电路;
· SPI_DA模块4路8位串行D/A输出;
· A/D转换模块2路12位A/D采样(可扩展到16路);
· CAN模块CAN总线收发器;
· PWM模块PWM控制微型直流电动机正反转;
· 步进电动机支持(选配)。
(2)扩展接口
SHX-DSP2812开发板的扩展接口如下:
· IEEE 1149.1标准JTAG接口;
· 176pin全部功能引脚引出,用户可以扩展使用;
· RS232标准DB9接口插座;
· 4路D/A输出接口插座;
· 2路A/D输出接口插座;
· CAN总线接口插座;
· 电动机接口:支持直流电动机、步进电动机(选配)。
(3)相关配件
SHX-DSP2812开发板的相关配件口如下:
· 直流动电机;
· 串口直连线;
· +5V直流稳压电源;
· 步进电动机。
2.SHX-USB接口DSP仿真器介绍
SHX-USB接口仿真器具有性能优越,体积小巧,兼容性好等特点,它能够完全仿真TI系列的2000系列,3X系列、5000系列、6000系列等DSP芯片。
SHX-USB接口DSP仿真器如图1-8所示。
图1-8 SHX-USB接口DSP仿真器
仿真器特点如下:
(1)适用于工作电压在1.0~5.0V之间的数字信号处理;
(2)支持Windows98/2000/XP;
(3)支持TI全系列DSP芯片的硬件仿真,包括TMS320C2000、C5000、C6000、C3x、C4x、C5x及OMAP等系列芯片;
(4)与主机采用USB2.0接口通信,使用简单,即插即用;
(5)支持热插拔,随时插拔不会损伤硬件;
(6)通过USB总线供电,无需外接电源;
(7)支持CCS2系列开发环境,支持C语言和汇编语言调试;
(8)采用DSP的JTAG口进行调试,不占用系统任何资源;
(9)支持多DSP调试,一套开发系统可以对板上的多个DSP芯片同时进行调试;
(10)价格低廉,性价比高。
相关配件如下:
(1)USB电缆:1条;
(2)4芯JTAG排线:1条;
(3)赠送相关调试工具(CCS)、驱动和相关资料,供学习用。
关于仿真器部分的详细介绍将在第7章中给出,在此不再赘述。