利用针对医疗物联网的 Windows 10 实时扩展
物联网正在将各个孤立的嵌入式系统变成联网的交互式设备,这些设备越来越需要实时性能来执行应用程序控制功能且要求具有可接受的确定性。 虽然 Windows 10 本身不支持实时操作,但是第三方扩展可以为开发人员提供所需的解决方案,以此利用 Windows 10 的功能,同时满足其应用程序的实时要求。
可以肯定的是,功能丰富的 Windows 操作系统 (OS) 提供了大量开发工具、网络堆栈、基于触摸的图形界面,可满足开发人员和设计人员实现需要人机交互的互联设计的需求。 而且,随着物联网 (IoT) 设备越来越流行,下一代 Windows 10 物联网内核平台旨在填补 Windows CE 和 Windows Embedded 软件版本之间存在的空白。
但是,为了避免 Windows 以前版本的一致性问题,Microsoft 选择了不在 Windows 10 中包括实时功能。 这是一个显著的缺点,在医疗物联网系统的设计人员看来更是如此,因为实时性对于确保快速、确定性的响应时间来说至关重要。
因此,需要一组实时软件扩展在运行 Windows 10 的设备中实现确定性的响应,但是在深入探讨可用的解决方案之前,让我们先了解一下 Windows 10 物联网内核架构的背景。
功能丰富的物联网版 Windows 10
该 Windows 10 平台实际上是一个可扩展的操作系统产品家族,它包括 Windows 10 物联网内核,是适合资源有限的联网设备的微小软件包。 连同操作系统本身一起,Windows 10 物联网内核(以及其余的 Windows 10 家族成员)为开发人员提供了可跨多个硬件平台(包括 32 位和 64 位计算架构)工作的服务和 API。
为了帮助将外围设备、传感器以及其他物联网设备连接到 Microsoft Azure 等云服务,Windows 10 物联网内核支持蓝牙、Wi-Fi、Wi-Fi Direct 以及 AllJoyn 标准(现在以 IoTivity 之名运行)。 这种支持对于多个协议和操作系统平台的互操作性和使用至关重要。 此外,该操作系统还通过提供安全引导和 BitLocker 磁盘加密等安全功能,保护连接的设备免受网络威胁和恶意攻击。
Windows 物联网内核操作系统很可能使 Windows CE 黯然失色。 虽然 Windows CE 提供实时处理功能,但是它陷入了与标准 Windows 之间的不一致关系所导致的困境(例如,因为特定于 Windows CE 平台的用户交互和开发工具)之中。 对于 Windows 10,Microsoft 确信它的新平台不会沦落为同样缺少一致性和可扩展性的牺牲品,但是在开发过程中,它也从 Windows 10 中剥离了实时功能。 对于分秒必争而且确定性至关重要的医疗系统等应用,开发人员需要有一种解决方案。
Windows 10 物联网内核提供了实时性能
那么嵌入式开发人员如何将它们的基准 Windows 10 转变为实时的操作系统 (RTOS) 呢?输入 IntervalZero 及其 RTX64,也就是为 Windows 10 物联网内核实现了实时处理的加载项。
RTX6 是一个独立的实时子系统 (RTSS),它完全独立于 Windows 内核,绕过 Windows 调度程序来促进确定性和硬性实时响应(图 1)。 因此,Windows 程序可通过 RTX64 软件提供的实时 API 在两个层面(内核层面和用户层面)与实时部分交互。
RTX64 既不隔离 Windows,也不修改 Windows 基础设施,因为 RTX64 中的硬件抽象层 (HAL) 与 Windows HAL 不同(尽管两个 HAL 并行工作)。 这就创建了一个单独的软件环境,它能够顺利容纳 Windows 的丰富用户界面以及 RTX64 软件的实时进程。
RTX64 中的 HAL 具备 1 到 63 个处理器内核的扩展范围,同时提供时间短至 1 µs 的确定性性能。 在 RTX64 的 RTSS 内部驻留了高速调度程序,它采用了抢占式和优先级驱动的算法,使用对称多处理 (SMP) 为内核分配多达 997 个独立进程以及无限制的线程。 这就消除了 Windows 和实时线程之间的交互(或干扰),不再需要虚拟化或其他进程间通信方法。 此外,它还确保基于 RTX 的应用程序在 Windows 崩溃时能够存活下来。
RTX64 提供了对 128 GB 非分页内存的访问,这增强了它的医疗适用性,因为它打开了磁共振成象 (MRI) 的大门。 这要求准确地呈现和处理器官图像。
实现快速、低成本开发的硬件支持关键
由于在 Windows 环境中缺乏确定性,嵌入式开发人员最后通常使用两个不同的处理平台:一个用于常规数据处理应用程序,如 HMI 和网络通信,一个用于运行 RTOS 来执行控制功能。 此类架构通常成本昂贵,而且影响到具有平台间问题的设计。
但是,可以使用正确的支持软件来避免这种双平台方法。 例如,Intel Atom® 处理器 E6xx 系列使用可同时运行两个线程的英特尔® 超线程 (HT) 技术:一个线程用于 Windows 10 物联网内核,一个线程用于 RTX64。 从操作系统角度,它可以使它们像两个不同内核一样运行。 这简化了系统设计,降低了总体成本,减小了主板大小,并且使软件开发更加顺利。 此外,Intel Atom 处理器还为实时应用程序提供 DSP 级别的性能,达到浮点精确度。
生态系统的力量
通过推出 Windows 10 及其 Windows 10 物联网内核,Microsoft 对 Windows 进行了许多改进。 但是没有操作系统是完美的,IntervalZero 及其 RTX64 展示了生态系统的力量。 现在,实时应用程序可以围绕低功率的 Intel Atom 处理器以及 Microsoft 的 Windows 10 物联网内核软件来开发。 一套硬件与一个操作系统环境以及 RTOS 扩展相结合,简化了设计,降低了成本,并且缩短了物联网应用程序的上市时间。