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