1 引 言
当今,在嵌入式领域,嵌入式技术已经成为新的技术热点。嵌入式系统的最典型的特点是它同人们的日常生活紧密相关,小到MP3、PDA等微型数字化设备,大到信息家电、智能电器、车载GPS等形形色色运用了嵌入式技术的电子产品和各种新型嵌入式设备在数量上现已远远超过了通用计算机。在嵌入式设备发展的30多年的历史中,嵌入式技术从来没有像现在这样风靡过,人类也从来没有像现在这样享受嵌入式技术带来的便利。
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
从整体来看,我们将嵌入式系统分为两个部分;第一个部分是与应用相关的硬件平台,它负责和外部环境进行交互;第二部分是在这个硬件平台上运行的功能软件。在过去的几年里,微电子技术的迅速发展使得硬件部件的花费降低了很多,这使得有很多人将一些原来必须使用软件的部分用硬件实现了出来,软件和硬件的区分也逐渐变得模糊。然而,嵌入式系统的开发者必须在最短的时限内和最低的花费设计出高性能的系统。最重要的步骤是根据具体需求将整个系统分为硬件部分和软件部分。在通用PC平台上作开发,这种软硬件的划分是很轻松的;但是,基于嵌入式平台,需要考虑很多的因素。例如:为了提高运行速度和减少任务切换的花费,必须将某些功能用硬件来实现。本文重点介绍了两种嵌入式系统设计模型,以及对这两种嵌入式系统设计模型进行了分析比较。
2 硬件优先的设计方法
硬件优先的设计方法,即传统的系统设计方法,它是一种依靠顺序控制流的做法。
这种方法首先是对整个系统的需求分析,由于嵌入式系统的特殊性,需要仔细考虑功能性、能耗、成本花费等各个方面。在完成了需求分析以后,下一步要进行的就是软硬件部分的划分,这一步十分重要,从这个时候起,系统将要被分为软件和硬件两个部分:
(1) 硬件部分包括系统的硬件平台以及某些用专用硬件(例如:ASIC和Ip-cores)实现的功能模块;
(2) 软件部分是指经过特殊处理过的操作系统和建立在操作系统之上的一些功能模块。
第二步是相当重要的一个步骤,它通常是由嵌入式系统设计者根据自己的经验和直觉来做的。在这个部分完成以后,就要进行硬件的设计和实现。在硬件部分可用以后,就可以开始软件部分的实现了。在这个序列化的设计方法的最后一步就是整合与测试,即将软件和硬件部分融合到一起来评估整个系统的性能。

图1硬件优先的嵌入式设计模型
尽管硬件优先的设计模型存在有一些问题(在文中第四部分详细说明),但它依然是一种很流行的方案。在一些小型和中型复杂度的系统中,由于硬件的复杂度不高,而且技术也比较成熟,通常都会选择这种方法;但是在一些大型的系统中,这种方法就不是很适宜了,需要更先进的设计模型。
3 软硬件协同设计方法
软硬件协同设计是在系统目标要求的指导下,通过综合分析系统软硬件功能及现有资源,最大限度地挖掘系统软硬件之间的并发性,协同设计软硬件体系结构,以使系统能够工作在最佳工作状态。它的实质就是让软件和硬件体系作为一个整体并行设计、找到软硬件的最佳结合点,使它们能够以最有效的方式相互作用,互相结合,从而使系统工作在最佳状态。
这种方法的第一步需要用形式化的方法对系统的需求进行描述。有几种方法可以采用:Petri网、数据流图以及状态机。这种设计方式试图利用这些数学上的推理方法来对系统行为做一个全面的描述,在对系统进行形式化的描述以后,就可以将系统分解为一些功能模块,每个模块都实现整体功能的一部分。
在第一步中得到的功能模块既可以用硬件也可以用软件来实现。利用形式化的方法,我们可以采用最佳的选择。在软硬件划分的过程中,通过各方面的评估,例如:时间复杂度、花费估计等得到一组最佳的选择。在得到了最优解以后,就是实现各模块了;但是,这里的实现仅仅只是理论上的,例如:硬件模块用VHDL描述,软件模块用C或C++语言表示。

图2 软硬件协同设计模型
最后一步就是系统整合了。在这个过程中,将所有的模块组合到一起,然后验证这些模块的组合是否符合系统的形式化说明;如果不符合,就要重新进行软硬件的划分。当前的研究热点之一是对验证算法的理论研究,利用这些理论算法,完全可以将软硬件的划分和模块的验证发展为自动化的过程。
由于软硬件的划分是基于理论算法的,这在设计中可以尽早的暴露问题,以减少损失。但是这种设计模型也有其局限性(在文中第四部分详细说明)。
4 两种模型的分析与比较
4.1 硬件优先设计模型分析
利用硬件优先这种方法设计的嵌入式系统一直到最后一步才能验证系统设计的正确性。因此,在系统开发过程中通过反复修改、反复试验的方法使产品达到设计要求,这在很大程度上依赖于设计者的经验;而且设计周期长、费用开支大,产品质量难以保证;这是因为在反复修改过程中,常会在某些方面背离原始设计的要求。因此,为了降低设计的风险,设计人员会选择采用己经成熟的模块,而不是自己重新设计;与此同时,这种设计方法还有一个很大的缺点:在硬件部分可用之前是不能实施软件模块。由于以上问题,硬件优先设计方法适用于在一些小型和中型复杂度的系统中;在这些系统中,硬件的复杂度不高,而且技术也相对比较成熟;因此通常都会选择这种方法。
2
0
免责声明:以上内容凡注明署名的,其版权属于署名者所有,转载请注明署名;所有转载的内容,EDN China发布该内容都是出于传递更多信息之目的,如果有侵犯版权事宜,请通知
edneditor@gmail.com 或 010-66422242-213,我们将在第一时间删除该信息。