数据传输是数字信号处理过程中的重要一环,其效率影响整个数据处理系统的性能。数据传输往往采用行业中标准化的总线技术,使数字系统的设计可靠、方便、易于升级。PCI作为一种成熟的总线标准,应用于许多系统的数据传输过程。针对工业环境建立的CompactPCI标准结合了PCI的电气特性与优良的机械特性,在工业领域的应用更为广泛。在设计基于PCI或CompactPCI总线的数字设备时,采用各公司提供的通用PCI I/O芯片或IP核,可简化复杂的PCI接口设计,加快产品的研发和升级。PCI 9656是PLX公司为高速PCI(CompactPCI)总线应用而设计的通用I/O芯片,适用于66MHz、64bit的PCI(CompactPCI)总线,提供了528MB/s(PCI总线)和264MB/s(局部总线)的突发传输速度,能够满足大多高速数字系统的性能要求。
1 PCI 9656功能简述
PCI 9656支持66MHz、64bit的PCI R2.2规范,提供了兼容PICMG 2.1 R2.0规范的CompactPCI Hot Swap接口,其局部总线达到66MHz、32bit(支持0~66MHz、8/16bit),可为PCI(CompactPCI)适配器及嵌入式系统设计提供高性能的总线接口。PCI 9656的配置寄存器与PCI 9054、PCI9056兼容,也方便了原有设计的移植。
PCI 9656具有6条独立的数据通道,用于Direct Master、Direct Slave以及DMA功能模式下的数据传输,其深FIFO设计有效提升了总线的突发传输性能。
1 Direct Master模式。用于局部总线到PCI(CompactPCI)的数据传输,16 QWords(128byte)和32 QWords(256byte)的FIFO各应用于数据的读、写通道。
2 Direct Slave模式。用于PCI(CompactPCI)到局部总线的数据传输,16 QWords(128byte)和32 QWords(256byte)的FIFO各应用于数据的读、写通道。
3 DMA模式。PCI 9656提供了两条DMA通道(Channel 0、Channel 1),使用了两独立的32 QWords(256byte)双向FIFO。两条DMA通道可同时传输数据,通过PCI 9656的MARBR寄存器可配置其优先级关系。PCI 9656的DMA方式有常规的块模式(Block mode)和集散模式(Scatter/Gather mode),而且支持以DREQ#、DASK#信号请求、应答的命令模式(Demand mode),可应用于通信领域中的实时数据传输。
在局部总线端,PCI 9656简化了数据的传输控制逻辑,与ISA总线类似,方便了传输控制的设计实现。PCI 9656的局部总线有三种应用模式,可以适用不同的嵌入式处理器。
1 M模式。支持Motorola 32bit的处理器,提供了可与MPC850、MPC860 PowerQCICC 直接相连的接口。
2 C模式。适合大多数处理器的通用模式,在设计中多采用此模式。
3 J模式。与C模式类似,但其地址线与数据线复用。
2数据接收卡设计
PCI 9656片内资源丰富,功能多样,采用PCI 9656为接口芯片,可方便地进行PCI(Compact)适配器的设计。而在PCI 9656的局部总线端,往往不需要实现其全部逻辑功能,可依据需要选取配置,更进一步简化设计。
图1是应用PCI 9656的CompactPCI数据记录卡的设计框图,此数据接收卡应用于一款合成孔径雷达的数据记录器中,数据源为34bit的差分信号,32bit数据,1bit采样时钟,1bit数据有效标志位。图1中:时钟驱动ICS553向PCI 9656、逻辑控制模块和FIFO提供同步时钟信号;初始化配置芯片采用Microchip 93LC56B,PCI 9000系列提供3线的E2PROM串行接口,可在系统上电时初始化内部配置寄存器;差分到单端信号的转换经由Ti公司的LVDT386和390完成;FIFO采用了IDT公司所设计的高速、低功耗的72T36135M,数据容量为512K×36bit,使用易于级联的First Word Follow Through工作模式;逻辑控制部分采用Altera的MAXII EPM1270,实现FIFO到PCI 9656局部总线间的数据传输控制。
2.1 PCI9656的设计应用
在CompactPCI端,PCI 9656提供了66MHz、64bit总线应用所需信号,可依据CompactPCI规范连接,通过简单的外部电路,可实现Hot Swap功能。
在局部总线端,采用了PCI 9656的C模式。在C模式下,PCI 9656的局部总线可配置实现三种数据传输逻辑。(1)Single cycle mode。每次传输1个数据(8/16/32bit),默认的传输模式。(2)Burst-4 mode。每次4个数据,应用Intel i960与IBM PPC401处理器时的推荐模式。(3)Continuous burst mode。多数据的连续突发传输模式,提供了最大的数据吞吐量。在传输过程中,从设备(Slave)可通过Bterm#信号停止传输过程。模式2与模式3只选其一,模式1始终可用。在数据接收卡中,采用了连续突发(Continuous burst)模式,可以有效的利用局部总线带宽。
分析接收卡的设计:局部总线端无处理器,PCI 9656在此端为主设备(Master),始终占用总线,负责逻辑控制的CPLD为从设备(Slave),始终响应PCI 9656。数据传输过程只利用了PCI 9656的Direct Slave和DMA模式,,而且不需DMA的命令模式,运行过程中数据通过FIFO单向传输,不需解码地址信号,对CPLD的控制可通过向其写命令码完成。因此,可以对PCI 9656的许多信号简化处理,只需实现如下信号的时序要求:
LD[31:0],32bits数据信号。
ADS#,总线操作的开始标志。
Blast#,突发传输的结束标志。
LW/R#,写/读信号。
Wait#,主设备暂停传输信号,信号无效标志主设备正常。
Ready#,从设备操作完成信号,信号有效标志从设备正常。
EOT#,数据传输异常中止信号,用于FIFO溢出或空时中断数据传输。
Lint#,中断信号输入,用于引起CompactPCI总线端的中断。
LRST#,局部总线端重置。
信号经简化后,在正常的读写操作中,只需要处理ADS#、Blast#、LW/R#、Wait#、Ready#与数据的逻辑关系,Single cycle可认为是Continuous burst的特例,从而将两种模式下的逻辑时序统一处理。正常操作中,ADS#、Blast#、Wait#、Ready#需满足的逻辑关系如图2所示:
图2中,ADS#、Blast#、Wait#信号由PCI 9656驱动,LW/R#(图2中未标出)也由PCI 9656驱动,在整个过程中处于低或高,标志PCI 9656对总线的读或写操作。Ready#由CPLD驱动,Data为双向信号。CPLD空闲状态时监测ADS#信号,一旦ADS#有效,则根据LW/R#转入读或写操作。读操作中,CPLD将FIFO数据读出,同时将Ready#置为有效状态,需监测Wait#,Wait#无效时,才可继续读取下一数据;写操作中,CPLD需将Ready#置为有效状态,监测Wait#,Wait#无效时,CPLD才可完成总线上数据的写入;当CPLD检测到Blast#、Wait# 、Ready#均为有效状态时,便完成最后一个数据的传输操作,转至空闲状态。
实现上述的数据传输逻辑,再加上适当的异常情况和测试转换控制,便可设计CPLD的逻辑控制模块。
2.2 MAXII EPM1270应用
MAXII系列是Altera公司的新型架构CPLD,与传统架构的CPLD相比,MAXII的功耗和成本大幅降低,资源密度和性能却显著提升,非常适用于接口间的控制协议转换。设计中采用了MAXII的EPM1270型号CPLD,其设计结构如图3所示。
MAXII EPM1270内部主要分为逻辑控制、测试、FIFO三个模块:
1 FIFO采用Altera提供的IP核实现,容量可根据资源利用情况调节,使用FWFT(First Word Follow Through)模式,为CPLD提供与外部FIFO简便的接口。
2 测试模块产生测试数据,控制数据通道在真实数据源与测试数据源间切换,在测试接收卡时使用。
3 逻辑控制模块内有异常和测试控制、状态转换控制两部分,通过一个8bit寄存器进行通信。(1)寄存器控制CPLD的测试模块、状态选择,同时记录FIFO的状态变化。(2)异常和测试控制部分依据状态寄存器内容控制测试模块,监测FIFO的溢出、半满、空等状态,产生Lint#信号或通过控制寄存器传递到状态转换控制部分,使之有效EOT#,中断数据传输。(3)状态转换控制部分执行局部总线的数据读写逻辑,建立了四个状态:S0,空闲状态;S1,数据读状态;S2,寄存器读状态;S3,命令写状态。S0状态下根据LW/R#信号和寄存器内容确定向S1、S2、S3状态的转换。S1状态下读取FIFO数据,根据FIFO状态产生异常中止信号EOT#。S2状态下读取8bit寄存器内容。S3状态下向8bit寄存器写入命令码来改写和重置其相关比特位,从而控制CPLD的测试模块,切换S1、S2状态,清空FIFO。
通过上述设计模块,MAXII CPLD便可在PCI 9656与IDT 72T36135M之间建立一个简捷的数据传输通道。
3结束语
PCI 9656采用了PLX公司业界领先的数据通道架构技术,其丰富的功能为高速的PCI(CompactPCI)总线应用提供了简捷的I/O设计途径。文章介绍了采用PCI 9656作为PCI I/O设计的一款应用于66Mhz、64bit CompactPCI总线系统的数据接收卡。