文献标识码: A
文章编号: 0258-7998(2012)11-0091-03
逻辑分析仪是一种检测数字化设备信号的仪器,主要应用于跟踪与分析数字系统的数据流,能对其信号进行采样、存储、分析及显示。根据硬件设备设计上的差异,目前市面上逻辑分析仪大致上可分为独立式逻辑分析仪和需结合电脑的PC-based卡式虚拟逻辑分析仪。独立式逻辑分析仪已发展为相当高标准的产品,目前国外最具代表性的美国Agilent公司和Tektronics公司,在高端独立式逻辑分析仪方面仍占有绝大部分市场份额,并开发了卡式虚拟逻辑分析,用以更好地占领市场。国内逻辑分析仪制造研发起步较晚,在独立式逻辑分析仪的研发和生产上缺乏经验,特别是国内精密机械制造业的整体水平的限制,而在卡式虚拟逻辑分析仪方面,绝大部分功能不受制造业水平的限制,故国内形成市场份额的主要是卡式虚拟逻辑分析仪。
本文基于模块化虚拟仪器技术,详细阐述了一种基于Altera公司EP1C6T144C8型号FPGA为硬件基础,以LabVIEW为软件核心的多通道虚拟逻辑分析仪的设计理念及实施方案,重点论述系统硬件电路设计和软件数据分析处理方法。
1 虚拟逻辑分析仪总体结构设计
虚拟逻辑分析仪的总体结构设计图如图1所示。主要包括数据采集模块、微处理器模块、FPGA模块和LabVIEW模块。

数据采集模块由32路完全相同的数据采集通道构成,每一路数据采集通道都是由探头电路、MAX9687比较器及74LVC4245电平转换器、毛刺检测电路和延时电路构成,能进行多通道的数据采集。微处理器模块实现仪器初始化,控制数据采集模块信号的采集及传输,同时与FPGA通信,控制FPGA模块的工作状态。FPGA模块提供功能选择、定时采样时钟,并将多通道数据缓存于FIFO[1],然后通过USB总线将数据传输到上位机LabVIEW模块中。LabVIEW模块主要负责该逻辑分析仪的控制、管理、数据处理及结果显示。
2 虚拟逻辑分析仪硬件设计
2.1 数据采集模块
数据采集模块单通道电路如图2所示。对数据输入探头,要求探头的数据转换速度快、时延小、输入阻抗高、散热少。探头输入阻抗高用以减少由于探头接入被测系统而引起的失真现象。根据以上对数据输入探头的要求,本逻辑分析仪采用MAX9687CSE作为数据比较芯片,因为其采用ECL电平输出电平,此芯片的电平转换速度非常快。被测数据经过高阻抗电路后,送入MAX9687CSE的正输入端,与系统选择的阈值电压进行比较输出ECL电平,之后经过MC100H603FN把ECL电平变换成TTL电平,再经过74LVC4245AD把TTL电平变换成3.3 V的LVTTL电平,然后可以直接送入FPGA。阈值电压由AD7304生成,通过TL072后送入MAX9687CSE的负输入端。

毛刺检测电路如图3所示。D[1]是第一路输入信号,check_or_sample_D1是毛刺检测/直接采样控制信号(当其为高电平时,电路执行毛刺检测功能,当其为低电平时电路直接采样),d1_feedback在毛刺检测方式下输出的是带展毛刺信号,在采样方式下输出的是采样数据。

2.2 微处理器模块
微处理器主要实现通信和控制两大功能。通信程序实现信号采集模块与FPGA模块的信号传输和信息交换;控制程序实现系统初始化,并把上位机的操作指令下达给相应的硬件模块。
2.3 FPGA模块
FPGA模块实现时钟发生器、分频器、触发控制器、数据缓存等功能[2]。
时钟发生器是将20.000 MHz的有源晶振输出的时钟接入FPGA,然后由锁相环倍频到200 MHz。本虚拟逻辑分析仪的锁相环采用FPGA自带的锁相环。倍频到200 MHz后,由2分频和5分频电路组成的分频电路实现100 MHz、50 MHz、40 MHz、20 MHz和10 MHz等时钟。
FPGA模块中触发判断电路的工作原理是:数据流入相应的触发判断电路后与用户设置好的触发条件进行比较,如果数据流中有满足触发条件的触发字,则触发判断电路输出相应的触发标志信号,然后触发标志信号进入到触发选择电路,输出相应的触发信号,供后级电路使用。本仪器可以实现的触发方式有立即触发、通道触发、毛刺触发、序列触发和外触发等。
FPGA模块中,每个数据通道都有一个FIFO,每个FIFO的大小是4 096×1 words, 这样本仪器的存储深度可以达到64 kbit,FIFO输出端通过一个三态门实现数据的复用。电路图如图4所示。

3 虚拟逻辑分析仪软件设计
硬件采集到的数据经过USB总线传送到上位机,由LabVIEW进行数据接收、储存、分析及表达显示。虚拟逻辑分析仪的软件设计主要包括LabVIEW前面板和LabVIEW程序框图两部分。前面板即用户界面,定义各种控件和显示被测数字信号波形。程序框图用来控制数据流动方向、进行数据处理分析、对信号进行控制及输出波形[3]。
3.1 数据接收
本虚拟逻辑分析仪采用的是CLF(Call Library Function)节点调用Windows平台下的动态链接库(DLL)函数的方法实现LabVIEW与USB之间的通信。如图5所示。
动态链接库DLL(Dynamic Link Libraries)包含的代码和数据可以被多个程序同时使用,它属于不可执行文件,但是可以被程序或其他动态链接库函数调用[4]。通过对动态链接库的调用,解决了LabVIEW不擅长完成大数据量任务的处理和实现底层操作能力不强等缺点。
3.2 数据处理
多通道采集的数据通过USB总线上传到上位机,通过CLF节点调用动态链接库DLL的方式进入到LabVIEW中,以一维数组的方式体现在程序中。以16通道为例,数据以一维数组形式进入LabVIEW模块,通过数值至布尔数组转换控件将其转换为布尔数组,然后经过LabVIEW中抽取数组函数和索引数组函数被拆分为16组布尔量, 每组布尔量经过布尔值至(0,1)转换控件转换为逻辑0、1序列, FOR循环控制数组的持续输入转换[5], 16组0、1序列对应于数据采集模块中的16路采集通道。如图6所示。

3.3 数据显示及实测结果
16组逻辑0、1序列通过创建数组控件打包为数组形式,然后经过二维数组转置控件将逻辑0、1序列转置,最后通过创建数字数据控件得到数字数据,用数字波形图进行显示。
现给出一个占空比为50%的方波信号,频率为2 kHz,信号幅度为2 V。用本虚拟逻辑分析仪第14通道进行测量。测试结果如图7所示。按奈奎斯特采样定理,采样频率必须大于被采样信号带宽的2倍,将信号采样率设置为5 kS/s,对信号进行采样,测得其周期为0.5 ms,与被测信号相符,测得其波形与被测信号相符。

利用FPGA加LabVIEW设计了虚拟逻辑分析仪,其创新点在于采用了当今最前沿的模块化结构,使得仪器的设计、调试和维护更加简单,方便。采用虚拟仪器技术软硬件结合构造的思想,用软件代替传统仪器的信号处理及显示等硬件电路,减少了电路的复杂程度,增强了仪器的可操作性,增加了用户自定义功能,也使得价格大大降低。同时,本虚拟逻辑分析仪通用性强,在已有的基础上,能不断扩展,不断提升。
参考文献
[1] 肖玲俐.基于FPGA的虚拟逻辑分析仪的研究与设计[D]. 武汉:武汉理工大学,2010.
[2] 鲜果,龚晓峰. 基于FPGA的新型虚拟逻辑分析仪的设计[J]. 电子技术应用,2011,37(12):87-89.
[3] 卢松升,刘正之. 基于LabVIEW和数字I/O卡的逻辑分析技术[J].微计算机信息,2006,22(8S):85-86.
[4] BITTER R,MOHIUDDIN T,NAWROCKI M. LabVIEW advanced programming techniques[M].CRC Press/Taylor & Francis Group, 2007.
[5] 张敬帅,张丕状,白雪萍. 基于虚拟仪器的多通道数据分析系统设计[J]. 电子技术应用,2011,37(4):
74-76,80.
