嵌入式实时操作系统设计探讨

发布者:EternalSunset最新更新时间:2007-11-16 来源: 赛迪网关键字:基线  区间  框架  接口 手机看文章 扫描二维码
随时随地手机看文章
在传统的嵌入式实时操作系统中,内核和应用都运行在同一特权级,应用程序可以无限制的访问整个系统地址空间。因此在某些情况下,应用的潜在危险动作会影响其他应用和内核的正常运行,甚至导致系统崩溃或者误操作。

为了满足航空电子对高可靠性、高可用性以及高服务性的要求, 1997年1月ARINC发布了ARINC653(航空电子应用软件标准接口),并于2003年7月发布ARINC653 Supplement 1,对区间管理、区间通信及健康监测部分进行了补充说明,用以规范航空电子设备和系统的开发。

随即,国外各大嵌入式开发商相继推出此类支持ARINC653,具有内核和应用保护机制的操作系统。但在国内的嵌入式领域,这样的研究还有一定差距。基于此,本文提出了一种航空电子嵌入式实时操作系统(A-RTOS,Avionics RTOS)的一种设计思路,并在具有MMU和支持高级保护模式的目标板上完成了实现。

航空电子标准ARINC653

ARINC653主要阐述了模块化综合航空电子设备IMA(Integrated Modular Avionics)使用的应用软件的基线操作环境。 它定义了航空应用与下层操作环境之间的接口和数据交换的模式以及服务的行为,并描述了嵌入式航空电子软件的运行时环境。

ARINC653 Supplement 1对ARINC653的补充主要包括以下几点:在系统结构上,提出了System Partition的概念,明确区间上的应用调度应该是区间级别的,这些应用共享区间资源;区间管理方面,阐述区间调度中主时间框架的定义原则,并补充了区间模式的变迁过程;对区间间通信的原则进行更为详尽的说明;增加关于健康监测的错误级别和错误处理的解释。

软件构成

航空电子中的核心模块软件包括两类:应用软件和核心软件。位于应用软件和操作系统OS之间的APEX(APplication EXecutive)接口,定义了系统为应用软件提供的一个功能集合。利用这个功能集合,应用软件可以控制系统的调度,通信和内部状态信息。APEX接口相当于为应用提供的一种高层语言。而对于OS来说,是关于参数和入口机制的定义。

图1给出了ARINC653中各部分之间的关系。

分区和区间管理

分区(Partitioning)是ARINC653中一个核心概念。在IMA(Integrated Modular Avionics)系统中,一个核心模块会包含一个或多个航空电子应用,并且这些应用要能够独立运行。分区就是航空电子应用中的一个功能划分。分区的单位称为区间,区间内的每一个执行单元称为进程。每一个区间具有自己独立的数据、上下文和运行环境,这样做的好处是能够防止一个区间的错误影响到其他区间。另外,它能使得整个系统容易验证、确认和认证。

区间化以及区间的管理和调度是由OS来实现的。ARINC653为区间的调度规定了一种基于时间窗的循环调度算法。这种调度算法的原理如图2所示。

图2 基于时间窗的循环调度算法原理

为了完成各区间的周期性调度,由OS维护一个固定时间长度的主时间框架,该时间框架在模块的运行期内周期性的重复。每个时间框架可以划分为若干个时间窗口。系统利用一个事先确定的配置表,在规定的时间窗口内激活对应区间的运行。这样就能够保证每个应用在分配给它的时间周期内访问公共资源不被打断。

ARINC supplement 1对主时间框架的时间定义原则进行了补充。它规定主时间框架的大小应该是核心模块中所有区间周期的最小公倍数的正整数倍,并应考虑到每个区间每次执行的时间长度和执行频率。

在ARINC653 Supplement 1发布时又增加了系统区间属性和启动条件属性。区间的工作模式包括空闲,冷启动,热启动和正常四种,如图3所示。每个区间所需资源在系统构建时指定,在区间初始化完成时区间对象创建。OS在进入运行模式时启动应用区间,然后区间进入正常运行模式。监测管理功能在响应致命错误时将重启区间或者停止区间的运行。

图3 区间状态转化模型

A-RTOS系统设计与实现

A-RTOS的系统结构如图4所示。在此系统中,各个应用工作在所属区间的环境中,并且应用和内核及各个应用之间都被保护墙隔离,无法相互破坏,从而保证了核心模块的可靠性。

             图4 A-RTOS的系统结构

隔离和保护机制

隔离和保护是ARINC653首要强调的特性,也是必须解决的重点之一。A-RTOS主要采用两种方式来实现应用与内核以及应用之间的隔离和保护。

第一种方式是使用内存管理单元MMU。通过MMU能够实现逻辑地址到物理地址的转化,并且对访问权限进行控制。这样可以保护操作系统内核不受应用软件有意或无意的破坏,也有效的防止了各应用软件之间的相互破坏。图5给出了MMU的页目录/页表方式的地址转换流程。

图5 页目录/页表方式的地址转换流程

第二种方式就是系统调用。A-RTOS为了实现对内核及应用之间的保护,提供了两种运行形态:用户态和系统态。其中操作系统内核是运行在系统态的。因此用户态的应用是不能够直接调用系统内核提供的功能接口的,必须通过TRAP系统调用方式来进行。

此种方式下,当用户态的应用需要调用内核提供的系统调用时,首先要执行一组特殊的指令使系统进入系统态以便执行需要的系统调用,当调用完成后,内核将执行另一组特征指令将系统返回到用户态。

每种支持保护模式的系统都提供了专门的软中断命令来完成从用户态进入系统态的功能。系统挂接一个软中断处理函数,所有的系统调用都通过这个软中断进入并以不同的参数值(即系统调用号)来加以区分。

系统调用的另一种形式是称为CALL-LIB的调用库机制。此种机制类似于windows系统的动态链接库,可以满足动态加载和更新组件的需要,也是A-RTOS的特点之一。

区间调度机制

ARINC653规定,区间调度模式的主要特征是:1)调度单元是区间;2)区间没有优先级;3)调度算法是预先确定的,按照固定的周期重复,并且只能由系统集成者进行配置。每个循环中,至少要为区间分配一个区间窗口。

在A-RTOS中,为了方便系统处理和能更好符合ARINC653规范,对以上规定进行了一定程度的修订:调度单元是区间和系统进程;区间具有优先级。但这些修订不影响操作系统区间层POS以及应用程序使用者,所以在外部特性上并不与ARINC653规定违背。

除此之外, A-RTOS还引入两个系统区间:Kernel区间和Idle区间。Kernel区间优先级最高,用于为整个系统的运行提供支持;并且一些系统级进程,也属于Kernel区间,方便调度。Idle区间具有最低的优先级,用于填充系统时间。当系统中没有其他区间可以运行,就运行Idle区间。

A-RTOS区间的调度原则是首先基于优先级调度,对同一优先级的区间可使用时间片轮转调度或者基于时间窗的循环调度策略。

A-RTOS采用两级调度机制。系统中具有区间的优先级位图和每个优先级对应的就绪链表,每个区间中也包含系统进程的优先级位图和对应的就绪链表。利用优先级位图和就绪链表,可以很容易的实现对区间和系统进程的调度。图6给出了这种调度模型。

图6 A-RTOS的区间调度模型

调度模块首先根据系统中的区间优先级位图和区间就绪链表来进行区间调度,被调度到的区间再根据区间内的进程优先级位图和进程就绪链表进行系统进程的调度。此方法相对于一级调度方式而言,能够保证调度时间的确定性,系统调度时间不会因为区间和系统进程的多少而发生变化,符合实时操作系统的定义。

在进行基于时间窗调度时,两个系统区间实际上也会参与调度。Kernel区间的运行时间会计算在区间调度配置表中当前区间的运行时间上。因此对于某应用区间而言,它的运行时间实际上会包含系统区间的运行。

进程池机制

在A-RTOS中,进程池是指一组由系统进行维护的进程,这些进程能够为应用提供一组服务。应用通过系统提供的调用接口对系统提出应用请求,系统把应用的请求交给进程池,进程池自动选择一个空闲进程对其进行服务,当服务完毕以后,系统会回收该系统进程。

进程池主要应用在时钟定时器服务、中断服务和异步IO操作。

异步信号和异步IO机制

A-RTOS支持异步信号机制,允许在某种情况下COS以异步方式发送信号到上层的POS。异步信号的一个典型使用就是异步IO。这是由于在ARINC653的应用中,POS中的进程通过系统调用产生阻塞性IO请求的时候,如果IO不是异步的,则此时该进程就会阻塞,等待系统调用的返回。但是COS并不知道POS中的应用进程的存在,当其中的一个进程阻塞的时候,整个区间都会被阻塞。采用异步IO方式可避免这种情况的发生。

当应用请求了阻塞性的IO服务时,A-RTOS会启动称为一个系统进程来进行应用请求的IO操作,这就是异步IO机制。A-RTOS将这种为实现异步IO操作而创建的系统进程称为worker进程。

如图7,在ARINC653的应用中,当POS中的一个进程调用异步IO系统调用时,该系统调用检查此IO是否为阻塞工作方式,如果是,则创建一个worker进程去完成这个要求的IO工作,并返回一个AIO_PENDING值到POS。POS检查到这个返回值以后,把正在进行异步IO调用的进程从就绪队列取下放到等待队列,然后进行重调度。当worker进程完成了要求的IO操作时,即发送异步信号到POS,从而唤醒原阻塞进程。

图7 异步IO工作流程示意图

关键字:基线  区间  框架  接口 引用地址:嵌入式实时操作系统设计探讨

上一篇:基于2.6.19内核的小型Linux系统制作与移植
下一篇:基于嵌入式ARM的LCD图像显示系统设计

推荐阅读最新更新时间:2024-05-13 18:39

前置USB接口的问题?
机箱前置USB线连接方法     机箱前置USB线如何与主板进行连接,对于一些新手有一定难度,要知道一旦接线出错,轻则无法使用USB设备,重则烧毁USB连接线、USB设备或主板。 一、机箱前置USB接线的定义:     首先还是了解一下机箱上前置USB各个接线的定义。通常情况下,红线:电源正极(接线上的标识为:+5V或VCC)、白线:负电压数据线(标识为: Data-或USB Port -)、绿线:正电压数据线(标识为:Data+或USB Port +)、黑线:接地(标识为:GROUND或GND)。某些机箱厂商基于其本身的工艺设计要求,信号线的颜色会与上面介绍的不尽相同,而且考虑到与主板接线的方便性、准确性、通用性,有的机箱厂商将U
[嵌入式]
ARM7平台下基于VxWorks的网络接口设计
  VxWorks操作系统以其高度的可靠性、优秀的实时性、灵活的可裁减性等优势在嵌入式系统中备受关注,广泛应用于许多行业;而随着网络技术的发展,嵌入式技术与网络技术的结合已成必然。VxWorks是最早在其内核中加入TCP/IP协议的嵌入式实时操作系统。如何设计基于VxWorks的网络接口,是摆在嵌入式开发人员面前的首要课题。本设计以三星公司的ARM7(S3C44B0)为核心CPU,开发了VxWorks下的网络接口,包括硬件设计和软件实现两个部分。 1 硬件设计   核心CPU采用三星公司的S3C44B0。S3C44B0采用ARM7TDMI内核,它通过提供全面的、通用的片上外设,大大减少了系统电路除处理器以外的元器件配置,降低了系
[单片机]
ARM7平台下基于VxWorks的网络<font color='red'>接口</font>设计
ST7267单片机与SIM卡的接口设计
随着信息技术的不断发展,手机逐渐成为现代社会必不可少的工具。但是,一旦手机丢失,存在SIM卡内的资料也就丢失了,因而造成了很多不必要的麻烦。为了保存这些重要的资料,在电脑上做必要的备份显得十分重要了。本文利用ST7267单片机的GPIO端口,实现了对SIM卡的读写。 1 硬件电路的设计 1.1 ST7267单片机概述 ST7267具有USB2.O的硬件接口,大容量存储控制接口可以支持各种类型的NAND Flash。具有54 KB的ROM和4KB的RAM空间。 1.2 SIM卡接口电路 SIM卡引脚功能的定义如表1所列。 ST7267单片机与SIM卡的接口电路如图1所示。该电路主要由外围有源晶体Y2提供4
[单片机]
ST7267单片机与SIM卡的<font color='red'>接口</font>设计
具有V/F和F/V综合性芯片TD650与单片机接口及程序设计
  TD650是高精度、高频型单片集成 电压 /频率(V/F)和频率/电压(F/V)转换电路。主要特点有:      ①工作频率高,最高工作频率可达1 MHz。      ②非线性和温漂低。满度输出频率为10 kHz时,非线性度典型值为0.002%,最大值为0.005%,温漂小于±7.5×10(-5)/℃。      ③输入电压范围大,输入方式可以是单极性、双极性、差动输入电压或单极性输入电流。      ④频率输出采用输出管集电极开路输出,其上拉电阻可接+30 V、+15 V或+5 V电源,并可与TTL或CMOS电路兼容。      ⑤外围电路结构简单,既可作V/F转换,又可作F/V转换。      ⑥具有独立的数字地与模拟地。
[单片机]
具有V/F和F/V综合性芯片TD650与单片机<font color='red'>接口</font>及程序设计
基于DSP TMS320VC5402数字多功能板的实现
   1 引言   音板(tone)、主叫号码显示板、多频互控收发器板、双音频接收器板等是程控交换机重要的公共设备。这些设备在程控交换机中是一块块不同的硬件单板,这些单板都是以专用集成电路(IC)来实现其功能的。但要增加单板业务功能或单板所用IC停产时,单板生产厂家需要重新设计硬件电路。这样就会增加研发成本和风险。   基于此,针对交换机的特点,以数字信号处理技术为核心,开发一种基于DSP的数字多功能板。该板是一个DSP硬件单板平台,可提供多种对外接口,通过采用不同的DSP算法和微控制器程序,处理交换机所需的各种信号,完成各个单板功能,这样便于维护和升级,节约开发费用,缩短开发周期。这里以实现音板的具体过程为例进行详细阐述。
[嵌入式]
打造生活化人机接口 恩智浦全新应用处理器强势出击
为更加落实生活化的人机互动介面,恩智浦(NXP)推出新一代i. MX8应用处理器,该处理器支援多重感测器支援套件(Multisensory Enablement Kit, MEK),可提供更高安全性与效能,为汽车领域、智慧家庭、工业制造工厂与消费性产品领域带来更多市场机会。 恩智浦安全连结事业单位i.MX应用处理器产品系列副总裁Ronald M. Martino表示,新一代的i. MX应用处理器具备优异的影像追踪功能,可以为人机介面发展注入强劲动能。 恩智浦安全连结事业单位i. MX应用处理器产品系列副总裁Ronald M. Martino表示,2015年12月恩智浦与飞思卡尔(Freescale)正式合并后,双方在
[手机便携]
基于CPLD的USB总线的隔离接口实现
1 引言    大容量数据的高速传输是存储技术的研究的热点技术,而在工业环境的数据传输中抗干扰技术以及医疗设备对人身的安全也是目前研究的热门课题,USB(Universal Serial Bus)是 “通用串行总线”。它是一种应用在 PC领域的接口技术。其主要优点是:可以热插拔、携带方便、标准统一,因而得到了广泛的应用。 USB用于测试与测量应用的优势很多,使用 USB接口的设备也与日俱增,例如数码相机、扫描仪、图像设备、医疗设备、打印机等等。在工业环境自动化程度较高的现场,医疗设备对人体信息的提取和诊断,大量信息数据的获取与存储往往应用快速的 USB接口来实现,而目前的 USB接口对工业干扰非常敏感,在医疗上对人身安全存在隐
[嵌入式]
视觉系统的构成 机器视觉中常用的接口有哪些
视觉系统的构成 从机器视觉的定义可以推测出,一个摄像机和一个处理器结合在一起形成一个视觉系统。然而,这只是部分完整的描述。确实,视觉系统需要摄像机和处理器,但还有更多的组成部分,如图8所示。 摄像机需要镜头来形成光学图像。镜头必须提供合适的工作距离(镜头到场景的距离),正确的放大倍率,使场景填满摄像机的视野,并具备分辨细节的能力。还需要光源,以确保摄像机获得足够的合适照明,以创建可用且可靠的图像。 摄像机和处理器之间需要有一个接口。还需要软件来执行所需的应用程序分析。最后,处理器必须支持与其他连接设备所需的输入和输出。 视觉系统的类型 通常摄像机和处理器是分开的。这使得摄像机可以更小,而处理器则具备所有所需的计算能力和输入输出
[嵌入式]
视觉系统的构成 机器视觉中常用的<font color='red'>接口</font>有哪些
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved