1.1 DSP应用系统开发流程
1.1.1 DSP总体方案设计
利用DSP芯片设计一个DSP系统的大致步骤如图1.1所示。现对图1.1所列各步骤作简要说明。
图1.1 DSP总体设计框图
在进行DSP系统设计之前,首先要明确设计任务,给出设计任务书。在设计任务书中,应该将系统要达到的功能描述准确、清楚。描述的方式可以是人工语言,也可以是流程图或算法描述。在此之后应该把设计任务书转化为量化的技术指标。结合DSP系统的设计,这些技术指标主要包括:
①由信号的频率决定的系统采样频率。
②由采样频率完成任务书最复杂的算法所需最大时间及系统对实时程度的要求判断系统能否完成工作。
③由数据量及程序的长短决定片内RAM的容量,是否需要扩展片外RAM及片外RAM容量。
④由系统所要求的精度决定是16位还是32位,是定点还是浮点运算。
⑤根据系统是计算用还是控制用来决定对输入输出端口的要求。在一些特殊的控制场合还有一些专门的芯片可供选用。如电机控制领域很适合用TMS320C2812系列,因为它上面集成了2路A/D输入、6路PWM输出及强大的人机接口。
由上述的一些技术指标,大致可以确定应该选用的DSP芯片的型号。根据选用的DSP芯片及上述技术指标,还可以初步确定A/D、D/A、RAM的性能指标及可供选择的产品。当然在产品选型时,还须考虑:成本、供货能力、技术支持(资料、第三方部门)、开发系统(开发系统可能很贵,这时还要考虑成本)、体积、功耗、工作环境温度(这在一些场合是非常重要的)。
在确定DSP芯片选型之后,应当先进行系统的总体设计。首先采用高级语言或MATLAB等对算法进行仿真,确定最佳算法并初步确定参数,对系统中的哪些功能用软件来实现、哪些功能用硬件实现进行初步的分工,如FFT、FIR等是否需要用专用芯片来实现等。
1.1.2 DSP芯片选型
在设计DSP应用系统时,选择DSP芯片是非常重要的一个环节。只有选定了DSP芯片才能进一步设计其外围电路及系统的其他电路。总的来说,DSP芯片的选择应根据实际的应用系统需要而确定。随着应用场合和设计目标的不同,DSP选择的依据重点也不同,通常需要考虑以下因素:
(1)DSP芯片的运算速度
运算速度是DSP芯片一个最重要的性能指标,也是选择DSP芯片时所需要考虑的一个主要因素。设计者先由输入信号的频率范围确定系统的最高采样频率,再根据算法的运算量和实时处理限定的完成时间确定DSP运算速度的下限。DSP芯片的运算速度可以用以下几种指标来衡量。
①指令周期:即执行一条指令所需的时间,通常以纳秒(ns)为单位。如TMS320F2812A在主频为150MHz时的指令周期为7ns。
②MAC时间:即一次乘法加上一次加法的时间。大部分DSP芯片可在一个指令周期内完成一次乘法和加法操作,如TMS320F2812A的MAC时间就是7ns。
③FFT执行时间:即运行一个N点FFT程序所需的时间。由于FFT涉及的运算在数字信号处理中很有代表性,因此FFT运算时间常作为衡量DSP芯片运算能力的一个指标。
④MIPS:即每秒执行百万条指令。如TMS320F2812A的处理能力为150MIPS,即每秒可执行1.5亿条指令。
⑤MOPS:即每秒执行百万次操作。如TMS320C40的运算能力为275MOPS。
⑥MFLOPS:即每秒执行百万次浮点操作。如TMS320C31在主频为40MHz时的处理能力为40MFLOPS。
⑦BOPS:即每秒执行十亿次操作。如TMS320C80的处理能力为2BOPS。
(2)DSP芯片的运算精度
由系统所需要的精度确定是采用定点运算还是浮点运算。
参加运算的数据字长越长精度越高,目前,除少数DSP处理器采用20位、24位或32位的格式外,绝大多数定点DSP都采用16位数据格式。由于其功耗小和价格低廉,实际应用的DSP处理器绝大多数是定点处理器。
为了保证底数的精度,浮点DSP的数据格式基本上都做成32位,其数据总线、寄存器、存储器等的宽度也相应是32位。在实时性要求很高的场合,往往考虑使用浮点DSP处理器。与定点DSP处理器相比,浮点DSP处理器的速度更快,但价格比较高,开发难度也更大一些。
(3)片内硬件资源
由系统数据量的大小确定所使用的片内RAM及需要扩展的RAM的大小;根据系统是作计算用还是控制用来确定I/O端口的需求。
不同的DSP芯片所提供的硬件资源是不相同的,如片内RAM、ROM的数量,外部可扩展的程序和数据空间,总线接口、I/O接口等。即使是同一系列的DSP芯片(如TI的TMS320C54x系列),系列中不同DSP芯片也具有不同的内部硬件资源,以适应不同的需要。在一些特殊的控制场合有一些专门的芯片可供选用,如TMS320C281x系列自身带有2路A/D输入和6路PWM输出及强大的人机接口,特别适合于电动机控制场合。
(4)DSP芯片的功耗
在某些DSP应用场合,功耗也是一个很重要的问题。功耗的大小意味着发热的大小和能耗的多少。如便携式的DSP设备、手持设备(手机)和野外应用的DSP设备,对功耗都有特殊的要求。
(5)DSP芯片的开发工具
快捷、方便的开发工具和完善的软件支持是开发大型复杂DSP系统必备的条件,有强大的开发工具支持,就会大大缩短系统开发时间。现在的DSP芯片都有较完善的软件和硬件开发工具,其中包括Simulator软件仿真器、Emulator在线仿真器和C编译器等。如TI公司的CCS集成开发环境、XDSP实时软件技术等,为用户快速开发实时高效的应用系统提供了巨大帮助。
(6)DSP芯片的价格
在选择DSP芯片时一定要考虑其性能价格比。如价格过高,即使其性能较高,在应用中也会受到一定的限制,如应用于民用品或批量生产的产品中就需要较低廉的价格。另外,DSP芯片发展迅速,价格下降也很快。因此在开发阶段可选择性能高、价格稍贵的DSP芯片,等开发完成后,会具有较高的性价比。
(7)其他因素
除了上述因素外,选择DSP芯片还应考虑到封装的形式、质量标准、供货情况、生命周期等。有的DSP芯片可能有DIP、PGA、PLCC、PQFP等多种封装形式。有些DSP系统可能最终要求的是工业级或军用级标准,在选择时就需要注意到所选的芯片是否有工业级或军用级的同类产品。如果所设计的DSP系统不仅仅是一个实验系统,而是需要批量生产并可能有几年甚至十几年的生命周期,那么需要考虑所选的DSP芯片供货情况如何,是否也有同样甚至更长的生命周期等。
上述各因素中,确定DSP应用系统的运算量是非常重要的,它是选用不同处理能力的DSP芯片的基础,运算量小则可以选用处理能力不是很强的DSP芯片,从而可以降低系统成本。相反,运算量大的DSP系统则必须选用处理能力强的DSP芯片,如果DSP芯片的处理能力达不到系统要求,则必须用多个DSP芯片并行处理。如何确定DSP系统的运算量并选择DSP芯片,主要考虑以下两种情况。
①按样点处理 所谓按样点处理,就是DSP算法对每一个输入样点循环一次。数字滤波就是这种情况,在数字滤波器中,通常需要对每一个输入样点计算一次。
例如,一个采用LMS算法的256抽头的自适应FIR滤波器,假定每个抽头的计算需要3个MAC周期,则256抽头计算需要
256×3=768个MAC周期
如果采样频率为8kHz,即样点之间的间隔为125μs,DSP芯片的MAC周期为200ns,则768个MAC周期需要
768×200ns=153.6μs
由于计算1个样点所需的时间153.6μs大于样点之间的间隔125μs,显然无法实时处理,需要选用速度更高的DSP芯片。
若选DSP芯片的MAC周期为100ns,则768个MAC周期需要
768×100ns=76.8μs
由于计算1个样点所需的时间76.8μs小于样点之间的间隔125μs,可实现实时处理。
②按帧处理 有些数字信号处理算法不是每个输入样点循环一次,而是每隔一定的时间间隔(通常称为帧) 循环一次。中低速语音编码算法通常以10ms或20ms为一帧,每隔10ms或20ms语音编码算法循环一次。所以,选择DSP芯片时应该比较一帧内DSP芯片的处理能力和DSP算法的运算量。
例如,假设DSP芯片的指令周期为p,一帧的时间为Δt,则该DSP芯片在一帧内所能提供的最大运算量为
最大运算量=Δt/p条指令
例如TMS320VC5402-100的指令周期为10ns,设帧长为20ms,则一帧内TMS320 VC5402-100所能提供的最大运算量为
最大运算量=200ms/10ns=200万条指令
因此,只要语音编码算法的运算量不超过200万条指令(单周期指令),就可以在TMS320VC5402-100上实时运行。
1.1.3 硬件电路设计
DSP硬件系统可能由一个DSP及外围总线组成,也可能由多个DSP组成,这完全取决
于DSP处理的要求。DSP硬件系统的主要任务是将前向通道输出的信号按照一定的算法进行处理,然后将处理的结果以数据流的形式输出给后向通道。后向通道主要由D/A、f/V、平滑滤波器及功率放大器等部分组成。DSP硬件系统设计阶段一般分为以下几步进行。
第一步:设计硬件实现方案。
所谓硬件实现方案是指根据性能指标、工期、成本等,确定最优硬件实现方案(考虑到实际的工作情况,最理想的方案不一定是最优的方案),并画出其硬件系统框图,如图1.2所示。这时对于具体器件的要求应该已经比较明确。
图1.2 硬件设计系统框图
第二步:进行器件的选型。
一般系统中常用A/D、D/A、内存、电源、逻辑控制、通信、人机接口、总线等基本部件。下面将大致介绍它们的确定原则。
A/D:根据采样频率、精度来确定A/D型号,是否要求芯片自带采样保护、多路器、基准电源等。
D/A:信号频率、精度是否要求自带基准电源、多路器、输出运放等。
内存:包括SRAM、EPROM(或EEPROM、FLASH MEMORY),在TMS320C6000等一些产品中还有SDRAM、SBSRAM。所有这些的选型主要考虑工作频率、内存容量位长(8位/16位/32位)、接口方式(串行还是并行)、工作电压是5V还是3.3V或其他。
逻辑控制:首先是确定用PLD、CPLD还是FPGA。其次根据自己的特长和公司芯片的特点决定采用哪家公司的哪一系列的产品。最后还须根据DSP的频率决定芯片的工作频率以确定使用的芯片。
通信:通信的要求一般系统都是需要的。首先需要根据通信的速率决定采用的通信方式。一般采用串口只能到达19.2kbps(RS-232),而并口则可达到1Mbps以上。如果还有更高的要求则应考虑通过总线进行通信。
总线:一般有PCI、ISA、现场总线如CAN,3×bus等。采用哪一种总线主要看使用的场合、数据传输速率的高低(总线宽度、频率高低、同步方式等)。
人机接口:有键盘、显示器等,它们可以通过与80C196等单片机的通信来构成,也可以在DSP的基础上直接构成,视情况而定。
电源:主要是电压的高低以及电流的大小。电压要匹配,电流容量要足够。
上述这些部件的选择可能会相互有些影响。同时,在选型时还必须充分考虑到供货能力、性能价格比、技术支持、使用经验等因素。
第三步:进行原理图设计。
在这一步之前的工作基本上是分析工作。而从这一步起,则开始综合的工作,逐步开始系统的集成。在所有的综合工作中,原理图的设计是关键的一步。在原理图的设计时必须清楚了解器件的使用和系统的开发,对于一些关键的环节有必要做一定的仿真。随着大规模集成芯片和可编程逻辑芯片的发展,硬件原理设计的难度得以降低,但它依然是DSP系统集成中关键的一步。原理图设计的成功与否是DSP系统能否正常工作的最重要的一个因素。
第四步:PCB图设计。
PCB图的设计要求DSP系统的设计人员既要熟悉系统工作原理,还要清楚布线工艺和系统结构设计。
第五步:硬件调试。
对DSP系统整体的硬件方案的确定、各种器件的选型、原理的设计和各种硬件电路进行详细分析与调试。
1.1.4 软件程序设计
在成功的DSP技术应用中,好的编程技术扮演了重要的角色。开始开发时,首先要确定编程的结构方法和好的证明方法。在写任何程序步骤之前,花一些时间制定信号处理任务的综合计划有好处。这个计划应该考虑到需要的存储器大小、强加在处理器上程序长度方面的限制、执行时间等。图1.3所示为DSP软件开发的流程图。该图详细指出了一个典型工程所需要的步骤。这里的描述比较完整,在流程图的中间阶段,所需文件的输入与输出类型也给出来了。
图1.3 DSP软件开发的流程图
(1)DSP软件编程的特点
在此仅对DSP系统软件开发流程做简单的介绍。
①与计算机的汇编语言比起来,由于TI公司汇编语言的指令系统比计算机汇编语言的指令系统要简单一些,而且由于有许多专门为数字信号处理器而设计的指令,因此比较容易掌握并运用于数字信号处理的编程中。
②与高级语言比起来,使用DSP汇编语言的用户一定要熟悉DSP芯片内部结构和指令系统。尤其是在多DSP并行处理的场合,或在便携电话、磁盘驱动器等编程空间很小的场合,这对偏重高效的DSP软件是非常重要的。
③高级语言(如C语言)的开发工具不断完善,随着TI公司C语言编译器、优化器的不断改进,以及一些第三部门的不断努力,C语言的编译效率已经得到了很大的提高。在C3X中,其编译效率大约为汇编语言的1/10,而到了C6X系列,其编译效率提高了3倍。
④在实时要求高的场合或实时要求高的算法中,用汇编语言开发;实时要求低的场合用C语言编程。将两者结合起来,既能保持算法的实时性,又能做到程序结构的清晰明了。
(2)软件编程的步骤
①用汇编语言、C语言或汇编语言和C语言的混编来编写程序,然后把它们分别转化成TMS320的汇编语言并送到汇编语言编译器进行编译,生成目标文件。
②将目标文件送入连接器进行连接,得到可执行文件。
③将可执行文件调入到调试器(包括软件仿真、软件开发系统、评测模块、系统仿真器,一般在系统调试中,系统仿真器是最常用的)进行调试,检查运行结果是否正确。如果正确进入第④步;如果不正确,则返回第一步。
④进行代码转换,将代码写入FLASH ROM,并脱离仿真器运行程序,检查结果是否正确。如果不正确,返回第③步;如果正确,进入下一步。
⑤软件测试。如果测试结果合格,软件调试完毕;如果不合格,返回第一步。
1.1.5 DSP系统集成
在完成系统的软硬件设计之后,将进行DSP系统集成。所谓系统集成是将软硬件结合起来,组装成一台样机,并在实际DSP系统中运行,进行DSP系统测试。如果DSP系统调试结果符合指标,则样机的设计完毕。但由于在软硬件调试阶段调试的环境是模拟的,因此在DSP系统测试中往往可能会出现一些问题,如精度不够、稳定性不好等。出现问题时,一般采用修改软件的方法。如果软件修改无法解决问题,则必须调整硬件,这时问题就较为严重了。