工业自动化设备的快速发展,对控制精度的要求越来越高,对数据采集的可靠性和实时性的要求也不断提高。提高数据采集系统性能的方法有:(1)采用高性能的adc器件,配合低噪声、低静态偏移的前端驱动电路,以达到极高的采样吞吐和采样分辨率。目前高端的adc器件分辨率可达24 bit,采样率已达40 gs/s[1]。(2)设计数据存储为fifo,以提高数据采样实时性和数据存储深度。(3)采用高速数据通信技术,完成由底层数据采集单元到上位计算机的数据传输,利用上位机软件平台进行数据的分析处理和多样化的输出显示[2]。数据采集系统的性能瓶颈在于高速采样数据实时存储,以及上下位机间的数据传输能力。
针对adc器件,一般采用微控制器以指令方式控制其执行时序,但微控制器的速度有限,而且一般需要3~4条指令完成一次数据采样工作,制约了adc的采样吞吐[3]。如目前高性能的浮点型dsp tms320c6713b的外部总线时钟也仅为100 mhz[4],难以直接控制超过50 ms/s adc器件的数据采样或存储。此外,微控制器对外访问为标准时序,并不具备针对精密复杂采样时序adc器件的能力。而fpga具有较高的运行主频,用于控制底层器件的执行时序,具备良好的接口能力,能最大限度地保障adc的采样率[5]。
为保证数据采样的实时性,应尽可能减少数据实时采集、预处理、存储和传输过程中的时间开销,需设计高性能的数据链路,一方面实现高速采样数据的实时存储,另一方面实现底层数据采集单元与上位机之间的数据交互。dma(direct memory access)方式由专用的dma控制器完成多系统单元之间的快速数据交互,包括微处理器内核、存储区、外部接口等,不占用大量的处理器时间,而且数据传输速率不受处理器执行速度限制,能有效减轻处理器的负担,提高数据传输的效率,从而提高系统性能[6]。
本文提出了一种基于fpga的dma方式高速实时数据采集系统设计方案:基于fpga实现高速adc器件采样时序控制与实时存储;采用带dma控制器的pci接口,将数据实时传输到上位机;数据采集、存储与传输呈流水线方式进行。
1 数据采集系统总体结构
dma方式数据采集是指数据采集过程由底层数据采集单元完成,而数据采集结果不经过微处理器而被直接写入系统内存。底层数据采集单元依照上位机设定而高效运行,对微处理器的依赖程度低,能有效节省上位机软件开销,且数据采集实时性高。
数据采集系统的总体架构如图1所示,其中pci核、dma控制器与a/d控制器均在fpga内部实现。为实现多路并行采样,可选用多片a/d器件并行处理的方式,在fpga的高速状态机控制下,完成模拟信号经过多片a/d器件流水转换,并将数据采样结果储存到由block ram构建的高速缓冲ram阵列中,采样时序由fpga生成,保证了多路并行采样的高同步性。
fpga采用altera公司的cyclone iv系列 ep4cgx150,内部带有6.3 mb嵌入式 block ram,支持最高频率167 mhz的存储区访问,易于设计接口友好的存储区[7]。在fpga内部设计了数据fifo用于实现总线速率匹配,pci总线速率为32 bit、33 mhz,而数据采样流水速率为16 bit、20 mhz。为提高总线利用率,需设计数据缓冲来实现不同速率数据传输之间的速度匹配,而数据缓冲的深度取决于采样数据实时性要求。
采用以上结构具有如下优点:(1)底层a/d控制器提供精密采样时序,保证了adc器件的采样吞吐,最大化地保证数据采样的实时性;(2)采用带dma控制器的pci接口与上位机进行数据交互,减少了上位机软件负荷; (3)基于单片fpga芯片设计,结构简单而优化,可靠性高,可降低成本。
2 数据采集系统的实现
2.1 pci ip核
pci总线是独立于处理器的32 bit或64 bit局部总线,在32 bit/33 mhz时,可达到132 mb/s的带宽;在64 bit/66 mhz 时,可达到528 mb/s的带宽[1]。通常pci总线接口通过专用的pci桥芯片或带pci控制器dsp器件(如tms320c6205等)实现。
altera公司推出的 pci compiler 软件包可以参数化地生成应用于pci总线的ip核,基于该ip核可生成符合32 bit/33 mhz pci 2.2规范的主从控制器,包含了pci总线的全部功能,能实现总线协议的转换,并将复杂的、时序要求高的pci总线操作,转换成易于使用本地总线(local 总线)的接口逻辑[6]。
pci ip核的结构如图2所示,包括:(1)配置寄存器:用于保存pci设备的基本信息;(2)pci地址数据缓存:用于缓存pci总线上的地址信号;(3)主模式接口控制模块:负责在主模式(master)下对pci总线的操作;(4)从模式接口控制模块:负责在从模式(slave)下pci总线的操作;(5)奇偶校验器:当数据校验出错时,生成一个错误信息输出到配置寄存器;(6)本地主模式控制模块:负责主模式下的本地接口控制逻辑;(7)本地从模式控制模块:负责从模式下本地接口控制逻辑;(8)本地逻辑接口模块:负责控制本地端接口的地址、数据、控制、字节使能等[6]。
2.2 dma控制器
针对高带宽、低延时和大量数据存储与传输需求,设计了基于pci ip核的dma控制器。该dma控制器是系统中的核心单元,实现高速采样数据向上位机的dma方式实时传输。dma控制器结构如图3所示,内部寄存器堆定义了dma控制器的行为,而上位机可通过pci总线设置相应的寄存器。
互联网数据中心(IDC):大数据时代IT基础设施,云计算的重要载体
深圳和美精艺科创板IPO获上交所受理
最详细编写上位机教程
速腾聚创在香港交易所正式上市
关于Linux的特点析以及在嵌入式操作系统中的应用详解
基于FPGA的DMA方式高速实时数据采集系统设计方案
防触电配电变压器的研究与分析
2023 ICCAD上的见微知著 | Samtec连接器无处不在
健身耳机推荐、最适合健身房使用的蓝牙耳机推荐
什么是ISA/Flash ROM
电子组装件验收标准IPC-A-610是什么?
远景维珍车队领跑积分榜,期待英国收获胜利
降噪蓝牙耳机哪款好?2021年热门降噪耳机推荐
Astrofish Games首次推出虚拟现实游戏,速度超过了早期进入的速度
虚拟现实有哪些关键技术_虚拟现实技术的分类
群雄逐鹿传感器蓝海 产业“短板”逐渐补齐
华为公开新的折叠屏相关专利,或运用于Mate X2上
Redis的LRU与LFU算法实现
双12返场 买三星GalaxyZFlip3 5G享超值礼遇
变频器在洗煤厂干燥系统的案例分析