嵌入式软件分层架构设计和实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式软件分层架构设计和实现

嵌入式软件分层架构设计和实现      作者简介作者简介:孙磊(1982-),男,硕士,中航工业洛阳电光设备研究所工程师,研究方向为嵌入式系统软件。0引言   在较早的嵌入式软件开发过程中,所有软件,包括应用程序、操作系统、硬件底层,都是放在一起进行开发的,无法分开。随着嵌入式系统软件规模的逐渐庞大化、复杂化,这种开发模式越来越暴露出弊端,因为这种模式针对不同的硬件平台必须从头开始,再开发一套新软件,即便它要实现的功能有很多是相似甚至是相同的。它限制了软件的重复使用,并且增加了开发时间和开发成本。为了解决这一问题,业界提出了软件的分层架构。   1分层架构本质   分工是工业革命的产物,是劳动生产力上最大的改良,每个人各司其职,操作自己最擅长的领域,再加上单纯劳动所带来的劳动熟练度提升及减少更换劳动力时的损失,使得劳动生产率大幅提升。随着社会的发展,分工的细化,我们发现某些特殊形式的分工不但可以提高生产力,还有另外一些好处:①低层次不知道高层次的存在;②每一层仅仅知道它相邻的下一层(最后一层除外)。可以说,符合以上两点的分工就是分层架构的思想来源。   所谓分层思想,就是这样一种分工:它将系统按不同的职责组织成有序的层次。其中,除最上层外,每一层仅提供若干服务供其相邻的上层使用,但不知道上层的存在;除最下层外,每一层仅调用其邻近下层的服务。   而嵌入式软件架构中的分层思想,是将这一思想应用于嵌入式软件开发中的特例。   2分层架构的目的及一般原则   分层架构的目的是为了隔离“关注面”。软件中的众多方面同时存在,并相互胶着,这使得开发活动变得极为困难和复杂,因而必须将复杂及大规模的问题即“关注面”分解开来,一一加以解决。无论物理还是逻辑方面,都是涉众的“关注面”,由此,引出分层架构的一般原则:①将相似的事物分组在一起,将不同的事物分开;②通常在逻辑上进行垂直的层次划分,在物理上则进行水平的层次划分。   3分层架构利弊分析   分层架构的优点:①软件开发人员可以根据专业分工,专注于某一??次;②通过层次之间的隔离,能容易地用新的实现来替换原有某一层次的实现,只要前后提供的服务(接口)相同,即可替换;③可以减少不同层之间的依赖;④容易制定出层标准;⑤提高软件复用性,缩短系统软件开发周期,提高系统软件的质量。   分层架构的缺点:①分层不可能封装所有的功能,某些复杂业务,一旦有功能变动,可能会波及所有的层;②穿过层次的调用,将引起效率降低,对于水平分布的层级划分,效率降低极为明显。   从以上分析可以看出,分层架构设计有许多优点,同样也存在不足,在实际使用过程中,应该权衡利弊,选择一种符合实际的最佳方案。   4分层架构设计方法   4.1层次划分角度   分层架构通常在逻辑上进行垂直的层次划分,在物理上则进行水平的层次划分。本节介绍的分层架构设计方法就是分别从逻辑层面和物理层面进行两个角度的双向划分,前者称为构建分层,后者称为交互分层,具体划分方法如图1所示。   构建分层从下到上依次包括:驱动层、基础层、中间层、应用层,交互分层则包括:人机界面层、控制层、实体层、接口层。   图1层次划分角度   4.2层次关系   交互分层各个层次间的关系如图2所示。界面层负责人机交互,控制层负责协调,接收控制指令,对实体进行操作;实体层负责应用逻辑与数据,接口层负责外部系统接口封装。   图2交互分层关系   各个层次之间的关系如图3所示。驱动层负责封装硬件逻辑;基础层用于把驱动封装为基本服务单元;中间层用于把应用和基础环境相关隔离,面向应用提供服务;应用层则面向具体应用提供服务,包括与硬件无关的内容,主要是对数据的处理、控制原理和算法以及功能的输出。   驱动层和基础层受环境直接影响,应用层则纯粹和逻辑相关,与环境无关。   图3构建分层关系   层次之间不能出现循环依赖,如果出现了循环依赖,则可以采用如下的方法解决:①建立共享数据区;②采用观察者模式。   4.3层次分析   如表1所示,采用层次正交分析表,首先确定两个维度分层中,都有哪些层,再确定这些层都有什么内容,最后组织好各个层次之间的关系。   表1层次正交分析表样   构建分层人机界面控制实体系统接口应用层中间层基础层驱动层4.4层次划分基本原则   ①参考正交分层;②同类开发关注点可以划分为一层;③经常一起复用的可以划为一层;④经常一起变化的可以划为一层;⑤与外部接口的可以划为一层。   5设计实现   以电机监控系统为例,描述分层架构设计方法。图4为电机监控系统组成及交联图。电机操作员通过操作界面Keypad输入对电机的操作,MCU处理后,通过AD转换控制电机实体Motor;同时Motor把自身状态Mo

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档