高速总线范文

2024-08-18

高速总线范文(精选9篇)

高速总线 第1篇

折页机是书刊、报纸加工的主要印后现代印刷设备之一。传统的折页机控制器采用PLC控制, 存在数字化控制程度不高、高速时折刀定位不准确、电气接线繁杂、成本高等缺点。本文在设计中以P89LV51单片机+MAXⅡ1270CPLD为核心, 构成折页机总线控制系统, 充分利用单片机编程简单、数据处理能力强和CPLD容易实现用户自定制逻辑、在线编程、响应速度快、保密性强的特点, 有效解决了PLC扫描速度低 (ms级) 、折刀离合器磨损大、成本较高、高速时折刀定位不准确等缺点, 实现了折页机控制系统模块化、系列化、标准化的设计与生产。设计的ZY780型混合式电控刀高速折页机, 主机运行设计线速度为200m/min, 最高220m/min, 折刀工作频率最高为8次/秒, 同时系统具备折刀动作次数、电机运行时间、吸纸电磁阀工作次数、折纸参数数据的历史记忆以及折纸过程中各种故障报警等功能。经一年现场运行测试, 系统稳定、抗干扰能力强, 取得了良好的经济效益与社会效益。

1 ZY-780折页机系统结构

ZY-780型折页机主要由输纸、栅栏折纸、电子刀折刀部分及收纸小车等构成, 如图1所示。折纸工作过程为纸张在位置 (1) , 纸台电机正向旋转, 纸堆输送带以1.6m/min速度作正向转动, 从位置 (1) 运动到位置 (2) 。当纸堆前沿推动吸轮下的纸位探测键触碰到模拟量接近开关SP0时, 在纸台变频器AV2控制下, 速度线性下降至0, 回转进纸将自动停止。纸张从位置 (2) 被吸气阀吸出, 经2O阀前光电开关SL2、2O双张故障限位开关到纸张位置 (3) 。从位置 (3) 过3O栅前光电开关SL3、5O栅后堵纸开关SL4后到纸张位置 (4) 。从位置 (4) 过6O一折刀前光电开关SL7停留在位置 (5) , 此时一折刀从位置1运行到位置2。将纸张从位置 (5) 经过折棍折压到位置 (6) , 同时一折刀复位。纸张从位置 (6) 运行通过8O二折刀处的光电开关SL8后, 停留在位置 (7) 。二折刀、三折刀折纸过程同上。折纸过程结束后, 纸张经收纸机压平整理后形成成品。

2 折页机控制系统组成

本系统由主控按键/显示模块、刀控按键/显示模块、折刀控制模块、压平收纸控制模块、远程控制模块、折页单刀控制模块与主控模块构成主从式控制系统, 如图2所示。

主控按键/显示模块、刀控按键模块、压平收纸控制模块各由一片P89LV51单片机和相应的按键模块组成, 主要完成主机的启/停与点动、气泵的启/停、输纸电机正反转控制, 以及输纸参数设置, 具体包括输纸模式、输纸间距、纸张大小、折刀工作方式、主机运行速度、收纸小车运行速度等参数, 并通过485串行总线将相关参数上传主控制器模块, 主控制器模块依据接收的数据进行综合处理后发出控制信号, 在主控按键/显示模块显示折页机运行状态及相关输纸参数。

折刀控制模块接收主控模块的命令, 实现手动和自动下刀工作模式, 以及折刀在自动模式下的不同下刀延时时间的选择功能, 同时完成堵纸故障检测, 并将故障信息传送至主控模块。远程监控模块和折页单刀控制模块属个性化模块, 根据需要进行选配。根据需要进行选配。

3 主控制器模块的组成原理

主控模块的构成如图3所示。其核心部件主要由一片P89LV51单片机与一块MAXⅡ1270CPLD构成。单片机通过P0口、P2口、ALE、RD、WR等I/O口线与CPLD之间以51总线方式进行数据与控制信息通信, CPLD中扩展的输入和输出外设作为数据存储器映像, 占用存储器地址。对于51单片机, 程序设计时只要CPU给出正确的地址, 就可以用两个单字节指令完成读/写, 如把数据读入CPU只需执行MOV@DPTR#XXXXH及MOVX A, @DPTR两条指令;输出数据到外设通过执行MOV@DPTR, #XXXXH与MOVX@DPTR, A即可实现。因此, 能够在节省CPLD I/O口线的同时极大地提高了系统效率[1~3]。

在CPLD中通过编程实现的功能模块如图4所示, 主要包含51总线、传感器输入、控制信号I/O端口、吸纸电磁阀控制、主机运行速度检测、纸张长度与宽度检测、故障检测等单元。

主机测速模块通过测速光电编码器对实时运行速度进行检测, 并与设定值 (75m/min~220m/min) 形成偏差信号, 通过模糊PID算法实现对主机运行速度的控制。输纸电机的运行速度通过模拟量接近开关, 将待折纸张位置转换为4m A~20m A电流信号, 作为纸台电机变频器的控制信号, 控制上纸速度快慢。

吸气电磁阀控制单元通过CPLD编程实现, 模块框图如图5所示。由latch1~latch5共5个锁存器和C_F电磁阀控制器构成。单片机将吸气长度、纸张间距设定值以及C_F控制信号通过latch1~latch5锁存器送入C_F的输入端口, C_F电磁阀控制器输入输出端口及功能如表1所示。

4 仿真测试

在系统设计过程中, 对锁存器、吸气阀控制、进纸量检测、折刀控制、堵纸检测控制、运行速度检测等单元的程序进行了仿真测试。图6为吸气阀控制单元中的电磁阀控制器C_F在连续吸纸状态下的仿真结果, 其中纸间距DA=6, 吸纸长度DB=4, 测速编码器信号BMQA=50KHz。

由仿真图看出, 在2 0 n s~1 2 0 n s之间, B M Q A接收6个测速光电编码器脉冲后 (纸间距DA=6) , 吸纸阀控制信号COUT由低电平变为高电平, 吸纸阀开始吸纸, 经过4个脉冲 (120ns~200ns) , COUT控制信号由高电平变为低电平, 吸纸阀停止吸纸, 纸张由折页机送纸同步带送走 (200ns~300ns) , 纸张信号PSGL由低电平变为高电平, 表示一张纸已送完, 进行下一张纸的吸送纸循环。

由时序分析得出, 当单片机发出吸纸控制信号后, 整个吸纸过程均由CPLD中的吸纸电磁阀控制单元控制, 单片机不再管理吸纸过程, 克服了传统折页机在高速运行时由于扫描速度慢, 出现漏数测速光电编码器脉冲而造成纸张间距不均匀, 影响折纸质量的情况。吸气阀需要停止工作, 单片机只需通过指令将图6中的端口信号EN1、EN2变为低电平, 若需要单张输纸EN1为低、EN2为高电平即可。

折刀控制模块的结构与主控模块相似, 由单片机+CPLD构成, 在CPLD中编程设置一个折刀控制器模块, 通过主控模块的485总线发送的控制参数, 经折刀控制模块的单片机处理后, 送至CPLD生成的折刀控制器模块, 结合折刀光电开关和光电编码器检测到的信号实现相应的控制动作, 限于篇幅不再赘述。

5 结束语

以P89LV51单片机和复杂可编程逻辑器件 (CPLD) 为核心的折页机总线控制系统, 克服了基于PLC的折页机扫描速度相对慢的缺点, 满足了高速折页机实时性高的要求。该控制系统已用于上海紫宏机械有限公司背包式高速折页机的系统, 本系统做适当的软件修改也可应用于其他型号的折页机系统。

参考文献

[1]符永宏, 潘国平, 盛占石, 等.基于CPLD与单片机的激光脉控制卡设计[J].江苏大学学报 (自然科学版) [J].2012.5.

[2]孔祥通, 王春平, 孙书鹰, 等.一种基于ARM单片机与CPLD的数字轴角转换方法[J].计算机测量与控制, 2013, 21 (2) .

高速总线 第2篇

摘要:介绍了应用在焊缝缺陷自动超声检测系统中的高速数据采集卡的性能,给出了其硬件实现方案和WINDOWS98下的虚拟设备驱动程序(VXD)。该数据采集卡不仅具有较高的采样频率,而且充分利用PCI总线带宽,实现了高速数据传输。测试表明,WINDOWS98应用程序能够稳定地采集焊缝信号,满足系统对数据采集的要求。

关键词:数据采集PCI总线焊缝缺陷VXD

焊缝缺陷自动超声检测系统是一种重要的无损探伤设备,可用于检测平板、管道、容器等的纵、横焊缝以及接管角焊缝缺陷。与手工检测方法相比,该系统具有运行平稳、漏检率低、显示直观等优点。

在焊缝缺陷自动超声检测系统中,缺陷回波信号通常为宽度约10ns~100ns、幅值在几十μV到几十mV之间的窄脉冲。为满足缺陷回波信号的检测要求,研制了一种基于PCI总线的高速数据采集卡,它是面向超声检测应用而设计的:该卡采用转换速率为60MHz的八位高速A/D以满足数据采集的要求;为缓存A/D芯片输出的高速数据并充分利用PCI总线带宽,加入32KB的高速FIFO缓存组;同时,为满足多通道探伤的要求,设计了通道选择电路以实现通道之间的切换;此外,为调理缺陷回波信号,卡上还配有高增益高带宽放大电路。

1高速数据采集卡的工作原理

焊缝缺陷自动超声检测系统的信号采集框图如图1所示。系统的工作原理是:首先由高压脉冲发生电路发射高压脉冲;高压脉冲经换能器形成超声波信号,遇到缺陷或杂质时产生反射波,经换能器转换为电压信号,该信号经放大调理、A/D转换后,形成数字量,写入高速FIFO存储器中。最后,由PCI接口芯片将FIFO中的数据适时地写入内存。

2数据采集电路的硬件设计

2.1高增益高带宽放大电路

采用带触发的直流逆变电路产生高压脉冲,采用多路模拟通道选择电路实现通道切换以满足多通道探伤要求。模拟信号经五级放大、滤波后,作为A/D转换电路的输入。放大电路采用最高增益为80dB、带宽为15MHz且分辨率为1dB的放大器,并且采用数字电位器实现放大增益的动态调整。

2.2A/D转换电路

A/D转换电路采用美国BB公司的ADS830。该芯片的信噪比高、功耗低、非线性畸变小,广泛应用于图像处理、数字通信和视频测试系统中。ADS830的精度为八位,最高采样频率为60MHz,可满足焊缝缺陷自动超声检测系统对数据采集精度和采样频率的要求。它有共模和差模两种信号输入方式,且输出的数字量可直接与5V或3.3V芯片接口。

2.3高速FIFO存储器

高速缓存是保证高速数据不丢失的关键,确保了数据的真实性。同时,高速FIFO缓存使A/D芯片不必工作在PCI同步时钟下,提高了A/D芯片的利用率。IDT公司的存储器性能优良,且同系列存储器一般可以做到管脚级兼容,容易实现硬件设计的模块化。为方便读写数据,选择先进先出式(FIFO)的缓冲存储器IDT7205L15。其访问时间为15ns,每片容量为8K×9位。支持异步读写,并提供诸如满、半满、空等用于位扩展和深度扩展的信号。高速数据采集卡为实现8位A/D和32位PCI总线的宽度匹配,采用了位扩展技术。为加深FIFO的缓冲深度,将外加FIFO缓存与PCI接口芯片内部的FIFO相级连。

2.4基于CPLD的控制逻辑

基于CPLD的控制逻辑是高速数据采集卡的核心,它为PCI接口芯片提供满足时序要求的读写信号,同时选择模拟信号的输入通道、控制高压脉冲发生逻辑并设定放大电路的.增益。此外,CPLD还能利用高速FIFO缓存的空、满标志位,配合PCI接口芯片实现DMA写操作,完成高速数据传输。Xilinx公司的XC9572XL-VQ64芯片的脚到脚延迟最大为10ns,可满足PCI总线接口时序的要求。单片XC9572XL-VQ64能满足焊缝缺陷自动超声检测系统逻辑控制的要求,且具有体积小、可靠性高、调试方便等突出优点。

图2是基于有限状态机FSM(FiniteStateMachine)方法设计的控制逻辑状态转换图。其中,RST和IRQ是由PCI接口芯片S5933输出的可由程序任意控制的两个信号,它们的高低状态同高速FIFO缓存的空、满信号一起决定了控制逻辑的六个可能的状态,图中以椭圆表示。计算机上电时,控制逻辑处于RST=IRQ=1的状态。值得一提的是,RST和IRQ信号都有适当的上拉电阻,所以不会出现高阻浮空的状态,使控制逻辑能够稳定地工作。实线是控制逻辑采用的状态转移路线,而虚线是可能的但不采用的状态转移路线。在各状态之间进行切换是很容易的,只需通过程序使RST或IRQ信号出现高或低跳变。状态转移时伴随着的电路动作见转换线旁的注释。

2.5PCI接口芯片

PCI总线协议2.1版出现以后,集成芯片商们纷纷推出了与其兼容的总线接口芯片。其中,AMCC(AppliedMicroCircuitCorperation)公司的S5933接口方便、控制灵活,软件配置简单,在高速网络接口、数字通信、高速成像等领域有着广泛应用?2?。S5933最突出的优点是能够作为PCI主控设备发起DMA操作,即S5933完全具备双字DMA控制器的功能。

图3是结合系统应用而绘制的S5933结构框图。由图3可知,S5933内部具有配置寄存器组和操作寄存器组,配置寄存器组用于控制S5933在PCI总线系统中的运作方式(访问延迟、能否发起主控DMA操作等)以及记录系统分配给S5933的资源信息(如中断引脚、I/O等)?3?,而PCI总线和外加电路之间的数据交换则通过操作寄存器组实现。以I/O资源为例,计算机上电后,系统将分配给S5933的I/O资源首地址填入基地址寄存器,此值决定了操作寄存器组在I/O空间中的映射位置(S5933的操作寄存器组缺省地映射到I/O地址空间,便于软件操作),见图3。之后,CPU只需执行简单的I/O操作就可以读写操作寄存器组,隐含的地址译码工作由S5933完成。外加电路控制逻辑则保证操作寄存器组与外加电路的正常通信。S5933提供了三种形式的外加电路接口,高速数据采集卡使用信箱(Mailbox)寄存器实现双字输出,用FIFO方式实现高速DMA写操作。

图3S5933的结构框图

3高速数据采集卡的软件设计

3.1虚拟设备驱动程序的设计

系统的控制软件工作在WINDOWS98操作系统下,为此开发了高速数据采集卡的虚拟设备驱动程序(VXD)。由S5933的结构可知,VXD需要实现双字I/O操作和物理内存管理。双字I/O的操作相对简单,调用虚拟机管理器(VMM)的SIMULATE_VM_IO例程即可,较困难的是物理内存管理。由于S5933发起的DMA操作需要物理内存的起始地址,因此必须涉及页面级的物理内存操作,故采用下述内存管理策略:

・应用程序加载VXD;

・加载成功后发送申请缓冲区的事件给VXD;

・VXD使用PAGEALLOCATE例程得到地址连续的适当长度(如四页即16K字节)的物理内存;

・锁定缓冲区并将物理地址逆映射为线性地址;

・将物理首地址填入S5933的写RAM地址寄存器;

・允许S5933进行主控DMA传输;

・传输完毕时,应用程序请求VXD释放上述物理内存。

3.2应用VXD设计数据采集程序

将VXD放在应用程序的同级目录下,则以下VC++代码就能动态加载(VXDVIEWER可验证)一个VXD:

HANDLEhDEVICE=CreateFile?“\.pathname”?0?0?NULL?0?FILE_FLAG_DELETE_ON_CLOSE?NULL?;

编好的VXD为应用程序提供了若干服务例程,应用程序执行下面的代码即可调用服务例程ZHC1:

DeviceIoControl?HDEVICE?ZHC1?lpinbuffer?ninsize?lpoutbuffer?noutsize?NULL?NULL?;

数据采集算法如下:

DO?{读取写RAM字节计数器;

再次读取写RAM字节计数器;

IF计数器内容为零THEN

跳出循环进行后续数据处理;

ELSEIF两次读取的结果不同THEN

不做任何处理而进入下一次循环;

ELSE

清相应的状态标志并设置有关寄存器以从断点处续传;

ENDIF

}

调试表明,应用VXD的数据采集程序能够稳定、高速地采集外部数据。对焊缝缺陷自动超声检测系统的实际测试表明,该高速数据采集卡能满足缺陷回波的检测要求。图4(a)为实际测试时用示波器观测到的模拟放大电路的输出信号,图4(b)是A/D转换后、截掉始波并经半波整流后得到的信号。

高速数据采集卡具有体积小、可靠性高、控制逻辑更改方便、可扩展性强等优点。对于检测厚度为10~100mm的钢板,一次采集的数据最多为4KB,至多只需0.13ms就可

高速总线 第3篇

关键字:PCI总线;现场可编程门阵列;片上系统;直接存储器存储

随着战场电磁环境复杂程度越来越高,侦察与通信系统的融合成为一种必然的发展趋势。数据量大、算法复杂是数字化侦察接收系统的主要特征。使用DSP和FPGA进行高速信号谱分析、滤波等预处理,借助通用计算机平台实现信号的分选、显示等后处理是一种理想的系统设计方案。因此,如何构建与PC机间的高速数据通道,便成了侦察接收系统设计中的关键问题之一。PCI(Peripheral Component Interconnect)总线,即外围部件互连总线,是目前应用最广泛的一种高速同步总线,在32位总线宽度33Mz时钟下,其理论最大传输速率可达132Mbyte/s(64位总线宽度66MHz时可达到528Mbyte/s),因此成为上述侦察接收系统中高传输速率、低成本PC接口的首选实现方式。目前,实现PCI总线接口的常用方法有两种:一是采用专门的PCI桥芯片实现PCI接口,如PLX 公司的PCI905X系列芯片等;二是使用可编程芯片实现PCI接口。

随着集成电路技术的发展,可编程芯片成本越来越低、资源越来越丰富,用户可将PCI桥和其它用户逻辑在一片可编程芯片上实现,其中后者不需要额外的PCI桥芯片,系统硬件电路得以简化,系统的稳定性和可靠性更高,进而可以缩短系统开发周期。 基于以上考虑,本文提出一种采用可编程片上系统(System-On-Programmable-Chip,SOPC)实现侦察接收机PCI总线高速数据传输系统的设计方案,并采用直接存储器访问(Direct Memory Access,DMA)传输方式来提高数据传输速率。

1PCI总线接口方案设计

在PCI总线接口标准中,根据数据传输的发起者所在位置,PCI接口有从模式和主模式两种工作模式。根据工作方式的不同,DMA传输方式可分为连续式DMA(Continuous DMA)和集散式DMA(Scatter-Gather DMA)两种。

1.1PCI模式的选择

PCI总线标准中,由PC发起数据传输、读/写PCI接口卡的模式称为从模式。这种模式只要求PCI接口设备具备PCI从设备的功能,接口逻辑相对较简单;主模式是由PCI接口卡主动读写PC内存,PCI接口的逻辑相对复杂。频繁地要求PC发起数据传输会占用PC的资源,为了减少PC的负担,使其有更多的资源用于后续的数字信号处理,在侦察接收系统中,PCI接口卡的传输模式选择主传输模式。

1.2DMA传输方式的选择

DMA是提高数据传输速率和微处理器使用效率的一种数据传输机制。连续式DMA用于实现连续数据块的传输,即在一次DMA传输中设备端读/写物理地址连续变化(读存储器空间)或不变化(读IO口),PC端的物理存储地址连续变化。集散式DMA用于实现不连续数据块的传输,各传输数据块的起始读/写地址和长度都可以不同,它采用一个寄存器链表存储每个数据块的读/写起始地址和长度,DMA传输过程中自动从该链表加载地址和长度信息。集散模式DMA应用灵活,其缺点是在传输完一个数据块之后要重新配置DMA控制寄存器的值,速度比连续模式稍慢。在侦察接收系统中,DMA传输模式选择连续式传输模式。

1.3PCI总线DMA传输方案设计

PCI接口总体结构框图如图1所示。数据输入到乒乓RAM缓冲区,乒乓切换信号通知CPU数据准备好,CPU通过PCI桥的控制状态寄存器判断PC端是否备妥,如PC备妥则配置并启动DMA控制器,DMA控制器读口从乒乓RAM中读数据,写口将数据写至PCI总线访问端,PCI总线接口单元申请并获得PCI总线访问权,将数据送上PCI总线。

2PCI总线接口的SOPC实现

SOPC是Altera公司提出的一种灵活、高效的片上系统解决方案,它将处理器、存储器、I/O口以及一些通用的功能模块集成在一个PLD器件上,构成一个可编程的片上系统。利用SOPC开发侦察接收机中的PCI总线接口,具有开发周期短、系统稳定性好的优点。

2.1系统实现

PCI总线接口的SOPC内部结构如图2所示。实现PCI总线DMA传输系统使用到4类功能模块,分别是实现PCI桥逻辑的pci_comiler组件(pci_compiler)、负责数据传输的DMA控制器(dma)、控制整个SOPC的NiosII 处理器(cpu)及其数据程序存储器(onchip_mem),以及SOPC和外部用户逻辑通信的接口模块(BA1、DMARD和datardy),上述组件通过avalon总线连接在一起组成SOPC。

PCI总线DMA传输系统功能模块之间的交互过程如图3所示,过程描述如下:

(1)CPU等待PC使能DMA传输,PC使能DMA后,执行(2);

(2)PC等待乒乓RAM的数据准备好信号,数据准备好后,执行(3);

(3)CPU将DMA的读/写地址和传输长度参数写入DMA控制器中,使能DMA控制器,DMA控制器开始数据传输,即读口通过DMARD接口从RAM中读数,写口将数据写到PCI桥,PCI桥将数据送至PCI总线;

(4)当传输结束后,DMA控制器产生一个中断(IRQ1)送CPU;

(5)CPU判断传输是否完成,传输完成则通过PCI桥向PC发送中断,并执行(1),开始下一次DMA传输;

(6)PCI总线发生异常时,PCI橋逻辑中断CPU,CPU查询异常状态,并自动从异常中恢复。

2.2PCI总线异常的自动处理

PCI总线DMA传输过程中,可能出现的异常包括:

(1)PCI总线上SERR信号为高,系统错误。

(2)PCI总线上PERR信号为高,数据奇偶校验错误;

(3)主设备或从设备中止传输;

(4)主设备或从设备中止传输,或重试次数超过门限,导致PCI桥对总线读/写失败。

在侦察接收系统设计中,上述异常一旦发生,PCI接口便中断Nios CPU,CPU接收到中断后,通过查询PCI桥的控制寄存器访问(Control Register Access,CRA)空间,获得异常信息。系统错误发生时,PCI接口设备是没有办法恢复的,在这种情况下,Nios CPU可点亮指示灯,指示系统错误发生;其它异常情况发生后,Nios CPU可立即通过对DMA控制器的状态空间的长度写零来停止DMA传输,然后重新启动DMA传输,让系统从异常中恢复过来。

2.3提高PCI总线DMA速率的优化措施

为了尽可能提高DMA传输速率,本方案中共采取了以下三个方面的措施。

(1)PCI总线的突发传输与Avalon总线的流水线操作

为了提高系统传输速率,应充分利用PCI总线的突发传输特性,使PCI总线处于突发传输状态。为此,在系统设计中,一方面使Avalon总线工作于流水线模式下,降低Avalon总线的延迟时间;另一方面适当增大缓存存储空间,避免因缓冲区满造成的传输延迟等待。

(2)DMA控制的优化

为了使DMA传输更为灵活,如程序运行过程中改变DMA长度、读写地址、数据的帧长度,以及发生异常时程序自动恢复等,本文中使用Nios CPU控制DMA传输。CPU的主要任务是在PC使能DMA和数据准备好时启动DMA传输,应尽可能使程序紧凑,减少冗余操作,做到条件具备立即启动DMA传输。

(3)功能模块的时钟设置

如图2所示,SOPC中包括7个功能组件,为了进一步提高系统的速度,需要分别让这7个组件的时钟处于最佳状态。PCI总线访问相关组件的时钟为33MHz,Nios CPU相关的组件运行在150MHz时钟上。使系统在正确稳定运行的基础上,最大限度地提高运行速度。

3结束语

本文给出了一种基于SOPC系统的PCI总线高速DMA传输方案。与传统的使用PCI桥芯片实现PCI总线的方案相比,该方案将PCI桥和用户逻辑在一片FPGA中实现,减少了硬件电路的复杂度、降低了系统成本;采用SOPC创建PCI桥,大大缩短了开发周期,提高了系统的可靠性,且因使用了片上Nios CPU进行DMA的在线配置和自动异常处理,使DMA传输更加灵活。通过在EP3C120芯片上验证,该设计能够实现大于100Mbytes/s的PCI总线DMA传输速率。

参考文献

[1] 闵小平,陆达. 基于FPGA支持PCI接口的片上系统实现[J]. 计算机应用研究,2007,24(8): 272-275.

[2]梁科,李国峰. 通用多通道高性能DMA控制器设计[J]. 天津大学学报,2008,41(5): 621-626.

[3]颜建峰,吴宁. 基于PCI总线的DMA高速数据传输系统[J]. 电子科技大学学报,2007,36(5): 858-861.

[4]黄崧,曾芳玲,杨景曙. 嵌入式智能云控制系统的原理与设计[J]. 电光与控制,2007,14(3): 99-102.

作者简介

张用宇(1977-),男,湖北鄂州,硕士,工程师,研究方向为无线通信系统与技术。

高速总线 第4篇

许多应用于航天领域中的电子器件需要在地面进行单粒子撞击测试,以保证其在外太空辐射环境下的正常工作。测试试验中,使被测电子器件处于正常工作状态并放置在辐射环境中,用高能粒子对器件进行撞击,观察其输出信号是否产生异常。这种异常脉冲的时间宽度一般都在1μs以下,整个测试过程需要持续1 h以上。为了实现对异常脉冲的捕抓,数据采集系统需要满足很高的要求,这包括系统的采集速度以及存储容量[1,2]。此外,由于测试环境的特殊性,也要求测试试验需要在远程条件下开展与监测。

PXIe总线具有传输速度快、同步性能好、易于扩展等特征而适合于高速数据采集,已在测量、通信、工业自动化领域得到广泛应用[3]。

本研究设计一种基于PXIe总线的高速数据采集程控系统,并详细说明系统软件与硬件的实现方法。

1系统硬件总体设计

1. 1 PXIe 总线简介

PXI总线最早由NI公司于1997年提出,后将PCIExpress技术集成到PXI标准中,推出了完全兼容PCIe协议的PXIe总线协议[4,5,6,7,8]。PXIe总线协议已经成为一种工业标准,并已成功运用在测试、测量和控制领域。PXIe所支持的极限理论带宽相比PXI提高了45倍,达到6 GB /s,同时提供高性能同步总线,是多通道高速数据传输的理想总线协议。

1. 2 系统硬件方案

进行DC /DC元件测试的硬件方案框图如图1所示。远程计算机通过LAN路由器对本地计算机( NI8133) 和程控电源进行控制,从而实现对整个测试过程的记录与监测。由本地计算机通过RS232串口控制电子负载,数据采集卡( NI-5122) 记录被测DC /DC的输入和输出电压信号[9]。

为了实现对1μs以下脉冲信号极其峰值的准确检测,系统选定的采样速率为50 MSPS,采样精度为14位,4通道同时采样,估算系统的最大数据流 量为380 MB / s,这对系统的采集与存储能力都提出了很高的要求。为此,系统必须采用磁盘阵列( HD-8265) 进行数据的实时流盘。在选用PXIe-1082机箱的条件下,第一槽内为控制器( NI-8133) ,第二为硬盘控制器,第三、四槽为高速数字化卡槽。

考虑到程控电源的控制接口为LAN口,系统采用星型网络结构,以多端口路由器作为中心设备,通过RJ-45接口双绞线连接。经过IP地址和子网掩码的配置,即可实现局域网络的通讯。

2系统软件功能实现

根据系统设计需求,可以把系统的功能需求分解为如下几个方面:

1高速数据采集与记录; 2程控仪器参数设置; 3采集中脉冲统计; 4数据回放显示。

系统软件功能框图如图2所示。

2. 1 采集记录

采集记录功能的实现主要从数据采集、数据流盘以及文件格式3个方面进行介绍。

每一次采集任务可以根据被测信号需求对采样速率、采样通道、采样量程以及输入阻抗进行设置。NIPXI-5222数据采集 卡支持采 样速率在1 MSPS ~50 MSPS之间可调,通道可以选通1 ~ 4之间的任意1个或多个,输入量程可在0. 2 V,0. 4 V,1 V,2 V,4 V,1 V,20 V范围可选,输入阻抗50Ω和1×106Ω可选。每块数据采集卡提供2通道同步采样,4通道同步采样时使用2块数据采集卡,这要求系统使用PXIe总线的时钟信号对两块采集卡同步。

采集任务需要进行长时间的连续采集,且须完整包含采集过程中所有的数据点,系统采用软件触发方式实现上述目的。软件触发模式下,数据采集卡会将所有采集的波形按照时间顺序存放在板载内存中。本研究在板载内存中建立一个读取指针记录读取的位置,每次读取指针后的波形数据,并将指针移动到已读取完成的位置。为配合采集数据流盘,每次从板载内存中读出的数据最好是磁盘一个扇区容量的整数倍,这样有利于提高磁盘的读写速度。系统中一个磁盘扇区的大小是512 B,每次读取数据点数设置为5 120 000点,单通道的情况下占用磁盘的20 000个扇区,多通道时对应为20 000的整倍数。

系统的数据流量可以计算如下: 16 bit×50 MSPS /ch×4 ch = 381. 5 MByte / s。

本研究采用“生产者消费者循环”的算法有效地解决了大流量数据存盘的问题。生产者和消费者为两个独立的线程,分别指定给NI-8133控制器的四核处理器其中的两核运行。另外,在计算机的内存中划分出一部分空间作为存放数据的缓冲区,供生产者和消费者共同使用,这部分缓冲区在软件中以先入先出队列方式访问。

生产者循环从数据采集卡的板载内存中读取数据,将这一部分数据存入计算机内存缓冲区中。读取之前应该先判断数据采集卡中的数据是否达到了每次读取的数量,如果达到了才进行读取,否则进行一次空循环,保证读取指针的位置不变。

消费者循环每次判断数据缓存区队列是否为空,如果数据缓存区中有数据,就将这个数据读出后存储到计算机硬盘中。

生产者消费者处在两个独立的循环之中,这里每个循环的最小循环时间是50 ms,防止计算机不停地轮询两个循环的执行状态。这个时间的设计应该满足采集数据的要求,小于一次读取时数据采集卡内数据的总时间。上文提到一次采集的点数为5 120 000,除以采样率可以得到时间为102. 4 ms。也就是说,每50 ms读取一次数据,一次可以读取102. 4 ms产生的数据,数据有充足的机会被读取出。

本研究采用二进制格式作为数据流盘的格式,调用Lab VIEW中现有的文件储存格式TDMS可以方便地保存多路数据至一个数据文件中。TDMS文件中数据按照组进行分类,每组可以有多个通道,保存时生成区分每一个通道的数据的索引,并且可以在文件中为每个组和每个通道分别自定义属性和设置该属性的值。软件中需要为每个通道设定两个属性: 名称和长度。

采集记录程序的后面板如图3所示。

2. 2 仪器控制

电源的控制接口为Ethernet,通过RJ-45双绞线连接电源和计算机的网口,主要指令包括: 初始化电源,读取电压 电流最大值,设置电压 电流,设置电源工作模式,设置电源输出打开 关闭,读取当前输出电压 电流值,断开电源连接。电子负载采用RS232接口,选取的参数为: 波特率9 600 bps,8位数据位,1位停止位,无校验。与电子负载通信主要指令包括初始化电子负载,选中电子负载一个通道,读取电子负载的设置范围,设置电子负载的工作模式,设置值( 电压、电流、电阻、功率) ,读取电子负载当前的输入电压和电流。

由于采集过程中会多次应用到仪器的设置命令,而且很多时候要在不同的界面或不同的进程之中,使用仪器接口程序的方式可有效避免I/O端口读写冲突,方便读取 仪器连接 状态,使程序结 构更简明、高效[10,11]。

2. 3 脉冲统计

简单的门限脉冲统计方式为,设定一个固定的门限电压,数据从门限以上跳变到门限以下时认为发生一次负脉冲[12]。这种统计方式很容易受噪声的影响,实际信号一次穿越门限的过程,数采过程中引入的噪声会使得采集到的信号反复穿过门限。数采过程中系统内存和CPU占用很大,无法对数据进行实时滤波后统计脉冲,所以笔者设计了疲劳时间门限统计的方法以避免重复统计。在一次穿越门限后一段时间内的穿越都认为是一次脉冲。疲劳时间设置为50个数据点,则不会遗漏连续两个持续时间1μs以上的脉冲。假设噪声的峰峰值为Vn( 单位: V) ,脉冲边沿的摆动速度为Se( 单位: V/s) ,当满足Vn< Se×1μs时,该方法可以保证不会因噪声导致重复统计脉冲。

2. 4 数据回放显示

由于采集到的数据规模很大,不可能在一个图面中将所有数据全部清晰显示,数据回放系统中设置了两种访问数据查看的方法: 一是通过时间轴随机查看数据,中心时间点通过时间轴选取时,可以拖动或者输入时间来选择; 二是通过门限时间戳直接选中目标波形。门限时间戳是指进行脉冲统计时,记录所有过门限点的在波形数据中的位置,形成一个时间戳列表,通过这个列表就可以直接选中对应时间的波形。

3系统测试及结果分析

本研究采用波形发生器HP-3325B为信号源,调用其任意波形发生功能,产生特征波形,周期5 s,其中前4. 98 s输出为0,然后出现一个宽0. 02 s的方波,幅值为1. 5 V,方波内每间隔2. 5 ms出现一个负脉冲,脉冲最低点的电压为700 m V,脉冲半高宽度为6μs。为了逼近实际测试任务中出现的脉冲,采用软件控制定时的方式每5 s产生一组7个左右的脉冲。在测试的13 min 27 s中,一共出现了1 320次脉冲。

笔者选择其中一次脉冲,查看前后20 ms左右的数据,显示结果如图4所示。

实际采集到的脉冲次数与根据采集时间估算的结果( 1 291 ~ 1 452之间) 基本一致。采集结果流盘文件大小为161,546,240,265 Byte,这与根据采样速率估算的结果是一致的,可认为采集系统在采集时间内完成了所有数据点的采集任务。

4结束语

本研究设计了基于PXIe总线的多通道高速数据采集与流盘系统,并且进行了系统的测试实验,实验结果表明,该系统工作可靠,数据采集结果可信,软件功能能够满足使用需求。

在下一阶段,本研究将在实际的辐射环境中对DC / DC元件进行实际测试,从而进一步验证该数据采集系统设计的合理性与系统工作的可靠性。

摘要:针对单粒子撞击测试中窄脉冲信号的长时间检测问题,提出了一种基于PXIe总线以及数据采集卡的高速数据采集程控系统,实现了高速数据采集存储、实时脉冲数量统计、数据回放、远程控制仪器等方面功能,采用NI-PXI-5122数据采集卡实现了4通道、50 MSPS/Ch采样率、14 bit采样精度的同步采样,采用NI-HD-8265磁盘阵列实现了380 Mbyte/s以上数据流量1 h的连续流盘存储,应用Lab VIEW开发了系统软件,对采集流盘和程控仪器进行控制,利用模拟实验平台产生脉冲信号对系统的采集存储能力进行了测试。研究结果表明,该系统能以高采样率进行多通道的长时间数据采集,能够实现实时脉冲数量统计、数据回放、计算机远程控制等多项功能。

关键词:数据采集系统,高速数据流盘,程控仪器,远程计算机控制

参考文献

[1]沈兰荪.高速数据采集系统的原理与应用[M].北京:人民邮电出版社,1995.

[2]CHOUBEY A K,RAUSHAN R,MANOJ,et al.High-speed data acquisition system design[J].Systems and Control in Aerospace and Astronautics,2006(1):946-951.

[3]霍志,刁节涛,李清江.基于PXIe总线的高速CCD数字图像采集系统设计[J].现代电子技术,2011(14):88-92.

[4]梁祥,封吉平,安学军.基于PXI总线的高速数据采集模块设计[J].兵工自动化,2007(1):72-73.

[5]康云,刘松平,夏利有旗.基于PXI总线的电台板级故障自动诊断系统[J].兵工自动化,2011(6):80-82.

[6]耿金良,王劲,孙千里,等.自动化设备的数据采集与计算机处理技术[J].机电工程,2014,31(5):616-619.

[7]曾镜全.谈多路数据采集与处理系统[J].机电工程技术,2012(8):61-64.

[8]UILRICH.PXI Express for Real-Time Control and High Performance Acquisition(April 2007)[C]//IEEE-NPSS:Real-Time Conference,2007.Batavia:[s.n.],2007:1-5.

[9]贾霞.卫星器件DC/DC抗单粒子效应的研究[J].航天器环境工程,2004(1):51-56.

[10]毛义梅,张晶.基于GPIB接口总线的虚拟仪器设计[J].仪器仪表学报,2001(S2):281-282.

[11]陈树学,刘萱.Lab VIEW宝典[M].北京:电子工业出版社,2011.

高速总线 第5篇

高速数据采集系统广泛应用于电子测量、软件无线电、雷达等领域, 涉及采样理论、数字信号处理、高速电路设计、高速ADC等多个领域, 属于信号获取领域的重要课题。随着半导体工艺技术的日益进步, 高速数据采集中所用的ADC采样精度和采样速度己经达到一个新的水平, 几百MHz甚至几GHz采样速率的采集系统, 已得到广泛的应用, 这就要求有相应的高带宽的数据总线, 将采样数据传输出来, 进行信号处理或存储[1]。作为一个串行的点对点互联协议, PCI Express技术为可靠的数据传输提供了一个高带宽可扩展的解决方案, 所以其迅速在高速采集领域得到了广泛的应用[2]。文章分析了PCI Express系统数据传输开销的来源, 研究了影响PCI Express系统性能的因素, 同时基于PLDA的EZDMA2IP核和Xilinx KC705评估板对PCI Express系统进行性能测量和分析, 以验证这些因素的影响[3,4,5,6]。

1 PCI Express性能定义

PCI Express协议规定, 对于PCI Express Gen1系统, 单个链路最大传输速率是2.5 Gb/s, Gen2系统最大传输速率为5 Gb/s, 最新的Gen3系统[7]为8 Gb/s。这些速率描述的是每个通道上单方向数据传输的原始比特率, 而不是PCI Express系统的数据传输速率。由于存在各种开销和其他系统设计的折衷, PCI Express系统的有效数据传输速率会降低。

PCI Express系统的数据传输使用各种各样的数据包, 比如存储器类型、I/O类型和配置类型的数据包。大部分设计以提高传输存储器类型数据包速率为目标。本篇文章也将存储器类型数据包的传输速率定义为系统性能。下文中, 如果无特殊说明, 数据都指的是存储器类型的数据。

PCI Express Gen1、Gen2和Gen3协议存在少量的不同点, 文章主要研究PCI Express Gen2协议, 所有的性能测量也都是基于Gen2的系统。但是, 文章中提到的这些观点同样适用于Gen1和Gen3系统。

2 PCI Express数据传输开销

在PCI Express系统上传输任何数据都会有一定数量的开销。符号编码开销, TLP开销和传输开销是影响PCI Express系统的3个关键因素, 下面分别研究三个因素的影响。

2.1 符号编码

PCI Express Gen2协议采用8 b/10 b编码来保持传输线上的直流 (DC) 平衡, 并可以进行错误检测, 8 b/10 b编码不像其他影响因素那样可以调整, 这种编码是必须的。表1是部分8 b/10 b编码的例子。完整的8 b/10 b编码表, 请参考PCI Express协议规范。

8 b/10 b编码保证了数据流中包含足够丰富的时钟信息, 使得接收方可以从串行数据流中恢复出本地接收时钟。这种编码保证每传输20 b数据, 1和0的数量相差不超过2, 而且不会有连续的5个1或0出现。为了保持直流平衡, 每个传输的字节都有一个正极性和负极性的10-bit编码, 由发送方根据电路的流动差异 (CRD) 选择一个10-bit编码发送到串行链路上。因此, 一个字节的数据需要串行链路上传送10 b的数据。显然, 编码损失了20%的传送能力。由此可以得到链路在半双工下的理论带宽:

表2给出了对于不同的链路宽度下PCI Express Gen2的理论带宽。

所以, 尽管PCI Express Gen2每条串行链路数据率为5 Gb/s, 但是8 B/10 B编码会把每条链路单向传输的有效带宽减少为4 Gb/s。实际的系统性能还会因为包的开销, 传输开销等进一步降低。

2.2 TLP开销

信息以包的形式在PCI Express设备间传送, PCI Express系统用事务层包 (TLP) 来传输数据, 存储器类型的数据传输主要应用两种类型的TLP:存储器写TLP (MWr) 和带数据的完成TLP (Cpl D) , Cpl D响应存储器读操作。图1为一个典型的TLP结构, 有效数据存在于图中Payload部分。

PCI Express协议的事务层, 数据链路层, 物理层都增加了每个TLP的开销, 使有效数据的比例降低。事务层添加了包头 (Header) 和可选的端到端的循环冗余校验 (ECRC) 。数据链路层添加了包序列号 (Sequence) 和链路层循环冗余校验 (LCRC) 。物理层则添加了包的开始和结束标志。PCI Express包含32-bit和64-bit两种地址模式, 32-bit地址的TLP包头为12 B, 64-bit地址的TLP包头为16 B, 需要附加的4 B来标识高32 b地址信息。根据地址模式和可选的CRC校验, TLP的开销在20~28 B之间变化。

大量数据的传输需要许多的TLP, 每个TLP都会有自己的开销。因此, 采用更大的TLP可以增加有效数据的比例从而增加链路的效率。PCI Express系统中的每个设备都有自己的最大载荷 (MPS) , 这决定了最大的TLP大小, 但是增加MPS并不一定会使链路效率成比例增加, 因为TLP的大小变大, 其他的因素比如传输开销会增加对系统性能的影响。

2.3 传输开销

PCI Express协议的物理层和链路层都会引入传输开销, 当链路进入正常工作状态 (L0状态) , 物理层会插入SKIP有序集, SKIP用于补偿发送方时钟与本地接收时钟之间的时钟偏差。SKIP包的长度为4 B, 在1 180~1 538个符号时间内必须插入一次。一个符号时间就是在串行链路上传输一个字节的时间。PCI Express协议不允许在TLP包的中间插入有序集或者其他类型的包, 所以SKIP有序集和其他负责链路管理的包只可以在TLP包的发送间隙内被发送, PCI Express协议的这个特性也是增大MPS并不会使链路效率成倍增加的原因。当TLP变大时, 在两个TLP之间的发送的链路管理包也会增加。

PCI Express协议定义了链路管理层包 (DLLPs) , 目的是为了确保链路双方传输数据的可靠性。DLLPs只在数据链路层产生和处理。PCI Express协议有许多用于链路管理的包, 其中确认 (ACK) DLLPs、不确认 (NAK) DLLPs和流控制 (FC) DLLPs对PCI Express系统的传输性能影响最大。

发送方每次发送一个TLP包, 接收方就要返回发送方一个ACK或者NAK来表示接收TLP成功或失败, 发送方必须把TLP保存在它的重传缓存中, 直到接收到这个TLP对应的ACK包。当传输发生错误时, 那么该TLP可以重传, 以确保数据无丢失。由于PCI Express协议的ACK/NAK机制, 当大量的TLP发送时, 就会产生相当多的ACK/NAK DLLPs, 减少了链路的数据带宽。

PCI Express协议允许多个等待发送的相同类型的DLLPs被缩减为一个DLLPs, 如图2所示。例如, 如果接收方成功接收5个TLP, 接收方对第5个TLP返回ACK包, 那么发送方就认为5个TLP都被成功发送。这样就减少了链路上的ACK包的数量, 当然, 如果接收方ACK包发送的频率很小, 那么发送方的重传缓存就会累积很多等待ACK的TLP, 发送方会因此减慢发送速度。如果发送方重传缓存填满, 那么新的TLP就不会被发送, 直到已发送的TLP接收到确认。所以, 当用户开发一个PCI Express产品时, 他必须设计一种机制, 来决定什么时候把多个DLLPs缩减为一个DLLPs。

基于信用量 (Credit) 的流控制 (FC) 协议减少了因为接收缓存溢出而造成的包丢失, 流控制协议相比较传统PCI的重试 (Retry) 模式更优越, 但它还是不可能保证链路效率一直高效。链路上的每个设备持续发送流控制DLLPs, 用来更新设备接收缓存的状态, 发送方只会在接受方有足够缓存空间的情况下发包。发送设备记录接收设备可用的信用量, 每次发送一个包, 就将信用量减少。在接收方处理一个包和释放缓存空间后, 它发送更新流控制包 (FC Update DLLP) 来通知发送方还有多少剩余空间。设备处理和发送FC Update DLLP的效率影响着整个链路的效率。类似于设备可以控制ACK/NAK包的频率, 一个设备怎样处理和发送流控制包取决于设备内部逻辑的设计, 不同设备之间可能不同。降低流控制包的频率可以减少用于链路管理的传输开销, 但是, 接收缓存必须更大以保持相应的性能。

3 影响性能的系统参数

3.1 最大载荷长度

PCI Express协议允许最大载荷的上限至4 096 B, 但协议规定MPS参数不可超过数据传输路径上的每个设备的MPS。因此, MPS很大的设备必须使用较低的MPS来适应路径上低MPS能力的设备。例如, 图3中PCI Express系统的MPS设置为128 B, 以适应端点3。

MPS设置在系统枚举和配置过程就决定了。设备的MPS存放在设备能力寄存器 (Device Capability register) 中, 该寄存器位于设备的配置空间。软件探测每个设备得到MPS, 计算系统的MPS, 然后把MPS写入设备的设备控制寄存器 (Device Control register) 中。

MPS决定了传输给定数量数据所需要的TLP数量。当MPS增加时, 相同数据需要的TLP数量就会减少。但是, 增加MPS并不会等比例增加系统效率。等式II定义了包效率。

表3给出了4种MPS的包效率, 表中数据假设TLP使用3DW包头, 没有ECRC校验, 总共20 B开销。

包效率和MPS成正比例关系, 但不是等比例增加。现在大部分的系统将MPS设置为128 B或256 B。对于一个确定的MPS, 包效率也固定了, 不会随着传输数据多少而变化。

3.2 最大读请求长度

在配置过程中, 软件还将最大读请求长度写入设备的控制寄存器。参数设定一次存储器读的最大长度, 最大读请求长度可以以128 B为步进, 最大可设为4 096 B。最大读取请求长度可以比MPS大。例如, 一个512 B的读请求可以发给MPS为128 B的设备。该设备返回的带数据的完成TLP (Cpl D) 长度限制为128 B或更少, 这需要多个Cpl D来一个读操作。PCI Express系统采用最大读取请求长度来平衡分配总线拓扑结构上的带宽。限制设备在一次读请求中可以读取的最大数据量, 可以防止其垄断系统带宽。最大读请求长度也影响系统性能, 因为它决定了读请求被发送的次数, 而读请求不包含任何有效载荷。当最大读请求长度为128 B时, 读取64 KB的数据需要读取512次TLP (64 KB/128 B=512) 。为了提高效率, 移动大数据块时, 读请求的大小应该尽可能地接近最大读请求长度, 减少读取次数。

3.3 读完成边界

设备接收到读请求后, 通过带数据的完成TLP (Cpl D) 返回要读取的数据, 读完成边界 (RCB) 使一次读请求的数据通过多个Cpl D来返回。根据地址边界对齐, 数据被划分为64 B或128 B, 也有一部分Cpl D中的数据小于RCB设置, 这取决于下个地址边界的位置。大部分根复合体设置RCB为64 B, 每包返回64 B数据, 而不是其他MPS允许的值。图4给出了当RCB为64 B, 端点从地址0x00010028读取256 (0x100) B数据时, 根复合体如何返回这些数据。

返回256 B数据需要5个Cpl D, 如果每个TLP采用3DW包头, 包效率为64/ (64+20) =76%。许多根复合体使用64 B RCB, 尽管MPS为128 B或更高。所以, 读完成操作就是返回这些Cpl D的时间, 而且根据RCB设置, 这些数据被划分成了很小的包。

4 带宽测试

Xilinx KC705评估板包含一片Xilinx Kintex-7XC7K325T-2FFG900C FPGA, 1GB SODIMM 800 MHz/1 600 Mb/s DDR3和PCI Express x8边缘连接器。Kintex-7 FPGA是Xilinx采用28 nm HKMG高性能低功耗 (HPL) 工艺的FPGA系列之一, Kintex-7系列是一种新型FPGA, 能以不到Virtex-6系列一半的价格实现与其相当性能, 性价比提高了一倍, 功耗降低了一半。XC7K325T-2FFG900C FPGA带有16个GTX串行收发器, 支持最大数据率10.312 5 Gb/s, 可以实现PCI Express协议, 采用Xilinx PCI Express硬核, 最大支持Gen2x8配置, 若采用第三方IP, 最高支持Gen3x8[8,9,10,11]。

PLDA EZDMA2 IP是基于FPGA PCI Express硬核开发的支持DMA操作的IP核, 最大支持8个通道DMA操作。MPS最大支持512 B, 最大读请求支持1 KB。PLDA为其IP提供了完整的Windows驱动和上位机测试程序。

测试时采用PCI Express Gen2x8, 测试环境为Win7操作系统, 主板芯片组Intel Z77, CPU为Intel Core i5-3 570。

5 结语

本文以高速信号采集为应用背景, 分析了PCI Express系统数据传输开销和影响PCI Express系统性能的因素, 同时基于PLDA的EZDMA2 IP核和Xilinx KC705评估板对上述因素进行验证, 实验结果对PCI Express系统设计具有一定的参考价值。

摘要:随着高速采集系统的采样速率的增大和采样精度的提高, 如何设置PCI Express系统的参数, 充分利用PCI Express总线的带宽, 以满足高速海量数据的实时传输就变得非常重要。在此分析了PCI Express系统数据传输开销的来源, 研究了几种主要的系统参数, 以提高数据吞吐量。通过使用PLDA的EZDMA2 IP核, 在Xilinx KC705评估板上对各个参数进行测试, 结果表明, 灵活设置这些关键的系统参数可以利用较少的FPGA资源, 同时达到较高的传输带宽, 对PCI Express系统设计具有非常高的参考价值。

关键词:高速数据采集,PCI Express,总线传输带宽,PLDA EZDMA2 IP,Xilinx KC705

参考文献

[1]赵宇玲.基于FPGA的信号采集与处理系统设计与实现[D].南京:南京理工大学, 2008.

[2]马明锦, 朱剑冰, 何红旗, 等.PCI、PCI-X和PCI Express的原理及体系结构[M].北京:清华大学出版社, 2007.

[3]PLDA.EZDMA2 IP for Xilinx hard IP getting started[EB/OL].[2012-10-01].http://www.plda.com.

[4]PLDA.2012EZDMA2 IP for Xilinx hard IP reference manual[EB/OL].[2011-10-05].http://www.plda.com.

[5]Xilinx.Kintex-7 FPGA KC705 evaluation kit getting started guide[EB/OL].[2013-07-02].http://www.xilinx.com.

[6]Xilinx.KC705 evaluation board for the Kintex-7 FPGA user guide[EB/OL].[2013-07-18].http://www.xilinx.com.

[7]PCI-SIG.PCI express base 2.0 specification[EB/OL].[2006-10-09].http://www.pcisig.com.

[8]Xilinx.PIPE mode simulation using integrated endpoint PCI express block in Gen2 x8 and Gen3 x8 configurations[EB/OL].[2014-02-19].http://www.xilinx.com.

[9]Xilinx.Logi CORE IP endpoint block plus v1.15 for PCI express[EB/OL].[2011-06-22].http://www.xilinx.com.

[10]Xilinx.7 Series FPGAs integrated block for PCI express v3.0[EB/OL].[2014-02-04].http://www.xilinx.com.

高速总线 第6篇

关键词:SOC FPGA,高速智能总线,继电保护,在线升级

0 引言

SOC FPGA是目前芯片技术发展的新的方向, 它的优势在于在一个芯片上集成了处理器核和FPGA, 这样在继电保护装置里设计即插件时就非常方便。所以在现在的继电保护装置中, SOC FPGA被大量使用。以Microsemi公司的M2S005芯片为例, 介绍一种基于高速智能总线的SOC FPGA程序在线升级方案。

1 问题的提出

在SOC FPGA被大量使用后, 当SOC和FPGA运行程序需要升级时, 目前的方案是将插件拔出来用JTAG口烧写程序, 或者通过装置内部的串口进行程序烧写。由于继电保护装置是封闭的, 一旦投运后打开非常不便。用内部串口烧写时, 串口的速度很低, 烧写速度很慢, 一旦不成功, 还会导致升级不成功, 只能再次拔出插件用JTAG口烧写程序。由于存在这些不足, 再加上继电保护装置在停电检修时间很短的内就要完成升级, 显然这种方法不能满足现场的要求, 为此, 需要寻找一种方便快捷而且可靠的方法。

2 硬件设计

M2S005芯片是Microsemi公司生产的Smart Fusion2 So C FPGA系列的其中一款。

LVDS是一种低压差分信号技术接口。而M-LVDS (多点低电压差分信号) 是LVDS家族中的新成员, 主要用来优化多点互连应用, 其传输的高速率以及可靠性非常适合设计的需要。

硬件设计如图1所示。首先用M2S005芯片上的FPGA构建MLVDS总线, 该总线上挂若干个同样的插件。再由一片SPI FLASH实现M2S005芯片的配置文件的存储, 配置文件通过MLVDS总线传送给M2S的SOC, 其传输速率可达4M bit。M2S的SOC把配置文件存储在SPI FLASH里。

当配置文件存储结束后, SOC通过程序发出命令, 进入配置更新子程序, SOC把配置文件读入, 同时进行自身程序和FPGA程序的升级。此时, 升级程序由每块插件上的SOC独立运行, 不再占用整个装置的系统资源。

3 软件方案设计

基于以上硬件设计思路, 用C语言实现其软件功能。软件设计分为两部分:SOC通过MLVDS总线接受配置文件, 然后存储到SPI FLASH中, 程序如图2所示;SOC从SPI FLASH读出配置文件, 进行升级, 程序如图3所示。

4 结语

以上设计方案达到了以下的效果:升级时不需要打开机箱, 拔出插件;升级速度至少是原来速度的4倍, 在插件多的时候, 大大提高了效率;解决了原来一旦传输错误, 升级失败就要用JTAG来烧写的难题。

参考文献

[1]赵忠文, 曾峦, 熊伟.LVDS技术分析和应用设计[J].指挥技术学院学报, 2001, (06)

[2]高森美.Libero So C v11.4软件提升FPGA设计生产率[J].单片机与嵌入式系统应用, 2014, (10)

[3]郭之光.LVDS (Low-Voltage Differential Signaling) 设计及应用[D].西安:西安电子科技大学, 2007

[4]杨毅.高速LVDS接口单元接收器电路设计[D].沈阳:辽宁大学, 2008

高速总线 第7篇

PCI总线是目前推出的一款高性能局部总线[1],能同时满足高数据传输和高功率输出,是中频数据采集与处理模块的理想总线接口[2]。PCI局部总线不受制于处理器,为中央处理器及高速外围设备提供了一座桥梁[3],用户可将高速外设通过局部总线直接挂接到CPU总线上,使其与之匹配,从而打破了数据传输的瓶颈,使高性能CPU的功能得以充分发挥。

PCI总线接口的设计思路总体上可分为两种方法,一是采用专门的接口芯片,二是采用可编程逻辑器件[4,5]。这两种方法在不同角度皆有利弊。

文献[6]提出专用芯片可以将复杂的总线接口转换为相对简单的用户接口。用户可集中精力于应用设计,而不是调试PCI接口。但这种方式造成了一定的资源浪费,缺少灵活性。为了解决这些弊端,文献[7]提出采用Xilinx、Altera以及Atmel等公司的可编程逻辑器件IP核实现PCI总线接口。最常用的IP核是Altera公司的PCI Mega Core和Xilinx公司的PCI Logi Core,但采取这两种IP核的费用不菲,且主模式设计难度较高,让大多数研究人员望而却步。文献[8]论述了PCI主桥的的应用和WISHBONE片上总线技术,提出了使用单片机和FPGA架构实现基于PCI Bridge核的被动模式的PCI系统。

本文针对两种方式的不足,在文献[8]的基础上,针对WISHBONE总线特点及国外开放IP组织Open Cores网站免费提供的开源PCI-WISHBONE桥核,优化该IP核主传输模块状态机程序,仅使用一片可编程逻辑器件嵌入用户程序,将时钟频率提至66 MHz,首次实现了一种以高速DMA方式传输、主从共模的PCI接口设计。

1 PCI总线与PCI-WISHBONE桥核

1.1 PCI总线

PCI总线是同步传输协议,所有PCI操作均同步于时钟。总线时钟有33 MHz、66 MHz两种频率,位宽分为32 bit和64 bit两种,最大传输速率为264 MB。系统中PCI总线的最大带宽可达:66×106×32=2.112 Gb/s。

重要的是,PCI可以支持一种名为线性突发的数据传输模式,可确保总线不断满载数据。这种线性的或顺序的寻址方式,意味着可以由一个地址起读写大量数据,然后每次只须将地址自动加1,便可接收数据流内下一个字节的数据。线性突发传输能更有效地动用总线的频带宽传输数据,减少无谓的寻址操作。同时,PCI对总线主控及同步操作的支持有助于改善PCI的性能,即可将任何一个具有处理功能的外围设备暂时接管总线,以加速执行高吞吐量、高优先次序的任务。PCI独特的同步操作功能可确保CPU能与这些总线同步操作,毋须等待后者完成任务。

1.2 PCI-WISHBONE桥核

PCI-WISHBONE IP核提供了一个PCI总线和WISH-BONE总线之间的接口,兼容PCI 2.2协议,支持WISH-BONE So C互联协议B版本。它适用于32位PCI接口,包含独立的主桥、从桥功能模块,支持启动程序与目标命令功能,例如存储器读写、I/O读写、中断应答等操作。

如图1、图2所示,PCI-WISHBONE桥核包括2个单元:PCI主单元和从单元,每一个单元都拥有自己的一套功能支持桥接操作。例如图1,PCI主单元与WISH-BONE主单元共同处理WISHBONE总线起动的交易。首先,由WISHBONE从接口发起信号占用PCI总线,若PCI总线响应成功,WISHBONE接口将传输数据,地址以及命令经由FIFO,通过PCI接口传至PC机内存空间。图2为PCI从模式机制,主要处理由上位机启动的事务,同上述主模式基本一致,此处不再叙述。

2 PCI高速传输接口设计

2.1 硬件架构设计

本文设计的双向高速数据传输系统基于FPGA平台,以开源的PCI—WISHBONE软核为核心搭建串行通信接口平台,使其成为PCI总线与用户逻辑之间的桥梁,避开复杂的PCI总线协议。其采用Xilinx公司的XC7A200T-2FFG1156主芯片作为硬件核心,结合基于Win Driver的驱动程序,采取规格为640×512的图像作为模拟数据源,以乒乓方式轮流读写主机内存,实现了高速图像数据的双向传输。

在硬件方面,根据PCI总线规范2.2版,当PCI接口引脚M66EN是高电平时,总线时钟频率可控制在33 MHz~66 MHz范围内,反之为0~33 MHz。该模块设计原理图如图3所示,用户可使用跳线帽自由控制PCI总线时钟频率。当引脚2与1相接时,总线时钟频率高达66 MHz。

2.2 PCI-WISHBONE桥核主模式传输设计

PCI-WISHBONE桥核内置功能接口允许用户端访问PCI总线,用户可将其设计为主模式传输方式,设计方案如下:

pci_constants、bus_commands和pci_user_constants是桥核可外部修改的3个配置文件。用户可将其设置成客户端应用(Guest)与主端应用(Host)。本文设计采用Guest模式,支持PCI总线的主机系统连接。在接通电源时,该设备独立软件扫描主机系统中任何连接PCI插槽的设备,主机系统进行配置周期,PCI桥和连接到主机系统的所有其他PCI设备在上电复位后响应。下面的步骤必须以正确的顺序来执行,以确保适当的PCI桥的操作:

(1)配置所有PCI基地址寄存器。

(2)启用PCI主操作和响应内存与I/O空间的从操作。

(3)配置合适的PCI配置空间Type00 Header寄存器。

(4)前3个步骤完成后,所有的配置寄存器可以在PCIImage0地址范围内使用存储器读写命令进行访问。而其它寄存器可配置合适的应用。

(5)当配置好所有的PCI桥寄存器后,软件便可以通过PCI从单元访问从设备或通过WISHBONE从接口启用主设备来访问PCI总线。

PCI-WISHBONE桥核采取中断机制,能够应对不同的事件产生中断,由中断控制和中断状态寄存器控制中断请求的产生。作为Guest桥时,由PCI总线INTA#引脚产生中断请求;而作为Host桥时则通过WISHBONE总线上INTA_O引脚发起中断。中断控制寄存器用于使能/禁止不同来源的中断。中断状态寄存器用于确定中断源,并清除中断请求。

2.3 DMA双向传输状态机优化设计

为了方便测试,本文使用Verilog语言设计实现了一种规格为640×513的图像数据源,该数据流以62.5 MHz的同步时钟发送,由帧结束信号和图像有效数据组成。其中单副图像数据位宽为16,以列的形式传输,每帧图像结尾增加帧结束信号标志(第513行)。

为了提高传输速率,驱动程序需申请两段可读写内存块,将2个内存首地址通过从模块传递给FPGA,保存在寄存器中。同时,当驱动程序检测到PCI卡时,给予合适的中断、传输命令并及时回馈状态信号,这样驱动程序与FPGA完成交互。

如图4所示,根据传输流程定义4种状态,分别为开始,读操作,写操作以及重试。状态机上电复位后处于Start状态,数据进入PCI后,由状态机分辨上位机的命令(Img_en)发起内存读写事务。此时由于PCI的传输速率(66 MHz)远大于图像速率(62.5 MHz),需将数据暂存于FIFO中,等到上位机允许传输并缓存数据达到既定数量时(img_fifo_half),状态机转向读写操作状态。

在Read/Write状态下,对应的地址和数据将传给wbm_adr_o和wbm_dat_o信号线,传输完毕后进入Retry状态。当主桥同PCI总线握手后,通过WISHBONE总线回馈给状态机信号(wbs_ack_o,wbs_err_o,wbs_rty_o,分别表示传输成功、错误和重试),从而继续发起下一次事务或重复本次事务直至本幅图像传输完毕。

当检测到图像帧结束标志时,预示着该幅图像传输即将完毕,此时FPGA会产生一个高位信号传至PCI接口中的INTA#引脚(中断引脚)通知上位机。一方面驱动程序以电平检测方式分辨出该信号,迅速清除中断并读取内存空间,保存数据或显示图像;另一方面主模块切换内存首地址,进行下一幅图像传输。乒乓传输方式的采用,不仅提高了传输速率,更给驱动程序保留处理时间。

3 实验验证

PCI传输系统程序主要包括模拟源和PCI传输模块,均使用Xilinx公司的ISE14.4软件进行开发,硬件仿真软件ISIM进行仿真。数据处理方面可将16位的模拟源数据(img_in[15:0])与累加的内存地址进行拼接处理后分别送入PCI主模块中(wbm_adr_o[31:0]和wbm_dat_o[31:0])。

Xilinx公司7系列FPGA芯片的基本逻辑单元称为CLB,每个CLB包含2个Slices,每个Slices由8个寄存器(Registers)和4个6输入的查找表(LUTs)组成。该PCI传输接口设计FPGA资源使用率如表1所示,寄存器、查找表使用率皆在1%~2%之间,被占用的Slice总数约占总数5%左右,而触发器使用数量为1 713,约占总数的34%。

表1结果表明,本设计能有效降低FPGA内部硬件资源使用率,在各种资源利用之间达到一种平衡,从而最大限度地发挥器件的功能。

系统搭建如图5所示,驱动程序在Windows XP操作系统中实现。由于该项目设计了单独的PCB板作为模拟源输入,每行数据为0000-027F数据,经过PCI采集后将传输结果以灰度图像形式展现,每行数据由黑到白,与输入的模拟数据源相对应。经过多次的验证,该系统PCI时钟可达66 MHz,数据稳定,符合设计标准。

4 结论

双向PCI传输接口采用国外网站Open Cores开源的PCI-WISHBONE桥核设计了DMA双向高速传输接口,并实现了以FPGA为主处理器、主机为从处理器的图像传输系统。该接口卡目前已应用到三维免模板磨边机系统中,进行高速数据传输。实验发现,设计的PCI接口卡具有传输速率高、配置灵活、简便、可移植性强等特点,满足项目高速传输数据的需要。

摘要:针对目前设计的PCI卡存在传输速度慢、复杂度高和购买PCI核价格昂贵的问题,提出了一种基于WISHBONE总线的PCI接口双向传输设计的新方案。系统采用开源的WISHBONE总线的PCI接口的IP核,设计了基于Xilinx Aritx-7系列FPGA芯片的PCI接口卡,该卡兼容5 V和3.3 V电平;采用DMA(直接内存存取)方式进行高速数据传输。实验表明,设计的PCI接口运行在主模式时,数据传输速率可达65×32 Mb/s,传输速率明显提升,且数据传输准确稳定,达到了设计目的,为高速PCI接口设计提供了一种新的思路。

关键词:PCI接口,DMA,高速传输,WISHBONE总线

参考文献

[1]田小林.基于FPGA的PCI总线接口设计[J].今日电子,2004(6):60-62.

[2]杨军.基于IP CORE的PCI接口设计及在数字中频采集与处理模块中的应用[D].成都:电子科技大学,2009.

[3]苏治国.PCI总线接口芯片PCI9052及其应用[J].世界产品与技术,2002(5):36-37.

[4]HUANG J.Design of online pipeline ultrasonic data ac quisition and storage system based on PCI Bus[C].Applied Mechanics and Materials.Trans Tech Publications,2014,651:2296-2300.

[5]Yu Hongsong.Design of general-purpose video image process system based on Compact-PCI bus and FPGA+DSPstructure[J].Chinese Journal of Liquid Crystal&Displays,2015,30(2).

[6]曾哲昱.用CPLD实现PCI总线目标接口[J].测控技术,2002(1):45-47.

[7]邹戗祁.PCI总线的实现方案及其实例[J].电子工程师,1997(7):7-8.

[8]徐江丰.基于WISHBONE片上总线的PCI Bridge核的研究和应用[J].电子设计工程,2005(4):23-26.

高速总线 第8篇

PCI 总线 (Peripheral Component Interconnect) 是Intel 公司推出的一种高性能32/64 位局部总线, 最大数据传输速率为132~264 MB/s, 是目前使用较为广泛的一种总线。在高速信号的实时处理中, 利用PCI总线将采集数据直接传送到微机系统内存, 可有效解决数据的实时传输和存储, 为信号的实时处理提供方便。利用PCI 总线进行高速数据采集, 可以简化电路设计, 而且这种高速数据采集接口模块可以在多次设计中重复使用, 缩短产品的研发周期。在此通过对专用接口芯片PCI9054 的性能分析, 特别是对单周期读、写和存储器映射传输操作的时序进行了分析, 提出了一种新的包括PCI9054 单周期读、写和存储器映射传输的设计, 并讨论了通用PCI 总线高速数据采集卡的实现方案。

1 PCI9054 性能简介

PCI9054 是PLX 公司推出的一种32 位33 MHz 的PCI 总线控制器。它采用多种先进技术, 可以将复杂的PCI 接口应用设计变得简单。利用PCI9054 灵活的局部总线可以方便地连接多种存储器、I/O 外围设备和CPU, 其中包括与Motorola 公司的MPC860和Intel 公司的960和IBM公司的PPC 401 等处理器之间的直接连接。PCI9054 可广泛应用于Motorola 公司的MPC 860 适配器设计、Compact PCI 热交换适配器设计、PCI 总线主控适配器和嵌入式主机等设计系统中。PCI9054 的本地总线时钟可与PCI 总线时钟异步, 本地总线有三种工作模式:M模式、C 模式和J 模式, 可方便地与多种微处理器连接。其中, 在C 模式下, 本地总线 (Local Bus) 为非复用的32 b地址与数据总线, 时序与控制比较简单。PCI9054 还有三种数据传送方式, 即PCI 主发起、PCI 从目标、DMA 方式。PCI 从目标即PCI9054 作为PCI 总线的从设备, 由总线上的其他主设备向它传送数据;在PCI9054 的本地总线端, PCI9054 又作为主设备, 向本地的存储空间和I/O 空间传送数据。在设计本地总线的数据传送接口时, 主要有两项工作, 一是需要对PCI 空间到本地空间, 或本地空间到PCI 空间的地址映射, 进行相应的存储器配置;二是根据PCI9054 提供的本地总线控制信号设计本地总线的逻辑控制功能, 实现相应的数据传送时序[1,2]。

2 数据采集卡PCI接口电路设计

PCI总线规范定义了严格的电气特性和时序要求, 它要求在接口卡和终端设备之间有一个总线接口控制器, 采用某些公司提供的专用接口芯片, 如PLX公司的PCI9080, PCI9054和AMCC公司的S5933, S5920等。使用它只需要设计用户接口逻辑和配置电路, 大大减少了开发人员的工作量, 且功能强, 使用灵活。

该设计采用PCI9054+FPGA实现高速数据传输接口。PCI9054能实现复杂的PCI总线规范2.2版, 支持重要产品数据 (VPD) 配置, 支持双地址周期, 可编程中断生成, 可编程突发管理, 存储器映射传输, 具有可选的串行E2PROM接口, 并支持Compact PCI和热交换功能, 性能卓越, 使用方便。FPGA用来配合PCI9054的Local总线控制信号, 实现Local总线端的数据传送。E2PROM 接口直接连接一个E2PROM来初始化配置PCI9054[3]。整个板卡的逻辑结构框图如图1所示。

2.1 FPGA内部控制

采样控制电路主要完成视频信号和动目标信号采样, 并对采样值进行处理。设计的FPGA采用Altera公司的FLEX系列中的EPF10K20芯片, 并采用该公司与之配套的配置设备EPC2芯片来完成采样后的数据处理。在FPGA内部, 根据由网络传过来高低、方位及自定义的差分信号传送时钟、串行帧同步、串行数据、模式字, 对采样数据进行相关处理和小目标的放大。当信号小于一定值, 则认为没有信号;信号值落在某一区间, 为了观察方便要将其放大。FPGA同时完成各种自检信号的产生、A/D的控制信号、以及各种读写时序。Local总线与外部的I/O部分, 用锁存器 (如74F574) 接口数据通路, 用双向通路 (如74LS245) 接口控制信号线。具体框图如图2所示。

2.2 存储器映射传输

基于PCI9054的存储器映射传输是核心部分。根据配置寄存器配置的Local总线三个空间的大小以及三个空间的基地址, 把数据写到相应的存储空间。计算机操作系统识别板卡正确后, 自动分配存储空间给本卡, 应用软件应用计算机自动分配的存储空间进行编程, 完成所需要的功能。REQ¯GΝΤ¯, LHOLD, LHOLDA为PCI BUS和Local BUS的仲裁信号, ΙRDY¯ΤRDY¯分别为主设备准备好信号和从设备准备好信号, 当两者同时有效时, 才能真正进行数据传输。 板卡复位或上电时, PCI9054自动装载E2PROM中的配置信息, 同时EPC2自动配置EPF10K20, 即装载程序入FPGA。芯片PCI9054已经整合了PCI协议, 实现了PCI总线的接口。整个板卡设计的关键工作就在于FPGA程序的设计、PCI9054的配置和板卡驱动程序的编写。PCI9054的正确配置是其正常工作的关键, PC操作系统在开机扫描总线时, 正确的配置信息使操作系统正确识别板卡, 并提示安装驱动程序。如果配置不正确或不完整, 则操作系统将找不到板卡, 并且可能死机。单靠硬件无法将数据送到内存供显示读数设备所用, 设备驱动程序是连接到板卡的软件接口。该设计中, 设备驱动程序的基本功能就是完成设备的初始化, 对端口的读写操作, 对中断的设置、响应和调用, 以及对内存和接口设备存储器空间的直接读写。这里选用的驱动程序开发工具是Windrive。Windrive与DDK和VtoolsD相比, 适应面比较窄, 但是它主要针对ISA/PCI插卡, 还包含一个代码生成器Windrive Wizward和针对于PCI9054的函数, 所以开发比较简单, 周期比较短。文献[4,5]在设计驱动程序之前, 对欲控制的硬件设备进行了细致的分析, 详细了解硬件设备的特性。硬件设备的特性对驱动程序设计会产生重大的影响。需要了解的最主要特性有:

设备的总线结构, 该设计中即PCI总线;

寄存器, 该设计中即配置的PCI9054寄存器的值;

设备的错误和状态, 了解如何判断设备的状态和错误信号, 通过驱动程序返回给用户程序;

中断行为, 了解设备产生中断的条件和使用中断的数量;

数据传输机制, 是I/O传输、DMA传输, 还是存储器映射传输;

设备内存, RAM的容量, 与系统总线 (PCI) 对应的基地址和范围[3]。

3 寄存器配置

设计好接口连接, 接口设计工作只完成了50%。由于PCI9054是通用PCI接口功能芯片, 它的功能还不一定能够满足用户的需求, 所以还要进行功能寄存器设置, 以使接口电路具有特定的功能。寄存器的配置包括E2PROM 初始化, 以及Local功能寄存器和PCI配置寄存器的配置。

3.1 E2PROM初始化

在计算机的加电自检期间, PCI总线的RSΤ¯信号复位, PCI9054内部寄存器的默认值作为回应。PCI9054输出本地LRESEΤ¯信号并检测串行E2PROM。如果串行E2PROM中的前33个比特不全为1, 那么PCI9054确定串行E2PROM为非空, 用户可通过向9054的寄存器CNTRL的CNTRL29位写1来加载E2PROM的内容到PCI9054的内部寄存器, 配置的信息 (设备识别号, 供应商代码号, Local总线三个空间的大小以及三个空间的基地址等) 事先要利用编程写入配置寄存器中。

3.2 PCI配置寄存器的配置

配置PCI配置寄存器比较简单。主要是填写生产商ID号、器件ID号、类码子系统ID号和子系统生产商ID号。对于PCI9054, 其生产商ID号为10B5, 器件ID号为9054, 子系统号ID为9054, 子系统ID号为10B5, 类码号为0680, 表示其为桥设备中的其他桥设备类[2]。

3.3 本地配置寄存器的配置

对于本地配置寄存器的配置就是对本地地址空间及其本地总线属性的配置。这些配置是根据实际开发的硬件板卡的硬件资源进行配置。设备人员配置寄存器的任务就是要把某一段本地地址应设为PCI地址, 也就是当主机CPU要访问本地地址空间时, 要知道其对应的PCI总线地址[6]。

4 电路板实现与测试

PCI规范对扩展板的机械和电气方面都有一系列的规范要求。在布板和绘图的过程中需要特别注意一些技术要求, 布出来的板子工作起来才会稳定可靠。如:除了PCI协议中的信号线外, 连接器本身的信号引脚值得注意, 如板卡存在信号ΡRSΝΤ1¯ΡRSΝΤ2¯;电源的退耦、PCI协议信号线的走线长度限制和扩展板上信号线的负载要求等都是在布板过程中特别应该重视的, 都要满足PCI电气规范的要求。

该设计中严格按照规范要求设计, PCI连接器上的ΡRSΝΤ1¯开路, ΡRSΝΤ2¯接地, 表示本板卡的最大功耗为15 W。元件的退耦电容采用0.1 μF, 电源的滤波电容采用10 μF的电解电容。采用存储器映射的传输方式, 本地时钟采用20 MHz时, 通过测试, 传输速率能够达到20 MB/s以上, 提高本地时钟的频率, 数据传输率还能够更高[7,8]。

5 结 语

这里实现的PCI数据传输接口, 有效地解决了系统的数据传输问题, 有利于数据的实时处理, 获得了比较满意的效果。随着信号处理技术的发展, 这种基于PCI的数据传输接口有着十分广阔的应用前景。

参考文献

[1]韩雪峰, 黄焱, 杨涛.基于PCI总线的高速数据采集接口的设计与实现[J].微计算机信息, 2005, 21 (12) :76-78.

[2]PLX Company.PCI9054 Data Book Version 2.1[S].Janua-ry, 2000.

[3]章岗, 冷传航, 肖欣.高速信号处理系统的PCI接口实现[J].北京广播学院学报, 2004, 11 (3) :48-51.

[4]武安河, 邰铭, 于洪涛.Windows 2000/XP WDM设备驱动程序开发[M].北京:电子工业出版社, 2003.

[5]张怡.PCI总线接口技术及其在雷达显示数据采集中的应用[J].舰船电子对抗, 2006, 29 (1) :27-29.

[6]孙丽英, 王晓锋.PCI9054及其在数据采集系统中的应用[J].仪器仪表标准化与计量, 2006 (5) :24-26.

[7]李贵山, 陈金鹏.PCI局部总线及其应用[M].西安:西安电子科技大学出版社, 2003.

高速总线 第9篇

关键词:PCI接口,数据传输,直接存储器存取,增强型直接存储器存取

0 引言

高速数据采集建立在计算机对数据的传输和处理基础上,计算机系统一般通过总线(Bus)实现相互间信息或数据交换的,PCI总线广泛使用在计算机中,一方面是因为该总线的数据吞吐量大;另一方面是因为该总线与具体的处理器无关。当前使用PCI总线进行数据传输有以下3种方法:① IP CORE,例如Altera的IP CORE,这种方法实现容易,但花费较大;② 使用内嵌PCI协议的专用芯片,例如AMCC的S5933,PLX的9054等,但前提是对此类芯片的用法非常熟悉;③ 利用高速FPGA来实现PCI总线传输,由于需对PCI协议及时序精通,因此程序调试相对困难,功能很难得到全面完善。由于高速数据采集系统的应用越来越广泛,本文采用基于TI公司TMS320C6416产品设计的高速数据传输平台,用户可以对芯片用法、PCI协议或时序等方面不需要特别熟悉,而且能够较大程度降低开发成本。基于TMS320C6416DSP芯片,实现了基于DSP的PCI总线高速DMA数据传输系统[1]。

1 硬件特性

1.1 PCI总线

PCI总线是由Intel公司首先推出的一种局部总线,是一种32位或64位数据宽度、地址/数据线复用的总线。通过PCI局部总线的全部读写传送都可以采用突发传送,并且突发传送的长度由总线主设备决定。在交互开始之后,目标收到起始地址和交互类型,但没有传送长度;在传送最后一个数据项时,主设备通知目标在本次传送后接收交互[2]。该总线自1993年推出以来得到了广泛应用,目前PC机多采用PCI总线,其主要特点如下:运行速度快,当采用32位传送时,数据传送速率可达132 MB/s;而采用64位传送时,数据传送速率可达264 MB/s。设备的设计独立于处理器的升级,具有可扩展性好、低功耗、即插即用和规范标准严格等[3]特点。

1.2 DSP硬件特性

TMS320C6416是TI公司最新推出的高性能定点DSP,PCI接口方便DSP与具有PCI总线的主机直接互连,广泛应用于各种高速、数据量大、实时信号处理系统中。芯片提供了多种外设功能模块,包括3个McBSP、EDMA、EMIFA/EMIFB和HPI等。DSP的PCI接口支持的PCI具有以下特征:PCI主/从接口,在DSP程序控制下的PCI中断请求,32位地址/数据总线,多达64 KB的主设备传输,通过EMIF、PCI可访问所有片上RAM、外设和外设存储器,符合PCI2.2版本的规范等[4]。

C64x器件通过EDMA控制器实现PCI接口和DSP的接口。PCI接口通过使用EDMA内部地址产生硬件的行地址译码,由该PCI接口,主机可以访问DSP整个片内RAM,集成外设以及片外存储器,主模式访问下突发长度最大为64 KB[5]。

基于DSP的PCI总线DMA数据传输主要有以下2种模式:① 主模式传输,使用DSP的EDMA控制器;② 从模式传输,使用PCI主机主板的DMA控制器。主板DMA控制器每次传输不仅要插入等待状态,而且均需多个总线周期。由于主板DMA控制器DMA通道数目是一定的,从模式的DMA传输也需一定的中断延迟时间,所以当DMA控制器到达缓冲区末端时,需要迅速对DMA控制器重新编程,从而使用另外一个缓冲区[6]。综上所述,本文设计的数据传输系统采用DSP主模式,配置上工作频率50 MHz,经内部倍频升至600 MHz。

2 系统框架组成

设计中高速数据采集及传输基于PCI总线,在PC中对数据进行存储与显示。板卡上的FPGA对接收到同步数据进行帧锁定接收处理,输出帧同步信号、串行数据和时钟给DSP。FPGA接收高速数据,当FPGA内部扩展FIFO乒乓缓冲,向DSP发出中断信号,DSP收到中断后自动触发EDMA[7]。

基于TMS320C6416的高速数据传输平台,当EDMA传输完成后向DSP发出中断,DSP接收中断后立即进行数据处理。DSP主程序利用EDMA进行数据传输时,采用触发事件启动,用外部中断4作为同步事件,对应EDMA通道4。对EDMA需设置如下参数:可选参数、数据单元计数、源地址、目的地址、链接地址、阵列/帧计数、阵列/帧索引和数据单元索引、数据单元计数重载值[8]。为实现数据流的连续传输和确保输入数据处理的正确性,采用数据多级缓存方式在L2存储器中分配12块大小为60 KB的缓冲区,因此EDMA有12组不同的传输参数,在这里不同传输参数组通过使用EDMA“连接”连接起来形成一个传输链,进而为同一通道服务。在形成的传输链中,一个传输结束后将从参数RAM自动装载下一次传输所需的时间参数。

DSP接收高速数据后通过高速PCI总线传送至计算机,计算机对传送数据进行内容显示和存储等监控操作。计算机通过相应驱动程序与DSP实现通信和数据交换,数据处理系统在某无人机信号处理系统中起着至关重要的作用。对于整个系统而言,要求要有DSP和PC机2套软件,实现高速数据到DSP和DSP到PC机的传输,其中PC机主要负责DSP程序加载、FPGA加载、读取处理结果并显示、存储数据。DSP与PC机间的数据传输涉及到PC机中相应驱动程序开发。系统整体框图如图1所示。

3 PCI总线数据传输系统

3.1 传输性能分析

主机向DSP产生的中断:通过写HDCR寄存器的DSPINT位,PCI主机可以向DSP产生一个中断。如果在PCIEN寄存器中使能了HOSTSW中断,则写该位会产生HOSTSW中断。

DSP向主机产生的中断:通过PINTA引脚,DSP可以向PCI主机产生一个中断。只有在DSP软件控制下,才会产生对主机的中断。

当中断发生后,DSP通过读取PCI中的断源寄存器(PCIIS)来判断中断源,并清除相应bit位。当检测为HOSTSW中断,MASTEROK中断表明一次DMA传输的结束,此时DSP6416清除MASTEROK中断标识,置数据可读取标识,申请中断。通过向HDCR寄存器的DSPINT位写1,向主机发出中断申请,并在规定内存写好标志是准备申请中断;主机收到中断申请后,读取标志并检测上一次DMA传输的结束后,同时在一次DMA传输完毕后将向DSP发出MASTEROK中断。

在主模式下通过PCI主设备地址(PCIMA)寄存器、PCI主设备控制(PCIMC)寄存器和DSP主设备地址(DSPMA)寄存器来实现初始化,控制并启动DMA进行数据传输。DSP需要根据PCI主机是否有数据请求及上一次DMA数据传输是否结束来判断是否启动PCI传输[8]。

3.2 传输流程

启动主模式写后,从源地址向DSP内部的写FIFO搬移所需数据由EDMA负责,当FIFO得到有效数据后,接口模块向外发出PCI总线请求,同时将FIFO中的数据向PCI从设备(主机)传输。在进行数据传输时,除非请求数据小于FIFO深度,否则数据传输将持续至FIFO满为止。当DSP源地址中的所有数据全部送至主模式写FIFO后,DSP内部数据传输结束。通过使能寄存器PCIEN的MASTEROK位,主模式在处理完数据时产生DSPINT中断。PCI接口不仅可以向DSP发中断,而且也可向PCI主机发出中断。DSP6416的中断程序流程如图2所示。

4 关键技术

4.1 FPGA缓存接收数据

受数据实时性的限制,存在后写入缓冲区数据可能会覆盖之前写入但并未处理的数据的这一问题,因此需开写/读乒乓缓冲区处理分流数据。当DSP对乒缓冲区进行数据读/写时,FPGA对乓缓冲区数据进行处理,双方处理完成后切换操作对象。FPGA乒乓缓冲设置如图3所示,其中FIFO存储器是具有先入先出特点的双口RAM,主要有缓冲数据和隔离时钟2个作用。

4.2 DSP与PCI总线数据传输方式

DSP与PCI总线数据传输方式有PIO和DMA 2种。PIO模式以数据块为单位传输完一个数据块后,硬盘会产生一个中断请求向主机报告命令执行结果;DMA模式主机与硬盘通过握手信号建立一个DMA通道,数据传输是以数据流的形式传输完一个命令的所有数据后,硬盘会产生一个中断请求向主机报告命令执行结果。主DMA模式DSP作为PCI主设备把数据通过PCI DMA通道向PCI从设备(PCI主机)传输。PC机驱动程序提供以PIO方式对PCI配置空间访问的接口函数。上层应用程序利用此函数读出数据适配器的SubID来区分控制的是哪一个数据适配器。驱动程序支持对多个数据适配器同时操作。数据适配器的DSP程序与驱动程序配合完成DMA传输,思路如下:驱动程序告诉DSP进行一次DMA传输所需参数:内存地址、本地地址、传输长度和传输方向;驱动程序用中断通知DSP立即开始DMA传输,DSP收到中断后,根据上步4个参数DSP启动DMA;DSP用中断通知驱动程序DMA传输完毕[9]。

4.3 驱动程序的开发

设备驱动程序的关键是如何完成硬件操作,基本功能是完成设备的初始化、对端口的读写操作、中断的设置和响应及中断的调用,以及对内存的直接读写。主DMA模式下数据传输的PC机驱动基于Windows系统开发,用户应用程序工作在系统的用户态,PCI驱动程序工作在系统的内核态,用户应用程序通过对设备文件进行操作实现与驱动程序的通信[10]。

驱动程序中,BASE1基址寄存器地址与DSP寄存器目的地址相加得到DSP访问地址,来实现通过BASE1基址寄存器访问映射到DSP存储器映射寄存器空间。作为PCI的主设备DSP将数据通过PCI DMA通道向PCI从设备(PCI主机)传输。应用程序通过内核驱动程序向DSP发出中断申请,并通过设置PCI主地址寄存器(PCIMA)确定DMA数据传输的PCI主机内存地址。

5 结束语

本设计中DSP与FPGA是通过设置EMIF接口的CE空间控制寄存器、控制总线读写操作来实现的,具体实现要注意精确配置EMIF接口的读写时序及通信频率。采用DSP6416与工控计算机实现PCI接口简单,并为PCI总线系统提供了极大的方便。PCI总线工作在33 MHz时钟,8位数据线,传输突发长度设定为60 KB的PCI DMA。项目证明DSP6416在传输方面性能良好,并被实际运用于工程中基于PCI总线的实时数据处理,硬件部分实现容易,并且可靠,采用EDMA方式,不仅节约了CPU资源,而且解决了高速数据采集系统中数据传输、存储、处理的瓶颈问题,还有效解决数据传输和处理的实时性问题,因此基于PCI总线的采集系统设计有广阔的前景。 

参考文献

[1]尹勇,李宁.PCI总线设备开发宝典[M].北京:北京航空航天大学出版社,2005.

[2]李鉴.PCI系列总线及其应用[J].现代电子技术,2002,25(4):76-79.

[3]张喜明,黄巍,高跃清,等.PCI总线实现高速数据传输的方法[J].无电线工程,2005,35(9):49-50.

[4]李方慧,王飞,何佩琨.TMS320C6000系列DSPs原理与应用[M].北京:电子工业出版社,2004.

[5]汪安民,张松产,常春藤.TMS320C6000DSP实用技术与开发案例[M].北京:人民邮电出版社,2008.

[6]鹿宝生,陈启美.基于DSP的PCI总线高速DMA数据传输[J].计算机工程与设计术,2006,27(19):3555-3 660.

[7]牛国朋,袁洪,范建军.一种基于FPGA和DSP的高性能PCI数据采集处理卡设计[J].微计算机信息,2006(4):137-137.

[8]何慧颖,胡越明,蒋嫣枫.基于DSP的PCI总线数据传输的实现[J].计算机工程,2004,30(12):497-498.

[9]张增辉,沈激.基于WinDriver工具的PCI卡驱动程序开发[J].核电子学与探测技术,2006,26(3):367-369.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

【高速总线】相关文章:

高速智能总线08-02

高速数据通信总线08-26

高速光纤串行总线光纤通信论文04-12

信息总线05-07

软件总线07-16

仪表总线07-30

总线控制08-29

PC总线05-08

数据交换总线06-16

总线网络设计06-21

上一篇:工程师站下一篇:骨科慢性疼痛