我的理解是,Windows是非确定性的,在使用它进行数据采集时会出现问题。使用32位总线和双核,是否可以使用内联asm来处理Visual Studio 2005中的中断,或者至少设置某种标志以及时保持一致并且抖动小?如何在Windows 7.0中编程以使其更具确定性?
走向RTOS(实时操作系统)的方向:在内核模式下编程的Windows CE可能对我们而言过于昂贵。
我的理解是,Windows是非确定性的,在使用它进行数据采集时会出现问题。使用32位总线和双核,是否可以使用内联asm来处理Visual Studio 2005中的中断,或者至少设置某种标志以及时保持一致并且抖动小?如何在Windows 7.0中编程以使其更具确定性?
走向RTOS(实时操作系统)的方向:在内核模式下编程的Windows CE可能对我们而言过于昂贵。
适用于Windows的实时解决方案,如LabVIEW Real-time或RTX价格昂贵;一个独立的RTOS通常会更便宜(甚至可以免费使用),但是如果您还需要Windows功能,那么您可能就没有进一步的发展。
如果成本非常关键,您可以在虚拟机中运行免费或低成本的RTOS。这可以工作,虽然有过RTOS和Windows,并没有直接的沟通机制之间的硬件访问没有合作(你可以使用TCP/IP通过虚拟(或实际)网络,我想。
另一种方法是执行在单机硬件(例如微控制器开发板或SBC)上进行实时数据采集,并通过例如USB或TCP/IP与Windows进行通信。可以将时序抖动降至微秒级或更高。
有第三方实时扩展到Windows。见,例如, G。 http://msdn.microsoft.com/en-us/library/ms838340(v=winembedded.5).aspx
该文章*仅*提及Windows XP并且从2002年开始。 –
该链接现在重定向到http://www.intervalzero。com/products/rtx-product-editions /,他们似乎拥有Windows 7的后继者。 – MSalters
Windows不是一个RTOS,所以没有神奇的答案。但是,有一些事情可以做,以使系统更加“实时友好”。
你想用VS * 2005 *定位Windows 7吗? –
比* what *更确定吗?列出实时系统必须满足的具体约束条件,可能对解决方案有很大帮助。在任何情况下,现代个人电脑都有很多硬件优化,难以保证一些限制。这绝不是纯软件问题。 –
VS 2005是最后一个允许你做内联ASM ...和32位的最后一个。 64位不允许它。 – jdl