在线客服
首页 > 技术文章 >
技术文章
技术文章

USB2.0虚拟逻辑分析仪的设计与实现

摘 要:本文介绍了一种基于FPGAUSB2.0高速、低成本虚拟逻辑分析仪设计原理与实现方法。重点介绍了逻辑分析仪触发方式设计以及利用CP2102芯片构建USB接口、实现系统与PC通信方法。
关键词:逻辑分析仪, 虚拟逻辑分析仪,自制逻辑分析仪,USB逻辑分析仪,PC逻辑分析仪

iptvforum.asia

引言

传统逻辑分析仪体积庞大、价格昂贵、通道数目有限,并且在数据采集、传输、存储、显示等方面存在诸多限制,在很大程度上影响了其在实际中应用。选用高性能FPGA芯片进行数据处理,充分利用PC强大处理功能,配合LabView图形化语言开发虚拟逻辑分析仪,其数据处理和传输速率大大提高,适用性极大增强,其显示、操作界面和低廉成本较之传统逻辑分析仪具有极大优势和发展前景。

工作原理

本设计选用Altera公司Cyclone系列FPGA器件EP1C3进行数据采集和处理,外接SRAM,用于数据存储。系统通过高性能PIC单片机PIC18F6620完成与PC通信,接收PC发出触发、配置信息并控制系统将采集处理后数据上传至PC显示。单片机与PC接口利用符合USB2.0规范接口芯片CP2102实现。 china365.asia

首先,PC向FPGA发送触发字信息、数据采集控制信息和开启数据采集信号;单片机发送数据至外接DAC产生门限电压;采集到输入信号通过高速比较器与此门限电压进行比较,以确定其值为0或1。接收到PC发出开启数据采集信号后,FPGA按设定工作方式采集数据,各通道数据移位输入FPGA内部缓存并存入外部SRAM。FPGA将缓存中存储采集数据与设定触发字、触发方式和屏蔽位进行比较。一旦符合触发条件,则设置触发标志,记录触发位置。当数据采集至设定点数后,FPGA向PC发送采集完成信号。上位机接收到此信号后,发送读取数据命令,系统读回采集数据并在PC屏上显示。系统功能框图如图1所示。 51dev.com

 

51dev.com


图1 系统功能框图

china365.asia

系统触发模块设计

触发模块是整个系统核心部分,主要包括采样时钟选择模块、触发电平设置和触发电路三个部分。

采样时钟选择模块

时钟选择模块用于选择采样频率。可供选择时钟源包括:外部时钟(由有源晶振提供)、单片机PWM模块产生PWM时钟、外部时钟输入(由额外设备提供)、以第N路数字信号输入作为采样时钟。

触发电平设置

触发电平用来确定系统正确识别采样信号高低电平。该模块由串行数模转换器TLC5615和高速比较器LT1721构成。采样开始前,单片机向DAC发送触发电平数据,转换后电平信号(范围从0~ 5V)送入高速比较器。

触发电路

触发电路作用是判断采样信号是否满足触发条件,并分别产生触发动作。当采集信号满足用户设置触发条件时,系统记录触发位置并产生触发信号通知上位机读取、显示采样数据。本次设计触发电路具有三种可选触发模式:立即触发、顺序触发和并行触发。 geekall.com

立即触发

当上位机向FPGA发出立即触发触发字和开始采样指令后,FPGA开始采样并立即产生触发信号。采样电路将采集到信号存入外部SRAM中,直至采集到规定点数后停止采样,向上位机发出采样结束信号,通知其读取采样数据。此方式下读回触发点位置为0。

顺序触发

该方式设置了一个8位序列触发,只有当被测通道信号按依次满足触发字所设定8位序列时,才产生触发信号。同时,为了操作灵活性,还加入了屏蔽位。若对某一位数据不敏感,可以将其对应屏蔽位设置为0,在判断触发条件时不对该位进行检测。

使用顺序触发方式,可以对任意一个通道选择最多8位长度序列进行触发。在进行触发设置时,除设置触发方式(选择顺序触发)和进行采样频率选择以外,还需要进行通道选择、触发字和屏蔽位设置。其Verilog HDL算法源程序如下:

geekall.com


if(((dbuf^{TrigWord[1],TrigWord[ 0]})&{enbit[1],enbit[0]}) == 8'h00)
 begin
 TrigFlag=2'b01; Trigpoint[6:0] <= MemABus_Wr[6:0];
  end

其中:dbuf为所测采样通道数据缓存;TrigWord[0]、TrigWord[1]为触发字;enbit[0]、enbit[1]为屏蔽字;Trigpoint为触发位置寄存器。

并行触发

该方式设置了一个八级深度并行触发,将每次采样得到4个通道数据组合为一个十六进制数,对应于一个4位触发字,当4个通道数据在时间上依次满足8个4位触发字时(并非要求连续),产生触发信号。同样,可以使用屏蔽位对某一通道数据进行屏蔽,即在进行并行触发检测时,不对该路通道进行检测。

使用并行触发方式,可以选择最多八级并行触发。在进行触发设置时,除设置触发方式(选择并行触发)和进行频率选择以外,还需要进行触发字、屏蔽位和并行深度设置。其Verilog HDL算法源程序如下:
51dev.com

 

if ((({dbuf4[0],dbuf3[0], dbuf2[0],dbuf1[0]}^ TrigWord [dcount] )&enbit[0] ) == 4'h0)
begin
if(dcount[2:0]==control[4:2])
begin
TrigFlag=2'b01; Trigpoint[6:0] <= MemABus_Wr[6:0];
dcount=3'b000; end
dcount = dcount 3'b001;
end

其中,dbuf4、dbuf3、dbuf2、dbuf1分别为采样通道4、3、2、1数据缓存;TrigWord[dcount]为触发字;dcount为触发深度计数器;control[4:2]为设定触发深度;enbit[0]为屏敝字;Trigpoint为触发位置寄存器。
51dev.com


USB2.0接口设计

本设计选用符合USB2.0规范CP2102芯片构建系统与PC通信接口。

CP2102是USB-UART桥接芯片。该电路内置USB2.0全速功能控制器、USB收发器、晶体振荡器、EEPROM及异步串行数据总线,支持调制解调器全功能信号,无需任何外部USB器件。其功能强大,采用MLP-28封装,尺寸仅为5mm×5mm,占用空间非常小,非常适合大数据量处理与传输电路系统设计与应用。

实际应用中,系统只需使用CP2102基本输入/输出数据线与复位信号线。其接口原理如图2所示。

系统启动时, 单片机RB1端口发送一低电平至CP2102复位端,芯片复位,然后保持复位端高电平,CP2102正常工作。 51dev.com

 

51dev.com


图2 USB2.0接口电路图

由于CP2102内部透明设计,数据通信时,可以不必构建CP2102与单片机握手信号;CP2102数据线直接与单片机1#USART模块接收移位寄存器(RSR)和发送移位寄存器(TSR)相连。CP2102数据线上一旦出现待发送数据,该数据会自动移入单片机接收移位寄存器;同样,单片机发送数据时,发送移位寄存器中数据直接移至CP2102数据线(即USB接口数据线)上。

程序设计中,系统不断检测单片机接收中断标志位RCIF1,一旦USART异<

北京迪阳世纪科技有限责任公司 版权所有 © 2008 - 2018 著作权声明
010-62156134 62169728 13301007825 节假日:13901042484 微信号:sun62169728
地址:北京市西城阜外百万庄扣钟北里7号公寓
E_mail:sales@pc17.com.cn 传真: 010-68328400
京ICP备17023194号-1 公备110108007750