声发射技术是光纤传感技术和声发射技术相结合的产物,是目前声发射技术的发展趋势。它将高灵敏度声发射传感器安装于受力构件表面以形成一定数目的传感器阵列,实时接收和采集来自于材料缺陷的声发射信号,进而通过对这些声发射信号的识别、判断和分析来对材料损伤缺陷进行检测研究并对构件强度、损伤、寿命等进行分析和研究。
在实际的构件检测中,现场声源信号通常是在100~800 kHz之间的微弱高频信号,而且材料损伤检测、声发射源定位往往需要多个传感器形成传感器阵列,而声发射信号的数据传输系统必须达到640 Mbps以上的数据传输能力;并应具有应付突发或长时间数据接收和存储能力。本文就是利用CPLD来实现对声发射信号的采集,从而有效解决了数据的实时传输和存储问题。
1 系统方案设计
本方案采用FIFO存储器构成外部大容量数据缓冲区,而使用PCI总线的DMA传输方式与微机进行高速数据传输。现场声发射信号经过AD转换和驱动电路驱动后进入PCI板卡,然后将部分数据锁存,同时将并行信号转换为串并行信号,通过CPLD控制逻辑电路存入FIFO。当FIFO存储器中的数据到达一定状态时,CPLD控制逻辑会产生中断信号给PCI9054总线控制器,之后由后者启动DMA传输将数据传人计算机内存中。DMA传输完成后,PCI9054产生通道中断,并由计算机将数据从内存取出存入硬盘。该数据存储传输模块的总体框图如图1所示。
[tr]
[/tr]
2 FIFO数据存储电路设计
FIFO是一个先人先出的双口缓冲器,为保证整个系统正常工作,FIFO存储器允许系统进行DMA操作,以提高数据的传输速度。否则,数据传输将达不到传输要求,而且会大大增加CPU的负担,甚至无法同时完成数据的存储。
本设计在数据传输系统中采用了六片IDT72281芯片来缓存数据,并将其分成两组,其中由三片FIFO进行字宽扩展,图2所示是其缓存传输示意图。按照这种设计,其字宽可达27位,可以传输24位数据和两个OTR位。
3 CPLD逻辑控制
本系统中由于要对高速信号进行处理,因此,对控制信号的时序要求比较严格。在控制芯片的选择上要尽量选用时延小、速度快的芯片。本设计采用美国Altera公司的MAX7000S系列可编程逻辑器件EPM7128SLC84-15,并采用MAX+PlusⅡ来完成系统的输入、编译、验证及编程,进而完成向量测试及仿真.最后的数据可通过下载线传输到芯片中来完成芯片的配置。
[tr]
[/tr]
3.1 CPLD逻辑控制电路
CPLD为采样控制器的核心,数据传输所要求的严格时序控制关系就由CPLD负责处理。它在本系统中主要负责产生与PCI9054的握手信号、数据存储器的片选信号和读写控制信号。CPLD的外围信号接口如图3所示。
[tr]
[/tr]
CPLD可根据FIFO存储器的时序控制要求产生控制信号,并在第一个时钟周期中将数据分别存入FIFO和数据锁存器74LS373中,而在第二个时钟周期将锁存器中的数据再存入FIFO,从而完成并行数据向串行数据的转换。同时根据存储器的相关信号向PCI9054控制器发出中断请求,并在PCI9054读取数据时产生相应的控制逻辑。
3.2 CPLD控制逻辑
当并行数据进入板卡后,CPLD首先将一部分数据存入锁存器,而将另一部分数据直接存入FIFO。但此时必须将写时钟信号WCLK进行二分频,以便在一个AD转换周期内完成两次FIFO写操作。当FIFO数据到达半满时,CPLD便向PCI9054发出中断申请,并由PCI9054将该申请传入计算机。若系统响应该中请,则在中断响应程序内发出读命令,以读取字节数和地址信号等。
PCI9054通过LHOLD申请LOCAL总线控制权,而CPLD则通过LHOLDA响应,以使PCI9054能得到局部总线的控制权。PCI9054首先将PCI地址窄间映射到本地地址空间,接着启动本地总线的散聚DMA周期。CPLD收到读信号(LW/R)、地址选通信号(ADS)和地址(LA16、LA17)后便开始传送数据。当LA16位为0,LA17位为1时,系统将使能后三片FIFO的读使能端(REN2),以使后三片FIFO数据线上的Q0~Q31有效而同时也使PCI9054的准备好信号(READY)有效,开始数据传送。在最后一个数据传送之前,BLAST信号有效,之后,CPLD将在一个时钟周期后使FIFO的读使能(REN1或REN2)无效,从而完成一次数据传送过程。
3.3 控制程序设计
PCI9054单周期读、写和DMA读的VHDL语言时序控制状态机设计如图4所示。图中,S0为空闲状态。当本地总线请求信号LHOLD被置1时转到S1,否则留在S0。S1为总线保持状态,此状态下应将本地总线响应信号LHOLDA置1。如ADS信号为0且LW/R为1则转到S3,如ADS信号为1且LW/R和BLAST为0则转到S4,这种状态表明此次读操作为单周期读。S2为DMA读状态,在此状态下应将READY信号和FIFO读使能信号REN1置0。如BLAST为1,则表明此次DMA读取还未完成,应继续留在S2,如BLAST为0,则表明此次DMA读取完成,可转到S4。S3为单周期写状态,此状态下也要置READY信号为0以表示写数据有效,并在BLAST为0时转到S4。S4为读写操作完成状态,当LHOLD被置0时,表明PCI9054不再请求本地总线,此时应转到S0,当BLAST为0且LHOLD为1时,表明PCI9054还要进行数据读写,故应转到S1继续操作。
[tr]
[/tr]
3.4 控制程序逻辑的仿真结果
MAX+PLUSⅡ是开发Aletra公司的FPGA/CPLD系列产品的软件工具,本设计利用此工具提供的设计环境和设计工具来对CPLD控制程序进行开发和调试。其功能时序如图5所示。
CPLD的设计是用VHDL编程实现的。本设计的操作代码都已经过仿真,并在实际调试中得到应用。
[tr]
[/tr]
4 系统驱动程序设计
本设计使用DriverWorks的DriverWizard来创建WDM框架程序。可根据设计需求添加程序代码,从而完成PCI设备的DMA传输系统驱动程序,以执行DMA操作、访问I/O端口和存储器空间、处理器中断和访问PCI。根据系统需要,驱动程序的关键是三个方面:硬件访问、中断处理和DMA传输。
KdmaAdapter类可用于建立一个DMA适配器,以标明一个DMA通道的特性和提供串行化访问服务;KDmaTransfer类则用于控制DMA的传输和启动DMA传输,以传输DMA数据缓冲区物理地址和字节数,DMA传输结束后,数据将由公用缓冲区拷贝到应用数据缓冲区;KCommon DmaBuffer用于实现公用缓冲区的操作。对于DMA操作,本系统还提供了一个特殊的内存,即公用缓冲区。应当说明的是,公用缓冲区是稀有的系统资源,应该避免浪费使用。
5 结束语
本文给出了数据缓存、传输模块控制电路的设计,并采用VHDL语言和CPLD很好的完成逻辑控制任务和系统驱动程序的编写与调试。实验结果表明,该数据存储传输模块的硬件、软件工作十分可靠、稳定,可实现640 Mbps(80 MByte/s)以上实时数据的存储与传输,完全能满足声发射信号采集的要求。