• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 一种改进嵌入Linux实时性的新型方案

一种改进嵌入Linux实时性的新型方案

录入:edatop.com     点击:

RTAI对Linux的实时性改进

现有几种针对Linux的实时系统解决方案,实现方法主要包括两种:

1)直接修改Linux内核、增加实时性,如:Montavista;

2)在普通Linux内核之上增加实时模块、双内核结构,如:RTLinux或RTAI。

Montavista 可以满足用户的软实时要求,RTLinux或RTAI着重增强Linux的硬实时特性。软实时系统的时限是柔性灵活的,它可以容忍偶然的超时错误。失败造 成的后果并不严重,仅仅是轻微地降低了系统的吞吐量。硬实时系统有一个刚性的、不可改变的时间限制,它不允许任何超出时限的错误。超时错误会带来损害甚至 导致系统失败、或者导致系统不能实现它的预期目标。

RTAI采用双内核方法,不直接使用Linux的任何功能,而是把需要高度时间精度的 工作写成一个驱动程序的形式,然后直接用PC时序芯片所产生的中断调用这个驱动程序。RTAI与NMT RT-Linux的最大不同之处在于,它在Linux上定义了一组实时硬件抽象层(RTHAL)。RTHAL将RTAI需要在Linux中修改的部分定义 成一组程序界面,RTAI只使用这组界面和Linux沟通。这样做的好处在于,用户可以将直接修改的Linux核心程序代码减至最小,这有可能使得将 RTHAL移植到新版Linux的工作量减至最低。

但是,RTAI虽然满足了硬实时性要求,却没有被裁减为足够小且适用于嵌入式系统。

RTAI+uClinux的实时方案

uClinux 是为嵌入式应用设计的,它本身并没有更多地关注实时问题。uClinux经过小型化改造,形成了一个高度优化、代码紧凑的嵌入式Linux,并保留了 Linux大多数的优点。它专门针对无MMU的CPU,去除了普通Linux内核中的虚拟内存管理部分。更重要的是,uClinux提供了完整的 TCP/IP协议栈,并支持大量其他的网络协议,为嵌入式系统提供了强大的网络支持。

而从前面的分析可以看出,RTAI是基于普通Linux内核,相对于嵌入式应用其内核过于庞大;而uClinux本身并没有更多地关注实时问题。因此,可以将RTAI和uClinux相结合,采用双内核的设计方案,既满足了嵌入式应用的需求,又保证了系统的硬实时性。

1.硬件抽象层

\

图3 系统中断处理流程图

系统的实现基础是硬件抽象层,通过硬件抽象层进行硬件管理,把基本内核和实时内核结合在一起,其中一个内核的改变,不会影响另一个内核的执行。

硬 件抽象层定义了本系统同硬件之间的抽象接口,主要用来截取硬件中断,并且依据实时内核调度器的需求,重定向为基本内核任务或是实时任务。RTHAL包含一 个关键的组件:中断描述符表(IDT,Interrupt Descriptor Table),它定义了一套指针用来处理中断例程。RTHAL本身定义了一个结构,使得基本内核中断处理函数能够很容易地被实时处理函数所替代。这样,当 实时内核通过RTHAL激活后,新的IDT表为合法。在以上控制下,基本内核作为实时系统的任务提供服务。

2.双内核结构

双内核实时系统的总体结构模型如图1所示,主要包含了基本内核、实时内核、硬件抽象层、硬件部分。

其 中基本内核(uClinux)和实时内核(RTAI)分别处理非实时和实时任务的调度和执行,而实时任务和非实时任务之间信息的交换要通过管道 (FIFO)或共享内存(MBUFF)来实现。当实时任务运行时,基本内核被硬件抽象层屏蔽。即实时内核将基本内核作为优先级最低的一个任务来运行,只有 在没有实时任务运行的时候才予以调度。

3.实时内核动态加载

嵌入式实时Linux的实时内核是动态加载的。实时任务被激活前,实时内核并没有启动,基本内核通过RTHAL透明访问硬件,就像RTHAL不存在一样。当实时任务被激活时,RTHAL结构发生变化,基本内核被实时内核接管,图2表明了实时内核启动前后,系统发生的变化。

4.调度处理

当 中断到来时,实时内核判断它是基本内核中断还是属于实时中断,分别进行处理。若是基本内核中断,如果当前有实时任务正在运行,则只是设置一下中断标志位, 悬挂此中断,如果没有实时任务运行,则调用基本内核的中断处理程序;如果此中断是实时中断,就直接调用相对应的实时中断处理程序。注意,实时中断可以抢先 基本内核任务的执行。系统的中断处理流程如图3所示。

应用案例

工业控制是嵌入式实时操作系统的传统应用领域,需要严格的实时处理功能、高可靠性和良好的开放性,对开发环境、可操作性、成本等也有特别的要求。因此本项研究以重大装备的远程监控系统作为其应用之一。

1.嵌入式远程监控系统结构

应 用针对工业生产中使用的大型设备在连续运转状态下的远程监控问题,研究用于重大装备远程监控的嵌入式装置。系统主要包括输入/输出模块(NetIO)和输 入/输出上位模块(NetWeb),前者用于实现现场数据的采集(输入),或用于现场装置的控制(输出),后者集成了Web功能,使得用户可以通过互联网 对输入/输出模块进行访问。两类模块通过网络相连接,在本系统中为通过串行485总线。嵌入式远程监控系统结构如图4所示。

来源:linux联盟

上一篇:基于ADP2119设计的2A降压DC-DC电源转换技术
下一篇:综合布线系统的物理验收与鉴定

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图