首页 理论教育 优化DSP系统设计开发流程

优化DSP系统设计开发流程

时间:2023-06-20 理论教育 版权反馈
【摘要】:DSP系统的设计开发过程可以用图2-2所示的流程图来表示,该流程图将设计过程大致分为如下几个阶段。7)DSP系统处理的模拟带宽。结合DSP系统设计,主要的几个系统技术性能指标包括:1)由信号的频率决定的系统采样频率。只有选定了DSP才能进一步设计其外围电路及系统的其他电路。DSP的选择应根据实际应用系统的需要而确定,也就是说,应该从应用场合和设计目标的具体要求出发来选择DSP。

优化DSP系统设计开发流程

DSP系统的设计开发过程可以用图2-2所示的流程图来表示,该流程图将设计过程大致分为如下几个阶段。

1.定义系统技术性能指标

在进行DSP系统设计之前,首先要根据DSP系统的需求,明确设计任务,定义系统的技术性能指标。这些技术性能指标,包括系统的采样频率和实时处理性能、存储器容量、系统的精度、应用环境、体积、重量、功耗、可靠性可维护性以及成本等要求,它们通常可用数据流程图、数学运算序列、正式的符号或自然语言来描述。

在需求分析文档中,应当将系统要求的功能准确、清楚地描述出来。描述的方式可以是人工语言,也可以是系统框图或者算法描述。DSP系统的需求分析中要考虑以下几个重要指标:

1)实时性。系统是用来进行实时信号的处理还是非实时信号的处理,对系统的要求是完全不同的。

2)稳定性。DSP系统与其他硬件系统一样,是应用于特定环境中的,在选择DSP以及外围芯片的时候要考虑到系统的应用场合。

3)算法的复杂度。算法的复杂度越高,系统的处理性能往往越好,但却对系统处理数据的速度提出了更高的要求。

4)数据量的大小。由数据量及程序的长短决定是否需要扩展片外RAM以及扩展容量。

5)成本要求。在军事等高尖端领域中,为了提高性能、增加可靠性并留有一定的发展空间,往往尽量采用高性能的DSP,甚至可以不计成本。而在工业和消费领域中,为了保证产品在市场上的竞争力,往往要选择性能价格比高的产品。

6)系统类型。系统可以分为数据处理型和控制型,它们对于DSP以及输入/输出端口的要求是不同的。

7)DSP系统处理的模拟带宽。根据这个带宽,选择合适的A/D采样率,并由该采样率完成该系统最复杂算法所需的时间及实时程度来判断系统是否合格。

8)精度要求。由系统所要求的精度决定是16位还是32位,是定点运算还是浮点运算。

9)开发便利性。为了方便开发仿真,最好选用带JTAG(Joint Test Action Group,联合测试工作组)硬件仿真接口的DSP,既方便开发,又便于以后生产中的测试。

结合DSP系统设计,主要的几个系统技术性能指标包括:

1)由信号的频率决定的系统采样频率。

2)由采样频率完成最复杂的算法所需最大时间及系统对实时程度的要求判断是否完成工作。

3)由系统要求的精度决定是16位还是32位,是定点运算还是浮点运算。

4)由数据量及程序的长短决定片内RAM的容量,以及是否需要扩展片外RAM及片外RAM的容量。

5)根据系统是用于计算还是用于控制,决定对输入/输出端口的要求。在一些特殊的控制场合,还有一些专门的处理器可供选用。如电机控制领域应采用TMS320C2xx系列,因为该系列处理器上集成了2路A/D输入、6路PWM输出及强大的人机接口。

2.确定算法并进行算法模拟

一般来说,为了实现系统的最终目标,需要对输入的信号进行适当的处理,而不同的处理方法会导致不同的系统性能,因此要得到最佳的DSP系统性能必须先确定最佳的处理方法。因此确定算法并进行算法模拟阶段成为DSP实际系统设计中重要的一步,这决定了系统性能指标能否实现,系统以何种算法和结构应对需求。实现过程是,首先应对一个实时数字信号处理的任务选择一种方案和多种算法,用算法仿真开发工具(如MATLAB)进行算法模拟来验证算法能否满足系统的性能指标,然后从多种信号处理算法中找出最佳算法。算法模拟所用的输入数据可以是实际采集信号,它们通常以计算机文件的形式存储为数据文件,也可以是假设的数据,只要能够达到验证算法可行性的目的即可。

在算法模拟阶段,借助于现代化的仿真开发工具,设计者在设计的初期不必考虑设计的硬件和软件元素,而只研究算法问题,这样做的好处是可避免可能产生的错误。因为这种算法设计的方法使得设计者能够快速实施不同方案来得到一个有效算法以及优化的参数,而不需要先写繁琐的DSP目标代码或直接对硬件进行处理。目前可供使用的仿真开发工具很多,这类软件包括MATLAB、System View、Simulink、Hypersignal等。这些软件非常好用,它们提供了大量的可视化法库,设计者将一些代表算法操作的函数块放入系统的框图中,再通过连线将框图连接起来。这种框图设计的方法可以很方便地搭建一个系统,同时工具箱还提供了系统仿真、滤波器设计和代码生成等工具,对所搭建的系统进行设计、仿真。所有这些软件包都可以为DSP所用,并且框图直接生成C或汇编代码,随后这些框图能够被调入到目标DSP的应用开发环境中。

现代信号处理理论发展水平很快,提供了各种性能很好的算法,而具体实现时,这些算法对实际处理设备的要求是不同的。有些算法所要求的运算量、数据存储量及处理设备的计算精度都很高,甚至超出了目前硬件设计所能达到的水平,或者从成本上讲是令人难以承受的。因此算法的选择还应注重其性能价格比,尽量以较低的成本得到性能满足要求的实际系统。

3.选择DSP

DSP是处理系统的核心,在设计DSP应用系统时,选择DSP是非常重要的一个环节。只有选定了DSP才能进一步设计其外围电路及系统的其他电路。DSP的选择应根据实际应用系统的需要而确定,也就是说,应该从应用场合和设计目标的具体要求出发来选择DSP。选择DSP时主要考虑的因素有运算速度、运算精度、片内存储器资源、片外存储器和I/O空间容量、片内外围设备、开发调试工具、电源与功耗、价格及售后技术服务等(详见2.3.2节)。

每种DSP都有它所特别适合的领域,例如,TMS320C54x系列就特别适合应用于通信领域,其良好的性能价格比和硬件结构对Vertbi译码、FFT等算法的支持,都保证了通信信号处理算法的实现效率

4.设计DSP应用系统(软硬件设计)

当DSP型号选定后,就可以对DSP系统进行设计了。系统设计分硬件设计和软件设计两个方面同时进行。

硬件设计部分需要确定系统的硬件实现方案、完成器件的选型、完成原理图设计(包括外围电路以及电源电路等)和印制电路板布线等,最后进行焊接调试。

软件设计部分主要是根据系统的要求和所选的DSP编写相应的DSP程序并进行调试,这些程序可以采用汇编语言,也可以用高级语言(如C语言)编程。由于现在的高级语言编译器的效率还比不上手工编写汇编语言的效率,因此在实际应用系统中常常采用两种语言(高级语言和汇编语言)混合编程方法,即在算法运算量大的地方,采用汇编语言,用手工编写的方法编写,而在运算量不大的地方则采用高级语言。采用两种语言混合编程的方法,既可缩短软件开发的周期,提高程序的可读性和可移植性,又能满足系统实时运算的要求。

软件设计部分编写的DSP程序是要放在DSP片内或片外存储器中进行的。在程序工作时,DSP会执行与DSP外围设备传递数据或互相控制的指令,因此DSP的软件与硬件设计调试是密切相关的。

(1)硬件设计

硬件设计涉及较多的电路设计技术。由DSP构成的电路一般包括以下类型的器件:EPROM/FLASH、RAM、A/D转换器、D/A转换器、同步/异步串口电源模块电平转换器、FPGA、接口电路、仿真器接口、时钟等。典型的DSP系统硬件设计流程图如图2-3所示,硬件设计的过程可分为以下5个阶段:(www.xing528.com)

1)确定硬件方案。在考虑系统性能指标、工期、成本、算法需求、体积和功耗核算等因素的基础上,选择系统的最优硬件实现方案。

2)器件选型。一个DSP硬件系统除了DSP外,还包括A/D转换器、D/A转换器、存储器、电源、逻辑控制、通信、人机接口、总线等基本部件。DSP的选型已经在上一阶段完成,下面简单介绍DSP外围部件的选取原则。

A/D转换器:根据采样频率、精度以及是否要求片上自带采样、多路选择器、基准电源等因素来选择。

978-7-111-35536-6-Chapter02-3.jpg

图2-3 DSP系统硬件设计流程图

D/A转换器:根据信号频率、精度以及是否要求自带基准电源、多路选择器、输出运算放大器等因素来选择。

存储器:常用的存储器有RAM、EPROM、EEPROM和FLASH等。在TMS320C6000系列中还有SDRAM、SBSRAM。可以根据工作频率、存储容量位长(8/16/32位)、接口方式(串行/并行)、工作电压(5/3V)等来选择。

逻辑控制:系统的逻辑控制通常是用可编程逻辑器件来实现的。先确定是采用CPLD还是FPGA;再根据自己的特长和公司芯片的特点决定采用哪家公司的哪一系列的产品;最后根据DSP的频率决定逻辑控制器件的频率,并以此来确定使用的器件。

通信器件:通常DSP系统都要求有通信接口。先根据系统对通信速率的要求来选择通信方式,再根据通信方式来选择通信器件。一般串行口只能达到19kbit/s,而并行口可达到1Mbit/s以上,若要求过高可考虑通过总线进行通信。

人机接口:常用的人机接口主要有键盘和显示器等。可以通过与其他单片机的通信构成;也可在DSP的基础上直接构成。

总线:常用总线有PCI、ISA以及现场总线(包括CAN、3xbus等)。根据使用的场合、数据传输要求、总线的宽度、传输速率和同步方式等来选择。

电源:主要根据电压的高低和电流的大小来选择。既要满足电压的匹配,又要满足电流容量的要求。

上述部件的选择可能会相互影响,同时在选型时必须考虑供货能力、性能价格比、技术支持、使用经验等因素。

3)原理图设计。硬件设计阶段原理图设计是关键。在原理图设计阶段必须清楚地了解器件的特性、使用方法和系统的开发,必要时可对单元电路进行功能仿真。原理图设计成功与否,是系统能否正常工作的重要因素。原理图设计包括:

系统结构设计:可分为单DSP结构和多DSP结构、并行结构和串行结构、全DSP结构和DSP/MCU混合结构等。

模拟数字混合电路的设计:主要用来实现DSP与模拟混合产品的无缝连接。包括信号调理、A/D和D/A转换电路、数据缓存等。

存储器的设计:是利用DSP的扩展接口进行数据存储器、程序存储器和I/O空间的配置。在设计时要考虑存储器映射地址、存储器容量和存储器速度等。

此外还包括通信接口、电源和时钟电路以及控制电路等的设计。

4)PCB设计。PCB的设计要求设计者既要熟悉系统的工作原理,还要清楚布线工艺和系统结构设计。

5)硬件调试。硬件调试可在硬件仿真器上进行,如果没有仿真器,且系统不复杂,则可借助一般的工具进行调试。

(2)软件设计

DSP系统软件设计的过程可分5个阶段,具体流程可参考第5章的图5-1。

1)使用汇编语言、C语言或者两种编程语言混合编写程序,并把它们分别转换成DSP的汇编语言,然后用汇编语言汇编器生成目标文件。

2)将目标文件用链接器进行链接,得到可执行文件。

3)对可执行文件进行软件调试。检查运行结果是否正确。如果正确,进入下一步;如果不正确,则返回第一步。软件调试借助DSP开发工具,如软件模拟器(Simulator)、DSP开发系统或硬件仿真器等。

4)进行代码转换,将代码写入EPROM,并脱离仿真器运行程序,检查结果是否正确。

调试时,可先使用PC上的软件模拟器调试和验证程序及算法的功能。这时,DSP不能从外部得到实际数据。通常的做法是:用户自编PC程序,产生一个模拟数据文件,放在DSP某块存储器中,再将DSP对这块数据的处理结果显示在PC上或输出到一个文件中,将其与期望的结果进行对比。模拟器可以观察到DSP内部所有控制/状态寄存器和片内/片外存储器内容,也可以对这些内容进行修改,既可以单步运行每条指令,也可以设置断点,分段检查程序,同时可以统计出各段程序的执行时间。然后,通过PC以及DSP的硬件仿真器和连接电缆对实际的DSP硬件电路板进行在线仿真。这一步也可以理解成是一个软硬件协调的过程。硬件仿真器的软件界面及调试方法与软件模拟器一样,但由于它是直接对DSP电路的调试,因此DSP的运行效果更加真实,也能得到DSP和外围设备数据交换的真实效果。使用硬件仿真器时,同样可以单步调试或让DSP全速运行。最后,可以采用将实时结果与模拟结果进行比较的方法,如果实时程序和模拟程序的输入相同,则两者的输出应该一致。应用系统的其他软件可根据实际情况进行调试。如果调试结果合格,软件调试完毕;如果不合格,返回第一步。

以上的软硬件的设计和调试是同步进行的,这是为了及时发现问题,进行软硬件协调。因此,在开发过程中,通过调试发现问题,修改软硬件设计方案也是常有的事。

在软硬件调试阶段,设计者会发现对DSP的调试更多地依赖于仿真器,而示波器或逻辑分析仪等测量仪器主要用于外围器件的信号测量等。对于基于DSP和存储器的电路板来说,这些测量仪器的用途相对小得多。当然,电路的工作频率很高时,借助于高速测量仪器会发现电路的某些设计缺陷,如信号不稳定、毛刺等。

5.系统集成和测试

软硬件设计、调试完成之后,进行系统集成。所谓系统集成是利用DSP厂家提供的软件将软件程序生出固定的格式,写入到DSP板上的EPROM或者FLASH存储器中,代码固化后,DSP系统就可以脱离仿真器独立运行了。

DSP系统在可以独立运行之后,还应该继续进行一系列的系统性能测试,评估系统的性能指标是否达到设计要求。在系统测试的过程中,要反复检查系统的实时性、精度和稳定性,如果达不到设计要求,就需要通过修改软件(甚至调整硬件)予以解决。例如,DSP系统的开发,特别是软件开发是一个需要反复进行的过程,虽然通过算法模拟基本上可以知道实时系统的性能,但实际上模拟环境不可能做到与实时系统环境完全一致,而且将模拟算法移植到实时系统时必须考虑算法是否能够实时运行的问题。如果算法运算量太大不能在硬件上实时运行,则必须重新修改或简化算法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈