前言DSP嵌入式系统软件开发遵循标准的嵌入式系统软硬件协同设计模型,如图1所示。
图1 DSP软件开发遵循嵌入式软硬件协同设计模型这个开发过程可分为6个阶段;第1阶段:产品规格定义第2阶段:算法建模第3阶段:软硬件划分第4阶段:迭代与选择第5阶段:实时软件设计第6阶段:软硬件集成本书将涵盖以上每个DSP软件开发的重要阶段。
第1阶段:产品规格定义第1阶段是嵌入式和实时系统的概述,向读者介绍这一类型软件开发的独特方面。
我们需要先理解几个关于嵌入式系统的挑战,才可以基于数字信号处理展开讨论。这些挑战涉及非常复杂的环境,以及系统之间的交互,嵌入式组件内比重渐增加的软件,软件代码复用及快速再造工程的需求,快速创新和不断变化的市场需求推动下的产品发布周期,众多实时的要求和需求管理的需要,及对于质量和过程成熟度日益的关注。
第1章和第2章会提供DSP以及嵌入式系统的概述,简要说明一般嵌入式系统和DSP的主要区别。
第2阶段:算法建模第2阶段的重点在于对信号处理基本算法本质的理解。数字信号处理是使用数字或符号组成的序列来代表离散时间信号,并处理这些信号。DSP涉及音频和语音信号处理、声呐和雷达信号处理、统计信号处理、数字图像处理、通信、系统控制、生物医学信号处理等诸多领域。DSP算法用于处理这些数字信号。在信号处理中有一组基本算法,例如傅里叶变换、数字滤波器、卷积和相关性。第7章将会介绍和解释一些最重要和最基本的DSP算法,作为本书后面许多主题的基础。
第3阶段:软硬件划分系统的硬件和软件组件划分在任何嵌入式开发项目中都是重要的一步。
大部分DSP是可编程的。数字信号处理的可编程架构有多种形式,每个都对成本、功耗、性能和灵活性有所权衡。在谱系的一端,数字信号处理系统设计人员通过使用专有的汇编语言可以实现应用的高效率和高性能。在谱系的另一端,系统开发人员可以使用普遍的ANSI C或C++或其他领域特定的语言,并在商用台式电脑上执行所实现的算法,实现数字信号处理软件栈。第4章详述在一连续体不同的点上实现的权衡:一端的最大数字信号处理性能以及另一端由软件实现的灵活性和便携性。每个解决方案的权衡都一步步详细描述,以带领数字信号处理系统开发者找到满足他们特定用例需求的解决方案为目标。
DSP可采用现场可编程门阵列(Field Programmable Gate Array,FPGA)实现。作为一个例子,第5章讨论关于空间复用和不同增益架构上的挑战,并介绍FPGA的一些架构,报告使用FPGA实现这些系统的实验结果。第5章将介绍一个灵活的架构和空间复用MIMO检测器的实现、Flex-sphere及其FPGA实现。我们还介绍WiMAX系统中的波束形成硬件架构,作为给下一代无线系统增加多样性和提高性能的方法。
用于数字信号处理系统的硬件平台有很多种不同的设计,每个都有其固有可编程性、功耗和性能的权衡。适合一个系统设计师的可能不适合另一个。第6章详细描述多种数字信号处理平台以及相关系统的可配置性和可编程性设计。在谱系的一端,详细了解特定应用集成电路(Application Specific Integrated Circuit,ASIC)这种高性能、低可配置的解决方案。在谱系的另一端,作为高度可配置的解决方案介绍具有SIMD扩展的通用型嵌入式微处理器,这种解决方案支持强大的软件可编程性。不同的设计重点逐个介绍,如基于可重新配置的现场可编程门阵列解决方案,以及有不同程度软件可编程性的高性能特定应用集成处理器(Application Specific Integrated Processor,ASIP)。第6章将介绍每个系统的设计权衡,作为一种指导系统开发人员的方法,帮助他们选择适合当前和未来系统部署的数字信号处理硬件平台和组件。
第4阶段:迭代与选择DSP开发的另一个关键问题是嵌入式生命周期管理。这个周期始于DSP解决方案的选择,要制定一个嵌入式系统以满足性能以及成本、上市时间及其他重要的系统约束。正如前面提到的,嵌入式系统是一个整合在大系统中的专门计算机系统。许多嵌入式系统使用数字信号处理器来实现。DSP将与其他嵌入式元件连接,以执行特定的功能。具体的嵌入式应用将决定其需使用的DSP。例如,如果嵌入的应用程序执行视频处理,系统设计人员可以选择定制的DSP来执行媒体处理,包括视频和音频处理。第3章将讨论嵌入式生命周期和DSP的各种选项,以及如何来确定整个系统的性能和能力。
第5阶段:实时软件设计实时软件设计遵循的五个步骤如图1所示。
1.识别要进行处理的激励和激励所需的响应。
2.确定每个激励和响应的时序约束。
3.在并发进程中集中处理激励和响应。
4.设计算法来处理激励和响应,满足给定的时间要求。
5.设计一个调度方案,确保进程的及时调度,以满足时间期限。
我们将详细讨论这一阶段的每个过程。
1.识别要进行处理的激励和激励所需的响应首先,我们需要识别信号处理的系统激励以及它们的响应。不管使用硬件还是软件,这都是必须做的。
在案例分析2中,我们介绍一个简单实用但非常强大的规格说明技术,为开发者在这个规格层次提供一些指引。重