PCI-6534使用外部时钟进行中断驱动的数据传输



硬件: Digital I/O (DIO)>>High-Speed Digital I/O>>PCI-6534

问题: 我在使用外部时钟用PCI-6534做模式输入,我想在每一个时钟沿读取数字线。为什么读取数字端口上的数据时要占用多个周期的外部时钟?

例如:
读取1个端口的数据时,每32个时钟周期才能读取一次。

读取2个端口的数据时,每16个时钟周期才能读取一次。

读取4个端口的数据时,每8个时钟周期才能读取一次。

解答: 这种现象的产生是由于PCI-6534采用DMA机制进行数据传输,并且DMA传输单位是32-byte的数据块。只有当DMA接收到完整的32-byte的数据块时,才将数据由板卡上的FIFO传输至计算机的内存中。即一旦获取到32个字节,就产生一次DMA传输。注意,当对4个端口进行采样时,每个端口获取的数据量可以累积到32-bytes。这就解释了为什么读取4个端口的数据时,每8个采样时钟周期执行一次DMA传输;而读取1个端口的数据时,每32个采样时钟周期才执行一次DMA传输。

为了在每一个外部时钟周期都可以读取数字线上的数据,PCI-6534必须被设置为中断驱动的传输方式。在LabVIEW中,可以通过Set DAQ Device Information.vi实现上述设置;在文本编程语言中,可以通过Set_DAQ_Device_Info函数来实现。下面的程序框图显示了如何使用中断来实现每一个时钟周期读取一次数字线。

需要注意的是,中断驱动的传输方式较慢,而且比DMA传输方式需要更多的计算机处理。外部时钟的最大速度取决于计算机的性能。.




相关链接:

附件:


Block_Diagram_Screen_Shot.GIF - Block_Diagram_Screen_Shot.GIF


报告日期: 08/13/2004
最近更新: 06/05/2007
文档编号: 3CCG521J