一种基于RTLinux的设备实时控制方法技术

技术编号:6709892 阅读:220 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出了一种基于RTLinux的设备实时控制方法,利用在裁减后标准Linux系统上加载RTLinux实时内核的实时操作系统,对RTLinux进行扩展,增加RTLinux对所需控制设备的支持,实现RTLinux中断共享。本发明专利技术的方法不改变RTLInux的原有特性,支持原有RTLinux的全部功能,兼容性好,能够进行RTLinux以及Linux系统下设备控制应用的扩展开发。

【技术实现步骤摘要】

本专利技术涉及一种基于实时操作系统RTLinux的设备实时控制方法,是一项涉及实 时操作系统、设备驱动的计算机系统软件技术,提供了一套包括实时环境、设备驱动以及接 口 API函数库在内的设备实时控制的解决方法。
技术介绍
基于实时操作系统的计算机实时控制技术在工业控制、通信和大型服务器中的应 用日益广泛。传统的通用系统由于操作系统的分时性,主要是过长的中断反应时间和任务 切换反应时间,无法提供对PCI设备、USB设备、网络设备等设备的实时控制,因此无法满足 这些设备对高效数据采集、时序控制等实时任务的要求。在众多实时操作系统中,Linux系统具备以下优点开放式性好,可免费获取内源 码,并进行任意修改;可以支持多种平台,移植性好;系统内核可根据需要裁减;支持的功 能丰富;安全性和可靠性高。采用裁减后的Linux可以在保证系统满足所需功能的前提下 保证体积的最小化,对专用的嵌入式设备而言能够最大限度的节省存储空间。但是,标准的 Linux系统由于实时性能不佳,通常采用在系统中加载RTLinux实时内核实现对硬实时的 支持。RTLinux与Linux操作系统共存的硬实时操作系统能够创建精确运行的符合 POSIX. Ib标准的实时进程。RTLinux实现了一个高效的可抢先的实时调度核心,全面接 管中断,并把标准Linux作为此实时核心的一个优先级最低的进程运行。RTLinux和标准 Linux构成一个完备的整体,实时内核确保了关键任务的硬实时性,能够完成既包括实时和 非实时的复杂任务。但是,RTLinux操作系统存在中断无法共享,不能同时支持多个同类设 备运行,内核线程无法相应设备中断等问题。同时,RTLinux作为实时系统内核,缺少对硬 件设备的支持。
技术实现思路
针对上述现有技术存在的不足,本专利技术提出了一种基于RTLinux的设备实时控制 方法,利用在裁减后标准Linux系统上加载RTLinux实时内核的实时操作系统,对RTLinux 进行扩展,增加RTLinux对所需控制设备的支持,实现RTLinux中断共享,主要包括以下步 骤(1)在RTLinux源码中编写支持设备接口函数,包括接口设备文件类型、文件操作 接口函数、方法函数、注册和撤销的函数,并生成对应接口模块;(2)在RTLinux的中断注册函数中增加对设备的中断注册,改写RTLinux中的 rtl_core. c文件,在保持RTLinux原有处理方式不变的情况下,增加对PLXPCI9000的设备 的中断支持;(3)对标准Linux驱动程序的设备驱动接口 file_operations采用RTLinux的 内核函数进行实时化,以及自旋锁实时化,在标准Linux驱动程序中使用RTLinux的rtl_wait_t处理中断等待,使用RTLinux的posix线程响应PLXPCI9000设备中断;(4)将标准Linux的API函数库采用RTLinux的内核函数封装为内核模块,把PLX PCI900设备的物理内存映射函数改写为与RTLinux内核函数一致的形式,增加posix的互斥量。本专利技术提出的基于RTLinux的设备实时控制方法,是一种具备硬实时性的设备实 时控制解决方法,包括实时操作系统环境、实时设备驱动以及实时控制API函数,解决了标 准RTLinux下无法实现中断共享的问题,可实现同时对多个同类设备的实时控制,经实际 验证,相同设备在实时控制下较之非实时控制中断响应时间由毫秒级提高到微秒级,实时 性能好;此外,本专利技术的方法不改变RTLInux的原有特性,支持原有RTLinux的全部功能,兼 容性好,能够进行RTLinux以及Linux系统下设备控制应用的扩展开发。具体实施例方式本专利技术采用在裁减后标准Linux系统上加载RTLinux实时内核的实时操作系统。 对RTLinux进行扩展,增加RTLinux对所需控制设备,如PCI设备、USB设备、网络设备的支 持,实现RTLinux中断共享,确保多个同类设备在实时内核中能够同时运行。在设备原有标 准Linux驱动程序结构基础上,保持驱动框架结构和驱动接口,使用RTLinux实时内核函数 将其实时化。提供设备驱动的实时应用API接口函数,将设备驱动接口 API函数实时化,解 决驱动与RTLinux不兼容的问题。解决内核线程无法响应中断的问题,在RTLinux线程中 实现中断处理。最后,需要解决实时驱动与原API库函数不兼容问题,并将API库函数中 使用的系统函数用内核函数重写,将API函数库以RTLinux内核模块的形式实时化,库函 数在驱动模块加载后作为实时内核模块加载,由实时任务调用。具体是对实时RTLinux系 统进行扩展,实现中断共享机制,并在RTLinux的Posix线程中处理中断;在RTLinux中添 加对设备的支持。增加设备接口函数,包括接口设备文件类型、文件操作接口函数、方法函 数、注册和撤销的函数,并生成对应接口模块;在RTLinux中断注册函数增加对设备驱动的 实时处理。RTLinux的硬中断,同一中断号只能注册一个设备,无法被多个使用RTLinux驱 动的设备共享。为了在RTLinux中实现中断共享机制,改写RTLinux中的rtl_core. c文 件。为了与RTLinux原有的函数兼容,在保持原有处理方式不变的情况下,增加了对新设备 (XJS_device)的中断支持。使用该类新设备所对应中断注册、响应及处理函数,即可将同 一中断号与多个XJS_device共享;通过对驱动程序中断处理部分的进行实时化和设备驱 动接口 filejperations的RTLinux实时化改写,以及自旋锁实时化,实现了设备驱动的标 准Linux下驱动源码的实时化。由于内核线程中无法响应中断,为了在实时任务中响应设 备中断,在驱动中使用RTLinux的rtl_wait_t处理中断等待,实现实时任务使用RTLinux 的posix线程响应设备中断。将API改写为内核模块函数、把物理内存映射函数改写为与 实时内核一致的形式,增加posix的互斥量,将实时控制函数转换为内核函数,从而完成设 备API函数的内核化和实时化。最后编写设备实时驱动、API内核函数库的加载和删除脚 本,能够方便的在系统设备路径Zdev中加入和清除实时设备。对设备的实时控制任务,可在硬件系统载入设备后,启动扩展后的RTLinux实时 内核,并启动加载设备路径脚本,同时载入实时设备驱动模块以及API实时函数库内核模 块,不同实时任务可以依据任务要求调用实时API库函数进行对设备的实时控制。本专利技术扩展后的RTLinux不改变RTLInux的原有特性,完全支持原有RTLinux的 全部功能。设备实时驱动、实时驱动API库将在RTLinux启动后以实时内核模块加载入系 统。设备的实时控制部分也将实时内核模块在系统中运行,而设备控制应用等非实时任务 可以运行在Linux用户空间,能够方便地使用系统提供的各种资源(网络、文件系统等),并 受到系统的保护,增加了系统的安全性。下面以提供PLX PCI9000系列芯片为接口控制器的PCI设备在RTLinux下的实时 控制解决方法,进一步说明本专利技术的
技术实现思路
。在RTLinux源码中编写支持PLX本文档来自技高网
...

【技术保护点】
1.一种基于RTLinux的设备实时控制方法,主要包括以下步骤:(1)在RTLinux源码中编写支持设备接口函数,包括接口设备文件类型、文件操作接口函数、方法函数、注册和撤销的函数,并生成对应接口模块;(2)在RTLinux的中断注册函数中增加对设备的中断注册,改写RTLinux中的rtl_core.c文件,在保持RTLinux原有处理方式不变的情况下,增加对PLXPCI9000的设备的中断支持;(3)对标准Linux驱动程序的设备驱动接口file_operations采用RTLinux的内核函数进行实时化,以及自旋锁实时化,在标准Linux驱动程序中使用RTLinux的rtl_wait_t处理中断等待,使用RTLinux的posix线程响应PLXPCI9000设备中断;(4)将标准Linux的API函数库采用RTLinux的内核函数封装为内核模块,把PLX PCI900设备的物理内存映射函数改写为与RTLinux内核函数一致的形式,增加posix的互斥量。

【技术特征摘要】

【专利技术属性】
技术研发人员:潘小群
申请(专利权)人:中国船舶重工集团公司第七研究院
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1