摘要:本文介绍了FIFO IDT72V2113的内部结构、主要功能及其使用方法,对多片IDT 72V2113的字长和 深度扩展做了详细的讨论,并结合TI公司的TMS320C6000系列数字信号处理器(DSP)说明了与
IDT 72V2113的连接方法,最后介绍了其在DSP高速数据采集系统中的实际应用。
关键词:FIFO; DSP; 高速数据采集
高速数据采集是目前数据采集的发展方向。随着微电子技术飞速发展,电子器件运行速度有了很大的提高,几十兆采样频率的AD逐渐得到广泛的应用。但是,数据传输和存储一直制约着数据采集系统向更高速度上的发展。因此,如何进行高速的数据传输和存储是大容量连续数据采集系统的技术关键。目前一般是从两个方面进行考虑:1
采用高速传输协议,例如PCI、USB2.0、1394等高速的数据传输协议,将采样数据传送到主机,然后进行后续处理;2 采用高速度、大容量的存储器件,如SDRAM、SBSRAM、FIFO等,将采样数据存储在采集板上直接进行处理。其中高速FIFO就是硬件上得到广泛使用的一种存储器件,本文详细介绍了美国IDT公司的IDT72V2113的内部结构、主要功能及其使用方法,并就如何实现多片72V2113的字长和深度扩展的软件和硬件连接给出详细的说明,最后讨论了FIFO和数字信号处理器(DSP)的连接原理与方法。
IDT72V2113功能介绍
IDT72V2113是由美国IDT公司生产的高速大容量先进先出存储器件( FIFO)。其最高工作频率为133MHz;容量为512K
字节,可以通过引脚方便的将容量设置成512K 9bit或者256K 18bit两种方式;IDT72V2113可以设置标准工作模式或者FWFT(Fist
Word Fall Through)工作模式,并提供全满、半满、全空、将满以及将空等五种标志信号。
图1 IDT72V2113的结构原理图(略)
IDT72V2113的内部结构如图1所示,主要由一个内部RAM阵列以及读写控制单元、读写指针单元、输入输出寄存器、标志信号以及复位单元组成。其内部RAM阵列采用先进先出设计技术,外部数据首先存到输入数据寄存器,再传送到RAM阵列,依次保存,数据的先后顺序通过修改写指针确认。RAM阵列始终检测输出数据寄存器的状态,一旦为空,RAM阵列的数据送到输出数据寄存器,外部设备可以直接从输出数据寄存器读出数据,数据的读顺序通过读指针来控制。通过设置输出使能引脚为高状态来禁止数据的输出,以减低芯片的功耗。为了方便数据的读写,IDT72V2113还增加了一些对数据读写的控制信号,包括读写使能、读写时钟以及字宽控制等。
IDT72V2113的字长和 字深扩展
大容量数据存储是高速数据采集系统迫切需要解决的问题,例如,一个20M采样速率、8位的ADC,在一秒钟的时间内所采集到的数据量是20M字节,虽然IDT72V2113的单片容量是512K
9 bit,可以很好的满足一般的数据采集系统的需要,但是,对于高速、无间隔的数据采集系统来说,一片的容量是不够的。IDT72V2113便于扩展的特性可以很容易地解决这个问题。其容量扩展可以分为字长扩展和深度扩展,且不需要外部控制电路,很方便电路设计及软件开发。
IDT72V2113的字长扩展
IDT72V2113的字长扩展比较简单,只要把各个芯片的控制信号连在一起就可以实现。这里需要注意的是 EF/IR和FF/OR两个引脚,在标准模式下这两个管脚的功能为EF和FF,把各个芯片这两个管脚分别相与;在FWFT模式下,这两个管脚功能为IR和OR,把各个芯片的这两个管脚分别相或,这样就可以确保同步读写每一个IDT72V213。
IDT72V2113的深度扩展
IDT72V2113的深度扩展方式仅适用于FWFT工作模式。两片IDT72V2113的字深扩展的硬件连接如图2所示。其中,传输时钟可以选择写时钟和读时钟中频率高的那个时钟信号。工作原理为:当有数据写入第一片FIFO中后,其输出允许信号(OR)低有效,从而使第二片FIFO的写使能信号有效;同时,只要第二片FIFO中仍有空间,它的输入允许信号(IR)有效(低有效),从而使第一片FIFO的读使能信号(REN)有效,这样,在传输时钟的驱动下,数据由第一片FIFO向第二片FIFO传送,直到第二片FIFO写满为止,以后的数据将储存在第一片FIFO中。通过深度扩展,两片IDT72V2113可形成容量为1M
9 bit的数据缓冲。
IDT72V2113的容量扩展实例
IDT72V2113不仅可以通过字长扩展和深度扩展来实现容量扩展,而且可以将两者结合起来,进行更大容量的扩展,如用四片IDT72V2113扩展成容量为1M
18 bit的数据缓冲,连接图如图3所示。
图2 IDT72V2113的深度扩展(略)
图3 扩展实例(略)
IDT72V2113与DSP---TMS320C62 03B的连接
随着集成电路设计和制造工艺的飞速发展,数字信号处理器芯片(DSP)的速度越来越快,从几十兆赫兹发展到现在的几百兆赫兹,甚至千兆赫兹,处理能力也达到了几千个MIPS。但是,与数字信号处理器(DSP)连接的外部设备是多种多样的,例如从几百兆赫兹的高速ADC到只有几百千赫兹的ADC。因此,在数字信号处理器(DSP)和外部设备之间使用FIFO,可以充分利用高速数字信号处理器(DSP)的计算能力以及方便与外部设备的连接。
TMS320C6203B
TMS320C6203B是TI公司高性能数字信号处理器TMS320C6000系列的一种,采用修正的哈佛总线结构,共有一套256位的程序总线、两套32位的程序总线和一套32位的DMA专用总线;内部有8个功能单元可以并行操作,工作频率最大为300M,最大处理能力为2400MIPS;内部集成了丰富的外围设备接口,如外部存储器接口(EMIF)、外部扩展总线(XB)、多通道缓冲串口(McBSPS
)和主机接口(HPI),与外部存储器、协处理器、主机以及串行设备的连接非常方便。下面主要介绍与IDT72V2113连接时要用到的部分。
TMS320C6203B的DMA控制器有以下特点:共有4个通道,32位寻址能力,可以对存储器映射空间的任何一个区域进行访问;传送数据支持8位、16位和32位字长;灵活的地址产生方式,支持多帧传输方式;每次传输完毕后,可以进行DMA通道的自动初始化;传输操作可以由选择的同步事件触发。DMA寄存器的设置包括以下几个寄存器:通道的主、副控制寄存器,通道的源地址、目的地址寄存器,通道传输计数寄存器,DMA全局地址寄存器,DMA全局索引寄存器,DMA全局计数重载寄存器。
TMS320C6203B的外部扩展总线(XB)宽度为32位,可以连接外部异步设备、异步或同步FIFO、PCI控制器和其他一些外部控制器。外部扩展总线由I/O总线和主机口接口组成。I/O总线有异步I/O工作模式和同步FIFO工作模式,其中同步FIFO模式与标准同步FIFO可以实现无缝连接,可以同时无缝实现四个FIFO写借口或者实现三个FIFO写接口及一个FIFO读接口。通过无缝连接实现FIFO读接口,FIFO必须连接到XCE3空间。
硬件连接图及工作原理
IDT72V2113与C6203B的连接是通过C6203B外部扩展总线(XB)的 XCE3空间,数据通过DMA方式从72V2113传送到C6203B的片内RAM中,具体连接如图4所示。图4中,四片72V2113经过字长和深度扩展形成2M字节的数据输入缓冲,输入数据总线(D0-D15)、输出数据总线(Q0-Q15)、读使能(REN
)、读时钟(RCLK)、写使能(WEN )、写时钟(WCLK )和将空标志信号(PAE )是由四片72V2113的相应信号组合形成的,详见图3;
XCE3 为外部扩展总线(XB)的空间选择信号, XFCLK为外部扩展总线(XB)的输出时钟, EXT_INT4是C6203B的外部中断信号4,
DX0用作通用输出口,控制72V2113的写使能信号。
图4 IDT72V2113与C6203B的连接(略)
工作原理为:上电后,C6203B进行初始化,外部扩展总线的 XCE3空间设置为同步FIFO读模式,DMA通道0配置为每次传输含1帧,每帧1024个半字,同步事件设置为外部中断4,触发极性为高电平;手动启动DMA通道0,设置DX0为低电平。随着数据不断写入72V2113,当72V2113中的数据量大于1023个字节时,72V2113的将空标志信号(PAE)由低电平变为高电平,使得C6203B的外部中断信号有效,从而触发DMA传输;C6203B的DMA通道0通过外部扩展总线读取1024个半字的数据,存储于内部RAM中,传输结束后向C6203B发送中断,通知C6203B处理数据;C6203B处理完数据后,重新启动DMA通道0,进行下一次DMA传输;如此循环,直到处理完所有数据。
部分程序代码如下:
xbus_init:
MVKL XBGC,B0; 初始化外部扩展总线全局控制寄存器MVKL XBGC,B0; 时钟输出使能,频率为CPU时钟的一半MVKL
7000h, A1MVKLH 0000h, A1STW A0,*B0
NOP 3
MVKL XCECTL3,B0; 初始化XCE3空间控制寄存器MVKH XCECTL3,B0; 选择接口类型为32位FIFOMVKL
0201h,A1; 设置读写时序的参数MVKLH 0201h,A1
STW A1,*B0NOP 3dma_0_init:
MVKL PRICLT0,B0; 初始化DMA通道0第一控制寄存器
MVKH PRICLT0,B0; 工作方式为帧同步,32位,
MVKL 0040h,A1; 源地址不变,目的地址自增
MVKLH 0E01h,A1; 同步事件为外部中断4
STW A1,*B0;DMA通道0停止
NOP 3
MVKL SECCTL0,B0; 初始化DMA通道0第二控制寄存器
MVKH SECCTL0,B0; 电平触发方式,高有效
MVKL 0A080h, A1
MVKLH 0008h,A1
STW A1,*B0
NOP 3
MVKL SRC0,B0; 初始化源地址寄存器
MVKH SRC0,B0
MVKL 0000h,A0
MVKLH 7000h,A0
STW A0,*B0
NOP 3
MVKL DST0,B0; 初始化目 的地址寄存器MVKH DST0,B0MVKL 1000h,A0MVKLH 8000h,A0STW
A0,*B0NOP 3 MVKL XFRCNT0 ,B0; 初始化传输计数寄存器MVKH XFRCNT0 ,B0; 设置成1帧,每帧1024个数据MVKL
00400h,A1MVKLH 0000h,A1STW A1,*B0 NOP 3 dma_0_start:
MVKL PRICLT0,B0; 手动启动DMA通道0 MVKH PRICLT0,B0MVKL 0041h,A1MVKLH 0E01h,A1STW
A1,*B0NOP 3
应用实例
下面介绍IDT72V2113在一个基于DSP的高速数据采集系统中的应用。整个高速数据采集系统的硬件构成为:高速ADC、高速大容量数据缓冲、DSP和微机接口。高速AD采用TI
的ADS5422,14位采样,最高采样频率为60M;DSP采用TI的高性能C6000定点DSP-TMS320C6203B;上位机接口采用USB2.0,理论最大数据传输速率为480Mbps。这个高速数据采集系统要求ADC在一秒钟时间内连续采样22ms,ADC工作在40M采样频率,这样,一秒内的数据量将近2M
字节。由于TMS320C6203B强大的处理能力,在978ms时间内可以处理完2M 字节的数据,因此,如何存储2M 字节的数据是设计这个数据采集系统的关键。可以考虑的方案有:1、采用DSP外扩数据存储器
,这种方案不可行,因为ADC两次采样之间的间隔为1/40M = 25 ns,而DSP的指令周期最小为3.3 ns,要在25 ns时间内完成一次读操作、一次写操作和外部中断响应,软硬件实现都比较困难,可靠性也不高;
2、采用FPGA+SDRAM方案,用FPGA实现一个SDRAM控制器,控制SDRAM的读写,直接将采样数据写入SDRAM中,但是SDRAM控制器实现比较困难;3大容量输入数据缓冲,利用本文介绍的方法,用四片IDT72V2113进行容量扩展,形成2M字节的数据缓冲,在没有增加系统复杂性前提下,很好地解决了大数据量存贮的问题。
总结
本文详细介绍了IDT公司的大容量FIFO IDT72V2113的结构及使用方法,并结合具体应用,利用它的多片扩展能力,将其应用于基于TMS320C6203B和ADS5422的
DSP高速数据采集系统,实现了高速数据采集中的大数据量存储。经实际验证,系统运行可靠,是一种有效的大数据量存贮解决方案。
|