>
首页 » 业界动态 » 多通道高速数据采集系统PCI接口的结构设计

多通道高速数据采集系统PCI接口的结构设计

作者:张蕴玉,宋宇明,胡修林,张华  时间:2007-04-09 09:07  来源:

摘要:构建了一个多通道高速数据采集系统的PCI接口通用结构模型。一方面将硬件特别是逻辑设计部分模块化,另一方面注意了驱动程序和硬件的配合,优化软件、硬件的结构设计。同时还给出了部分模块的实现方法,并结合微机系统原理就如何提高PCI总线接口的通道利用率和数据传输速率作了讨论,用实例验证了该模型的可行性及优越性。

关键词: PCI 接口;逻辑可编程器件;模块化;驱动程序

一个复杂系统往往需要进行多通道高速数据采集,如何将A/D后的大量数据实时传送给计算机进行后续的数字信号处理,一直是此类系统的技术瓶颈之一。在2×50MHz雷达回波采集系统中,设计了一个基于PCI总线的多通道高速数据传输接口,在一定程度上解决了该问题。在此用模块化结构模型阐述了该类接口的通用结构及实现方法,就如何提高PCI总线接口的通道利用率和数据传输速率作了一些讨论,并用实例验证了该模型的可行性及优越性。

PCI接口总体结构

一个完整的数据采集系统如图1所示。其中模拟及A/D电路将所有的模拟信号都转化为数字信号。用户外部总线则为前、后级构造一个承接模块,一方面接收前数字信号并进行必要的逻辑分析与变换;一方面建立适合PCI接口读写与控制的数据总线和控制总线。这两个部分都属于用户电路,不同的应用会出现不同的设计。将二者模块化分隔,可以简化和明晰各部分的功能,便于结构分析。


图1 基于PCI总线的数据采集系统结构

本研究通过对用户外部总线、PCI接口和驱动程序三部分的分析来论述多通道高速数据采集系统中PCI接口的结构设计。

硬件部分组成及功能

硬件总体模型
根据分析,设计了如图2的多通道高速数据采集系统的PCI接口硬件模型。


图2 PCI接口硬件模型

用户外部总线
用户外部总线完全根据用户部分的信号特点来设计,一般与PCI接口应有以下信号线:
A、触发信号(pulse,out),常作为数据帧同步信号,供PCI接口控制模块形成标志位或作为中断触发信号。
B、数据通道(dbus,out),提供信号A/D后到PCI接口的数据通道。为了提高总线的平均速率,往往在A/D之后设置高速缓存,缓存向PCI接口提供数据。多通道设计可分两种。a.PCI数据总线为32位或64位,而一般的单路采集通道的数据没这么宽,所以可将多个通道的数据位不重叠地分配到PCI总线上。各个通道的数据将被同时读入计算机,由软件按数据位区分通道。b.采用时分复用的方式共用PCI数据总线,各个通道的数据将在不同时段按顺序读入计算机。
C、读写时钟(rclk,in)、输出允许(-oe,in)和复位(-rs,in)信号,用于驱动程序对外部总线的读写与控制。

PCI接口控制
PCI接口控制是外部总线与PCI总线的通信接口,相当于一个双向翻译,完成PCI总线与外部总线间的通信。该部分有两种设计方案:一是全部用逻辑可编程器件完成,这需要将PCI总线规范(PCI2.1或PCI2.2)内核嵌入到逻辑器件中;二是PCI接口芯片与逻辑电路配合。相对而言,后者设计简单,开发周期短。常用的PCI接口芯片有5933(AMCC),9052,9054(PLX)等,功能一般包括:单次读写控制;猝发读写控制;DMA传送控制;消息传递控制;中断控制。逻辑电路现在多用可编程器件实现。

PCI接口逻辑设计(PCI接口控制模块中除PCI接口芯片外的部分)主要任务是:合理地将外部用户总线上的信号转换成对PCI接口芯片进行控制的信号(也即PCI芯片的ADD-ON接口信号);合理地将PCI接口芯片的各种命令转换成外部用户总线上相应的控制信号(rclk,-oe,-rs),从而形成一个双向的通信通道。与PCI接口芯片相接的部分,主要包含以下几个逻辑功能块:a、PCI接口芯片命令检测与控制模块,多用状态机的方式来实现逻辑设计。b、外部控制命令寄存器模块。因为PCI接口芯片是通用接口芯片与具体系统的控制要求有差异,所以往往需要扩展合适的用户命令寄存器(一般设计成I/O口),如DMA控制、触发请求控制、复位控制等命令的寄存器。c、地址控制模块。由于要对多通道端口、用户命令寄存器分别访问,地址分配是必然的。该部分的功能是地址锁存、地址译码等。

与用户外部总线相连的部分,主要包含以下几个功能模块:a、多通道控制。使多通道共用PCI芯片的ADD/ON总线。b、触发信号及标志位、校验位控制模块。其中触发信号的控制特别重要,它将用户外部总线上的触发信号转换成对PCI接口芯片进行操作的请求信号或转换成供驱动程序查询的标志位。前者通过对PCI接口芯片的信箱或门铃进行操作,使PCI接口芯片在PCI总线上产生中断请求;后者供驱动程序判断触发源,进行通道选择。在多通道采集系统中,常常将二者结合使用,实现中断共享等复用功能,这对于有多个独立的触发信号的多通道系统是非常重要的。c、通道读写控制。与地址控制模块在一起,将每个通道都作为一个I/O端口,涉及到的信号有:读时钟(rclk),输出使能(-oe),复位(-rs)等。

软件部分与实例流程

操作系统使用分层结构管理,计算机必须通过ring0层的驱动程序对底层硬件进行访问。驱动程序有VXD和WDM两种,由于驱动程序和硬件接口关系密切,二者的设计与调试往往是同步进行的,这是把驱动程序作为接口设计的部分原因。

以一个双路采集的实例来论述驱动程序和硬件电路的配合流程,从中也可以看出结构设计思路。外部缓存为CY4221(CYPRESS),PCI接口芯片为S5933(AMCC),逻辑电路用EPM7128(ALTERA)在线设计。

信号特点与需求分析
在该采集系统中,有两个通道a和b,其触发信号如图3所示,两者不相关,被采样的目标信号没有画出。触发信号相当于采样窗口,目标信号只在窗口内被高速采样,每个窗口对应50个采样点,每个采样点9bit。


图3 双通道触发信号

两路触发信号不相关,所以只能以分时复用的方式共用总线,空余的数据位可作校验位、标志位等。如图3所示,当通道a或通道b的触发信号到来时,目标信号被高速采样50点,数据保存在各自的FIFO中,同时通过PCI接口向计算机发送请求。驱动程序在响应请求后必须判断请求源,根据优先级从被选择的通道读取数据,可用循环I/O读方式,也可用DMA方式。

驱动程序与硬件电路的配合流程
根据触发信号的特点和数据采集的要求,设计出如图4所示的工作流程图,其中方框图表示软件部分,椭圆图表示硬件部分,它们都可以在图2的模型中找到对应的模块。


图4 系统工作流程图

性能测试与结论分析

PCI总线有效克服了传统总线进行高速数据传输时的瓶颈现象,实时和高速是基于PCI总线的数据采集系统的一项重要技术指标。

32bit/33MHzPCI总线的理论传输速度为132Mbit/s,但一个实用的采集系统需要许多控制与响应时间,如实例中的双路采集系统,时间开销包括:对触发信号的响应时间;中断程序执行时间;DMA数据传输时间;数据处理时间;线程切换时间等。数据传输时间仅占一部分,此间的传输速率为132Mbit/s。其他时间开销则与计算机性能、程序大小、软硬件设计有关,所以系统平均数据速率达不到理论值。

在测试中,成功实现了Ta=Tb=60μs、单路采样速率50MHz的双路数据采集,平均数据传输速率2×50×32bit/(60μs)=53Mbit/s。因为Ta太小,系统频繁中断,且每次响应所传送的数据较少(50×32bit),所以系统响应处理时间所占比例增加,数据传送时间所占比例减小,平均数据传输速率下降。在减小中断频率、增大每次数据传送量、减少数据处理任务的情况下,平均数据传输速率得到了很大提高,极限条件下可以接近理论值。

相关推荐

基于Linux激光雕刻系统步进电机驱动程序的设计

Linux  驱动程序  步进电机  2010-10-20

基于VxWorks的NAND FLASH驱动程序设计

NAND  FLASH  VxWorks  驱动程序  2010-04-30

基于eCos系统的SPCE3200中SD卡驱动程序的开发

eCos系统  SPCE3200  SD卡  驱动程序  2009-06-21

基于嵌入式Linux的矩阵键盘驱动程序研究与开发

Xilinx Virtex-5 ML555开发方案

Virtex-5  柱形架构  FPGA  PCI接口  ML555  2008-07-10

凌华科技推出24位高精度PCI接口数据采集卡PCI-9524针对称重传感器测量应用提供最佳自动化设备整合

在线研讨会
焦点