概述
相对于传统的单处理器或多处理器芯片,多核架构可提供更高性能、更强运算能力、更高系统密度,同时可降低热量消散。Windows作为通用操作系统,主要用于满足个人用户的家庭需求。因此当满足工业应用的实时性要求时,则需添加Windows控件,Ardence公司的Ardence RTX即可实现对Windows的实时性控制。
Windows操作系统的局限
人们喜欢Windows系统,是因为他们习惯了Windows的界面、工具甚至是开发语言。但Windows的局限性在于当致命的错误发生时,它不能保证关键性应用的持续运行,同时作为通用操作系统,Windows不提供实时性控制。
如何解决上述问题,传统的解决方案采用PCI 卡实现实时性控制,但它的硬件成本高昂,集成度有限,主机与应用处理器需采用不同的开发工具,因此要求开发人员掌握更多技能,提高了实现成本。由此可知,我们需要开发更便宜更方便的实时性控件。
Ardence RTX对Windows的实时性控制
Windows架构图
Windows架构如图1所示,Windows最底层是硬件层,即通常所说的X86架构、ARM架构或PowerPC架构,在Windows操作系统中,一般通过硬件抽象层扩展的概念实现对硬件层的操作。硬件抽象层(即图中HAL层)的作用可理解为硬件到软件的接口,它将硬件信息抽象成软件可识别的资源,同时把软件的命令与请求发送给硬件执行。
H AL层之上是大家熟悉的Windows内核(Windows Kernel及设备驱动)层,Kernel指Windows最底层的常用服务,如网卡、显示等底层设备驱动、定时器和优先级调度等;驱动则是专门对底层设备的驱动。如,把一个串口插入到系统中,系统需要被Kernel识别才能进行底层硬件操作。上层所有的请求必须转到驱动上,由驱动和底层硬件I/O通信,才能实现功能上的操作。Windows架构中,上层应用不能直接访问底层硬件,必须通过驱动及Kernel层所含的服务才能向下访问,因此Windows内核层是Windows的核心部分。
对于一般用户而言,Windows相当于一个GUI图形界面,它使用非常方便、所见即所得。而实际上,精确的讲这个概念对应的只是Windows32子系统,它的作用是为上层提供相应的图形化处理及与人机接口相关的程序。
DOS即Windows的一个子系统,它与Windows32子系统的概念一致。通常用户编写的MFC程序存储在图中的最高层(Win32 Process 层)中。因此当Windows想访问硬件时,以串口为例,需要逐层把请求发送下去,而生成的结果也需逐层返还。
Windows32子系统与Windows32 Process构成了用户层。通常用户进行程序编写时,只能访问到用户层级别。因此Windows只是通用性操作系统,它并不针对确定的实时性需要。它的分层架构虽然弥补了设备无关性问题但在分层过程中却牺牲了实时性与确定性。
RTX的实时性控制
RTX概念
RTX是基于Windows的硬实时扩展子系统,其全称为:Real Time Extension for Windows。它是具有鲁棒性、确定性的嵌入式实时系统,相对于Linux等嵌入式系统,RTX可实现与Windows的无缝兼容。RTX时钟的定时周期,最低可至100 s,其时钟分辨率可达100ns。
RTX架构
RTX用于解决Windows架构存在的问题。RTX子系统是在硬件刚上升为软件的位置将Windows底层资源接管过来,被接管的资源,称作RTX硬件抽象层扩展。RTX硬件抽象层扩展不对Windows HAL做任何代码修改,而是通过增加代码使设备资源实现实时性控制。
与Windows类似(如图2所示),RTX包含相应的RTX子系统--RTSS。RTSS是一个确定的实时系统,可为上层进程提供确定性的任务调度。基于RTSS系统对底层设备进行操作时,以串口为例,当请求发送给RTX子系统后,经过硬件抽象层扩展即可直接访问系统硬件。RTX所有的进程都在内核级别,它和驱动具有相同甚至更高的优先级,这样可以使其满足对硬件访问时的绝对优先级。此外,RTX还包括相应的实时RT-TCP/IP网络,支持USB及动态链接库。
RTX子系统可以满足实时性需求,而在整个系统中,非实时部分与实时部分又是如何进行通信? RTX提供了完善的IPC通信机制,IPC类似于Windows间的进程通讯,它使用比较底层的信号链、事件体及互斥体等进行操作。在其操作过程中,对于和RTX打交道的进程,即图2中"Win32 Process with RTX IPC"部分,可通过内嵌动态链接库的方式,嵌入RTX的API函数,通过API函数用共享内存与RTX进程直接通信。它和Windows两个进程间的通信没有本质上的区别,只是Windows是两个非实时性进程间的通信而RTX与Windows是实时与非实时间的通信。
RTX可以保证100%的确定性实时调度。对于一个通用系统而言,可以抛弃传统的上下位机的方式,而使用一体的多核或双CPU PC机实现,其处理能力完全可以满足实时系统的需要。上层GUI界面由Windows实现,不需要任何修改,只是底层以RTX替代原有的下位机部分。
RTX优势
现代多核处理器和在"专用内核"模式下工作的Ardence RTX处理器的优势可概括为:一个内核专用于您的应用;您所有应用进程的优先级均高于采用独立调度程序的Windows进程的优先级;您仍然可以同时使用Windows多线程和RTX多线程;无需检查Windows驱动模型,您的应用就可以访问硬件;您可以利用针对Windows和RTX的Visual Studio来进行开发;如果需要,RTX可以提供"硬"、实时性能;即使当Windows出现了致命的异常现象,您的应用也会继续运行下去。
RTX适用环境
RTX适用于军工、测试测量及航空航天领域,在仿真领域RTX有着极为广泛的应用。汽车仿真应用中通常采用基于CAN总线的系统,而在航空领域,通常采用基于航空153B总线的系统,Windows虽可实现对上述系统的仿真,但Windows不具确定性。因此需使用RTX改写系统驱动,使系统具有完全的鲁棒性和确定性。经过修改的系统即可为实时分布式仿真服务。 |