维普资讯 http://www.cqvip.com
《工业控制计算机)2006年19卷第6期 21 基于PCI总线和DSP的多串I=I数据采集卡的设计与实现 Design and Implementation of Multi-SPI Data Acquisition Board Based on PC l l nterface and DSP 冉策方 周国忠’ (1中国科学院光电技术研究所,四川成都610209;2中国科学院研究生院,北京100039) 摘 要 针对集散控制系统的工作特点和要求,充分考虑和融合了FPGA和DSP芯片的资源和特点,介绍了一种通过PCI接 口扩展多路RS一422串口的数据采集卡实现方法,详细介绍了工作原理和硬件实现。 关键词:DSP。PCI,FPGA,RS一422,数据采集 Abstract in the view of the characteristics and requirements of the Distributed ControJ System,the resources and traits of FPGA and DSP have been fully considered.the design and realization of multi RS一422 SPI data acquisition board based on PCI interface is introduced in this paper.the operational principle and implementation of the hardware is described in detail. Keywords:DSP。PC1.FPGA.RS一422,data acquisition 在工业控制系统中,监控主机和下位机间的大容量数据的 能,两路事件管理器(EVA和EVB)、16路12位A/D,SCI、SPI、 实时采集和处理结果的高速交换,对通信接口的传输速率有很 eCAN和McBSP四种串1:3外设。F2812外围接1:3电路如图2所 高的要求,同时,由于现场需要监控的对象分布广、数量多,计算 示。F2812上带有一个外部接1:3(XINTF),XINTF具有19根地址 机自带的两路RS一232串1:3无论是在性能上还是在数量上都不 线,16根数据线,寻址空间为1Mbit,划分为5个存储映象区域 能满足实际需要。PCI总线是一种高性能的局部总线,利用计算 (zone0、zone1、zone2、zone6和zone7),每个区域的参数都能 机的PCI插槽扩展多路RS一422串1:3,非常适合于集散控制系 够单独配置,可以灵活地与多种不同速率的外设连接。 统的需要。同时,把数字信号处理器DSP应用到数据采集卡中, 用DSP替代主机管理多外设接口,可以节省主机资源,减轻主 AB(11:0) 9,- XA(18:O)_. AB(7:0) 机在数据交换中的大量工作。DSP具有哈佛结构和流水线操作 DB(15:0 ●’ XD(15:0)●' DB(2:0) 等优点,完全能够满足采样速率快,信号处理实时性的要求。 W删 ■一 XZCSO# ●一 XZCSl CS Rx MAX 1 采集系统的结构 EN 采集系统的结构框图如图1所示。系统的主要功能模块有: ●一 XWE INT Tx 3462 TI公司C2000系列的DSP芯片TM¥320F2812,UART芯片 SRAM ●一 X - lOW 串口 ST16C654,系统逻辑控制FPGA芯片XC2S300E和PCI总线 ■一 ⅪtNW RST 接口 控制器PCI9054。DSP负责接收外部串口数据,进行预处理后 —■ XREADY CLKSEL 送入FPGA的双口 FPGA — ⅪNT1 1 ART RAM内,当双口 — ⅪNT2 RAM内的数据达到 1 F2预先设定的数据量 l 812 时,由FPGA产生中 圈2 F2812外围接口电路 断信号通知主机读 F2812通过zone0与外部8路RS一422串口进行通信。当 取数据。监控主机发 UART需要发送或接收数据,或者内部出现异常情况时,会通过 送命令是通过PCI XINT2引脚向F2812发出中断请求,F2812响应请求后,通过读 总线向双口RAM写 取UART内部的中断状态寄存器(ISR)的值来判断是哪一种中 入数据,由中断的方 图1 采集系统原理框圈 断,再做出相应处理。F2812通过zone1与外部双口RAM进行 式通知DSP把数据取出, 数据交换,把双Iq RAM分为三组,RAM1和RAM2用于存放外 再通过串口发送至下位机。 部串口采集的数据,RAM3用于存放主机向外设发送的命令。采 2系统的硬件设计 集数据使用的是一种乒乓式机制,当RAM1内的数据存放满 2.1 DSP控制模块 时,通过PCI9054向主机发出中断信号,在主机读取RAM1数 TMS320F2812是一款高性能的32位定点芯片。最高工作 据的同时,采集数据被写入RAM2,RAM2写满后向主机发出中 频率可达到150MHz,对C2000系列DSP代码向下兼容,片上 断信号,在主机读取RAM2数据的同时,采集数据被写入 Flash达到128kx16bit,片外存储单元可扩展至1Mbit,提供3 RAM1,如此反复交替,使得数据的采集与读取可以同时进行。 个外设中断引脚(XINT1、XINT2和XINT13),具有代码加密功 主机向外设发送的命令被写入RAM3中,当数据量达到预设值 维普资讯 http://www.cqvip.com
时,通过XINT1引脚向F2812发出中断请求,F2812响应中断 后,把数据读入到DSP内部RAM中,再通过zone0发送至串 口外设。 串口送人的数据是从工业现场直接采集得到的,针对不同 的采集对象,需要进行不同处理运算。F2812具有与它的控制能 力同样优秀的数据处理能力,在完成基本的数据采集功能的基 础上,可以为数据预处理提供一个很好的通用平台。 2.2 UART模块 F2812本身带有两路RS一232串行通信接口,仅适合于数 据传输速率在0-20kbps范围内的通信,最大传输距离为15m, 不能满足本设计的需要。我们采用F2812的外部接口XINTF扩 展了8路RS一422串口。RS一422串口采用平衡通信接口,传输 速率可达到10Mbps,最大传输距离为12OOm。 根据设计需要,UART的实现采用Exar公司推出的 ST16C654芯片。该芯片支持RS一422串口通信标准,数据传输 率可达到1.5Mbps。每片芯片内带有4路的UART,每路 UART带有两个FIFO,分别用于接收数据和发送数据,FIFO深 度为64字节,具有4种可选择的中断触发级,操作非常灵活。当 接收FIFO内的数据量达到触发值或者发送FIFO内的数据低 于设定值的时候,UART便发出中断信号,要求DSP读数或者 写数,由此,便完成了与外部串口设备的数据交换。 由于RS一422串口采用的是差分传输模式,在使用时需要 有串口芯片用于电压转换,我们选用的是MAXIM公司开发的 MA×3462串口芯片,该芯片可以支持的最高传输速率为 20Mbps,完全满足设计需要。 2.3 PCI总线接口模块 PCI是一种于处理器的32位总线,传输率可达 133MB/s。PCI总线支持猝发读/写操作,允许外围器件与CPU 进行智能对话,完全实现了即插即用,性能大大优于传统的ISA 总线。PCI协议定义了严格的电气特性和时序要求,其接口电路 实现难度大,采用专用的PCI接口芯片,可以避开复杂的PCI 协议的细节设计,大大缩短开发周期。本设计选用的是PLX公 司生产的PCI9054接口芯片作为PCI总线控制器。 PCI9054符合PCI规范2_2版本,突发式数据传输峰值可 达到132Mb/s,本地时钟最高可至50MHz,采用先进的数据管 线技术设计,内部集成了两个的DMA通道,支持主/从模 式传输。芯片的局 部总线可配置为 —.-- ADal 0] u ̄(31 o] ◆ M、C、J三种模 —--- CrBEO:O)LA(3 ̄ O) —..- 式,M模式为 ——● P.ST#LBE(3:o] —--- Motorola处理器 ●一 瑚 LINT# ●一 专用,C为地址数 ~ —' CLK LI'I∞ —_,. ——据非复用模式,J ● FRAME#LHOLDA ●一 为地址数据复用 PCI ●一 DEVSEL#LW ——■ 局部 总线 ——■ mDY READY ●一 总线 模式。根据本次设 ●一 IRDY ADS —— 计的要求,局部总 ——■ DSEL BLAST# ——● 线的配置采用C ●~ SToP 模式,数据传输采 ——■ LoCK 用DMA模式,即 ●一 PAR PCI9054 在数据传输的过 ■—■ PEER# 程中,PCI9O54同 ●一 SEER# 时作为PCI总线 ——● REq# 和Local端的控 ●一 GNT# 制器。PCI9O54与 圈3 PCI9054与PCI总线和局部总线连接 基于PCI总线和DSP的多串El数据采集卡的设计与实现 PCI总线和局部总线的连接如图3所示。 在DMA模式下,要向Local端写入数据时,PCI9054首先 驱动LH0LD信号有效来申请占用局部总线,局部总线空闲时。 LHOLDA信号被置为有效,将总线控制权交给PCI9054。因为 局部总线上只有一个PCI设备,所以将LHOLD和LHOLDA直 接相连,即请求将立即被响应。接着。PCI9054驱动ADS#信号 有效来表明新的数据传输周期开始,同时驱动局部地址信号 LA,读写信号Lvv/R{I},字节使能信号LBE#。当双口RAM做好 接收准备时。即在READY#信号有效期间内,当每个时钟的上 升沿到来时,地址信号自动递增,同时PCt9054将相应数据装 载到局部总线LD上。数据在下一个时钟周期的上升沿被写人 双口RAM中。当DMA数据段传送到最后一个双字时,PCI9054 驱动BLAST#信号结束此次DMA传输。读操作与写操作类似。 2.4 FPGA模块 数据采集卡的内部逻辑控制选用的是Xilinx公司Spa ̄an一 ⅡE系列的FPGA芯片XC2S300E,该芯片具有3O万逻辑门, 182个可用I/O管脚,8k字节的可配置RAM块,核心电压为 1.8V。能够满足速度快和功耗低的要求。 FPGA的设计采用了自顶向下的方法,先构建整个系统的 框图,再进行系统划分,对每个模块进行单独的设计输入、综合、 布线、仿真。各个模块的设计和模块间的连接采用VHDL硬件描 述语言完成。 3系统的调试 Windriver是Jungo公司出版的一款设备驱动程序开发组 件.跟DDK、DriverStudio等开发工具相比,Windriver开发的驱 动程序效率不高,但是Windriver不需要开发人员熟悉操作系统 内核,对PCI设备有很好的支持,提供了大量API函数可以在用 户层直接访问底层硬件资源。对硬件开发人员来说, Windriver 可以作为PCl/ISA/USB设备非常方便的调试工具,在效率要求 不苛刻的场合,用Windriver开发的代码可以用作设备驱动程序。 调试过程中,把采集卡插入计算机的PCI插槽后,可以通过 Windriver提供的硬件诊断工具DriverWizard观察系统分配给 采集卡的资源。再使用Windriver对PCI9054的内部寄存器以 及配置EEPROM进行配置、查看和修改,确保寄存器配置参数 符合工作要求。然后分别使用自收自发和互收互发的方式来验 证PCI设备读写工作是否正常。先把UART设置为自闭环工作 模式,即发送端和输出端在内部直接连接,这样可以实现主机的 自收自发。如果收发数据一致,证明PCI设备读写工作正常。然 后再使用该数据采集卡与MO×A卡进行通信,以互收互发的方 式来验证设备是否工作正常。两种方式得到数据都稳定可靠,说 明PCI采集卡工作正常。 3结束语 采集卡采用DSP管理外部串口设备,节省了主机资源,提 高了整个系统的工作效率,并且为数据预处理提供了良好的平 台。目前,该采集卡已在实际系统中得到良好的应用。 参考文献 [1]PLX Technology Inc,PCI9054 DATA BOOK,US,PL Teoh— nology Ino。2000 [2]TEXAS INSTRUMENT Ino,TMS320F281 2 Digital Signal Pro— cessors。US,TEXAS INSTRUMENT Inc。2001 . [3]盛刚,唐厚君.基于PCI总线和DSP的运动控制卡的设计和实现【J】l 工业控制计算机,2004。17(11):5-6 [牧稿]El期:2005.12.20]