本站小编为你精心准备了FPGA多路高速数据采集系统设计参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
介绍了一种基于fpga的多路高速数据采集系统,该系统主要由信号调理电路、DDC112组成的A/D转换电路、FIFO存储器、FPGA等部分组成。该系统可以同步采集多路数据,极大地提高了系统的数据采集和传输速度。
1前言
今年,全国煤矿共发生瓦斯事故7起,死亡23人。这些事故其中一部分原因是由于瓦斯抽采不到位造成的。在井下,由于受环境、生产、温度、地形、设备等影响,瓦斯数据不易准确地被采集,并实时传输到地上,从而影响了对井下瓦斯浓度的判断。为了克服一般的数据采集电路中采集的信号种类固定、通道数少、不能实时传输、使用范围小等缺点,本文设计了一种基于FPGA的多路高速数据采集系统,该系统主要由信号调理电路、A/D转换电路、FIFO存储器、FPGA等部分组成。使用FPGA对系统进行控制,使整个系统能够实时地传送大量的数据并存盘,极大地拓宽了该系统的使用范围(皮代军,张海勇等,基于FPGA的高速实时数据采集系统设计:现代电子技术,2009)。
2系统组成
该数据采集系统的原理框图,如图1所示;主要包括信号调理电路,DDC112组成的A/D转换电路,FIFO存储电路、FPGA时序控制电路,以及USB总线传输接口等部分组成。
2.1信号调理电路
信号调理电路主要由可编程增益放大电路和滤波电路组成。可编程增益放大电路主要将传感器采集到的微弱信号数据进行比例放大,以保证数据采集的完整性。可编程增益放大器可采用PGA202/203。根据增益范围的不同,采用级联的方式,可实现1~8000等16种不同的放大倍数。该放大倍数完全能满足数据采集的要求。滤波电路的作用是将放大后的信号,进行滤波,滤掉噪声以及不在采集范围内的信号,以保证数据采集的准确性。滤波电路可选用MAX262通用开关电容有源滤波器。该滤波器的特点是:配有滤波器设计软件,可改善滤波特性,且带有微处理器接口,方便与FPGA连接;对中心频率和品质因数Q可独立编程;中心频率范围为75kHz,满足数据采集要求。
2.2A/D转换电路
信号调理电路输出的信号为模拟信号,如要进行存储,必须转换成数字信号,这就需要A/D转换器。选用A/D转换器要充分考虑其技术指标:如分辨率、转换速率、量化误差、偏移误差、满刻度误差、线性度等。充分考虑了数据采集系统的需求,选用20位双通道输入、宽动态范围的A/D转换器DDC112。该A/D转换器具有分辨率高、噪声低、积分误差和温漂小等优点,且满量程可编程,以适应不同强度的输入信号,从而提高转换精度,降低噪声,+5V的工作电源更方便使用。从以上DDC112的性能指标可知,DDC112满足多路高速、高精度的数据采集系统的要求。
2.3FIFO缓存器
由于本系统的采集通道多,采集到的数据必须进行预存储后才能传输。该数据采集系统由硬件控制A/D转换器,并通过VHDL设计自动向FIFO存储器中存储数据。具体数据采样频率由FPGA的输出时钟频率决定。FIFO(FirstInputFirstOutput)即先进先出。先存入FIFO的数据先输出,后存入FIFO的数据后输出。FIFO存储器是数据缓存作用,防止存储时丢失数据,并且可对数据进行集中存储,避免频繁操作,减轻CPU负担。FIFO存储器很重要的一点是允许系统进行DMA操作,提高了数据的传输速度。随着微电子技术的飞速发展,FIFO芯片容量越来越大,体积越来越小,价格越来越便宜。FIFO芯片以其灵活、方便、高效的特性,逐渐在高速数据采集系统中得到越来越广泛的应用。
2.4FPGA时序控制电路
FPGA(FieldProgrammableGateArray)即现场可编程门阵列。它既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。对于井下瓦斯数据采集系统,必须快速准确地进行采集。本系统要求1秒内须对数百个探测器做1440次采集,其数据量相当庞大,而且重建图像必须获得扫描的相对位置,因此整个数据采集过程需有严格的时序控制。该时序控制电路采用了Altera公司的第三代FPGA产品StratixIIGX系列,该器件含有4至20个低功耗收发器,每个都带有经过优化的时钟数据恢复电路,可在622Mbps至6.375Gbps数据速率范围内实现优异的信号完整性。经过系统中的验证,能够可靠应用于有线/无线通信、计算机、网络、军事以及医疗等领域,而且该系列的高性能架构使得StratixIIGX器件成为高速背板接口、芯片之间和通信协议桥接应用的理想选择。这也正是本文选择该芯片的原因所在。从图1所示的系统原理框图中可以看出FPGA,主要分为三大功能区:时序控制信号产生部分;数据接收和整合部分和A/D控制部分(但果等,医用CT增益可编程的多路高速数据采集系统设计:CT理论与应用研究:2005)。①时序信号产生部分该部分的作用主要是接收控制指令,并产生控制可编程增益放大器中的通道选择寄存器的时序信号,以及负责A/D输入信号的选通时序。②数据接收和整合部分是接收A/D转换后的数据和可编程增益放大数据,将两者按照时序的对应关系整合为一个字,并实时传输到系统的通讯系统中。③A/D控制部分根据可编程增益放大器中的通道选择寄存器的选通信号产生控制包含环境中的可观察变量。具体来说,智能体i的可观察变量集合Oi分别为:O1={coin3,coin1,say1,say2,say3,pay1}O2={coin1,coin2,say1,say2,say3,pay2}O3={coin2,coin3,say1,say2,say3,pay3}智能体模块的实例在系统模块中生成,3个智能体模块将同步执行。由于该协议是一步可达的,因此其状态迁移关系比较简单,只需规定每个变量的下一步状态维持不变即可。最后来考虑需要验证的协议规范。根据协议要求,可以描述出该协议需要满足的时态知识规范。下面的公式表示保密家1需满足的时态知识规范:¬pay1⇒X(K1(¬pay1∧¬pay2∧¬pay3)∨(K1(pay2∨pay3)∧¬K1(pay2)∧¬K1(pay3)))该公式表示:若是保密家1没有支付,则在下一个时刻(当所有保密家都宣称之后),他要么知道是国家安全局支付的,要么知道是其他保密家支付的,但无法确定具体是哪个人支付的。保密家2和3所需满足的时态知识规范与此类似。
3实验结果
本实验使用的PC是奔腾2.4MHZ处理器,512M内存,操作系统为LinuxRedhat9.0。我们分别针对3、4、5个保密家的情况进行了验证,并在同一台机器上分别用MCMAS和MCK进行了实验。由于MCMAS的建模过程非常复杂,因此没有在MCMAS上针对5个智能体的情况进行验证。而对于MCK,虽然为其建立了4个和5个保密家情况下的协议模型,但是运行过程中由于内存出错而使得程序无法正常运行,这可能是因为MCK内在的缺陷导致了异常发生。由表1可以清晰地看到MCTK在执行时间上的显著优势。此外,相比于MCMAS,MCTK的建模过程更加容易(对于同一规模的问题,MCMAS的代码数量是MCTK的十倍左右);相比于MCK,MCTK的扩展性要大大超越前者,在保密家就餐协议中MCK只能对3个保密家的情况进行验证,而MCTK可以扩展到4个、5个甚至更多个的情况。
4结束语
本文通过使用时态知识逻辑的模型检测工具很好地实现了基于知识的安全协议的自动验证。从实现过程不难看出,使用模型检测时态知识逻辑的方法能自然地描述协议中的信息流,并且能对协议中的时态知识规范进行正确地验证。同时,本文的工作为研究安全协议的匿名性提供了全新的思路,这也让我们看到了模型检测时态知识逻辑理论在安全协议领域的巨大应用潜力。然而,模型检测时态知识逻辑的理论和工具目前还不能有效地用于密码协议的验证,今后可进一步开展这方面的研究,进而将本文介绍的方法拓展到密码协议的验证中去。
作者:吴居娟 单位:山东工业职业学院电气工程系