




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 3嵌入式系统设计过程 本节 主要介绍嵌入式系统设计的一般过程和嵌入式系统设计的主要步骤 我们将采用自顶向下的方法 从对系统最抽象的描述开始 一步一步地推进到细节内容 1 如图1 3所示 首先从系统需求开始 然后是规格说明 在这一步对想要的进行更加细致地描述 但是规格说明只对系统如何工作 工作过程 进行了描述 这些描述并不涉及它的组成 系统内部的详细构造要在开发系统的体系结构时才能展现出来 这一阶段以大的构件为单位给出了系统的结构 一旦知道了需要的构件 就可以设计这些构件 包括软件模块和任何所需要的专用硬件模块 在这些构件的基础上 可以构造出所需要的完整的系统 2 如图1 3所示 首先从系统需求开始 然后是规格说明 在这一步对想要的进行更加细致地描述 但是规格说明只对系统如何工作进行了描述 这些描述并不涉及它的组成 系统内部的详细构造要在开发系统的体系结构时才能展现出来 这一阶段以大的构件为单位给出了系统的结构 一旦知道了需要的构件 就可以设计这些构件 包括软件模块和任何所需要的专用硬件模块 在这些构件的基础上 可以构造出所需要的完整的系统 3 1 系统需求分析确定设计任务和设计目标 并提炼出设计规格说明书 作为正式设计指导和验收的标准 系统的需求一般分功能性需求和非功能性需求两方面 功能性需求是系统的基本功能 如输入输出信号 操作方式等 非功能性需求包括系统性能 成本 功耗 体积 重量等因素 2 体系结构设计描述系统如何实现所述的功能和非功能需求 包括对硬件 软件和执行装置的功能划分 以及系统的软件 硬件选型等 一个好的体系结构是设计成功与否的关键 4 3 硬件 软件设计基于体系结构 对系统的软件 硬件进行详细设计 为了缩短产品开发周期 设计往往并行的 应该说嵌入式系统设计的工作大部分都集中在软件设计上 采用采用面向对象技术 软件组件技术 模块化设计是现代软件工程经常采用的方法 4 系统集成把系统的软件 硬件和执行装置集成在一起 进行调试 发现并改进单元设计过程中的错误 5 5 系统测试对设计好的系统进行测试 看其是否满足规格说明书中给定的功能要求 针对系统的不同的复杂程度 目前有一些常用的系统设计方法 如瀑布设计方法 自顶向下设计的方法 自下向上的设计方法 螺旋设计方法 逐步细化设计方法和并行设计方法等 根据设计对象复杂程度的不同 可以灵活的选择不同的系统设计方法 6 1 3 1需求分析 显然 在设计一个系统之前 必须清楚在设计什么 在设计的最初阶段 截取这些信息 以此来设计系统的体系结构和构件 这一阶段的任务通常通过两种过程来实现 首先 从客户那里收集系统的非形式描述 这叫做需求 然后 对需求进行提炼 得到系统的规格说明 这些规格说明里包含了进行系统体系结构设计所需要的足够信息 7 1 需求与规格说明 区分需求和规格说明是必要的 因为在客户关于所需系统的描述和体系结构系统设计师所需的信息之间存在极大的距离 嵌入式系统的客户通常不是嵌入式系统的设计人员 甚至也不是最终产品的设计人员 他们对嵌入式系统的理解是建立在他们想象的与系统之间的交互的基础上的 对系统可能有一些不切实际的期望 或者是使用他们自己的话而不是专业术语来表达其需求 将客户的描述转化为系统设计者的描述的结构化方法就是从客户的需求中获取一组一致性的需求 然后从中整理成正式的规格说明 8 通常 需求包括功能部分和非功能部分 当然 我们必须从中获取系统的基本功能 但是 只有功能的描述是不够的 非功能需求包括 1 性能系统的处理速度通常是该系统的实用性和最终成本的主要决定因素 正如我们已经注意到的 性能是软件性能度量 如执行一个用户级函数的大致时间和必须完成的一个特定操作的硬时限 的组合 9 2 价格产品最终的成本或者销售价格也是一个主要的考虑因素 产品的成本包含两个主要部分 生产成本 包括购买构件以及组装它们的花费 不可再生的工程成本 NRE 包括人力成本以及设计系统的其他花费 3 系统的尺寸和重量最终产品的物理特性会因为使用的领域不同而大不相同 一台控制装配线的工业控制系统通常装配在一个标准尺寸的柜子里 它对重量没有什么约束 但是手持设备对系统的尺寸和重量就有很严格的限制 10 4 功耗对于那些靠电池来供电的系统以及其他一些电器来说 电源是十分重要的 电源问题在需求阶段以电池寿命的方式提出 因为顾客通常不能够以瓦为单位描述允许的功率 11 2 确认需求 确认这一系列的需求不仅需要理解什么是用户需要的 而且需要理解他们是如何表达这些需求的 精炼系统需求的好方法 至少是精炼用户界面部分的方法是建立一个模型 这个模型可以使用已存数据来模拟功能 并且可以在个人电脑或工作站上运行 它应该让用户了解系统是如何使用的 以及用户如何和它进行交互 通常 设备的非功能模型可以让用户了解系统的特性 比如系统的尺寸和重量 12 3 简单的需求表格 对一个大系统进行需求分析是一项复杂而费时的工作 但是 取得相对少量的格式清晰 简单的信息是理解系统需求的一个好的开始 表1 2展示了一个需求表格的样本 这个表格在某项工程的开始时填写 在考虑系统基本特征时可以将这个表格作为检查表 表格内容包括 13 1 名称这一项十分简单 但却十分有用 给该项工程取一个名字不仅在和别人讨论这个工程时更加方便 也可以使设计的目的更加明确 2 目的这一项可以是简单的一到两行的关于系统将要满足的需求的描述 如果你不能用一两句话来描述你所设计的系统的主要特性的话 说明你还不是十分了解它 14 3 输入和输出这两项内容比较复杂 对系统的输入和输出包含了大量细节 数据类型 模拟电信号 数字数据 机械输入 数据特性 周期性到达的数据 比如数字音频信号 或者是用户的输入 每个数据元素多少位 输入 输出设备的类型 按键 模 数转换器 视频显示器 15 4 功能这一项是关于系统所做的工作的更加详细的描述 从输入到输出进行分析是提出功能的一种好方法 当系统接收到输入时 它执行哪些动作 用户通过界面输入的数据如何对该功能产生影响 不同功能之间是如何相互作用的 16 5 性能许多嵌入式系统都要花费一定的时间来控制物理设备 或是处理从外界输入的数据 在大部分情况下 这些计算必须在一定的时间内处理完 对性能的要求必须尽早地明确 因为这些要求在执行过程中得认真加以考虑 以便随时检查我们的系统是否达到了这些要求 17 6 生产成本这中间主要包含了硬件构件的花费 如果你不能确定将要花费在硬件构件上的费用的确切数目 那么你起码得对最终产品的价格有一个粗略的了解 因为价格最终影响了系统的体系结构 一台将要以10美元出售的设备的内部结构和一台打算以100美元出售的机器的内部结构肯定是不同的 18 7 功耗对系统的功耗你可能只有一个粗略的了解 但是 没有关于这方面的信息是不行的 通常 决定系统是靠电池供电还是通过墙上的插座供电是系统设计过程中的一个重大决定 靠电池供电的系统必须认真地对功耗问题进行考虑 8 物理尺寸和重量对系统的物理尺寸和重量有一定的了解有助于对系统体系结构的设计 一台台式机在对构件的选择上比那些佩带式录音机要宽松得多 19 对一个大系统进行更加深入的需求分析可以使用与表1 2类似的表格作为更长的需求文档的总结 在介绍完关于这个表格的章节之后 更长的需求文档包括上面提到的每一项的细节 例如 前面用一句话描述的每个单个的特征可能在规格说明中被详细描述为一节 20 4 需求的内部一致性 在写完需求分析以后 你应该对它们的内部一致性进行检查 是否忘记了给某个功能指定输入或输出 是否考虑了系统运行的所有方式 是否把一些不切实际的要求放到了一个电池供电 低成本的机器中了 21 为了练习如何获得系统需求 示例1 1创建了GPS移动地图系统的需求 示例1 1GPS移动地图的需求分析 移动地图是一种手持设备 该设备为用户显示他当前所处位置周围的地形的一张地图 地图的内容随着用户以及该设备所处的位置的改变而改变 移动地图从GPS上得到其位置信息 GPS是一个卫星导航系统 移动地图的显示如图1 4所示 22 针对GPS移动地图我们有什么需求 下面是一些最初的清单 功能性本系统主要针对高速公路上开车的用户或类似用户 而不是需要使用更专用的数据库和功能的航海或航空人员 系统应展示可在标准地形图数据库中得到的主要道路和其他陆地标志 用户界面屏幕至少应该有400 600像素分辨率 该设备的控制按钮不应多于三个 按下按钮时菜单系统应在屏幕上弹出 允许用户系统控制做出选择 性能地图应该平滑滚动 加电后 显示在1秒钟内出现 系统应可以核查其位置并在15秒内显示当前地图 23 4 成本单个设备售价 零售价 不高于500美元 5 设备物理尺寸和重量应非常适于放在手掌中 6 功耗四节AA电池至少可以连续运行8小时 注意 上述许多需求并不是按工程单位规定的 例如 物理尺寸是相对于手而不是用厘米标出的 虽然这些需求必须最终转换成可以被设计者使用的某种东西 但是保持某种顾客想要的记录将有助于解决设计期间后期出现的有关规格说明的问题 24 基于上述讨论 让我们为移动地图系统编写一份需求表格 如表1 3 25 表1 3加上了设计人员所要使用的某些用工程术语表述的需求 例如 它提供了设备的实际尺寸 生产成本与销售价格有关 通过使用简单的经验法则可以得到 销售价4 5倍于所售商品的成本 所有构件的成本之和 26 2020 3 22 27 1 3 2规格说明 规格说明更精确一些 它起到客户和生产者之间的合同的作用 正因为如此 规格说明必须小心编写 以便精确地反映客户的需求并且作为设计时必须明确遵循的要求 28 规格说明应该足够明晰 以便别人可以验证它是否符合系统需求并且完全满足客户的期望 它亦不能有歧义 设计者应知道什么是他们需要构造的 设计者可能碰到各种不同类型的由于不明确的规格说明而导致的问题 如果在某个特定的状况下的某些特性的行为在规格说明中不明确 那么设计者可能实现错误的功能 如果规格说明的全局特征是错的或者是不完整的 那么由该规格说明建造的整个系统体系结构可能就不符合实现的要求 29 GPS系统的规格说明包括下列构件 从GPS卫星接收到的数据 地图数据 用户界面 必须执行的满足客户需求的操作 保持系统运行所需的后备动作 如操纵GPS接收机 30 1 3 3体系结构设计 规格说明不讲系统如何做 而只是讲系统做什么 描述系统如何实现那些功能是体系结构的目的 体系结构是系统整体结构的一个计划 而后用于设计搭建整个体系结构的构件 体系结构的创建是许多设计者认为的设计的第一阶段 31 为了理解体系结构描述是什么 让我们来看一下示例1 1的移动地图样例的体系结构 图1 5以框图形式展示了样例系统体系结构 这些框图展示了它的主要操作和其间的数据流 框图仍很抽象 还没有规定运行在CPU上的软件执行什么操作 专用硬件完成什么等等 不过 为描述如何实现在规格说明中规定的功能框图还要做许多事情 例如 可以清楚地看到需要搜索地形图数据库 绘制显示的结果 我们已经选择分离那些功能以便可能并行地完成这些工作 比如从搜索数据库分离出绘制功能可以有助于更平滑地更新屏幕 32 只有在设计了一个并未偏向于太多实现细节的初始体系结构之后 才可能把系统框图细分成两部分框图 一部分针对硬件 另一部分针对软件 这两部分细化过的框图如图1 6所示 硬件框图清楚地展示了有一个CPU 周围有存储器和I O设备 尤其是 我们已选择使用两种存储器 一种是针对像素显示的帧缓冲器 另一种是CPU使用的通用程序 数据存储器 软件框图基本上与系统框图一致 但是增加了一个计时器 控制何时读取用户界面上的按钮 并在屏幕上绘制数据 为了得到一个真正完整的体系结构描述 我们需要更多细节 比如软件框图中的单元在硬件框图的什么地方执行 何时操作准时执行等 33 体系结构描述必须同时满足功能上和非功能上的需求 不仅所需求的功能要体现 而且必须符合成本 速度 功率和其他非功能上的约束 先从系统体系结构开始 逐步把这一结构细化为硬件和软件体系结构是确保系统符合所有规格说明的一种好方法 首先集中考虑系统框图中的功能元素 然后在建造硬件和软件体系结构时考虑非功能约束 34 如何知道硬件和软件体系结构实际上符合速度 成本等方面的限制呢 必须有某种方式估算框图中的构件 如移动地图系统中的搜索和绘制功能的特性 精确估算源于经验 既有一般的设计经验也有类似系统的特定经验 不过 有时建造一个简化的模型有助于做出更精确的估算 在体系结构建造阶段所有非功能约束的合理估算是至关重要的 因为基于有问题的数据的决策在设计的最后阶段会显现出来 表明我们的设计实际上不符合规格说明 35 1 3 4设计硬件构件和软件构件 体系结构描述告诉我们需要什么样的构件 构件设计使得构件与体系结构和规格说明一致 构件通常既包括硬件 现场可编程门阵列 FPGA 电路板等等 还包括软件模块 一些构件是现成的 例如CPU在任何情况下都是一个标准构件 同样的还有存储器芯片和很多其他构件 在移动地图中 GPS接收器虽然是预先设计的标准构件 利用标准软件模块 访问标准地形数据库 这些数据库的数据不仅使用预定义的格式 而且被高度地压缩以节省存储空间 在这些访问函数中使用标准软件不仅节约设计时间 也较快地实现像数据解压缩这样的专用函数 36 但是 我们必须自己设计一些构件 即使使用标准集成电路 也必须设计连接它们的印刷线路板 同时 很有可能要做大量定制编程 当然 建立嵌入式软件模块时 你必须用你的专业技能确保系统实时性良好并且在允许的范围内不占用更多的存储空间 移动地图软件例子中的电能消耗特别重要 你可能要非常小心地读写存储器以减小功耗 例如 由于存储器访问是主要的功耗来源 存储器事务必须精心安排以避免多次读取同样的数据 37 1 3 5系统集成 只有建立构件后才能将它们合并得到一个能运转的系统 当然这个阶段不仅仅是把所有的东西插在一起 在系统集成中通常可以发现错误 而好的计划能帮助我们快速找到这些错误 按阶段架构系统并且正确运行选好的测试 经常能更容易地找到这些错误 如果每次只对一部分模块排错 很可能更容易发现和识别简单的错误 只有在早期修正这些简单的错误 才能发现那些只有在系统高负荷时才能确定的 比较复杂或是含混的错误 38 我们必须确保在体系结构和各构件设计阶段尽可能容易地按阶段组装系统和相对独立地测试系统功能 因为嵌入式系统使用的调试工具比在桌面系统中可找到的工具有限得多 因此 要在系统集成时发现问题 需要详细地观察系统以准确确定错误 39 1 3 6系统测试 对设计好的系统进行测试 看其是否满足规格说明书中给定的功能要求 针对系统的复杂程度不同 目前有一些常用的系统设计方法 如瀑布设计方法 自顶向下的设计方法 自下向上的设计方法 螺旋设计方法 逐步细化设计方法和并行设计方法等 根据设计对象复杂程度的不同 可以灵活地选择不同的系统设计方法 40 1 4本章小结 本章主要介绍了嵌入式系统的概念 嵌入式系统的特点及分类 嵌入式系统的主要应用领域 主流嵌入式微处理器 主流嵌入式实时操作系统以及嵌入式系统设计方法 希望读者能够通过对本章的阅读 对以上知识作到初步掌握 为学习以后章节知识打好基础 41 嵌入式系统的一般设计方法通常在单片机系统中的开发和应用中 是按照如图1 7所示的流程进行的 可见 在嵌入式系统的开发的过程中 因为对应每一个处理器的硬件平台都是通用的 固定的 成熟的 所以 再开发过程中减少了硬件系统错误的引入机会 同时 因为嵌入式操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育科技的力量优化教学流程
- 挖掘教育大数据潜力无限的决策支持系统
- 超市收银员培训手册
- 全球创新药研发成本控制与效益分析2025年研究报告
- Cationomycin-生命科学试剂-MCE
- 新疆维吾尔自治区七校联考2024-2025学年九年级化学第一学期期末学业质量监测模拟试题含解析
- 唐山师范学院《农产品市场营销》2023-2024学年第一学期期末试卷
- 2025届江苏省邗江区化学九上期末综合测试试题含解析
- 宁夏师范学院《数理统计与随机过程》2023-2024学年第一学期期末试卷
- 公路货运行业数字化转型与绿色运输模式创新报告
- 反应釜(容器)生产企业安全风险分级管控资料
- 2025年度医院检验科人员培训计划
- 2025年重庆高职分类考试(教育类)备考试题库(含答案)
- 老年人心理健康课件
- 充电桩安装劳务合同范例
- 2024年江苏省支付清算知识竞赛备考试题库(含答案)
- 养牛夏季知识培训课件
- 办公空间中的色彩设计课件
- 【MOOC】移动通信-河海大学 中国大学慕课MOOC答案
- 无人机装调检修工理论知识考试题库及答案
- XX区“五好两宜”和美乡村建设试点实施方案(参考模板)
评论
0/150
提交评论