摘要
本方案硬件上由英创工控主板和一个基于FPGA的扩展模块构成,通过PCIE高速接口相连。利用PCIE端点的DMA传输功能实现的Linux DMA Engine架构驱动程序,可把高速大容量数据直接传输至Linux系统内存空间,供用户的应用程序进行实时处理。支持本方案的英创工控主板型号包括ESM7100、ESM8100等。本方案的FPGA评估模块ETA750,采用Xilinx公司的XC7A50T-2CSG325,可实现16MB/s的连续数据采集。
设计选型
在工控领域中,高速大容量数据采集是常见的应用需求之一,这里我们把高速大容量数据采集定义为连续采集数据率超过10MB/s的应用。本文将介绍针对高速大容量数据采集需求,英创公司提供的解决方案。分析这类应用,可发现有如下特点:
1、数据采集的硬件前端与具体的应用密切相关,如采样的通道数、数据的分辨率、采样数率、触发条件等等,这要求本方案能支持灵活的前端硬件设计。
2、系统平台需要有高速的数据接口,并支持采集单元的DMA传输,以降低主CPU的负载(payload)。另外用户的应用程序可直接处理采集的原始数据。
根据以上2条基本的应用需求,选择支持PCIE高速数据接口的英创工控主板作为系统平台,采用一片FPGA实现PCIE端点(PCIE Endpoint)及前端数据采集硬件逻辑。利用PCIE端点的DMA功能,实现采集数据到系统内存的直接传送,就可构成一个简洁灵活的实现方案。事实上Xilinx公司针对PCIE端点的DMA传输功能,专门设计了一个FPGA IP核,供用户免费使用,使本方案的实施成为可能。
目前英创的ESMARC工控主板中ESM7100、ESM8100和ESM6802均支持PCIE×1接口,即将推出的新产品ESM6400也是支持PCIE×1接口。这些主板的PCIE接口相关指标如下:
主板型号 | CPU | PCIE版本 | 最高速率 | NVMe读 |
ESM7100 | Cortex-A7×2,1GHz | PCIE 2.1 | 6.0Gbps | 260MB/s |
ESM8100 | Cortex-A53×4,1.6GHz | PCIE 4.0 | 16Gbps | 240MB/s |
ESM6802 | Cortex-A9×2,1GHz | PCIE 2.0 | 5.0Gbps | 140MB/s |
ESM6400 | Cortex-A53×2,1GHz | PCIE 4.0 | 5.0Gbps | 170MB/s |
上表中的“NVMe读”栏,是在Linux用户空间中对PCIE接口实测的用户数据率,单位为Mega Byte。PCIE接口的速率均可满足绝大多数工业控制领域高速大容量数据采集的需求。从上表还可以看出,主板的PCIE控制器决定数据传输率,与CPU的配置高低关系不大,因此价格相对低的ESM7100主板具有更高的性价比。在后续的测试中,均采用ESM7100作为主控平台。
在FPGA方面,本方案选用的是Xilinx公司的Artix-7系的器件XC7A50T-2CSG325,其PCIE接口的收发速率可达6.25Gbps,与英创主板完全匹配。另一方面XC7A50T-2CSG325支持最大150条IO管脚,足以面对各种数据采集前端接口的需求。在成本来看,Artix-7系芯片属于支持PCIE接口应用的低成本方案。根据具体的前端需求,还可选择与XC7A50T-2CSG325管脚完全兼容,成本更低的XC7A35T-2CSG325来实现本方案的硬件系统。
为了给客户提供一个快速评估本方案的适用性,英创公司专门设计了一款miniPCIe模块(型号为ETA750,外形尺寸50mm×40mm),用于对本方案的实际评估。ETA750模块以XC7A50T为核心,同时搭载了AD7606C,这是一片 8路平行采集AD芯片,AD分辨率16-bit,采样率1Msps,总的数据率16MB/s;ETA750除了8路模拟信号接口外,同时还引出了几十路数字IO,供客户进行前期原型机开发所用。在英创的ESMARC EVB-C型评估底板上,插上所选的ESMARC主板和ETA750模块,就可快速搭建起完整的评估系统。
图1是ESM7100主板与PCIE模块ETA750的连接示意图:
图2为评估底板上的ESM7100主板与PCIE模块ETA750:
进一步的介绍
从评估应用的角度看,用户需要了解如何在FPGA中,把自己的前端数字逻辑与PCIE/DMA控制器结合在一起,这部分内容将在后续文章《基于PCIE接口的高速大容量数据采集——硬件篇》中介绍。另一方面,应用程序如何操作PCIE/DMA控制器实现数据采集并获得采集的数据,将在《基于PCIE接口的高速大容量数据采集——软件篇》一文中介绍。请感兴趣的客户点击相应链接,了解进一步的信息。
成都英创信息技术有限公司 028-8618 0660