新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于FPGA的虚拟逻辑分析仪设计与实现

基于FPGA的虚拟逻辑分析仪设计与实现

作者:时间:2017-06-05来源:网络收藏

是一种通用数据域测试仪器。应用在由中大规模数字集成电路组成的数字系统中,主要查找总线相关性故障,能以多种方式跟踪与显示总线上的数据流,是测量领域不可缺少的工具。

本文引用地址:http://www.amcfsurvey.com/article/201706/349178.htm

随着电子技术和计算机技术的发展,与 PC机相结合,从而出现了虚拟。研发虚拟逻辑分析仪成为近年的一个新的发展方向,虚拟逻辑分析仪扩展了逻辑分析仪的分析和计算能力,提高了性价比,且增强了仪器的通用性。现场可编程逻辑器件,是一种可由用户根据所设计的数字系统的要求,在现场由自己配置、定义的高密度专用数字集成电路。它具有设计方便、灵活、校验快和设计可重复改变的特点。本文讨论了一种基于的虚拟逻辑分析仪的设计,通过采用高性能的器件,再利用PC机的强大处理功能,配合图形化语言开发实现。

1 总体设计

本文设计的虚拟逻辑分析仪主要由数据采样存储、数据显示处理和接口三部分组成,其结构框图如图1所示。其中FPGA内部功能电路有数据锁存器、指令识别电路、采样时钟电路、触发识别电路、数据存储电路等。

虚拟逻辑分析仪的工作原理为:来自外部的多路被测数字信号通过电压比较器,与门限电平比较,得到标准数字信号,连接到FPGA的I/O口。用户根据分析数据的需求,通过PC 机上的软面板,设置初始化指令(触发方式、采样频率和存储深度指令等),PC机将初始化指令通过串口发送给单片机的P1口,再由单片机传给FPGA。然后 FPGA中的指令识别电路检测指令,当检测到命令字后,将命令存入各自的指令寄存器中。采样频率控制信号输出到采样时钟电路,由采样时钟电路生成各种频率的时钟信号提供给数据获取单元,数据获取单元根据时钟信号进行数据采样并锁存。同时,采样回来的数据经过触发识别电路,与触发字比较,若匹配则发出存储命令,数据存储电路收到存储命令之后控制SRAM进行数据存储。数据存储达到存储深度,则通过串口返回存满信号给PC机。此时PC机发出数据读取指令,将SRAM中的数据读到PC机,由PC机对数据分析和处理后,以二进制数字或波形图的方式显示在PC机屏幕上。

2 主要硬件模块的设计

2.1 电平判别电路

电平判别电路由数字电位器和高速电压比较器组成。由于被测电路可能工作在TTL、ECL或CMOS等不同的门限电平电路,本设计采用Xicor公司的32档数字电位器X9511,对基准电压5V进行精确分压,通过增量按键/PU和减量按键/PD的操作,实现不同的门限电平输出。本设计高速电压比较器采用Linear Technology公司的四运放集成芯片LT1721实现。为了信号的稳定性和可靠性,在电压比较器之前,先对被测信号进行电压跟随。电平判别电路如图2所示。

图中只给出了2个通道的信号电平判别,其中V-REF为门限电平,放大器A作电压跟随器,放大器B作电压比较器,IN0、IN1分别为第0、第1通道的被测输入信号,D0-IN、D1-IN为第0、第1通道输出的标准数字信号,提供给FPGA的数据锁存器。

2.2 FPGA系统

本设计选用的FPGA是Altera 公司Cyclone系列的EP1C3T144C8。FPGA器件的内部逻辑电路的设计,采用可编程逻辑器件的开发语言Verilog HDL和开发环境Quartus II来实现。通过JTAG 接口可以对 FPGA 在线编程、调试和测试。FPGA内部实现的功能电路有数据锁存器、指令识别电路、采样时钟电路、触发识别电路和数据存储电路等。各功能电路的关系如图3所示。

(1)指令识别电路

指令识别电路的功能是按照预先定义FPGA和单片机之间的通信协议,识别由PC机发出的指令,当识别到初始化指令时将指令进行解析,并分别存入各指令寄存器中,产生采样频率控制信号、触发方式控制信号、存储深度控制信号等去控制FPGA其他功能电路。

(2)采样时钟电路

采样时钟电路用于选择采样频率。本文设计的异步采样提供四种采样频率,由40MHz有源晶振提供基准时钟送到FPGA的可编程分频器,经过可编程分频电路之后产生40MHz、20MHz、10MHz和5MHz四种时钟,输出到时钟选择器。时钟选择器相当于一个单刀四掷的模拟开关,根据采样频率控制命令来控制某一路时钟接通,输出给采样存储模块。

(3)触发识别电路

触发识别电路的作用是识别触发并产生标志信号。本设计提供了四种常用的触发方式:随机触发、字触发、通道触发及延迟触发。

触发识别电路工作过程为:指令识别电路产生的触发方式控制信号,提供给触发方式选择器,触发方式选择器相当于一个2-4译码器,根据触发方式字使能对应的触发模块,输入的数据流在各功能触发识别模块中与用户设置的触发条件进行比较,若数据流中出现所设定的触发条件,则模块会输出触发有效信号,四个触发模块当中,只要其中任意一个产生了触发有效信号,经过与门都可以生成触发标志,控制数据采样存储。

(4)数据存储电路

数据采样回来之后,先经过锁存器锁存,一旦触发标志有效,就根据采样时钟的频率将锁存器数据输出到外接的SRAM。数据存储电路控制SRAM的数据写入有效,同时地址计数器的输出递增,这样可以在时钟到来时,将数据存入SRAM的地址,当下一个时钟到来的时候,就进行下一个数据的存储。计数器的值递增,达到系统所规定的存储深度之后,返回一个中断信号。PC机收到数据存满的信号之后,便可以将数据读回,再进行相应的分析、处理。

2.3 单片机及接口电路

FPGA芯片本身不带有RS-232标准串行通信接口,本设计采用了ATMEL公司的单片机AT89S52作为PC机和FPGA之间的桥梁。它接收来自PC机的命令,如果是参数初始化和数据采集命令,则将其解释给FPGA模块;如果是数据读取命令,则将SRAM中的数据读回,并根据串口协议打包之后发给PC机。单片机和FPGA之间的数据传输根据单片机和FPGA之间的自定义通信协议执行。

单片机与PC通信中,由于AT89S52的串行口输入/输出为TTL逻辑电平,而PC机内部的RS-232C串行口用+12V和-12V电平方式,本文采用Maxim公司的MAX232芯片实现RS-232电平转换。

3 上位机软件设计

虚拟逻辑分析仪的数据处理和显示功能由上位机通过虚拟仪器软件开发平台实现。

上位机的软件设计分为三个模块:控制模块、数据传输模块和显示模块。软件设计框图如图4所示。

控制模块主要完成对逻辑分析装置的数据采集参数进行设置。工作过程为:首先进行初始化,并打开计算机串口;然后在参数设置部分设置采样参数;参数设置完成后点击参数下载对应的按钮,程序将转入数据传输模块。

数据传输模块将设置好的参数通过串口传给硬件部分,然后再接收由硬件返回的采样数据。工作过程为:首先对串口进行设置,再根据预先规定的协议对所传输的数据进行配置,并将每个参数按照协议进行二进制编码,然后用控件发送命令字。下位机单片机部分接收到命令字后进行解析,并完成采样工作。上位机发出指令之后处于检测状态,当检测到串口收到数据时就开始接收返回数据,将下位机传来的数据全部接收存储在 RAM 内,然后将数据传输到显示模块。

显示模块对 PC机接收到的数据进行分析,然后将其二进制数据列表或者显示成通道波形的形式。二进制数据序列表直接将存储区的数据按顺序显示,可利用LabVIEW中的Bundle函数来实现。波形显示方式要求把每个通道的数据独立显示,因此要求在数据处理时,把每个存储单元的数据按通道逐位取出,再把同一通道的数据合并,然后进行波形显示。可利用LabVIEW中的Digital Waveform Graph 来实现。

4 性能指标及功能

在综合考虑应用需要和成本的前提下,本文设计的虚拟逻辑分析仪的主要性能指标为:有8个高速采样通道,最高可达40MHz采样率,存储深度达1 024KB,触发方式有随机触发、通道触发、延迟触发及字触发四种。其中多级字触发具备四级序列字触发和组合字触发功能。对不同的被测系统,提供相应的门限电平。RS-232串行接口配合LabVIEW开发的虚拟操作平台,可实现数据在PC机上的实时显示。

实现的主要功能包括:对所采集到的数据进行波形和二进制数据列表显示;保存用户所需要的显示图形;初始化命令,让系统复位准备;控制触发方式和触发字;控制采样速率;控制存储深度;选择采样时钟。

经测试表明,本文设计的虚拟逻辑分析仪具备了较强的逻辑分析能力,能满足信号分析的要求。由于数据存储部分中的数据锁存器、指令识别电路、采样时钟电路、触发识别电路、数据存储电路等采用可编程逻辑器件FPGA来实现,使硬件电路大为简化,提高了逻辑分析仪的可靠性,降低了成本,且功能易于扩展,具有一定的教学和科研价值。



评论


相关推荐

技术专区

关闭