系统架构设计师-嵌入式系统设计

简介

嵌入式系统是一种以应用为中心,以计算机技术为基础,可以适应不同应用对功能、可靠性、成本、体积、功耗等方面的要求,集可配置,可裁减的软、硬件于一体的专用计算机系统。它具有很强的灵活性,主要由嵌入式硬件平台、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成。其中,“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本的核心要素,具体来讲:

嵌入性:指计算机计算机嵌入到对象系统中,且满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。     

专用性:指软、硬件的裁剪性,满足对象要求的最小软、硬件配置等。     

计算机系统:指嵌入式系统必须是一个能满足对象系统控制要求的计算机系统。     

归纳起来,典型的嵌入式系统具有以下特点: 

(1)系统专用性强。 

(2)系统实时性强。

(3)软、硬件依赖性强。

(4)处理器专用。 

(5)多种技术紧密结合。

(6)系统透明性。

(7)系统资源受限。

嵌入式系统设计的主要任务是定义系统的功能、决定系统的架构,并将功能映射到系统实现架构上。这里,系统架构既包括软件系统架构也包括硬件系统架构。一种架构可以映射到各种不同的物理实现,每种实现表示不同的取舍,同时还要满足某些设计指标,并使其他的设计指标也同时达到最佳化。     

嵌入式系统的设计方法跟一般的硬件设计、软件开发的方法不同,是采用硬件和软件协同设计的方法,开发过程不仅涉及软件领域的知识,还涉及硬件领域的综合知识,甚至还涉及机械等方面的知识。要求设计者必须熟悉并能自如地运用这些领域的各种技术,才能使所设计的系统达到最优。     

虽然嵌入式系统应用软件的设计方案随应用领域的不同而不同但是嵌入式系统的分析与设计方法也遵循软件工程的一般原则,许多成 熟的分析和设计方法都可以在嵌入式领域得到应用。嵌入式系统的开发过程同样也包括需求分析、系统设计、实现和测试几个基本阶段,并且每个阶段都有其独有的特征和重点  

嵌入式软件设计模型 

随着嵌入式系统的功能日益复杂,要描述这些功能复杂的系统的行为也越来越困难,实践证明通过采用计算模型的方法来对系统进行描述和分析是一种具有工程价值的方法。     

下面介绍几种嵌入式领域常用的计算模型,并从计算模型的角度分析和阐述嵌入式应用设计和开发的相关问题。计算模型提供一组用简单对象来组合复杂行为的方法,可以帮助设计者理解和描述系统行为。嵌入式系统常用的计算模型有如下几种:

  • 时序计算模型
  • 通信进程模型
  • 状态机模型
  • 数据流模型
  • 面向对象模型
  • 并发进程模型

这些模型分别在不同的应用领域使用,如状态机模型特别适合描述以控制为主的系统,数据流模型可以很好地描述数据处理和转换问题。目前使用最广泛的是并发进程模型。 

1.状态机模型     

有限状态机(Finite-State MachineFSM)是一个基本的状态模型,可以用一组可能的状态来描述系统的行为,系统在任何时刻只能处于其中一个状态,也可以描述由输入确定的状态转移,最后可以描述在某个状态下或状态转移期间可能发生的操作。 

2.数据流模型 

数据流模型是并发多任务模型派生出的一种模型,该模型将系统的行为描述为一组结点和边,其中结点表示变换,边表示从一个结点到另一个结点的数据流向。每个结点使用来自其输入边的数据,执行变换并在其输出边上产生数据。     每条边可能有或没有数据,出现在边上的数据称为令牌,当某个结点的所有输入边都至少有一个令牌时,该结点可触发。结点触发后,将使用来自每条输入边的一个令牌,对所有使用的令牌进行数据变换,并在输出边上产生一个令牌,结点的触发仅决定于令牌出现的情况。

 3.并发进程模型 

并发进程模型是由一组进程构成,每个进程是一个顺序执行的过程,各进程间可以并发执行。并发进程模型提供创建、终止、暂停、恢复和连接进程的操作。进程在执行中可以相互通信,交换数据。进程间通信可以采用两种方式:共享变量和消息传递。信号量、临界区、管程和路径表达式等用来对并发进程的操作进行同步。     

通常,实时系统可以看成是由许多并发执行的进程构成的系统,其中每个进程都有时间要求。这样,很多嵌入式系统更容易用一组并发执行的任务来描述,因为这些系统本身就是多任务系统,并发进程模型便自然地可以由实时操作系统的多任务来实现。

4.面向对象模型     

传统的并发进程模型是围绕进程的概念进行设计的,进程是一个实现级的概念,它是对客观世界活动的一种间接模拟,因此,采用进程模型来解决客观世界中的并发问题就显得极不自然,并且也使得并发程序难以设计和理解。     

面向对象模型以一种更加直接的方式刻画客观世界中的活动,模型中存在着潜在的并发执行能力。一个对象向另一个对象发送消息后,若不需要或不立即需要消息的处理结果,前者不必等待后者处理消息,消息发送者和消息接受者可以并发执行。对象不都是处于被动的提供服务状态,它们中的一些除了能通过接收消息向外提供服务外,还可以有自己的事务处理。一个对象往往可以同时处理多个消息。    

对象是数据和操作的封装体,数据存放在对象的局部变量中,对象的状态由对象所有的局部变量在某一时刻的取值来表示。在并发环境中,还要考虑对象并发状态的描述问题,因为对象的并发控制是根据对象的并发状态来进行的。    

把并发与面向对象相结合,归结起来可分为两条途径: 

    1)在面向对象模型中引进并发机制,充分利用面向对象技术刻画客观世界的良好模型能力和面向对象的各个重要特性,同时把其潜在的并发能力描述出来,使其适合于描述并发计算。 

    2)在传统并发模型中引进面向对象思想。     

面向对象的并发模型可以分为两种类型:隐式并发模型和显式并发模型。 

(1)隐式并发模型。这种模型的特点是推迟并发设计,将对象建模作为建模基础。在进入运行阶段之前,将对象看成自主单元,各种对象的活动看成理想并发方式完成的特定工作。就像每个对象拥有一个自己的处理器,这个处理器可以为对象提供一个执行线程。进入系统的外部事件被看成一个处理请求,以广播方式传给一些对象,这些对象接着向其他对象进一步提出处理请求。理论上,对应一个请求,可以有任意多个对象执行相应的处理。在实现时,由调度程序最终决定其对象的操作顺序,如图 12-15 所示。 

2)显式并发模型。这种模型的特点是首先考虑并发,应先把并发概念和对象概念分开。在建立对象以后,用实时操作系统支持的进程概念来表示并发,形成对象和进程两个抽象层次,即先将系统分解为准并发进程作为开始,而在每个进程的内部采用面向对象的技术。对象间交互表示成嵌套的函数调用,通过加入锁、监视器、信号量等显式同步机制,来保证对象的完整。该模型将进程置于对象之上,对象中不必考虑并发、对象串行化,如图 12-16

早期,实时系统的设计方法主要是结构化设计方法,采用结构化方法的系统在复用性、可修改性等方面有很大的局限性。面向对象的实时系统设计方法显然在这些问题上具有明显的优势。较实用的面向对象的设计方法是诺基亚公司的 OCTOPUS 方法,该方法以 OMT 和融合方法(Fusion Method)为基础,提出了对实时系统响应时间、时间域及并发的处理方法,并具体提出了对并发、同步、通信、中断处理、ASIC、硬件界面、端对端响应时间等方面的处理。OCTOPUS 方法将软件开发的主要阶段很好地合并起来,从规格说明到运行模型之间的过渡紧密自然,还支持渐进式开发。OCTOPUS 方法是当前面向对象技术和实时系统相结合的一个典型的设计方法。另外,形式化的面向对象的开发技术和建模语言也逐渐在实时系统建模的初始阶段得到应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值