PCI总线接口技术及其在高速数据采集系统中的应用
2006-05-07 来源:电子技术应用
摘要:一种基于PCI总线的高速数据采集传输系统的实现,讨论了PCI总线控制器9054的性能及三种传输模式,提供了该系统的硬件实现和采用DMA传输方式实现数据传输的设计。
关键词:PCI总线 PCI 9054总线控制器 DMA
数据采集是数字信号处理中非常重要的环节。对于不同的任务,数据采集要达到的技术指标也不相同。对于瞬态信号,雷达信号和图像处理都需要几MB/s甚至几十MB/s的超高速采集速率。目前用于PC机的数据采集卡大部分是基于ISA总线的,这种结构的最大缺点是传输速率太低,不能实现数据的实现高速传输。PCI总线推出后,以其突出的性能备受计算机和通信业界的青睐,将取代以往的总线, 成为高档机及高性能工作站外部件的基石。PCI作为局部总线,一边与处理器和存储器总线接口;另一边为外设扩展提供了高速通道。33MHz、32位的PCI总线可以实现132MB/s的数据传输速率;64位的PCI总线性能加倍。开发以PCI总线为基础的数据采集设备是技术发展的必然要求。在实际工作中,利用PCI总线将采集数据直接传到系统内存,可有效解决数据的实时传输和存储,为信号的实时处理提供方便。
1 数据采集系统的结构与功能
本数据采集系统应用于雷达视频回波信号的处理。信号由两路正交视频回波信号组成,故采用双通道。采集指标:2路采集信号,采样率为40M个样本,A/D采样字长是10位。每路数字信号字长取16位,两路合成路共32位,将32位数据分别传入系统内存的不同区域,以便后续处理。系统设计以PCI总线控制器为基础,通过DMA方式分别将32位数据传输系统内存的不同区域。主要功能模块有:PCI总线控制器、双口SRAM、采集控制芯片EPLD、A/D部分。系统框图如图1所示。
2 PCI总线控制器的实现
PCI总线是一个地址/数据、命令/字节选择信号复用的总线。它采用主从信号双向握手的方式来控制数据的传输,其接口电路设计与传统总线接口电路设计没有大的区别。一般来说,一个PCI接口电路应当完成以下几种功能:(1)地址译码及命令译码,由于PCI总线可以采用正向方式和负向方式进行译码。因此用户应视应用情况选择适当的译码方式。一般选择正向译码;为保证不会出现地址冲突,最好采用全地址译码;命令信号线C/BE[0~3]必须能加译码。(2)地址产生电路。PCI的突发传输方式包括一个地址周期和若干个数据周期,因此在PCI接口电路中必须包含高速的地址产生部件,用于向后级应用电路提供连接的地址。(3)控制信号的产生。PCI总线上的数据传输基本上由FRAME、IRDY、TRDY和DEBVSEL 4根信号线控制,因此必须根据主从设备的忙闲情况相应产生这些控制信号。另外,PCI接口电路还应完成地址锁存及数据分离、命令锁存及字节选择信号分离的功能。值得注意的是:在设计这个功能时必须考虑到PCI规范中信号的负载能力。实现PCI总线控制器大体有两种方式:使用可编程器件和专用接口芯片。采用EPLD和FPGA等编程逻辑器件的优点在于其灵活的可编程性。专用芯片可以实现完整的PCI主控模块和目标模块接口功能,将复杂的PCI总线接口转换为相对简单的接口。用户可以集中精力于应用设计,而不是调试PCI总线的接口,明显缩短了开发时间。本设计应用PLX公司的PCI9054实现总线控制器。
3 PCI 9054简介
PCI 9054是32位/33MHz的通用PCI总线控制器专用芯片。该芯片符合PCI总线规范2.2版,突发传输速率达到132MB/s。局部总线支持复用/非复用的32位地址/数据,可为M模式、C模式、J模式中的一种。PCI
9054内部有6种可编程的FIFO,以实现零等待突发传输及局部总线和PCI总线之间的异步操作。9054支持主模式、从模式、DMA传输方式,可用于适配卡和嵌入式系统。PCI
9054的结构框图如图2所示。
主模式操作就是允许本地的CPU访问PCI总线上的内存和I/O接口。模式选择必须在PCI命令寄存器中使能给出,如PCI主设备存储器和I/O范围寄存器、PCI基址寄存器、主设备配置和命令寄存器等。主模式操作包括PCI主设备存储器和I/O译码、PCI主设备存储器和I/O配置访问、PCI双地址周期访问、PCI主设备存储器写并无效等操作。
*从模式操作
从模式就是允许PCI总线上的主控设备访问局部总线上的PCI 9054的配置寄存器或内存,支持突发和单周期动模式传输。PCI 9054通过16字长的PCI从设备读FIFO和32字长的PCI从设备写FIFO来支持从PCI总线到局部总线上的突发或单周期的存储器映射访问和I/O映射访问。PCI基址寄存器用来设定PCI存储器和I/O空间的地址。从模式操作包括延时读操作、提前读操作等。
*DMA操作
PCI 9054有一个强大的双通道分散/收集DMA控制器,支持PCI主机和适配器内存的高铲公安厅发传输。两个独立的DMA通道能从局部总线到PCI总线和从PCI总线到局部总线传输数据。每个通道包括一个DMA控制器和一个专用双向FIFO。两个通道都支持块传输、分散/收集传输、应用或者不用EOT传输等。模式选择必须在PCI
9054成为一个PCI总线主设备之间主设备使能位(PCICR[2])使能。另外,两个DMA通道都能编程实现8、16或32bit局部总线带宽;使能/使无效内部等待周期;使能/使无效局部总线突发传输;执行PCI存储器写并无效操作;设置PCI中断(INTA)或者是本地中断(LINT)等。图3和图4分别描述了从PCI到局部总一和从局总总线到PCI总线的DMA数据传输操作逻辑。
4 采样控制和驱动程序设计
基于开发周期和成本考虑,本设计采用DMA传输模式。启动采样后,采和1KB×8的双口SRAM IDT7130作为数据采集前端与PCI总线的数据缓冲,PCI 9054作为主控设备,利用其DMA通道进行数据传输。当双口SRAM采满1KB数据之后,通过EPLD(EPM7128)产生局部总线中断,PCI9054获得局部总线的控制权后,根据DMA的起始位将1KB的数据读到DMA传输的专用FIFO中,PCI 9054申请占用PCI总线,获得PCI总线的控制权后,将数据写入PCI总线存储空间,从而实现一次采样和传输。
可编程逻辑器件(EPLD)用以实现PCI 9054与双口SRAM的I/O逻辑、传输控制逻辑、中断逻辑以及主机对数据采集通道的前端控制。
PCI数据采集卡另一关键问题是驱动程序的开发。设备驱动程序提供链接到PCI板卡的软件接口,文件扩展名为.SYS的动态链接库。在Windows98和Windows2000中,设备驱动程序必须根据Windows驱动程序模型(WDM)设计。设备驱动程序的关键是如何完成硬件操作,基本功能是完成设备的初始化、对端口的读写操作、中断的设备和响应及中断的调用,以及对内存的直接读写。本设计应用KRF-Tech公司的Windriver来编写设备驱动程序,Windriver针对PLX和AMCC的专用接口芯片编写了API函数包,降低了开发难度。
PCI 9054以其强大的功能和简单的用户接口,为PCI总线接口的开发提供了一种简法的方法。设计者只需设计局部总线接口控制电路,即可实现与PCI总线的高速数据传。在高速数据采集系统中,利用PCI总线的高速特性实时传输和存储采集数据,有效地解决了数据传输和处理的实时性。随着PCI总线的普及应用,基于PCI总线的采集系统设计有十分广阔的前景。
- 祛魅固态电池:一文看懂这项大火的技术