基于FPGA的逻辑分析仪.docx

上传人:b****6 文档编号:5959504 上传时间:2023-01-02 格式:DOCX 页数:28 大小:280.63KB
下载 相关 举报
基于FPGA的逻辑分析仪.docx_第1页
第1页 / 共28页
基于FPGA的逻辑分析仪.docx_第2页
第2页 / 共28页
基于FPGA的逻辑分析仪.docx_第3页
第3页 / 共28页
基于FPGA的逻辑分析仪.docx_第4页
第4页 / 共28页
基于FPGA的逻辑分析仪.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

基于FPGA的逻辑分析仪.docx

《基于FPGA的逻辑分析仪.docx》由会员分享,可在线阅读,更多相关《基于FPGA的逻辑分析仪.docx(28页珍藏版)》请在冰豆网上搜索。

基于FPGA的逻辑分析仪.docx

基于FPGA的逻辑分析仪

基于FPGA的逻辑分析仪

该项目是我在嵌入式Linux杂志的竞赛“嵌入式Linux的乐趣和技巧奖”项。

我的目标是创造一种廉价的逻辑分析仪使用Altera的FPGA和嵌入式Linux从ZFLinux处理器。

虽然我没有赢得比赛,逻辑分析仪效果很好,我只是为了好玩的持续发展和支持

网络版本

这次比赛的原型如下所示。

这是一个32通道逻辑分析仪从三M系统,网络卡和定制卡,我设计,我称之为分析器的PCB板MZ104处理器为基础。

分析器电路板包含一个FPGA,SRAM缓冲,时钟芯片,时钟切换的数据和时钟输入,一个FPGA编程口和一个PC/104接口,头。

 FPGA的(可以是程序的控制下重新配置)和MZ104组合(这基本上是一个完整的PC运行Linux),提供了一个非常灵活的工具,可以适应多种用途之外的逻辑分析。

在当前配置中没有一个用户界面,而是由一个远程控制Windows或Linux工作站通过网络。

并行端口(PP)的版本

虽然比赛的原型使用以太网卡ZFLinux嵌入式处理器,它也可以直接连接到分析仪的PCB主机使用并行端口,没有任何其他板。

这大大降低了成本,而且是最好的方式,如果你只需要一个基于PC的逻辑分析仪,不希望建立一个独立的工具。

您仍然有使用逻辑分析外的其他用途地段的板,选项,如果你愿意来设计Altera软件与自己的逻辑。

我修改通过增加一个外部聚丙烯接口板我的原型。

一旦我证实它的工作,我设计了一个新的印刷电路板采用了聚丙烯接口。

我的第一个原型没有工作,显然是由于一个坏的FPGA,所以我建立了第二个,这是图所示。

我用了一个较低的速度等级比原来的FPGA(-3,而不是-1),是很容易得到(你通常可以得到它从联机。

)我的原型是工作在100MHz的很好,但我不吨保证你会得到相同的性能。

零件清单仍然呼吁,-1的一部分。

概述

该分析仪是建立在一个单一的PCB,有PC/104接口。

该板可用于两种不同的方式:

•当与诸如嵌入式三MZ104-M处理器板和网卡等PC/104模块相结合,成为一个独立的仪器,可以通过网络访问远程PC,它提供了用户界面。

•当连接到一个主机PC并行端口,分析仪可以直接操作无成本较低的系统中的其他PC/104模块。

这是这个版本,我目前正在使用和发展。

为实现逻辑分析仪在FPGA的Altera的10K30A(=FPGA的现场可编程门阵列)。

逻辑设计了Altera最大PlusII设计环境,使用原理图编辑器。

该设计被编译成一个配置文件,该文件下载到FPGA上电后。

这提供了很大的灵活性,为在FPGA中的逻辑可以在任何时间改变不改变硬件。

事实上,重新配置的FPGA,逻辑分析仪可以被转换成完全不同的东西,如数字音序器,信号处理器,协议分析仪,机器人控制器等加入,如DAC或ADC的外部元件,你可以把它纳入,任意波形发生器,数字示波器,音频分析仪,频谱分析仪,或其它任何东西,你可以想到的。

你甚至可以把FPGA的一个简单的微处理器,将其变成一个电脑吧!

 (你有没有希望自己的PDP8?

印刷电路板

分析器板的PC/104兼容,并包含以下部分:

•FPGA的

•的SRAM(32x65K)

•头32个逻辑输入与外部时钟输入

•标题为FPGA的编程口

•的PC/104ISA总线头

•电压调节器

•水晶控制的100MHz的时钟,时钟分频器

•FET开关的时钟选择

•配置的EPROM

FPGA的

Altera公司的FPGA是10K30A。

它包含所有的逻辑分析仪,以及ISA总线或并行端口接口。

 FPGA的编程口是带出了一个头和一个插座,因此该配置文件可以从PC上下载,或从配置EPROM的加载自动。

 Altera公司的FPGA使得家庭,在速度和规模不等,其中不少是引脚兼容的10K30A,因此不同的FPGA可以在黑板上,如果需要替代。

软件

有两个应用程序一起运行的逻辑分析仪。

•逻辑-这是一个Windows或Linux应用程序,在远程计算机上运行。

它控制分析仪无论是使用并行端口或网络接口。

它显示了用户友好的图形用户界面的设置信息和数据。

•Netshell-对于网络版本,这是一个Linux上的应用MZ104嵌入式处理器上运行。

它控制仪板使用I/O端口,通过网络与远程PC进行通讯。

它提供了一个命令行接口,可在本地或远程访问使用Telnet。

在远程计算机的应用程序可以使用命令行界面来控制分析仪,并从中下载数据。

产品规格

•32个通道,1个时钟输入

•输入接受的2.5V,3.3V或5V的逻辑电平

•65K的采样,每通道

•100MHz的最高内部或外部时钟频率

•2触发,状态1和状态探测器STATE2

Ø状态1可以是0,1或每个通道DON'T_CARE

ØSTATE2可以是0,1,DON'T_CARE,UP_EDGE,DOWN_EDGE或每个通道ANY_EDGE。

Ø触发条件是:

状态1个周期,然后STATE2的N,其中N0和255之间

•ISA总线(PC/104的)或并行接口

FPGA的

在Altera10K30AFPGA是逻辑分析仪的核心。

一个FPGA(现场可编程门阵列)是一种含有芯片的通用逻辑元件和互连矩阵多。

逻辑元件和互连的配置下载到设备上的数据文件,无论是从EPROM或从PC的并行端口。

该装置的功能是确定完全由下载的代码。

的代码,我为这一项目建立实现了逻辑分析仪,而是一个完全不同的仪器可以创建通过修改配置文件简单。

配置文件是由一个逻辑编译器。

 Altera提供作为他们的“最大PlusII”的视窗软件的一部分编译器。

该软件提供了一个完整的设计环境,从设计到合成,模拟输入和编程的FPGA。

逻辑设计可以被创建为一个原理图或使用如VHDL,或两者相结合的方法硬件描述语言。

我选择使用原理图输入,因为它提供了一个将在设备上创建逻辑更直接表示。

最大PlusII鼓励层次的方法进行设计,使您可以创建逻辑,可到更高层次的模块,并最终纳入到顶层模块,完整的设计模块。

无论是“自上而下”或“自下而上”的方法可以使用。

该模拟器用于调试非常宝贵的,可与单独的模块或完整的设计中。

最多可以下载PlusII从Altera网站,使用下面的链接。

它是免费的,但你必须登记,然后将您发送电子邮件Altera的许可证文件。

目前免费版本为10.0。

我用这个项目的商业版本9.5。

该商业版本的主要优点是它支持“时序驱动合成”,从而导致更高的速度。

使用该软件的商业版本,逻辑分析仪运行在112兆赫(在模拟)与约87MHz,使用免费版本。

顶层为我的逻辑分析仪FPGA的原理图页面所示。

它采用诸如“ISA_INTERFACE”它们有自己的网页纳入较低层次电路图模块有自己的网页,等等,等等如果你想仔细阅读完整的设计,你可以下载设计文件(使用,高层次的模块下面的链接),看看他们在最大PlusII。

印刷电路板

示意图

以下是分析仪的原理图板作为。

pdf文件。

PartsLists

PC/104Version

Name

P/N

Manufacturer

#Used

Package

Refs

Comments

FPGA

EPF10K30AQC240-1

Altera

1

QFP240

U4

-

FETSWITCH

IDTQS3126S1

I.D.T.

1

SOIC14

U5

-

EPROM

EPC1

Altera

1

PLCC20

U3

Usesocket

SRAM

CY7C1329

Cypress

1

QFP100

U2

-

REGULATOR

DigiKeyLM1085IT-3.3-ND

NationalSemi.

1

TO220

U1

-

LED

DigiKey67-1056-ND

Lumex

1

HDR1X2

D1

-

OSCILLATOR

DigiKeySE3514CT-ND

EPSON

1

SMT4

X1

-

HEADER(1X2)

DigiKeyWM4000-ND

Molex

1

HDR1X2

J10

-

PROTECTEDHEADER(2X5)

DigiKeyA26268-ND

AMP

1

HDR2X5

J2

-

PINHEADER(2X5)

DigiKeyS2022-5-ND

AMP

1

HDR2X5

J1

-

HEADER(PCI/104)

1375795-1

AMP

1

HDR2X32

J3+J4(combined)

-

HEADER(I/O)

?

?

?

HDR1x20

J5-J9

Thesecanbeconfiguredvariousways

RES_220_5%

DigiKeyP220ACT-ND

Panasonic

1

805

R1

-

RES_1K_5%

DigiKeyP1.0KACT-ND

Panasonic

5

805

R2-R6

-

RES_4.7K_5%

DigiKeyP4.7KACT-ND

Panasonic

1

805

R7

-

RES_33_5%

DigiKeyP33ACT-ND

Panasonic

33

805

R8-R40

-

CAP_100UF_10V

DigiKeyP11313CT-ND

Panasonic

1

EIA-D

C1

-

CAP_47UF_6.3V

DigiKeyP11305CT-ND

Panasonic

4

EIA-B

C2-C5

-

CAP_0.1UF_10V

DigiKeyPCC1840CT-ND

Panasonic

38

805

C6-C43

-

PPVersion

Name

P/N

Manufacturer

#Used

Package

Refs

Comments

FPGA

EPF10K30AQC240-1

Altera

1

QFP240

U4

-

FETSWITCH

IDTQS3126S1

I.D.T.

1

SOIC14

U5

-

CMOSBUFFER

74HC244

various

1

SOIC20

U3

-

SRAM

CY7C1329-133ACorMT58L64L32D-7.5A

CypressorMicron

1

QFP100

U2

-

REGULATOR

DigiKeyLM1085IT-3.3-ND

NationalSemi.

1

TO220

U1

-

LED

DigiKey67-1056-ND

Lumex

1

HDR1X2

D1

-

OSCILLATOR

DigiKeySE3514CT-ND

EPSON

1

SMT4

X1

-

HEADER(1X2)

DigiKeyWM4000-ND

Molex

1

HDR1X2

J10

-

RIGHT-ANGLE0.156"HEADER(1X2)

DigiKeyWM4640-ND

Molex

1

MOLEX

J2

-

RIGHT-ANGLEBOXHEADER(2X13)

DigiKeyA26275-ND

AMP

1

HDR13X2

J1 

-

HEADER(I/O)

?

?

?

HDR1x20

J5-J9

Thesecanbeconfiguredvariousways

RES_220_5%

DigiKeyP220ACT-ND

Panasonic

1

805

R1

-

RES_1K_5%

DigiKeyP1.0KACT-ND

Panasonic

5

805

R2-R6

-

RES_4.7K_5%

DigiKeyP4.7KACT-ND

Panasonic

8

805

R7,R72-R78

-

RES_33_5%

DigiKeyP33ACT-ND

Panasonic

33

805

R8-R40

-

RES_100_5%

DigiKeyP100ACT-ND

Panasonic

21

805

R50-R62,R64-R71

-

CAP_100UF_10V

DigiKeyP11313CT-ND

Panasonic

1

EIA-D

C1

-

CAP_47UF_6.3V

DigiKeyP11305CT-ND

Panasonic

4

EIA-B

C2-C5

-

CAP_0.1UF_10V

DigiKeyPCC1840CT-ND

Panasonic

35

805

C6-C40

-

Enclosure(black)

DigiKeySR071B-ND

Serpac

1

 

 

Variouscolorsavailable

布局

我设计了使用Ultiboard中多氯联苯5.63。

不幸的是,我提出在为PC/104接口连接器的针脚分配一个错误,所以我不得不返工,加入一个夹层连接器,它用手工布线电路板的板,但事实证明,这确定。

PC/104的版本

适用于并行端口版本布局如下所示。

聚丙烯版本

和装配厂

我的PCBExpress,谁做了非常漂亮的工作fabbed的董事会成员。

我组装的手我的原型。

手工焊接的大型表面贴装部件是一个挑战,虽然与合适的设备和少量的实践证明是比我预想的更容易。

不要尝试没有一个好的烙铁吧!

我使用以下设备:

•一个照明放大镜。

•一个韦勒温度控制焊接铁0.01“和0.03”圆锥形的提示。

•松香芯焊料,0.015“厚。

•液体松香助焊剂和助焊剂清洗机(镁化学品)。

•细尖镊子。

•吸锡编织过失。

•稳健的手(无咖啡因!

RadioShack的使手持30倍显微镜这对于焊点的最终检验大。

它还包括一个小型8倍镜头。

这是一个便宜10元!

最难的是在FPGA和焊接到PCB的SRAM,因为这些都是非常细间距部分。

我用的焊锡是从电路板PCB焊盘镀锡过程中了。

这是没有那么多,你会发现焊锡在工厂组装板,但它似乎是一个良好的连接不够。

本人涂上液体助焊剂的焊盘,然后放置在PCB的一部分,用放大镜,以确保排队的引脚与焊盘完美。

然后,我与上涨了几角焊铁针。

对齐后复查,我没有增加任何更多的焊接焊每个引脚。

如果您要添加到焊盘焊接,我建议你做这之前发生的一部分。

只需添加少量的焊锡给每个烙铁垫,尝试使用相同数量的每个垫,使他们为偶数。

我觉得很困难,一旦加焊脚到位。

然后我用放大镜来检查好每一个引脚焊点。

我开始使用微0.01“在我的烙铁头,但事实证明,这已为电源和地垫热容量不足,所以我切换到0.03”尖端的工作要好得多。

成品板如下。

PC/104的版本(一2X18头)

聚丙烯版本(有两个2X17盒头)

页眉

为逻辑分析仪输入I/O表头可以配置多种不同的方式,采用了板上焊盘5X20阵列。

•一个2X17头可以使用,以提供一个时钟输入,32个数据输入和一个地面。

对于较长的电缆运行•两个2X17头都可以使用。

第一次提供了所有的奇数数据输入,交替的理由。

第二提供时钟输入和交流为理由,偶数数据输入所有。

如果你想使用框标题(如在上面显示的PP版本),你将不得不修剪边缘的头一,以适合他们并排端。

我用一个小爱好此看到的。

•扩展的标题来2X18每头提供了两个额外的理由。

•扩展他们提供2X20以及+5V和+3.3V,如果你想要权力的某种非车载适配器。

外壳

  

PC/104的版本(一2X18头)

这是PC/104的版本,用MZ104和网卡。

外壳是Serpac标准箱。

以太网和电源连接器上的方块左侧,还有一个保险丝座。

右边的头被用于时钟和数据输入。

在顶部小头编程的FPGA。

聚丙烯版本(两个2X17头)

这是聚丙烯的版本。

外壳是Serpac箱(看到的部分清单),以作为除了高度PC/104的版本相同的尺寸。

它有一个电源连接器和一个左侧DB25连接器带状电缆,时钟和数据输入头顶部。

编程逻辑分析仪

1I/O端口地址

1.1PC/104的版本

分析器电路板(PC/104的版本)占据了我的4个字节块/O端口的主机地址空间。

基地址是硬编码到FPGA逻辑,目前设置为0x220。

这通常是由声霸卡音频卡所提供的地址,通常是由其他设备避免。

这个地址可以通过重新编译FPGA的改变。

这4个字节的空间是2的16位字组成的,称为数据和拉德,其中:

数据=0x220

左房=0x222

在逻辑分析仪的寄存器的访问采用间接寻址方案,其中本地地址的寄存器写入左房。

读取和写入数据,那么访问本地寄存器是由左房选择。

1.2并行端口版本

2逻辑分析仪的并行端口版本使用相同的间接的PC/104的版本,这在FPGA中的本地寄存器写一个地址到左房寄存器选择解决方案。

并行端口用于写入左房登记,并读取和写入FPGA的本地寄存器由左房选择。

在PC并行接口组成的I/O端口的主机地址空间,称为数据,状态和控制3个连续的8位寄存器。

如果并行端口的基地址是0x378,例如,那么这些寄存器是:

数据=0x378

状态=0x379

控制=0x37A

在并口上早期的IBM个人电脑原始设计,数据寄存器是单向的,只能用于输出。

最近所有的个人电脑支持双向数据寄存器。

但是,它可能需要配置模式为双向端口在电脑的BIOS设置。

通常情况下,BIOS设置屏幕提供每个并行端口4个可能的模式:

兼容,双向,EPP和ECP。

这些可能是不同的名称,例如,兼容性模式有时也被称为SPP模式和双向模式有时也被称为PS/2模式。

兼容模式通常是在提交的BIOS设置选项列表的第一选择。

基本上,任何模式除外兼容模式应该支持双向数据。

状态寄存器不使用逻辑分析仪。

然而,一些控制位回送状态寄存器,以便对FPGA编程的应用可以测试的配置电缆连接正确。

控制寄存器是只输出,它的第4位是用来控制逻辑分析仪并口接口。

另位是用来切换在PC数据寄存器的方向。

这些位是:

3

D-SUB端子

名称

功能

0

1

PC0

命令频闪

1

14

PC1

0=命令模式,1=配置模式

2

16

PC2

命令位0

3

17

PC3

命令位1

5

PC5

0=数据输出,1=数据输入

4PC1的设置为1置于FPGA的配置模式。

这样可以将FPGA配置文件下载。

一旦配置文件已被下载,设置为0,允许PC1的阅读和在当地登记册FPGA的写作,用4命令序列,如下所述:

命令

序列

功能

LADD

写0xC控制

写地址到数据

写0xd中控制

写0xC控制

写的8位地址,LADD

WRITE

写0x4到控制

写入数据的高字节数据

写0x5控制

低字节的数据写入到数据

写0x4到控制

写16位数据到本地注册的LADD选择。

READ

写0x20至控制

写0x21控制

读低字节的数据从数据

写0x20至控制

读高字节的数据从数据

读取16位数据寄存器选择从本地的LADD。

FPGA的数据端口是处于输出模式。

一个NOP指令发出之前,必须在未来ADD或写。

NOP

写0x8以便控制

写0x9控制

写0x8以便控制

没有数据交换,但FPGA的数据端口切换到输入模式。

这是一个READ之间需要和下面LADD或写。

5

2寄存器

这是在逻辑分析仪可以由主机读取/写入局部寄存器。

NAME

LADD

R/W

SIZE

FUNCTION

CONTROL

0x0000

W

16

Run,stop,clear,etc.

STATE1_CNT

0x0001

W

8

State1countfortrigger

LENGTH

0x0002

W

16

Numberofcyclestocaptureaftertrigger

INT_CLK_DIV

0x0003

W

8

Dividerratioforinternalclock

SRAM_ADD

0x0004

R/W

16

AddresstoreadfromSRAM

STATUS

0x0008

R

1

Getstatus

TRIG_CNT

0x0010

R

16

Countervaluewhentriggeroccurred

COUNT

0x0020

R

16

Currentcountervalue

STATE1_B0_LO

0x0040

W

16

State1conditionbit0fortrigger(low16bits)

STATE1_B0_HI

0x0041

W

16

State1conditionbit0fortrigger(high16bits)

STATE1_B1_LO

0x0042

W

16

State1conditionbit1fortrigger(low16bits)

STATE1_B1_HI

0x0043

W

16

State1conditionbit1fortrigger(high16bits)

STATE2_B0_LO

0x0044

W

16

State2conditionbit0fortrigger(low16bits)

STATE2_B0_HI

0x0045

W

16

State2conditionbit0fortrigger(high16bits)

STATE2_B1_LO

0x0046

W

16

State2conditionbit1fortrigger(low16bits)

STATE2_B1_HI

0x0047

W

16

State2conditionbit1fortrigger(high16bits)

STATE2_B2_LO

0x0048

W

16

State2conditionbit2fortrigger(low16bits)

STATE2_B2_HI

0x0049

W

16

State2conditionbit2fortrigger(high16bits)

SRAM_DATA

0x0080

R

16

ValueinSRAMataddressSRAM_ADD

对这些寄存器的详细说明如下。

2.1控制

该寄存器中的位控制逻辑分析仪的数据采集。

它们是:

BIT

MASK

NAME

FUNCTION

0

0x0001

CLR

Clearcounters,stopacquisition

1

0x0002

RUN

Startacquisition,waitfor

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1