嵌入式系统软件体系结构设计
扫描二维码
随时随地手机看文章
摘?? 要:?本文采用嵌入式实时系统软件设计方法对星载姿轨控计算机系统进行设计,软件系统采用层次模块化结构。采用嵌入式实时操作系统连接姿轨控应用程序和底层硬件,文中给出了姿轨控计算机软件系统设计流程图、软件应用层纵横结合型结构,以及任务模块调度管理的仿真结果。
关键词:?嵌入式实时操作系统; 软件结构;? 姿轨控计算机系统
引言 软件体系结构是对软件各高层抽象的理解,必须在较早阶段对软件进行体系结构层的分析,其中算法和数据结构的选择处在软件体系结构的较低层次上。系统结构的问题包括:用一系列组件来组织一个系统,全局控制结构,通信、同步和数据存取协议,设计元件之间功能的划分,物理的分布方式,系统运行状况的估计和测量,演化方向,设计模式的选择等,这些都是设计阶段的软件体系结构。
传统星载软件的设计方法、开发手段已不能适应日益复杂的需求,采用微内核的实时操作系统作为软件的系统结构是一种缩短开发周期、调试方便有效的快速解决方案。经过比较,在采用32位微处理器的前提下选用vxworks嵌入式实时操作系统。图1 纵横结合型体系结构设计软件体系结构分析与总体设计
目前比较普遍的体系结构有:
管道和过滤器型
这种体系结构中每个组件有一系列输入和一系列输出,一个组件从它的入口读取数据流,在它的出口产生数据流。组件就是过滤器,在组件之间传送数据的接口即管道。
面向对象的组织方式
数据和它的原始操作是封装在对象内部,对象通过事件驱动来协同工作。对象要保证内部数据的正确性和对外实现方法的隐藏性。
共享存储体型
包含两种不同的组件,中心数据结构代表当前状态,一系列独立的组件来操纵中心数据存储,并通过中心存储体相互通讯。
解释机型
用软件产生的一个虚拟机,模仿其他机器,解释并执行特定的指令序列。
垂直型
包含一系列类,并将它们组织成层次和线索。层次是在相同抽象层次的一系列类。线索是一类子系统,它们之间存在调用与被调用的关系,在执行后,完成一个子系统的功能。
层次型
一个分层系统中,每一层向它的上一层提供服务,同时使用它的下一层提供的服务。这种结构支持基于抽象层次的设计、演化和重用。层次型又分为横向型、纵向型与纵横结合型。
横向体系结构,是指某一个软件系统可分为多个层次,层次之间的组件关系较为简单,只有上层组件调用下层组件的关系,而同一层次内部各组件之间的联系较为密切,相互之间传送消息比较频繁。在采用体系结构的基础上,按信息流来划分边界,信息流内部再划分子系统。
纵向体系结构中包含层次和线索两个概念。层次是指在相同的抽象层次上的一系列组件,而线索是子系统的特例,指所包含的一系列组件用于完成一个功能。纵向的软件结构具有可理解性、可适应性、可重用性。
纵横结合型体系结构中,一个组件不仅在垂直方向与其他组件发生关系,同时在水平方向也与其他组件发生作用。针对卫星姿轨控系统的需求,软件系统采用纵横结合型体系结构。
在姿轨控软件结构设计上要力求简单,模块化结构的软件易于单独开发而后集成,在按照共同的数据接口开发后,便于测试,若在轨运行过程中出现问题,易于查找错误和排除错误,从而到达提高可靠性的目的。在设计小卫星软件系统的过程中,可以借鉴“模块化公用舱”和“软件总线”思想,对星载嵌入式软件系统的开发采用模块化软构件来设计软件的功能模块,从而提高软件开发的效率、程序的质量,并改进维护方式。图2? 设计流程图图3 仿真图图4? 仿真图
从软件角度,姿轨控软件主要完成以下功能:设置系统工作模式、部件工作状态;接收星务总线传来的轨道参数、在轨编程信息等;实时采集数据并进行处理;根据控制律,计算控制指令,对太阳或地球跟踪定向;在轨检测、系统重构等。可将星载控制计算机软件分为三部分:系统引导程序、系统软件、应用软件。设计流程与任务调度方式
实时操作系统为应用软件和其它模块提供运行环境和多任务管理。应用软件通过设备驱动模块采集敏感部件的姿态信息和gps接收机的轨道信息,进行控制规律的解算,并通过设备驱动模块控制执行机构和太阳帆板。程序和数据注入模块通过数据总线获得地面的程序或者数据注入到应用软件;遥测遥控数据管理模块通过数据总线与地面测控系统进行数据和指令的传输。
姿轨控应用程序在实现上由多个任务协同工作完成,在结构上分为多任务调度管理任务(或称