基于FPGA的逻辑分析仪.docx
- 文档编号:5959504
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:28
- 大小:280.63KB
基于FPGA的逻辑分析仪.docx
《基于FPGA的逻辑分析仪.docx》由会员分享,可在线阅读,更多相关《基于FPGA的逻辑分析仪.docx(28页珍藏版)》请在冰豆网上搜索。
基于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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 逻辑 分析