我的理解是 Windows 是不确定的,在使用它进行数据采集时可能会遇到麻烦。使用 32 位总线和双核,是否可以使用内联汇编来处理 Visual Studio 2005 中的中断,或者至少设置某种标志以在时间上保持一致而几乎没有抖动?
朝着 RTOS(实时操作系统)的方向发展:在内核模式下编程的 Windows CE 对我们来说可能太贵了。
Windows 有第三方实时扩展。参见,例如http://msdn.microsoft.com/en-us/library/ms838340(v=winembedded.5).aspx
LabVIEW Real-time或RTX等 Windows 实时解决方案价格昂贵;独立的 RTOS 通常会更便宜(甚至免费),但如果您还需要 Windows 功能,那么您可能没有进一步的进展。
如果成本很关键,您可以在虚拟机中运行免费或低成本的 RTOS。这可以工作,尽管 RTOS 和 Windows 之间没有硬件访问的合作,也没有直接的通信机制(我想你可以在虚拟(或真实)网络上使用 TCP/IP。
另一种选择是在独立硬件(例如微控制器开发板或 SBC)上执行实时数据采集,并通过 USB 或 TCP/IP 与 Windows 进行通信。有可能通过这种方式将时序抖动降低到微秒级或更好。
Windows 不是 RTOS,所以没有神奇的答案。但是,您可以做一些事情来使系统更加“实时友好”。