基于天脉1型嵌入式操作系统光纤航姿软件开发

发布时间:2024-05-17 02:10:18 来源:ub8登录1.0 作者:ub8登录1.0 ub8登录1.0

  作者:张 斌 (陕西宝成航空仪表有限责任公司,陕西 宝鸡 721006)

  :本文介绍了基于国产天脉1型操作系统的光纤航姿软件开发。在充分分析国产天脉1型操作系统特点、开发环境和任务调度方式的基础上,结合光纤航姿软件的功能需求和结构组成,重点进行了软件周期的划分、设计和实现。测试和试验根据结果得出,基于国产天脉1型操作系统的光纤航姿软件具备强实时、稳定性高并支持多任务的特点。

  作者简介:张斌(1973—),男,硕士,高级工程师,现从事嵌入式系统航空软件开发及机载惯性导航技术研究。

  斯诺登的棱镜门和中兴事件曝光后,如何在国防装备中采用国产系统以提高装备自主性、安全性,防范可能存在的漏洞和后门,慢慢的变成了国防装备战线迫切地需要解决的问题。

  天脉1型嵌入式操作系统(简称:天脉1,英文名:ACoreOS1.X)是航空工业西安航空计算所研发的针对航空、航天应用需求而设计的具有完全自主知识版权的嵌入式国产操作系统[1];是在航空、航天等对系统实时性、安全性、可靠性有极高需求的领域中使用的嵌入式操作系统。目前,天脉1嵌入式操作系统已在我国多型军、民用航空装备上得到普遍应用。本文介绍了基于天脉1 操作系统设计的光纤航姿系统的组成和原理,描述了光纤航姿软件的任务划分、任务调度。

  天脉1 采用标准C 语言与汇编语言混合开发,按照GJB 和DO-178B 进行研发和测试,是一款面向多任务应用的强实时嵌入式系统平台,能帮助编程者管理嵌入式系统硬件资源,明显降低应用软件开发和维护难度。

  ● 支持PPC、x86、ARM 等主流处理器,支持龙芯、飞腾等国产处理器;

  ● 采用实时多任务调度,支持优先级抢占和时间片轮转,任务切换以及中断响应可达到微秒级;

  ● 提供消息队列、环形缓冲等多种任务间通信机制,提供信号量、事件等任务同步机制;

  天脉1 在应用系统中处于硬件层和应用层之间的中间位置,如图1 所示,其主要任务是管理计算机板软、硬件资源,并为应用软件的运行提供服务。

  对于CPU 硬件,天脉1 提供MSL 层软件管理计算机板硬件设备;对于应用软件,操作系统负责应用软件的管理,主要实现应用任务的调度、系统硬件资源的分配,为应用软件提供必要的运行设备。天脉1 依据ASAAC 标准所定义三层软件架构进行设计开发而成,其包含硬件模块支持层(MSL),操作系统层(OSL)及应用软件层(APL)。三层结构相互独立,互相分隔,OSL 层和OSL 层组件可配置、裁剪,提供灵活的硬件及空间配置,研发人员可根据软件及硬件特点进行针对性开发设计[2]。

  天脉1 的任务切换和中断响应时间可达微秒级;其采用了优先级抢占、同优先级时间片轮转算法,确保任务的实时性;采用优先级位图法、最小化任务法切换开销;通过汇编实现的中断处理代码以及中断嵌套机制,实现对外部事件的实时响应及处理要求。

  天脉1 开发环境采用中文的图形界面,使用图形化界面进行环境配置和裁剪,最小可运行环境配置不大于256 kb;提供的图形、网络协议栈、多种文件系统、USB、SATA 等常用组件裁剪、配置。

  天脉1 采用基于存储管理单元(MMU) 的存储保护机制,用户都能够对指定的区域的代码/ 数据空间进行读/ 写保护,可以从内核层面阻止地址空间的非法访问;提供错误接管机制,支持用户对操作系统和应用软件的错误加以接管;采用优先级天花板和优先级继承策略处理任务优先级翻转,确保高优先级任务优先执行;提供硬件资源泄露预防的方法和空间冗余策略,保证硬件资源的回收和配置数据的正确性。

  天脉1 向用户更好的提供VxWorks 兼容包,方便用户将原先运行在VxWorks 操作系统上的应用软件移植到天脉1 上,代码修改比例一般不超过千分之四,提供C/C++ 语言支持,用户都能够根据项目构架的设计自由选择。

  天脉1 支持PPC、x86、ARM 等主流处理器,支持龙芯、飞腾等国产处理器,提供典型的设备驱动模块可为/ 协助用户定制专用驱动模块,并向用户更好的提供可扩展接口,针对异常处理提供用户自行扩展;天脉1 中应用程序、操作系统分别位于APL 层和OSL 层,模块支持层(MSL)将两者相连接,各层可独立升级、维护。这样使用户能专注于应用软件的开发。

  光纤航姿系统是基于光纤陀螺感测技术和捷联计算技术而设计的航向姿态系统。系统采用光纤陀螺、加速度计和捷联磁传感器作为敏感元件来感测飞机飞行过程中沿机体三个轴向上的运动角速率、线加速度信号及地磁信号分量,经相应电子线路量化、补偿后传输给产品中的航姿解算计算机,由航姿解算计算机解算得出飞机的航向、姿态等信号。同时系统通过总线接口接收机上北斗系统输出纬度等数据,并将捷联解算得到的航向、姿态以及系统工作状态字等数字信号通过RS422 接口发送至机上其它设备,系统组成结构见图2 所示。

  由光纤航姿的组成和原理可知,光纤陀螺输出的角速率信号一定要通过精确定时积分计算才可以获得正确航向和姿态数据。

  光纤航姿软件应用软件分成5 个模块:初始化模块、IMU 数据采集模块、周期BIT 模块、捷联解算模块和数据I/O 模块[3]。

  同时采用天脉系统特有的周期任务将IMU 数据采集任务,捷联解算任务,数据输入/ 输出任务以及周期BIT 任务分别设计为4 个周期任务,如表1。

  所谓的周期任务是指每隔相等的时间间隔就必须就绪的任务;天脉中的周期任务时间间隔具有硬时限,周期的值被认为是恒定不变的,并且任务两次就绪的时间只能等于周期。在周期任务中,操作的对象是“任务”。周期任务调度与普通调度的不同之处在于:普通的调度侧重维护一个独立的执行体——任务,使其作为一个独立的逻辑单元,维护其走走停停执行的正确性;而周期任务调度的侧重点不仅是维护这样一个逻辑单位,周期任务增加了一个更重要、更核心的属性——周期,有了周期的要求后,系统的所有行为,比如状态转换、调度切换都是围绕“周期”这个核心发生的[4]。

  4 个任务在同步启动时刻(初始化完成后的0 时刻)都就绪,然后根据优先级抢占的调度方式开始运行(IMU数据采集周期任务、捷联解算周期任务、数据I/O 周期任务、周期BIT 周期任务依次运行)。

  本文对天脉1 的内核特点、应用开发环境和多任务调度方式来进行了分析,结合光纤航姿系统功能需求,对光纤航姿软件的功能模块进行了划分与设计,采用天脉1 特有的周期任务对光纤航姿软件的任务进行了划分和优先级的设置。经地面测试和飞行试验验证,基于天脉1 的光纤航姿软件稳定可靠、实时性强,可满足光纤航姿系统功能、性能、可靠性、安全性要求。采用本文介绍的方法、思路进行导航类软件设计、开发,能够明显降低软件设计难度、有效保证产品实时性和可靠性,对相似嵌入式软件开发具有一定借鉴意义。

上一篇:康达新材2021年年度董事会运营评述 下一篇:开发app是什么作业