一种实用的VXI总线寄存器基接口电路的设计
摘要:在介绍VXI总线协议的基础上,通过对器件寻址、端口地址译码、DTB总线仲裁和中断仲裁等几部分工作原理的分析,提出了一种VXI寄存器基接口电路的实现方法,并给出了用可编程逻辑器件实现的过程。该接口电路已在多种VXI寄存器基器件中得到应用。
关键词:VXI总线 寄存器基 地址修改码
VXI(VMEbus eXtention for Instrumentation)总线是一种完全开放的、适用于各仪器生产厂家成为高性能测试系统集成的首选总线。VXI总线器件主要分为:寄存器基器件、消息基器件和存储器基器件。目前寄存器基器件在应用中所占比例最大(约70%),其实现方法在遵守VME协议的前提下,根据实际需要各有不同。VXI接口电路用于实现器件的地址寻址、总线仲裁、中断仲裁和数据交换等。设计VXI接口首先需明确寻址空间和数据线宽度,VXI器件寻址有A16/A24、A16/A32和A16三种。A16/A24寻址支持16M字节空间,A16/A32寻址支持4G字节空间,A16寻址支持64字节地址空间,但不论哪种寻址方式,A16寻址能力是不可缺的。本文设计的VXI寄存器基接口电路是A16寻址的,支持D8和D16数据线传输,有较宽的使用范围。其接口电路原理框图如图1所示。
1 DTB及DTB仲裁
DTB(数据传输总线)及DTB仲裁是VXI接口的核心,javascript:window.open(this.src);" style="cursor:pointer;"/>DTB主要包括:寻址总线、数据总线和控制总线。其主要任务是:①通过地址修改码(AM)决定寻址空间和数据传输方式。②通过DS0*、DS1*、LWORD*、A1控制数据总线的宽度。③通过总线仲裁决定总线优先使用权。
VXI总线器件在A16(16位地址)寻址时,有64字节的地址空间,其呈部分作为器件配置寄存器地址(已具体指定),其余可用作用户电路端口地址。每个器件的寄存器基地址由器件本身唯一的逻辑地址来确定。地址修改线在DTB周期中允许主模块将附加的器件工作模式信息传递给从模块。地址修改码(AM)共有64种,可分为三类:已定义修改码、保留修改码和用户自定义码。在已定义的地址修改码中又分为三种:①短地址AM码,使用A02~A15地址线;②标准地址AM码,使用A02~A23地址线;③扩展地址AM码,使用A02~A31地址线。A16短地址寻址主要是用来寻址器件I/O端口,其地址修改码为:29H、2DH。
图2为VXI器件寻址电路图,其中U1为可编程逻辑器件,其表达式为:VXIENA*=AS*+!IACK*A14+!A15+!AM5+AM4+!AM3+AM1+!AM0;(!IACK*表示系统无中断请求)。寻址过程为:当VXI主模块发出的地址修改码对应为29或2D、总线上地址A6~A13和逻辑地址设置开关K1的设置相同并且地址允许线AS有效时,图2中的MYVXIENA*有效(为低),表示本器件允许被VXI系统寻址。在允许本器件寻址的基础上(即MYVXIENA*有效),再通过MYVXIENA*、A1~A5、LWORD*、DS0*、DS1*译码生成64字节地址,根据VME总线协议可译出单字节地址和双字节地址。协议协定:当单字节读写时,奇地址DS0*为低、DS1*为高,偶地址DS1*为低、DS0*为高,LWORD*为高;双字节读写时,DS0*和DS1*为低、LWODR*为高;四字节读写时,DS0*、DS1*和LWORD*都为低。
DTB数据传输应答主要依赖DTACK*和DS0*之间的互锁性握手关系,而与数据线上有效数据什么时候出现无关,所以单次读写操作的速度完全决定应答过程。为适应不同速度用户端口读写数据的可靠性,本文采用由用户端口数据准备好线(DATREADY*)去同步DTACK*答应速度的方法来保证数据传输的有效性。该方法的优点是电路简单、使用方便,缺点是占用DTB时间长,影响VXI系统性能,且最长延时时间不得超过20μs。通常情况下用户可通过数据暂存的方法实现数据可靠传输,并使用户端口数据准备好线(DATREADY*)接地。由于寄存器基器件在VXI系统中只能作为从模块使用,所以其总线请求只有该器件发生中断请求时才由中断管理模块提出。
2 中断请求及仲裁电路
VXI系统设有七级中断,优先中断部迟疑不决包括:①中断请求线IRQ1*~IRQ7*;②中断应答线IACK*;③中断应答输入线IACKIN*;④中断应答输出线IACKOUT*。从系统的角度看,在VXI系统中有一个成菊花链的中断查询系统。当VXI系统中有中断请求时,中怕管理器使中断应答信号IACK*有效(置低),并送往菊花链驱动器,菊花链驱动器使输出IACKOUT*有效,送至相邻的下一个器件。如果相邻器件没有中断请求,则该器件的IACKOUT*输出仍为低,继续向下一个相邻器件传送;当此器件有中断请求时,所以其输出IACKOUT*为高,进入中断过程,并屏蔽后级器件的中断应答。
图2
为实现中断请求和中断仲裁,每个器件的中断仲裁电路应完成的功能为:①产生中断请求;②上传状态/识别码;③屏蔽后级中断应答。本文设计的中断仲裁电路如图3所示。其中TX1~TX3来自中断号选择跳线器,INNER-IRQ为器件内部用户电路中断请求信号,上升沿有效。中断请求过程分如下四步:(1)在系统复位或中断复位(来自控制寄存器)后,IRQOPEN*为“1”使比较电路输出“1”,使中断应答菊花链畅通,且译码电路不工作。(2)当本器件内有中断请求时,使IRQOPEN*为“0”,则译码电路根据中断置位开关的设置输出相应中断请求信号IRQx *。当中断管理器接收中断请求信号后使IACK*有效,并送往中断菊花链驱动器使之输出IACKOUT*有效,同时中断管理器请求DTB总线使用权。(3)当中断管理器获得DTB使用权后,根据接收到的中断请求信号,在地址允许线AS+作用下在地址线上输出相应的A1~A3地址,使比较器输出“0”,从而使IACKOUT*变高,屏蔽后续中断,并清除本器件内部中断请求。(4)中断管理器使数据允许信号DS0*为低,读出器件状态/识别码,响应中断,同时在DS0*的上升沿清除中断请求(使IRQOPEN*为“1”),接通中断应答菊花链,进入中断过程。
3 可编程器件实现和调试
为了克服用中小规模集成电路实现VXI接口电路存在的体积大、可靠性差和可调试性差等不足,可采用可编程器件实现接口电路。本文采用的器件是ALTERA公司的MAX系列,采用的器件可编程软件平台的MAX+plusII。MAX+plus II在编程上提供了多种电路描述形式,主要有图形描述、AHDL描述和VHDL描述等。本文采用图形描述和AHDL描述相结合的描述方法。接口电路的主框架结构和能够用标准元件表述的子模块电路用图形描述方法设计,部分功能子模块用AHDL语言描述。这种设计方式的电路原理结构直观、功能描述简洁。VXI接口电路硬件描述子程序模块由地址修改码器件寻址、端口地址译码、中断请求及控制、寄存器配置四部分组成。
在VXI器件中,寄存器配置步骤是必不可少的,VXI寄存器基器件主要配置寄存器有:识别/逻辑地址寄存器、器件类型寄存、状态/控制寄存器。在接口电路的性质特性明确的前提下,寄存器基器件的配置是确定的,所以直接在可编程器件中实现,且更改也很方便。以下列出的是VXI寄存器基接口电路的主要逻辑表达式(用AHDL语言格式):
VXIENA=AS#!IACK#!A14#!A15#!AM5#AM4#!AM3#AM1#!AM0;
MYVXIENA=VXIENA#(A6$Q0)#(A7$Q1)#(A8$Q2)#(A9$Q3)#(A10$Q4)#(A11$Q5)#(A12$Q6)#(A13$Q7);
ACKED=(TX1$A1)#(TX2$A2)#(TX3$A3)#IACK#!SYSRST#!IRQPEND#AS#IACKIN;
DTACKNODE=!(DS0&DS1#MYVXIENA&ACKED);
DRACK=DFF(DTAKNODE,SYSCLK,VCC,VCC);
IOENA=MYVXIENA#DS0&DS0&DS1#!LWORD;
IACKOUT=AS#IACKIN#!ACK;
需要注意的是,在使用中由于部分信号线与VXI背板总线连接时需要采用集电极开路方式接入,如DTACK*、SYSFAIL*、BRx*等,所以应增加一级集电极开路门电路后再与VXI背板总线连接。
javascript:window.open(this.src);" style="cursor:pointer;"/>
接口电路调试有两种方式,一是利用LabWindow/VCI开发工具预先编好一个带操作软面板的调试程序,它包含有各项功能调试控件和相关信息显示窗。在调试电路时只需根据提示在软面板上操作,就可及时得到信息显示。这种调试电路方法方便、直观,但由于调试程序的封装会使得调试细节不透明。另一种形式是在NI公司提供的VXI资源管理器中对端口电路进行操作、调试。这种方法是硬件开发人员主要采用的形式。主要过程为:先打开T&M Explore对VXI系统初始化;启动VXI系统初始化;启动VXI InterActive Control面板,在Bus Access中通过修改偏移地址(Offset)、输出值(Value)和观察输入值来对接口电路进行调试。在调试过程中,为便于数据或波形的稳定测试、观察,一般将输出数据的循环次数(count)设成一个较大数。这种调试方式虽然不很直观,但却非常灵活,容易发现硬件电路细节不足。
在VXI接口电路设计方面,只要遵循VXI总线协议,其具体实现方法多种多样。本文从VXI总线协议出发详细阐述了一种VXI寄存器基接口电路的设计方法和工作原理,并介绍了可编程器件实现方法和调试方法。用可编程电路使VXI接口电路模块化、格式化,可缩短VXI总线器件的研制周期、缩小器件体积,提高器件的可靠性。该接口电路已在VXI数字I/O、VXI特征分析仪中使用。随着仪器仪表技术、虚拟仪器技术的 发展,VXI总线作为高性能测试系统仪器的背板总线,将在航空航天、雷达、通讯等领域的测试中占据越来越重要的地位,开发高性能VXI总线器件是目前较热门的研究方向。