


单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,*,1.3 嵌入式系统设计过程,本节,主要介绍嵌入式系统设计的一般过程和嵌入式系统设计的主要步骤我们将采用自顶向下的方法,从对系统最抽象的描述开始,一步一步地推进到细节内容如图1-3所示,,,首先从系统需求开始然后是规格说明,在这一步对想要的进行更加细致地描述,但是规格说明只对系统如何工作(工作过程)进行了描述,这些描述并不涉及它的组成系统内部的详细构造要在开发系统的体系结构时才能展现出来,这一阶段以大的构件为单位给出了系统的结构一旦知道了需要的构件,就可以设计这些构件,包括软件模块和任何所需要的专用硬件模块在这些构件的基础上,可以构造出所需要的完整的系统如图1-3所示,,首先从系统需求开始然后是规格说明,在这一步对想要的进行更加细致地描述,但是规格说明只对系统如何工作进行了描述,这些描述并不涉及它的组成系统内部的详细构造要在开发系统的体系结构时才能展现出来,这一阶段以大的构件为单位给出了系统的结构一旦知道了需要的构件,就可以设计这些构件,包括软件模块和任何所需要的专用硬件模块在这些构件的基础上,可以构造出所需要的完整的系统。
1.系统需求分析,,确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准系统的需求一般分功能性需求和非功能性需求两方面功能性需求是系统的基本功能,,,如输入输出信号,操作方式等;非功能性需求包括系统性能,成本,功耗,体积,重量,,等因素2.体系结构设计,,描述系统如何实现所述的功能和非功能需求,包括对硬件,软件和执行装置的功能划分.,,以及系统的软件,硬件选型等一个好的体系结构是设计成功与否的关键3.硬件/软件设计,,基于体系结构,对系统的软件,硬件进行详细设计为了缩短产品开发周期,设计往往,,并行的应该说嵌入式系统设计的工作大部分都集中在软件设计上,采用采用面向对象技术,软件组件技术,模块化设计是现代软件工程经常采用的方法4.系统集成,,把系统的软件,硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误,5.系统测试,,对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求针对系统的不同的复杂程度,目前有一些常用的系统设计方法,如瀑布设计方法,自顶向下设计的方法,自下向上的设计方法,螺旋设计方法,逐步细化设计方法和并行设计方法等,根据设计对象复杂程度的不同,可以灵活的选择不同的系统设计方法。
1.3.1 需求分析,,显然,在设计一个系统之前,必须清楚在设计什么在设计的最初阶段,截取这些信息,以此来设计系统的体系结构和构件这一阶段的任务通常通过两种过程来实现:,,首先,从客户那里收集系统的非形式描述(这叫做需求);,,然后,对需求进行提炼,得到系统的规格说明,这些规格说明里包含了进行系统体系结构设计所需要的足够信息1,.,需求与规格说明,区分需求,和,规格说明,是必要的,因为在客户关于所需系统的描述和体系结构系统设计师所需的信息之间存在极大的距离嵌入式系统的客户通常不是嵌入式系统的设计人员,甚至也不是最终产品的设计人员,他们对嵌入式系统的理解是建立在他们想象的与系统之间的交互的基础上的,对系统可能有一些不切实际的期望,或者是使用他们自己的话而不是专业术语来表达其需求将客户的描述转化为系统设计者的描述的结构化方法就是从客户的需求中获取一组一致性的需求,然后从中整理成正式的规格说明通常,需求包括功能部分和非功能部分当然,我们必须从中获取系统的基本功能,但是,只有功能的描述是不够的非功能需求包括:,,,(1) 性能,,系统的处理速度通常是该系统的实用性和最终成本的主要决定因素正如我们已经注意到的,性能是软件性能度量(如执行一个用户级函数的大致时间和必须完成的一个特定操作的硬时限)的组合。
2) 价格,,产品最终的成本或者销售价格也是一个主要的考虑因素产品的成本包含两个主要部分:生产成本,包括购买构件以及组装它们的花费;不可再生的工程成本(NRE), 包括人力成本以及设计系统的其他花费3) 系统的尺寸和重量,,最终产品的物理特性会因为使用的领域不同而大不相同一台控制装配线的工业控制系统通常装配在一个标准尺寸的柜子里,它对重量没有什么约束,但是手持设备对系统的尺寸和重量就有很严格的限制4) 功耗,,对于那些靠电池来供电的系统以及其他一些电器来说,电源是十分重要的,电源问题在需求阶段以电池寿命的方式提出因为顾客通常不能够以瓦为单位描述允许的功率,2. 确认需求,确认这一系列的需求不仅需要理解什么是用户需要的,而且需要理解他们是如何表达这些需求的精炼系统需求的好方法,至少是精炼用户界面部分的方法是建立一个模型这个模型可以使用已存数据来模拟功能,并且可以在个人电脑或工作站上运行它应该让用户了解系统是如何使用的,以及用户如何和它进行交互通常,设备的非功能模型可以让用户了解系统的特性,比如系统的尺寸和重量3. 简单的需求表格,对一个大系统进行需求分析是一项复杂而费时的工作,但是,取得相对少量的格式清晰、简单的信息是理解系统需求的一个好的开始。
表1-2,展示了一个需求表格的样本,这个表格在某项工程的开始时填写在考虑系统基本特征时可以将这个表格作为检查表表格内容包括:,,(1) 名称,,这一项十分简单,但却十分有用给该项工程取一个名字不仅在和别人讨论这个工程时更加方便,也可以使设计的目的更加明确2) 目的,,这一项可以是简单的一到两行的关于系统将要满足的需求的描述,如果你不能用一两句话来描述你所设计的系统的主要特性的话,说明你还不是十分了解它3) 输入和输出,,这两项内容比较复杂,对系统的输入和输出包含了大量细节:,,① 数据类型:模拟电信号?数字数据?机械输入?,,② 数据特性:周期性到达的数据,比如数字音频信号?或者是用户的输入?每个数据元素多少位?,,③ 输入/输出设备的类型:按键?模/数转换器?视频显示器?,,(4) 功能,,,这一项是关于系统所做的工作的更加详细的描述从输入到输出进行分析是提出功能的一种好方法:当系统接收到输入时,它执行哪些动作?用户通过界面输入的数据如何对该功能产生影响?不同功能之间是如何相互作用的?,,,(5) 性能,,许多嵌入式系统都要花费一定的时间来控制物理设备,或是处理从外界输入的数据在大部分情况下,这些计算必须在一定的时间内处理完,对性能的要求必须尽早地明确,因为这些要求在执行过程中得认真加以考虑,以便随时检查我们的系统是否达到了这些要求。
6) 生产成本,,,这中间主要包含了硬件构件的花费如果你不能确定将要花费在硬件构件上的费用的确切数目,那么你起码得对最终产品的价格有一个粗略的了解因为价格最终影响了系统的体系结构:一台将要以10美元出售的设备的内部结构和一台打算以100美元出售的机器的内部结构肯定是不同的7) 功耗,,对系统的功耗你可能只有一个粗略的了解但是,没有关于这方面的信息是不行的通常,决定系统是靠电池供电还是通过墙上的插座供电是系统设计过程中的一个重大决定靠电池供电的系统必须认真地对功耗问题进行考虑8) 物理尺寸和重量,,对系统的物理尺寸和重量有一定的了解有助于对系统体系结构的设计一台台式机在对构件的选择上比那些佩带式录音机要宽松得多对一个大系统进行更加深入的需求分析可以使用与表1-2类似的表格作为更长的需求文档的总结在介绍完关于这个表格的章节之后,更长的需求文档包括上面提到的每一项的细节例如,前面用一句话描述的每个单个的特征可能在规格说明中被详细描述为一节4. 需求的内部一致性,,在写完需求分析以后,你应该对它们的内部一致性进行检查:,,是否忘记了给某个功能指定输入或输出?,,是否考虑了系统运行的所有方式? 是否把一些不切实际的要求放到了一个电池供电、低成本的机器中了?,,为了练习如何获得系统需求,示例1.1创建了GPS移动地图系统的需求。
示例1.1 GPS移动地图的需求分析,移动地图是一种手持设备,该设备为用户显示他当前所处位置周围的地形的一张地图;地图的内容随着用户以及该设备所处的位置的改变而改变移动地图从GPS上得到其位置信息,GPS是一个卫星导航系统移动地图的显示,如图1-4所示,针对GPS移动地图我们有什么需求?下面是一些最初的清单:,,,功能性 本系统主要针对高速公路上开车的用户或类似用户,而不是需要使用更专用的数据库和功能的航海或航空人员系统应展示可在标准地形图数据库中得到的主要道路和其他陆地标志用户界面 屏幕至少应该有,400×600,像素分辨率该设备的控制按钮不应多于三个按下按钮时菜单系统应在屏幕上弹出,允许用户系统控制做出选择性能 地图应该平滑滚动加电后,显示在,1,秒钟内出现,系统应可以核查其位置并在,15,秒内显示当前地图4),成本 单个设备售价(零售价)不高于500美元5),设备物理尺寸和重量应非常适于放在手掌中6),功耗 四节AA电池至少可以连续运行8小时注意,:上述许多需求并不是按工程单位规定的,例如,物理尺寸是相对于手而不是用厘米标出的虽然这些需求必须最终转换成可以被设计者使用的某种东西,但是保持某种顾客想要的记录将有助于解决设计期间后期出现的有关规格说明的问题。
基于上述讨论,让我们为移动地图系统编写一份需求表格,如表1-3:,名称,CPS移动地图,目的,为驾驶者提供的用户级移动地图,输入,一个电源按钮,两个控制按钮,输出,逆光LCD,显示400×600像素分辨率,功能,使用5种接收器的GPS系统;三种用户可选的分辨率总是显示当前的经纬度,性能,0.25s内即可更新一次屏幕,生产成本,100美元,功耗,100mW,物理尺寸和重量,不大于2×16m2,12盎司(约340g),,,表1-3,加上了设计人员所要使用的某些用工程术语表述的需求例如,它提供了设备的实际尺寸生产成本与销售价格有关,通过使用简单的经验法则可以得到:销售价4~5倍于所售商品的成本(所有构件的成本之和)1.3.2,规格说明,,,规格说明更精确一些,它起到客户和生产者之间的合同的作用正因为如此,规格说明必须小心编写,以便精确地反映客户的需求并且作为设计时必须明确遵循的要求规格说明应该足够明晰,以便别人可以验证它是否符合系统需求并且完全满足客户的期望它亦不能有歧义,设计者应知道什么是他们需要构造的设计者可能碰到各种不同类型的由于不明确的规格说明而导致的问题如果在某个特定的状况下的,某些特性,的行为在规格说明中不明确,那么设计者可能实现错误的功能。
如果规格说明的,全局特征,是错的或者是不完整的,那么由该规格说明建造的整个系统体系结构可能就不符合实现的要求GPS,系统的规格说明包括下列构件:,从GPS卫星接收到的数据地图数据用户界面必须执行的满足客户需求的操作保持系统运行所需的后备动作,如操纵GPS接收机体系结构设计,,规格说明不讲系统如何做,而只是讲系统做什么描述系统如何实现那些功能是体系结构的目的体系结构是系统整体结构的一个计划,而后用于设计搭建整个体系结构的构件体系结构的创建是许多设计者认为的设计的第一阶段为了理解体系结构描述是什么,让我们来看一下示例1.1的移动地图样例的体系结构图1-5,以框图形式展示了样例系统体系结构,这些框图展示了它的主要操作和其间的数据流.,,框图仍很抽象,还没有规定运行在CPU上的软件执行什么操作,专用硬件完成什么等等.不过,为描述如何实现在规格说明中规定的功能框图还要做许多事情例如,可以清楚地看到需要搜索地形图数据库、绘制显示的结果我们已经选择分离那些功能以便可能并行地完成这些工作,比如从搜索数据库分离出绘制功能可以有助于更平滑地更新屏幕只有在设计了一个并未偏向于太多实现细节的初始体系结构之后,才可能把系统框图细分成,两部分框图,:一部分针对硬件,另一部分针对软件。
这两部分细化过的框图,如图1-6所示硬件框图清楚地展示了有一个CPU,周围有存储器和I/O设备尤其是,我们已选择使用两种存储器:一种是针对像素显示的帧缓冲器,另一种是CPU使用的通用程序/数据存储器软件框图基本上与系统框图一致,但是增加了一个计时器,控制何时读取用户界面上的按钮,并在屏幕上绘制数据为了得到一个真正完整的体系结构描述,我们需要更多细节,比如软件框图中的单元在硬件框图的什么地方执行,何时操作准时执行等体系结构描述必须同时满足功能上和非功能上的需求不仅所需求的功能要体现,而且必须符合成本、速度、功率和其他非功能上的约束先从系统体系结构开始,逐步把这一结构细化为硬件和软件体系结构是确保系统符合所有规格说明的一种好方法.,,首先集中考虑系统框图中的功能元素然后在建造硬件和软件体系结构时考虑非功能约束如何知道硬件和软件体系结构实际上符合速度、成本等方面的限制呢?,,必须有某种方式估算框图中的构件,如移动地图系统中的搜索和绘制功能的特性精确估算源于经验,既有一般的设计经验也有类似系统的特定经验不过,有时建造一个简化的模型有助于做出更精确的估算在体系结构建造阶段所有非功能约束的合理估算是至关重要的,因为基于有问题的数据的决策在设计的最后阶段会显现出来,表明我们的设计实际上不符合规格说明。
1.3.4 设计硬件构件和软件构件,体系结构描述告诉我们需要什么样的构件构件设计使得构件与体系结构和规格说明一致构件通常既包括硬件——现场可编程门阵列(FPGA) ﹑电路板等等,还包括软件模块一些构件是现成的,例如CPU在任何情况下都是一个标准构件,同样的还有存储器芯片和很多其他构件在移动地图中,GPS接收器虽然是预先设计的标准构件利用标准软件模块,访问标准地形数据库这些数据库的数据不仅使用预定义的格式,而且被高度地压缩以节省存储空间在这些访问函数中使用标准软件不仅节约设计时间,也较快地实现像数据解压缩这样的专用函数但是,我们必须自己设计一些构件,即使使用标准集成电路,也必须设计连接它们的印刷线路板同时,很有可能要做大量定制编程当然,建立嵌入式软件模块时,你必须用你的专业技能确保系统实时性良好并且在允许的范围内不占用更多的存储空间移动地图软件例子中的电能消耗特别重要,你可能要非常小心地读写存储器以减小功耗,例如,由于存储器访问是主要的功耗来源,存储器事务必须精心安排以避免多次读取同样的数据1.3.5 系统集成,只有建立构件后才能将它们合并得到一个能运转的系统,当然这个阶段不仅仅是把所有的东西插在一起。
在系统集成中通常可以发现错误,而好的计划能帮助我们快速找到这些错误按阶段架构系统并且正确运行选好的测试,经常能更容易地找到这些错误如果每次只对一部分模块排错,很可能更容易发现和识别简单的错误只有在早期修正这些简单的错误,才能发现那些只有在系统高负荷时才能确定的、比较复杂或是含混的错误我们必须确保在体系结构和各构件设计阶段尽可能容易地按阶段组装系统和相对独立地测试系统功能因为嵌入式系统使用的调试工具比在桌面系统中可找到的工具有限得多,因此,要在系统集成时发现问题,需要详细地观察系统以准确确定错误1.3.6 系统测试,对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求针对系统的复杂程度不同,目前有一些常用的系统设计方法,如瀑布设计方法、自顶向下的设计方法、自下向上的设计方法、螺旋设计方法、逐步细化设计方法和并行设计方法等,根据设计对象复杂程度的不同,可以灵活地选择不同的系统设计方法1.4 本章小结,,本章主要介绍了嵌入式系统的概念、嵌入式系统的特点及分类、嵌入式系统的主要应用领域、主流嵌入式微处理器、主流嵌入式实时操作系统以及嵌入式系统设计方法,希望读者能够通过对本章的阅读,对以上知识作到初步掌握,为学习以后章节知识打好基础。
嵌入式系统的一般设计方法,,通常在单片机系统中的开发和应用中,是按照,如图1-7所示,的流程进行的可见,在嵌入式系统的开发的过程中,因为对应每一个处理器的硬件平台都是通用的,固定的,成熟的所以,再开发过程中减少了硬件系统错误的引入机会;同时,因为嵌入式操作系统屏蔽掉了底层硬件的很多复杂信息,使得开发者通过操作系统提供的API函数可以完成大部分工作,大大地简化了开发过程,提高了系统的稳定性综上所述,嵌入式系统的开发可以说是把开发者从反复进行硬件平台设计过程中解放出来,从而可以把主要的精力放在编写特定的应用程序上这个过程更类似于系统机(如PC机)上的某个操作系统下开发程序练 习 题,1.嵌入式系统的定义2.嵌入式系统有哪些特点?,,3.嵌入式系统是如何分类的?,,4.简述嵌入式处理器、嵌入式实时操作系统的种类和特点5.如何选择嵌入式处理器和嵌入式操作系统?,,6.简述嵌入式系统的设计过程图 1-3 设计过程的主要抽象层次,,,需求分析,规格说明,体系结构设计,硬件设计,系统集成,系统测试,产品,软件设计,执行装置设计,返回,,名称,,目的,,输入,,输出,,功能,,性能,,生产成本,,功耗,,物理尺寸和重量,,,表1-2需求表格样本,返回,,图 1-4 GPS移动地图,,,纬度:4013 经度:3219,1-78,苏格兰路,用户所在位置经纬度,用户当前位置,返回,,基于上述讨论,让我们为移动地图系统编写一份需求表格,如表1-3:,名称,CPS移动地图,目的,为驾驶者提供的用户级移动地图,输入,一个电源按钮,两个控制按钮,输出,逆光LCD,显示400×600像素分辨率,功能,使用5种接收器的GPS系统;三种用户可选的分辨率总是显示当前的经纬度,性能,0.25s内即可更新一次屏幕,生产成本,100美元,功耗,100mW,物理尺寸和重量,不大于2×16m2,12盎司(约340g),返回,,GPS接受信号,数据库,显示器,搜索引擎,转换器,用户界面,图1-5 移动地图框图,返回,,显示器,Zhen,,缓冲器,CPU,GPS信号接收器,I/O面板,存储器,硬件,数据库搜索,转换器,位置,用户界面,时钟,像素,软件,返回,图1-6移动地图的硬件和软件系统,,用户需求,开发结束,整个系统测试,按照设计的硬件平台编写软件,软件测试通过,选择处理器设计硬件平台,否,是,遇到硬件问题,修改硬件平台,否,是,单片机系统的开发流程,,用户需求,开发结束,整个系统测试,选择合适的嵌入式操作系统,在操作系统上开发应用程序,应用程序测试通过,选择嵌入式处理器,,及硬件平台,否,是,嵌入式系统开发流程,返回,,。