当前位置:
文档之家› 利用FPGA实现的多通道同步数据采集卡
利用FPGA实现的多通道同步数据采集卡
Key words:data acquisition;FPGA;A/D
PCI04作为一种国际标准的控制总线,在测试和控 制中得到了广泛应用,但目前市场上与之配套的同步 数据采集卡还很少。基于PCI04总线的高精度数据采集 卡的主要功能是把外界模拟信号的电压参量经过A/D 转换器转换成数字量,并把转换结果存储以便分析处 理。本文所述采集卡采用了AD公司推出的高速、低功 耗、四通道同步采样12位并行接口的A/D转换器 AD7864,用FPGA进行逻辑功能控制和数据缓存,使得 该数据采集卡硬件电路极为简单。 1数据采集卡的原理及组成
降沿来表示。此时片选信号/CS端接地,由读信号/RD读出
数据。当读信号/RD和片选信号/CS同时保持低电平时
才可读数据,读操作在工作时要确保写信号,WR处于高
电平。每次读数据操作增加输出数据寄存器指针,读完
最后一个转换数据时,将输出数据寄存器指针复位。写
操作主要完成工作模式的设置,一般只在初始化或转换
‘OR2
图3中断产生电路
2.2.3主机读取数据电路 当主机响应了读中断请求之后,就会开始从FIFO
中取数,但是六个FIFO的工作基本保持一致,所以存在 主机先从哪一个FIFO中读取数据的问题,因此需要设 计一个数据选择读取电路,如图4所示。
图中数据选择电路通过三位地址a0、a1、a2来对六 个FIFO的六路数据选择输出。 2.2.4 AID转换启动信号发生电路
品中。系统通过FPGA来实现高速数据缓存及逻辑控
制。采用的器件是FI正X1K系列的EPIK30TCl44—1器
件,其最大工作频率为40MHz,消耗1 533个LC,平均编
码时间为20个时钟周期。FPGA除了要满足相应的时
序要求外,还要求控制数据的位数和A/D转换器的位
92
欢迎网上投稿www.chinaaet.coal
一个跟随器,使输入信号在被滤波之前先经过隔离,A/ D采集模块主要采用三片AD7864—1来实现12通道的 同步采样。逻辑控制及数据缓存模块是在‘FPGA内部编 程实现的。在数据送人PCI04总线时,74LS245在PCI04 总线与FPGA之间也起驱动的作用。在PCI04总线与 FPGA不进行数据传输时,74LS245呈高阻状态,这样可 以防止主机与采集卡间的数据相互干扰。 2硬件电路设计
q【1】【11..0] q【2】【11..01 q【3儿11..0】 q[4儿11..0】 q[5】【11..0】
,一一一..一..一一一
-LPM—MUX
q[5..0儿11..0】一data[1[] ,f/sel【JⅢ.
TNP[IT a2
-●-, -● ●
Vcc
INPUT
al
)
Vcc
‘一-一
●
●●
INPUT
采集卡包括模拟输入、A/D采集、数据缓存及基于 PCI04接口的数据传输四部分,其核心设计是A/D采集、 数据缓存部分。数据采集卡系统结构框图如图1所示。
该采集卡采用LM324对模拟输入信号进行隔离,它 的功能实现是在滤波器MAX274的每个输入端前设计
图1采集卡系统框图
《电子技术应用》2008年第6期
数相匹配。数据缓存区要求既要有与A/D芯片的接口, 又要有与系统主机的接口以提高数据吞吐率,因此通过 EPlK30TCl44—1芯片内置的先进先出(FIFO)缓冲存储 器实现数据高速传输。为此设计了地址译码、读/写数据 寄存器、控制通道寄存器、启动触发器和中断响应寄存 器,所有的操作都是通过读写相应的寄存器实现。下面 将介绍FPGA内部的各个设计模块。 2.2.1向FIFO写数据的电路
利用FPGA实现的多通道同步数据采集卡
田多华,邱宏安,陆宇鹏,邵立群 (西北工业大学,陕西西安710072)
摘要:介绍了一种基于PCI04总线的多通道高速同步数据采集卡的设计方法,硬件上采用 FPGA进行控制逻辑设置和数据缓存的实现,简化了硬件电路,同时也提高了其使用的简易性和配 置的灵活性,具有准确和快速的特点。
●菌●dI;l'01
一VI .1 j”
2.0.1J-s
2.5.P-5
3.0.1“5
3 j"4.0.1“
1
DZ :.1望氅曼璺鲤X璺苎X旦!呈X虫!X虫兰X璺!兰X望!苎X璺堕X旦!苎X璺!X望!璺l璺!竺X里
1 ]r]几几r]r]r]几几r]n r]同厂]
1 ]r]r]n r]厂1 r]几厂]广]厂1厂]广1 n
a0 :一=).一№…:
L一.一
a『2..01 圈A粘掘雌据沸晌由№
《电子技术应用》2008年第6期
的读写切换的,其仿真结果分别如图6 圆7 I翻Q 6E;
而面≥-一一一一一一一一一一一一1
N●m0
蛐■-●c押
ip_wclock ■卜rdclock ■■。w●q
■..r由w
--_槲
……’ —■■mmply
通道切换时进行。而进行数据采集的操作只要给出启动
命令,启动设置的通道进行同步采集,待所有的数据转
换结束后自动发出中断请求信号,然后进行相应通道的
数据读取即可。 2.2 FPGA内部电路设计
随着现场可编程门阵列(FPGA)技术的飞速发展,
FPGA的应用日益广泛,它具有更高的密度、更快的工作
速度和更大的编程灵活性,被广泛应用于各种电子类产
在本电路中还有一个AID转换启动信号/convst的 产生电路,三片AD7864—1使用同一个启动信号/convst,
在/convst的上升沿转换开始。在第一次启动A/D芯片 时,需要分配一个地址来启动A/D芯片,一旦启动成 功,下一次的/convst主要由三片AD7864—1的BUSY信号 来产生,因为在A/D转换过程中,busy信号都为高电 平,当转换结束后,busy变低电平。所以只要三片 AD7864—1的busy信号都为低电平时,表明12路转换结 束,需要再次启动转换。该局部电路如图5所示。
O
L
0
O
1
oO
0
M fⅢn口m*m★*TⅣ_
93
万方数据
只要rdemptyIa不为高就一直保持从FIFO A中读数,当
■-卜●cIr —芦dat·111.o】
l卜wmlock
■●-一clock
■●●·wn●q
Ira'-rdreq
-雌wffuU
__rdempty
鼍■q【11 01
。0。
D麓 :X咝X塑X塑X墅X鲤Z鲤X婴X塑X塑X翌!X哩X
关键词:数据采集;现场可编程门阵列;模数转换
Design of multi-channel simultaneous data acquisition module based on FPGA
TIAN Duo Hua,QIU Hong An,LU Yu Peng,SHAO Li Qun
(Northwestern Polytechnical University,Xi’an 710072,China)
本设计的大量工作都是在FPGA内部实现的,简化 了硬件电路,同时也提高了其使用的简易性和配置的 灵活性,具有准确和快速的特点。 3仿真结果
FPGA内部电路的设计采用VHDL硬件描述语言实 现,并在ALTERA公司的MAX+plus lI软件上编译仿真。 采用全局同步时钟,避免了毛刺的产生,保证了信号的 稳定性,本文介绍的两个FIFO工作原理为乒乓式存储 的原理,采用这种存储方式,主要是考虑到由于转换通 路比较多,若每片A/D只对应一片FIFO,当主机不能及 时读走FIFO中的数据时,A/D转换就不能正常进行,这 就会影响数据的传输速度,也很容易使数据丢失。而采 用两片FIFO的乒乓式存储之后,写满一片FIFO,在主 机来不及读走数据时,可以将数据打人第二片FIFO,这 样可以起到一个缓冲作用,不会由于数据的读取而影响 整个系统的正常工作。该电路的设计是利用写满标志、
wrfullla?wrreqla、rdeqla、rdemptyla、wrfulllb?wrreqlb? rdreqlb、rdemptylb分别是a和b的写满标志位、写请求 信号、读请求信号、读空标志位。通过74139译码器,使 wrfullla、wffulllb、rdemptyla、rdemptylb联合作用控制FIFO 的读写操作。译码器作用的结果是只要A的wrfullla为 低,数据就一直写入A中,当wrfullla为高时,切换数据 流向,开始向B写数据。当wrfull标志为高电平时,表明 FIFO达到半满,向系统申请中断,总线响应中断,立即 启动读FIFO中的数据,当读到空时,Empty标志有效, 停止读入操作。
整个系统硬件是把12通路的A/D同步采集设计在 一块电路板上,包括滤波、A/D转换、数据缓存、FPGA逻 辑控制以及总线接口,本文主要介绍A/D采集电路和 FPGA内部电路的设计与实现。 2.1 A/D采集模块
AD7864是AD公司推出的高速、低功耗、四通道同 步采样12位并行接口的A/D转换器,它可以用于马达 控制、非中断电源控制、数据采集和通讯等。
《电子技术应用》2008年第6期
万方数据
2.2.2中断请求发生电路
现 号 来 求
和
——
二 请 中
的FIFO依次读数。这里使用一个中断请求而不是三个 中断请求的原因是由于三个中断请求会由于优先级问题 发生冲突等待,使读数据混乱,不利于数据的读取存储, 还有可能因为等待时间过长而影响了采集速率。
wrfuUla
首先是六片FIFO,分为三组,即每片A/D对应两个 FIFO,本文只以第一片AD7864—1为例来说明FIFO对数 据的存储过程,在FPGA内部电路图中截取一组FIFO 来进行描述,如图2所示。
图中inl[11..0】表示第一片A/D转换后的12位数 据线,分别与两片FIFO的data[]连接,ቤተ መጻሕፍቲ ባይዱ为是把A/D转换 的数据写入FIFO,A/D的转换模式是转换完一路就向 FIFO写数据,所以将FIFO的写时钟wrclock与A/D的/eoc 连接,当/eoc为低时,表明有一路转换结束,开始向FIFO 写入数据。每片AD7864一l对应两片FIFO A和B,