引言
VXI总线技术经过十几年的发展,以其开放的系统环境,模块化的设计,紧凑的机械结构,良好的电磁兼容性及可靠性,小型便携和灵活的通信能力等一系列优点满足了工业领域对测试与测量的需求。如今,VXI总线作为新一代的测试与测量总线已经毋庸置疑,而研制基于VXI总线的测试与测量仪器也成为当务之急,近几年各种类型的VXI总线器件相继推出,VXI总线器件主要分为:寄存器基模块、消息基模块、存储器基模块和扩展器器件四种。目前寄存器基器件在应用中所占比例最大(约占70%),其实现方法在遵守VME协议规范的前提下各有不同。VXI寄存器基模块在VXI总线系统中仅能作为从模块(听者)工作,总线模块的电路结构基本上可分为两部分:总线接口电路和功能电路。对于VXI总线模块开发者来说,接口部分为研究重点,功能电路根据具体工程要求设计,其中许多电路是成熟的,可以直接移植过来。总线接口电路的设计也可以根据两种方式来实现,一种是直接利用专用接口芯片节省开发时间。目前,美国有两家公司生产专用接口芯片,CYPRESS公司的IT9010系列和Interface Technology公司的VIC068系列,但由于这些芯片的价格较高且其实现原理难于理解,很少采用;另一种是利用中、小规模电路基PAL、GAL、CPLD和FPGA实现。通过利用FPGA实现模块与VXI总线接口的设计过程中,总结出一些通用的设计思路。
功能设计
以C尺寸,寄存器基A16/D16器件为例,说明该器件须实现的一般功能。
·集成VXI总线地址译码逻辑以及VXIbus/Local bus仲裁逻辑;
·产生VXI总线应答信号(DTACK*),根据数据选通信号(DS0*,DS1*)与读写信号(WRITE*)控制数据的传输方向;
·产生本地存储器片选信号及I/O读写信号;
·具有中断请求功能,可编程中断向量,支持中断响应菊花链;
·产生本地复位信号;
·支持A16器件相关寄存器,支持D16和D08(EO)从模式。
以上功能除配置寄存器和器件相关寄存器外,其余都在1片FPGA芯片内实现。
功能实现
图1是VXI总线寄存器基模块接口框图。其中,图1中的方框图部分(除功能电路)可由FPGA实现。从实现功能的角度考虑,FPGA实现VXIbus接口电路主要由初始化电路、模块和寄存器译码电路、寄存器读写及数据传输应答、中断申请及响应等四部分组成。
开机初始化
根据VXI总线时序,在电源接通后,背板总线上SYSRST信号由低变高,以使SOFTRST信号由高变低并启动一次模块复位自检过程。根据VXI总线协议,模块复位自检应包括各寄存器(基本配置寄存器和用户定义操作寄存器)的初始化和功能电路的初始化。
模块和寄存器译码
一个VXIbus系统中最多可有256个器件,每个器件都有一个唯一的逻辑地址,编号从0到255。通常规定00H逻辑地址赋予插入0号槽的为系统提供公共资源的资源管理器和0号槽器件,而FFH号在上电时赋予系统的所有DC器件,其它的01H--FEH号分配给任意的SC器件。每个器件的逻辑地址由人工通过“逻辑地址选择器”设定。器件选通是由VXI的地址线A6-A13和地址修改线AM0-AM5来共同实现的,具体原理如图2所示。逻辑地址作为该器件的标准组态/操作寄存器的基地址。每个VXIbus器件有一组64字节的标准组态/操作寄存器位于系统A16寻址空间的高16K字节。VXIbus系统中,各器件内部的各可寻址单元是统一分配的。每个器件都支持16位寻址方式,每个器件64字节的最小地址空间是在寄存器基地址的基础上向上叠加的,如果器件的逻辑地址为V,则器件寄存器的基地址可由下式给出:
器件寄存器的基地址=215+214+V×64
选中模块的条件用逻辑表达式描述为
CARDADDR=(A[13..6]=LA[7..0])&&(AM [5..0]=2DH||A M[5..0]=29H)&&(IACK* =1)&&(LWORD*=1),也可用语言描述为:当器件被寻址时,接收地址线A01-A15及地址修改线AM0-AM5上的信息,并将其与本模块上硬件地址开关设置的逻辑地址相比较,如果AM0-AM5上的逻辑值为29H或2DH,地址线A15,A14均为1,并且A13-A6上的逻辑值与模块的逻辑地址相等时,该器件被选通,接着其译码结果被送往下一级译码控制,通过对地址A01-A05进行译码选中模块在16位地址空间的操作寄存器。
组态寄存器的设置
ID寄存器
ID寄存器是读寄存器,用于回答本模块是寄存器基器件。其内容一般可由总线三态缓冲器读出。
型号寄存器
型号寄存器用于将本模块和其他模块区别。
状态寄存器
状态寄存器一般用5位,分别为CI(命令写入与否)、PASS(初始化或自检通过与否)、RDY(是否准备好)、DONE(命令是否执行完毕)、MODID*(模块是否被识别)。
以上只列出了三种比较基本的寄存器的使用情况,由于每个器件有64字节的标准组态/操作寄存器,其他寄存器的配置应根据需要进行安排。
DTB及DTB仲裁
DTB及DTB仲裁是VXI接口的核心, DTB主要包括:寻址总线、数据总线和控制总线。寻址线包括地址线A01~A31、数据选通线DS0*和DS1*、长字线LWORD* 、读写线WR* 和地址选通线AS*。存储器的最小寻址单位是字节,每一个字节都有唯一的二进制地址。VMEbus的数据宽度为32位,因此它可以一次进行传输4个字节单元中的部分或全部字节单元,主模块用A02-A31地址线来决定所传输的哪一个4字节组,另外用4根信号线DS0*、DS1*、A01和LWORD*决定每次数据传输中所选择的4字节组中的字节单元。字节定义及访问控制分别见表1和2。另外,数据传输总线DTB有6根地址修改线(AM0~AM5),主模块可用它向从模块传递附加的二进制信息。根据VXIbus规范,A16器件只对地址修改码29H、2DH进行响应,因此,AM2可以不参与译码。若只使用双字节访问中的字节(0-1),因此,DS0*=0、DS1*=0、A01=0和LWORD*=1。
读写控制
该部分电路负责控制VXI总线与模块间的数据传输方向(DIR)和VXI总线与模块之间是否选通(DBEN)。逻辑表达式如下:
DIR = VWRITE*;
DBEN =(!VDS0* II !VDS1*) && !CARDADDR
产生内部读写和选通信号
该部分电路用来实现DS0*、DS1*、AS*、WRITE*等信号的产生,这些信号不需要设计,直接利用背板提供的信号直接引入FPGA电路即可,但这些信号要根据实际进行组态。VXI总线数据传输应答信号(DTACK*)、锁存信号(LATCH*)、数据传输使能信号(DBEN*)依据实际要求进行设计,它们的时序比较复杂,因此一般采用AHDL描述语言设计,通过状态机实现。
中断控制与响应的处理
VXI的中断请求和响应的处理完成如下任务:
·使用7根中断请求线之一向监视中断请求线的中断处理器请求一个中断。
·监控地址总线的最低3位VA[3..1]、IACKIN*、IACK*,当IACKIN*传递到本模块时,比较VA[3..1]与自己使用的中断请求IRQN*来判断是否为所请求的中断。
·确认时,切断中断菊花链,并撤销中断请求,为中断器提供1~4字节的状态/识别消息;如果中断响应条件不满足,则驱动IACKOUT*为低电平,将中断应答菊花链信号传递到下一个插槽的相应模块,中断请求继续有效。
FPGA的设计
FPGA的设计一般采用比较流行的MAX+PLUS II软件,实现VXI总线接口电路,FPGA的设计流程包括以下几个部分:
·设计输入。逻辑设计的输入方法有图形输入、文本输入、波形输入和由第三方EDA工具生成的EDIF网表输入等。其中较常用的是图形输入和文本输入。图形输入使用软件系统提供的元器件库及各种符号和连线画出电原理图,形成原理图输入文件。文本输入是指以各种硬件描述语言为设计工具的设计方法。MAX+PLUS II软件包含集成的文本编辑程序和综合工具,可以使用VHDL(超高速集成电路硬件描述语言)、Verilog HDL、AHDL(Altera硬件描述语言)等硬件描述语言设计电路。
·编译。主要完成器件的选择及适配,逻辑的综合及器件的装入,延时信息的提取。
·仿真。是将编译产生的延时信息加入到设计中,进行布局布线后的仿真,与实际器件工作时的情况基本相同,可以检验电路的逻辑关系受布局布线的影响程度。
·时序分析。可以计算点到点的器件延时矩阵,确定器件引脚上的建立时间与保持时间要求,以及关键路径的传播延时。
·器件编程。用EPROM或编程电缆将经仿真验证的配置文件写入FPGA。
·在线校验。给系统加入实际激励,进行测试,以检查是否完成预定功能。
利用FPGA技术开发VXI接口电路时,要根据设计需要选择合适的开发系统。针对不同的VXI模块设计,选用相应容量和引脚数的FPGA芯片。在具体选择FPGA芯片型号时,应该考虑以下几个因素:芯片内部可用逻辑门数量、引脚对引脚(pin-to-pin)逻辑延迟时间、芯片的封装和引脚数等。在芯片的封装选择上,对于支持在线配置的芯片,可以选用表面贴装的,而对于只能用编程器配置的芯片,应尽量选用类似PLCC的封装,并考虑使用IC座。
结语
用可编程器件设计VXIbus模块的接口电路使设计大大简化了,缩短了开发周期,同时VXIbus模块的设计又有一定的规律可循,尤其是上文所提到的大部分内容在VXIbus模块设计中具有良好的通用性,设计者可以根据功能要求的不同设计不同的逻辑电路,而接口部分的设计,可依据上文进行开发。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』