利用实时加速器技术实现Windows操作系统对实时应用程序的支持

本文介绍了Acontis的RtaccWin技术,一种能在Windows环境中提供确定性实时功能的解决方案,通过CPU隔离和专为实时应用设计的驱动程序,实现低抖动、高效性能。开发者可以利用标准Win32API进行开发,且配置过程简单,有助于工业自动化和医疗技术等领域的应用。
摘要由CSDN通过智能技术生成

如今,越来越多的应用,特别是在工业自动化、医疗技术、数据采集和测量技术等领域,都需要确定性的实时行为。acontis实时加速器技术(RtaccWin)使您能够在Windows下运行具有确定性的硬实时功能应用程序。这是通过专门为实时应用程序保留一个或多个 CPU来实现的,设置 Windows 适当的参数化并利用 acontis 内核驱动程序进行精确定时和直接硬件访问。

01 软件架构

基于Windows IoT Enterprise的PC可以从acontis的RtaccWin软件中受益,以保证在1毫秒的周期时间中运行稳定的实时应用程序。原则上,还可以实现更快的周期时间。为了实现这一点,至少保留一个CPU专门用于实时应用程序,而其他CPU则于标准的Windows应用程序。

RtaccWin 包括一个Windows系统驱动程序,可为整个应用程序提供精确且可调节的时钟。为了确保确定性行为,标准Windows驱动程序通常不用于实时应用程序。相反,RtaccWin中的内核驱动程序允许从 Windows 用户模式直接访问硬件,例如网卡、现场总线卡等,从而降低抖动、显著降低CPU利用率并具有确定性行为。还允许在不使用Windows网络堆栈的情况下发送和接收以太网帧,并且在并行使用其他网络接口时不会产生不利影响。

图片

02 配置工具:RtaccWinConfig

软件配置工具 RtaccWinConfig用于为实时应用程序准备Windows系统。首先,它至少隔离了一个CPU,这也意味着常规 Windows进程和服务不会再使用该CPU。这样,隔离的CPU就能专门用于实时应用程序。

图片

RtaccWinConfig工具的另一个功能是为实时应用程序分配硬件。这意味着常规的 Windows 驱动程序已经卸载,可以从 Windows 用户空间访问硬件。acontis内核驱动程序可以快速、直接地访问已分配硬件的所有内存区域。

图片

03 软件开发

开发实时应用程序的过程类似于标准Windows应用程序开发的过程。以下是要遵循的步骤:
1、使用RtaccWinConfig工具设置系统
2、为实时任务创建一个或多个线程
3、将这些线程分配给先前隔离的CPU
4、为线程分配一个非常高的优先级,使它们成为“实时线程”
5、可选择通过acontis Windows系统驱动程序生成一个稳定而精确的时钟
一个Windows 进程可以包括“非实时线程”和“实时线程”。这两种线程类型都可以访问全局变量并使用标准同步机制,如事件、关键部分、互斥锁和信号量。常用的 Win32 API 也可在“实时线程”中使用。您可以在整个开发过程中使用Microsoft Visual Studio的全部功能。在调试模式下,所有线程都可以访问所有资源。当然,您也可以在没有实时行为的情况下逐步执行“实时线程”。

图片

04 性能

一个稳定、精确、低抖动的时钟对于实时应用是至关重要的,特别是对于每毫秒执行一次的控制循环。理想情况下,应用程序应该每1000微秒精确触发一次,但在实践中可能会出现偏差,导致间隔或长或短。在使用acontis 实时加速器技术时,这些偏差(也称为抖动)可以在 Windows 下显著减少。

RtaccWinConfig 软件工具可以测量具有特定周期时间的隔离CPU性能。最大和最小偏差值可以用图形显示。允许的最大抖动取决于应用程序,在通常情况下,可以接受高达周期时间10%的偏差。例如,周期时间为1000微秒时,最小值应不小于900微秒,最大值不应大于1100微秒。

如果没有实时加速器技术,周期时间可能会大幅波动。8小时后,在运行Windows IoT的Minis Forum U820(i5-8279U CPU)上进行了测试,并大量加载Passmark老化测试,结果显示有明显的波动。

图片

启用实时加速器技术可以保证时钟的精确度同时误差最小,在8小时后的同一系统上进行的测试证明了这一点。

图片

05 特征

1、微秒级的快速响应时间

2、硬实时与实时加速器技术使用CPU隔离

3、在一个独立的CPU的一个进程中实现实时功能和标准功能

4、RtaccTimer驱动程序生成精确,稳定的时钟

5、RtaccDevice驱动程序,可以直接访问硬件无需内核驱动程序

6、 合适的配置工具RtaccWinConfig

06 优势

1、实时应用程序可以像普通的Windows应用程序一样开发

2、标准Win32 API也可用于实时线程中

3、支持Microsoft Visual Studio。方便开发和调试整个实时应用程序。

4、通过变量进行简单的数据交换。不需要在应用程序的实时和非实时部分之间进行复杂的通信。

5、操作简单,培训工作量低

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值