LabVIEW中的软件定时应用可以达到怎样的精度?



硬件: Wireless Sensor Network>>WSN Gateways>>NI 9792>>General-Purpose>>PXI-2598>>Controllers

问题: 我有一个基于软件定时的数据采集应用。采集任务在一个循环结构中完成,使用LabVIEW(或LabWindows/CVI)的定时函数。每次循环间的间隔应该是一个常量,但我没有得到优于1ms的定时分辨率。

解答:
LabVIEW 或LabWindows/CVI定时函数使用的是操作系统的定时器。这些定时器的时间分辨率取决于操作系统本身。不同操作系统的典型时间分辨率列举如下。
  • Windows 3.x = 55 ms
  • Windows 9x/Me/NT/2000/XP = 1 ms
  • Macintosh 68k = 17 ms
  • PowerMac = 1 ms
  • SUN Solaris = 10 ms
  • Linux = 10ms
举个例子,在Windows 9x/NT 操作系统中,任何软件定时操作的精度都在+/- 1 ms左右。

如果你用LabVIEW/LabWindows的定时函数控制一个循环,你会发现每次循环的间隔时间会有所不同,这取决于当时你的计算机上运行着哪些进程。举个例子,如果你同时开着多个窗口,并在进行数据采集的时候在不同的窗口之间进行切换,那么你会发现中央处理器(CPU)的开销增大,这会导致进行数据采集的循环执行速度变慢。

对于此类的定时应用,较好的做法是用硬件定时代替软件定时。举个例子,如果你希望每1ms扫描一个通道,你可以配置板卡工作在1000样本/秒的扫描速率下,而不要使用软件定时,这等效于每次扫描的间隔时间为1ms。


相关链接:

附件:





报告日期: 08/11/1998
最近更新: 01/22/2009
文档编号: 1CAEE34V