了解PBO技术及实时嵌入式软件开发

时间:2011-09-04

  引言

  在科技发达的今天技术的开发越来越快,很多我们都不胜了解,今天我们来介绍的是PBO(Port-Based Object)技术及其特点,这是一种可以用于软件工程的新技术。这种技术支持软件重用和动态可重配置;分析其应用于航空航天器等实时嵌入式软件开发过程中的优势与困难。在各国的航天领域的加大重视,PBO技术也就有了很大的发挥之地了。

  1 PBO技术

  PBO(Port-Based Object)技术是一种可用于软件工程的新技术,特别适合于动态可重配置实时软件(DRRTS)的开发。DRRTS可以在线配置,无需重新编译和连接,也就可以不必关闭和重新启动系统,从而满足某些系统需要连续不停地运行和升级的要求。每一个PBO相当于一个组件,结构如图1所示。左右两边分别是变量输入和输出端口,上面是其配置常端口,下面是其与传统器与机械臂通信的源端口。每一个PBO进程都有相同的有限状态机,如图2所示。它有4种状态(用椭圆表示):未建立、错误、OFF和ON。状态之间可以互相转化。这使得每一个PBO的代码有着相同的结构,包含着同样的方法,只是其中的方法处理过程不同。实际应用中,可以建立一个PBO库,库中的每一个PBO组件都可以作为软件重用的模块,在需要的时候可以将它们动态地配置。图3是一个PBO相互连接组合的实例。PBO的参数用局部变量表和全局变量表两级存储,进程之间的通信通过共享全局变量存储器来实现。图4是PBO进行状态变量两级存储结构图。每当进程开始执行一个循环时,从全局变量表中读入变量,执行完毕中,再把变量写入全局变量表。

  2 PBO技术的特点

  对于基于实时操作系统(RTOS)上的控制系统软件,采用PBO技术,可以从系统体系结构到代码实现的各阶段加快软件开发速度。PBO技术遵循高内聚、低耦合的封装设计思想,整个系统由多个可配置组件组成。按照这种框架,可以使用当今流行的面向对象设计模式,采用消息驱动;但实时嵌入式软件是面向实时系统的,要求高速有效,消息驱动有时不能满足这个要求。PBO设计方法中,数据的传递是通过共享存储器实现的,这样设计满足了硬件的低负荷工作和数据的更新速度要求。每个组件与外界的联系由四个端口(port)组成。内部实现黑箱操作。采用两级存储保存数据,力图实现限度减少访问冲突,减少组件间的依赖性。PBO技术结合了端口自动代数模型和对象的软件抽象[1]。每一个PBO相当于一个控制系统,可以用传递函数来表示,由此,可以采用的数学方法对子进行描述和验证。每一个PBO也是一个标准化了的对象,即所有的PBO有着同样的结构和同样的有限状态机,它和外界的接口也是标准经的。PBO的执行是互相独立的,并行的,不需要同步,使得PBO之间的依赖降低到的限度,可以动态地加入或退出某个PBO。PBO相当于一个即插即用的软件组件,可以通过重新配置以适合需求。所以,采用PBO技术开发的软件具有开放性,易于修改和升级。

  3 PBO技术中实时软件的特点

  实时软件要求极端的可靠性。许多系统一经启动,要连续不断运行。采用PBO可实现动态重配置,重配置时间开销对于系统运行几乎不受影响,满足这类实时系统修改和升级的要求。采用PBO技术设计的软件,数据通过共享存储器,能够实现高速运行,提高设备采样率,也使得任何信息能够随时处理,满足实时系统及时性要求,这样也就保证系统产生的结果在时间上具有严格的正确性。基于普通模块设计的软件,采用消息传统机制,可能由于消息的阻塞而使事件处理的及时性得不到保证;而PBO技术通过共享变量表实现通信,锁定CPU时传输的变量很少,等待资源的CPU能够很快获得所需的资源,保证实时系统能够及时处理各种事情。由于许多PBO进程在多CPU上独立并行,可同时处理数据的输入或输出,也满足了实时系统同时性的要求。

  4 关于软件测试的问题

  由于实时系统具有很高的可靠性要求,因此,对其的测试不仅要针对系统的功能行为,还要针对系统的时序行为,所以嵌入式实时系统的测试是软件界公认难点。由于某些行为只在特定的系统状态下和某些特定的事件序列到达时才会发生,为了避免软件缺陷,需要精心设计测试用例并保证足够的测试覆盖率。在PBO技术中,进程的调度通过实时操作系统(RTOS)实现,使得对共享存储器访问的时序列加随机和不可预测,各种可能的情形也更多,相对测试的覆盖面随之减少。基于PBO软件技术的架构不同于其它传统实时软件技术构架,随之对测试环境的模拟也新的要求,各个PBO之间是独立开发的,对应的测试要求与之相应。这增加了对测试环境要求的难度,而且各个PBO之间输入输出数据的测试也变得更为复杂。对于在非正常环境下,测试的结果也更难预料和把握。另外,一般嵌入式软件测试时,模拟运行速度与其实际执行速度不同,仍将此方法运用于基于PBO技术的软件测试,会掩盖软件中许多错误。所以,采用PBO技术,有可能增加软件测试的难度。

  5 软件重用与动态可重配置

  每一个PBO是一个软件重用的构件,它有着标准的接口和开放的扩展性。这种软件重用是一种二时进代码级的重用,摆脱了编程语言的限制,能够即插即用。采用一组PBO的组合,就形成了一种配置,这种配置可以实现一定的功能,满足实时系统的需要。随着时间的推移和技术的发展,需求会逐渐发生变化,因此,采用部分原PBO再加入一些新PBO,以构造一种新的配置,满足变化后的需求。通过软件重用,可以降低开发成本,缩短开发时间,不断满足实时软件变化的要求。

  6 PBO技术应用开实时嵌入式软件开发

  在航空航天器的软件设计中,由于其造价非常高,因此希望它能够具有更多的功能。但是这类软件必须面临存储空间受限,运算能力有限的硬件限制。我们不可能制作一个满足各种功能的软件,因为这样的软件必然相当庞大,修改和升级都非常困难。PBO技术适合于这类软件的开发,因此它能很好地支持软件重用和动态重配置。我们可以将一些PBO进行组合,使其具有一定功能,当其完成某项任务后,就可以采用动态重配置,使其具有新的功能,完成新的任务。PBO技术基于的理论模型,可以在此基础上进行严格的数学分析,完成规范的程序设计,保证软件系统的可靠性。将来可以将其应用于需求分析中,采用形式化的方法建立规格说明,从而实现从需求分析直到代码实现的全过程形式化设计。

  当然事情有两面性,PBO当u。shi完美的然也PBO技术运用于这类软件也可能面临一些问题。PBO之间的信息交换非常有限,这对于大数据量处理必须另辟捷径。在航空航天器中,经常要处理拍摄的各种图片和大量的传感器数据,还要将它们及时发回地面控制中心,这些都必须重新考虑。许多PBO进程运行于多处理器上,它们之间协同工作要进行的网络计算也不容易。在PBO组件数目较多时,数据复制机制能否具有高可靠性和及时性也都是可能遇到的问题。当然我们也要相信将来这些问题会得到完好的解决,那时候我们有理由相信PBO技术将是航天技术领域上一个非常重要的技术。虽然现在我们还不能解决,但是我们现在可以去其糟粕取其精华,地利用好PBO技术。

  关于嵌入式软件

  嵌入式软件( Embedded Software)就是嵌入在硬件中的操作系统和开发工具软件,它在产业中的关联关系体现为:芯片设计制造→嵌入式系统软件→嵌入式电子设备开发、制造。嵌入式软件包括指嵌入式操作系统和嵌入式应用软件。因嵌入式软件一般对实时性的要求较高,也称其为嵌入式实时软件( Embedded Real - Time Software) 。它是实现嵌入式系统功能的关键。在简单的应用场合下,嵌入式应用软件不需要专门的操作系统,但有些需要嵌入式实时操作系统的支持。当前,常用实时操作系统具有代表性的产品主要是VxWorks , pSOS , PalmOS ,Windows CE 及嵌入式Linux 等。嵌入式应用软件是针对特定的实际领域的,基于相应的嵌入式硬件平台的,并能完成用户预期任务的计算机软件。它与普通的计算机应用软件有一定的区别。用户的任务一般有时间和的严格要求,这就使得嵌入式应用软件必须保证高实时性、准确性、安全性、稳定性和抗干扰性,而且还要尽可能地优化。

  嵌入式软件与嵌入式系统是密不可分的,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”,就是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。而嵌入式软件就是基于嵌入式系统设计的软件,它也是计算机软件的一种,同样由程序及其文档组成,可细分成系统软件、支撑软件、应用软件三类,是嵌入式系统的重要组成部分。

  嵌入式软件广泛应用于国防、工控、家用、商用、办公、医疗等领域,如我们常见的移动电话、掌上电脑、数码相机、机顶盒、MP3等都是用嵌入式软件技术对传统产品进行智能化改造的结果。嵌入式软件在中国的定位应该集中在国防工业和工业控制、消费电子、通信产业。首先一个市场是数字电视市场。第二个市场是移动通信市场。第三个市场是掌上电脑(PDA)。

  参考文献

  1 Stewart D B, Volpe RA, Khos la P K. Des ign of Dyn amica lly Reconfigurable Real-Time Softwa re Us ing Port-Based Objects. IEEEtrans. on software engineering,1997,23(12)

  2 乔颖,王宏安,戴国忠。 实时系统开发方法研究。 计算机科学,2001,28(2)

  3 万琳,宫云战。 一种嵌入式控制软件的可靠性测试。 计算机工程,2001,27(3)

  4 张升昕,董淳。 对系统动态更新的探讨与设计。 计算机科学,1999,26(2)

  5 蔡持峰,等。 实时控制系统需求描述方法及其应用。 计算机科学,1999,28(3)


  
上一篇:关于Linux的启动和
下一篇:两种思路实现VB环境下的PCI设备底层访问

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料