解决方案有助于嵌入式硬件控制

微软Windows CE向嵌入式系统和工业控制领域的扩展对试图帮助应用程序与越来越多的硬件设备通信的开发人员提出了挑战。一些开发人员面临时间紧迫的任务,需要对特定的Windows CE领域进行增强(通常涉及长时间和不确定的延迟)。

通过威廉·凯尔 2000年4月1日

微软Windows CE向嵌入式系统和工业控制领域的扩展对试图帮助应用程序与越来越多的硬件设备通信的开发人员提出了挑战。一些开发人员面临时间紧迫的任务,需要对特定的Windows CE领域进行增强(通常涉及长时间和不确定的延迟)。

幸运的是,有几种方法可以解决延迟问题。例如,Blue Water Systems (Bellvue,Wa.)为Windows CE开发的WinDK提供了设备驱动程序开发来解决对时间要求严格的硬件控制。它构建在内核基础设施之上,添加了一些特性和驱动程序开发环境。除了wink for Windows 2000接口,wink for Windows CE还包括一个用于开发的类库和一个用于创建开发起点的代码生成向导。

其他特性包括:用于高性能设备驱动程序的总线主DMA,包括硬件分散-聚集支持;从机DMA支持;支持重叠I/O和请求排队;中断处理;在多个设备之间透明地共享中断;ISA, PCI和PCMCIA总线的完整枚举;多处理器的支持;以及性能分析。

这显示了带中断服务例程(ISR)的典型时间关键型扩展(TCX)如何在流氓线程中运行。

时序要求严格的扩展

时间关键型扩展(TCX)是Windows CE的扩展,在为Windows CE开发高性能设备驱动程序时,它还解决了长时间和不确定中断服务线程(IST)延迟的问题。TCX增加了对真嵌套内核中断服务例程(ISRs)和高速内核计时器的支持。

例如,上面的图显示了一个流氓线程正在运行的情况,并且出现了周期性中断。在本例中,到ISR的平均延迟为5

确定性中断延迟的一个关键要求是支持ISR抢占。ISR抢占意味着当一个ISR正在执行并且一个高优先级的中断被断言时,当前的ISR被抢占并开始处理高优先级的中断。这种情况也称为中断嵌套。之后,恢复原来的中断处理。

TCX包含一个用于嵌套内核中断的优先级方案。优先级是通过注册表项设置的。为16个中断级别定义一个掩码。每个中断的掩码指定在中断执行期间,除中断本身外,将屏蔽哪些其他中断。中断掩码允许建立一个简单的中断优先级,例如使中断级别0总是比任何其他中断的优先级更高。还可以定义更复杂的关系。

中断7在嵌套的内核中断中抢占中断6以获得低延迟。

下面的图表显示了一个例子,中断7被设置为最高优先级,中断6已经开始执行。中断7现在触发并抢占中断6。中断7结束后,中断6处理恢复。通过选择某些中断具有较高的优先级,可以在重要中断上一致地获得非常低的延迟。

除了嵌套的内核isr之外,TCX还添加了内核计时器。这些计时器的工作方式类似于内核isr。它们可以被编程为高频率的周期性。定时器频率取决于所使用的平台和配置的时钟设置。定时器抖动与中断抖动的大小相似。

随着Windows CE开发人员机会的增加,对简化硬件设备控制的工具的需求也在增加,例如用于Windows CE的WinDK。快速扭转项目并将其投入市场将决定成功与否,还是发布另一款“模仿”产品。

欲了解更多信息,访问www.bluewatersystems.comwww.globalelove.com

作者信息
威廉·凯尔,蓝水系统副总裁billk@bluewatersystems.com