作者/代威威 董文岳 珠海欧比特操控工程股份有限公司(广东 珠海 519080)
数据收集卡是模-数信号转化与信号处理体系的要害部分。在要求不高的工控运用场合中,大多数运用采样速率均低于1 Msps的中、低速数据收集卡;采样速率高于1 Msps的高速或许超高速数据收集卡,则首要运用于要求较高的工控范畴中。而PCI总线通用性与广泛性标明其在未来的十年工控范畴中它仍占主导地位。高速数据收集卡现在分红两类:一种是以高采样速率收集必定深度的数据后,再把数据经过PCI总线传输给上位机,这类的收集卡因为不是即时的且并不是捕获一切的数据,因而采样速率往往能够高达100 Msps乃至200 Msps以上;另一种则是捕获一切的数据且即时显现在上位机上,这类的收集卡研制一向是工控范畴研制的难点,受限于PCI带宽,采样速率国内一向并没有打破5 Msps的产品,而欧比特公司的产品具有边缘触发方法,结合上位机的虚拟示波器技能,能够完成双通道10 Msps/单通道20 Msps的全速不间断采样。
依据以上的原因,运用PLX公司PCI9056-66BA,珠海欧比特公司在超高的数据收集体系中做了一些研讨,规划12 bit分辨率的超高速高精度数据收集PCI板卡EMBC2000- PCI-AD485CAN。该数据收集板卡遵从PCI 2.3规范,一起支撑5 V/3.3 V 规范32位PCI接口,已完成双通道10 Msps/单通道20 Msps的全速不间断采样,且收集的数据可运用CAN或许RS485总线进行长途数据传输,满意了高端工控范畴的运用要求。
1 EMBC2000-PCI-AD485CAN的硬件功用结构
EMBC2000-PCI-AD485CAN(以下简称EMBC2000-PCI)硬件结构首要由6个部分组成:模仿信号笔直调度电路、数据收集及主控电路、本地数据缓存电路、PCI总线接口电路、阻隔型CAN/RS485接口电路、电源电路,完成了双通道模仿信号输入,其结构图如图1所示。
图1 EMBC2000-PCI硬件电路结构图
1.1模仿信号笔直通道规划
模仿信号笔直调度电路答应输入的模仿电平规模在0~±25 V之间,输入阻抗可在1 MΩ与50 Ω之间切换,一起具有DC/AC/GND三种耦合方法。
因为答应输入的模仿电平规模较大,而ADC答应输入电平规模较小,所以有必要先对输入信号进行衰减,然后依据需求进行扩大,使当时输入信号的峰值挨近或许等于ADC的最大量程。因而,就要求前端衰减电路的输入阻抗要高,一起在板卡的整个通频带内的衰减分压比不变。要完成这样的要求仅简略地选用电阻分压是达不到意图。因为鄙人一级的输入以及PCB走线中均存在分布电容,这个分布电容的存在对被测信号的高频重量有严峻的衰减,形成信号的高频重量的失真(脉冲上升时刻变慢)。为此有必要选用如图2所示的阻容补偿式分压电路,图中R1、R2为分压电阻(R2包含下一级的输入电阻),C1、C2为补偿电容(C2包含下一级的输入电容)。调度C2,当满意时,分压比K在整个通频带内是均匀的,它被表明为,这样的分压电路做成的衰减器就能够无畸变地传输窄脉冲信号,仅仅是信号起伏变为本来的1/K。
图2阻容分压电路图
大多数数据收集设备的输入电阻Ri都规划在1MΩ左右,它的巨细首要决定于R1,因为,而R1远大于R2。输入电容Ci为C1和C2的串联值和引线的分布电容C0的并联值。本板卡的输入电阻Ri=1MΩ,输入%&&&&&%Ci=25 pF。
为了使探头接入被测电路不影响被测电路的作业,即前端衰减电路到下一级的可变增益扩大电路应当是开路的,这能够经过参加一个输入阻抗很大的射随运放来完成,这儿选用ADI公司的AD8027,其输入阻抗高达6 MΩ。
对衰减后的信号进行扩大有三种方法:
1) 运用高精度运放,经过继电器或许模仿开关挑选反应电阻或许输入电阻的巨细来完成不同的增益,缺陷是需求较大的布线空间,不利于小型化,且高精度运放的输入带宽往往较窄,减小体系的重用性;
2) 运用数控可变增益扩大器,这种方法利于操控且精度较高,缺陷是增益的规模是不接连的;
3) 运用压控可变增益扩大器,这种方法长处在于增益的规模是接连,缺陷是要额定添加一个高精度DAC。
归纳各方面的考虑,终究选用ADI公司的压控可变增益扩大器AD8336及调配TI公司的16位DAC DAC8552。
TI公司的DAC8552输出公式(1):
(1)
D规模为0~65536,Vref依据需求外接基准,但不能超出DAC电源电压。
AD8336的增益分为固定增益和压控增益两个部分,其间固定增益依据带宽的挑选现已精细电阻外接装备成4倍,则其总的增益为:
(2)
Gpra即为固定增益,单位为分贝(dB)。分贝与扩大倍数的增益换算联系如下:
(3)
Vgpos与Vgneg由DAC8552输出得到,所以仅需依据挑选的ADC的量程,算出对当时信号的增益需求,然后推导出DAC两头所需输出的电平巨细,运用FPGA或许其它处理器操控即可。
终究还需把单端信号转成差分信号,原因有三:
1) 对ADC来说,差分输入信号采样精度更高;
2) 进步抗干扰才能;
3) 利于阻抗匹配。
1.2 数据收集及主控电路
挑选高精度的ADC是构成一个优异的丈量体系的三个要素之一。衡量一个测验量与实践抱负值的差错时,需求两个量来表述: accuracy 和 precision。前者一般称为精度,后者最好叫做可重复性。
Accuracy实践是丈量中一个均匀进程的概念。一般是衡量屡次丈量后的均匀值挨近抱负值的程度。所以它隐含的是测验的DC量纲。在ADC的数据手册中的以下参量是一个DC的概念:Offset, gain error, INL, DNL等。它们衡量了做直流参量丈量时的差错水平。
Precision是指在相同测验条件下,测验成果的一致性。相同的A/D体系中,以下参量是一个AC的概念:Dynamic Range, SNR, TDH等。它们衡量了做非直流参量丈量时的差错水平。
所以对ADC的选型并不是10位分辨率的功能就必定优于8位的分辨率的功能,更不是说对一个10位的AD体系输入5 V信号,其差错就在。实践上ADC的精度其首要决定于两个参数:INL和ENOB。
INL是直流丈量时要首要考虑的参数。一般ADC的其它直流丈量差错比方offset,gain error等能够经过校准而削掉。这时INL成了影响测验的首要差错来历。比方一个10 bit的ADC,INL=1.5 bit,则整个ADC的实践可得到的最好精度是。
ENOB对错DC信号模数转化或沟通测验时一个A/D的有用bit数。它首要跟SNR有关。其存鄙人列的公式:
(4)
其间的SNR更准确的说应该是SINAD(SNR & THD:信噪比和总谐波失真)。上边公式也隐含了假如体系的SNR变差,则总的丈量precision也会变差。
经过对比对ADI、MAXIM、TI等公司的ADC,终究挑选了ADI公司的AD9238,其INL仅为0.7 LSB,SNR到达70 dB。
ADC收集到数据经过数据总线传输给处理器。处理器方面,因为还涉及到CAN、RS485、PCI接口的规划,因而市面上并没通用的处理器供给。欧比特公司作为一家专心工控航空航天的公司,依托依据SPARC架构的%&&&&&%规划,对FPGA的运用已非常红熟。针对本钱、体系频率、资源及IO管脚的需求,终究选用了Altera公司的EP3C40作为处理器的IP核载体。
1.3 本地缓存及PCI接口电路
如前所述,国内工控方面的不间断数据收集研讨,一向受限于PCI带宽。尽管PCI总线理论传输速率可高达,但这仅仅是理论值。实践上的PCI总线开发,能到达40 MByte/s的传输速率现已是适当不错的数据。欧比特公司在S698处理器、EMBC1000系列等产品的研制进程中堆集适当丰厚的PCI总线开发经历。经过努力,依据PLX公司的PCI9056可完成60 Mbyte/s的PCI传输速率,传输数据安稳有用、不丢数。
依据木桶理论,PCI总线的实践传输功率是一块短板,在这短板得以加长后,研制的难度就会集在别的一块短板——上位机取数上。也就是说即便PCI总线真的能够传输很快,可是上位机是否能都把数据读到?因为EMBC2000-PCI板卡是依据WinXP/Win2000操作体系的,有过PCI总线开发经历的人都知道,在大规模的接连数据传输中是不适宜运用中止方法的,因为这很简单导致CPU占用率过高,而导致体系进入假死状况。而运用查询方法,与即时的Linux体系不同,Windows操作体系是个分时操作体系,也就是说它的线程占用的时刻是个不确认的值,就算独自为读操作开一个线程,可是也有必要使数据在板卡缓存一端时刻后,再由上位机查询到满状况后读走。但上位机读数据的进程中,A/D体系仍在不间断地收集数据,因为操作体系中没有一个线程能一向独占CPU。也就是说上位机并不能查询到一次满后,就一向在读数,每次读操作中必定存在一个间隔,也就是说PCI总线的传输速率需高于或许至少不低于采样速率。那么在这个间隔中,收集数据相同需求缓存在板卡的本地缓存中。
经过对WinXP体系的深入剖析及驱动开发,终究确认需在板卡上缓存8 ms的收集数据,并在每个通道的缓存数据处理上选用“乒乓形式”,也就是说FPGA将ADC收集的数据轮番填到每个通道对应的缓存A与缓存B内,而当缓存A第一次满后,上位机开端查询读操作,轮番读走缓存A与缓存B的数据。依上,则所需求单个缓存的容量巨细为。别的考虑到挑选如SDRAM、DDR-SDRAM、DDR2-SDRAM、SRAM布线杂乱,且需求FPGA供给过多的IO及资源。因为一方面这会添加PCB的层数;另一方面只要高端的FPGA才会具有运用上述的缓存所需的IO口数量,而高端FPGA的价格一般是低本钱FPGA价格的是十倍乃至更多。出于本钱的考虑,挑选了IDT公司的双口SRAM IDT70V659作为外部缓存,其容量到达512 KByte,速率达100 MByte/s,满意体系规划的需求。
1.4 阻隔型CAN/RS485接口电路
考虑到工控场合一般存在浪涌电压,EMBC2000-PCI板卡的CAN和RS485做了阻隔处理,可防浪涌电压达1000 V,并针对RS485常呈现的因为第三态存在而导致接纳端输出处于不定态做了相应处理。
CAN逻辑方面,由FPGA搭载欧比特公司自研的OBT-CAN软核,支撑BasicCAN和PeliCAN形式。在PeliCAN形式下,支撑CAN2.0B的扩展特征。并具有1 KByte本地缓存,通讯速率最高达1 MByte。寄存器、功能方面彻底兼容PHILIPS公司的SJA1000。
RS485逻辑方面,选用UART16550软核,并具有了64 Byte本地缓存,通讯速率最高达115200 bps,最大传输间隔约为1200米。
3 EMBC2000-PCI-AD485CAN的硬件逻辑
EMBC2000-PCI的硬件逻辑规划分红8个部分:ADC模块、DAC模块、CAN模块、UART16550模块、HOST I/F模块、PCI I/F模块、RST-IRQ模块、CLK_GEN模块。其间ADC模块及DAC模块是用于操控模仿信号笔直调度通道及对收集数据进行处理,两个通道的模块彻底相同,仅需在顶层文件上进行复用即可。详细逻辑框图如图3。
图3 EMBC2000-PCI硬件逻辑框图
ADC模块担任操控ADC并对ADC的收集数据进行相关处理。为了降低本钱,EMBC2000-PCI并没有规划专门的触发电路,而是在FPGA内部完成触发。该部分逻辑集成在ADC模块中。经过用户预设的边缘触发方法及触发电平,FPGA对收集数据寻觅满意触发电平的对应点,然后再结合该点前后的数据进行趋向剖析,判别是否是所需的上升沿或下降沿触发。当找到触发点后,FPGA才把收集数据依照用户预设的触发深度把数据存至本地缓存中。
DAC模块担任经过操控DAC然后操控可变增益扩大器;CAN模块/UART16550模块别离完成了CAN2.0B协议、RS485通讯;RST-IRQ模块用于发生各种PCI中止信号;CLK_GEN模块用于进行锁相环倍频及发生大局同步时钟。
如前所述,因为收集数据是先存至本地缓存,然后由上位机直接读走,不再经过FPGA。所以FPGA与PCI桥PCI9056之间是一个异步体系,因而PCI接口与其它模块并需经过一个缓冲来完成同步。PCI I/F模块用于完成与PCI桥之间的通讯,而HOST I/F模块用于完成PCI通讯与内部其它逻辑之间的同步。
整个IP核运转速率为120 MHz,完好完成了板卡各类逻辑。
4软件规划
EMB2000-PCI的驱动依据Jungo公司的WinDriver开发,在上层软件运用如SinC/C插值法、替换描点法等算法完成波形的复原、描绘、核算,并可把波形进行实时游标丈量、打印。EMBC2000-PCI经过DLL文件供给接口函数供二次开发。
5 定论
EMBC2000-PCI多功用数据处理板卡选用双数据存储方法、内部软触发方法完成了高达单通道20Msps/双通道10Msps的不间断数据收集才能,分辨率高12bit。板卡上的阻抗匹配与操控确保了数据收集的信号完好性。在数据收集方面已挨近世界代表厂商美国Measurement Computing公司最高端产品PCI-DAS4020/12型板卡。CAN、RS485接口使数据能够进行远间隔传输。EMBC2000-PCI的呈现,较好地填补了国内涵依据PCI总线的不间断数据收集方面的空白。
参考文献:
[1]PCI-DAS4020-12-UG.Measurement Computing,2009.
[2]PCI_9056BA_Data_Book_v1.3.PLX,2009.
[3]EMBC2000-PCI-AD485CAN用户手册 . 珠海欧比特操控工程股份有限公司,2010.