摘 要:基于PCI总线的高速数据采集系统是近年来数据采集及其传输技术的一个发展方向。文中围绕PCI总线接口控制器PCI9054,给出系统硬件设计方案,并阐明各个模块的具体实现。设计出的采集卡具有体积小、速度快、支持突发性大数据量传输和抗干扰性强等特点,主要应用在图像数据采集领域。
?
关键词:数据采集;PCI9054;CPLD;DSP?
Design of a Multi-channel Data Acquisition System Based on PCI
?
LI Runqiu,HE Zhanzhuang?
(No.771 InstituteofChinaAerospace TimesElectronics Corp.,Xi′an,710065,China)
??
Abstract:In recent years,based on PCI bus high speed data collecting system is a developing direction of data gather and transmission technology.This paper encircle with PCI bus interface controller PCI9054,presents the hardware system design scheme,and respectively discusses the modules.The card which we designed have the characteristic of less capacity,high speed,back up the burst transmission of a great number of data,and have strong performance of anti jamming,the mostly application domain of this card is image manipulation.
?
Keywords:data acquisition;PCI9054;CPLD;DSP
1 引 言?
基于PCI总线的多通道数据采集卡的工作流程是:计算机应用程序根据命令通过驱动程序启动模数转换,模拟信号通过信号调理后进入A/D芯片,模数转换后的数据存入FIFO(先进先出)存储器缓存,在数据存储器中存满一帧时,硬件向主机发中断,主机响应中断后通过PCI9054芯片用DMA方式读出存放在数据存储器中的采样数据,然后进行后续处理(如计算、存储)并将结果显示于屏幕。
DSP实时处理模块是在逻辑控制模块的控制下与计算机通过LOCAL总线接口进行通讯,以便交换数据,执行命令。?
2 系统硬件设计?
数据采集系统硬件由两大部分组成:一是基于PCI总线的数据采集模块,二是基于DSP扩展实时处理模块。下面将分别叙述,系统总体硬件框图如图1所示。?
2.1 模拟通道及模数转换?
本设计的模拟通道只对模拟信号进行简单处理,使模拟信号符合A/D转换芯片的要求即可。针对该数据采集卡的应用领域信号具有信号相关性强的特点,应采用多通道的同步采样芯片,经过比较,选择了ADS8364。ADS8364是一款高速、低功耗,具有6通道同步采样转换,16位高速并行接口的高性能模数转换芯片。ADS8364的6个模拟输入分为3组(A,B和C),每个输入端都有一个ADC保持信号HOLDX#以用来保证几个通道能同时进行采样和转换。实际上,每片ADS8364由?3个?转换速率为250 ksps(当外部时钟为5 MHz)的ADC构成,每个ADC有2个模拟输入通道,每个通道都有采样保持器,3个ADC组成3对模拟输入端,可同时对其中的1~2对输入信号同时采样保持,然后逐个转换。由于6个通道可以同时采样,很适合用于需同时采集多种信号的场合。?
在设计的采集卡上,采用2片ADS8364,每片设计成6路单端输入,共12路模拟输入。用相同的外部时钟来控制转换,每片ADS8364输出16位数据,两片的输出拼接成32位数据,以提高PCI总线的传输效率。数据传输到计算机后,再进行分路处理。另外,在PCI总线传输速度允许范围内,还可以通过扩展接口进行扩展,以处理更多的模拟输入。?
2.2 数据缓存?
因为PCI总线接口数据传输效率非常高而A/D采集数据效率较低,所以为了实现数据的高速传输,采样后的数据必须经过缓存,再由PCI总线接口控制器读取,这样才能处理更多的模拟信号输入。缓存的设计方案一般有3种:共享RAM方式,双口RAM方式,FIFO缓存方式。第一种方式因为涉及到RAM的同时访问,逻辑比较复杂;第二种方式芯片价格昂贵;第三种既简单性价比又高。?
设计中FIFO采用TI公司生产的SN74V3690芯片是一款具有大深度、高速GMOS工艺的先进先出存储器,有读写控制和可变的总线匹配*36*18*9数据流。时钟频率最高可达166 MHz,6 ns读写周期,带有FIFO状态标志信号Empty,Full,Half-Full,可编程的标志信号Almost-Empty和Almost-Full。?
系统FIFO的输入输出均被配置为32位,在启动?A/D?采样后,由逻辑控制部分控制数据写入FIFO,当FIFO达到半满时,半满标志信号HF#翻转(1变成0),逻辑控制部分根据他向PCI接口控制器发出中断,通知计算机启动数据传输。?
2.3 PCI总线接口?
考虑到硬件的通用性、可升级性和可扩展性,主从处理器方式都可能被用到,所以选用了用主/从控制器PCI9054作为总线接口芯片。他符合PCI V2.2规范,主要特点为:?
(1) 提供了2个独立的可编程DMA控制器,每个通道均支持块和Scatter/Gather的DMA方式,DMA通道0支持请求DMA方式。?
(2) PCI和Local Bus的数据传送速率高达?132 MB/s?。?
(3) 本地总线速率高达50 MHz;支持复用/非复用的32位地址/数据;本地总线可为3种模式:M模式、C模式和J模式,可利用模式选择引脚加以选择。?
(4) 内部有6种可编程的FIFO,以实现零等待突发传输及本地总线和PCI总线之间的异步操作。?
(5) 提供了一个串行E?2PROM配置接口,容量2 kB。在配置存储器中存放了厂家标示、设备标示以及本地总线的基地址空间、I/O空间、中断控制信号等信息。?
选用的PCI 9054工作在C模式,为便于访问,配置PCI9054寄存器,将S2映射在20000000H单元,将S3映射在30000000H单元。将局部地址空间分成3部分,地址高4位为0000时为FIFO空间,用于DMA传输;为0010时为S2空间,用于FIFO控制为0011时为S3空间,用于A/D控制;其余空间保留。?
2.3.1 PCI9054与E?2PROM的接口设计?
PCI9054的串行E?2PROM配置接口包含以下3个信号:EECS片选;EESK串行数据时钟;EEDI/EEDO数据输入/输出。设计选用了PLX公司推荐兼容的串行?E?2PROM?芯片NM93CS56N芯片,他是National Semiconductor公司生产的低电压串行电可擦除存储器,采用CMOS工艺制成,容量为2 048位(128*16位),8引脚,支持三线制MicroWare串行总线的E?2PROM,其引脚如下:?
本文原文
CS:片选信号;?
SK:串行时钟输入信号,同时也是微处理器与?E?2PROM?之间通信的同步信号,数据在他的上升沿锁定有效;?
DI:数据输入;?
D数据输出。?
PCI9054与E?2PROM的接口设计如图2所示。?
2.3.2 PCI9054局部总线设计?
由于PCI9054与PCI总线之间实现了无缝连接,系统与计算机接口的大部分信号直接连接即可。PCI9054 Local总线部分信号时序比较复杂,因此用逻辑控制部分来实现PCI9054 Local端的控制。将PCI9054局部数据总线高5位数据线接到CPLD引脚上,这5根数据线可以接收和发送数据,根据接收到的数据对其译码产生控制信息,还可以发出数据使PCI9054产生门铃中断和MailBox中断。PCI总线框图如图3所示。?
PCI9054局部总线支持50 MHz时钟,为配合A/D工作,选用40 MHz时钟。PCI9054的所有地址线和控制信号都只逻辑控制部分连接,产生逻辑控制的工作状态和各种控制信息。?
2.4 实时处理模块?
在数字信号处理领域,很多情况下,模拟输入数字化后需要进行实时处理,同时需要计算机的参与(参数控制、数据传输等)。这就需要实时性很强的DSP参与处理,这里选用TMS320C5416作为DSP处理芯片,他具有一般DSP的特点,这里不在赘述。?至于DSP与PCI9054间的接口,考虑到充分发挥他们的高速优势,采用FIFO缓冲器在二者之间交换数据,而控制逻辑由CPLD完成,如图4所示。?
2.5 CPLD逻辑控制?
系统采用ALTERA公司MAX7000A系列的EPM7256A芯片,他的配置程序固化在芯片内的?E?2PROM?中,所以该器件不需要专用的配置存储器,所有MAX7000A系列产品都由ALTERA公司提供的编程硬件和软件进行编程。
利用EPM7256A内部逻辑单元设计实现局部总线控制器,用于实现局部总线的状态控制,同时利用其内部逻辑编程形成存储阵列构成SRAM,存放发往各端口的操作指令。?
2.5.1 状态机设计?
在PCI目标和DMA传输模式下,PCI9054是局部总线的主设备,通过设置PCI9054内部配置寄存器可以使能或禁止外部等待输入控制信号READY#,以使PCI9054工作于内部等待或外部等待状态。若READY#信号被禁止,则在每次传输的地址和数据间插入等待状态,其数目由内部等待状态计数器决定。若READY#信号使能,则READY#信号的持续时钟周期数目决定了PCI9054所附加的等待状态。系统采用外部READY#信号,以决定等待状态。图5为局部总线状态机转换图。?
从状态图可以看出,该状态机有3种传输状态,空闲状态、等待状态和传输状态。状态机能成功与PCI9054配合完成数据传输,传输性能稳定,效果较好,是现在PCI9054局部总线状态机设计的一般方法。通过实际测试,在用户模式下,查询方式DMA传输速度可以稳定达到68 MB/s。?
2.5.2 改进的状态机设计?
PCI总线峰值速率为132 MB/s,在上述状态机和传输状态下,DMA速率只有68 MB/s,说明其中存在漏洞。
对比PCI9054技术资料给出的DMA时序图发现,由于状态机设有3个状态,每次启动传输都需要有一个等待状态来配置各种信号线,所以每次传输都要浪费1个时钟周期时间,这在高速数据传输过程中特别是DMA传输中是非常浪费的。?
在LOCAL总线扩展器件的速度满足要求的情况下,PCI9054标准DMA传输并不需要等待周期,所以等待周期可以省略,这样状态机转换过程得以简化。改进的状态机状态转换图如图6所示。?
通过实际测试,在同一台计算机同种情况下,改进的状态机速率可以比原状态机速率高出10 MB以上,实际测得新状态机在用户模式下,查询方式DMA传输速度可以稳定达到88 MB/s。?
3 结 语?
计算机总线扩展技术使得基于计算机的数据采集技术迅速得到应用,基于计算机PCI总线的数据采集系统结合先进的数字信号处理技术得到了最为广泛的应用,是科研人员的重要工具,不但广泛应用于电力设备监控、遥测遥感等测控领域,在图像采集、雷达、通讯、地质、医疗器械等领域中也有着重要的应用。
编辑:神话 引用地址:基于PCI总线多通道数据采集系统的设计
?
关键词:数据采集;PCI9054;CPLD;DSP?
Design of a Multi-channel Data Acquisition System Based on PCI
?
LI Runqiu,HE Zhanzhuang?
(No.771 InstituteofChinaAerospace TimesElectronics Corp.,Xi′an,710065,China)
??
Abstract:In recent years,based on PCI bus high speed data collecting system is a developing direction of data gather and transmission technology.This paper encircle with PCI bus interface controller PCI9054,presents the hardware system design scheme,and respectively discusses the modules.The card which we designed have the characteristic of less capacity,high speed,back up the burst transmission of a great number of data,and have strong performance of anti jamming,the mostly application domain of this card is image manipulation.
?
Keywords:data acquisition;PCI9054;CPLD;DSP
1 引 言?
基于PCI总线的多通道数据采集卡的工作流程是:计算机应用程序根据命令通过驱动程序启动模数转换,模拟信号通过信号调理后进入A/D芯片,模数转换后的数据存入FIFO(先进先出)存储器缓存,在数据存储器中存满一帧时,硬件向主机发中断,主机响应中断后通过PCI9054芯片用DMA方式读出存放在数据存储器中的采样数据,然后进行后续处理(如计算、存储)并将结果显示于屏幕。
DSP实时处理模块是在逻辑控制模块的控制下与计算机通过LOCAL总线接口进行通讯,以便交换数据,执行命令。?
2 系统硬件设计?
数据采集系统硬件由两大部分组成:一是基于PCI总线的数据采集模块,二是基于DSP扩展实时处理模块。下面将分别叙述,系统总体硬件框图如图1所示。?
2.1 模拟通道及模数转换?
本设计的模拟通道只对模拟信号进行简单处理,使模拟信号符合A/D转换芯片的要求即可。针对该数据采集卡的应用领域信号具有信号相关性强的特点,应采用多通道的同步采样芯片,经过比较,选择了ADS8364。ADS8364是一款高速、低功耗,具有6通道同步采样转换,16位高速并行接口的高性能模数转换芯片。ADS8364的6个模拟输入分为3组(A,B和C),每个输入端都有一个ADC保持信号HOLDX#以用来保证几个通道能同时进行采样和转换。实际上,每片ADS8364由?3个?转换速率为250 ksps(当外部时钟为5 MHz)的ADC构成,每个ADC有2个模拟输入通道,每个通道都有采样保持器,3个ADC组成3对模拟输入端,可同时对其中的1~2对输入信号同时采样保持,然后逐个转换。由于6个通道可以同时采样,很适合用于需同时采集多种信号的场合。?
在设计的采集卡上,采用2片ADS8364,每片设计成6路单端输入,共12路模拟输入。用相同的外部时钟来控制转换,每片ADS8364输出16位数据,两片的输出拼接成32位数据,以提高PCI总线的传输效率。数据传输到计算机后,再进行分路处理。另外,在PCI总线传输速度允许范围内,还可以通过扩展接口进行扩展,以处理更多的模拟输入。?
2.2 数据缓存?
因为PCI总线接口数据传输效率非常高而A/D采集数据效率较低,所以为了实现数据的高速传输,采样后的数据必须经过缓存,再由PCI总线接口控制器读取,这样才能处理更多的模拟信号输入。缓存的设计方案一般有3种:共享RAM方式,双口RAM方式,FIFO缓存方式。第一种方式因为涉及到RAM的同时访问,逻辑比较复杂;第二种方式芯片价格昂贵;第三种既简单性价比又高。?
设计中FIFO采用TI公司生产的SN74V3690芯片是一款具有大深度、高速GMOS工艺的先进先出存储器,有读写控制和可变的总线匹配*36*18*9数据流。时钟频率最高可达166 MHz,6 ns读写周期,带有FIFO状态标志信号Empty,Full,Half-Full,可编程的标志信号Almost-Empty和Almost-Full。?
系统FIFO的输入输出均被配置为32位,在启动?A/D?采样后,由逻辑控制部分控制数据写入FIFO,当FIFO达到半满时,半满标志信号HF#翻转(1变成0),逻辑控制部分根据他向PCI接口控制器发出中断,通知计算机启动数据传输。?
2.3 PCI总线接口?
考虑到硬件的通用性、可升级性和可扩展性,主从处理器方式都可能被用到,所以选用了用主/从控制器PCI9054作为总线接口芯片。他符合PCI V2.2规范,主要特点为:?
(1) 提供了2个独立的可编程DMA控制器,每个通道均支持块和Scatter/Gather的DMA方式,DMA通道0支持请求DMA方式。?
(2) PCI和Local Bus的数据传送速率高达?132 MB/s?。?
(3) 本地总线速率高达50 MHz;支持复用/非复用的32位地址/数据;本地总线可为3种模式:M模式、C模式和J模式,可利用模式选择引脚加以选择。?
(4) 内部有6种可编程的FIFO,以实现零等待突发传输及本地总线和PCI总线之间的异步操作。?
(5) 提供了一个串行E?2PROM配置接口,容量2 kB。在配置存储器中存放了厂家标示、设备标示以及本地总线的基地址空间、I/O空间、中断控制信号等信息。?
选用的PCI 9054工作在C模式,为便于访问,配置PCI9054寄存器,将S2映射在20000000H单元,将S3映射在30000000H单元。将局部地址空间分成3部分,地址高4位为0000时为FIFO空间,用于DMA传输;为0010时为S2空间,用于FIFO控制为0011时为S3空间,用于A/D控制;其余空间保留。?
2.3.1 PCI9054与E?2PROM的接口设计?
PCI9054的串行E?2PROM配置接口包含以下3个信号:EECS片选;EESK串行数据时钟;EEDI/EEDO数据输入/输出。设计选用了PLX公司推荐兼容的串行?E?2PROM?芯片NM93CS56N芯片,他是National Semiconductor公司生产的低电压串行电可擦除存储器,采用CMOS工艺制成,容量为2 048位(128*16位),8引脚,支持三线制MicroWare串行总线的E?2PROM,其引脚如下:?
本文原文
CS:片选信号;?
SK:串行时钟输入信号,同时也是微处理器与?E?2PROM?之间通信的同步信号,数据在他的上升沿锁定有效;?
DI:数据输入;?
D数据输出。?
PCI9054与E?2PROM的接口设计如图2所示。?
2.3.2 PCI9054局部总线设计?
由于PCI9054与PCI总线之间实现了无缝连接,系统与计算机接口的大部分信号直接连接即可。PCI9054 Local总线部分信号时序比较复杂,因此用逻辑控制部分来实现PCI9054 Local端的控制。将PCI9054局部数据总线高5位数据线接到CPLD引脚上,这5根数据线可以接收和发送数据,根据接收到的数据对其译码产生控制信息,还可以发出数据使PCI9054产生门铃中断和MailBox中断。PCI总线框图如图3所示。?
PCI9054局部总线支持50 MHz时钟,为配合A/D工作,选用40 MHz时钟。PCI9054的所有地址线和控制信号都只逻辑控制部分连接,产生逻辑控制的工作状态和各种控制信息。?
2.4 实时处理模块?
在数字信号处理领域,很多情况下,模拟输入数字化后需要进行实时处理,同时需要计算机的参与(参数控制、数据传输等)。这就需要实时性很强的DSP参与处理,这里选用TMS320C5416作为DSP处理芯片,他具有一般DSP的特点,这里不在赘述。?至于DSP与PCI9054间的接口,考虑到充分发挥他们的高速优势,采用FIFO缓冲器在二者之间交换数据,而控制逻辑由CPLD完成,如图4所示。?
2.5 CPLD逻辑控制?
系统采用ALTERA公司MAX7000A系列的EPM7256A芯片,他的配置程序固化在芯片内的?E?2PROM?中,所以该器件不需要专用的配置存储器,所有MAX7000A系列产品都由ALTERA公司提供的编程硬件和软件进行编程。
利用EPM7256A内部逻辑单元设计实现局部总线控制器,用于实现局部总线的状态控制,同时利用其内部逻辑编程形成存储阵列构成SRAM,存放发往各端口的操作指令。?
2.5.1 状态机设计?
在PCI目标和DMA传输模式下,PCI9054是局部总线的主设备,通过设置PCI9054内部配置寄存器可以使能或禁止外部等待输入控制信号READY#,以使PCI9054工作于内部等待或外部等待状态。若READY#信号被禁止,则在每次传输的地址和数据间插入等待状态,其数目由内部等待状态计数器决定。若READY#信号使能,则READY#信号的持续时钟周期数目决定了PCI9054所附加的等待状态。系统采用外部READY#信号,以决定等待状态。图5为局部总线状态机转换图。?
从状态图可以看出,该状态机有3种传输状态,空闲状态、等待状态和传输状态。状态机能成功与PCI9054配合完成数据传输,传输性能稳定,效果较好,是现在PCI9054局部总线状态机设计的一般方法。通过实际测试,在用户模式下,查询方式DMA传输速度可以稳定达到68 MB/s。?
2.5.2 改进的状态机设计?
PCI总线峰值速率为132 MB/s,在上述状态机和传输状态下,DMA速率只有68 MB/s,说明其中存在漏洞。
对比PCI9054技术资料给出的DMA时序图发现,由于状态机设有3个状态,每次启动传输都需要有一个等待状态来配置各种信号线,所以每次传输都要浪费1个时钟周期时间,这在高速数据传输过程中特别是DMA传输中是非常浪费的。?
在LOCAL总线扩展器件的速度满足要求的情况下,PCI9054标准DMA传输并不需要等待周期,所以等待周期可以省略,这样状态机转换过程得以简化。改进的状态机状态转换图如图6所示。?
通过实际测试,在同一台计算机同种情况下,改进的状态机速率可以比原状态机速率高出10 MB以上,实际测得新状态机在用户模式下,查询方式DMA传输速度可以稳定达到88 MB/s。?
3 结 语?
计算机总线扩展技术使得基于计算机的数据采集技术迅速得到应用,基于计算机PCI总线的数据采集系统结合先进的数字信号处理技术得到了最为广泛的应用,是科研人员的重要工具,不但广泛应用于电力设备监控、遥测遥感等测控领域,在图像采集、雷达、通讯、地质、医疗器械等领域中也有着重要的应用。