基于Windows驱动程序的实时系统技术方案

技术编号:7115327 阅读:210 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于Windows驱动程序的实时系统,它涉及一种Windows系统实时扩展技术,以解决现有的采用驱动程序进行Windows实时扩展存在的实时性与稳定性差、控制系统开发与调试不方便以及采用RTX等实时软件进行Windows实时扩展成本高等问题。本发明专利技术的驱动程序及其动态链接库为实时系统提供各种系统服务,并且将接口函数封装在DLL中,此外,驱动程序还包含管理和运行实时任务的实时内核;应用层模拟程序及其动态链接库为实时控制系统提供应用层调试环境,采用Windows线程模拟实时任务,采用Windows定时器模拟实时内核的时钟中断,采用Windows的通信与同步机制模拟实时任务的通信与同步;实时任务及其动态链接库将实时任务模块从实时内核中分离出来,对其进行独立开发、调试。外部接口卡为实时内核提供高精度高分辨率的定时器,同时可以为实时控制系统与外部被控对象提供数据交互与信号转换等功能。

【技术实现步骤摘要】

本专利技术涉及一种Windows系统实时扩展技术,尤其是一种将实时内核直接 嵌入到 Windows驱动程序中,以克服传统的Windows实时软件需修改Windows HAL源代码以及常用的前后台结构驱动程序实时扩展技术存在的实时性与稳定性差、控制系统开发与调试不方便的问题,具体是一种基于Windows驱动程序的实时系统
技术介绍
Windows是微软公司开发的窗口式多任务操作系统,作为目前PC最通用的操作系统,在其平台上进行工业控制系统的设计与开发具有很多的优势与便利。但是Windows系统并不是实时操作系统,为了满足工业控制领域的需求,必须对其进行实时性扩展。目前对 Windows系统进行实时性扩展主要有以下两种方法一是采用商业的Windows实时扩展系统,如RTX等。RTX是基于Windows的实时控制软件,它通过对HAL的修改,在Windows线程和RTX线程之间增加一个中断间隔,使得 Windows线程不能中断RTX的实时线程,而RTX的实时线程能够随时中断Windows线程,同时Windows管理的设备也不能屏蔽RTX管理的设备,RTX管理的设备可以屏蔽Windows管理的设备,从而实现RTX系统的强实时性。作为成熟的商业实时系统,RTX提供了良好的实时性能和开发环境,但是开发授权费用昂贵,使得系统开发的成本增加。二是编写可以处理实时任务的前后台结构的驱动程序。所谓前后台结构,就是让系统中所有的实时任务放在驱动程序的中断服务程序中作为前台程序,非实时任务放在应用程序以及驱动程序的其它部分作为后台程序。这种方法比较简单,易于实现;但是由于所有的实时任务都集中在中断服务程序中,没有合理的任务管理和调度机制,不仅影响了系统的实时性而且使得复杂的控制系统设计难度大、可维护性差、升级不方便,因此只适用于小型的、对实时性要求不高的系统。此外,由于是在驱动程序的中断服务程序中进行实时任务开发,增加了系统开发与调试的难度,对于开发人员的要求较高。
技术实现思路
本专利技术的目的是针对商用实时系统成本高,而自行编写的实时程序不能应用于复杂的、对实时性要求高的控制系统的问题。为克服现有的Windows实时扩展技术的不足,设计一种能充分发挥嵌入式实时系统与Windows驱动程序的特点,成本低、实时性好的基于 Windows驱动程序的实时系统。本专利技术的技术方案是一种基于Windows驱动程序的实时系统,它主要由四个部分组成实时系统的驱动程序及其动态链接库,实时系统的应用层模拟程序及其动态链接库,实时任务及其动态链接库和外部接口卡。所述驱动程序及其动态链接库为实时系统提供各种系统服务,如硬件数据读写,实时内核操作等,并且将接口函数封装在DLL中。开发者可以通过调用驱动程序提供的动态链接库进行系统的开发工作。此外,驱动程序还包含管理和运行实时任务的实时内核。实时内核拥有完善的任务管理功能、调度机制、同步机制以及时间管理等功能。实时内核通过直接操作CPU寄存器完成实时任务切换,以及对Windows系统的屏蔽和快速的中断响应实现其强实时性。所述应用层模拟程序及其动态链接库为控制系统提供应用层调试环境。由于实时任务以及各种系统服务都运行在Windows的驱动程序中,不便于系统的调试。因此,为了简化系统的调试工作,本专利技术在应用层为实时系统设计了模拟程序。模拟程序采用Windows线程模拟实时任务,任务调度由Windows线程调度器负责,采用Windows定时器 模拟实时内核的时钟中断,采用Windows的通信与同步机制模拟实时任务的通信与同步。与驱动程序相同,模拟程序也可为实时系统提供各种系统服务,并且将接口函数封装在 DLL中供应用程序调用。模拟程序虽然无法提供硬实时环境,但是仍然可以对实时控制系统各模块的功能实现以及运行过程的大多问题进行测试与修改,大大减少了在内核层调试的工作量,杜绝了内存访问违规等可能导致操作系统崩溃的错误,显著降低了系统的调试难度。所述实时任务及其动态链接库将实时任务模块本体从实时内核中分离出来,对其进行独立开发、调试。并且,将实时任务模块分别按照实时内核与模拟程序两种不同的运行环境进行编译,生成对应的动态链接库供实时内核与模拟程序进行调用,进行实时控制系统的运行与调试。所述外部接口卡为实时内核提供高精度高分辨率的定时器,同时可以为实时控制系统与外部被控对象提供数据交互与信号转换等功能。高精度高分辨率的定时器是实时系统实时性和稳定性的基础。目前,在Windows系统下可以通过两种方法获得高精度高分辨率的定时器一是修改Windows的HAL,RTX就使用这种方法,但这需要得到微软授权获得HAL的源代码才能进行;二是通过修改8254计数器的计数初值获得高精度的定时中断,但这会涉及到Windows系统工作的定时中断,操作不当会使整个系统不稳定甚至崩溃, 而且中断周期更改不方便。因此,本专利技术借助于驱动程序对硬件操作的便利,通过外部接口卡引入外部时钟,不仅软硬件开销很小,而且易于实现高精度高分辨率的定时、便于修改定时器的频率。本专利技术的有益效果是本专利技术的基于Windows驱动程序的实时系统不仅解决了采用RTX等商用实时软件价格昂贵、控制系统开发与应用成本高等问题,而且有效克服了现有的采用前后台结构进行 Windows实时扩展存在的实时性与稳定性差、控制系统开发与调试不方便等问题。本专利技术的实时性与稳定性好。本专利技术的实时系统的实时内核能够抢占Windows线程,对Windows系统进行屏蔽,并且通过高精度的外部定时器、快速的中断响应以及实时内核独立的任务管理调度机制,使得实时系统具有良好的实时性与稳定性。本专利技术有利于各种控制系统的快速低成本开发。本实时系统通过实时内核进行实时任务的管理与调度,而且,实时任务在应用层进行开发,并以动态链接库的形式加载到实时内核中运行。此外,本实时系统将驱动程序中的各种服务封装成动态链接库,供开发者调用。这些方案降低了实时控制系统的设计与开发难度,改善了可维护性,提高了实时系统的通用性,使其可以方便应用于各种基于PC的工业控制系统。本专利技术调试方便。本专利技术的实时系统设计了应用层模拟程序,可以直接在应用层进行实时控制系统的功能调试,很方便地解决系统的大多数问题,很大程度上降低系统的调试难度,减少调试工作量。附图说明图1是本专利技术的基于Windows驱动程序的实时系统框架图。图2是本专利技术的基于Windows驱动程序的实时系统结构图。图3是本专利技术的实时内核进入与退出的过程图4是本专利技术实施例全软件数控系统的结构图。图5是本专利技术实施例全软件数控系统的加工流程及任务时序图。图6是本专利技术实施例全软件数控系统的应用层与内核层之间数据传输与通信。图7是本专利技术实施例全软件数控系统的测试用例图形。图8是本专利技术实施例全软件数控系统的加工工件实物照片。图9是本专利技术实施例全软件数控系统的加工速度一时间曲线。具体实施例方式下面结合附图和实施例对本专利技术进一步说明。如图1-9所示。一种基于Windows驱动程序的实时系统,它主要由四个部分组成(如图1、2所示) 1实时系统的驱动程序及其动态链接库驱动程序为实时系统提供各种系统服务,如硬件数据读写,实时内核操作等,并且将接口函数封装在DLL中供实时系统的应用程序调用。此外本文档来自技高网
...

【技术保护点】
1.一种基于Windows驱动程序的实时系统,由驱动程序及其动态链接库,应用层模拟程序及其动态链接库,实时任务及其动态链接库和外部接口卡四个部分组成,其特征在于:驱动程序及其动态链接库为实时系统提供系统服务,并且将接口函数封装在DLL中,此外,驱动程序还包含管理和运行实时任务的实时内核;应用层模拟程序及其动态链接库为实时控制系统提供应用层调试环境:采用Windows线程模拟实时任务,采用Windows定时器模拟实时内核的时钟中断,采用Windows的通信与同步机制模拟实时任务的通信与同步;实时任务及其动态链接库将实时任务模块从实时内核中分离出来,对其进行独立开发、调试;外部接口卡为实时内核提供高精度高分辨率的定时器,同时为实时控制系统与外部被控对象提供数据交互与信号转换。

【技术特征摘要】

【专利技术属性】
技术研发人员:游有鹏魏明江
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:84

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

1