数据传输机制
- 更新时间2025-12-03
- 阅读时长2分钟
有四种通过PCI总线传输数据的方式:直接内存访问(DMA)、中断请求(IRQ)、程序控制I/O、USB Bulk。
直接内存访问(DMA)
DMA是在设备和计算机内存之间不使用CPU传输数据的一种方式。DMA是最快的数据传输方式。NI使用DMA硬件和软件技术实现高吞吐率并提高系统利用率。DMA是支持该传输方式的DAQ设备的默认数据传输方式。
备注 DAQCard和USB设备不支持DMA。
中断请求(IRQ)
IRQ传输依赖于CPU对数据传输请求的处理。设备传输数据就绪时将通知CPU。数据传输速度与CPU处理中断请求的速度紧密相关。如使用中断采集速度的速度大于CPU处理中断的速度,系统可能会冻结。
程序控制I/O
程序控制I/O是一种数据传输机制,不使用缓冲区,计算机直接从设备读取数据,并将数据写入设备。软件定时操作(按需操作)通常使用程序控制I/O。
USB Bulk
USB Bulk是一种基于消息的使用缓冲机制的数据流盘技术。对于USB设备来说,USB Bulk是默认数据传输方式。
内存映射
内存映射是从程序上直接读取和写入设备的技术,避免了将读取和写入分配核心层的软件造成的系统开销。分配至核安全性较高,但是速度较慢。内存映射将把全部4 KB内存页用于程序,所以其速度较快,但是安全性不高。如设备支持,内存映射是默认选项。
在DMA和IRQ之间切换
每台设备上DMA通道的数量是有限的(具体参见设备文档)。需使用DMA通道的操作(AI、AO等等)使用DMA通道直到全部DMA通道被占用完为止。所有DMA通道都被占用后,如尝试一个需使用DMA通道的操作,用户将会收到一个错误。如有需要,可将一个操作改为使用中断。在NI-DAQmx中,可使用数据传输机制通道属性。