From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



为什么在半周期计数输入测量时得到了错误的测量结果?



硬件: PXI/CompactPCI>>Controllers

问题: 我使用的是"Meas Buffered Semi-Period-Finite.vi"这个范例程序及M或E系列的数据采集卡。我发现第一个测量结果是错误的,为什么?

解答: "Meas Buffered Semi-Period-Finite.vi"这个范例没有使用触发。因此,返回的第一个值是从任务开始到第一次信号变化时锁存的数据(如第一次低到高的变化),导致了这个不正确的测量结果。对于E系列和M系列,无论驱动的版本是什么,都同样存在该问题。对于E系列,没有触发计数输入测量的方法。然而,对于M系列,您可以使用ArmStart trigger来使计数器等待触发信号到来后再进行测量。在计数器行动以后,它就会在每次源信号发生变化时锁存数据。您可以将ArmStart trigger的输入端与计数端设置为同一端(CI输入半周期端也必须被显式地设置,即使使用默认的计数器端)。您也可以设置何时开始锁存数据,通过DAQmx通道属性,计数器输入>>半周期测量>>开始边沿,设置在第一个上升沿或第一个下降沿时开始。无论这个值是什么,每次信号变化(低到高或高到低)后都将锁存数据。

然而,如果您将源信号还作为半周期测量的触发信号,且将计数器输入>>半周期>>开始边沿,通道属性设置为上升沿,则锁存的第一个数值就将是错误的(在使用80MHz和20MHz的时基时,分别可能为0或1tick)。这是因为开始边沿(开始数据锁存的边沿)和ArmStart边沿(开始计数的边沿)几乎是同时开始的。因此,就将计数值0锁存到缓存中。如果您的脉冲信号的空闲状态是低且您将ArmStart设置为上升沿,开始边沿设置为下降沿,则您的第一个测量值将是第一个脉冲宽度高电平部分的值。如果您的信号源的空闲状态是高,您就需要将这两个边沿取反(ArmStart设置为下降沿,开始边沿设置为上升沿)。对于M系列,下降沿并不是ArmStart的有效值(只有TIO系列支持),因此,对于空闲状态是高的脉冲,将丢失第一个半周期测量值(例如第一个低的半周期)。然而对于低空闲状态的信号,您可以忽略第一个值(0或1tick)并保持ArmStart=上升沿,开始边沿=上升沿的设置。但是如果您希望忽略或删除收到的第一个数值,就要记住,必须采集N+1个采样点来捕获与将开始边沿设置为下降沿时相同数量的数据。这正是由于初始的错误测量值。同样,对于占空比测量,当开始边沿被设置为上升沿和下降沿时,则分别需要2*N+1和2*N 来测量N个周期。

相关链接:

附件:





报告日期: 10/05/2005
最近更新: 03/13/2009
文档编号: 3Q4G7VTJ