您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术基于UC/OS-II的嵌入式构件系统设计 正文
基于UC/OS-II的嵌入式构件系统设计

基于UC/OS-II的嵌入式构件系统设计

点击数:7609 次   录入时间:03-04 11:53:39   整理:http://www.55dianzi.com   嵌入式系统-技术

近些年来,随着 嵌入式 产品需求的不断增加,嵌入式软件正变得越来越复杂,而产品的开发周期也越来越短。嵌入式软件开发迫切需要更高效的软件重用手段。

随着软件复用研究成为热点,其核心技术——构件化软件开发方法(CBD)引起了软件工程领域的高度关注,并且在工程应用领域获得了极大的成功。这种开发方法已在办公应用、电子商务、因特网及分布式网络应用中广泛使用;但在嵌入式领域,构件技术仍处于起步阶段,目前没有一个统一通用的构件规范。尽管如此,由于基于构件的软件设计方法能够极好地满足嵌入式软件几乎所有的特性(如定制、裁剪、动态演变等),有效缩短产品开发周期,这种设计方法无疑将给嵌入式系统的开发带来巨大的好处。

本文尝试将构件化软件设计思想引入嵌入式软件设计中,提出了一种适用于嵌入式软件的基于构件的软件体系结构,并且在常用输入设备键盘的应用实践中,验证了此体系结构的可行性。

1 嵌入式构件技术

1.1 构 件

构件可以视为一个通过接口对外界提供服务或向外界请求服务的黑盒,多个构件可以组成一个更高层次的构件,构件比对象提供了更高的设计抽象。构件是二进制可替换的,这个特点使它们与“类”有着显著的不同。当创建了一个构件的修订版本时,它可以替代同一构件的原先版本,而不必重新编译其他构件。通常,只要一个构件满足相同的接口,就可替换另一个构件,而不必对其他构件做任何修改。因此,构件能够很好地解决更新、维护、分布和复用等诸多问题。

构件具备以下几个基本特征:可复用性、可封装性、组装性、可定制性、自治性、粗粒度、集成特征、接口连接机制。目前,构建模型大致可分为2类:在面向对象的程序设计中,构件即对象,例如JavaBean;在软件体系结构中,构件即结构单元,例如结构描述语言ADL。这些构件模型适合更高层的应用软件,但不适合在嵌入式软件开发中占主导地位的底层系统软件的开发。

1.2 嵌入式构件

1.2.1 嵌入式构件模型

嵌入式构件为实现一定嵌入式系统功能的一组封装的、规范的、可重用的、具有嵌入特性的软件单元,是组成嵌入式系统的功能单位。它是被标准化的、具有重用性、支持QoS的、能够提供实时应用的软件资源。

这里,从嵌入式构件的定义出发,将参考文献中通用软件构件模型作适当的扩展,使其成为适用于嵌入式系统的基本构件模型。

每个嵌入式构件由4部分构成:构件体、属性、接口、依赖关系。图1为基本构件的示意图。构件体实现构件的基本功能,即对外提供的服务;属性描述了构件的基本信息;接口将构件与外界连接,在得到自己需要的服务后,为外界提供服务,每一种接口对应一个不同的服务;依赖关系标识构件间的所有关系,用于实现构件间的拼接。

 

1.gif  

www.55dianzi.com

硬件抽象层实现硬件的驱动、I/O控制,可以用于同一种硬件平台的很多应用中。OS层主要用于与操作系统相关的操作,包括系统任务的创建、消息的创建等。通信层实现数据的传递、数据格式的转换。

用户接口层提供与底层应用相关的基本操作函数、对外接口函数,实现上下层之间的互操作。应用层位于顶层,用于实现用户的应用程序。用户无需关心底层的硬件结构,直接使用用户接口层提供的基本操作函数,即可编程实现自己需要的功能。

层(即构件子系统)的接口是所包含的构件接口的组合。分层接口从上层看是透明的,对下层则是不透明的。在层接口处定义的构件仅对整个层次结构中该层或者该层之上的构件可见。只要符合一定的条件,每一层都可实现相当程度的复用,只需要替换相关的构件即可。

这里,特别要提到“原型”的概念。在各个层中,每个垂直切片仅实现与切片的目的相关的部分。这种实现方案称为“迭代式原型(iterative prototyPINg)”,每个切片称为一个“原型(prototype)”。实现原型时,每个原型都在其前驱所实现的特性的基础上进行构造。原型的序列根据逻辑上特性的优先顺序来确定。本体系结构引入原型的概念,每个原型包含来自各层的一个或者多个构件,后面的原型构造于先前原型所提供的服务的基础上。每个原型将实现一种特定的功能,逐渐增加功能,最终实现用户应用程序。

分层的结构设计保持了顶层与低层很好的一致性,实现了横向分离;同时,原型的引用使得各层间的连接更为紧密,纵向相连,从而得到集成度更高、更可靠的系统。

3 嵌入式构件系统的实现

3.1 键盘构件系统的实现

嵌入式构件从本质上来说,大部分的工作就是对输入/输出部分进行处理。其构件主要有键盘、前向通道的处理(如A/D处理)、后向通道的处理(如D/A处理)、USB控制、网络控制、液晶显示等。输入/输出软件的代码占据了整个操作系统的相当部分,对嵌入式操作系统来说,这部分的重要性是不言而喻的。其中,键盘更是嵌入式应用程序最常用的器件,因此本文以键盘为例,依据上述体系结构构建了键盘应用模型,配置实现了键盘功能。

图2为键盘构件系统分层体系结构。每层左边显示的“棒棒糖”形状表示层的接口,接口是一组可以从外部访问的类和对象。虚线箭头表示的是依赖关系,每层都依赖于其下一层的包,且构件与构件之间也存在着依赖关系。上层调用位于下层具体一些的层次中的服务,这种单向依赖使得可以在不同的上下文中使用相同的服务,而无需考虑服务的实现方式。同时,由于低一些的层中提供了定义良好的接口集合,可以用不同的底层实现来替换它们,这样,整个构件系统就能更方便地移植到其他的物理环境中。

2.gif  


本文关键字:嵌入式  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术