一种VME桥接芯片VIC068A/VIC64

时间:2023-06-19

  1前言

    用户经常会遇到如何将DSP与标准总线联系起来的问题,并需要开发与标准总线的应用模板。在工控机的机箱里使用背板总线,现在一般都是基于VME或CPCI的应用开发。由于其众多的功能、强大的兼容性、并行性和高可靠性,VME总线一直应用于多种DSP系统中。虽然现在PCI总线及其扩展规范CPCI总线逐渐被设计者接受,但相对于PCI(CPCI)总线,VMEbus一直居主导地位,更是由于其PCI总线所不能及的特点,如VME总线系统具有良好的可扩展性,在1个VME系统机箱内可以容纳多达21块应用模板。所以对于设计多DSP板时,VME总线也是挺好的选择。

    作为用户开发基于VMEbus的应用模块来说,必须根据特定的要求考虑如何与VMEbus接口的问题。一般来说,用户可以采用公司的现成IC,它们的功能比较全面。国外两个主要的提供VMEbus到计算机界面的芯片厂商是Cypress和TundraSemiconductor。Cypress公司的VIC068A是较早推出的VME总线桥控制器,功能全面,具有完全的主模块/从模块功能,也可以当作系统控制器。VIC64与VIC068A功能与引脚都兼容,只是增加了对VME64规范的支持。另外,由于VIC068A系列接口芯片的局部总线是为Motorola公司的68K系列微处理器设计的,对于与68K处理器总线不兼容的其它类型处理器来说,使用VIC068A需要完成与该类型处理器总线的接口转换。Tundra公司的UniverseSCV64是1个通用的单芯片的总线桥控制芯片,可以与多种局部处理器类型使用,但是也要外部逻辑完成与局部总线接口之间转换。


  2 VIC068A的原理和引脚排列

    VIC068A具有全面的接口功能,即能进行A32、A24、D32、D16、D8主模块和从模块标准传输和块传输,有5种总线释放模式,支持写自检过程、自定义的AM码以及自定义的总线定时等其它功能。它的块传输操作可以在借助适当的外部电路情况下,实现长度大于256字节的块传输,同时具有双通道特性。VIC068A在上电的时候如果检测到SCON引脚为低有效时,就会被选择充当系统控制器,完成总线仲裁、总线定时、中断和中断管理、IACK菊花链驱动、SYSCLK驱动等功能,如果想使能/关闭系统控制器功能,是用大于4.7kΩ的上拉/下拉电阻器

    VIC068A的复位方式有:(1)内部复位,这是通常的复位,对选择的寄存器和内部逻辑复位;(2)系统复位,是通过VME背板复位,VIC068A可以通过写配置寄存器产生1个SYSRESET信号;(3)全局复位,复位所有的配置寄存器,常被用作上电复位。

    给出VIC068A的引脚排列。

    下面是与VIC068A数据传输关系比较密切的信号引脚的介绍。

    MWB,CS:MWB为局部功能模块如DSP发出的需要VMEbus请求。CS为局部总线写VIC068A内部寄存器的片选。设计者可以利用不同的地址译码来选择MWB和CS,以区分此次操作时对VME总线操作还是对VIC068A操作。

    LBR,LBG:是局部总线请求和允许信号。

    PAS,DS,R/W:PAS是局部总线地址选通,DS是局部数据选通,R/W是局部数据方向指示。

    DSACK1,0:局部数据位宽确认信号。与VMEbus的DS有些类似,VIC068A在从模块传输,从块传输或DMA传输时接受DSACK之一输入,确认此周期结束,在主模块操作时输出此信号向局部总线确认VMEbusmastertransfer结束。并且这个信号还和WORD,SIZ1,0信号一起用来指示此次数据的位宽。

    一组缓冲器控制信号。LADI,LAEN,LADO,ABEN为输入局部地址锁存、使能和输出VMEbus地址锁存、使能。LEDI,DENIN,LEDO,DENO分别为输入的VMEbus数据锁存、使能和输出的VMEbus锁存、使能。对于简单应用(如只是单周期传输),图2给出外部锁存/缓冲器与VIC068A之间的典型连接。

    其它的引脚功能如LBERR,FC2,FC1,BLT,DEDLK等可以查看Cypress手册,更具体的资料可以与作者联系。

  3 VIC068A的主模块和从模块操作

  3.1主模块标准传输操作

    当局部总线(局部主处理器)使得MWB低有效时,紧接着PAS也有效时就发出单个数据或块传输请求;VIC068A收到这两个信号有效后,如果VIC068A不是当前VMEbusmaster,就申请VMEbus访问,当满足AS自上1个周期后无效、DTACK和BERR无效、BGiIN收到为低、合适的延时过后,就得到开始数据传输的控制权。

    首先VIC068A驱动D[7..0]缓冲到VMEbus,并使DENO有效,来使剩下的数据线缓冲有效;与此同时,VIC068A也使能A[7..0]和ABEN,驱动剩下的VMEbus地址线。VIC068A也驱动总线控制信号线如AM,WRITE,LWORD,这时VIC068A确保内部的地址建立时间过去后,使AS有效,此后VIC068A锁存局部总线数据LA[7..0]以及使LADO有效,锁存LA[31..8]。在AS启动有效后,VIC068A启动1个DSi的内部时延,在这个时间里,主处理器应该将要送的数据放到局部总线上,同时VIC068A会驱动缓冲数据控制线LEDO,来锁存数据到VMEbus上。在这个时间过去以后,便根据传输数据的大小和排列驱动合适的DSi(i=0,1)有效。直到收到另1块模板上的从模块驱动DTACK或BERR有效后,VIC068A便根据数据位宽大小向局部总线驱动DSACKi,即如果WORD信号输入为无效(高),VIC068A便认为这是个D32的数据传输,就使DSACK0,DSACK1同时有效(低),否则若WORD有效,就认可这是个D16的操作,只驱动DSACK1为低,这与Motorola68K动态总线字长的能力是兼容的。

   3.2从模块标准传输操作

    与从模块操作和配置有关的VIC068A寄存器有:SS0CR0(bit0-5)、SS0CR1、SS1CR0、SS1CR1、LBTR、AMSR。信号SLSEL1和SLSEL0是由片外的VMEbus地址译码电路输出的,当VIC068A检测到在1个SLSELi为低的有效电平时,而且AS有效(另一个主模块发出),当前周期的Dsi有效,DTACK或BERR撤走,VIC068A就检查A32/A24/A16和传输类型,如果SSiCR0被配置了,并且允许进行AMcodes指明的从模块访问,则开始从模块访问,立刻驱动LBR=0申请局部总线。若VIC068A的配置寄存器不允许特定的访问(由AMcodes指示),则忽略VMEbus的请求,不会产生LBR。

    VIC068A发出LBR后,等待局部总线确认,在收到LBG后,就等待3T+tpd的时间,然后使能局部总线驱动,再等待T+tpd就发出PAS。应该保证局部资源在3T+tpd的时间内释放总线,否则应由逻辑电路来增加延时。当VIC068A开始驱动局部总线时,同时也驱动FC2/1来提供当前局部总线周期的类型信息。FC2,FC1=00为从模块传输;01为局部DMA块传输;10为标准从模块访问。VIC068A在发出LAEN后,此时打开地址选通PAS,紧接着数据选通DS,一段延时后,LBR取消,如果收到LBG取消和DSACK有效(变低又变高)后,即完成该次从模块访问的读或写的局部总线周期。

  4 VIC068A的块传输操作

    VIC068A的主块传输有两种方式:MOVEM块传输和局部DMA块传输。MOVEM方式即局部处理器发动数据传输,占有局部总线控制权;在DMA方式下,VIC068A为局部总线控制者,并且使用DMA访问局部资源的数据。VMEbus的技术规范不允许在既不放弃总线又不切换AS的情况下,进行超过256字节的块传输,即每进行256字节的块传输后必须重新使AS有效,或者重新仲裁总线。VIC068A借助适当的外部逻辑,可以实现长度大于256字节的块传输;也可以在每256字节的界限后放弃总线,1个可编程的时间过后重新仲裁总线,每两个子块传输间隔的时间称为interleaveperiod(交叉周期),每个子块的长度为burstlength(突发长度)。VIC068A还支持双通道特性:即在每个交叉周期内可以执行单周期的VMEbus总线周期(包括slavecycles),不过需要借助适当的外部逻辑,实现两通道的地址通道。与主块传输相关的寄存器有(只支持到D32和D16):BTCR、BTDR、RCR、BTLRs、DMASR、DMASICR。

  4.1使用局部DMA的块传输

    首先对VIC068A的寄存器初始化:在BTLRs中设传输块的长度,在BTDR中禁止或使能自动地址跨界和双通道特性;在LBTR中设置局部总线定时(与PAS,DS定时有关);在BTCR中设置DMA使能,传输方向及交叉周期。此后的MWB有效被视为虚写周期,即开始块传输功能。

    局部处理器对VMEbus的虚写周期里,LA[31..0]上是块传输的目的地址,LD[31..0]上是数据块的源地址(板内地址),之后是VIC068A与局部总线间的DMA传送。虚写周期里,VIC068A将LA[7..0]锁存到片内地址计数器,并使能LADO将LA[+:8]锁存到VMEbus地址线上。同时VIC068A也将LD[7..0]锁存到片内局部地址计数器,驱动BLT,使LD[31..8]作为局部地址,这需要额外电路(见图3)。然后驱动DSACKi来结束局部总线周期,请求VMEbus,发出BRi=0后,收到BGiIN=0,再发出LBR申请局部总线。当获得了局部总线控制权后,VIC068A驱动局部DMA地址到地址总线上。局部DMA地址来自LD[31..8],外部电路可以利用BLT、LBG、PAS、LAEN和FCi来产生逻辑去驱动高位局部地址线,图3给出了一个参考电路。然后VIC068A通过驱动局部地址,以及局部数据选通来访问局部总线的数据,局部资源回复DSACKi来确认数据已经被读取或写毕。局部地址递增时,数据仍保持在总线上。与此同时VIC068A也驱动AS和切换DS来访问VMEbus。

 

    局部总线的256字节地址越界处理:在BTDR设置使能,BLT和FCi用来控制外部电路,在将要跨界的局部周期里,BLT将会来回切换一下,外部计数器应当在BLT的下降沿增加1。用来实现地址锁存和跨越的外部电路也能用在实现双通道特性时,在一个突发周期后锁存地址。需要注意的是,在局部处理器的程序中,BLT使能位(BTCR[6])应当尽可能快地在块传输开始后,将其清除标志,没必要在块传输结束后才清除。因为BTC[6]置位后,任何有效的MWB都会启动块传输,所以在VMEbus死锁时的局部处理器的重试动作会误触发新的块传输,有必要在DMA传输时禁止重试逻辑。

  4.2OVEM块传输

    首先初始化RCR设置突发长度,初始化BTCR设置块传输及使能位,就启动了传输周期。之后的任何MWB配合PAS的有效电平都会启动MOVENtransfer。当BTCR[5]清除后,或BERR为低,或者出现没有MWB的局部总线周期,都被视为MOVEM块传输终止。在这期间,地址都会直接送到VMEbus上,没有锁存,与正常的单字传送类似。VIC068A作为从模块进行块传输访问,可以在SSiCR0设置:

  (1)不支持块传输。

  (2)支持块传输,但在从模块资源一边,模仿单字节传输,即每次传输时都切换PAS和DSACKi。

  (3)以DMA类型的方式支持块传输,PAS和DSACKi在整个传输过程都维持有效不变。

    VIC068A包含1个与主块传输的地址计数器分开的地址计数器。这个计数器在块传输开始的时候,被VMEbus地址初始化并驱动局部总线,然后随着每次局部确认后地址递增1。根据VME规范,从块传输不需支持256地址越界,因为在每次AS的下降沿都可以重新锁存地址。

  5 VIC068A的中断处理能力

    VIC068A提供了全面的VMEbus中断和局部中断产生和管理的能力,此外,还有状态和错误中断发生的能力。中断模块(interrupter)负责产生VMEbus中断信号IRQ[7..0],寄存器VIRSR的设置来控制这些中断的产生和撤销,VIVBR17设定每1个中断的status/id码。局部处理器写相应寄存器来通知中断模块产生相应级别的中断。当掌管该中断的中断管理模块(handler)启动中断认可周期时,中断模块还负责将此中断的status/id码放在D[7..0]上。

  中断管理模块的功能有:

  (1)处理VMEbus中断;

  (2)处理来自局部资源的中断;

  (3)处理内部的错误/状态中断,其中包括:

——写过程错误,总线超时或传输失败时有BERR错误或LBERR错误时产生;

——SYSFAIL/ACFAIL的错误;

——仲裁错误;

——DMA完成中断。

    中断管理模块在VME中断请求线组IRQi内发现1个有效请求(低),就根据它的IPL级别驱动IPL2..0。每个中断均在VICRi屏蔽和使能,设置IPL级别。根据IPL2..0,如果局部处理器认可了1个局部中断,就驱动FCIACK信号。VIC068A发现FCIACK有效,抽取LA[2..0]上的被认可的局部中断的IPL值,如果匹配,就启动1个VMEbus中断认可周期,从中断模块获取该中断的status/id放到LD[7..0]上(也可设置不需要取status/id的中断周期)。局部处理器获取该值,进入中断服务程序,这样就完成了1次中断处理过程。对于局部中断请求和内部状态/错误中断的处理过程,除了VME中断认可周期外,基本差不多。如果有多个中断请求同时发生,则根据固定的优先顺序进行中断处理。

  6结束语

    VIC068A是个全面的总线界面控制器,采用有144引脚和160引脚TQFP,145引脚PGA等封装形式。Cypress还提供了成本相对低的VMEbus从接口控制器CY7C960/CY7C961,如果设计者只想能够接受VMEbus的访问,那么CY7C960/CY7C961也是个选择。由于VME的电气规范要求的信号线电流较大,还需要外围的逻辑电路和驱动电路配合工作(比如总线收发器,块传输还需外部逻辑,地址锁存和计数器),才能实现完整的控制器电路。Cypress专门提供的CY7C964就是与VIC068A/VIC64配合完成这样的功能,它是可以灵活配置的总线界面逻辑电路,包括了8位收发器,锁存器,计数器等,可以取代图2中锁存、缓冲器和外部逻辑PLD。但是也需要3片CY7C964和相应开发工具才能完成,用户可以对这两种方案比较选择。

上一篇:多相同步DC-DCPWM控制器LTC1629
下一篇:大容量串行E2PROM AT24C512及其应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料