设计主控VI在DMA应用中读取数据
- 更新时间2025-05-20
- 阅读时长3分钟
设计主控VI从DMA通道中读取数据是实现DMA应用的一个重要部分。
注: 本主题讨论的设计适用于从FPGA终端传输数据至主控计算机的应用。
选择设计
下表总结了某些有用的设计:
| 使用场景 | 设计 | 优点 | 缺点 |
|---|---|---|---|
| 发生下列一个或多个场景的应用:
| 阻隔 |
|
|
| 数据记录应用,FPGA以未知的速率获取数据,但主控计算机以未知或不规律的速率读取数据。 | 轮询可变数量的元素 | 主控VI可在数据可用于读取时,立即读取任意数量的元素。 | 与块设计比较:
|
| 在应用可继续执行前需要读取已知固定大小的数据,但等待数据变为可用时必须完成其他任务的应用程序。例如,假设一个将1024个元素处理为一个单帧数据的应用,该应用同时必须发送命令至另一个终端。定时轮询设计当数据可用时从缓冲区读取数据,数据不可用时发送必需的命令。 如FPGA需要获取未知或不规律速率的数据,该设计同样有用。 | 轮询固定数量的元素 | 等待数据变为可用时,主控VI可执行其他顺序任务。 |
|
编程主控VI
考虑下列FPGA VI:
该VI通过下列方式表示数据采集:以预定义的速率测量FPGA设备的温度并写入该温度值至FPGA DMA缓存。下文显示了读取该数据的范例主控VI。
阻隔
轮询可变数量的元素
注意,元素数量VI读取变化的方式基于上一次读取数据后剩余元素的数量。
轮询固定数量的元素