高速信号采集存储及传输系统的设计与实现
2012-07-03杨振家刘颖杰邓芳芳
杨振家,刘颖杰,邓芳芳,谢 华,李 力
(电子科技大学 自动化工程学院,四川 成都611731)
随着现代电子信息技术的迅猛发展,处理信号的带宽变得越来越高。为了满足对较宽频域范围内的高频周期、瞬态非周期信号的准确、实时处理,必须要有一种高采样率、高分辨率的信号采集模块,以便完成对高速、复杂信号的快速采样、存储和传输。本文中提出的高速信号采集存储及光纤传输系统采用Altera公司的Stratix IV处理平台,主要完成高速数据流分组、宽带数字下变频,以及可变带宽的信道化滤波等数字信号实时预处理工作和控制;实现对DDR2 SDRAM SODIMM内存条的控制,完成本地数据的缓存操作[1];实现 64 bit的 CPCI接口,完成与上位机的通信功能[2];实现高速数据的光纤传输。该系统集成度高,性能稳定,有着较好的应用前景。
1 系统方案设计
本设计中数据采集模块采用2个12 bit的A/D(AD9434BCPZ-500)进行数据采集。系统主要是对所采集数据进行处理,包括数字下变频、FFT变换等工作,并把处理后的数据先存入1 GB的DDR2 SDRAM SODIMM中,采集一定容量后就不再往DDR2 SDRAM存数据,等待上位机读取DDR2 SDRAM内存中的数据后再继续存取。上位机通过CPCI接口读取数据,并对读取的数据进行频谱分析、包络解调和实时显示。当操作者观测到数据稳定可以进行远距离传输时,便通过上位机发出启动传输命令,传输通路被使能,光纤高速传输部分开始工作,从而开始数据高速传输。应对数据传输速率大于数据采集速率的情况,在数据发送模块中增加数据整合操作,并对整合后的数据进行异步缓存,用来解决数据的跨时钟域问题。整合后的数据按照FC协议标准打包成帧[3]、8B/10B编码、和高速并/串转换,最后通过光模块把高速串行数字信号转换为光信号进行传输[4-5]。系统总体方案图如图1所示。
2 主要FPGA逻辑模块设计
2.1 FPGA逻辑设计总体方案
如图 2所示,整个系统以 FPGA为核心[6],FPGA的工作可以划分为逻辑控制和数据传输两大部分。FPGA通过PCI 9656接收上位机的控制命令字,控制A/D采集、数据传输的工作,并协调整个系统的工作;同时FPGA要上传A/D采集到的数据。
2.2 PCI 9656本地接口以及系统控制逻辑模块
首先当PCI 9656获得来自PCI总线的写命令和写数据之后,开始向本地请求总线控制权;得到总线控制权后,ADS信号向下跳变,持续一个周期的负电平,同时送出本地写地址和写数据,写信号有效一个时钟周期后,若本地总线返回的Ready#信号为低电平,说明本地已接收到了数据,PCI9656就会送出下一个写地址和写数据;若该信号为高电平,则上一个写地址和数据将会继续保持,直到该信号转为高电平[7-8]。
2.3 A/D采集数据接收模块
数据采集卡使用TI公司最高采样率为500 MS/s的12 bit AD9434BCPZ-500芯片,该芯片在500 MS/s采样率下的随路时钟是500 MHz。在FPGA内部用A/D的随路钟可以对采样数据进行解串,为了降低数据输入速率,以面积换速度的原则,选用4倍LVDS解串,输出解串时钟为 125 MHz,数据宽度为 48 bit。解串后 48 bit并行数据相邻12 bit按位交错,需要重新进行排列组合,使其高低12 bit分别为一个完整数据。
2.4 DDR2 SDRAM控制器及本地接口逻辑设计
2.4.1 DDR2 SDRAM控制器本地读逻辑
当PCI 9656以DMA方式读取本地DDR2 SDRAM中的数据时,该模块向DDR2 SDRAM控制器发送读数据请求信号local_read_req,同时将读地址送出。当DDR2 SDRAM控制器输出的local_rdata_valid信号有效时,表示读数据已送出,此时锁存这些数据,并将这些数据送出给PCI 9656。判断local_ready信号,如果该信号有效,则可继续向DDR2 SDRAM控制器发送读请求;如果该信号无效,则等待直到信号有效再发起读请求。直到PCI 9656读空DDR2 SDRAM中的数据[9-10]。
2.4.2 DDR2 SDRAM控制器本地写逻辑
A/D采集的数据先存入两个异步FIFO中,两个FIFO作乒乓操作。当其中的一个FIFO满时,向DDR2 SDRAM控制器本地发出写DDR2请求。本地控制器在接收请求以后,发出FIFO固定深度字节数的请求,然后回到等待FIFO空状态,当接收到空信号后,跳回等待写状态,等待FIFO再次满。如此反复,直到写满固定的容量后跳回IDLE状态[11]。状态转换如图3所示。
2.5 基于FC协议的光纤传输机制设计
2.5.1 帧的生成
帧的构成包括起始界定符、帧头、数据载荷区、CRC校验位和终止界定符几个部分。帧生成模块在状态机的控制下,在不同的阶段,完成相应帧的组装过程。发送的帧包括 PLOGI(登录帧)、LOGO(注销帧)和数据帧。帧生成模块内部功能结构如图4所示。
2.5.2 端口控制状态机
端口控制状态机转移图如图5所示。系统在上电之后首先进入端口初始化状态,等初始化完成后就进入IDLE状态,期间如果没有接收到发送命令,则发送IDLE原语进行填充。当接收到Send Command后,转到SEND FLOGI状态,发送登陆帧;接收到LS_ACC帧后确认登陆成功,加上起始界定符后跳向SEND FRAME DATA状态;当接收到Stop Command后加上CRC校验位和结束帧EOF转向SEND LOGO状态,在此状态发送LOGO帧,请求注销;接收到LS_ACC帧后回到IDLE状态,等待下次传输命令。
3 系统调试及结果分析
本系统采用Altera公司的Stratix IV GX系列芯片,设计经Quartus II 10.1全编译。由其编译报告可知该硬件系统的实现占用了较少的硬件资源,这为以后实现多路光纤通道传输的设计提供了足够的资源。因本系统有两个光纤端口,所以在测试时采用自测试模式,用一个作为发送口,另外一个作为接收端口,同时本地只使能一路A/D。现对60 MHz的中频调制信号采集、传输、接收后给上位机,上位机对接收到的数据进行谱分析和解调,测试结果如图6所示。
从图6可以看出,上位机显示的是接收端接收到的正弦波(调制波)的信号波形,与发送前监测的原始数据波形一致。说明系统能正确恢复采集到的信号,基本满足设计要求。
本文在研究了光纤通道协议的帧结构及不同服务类型的交互方式的基础上,参考了光纤通道协议第三类服务,结合当前自动测试系统的应用需求,设计了一个基于光纤的高速信号采集、存储及光纤传输系统。DDR2 SODIMM内存条和光纤传输技术的应用使得系统成本得到降低,且系统的主要数据处理、控制和传输协议都在FPGA中实现,很大程度上降低了系统复杂度,使得系统性能、集成度和稳定性得到很大的提高,同时增加了系统设计的灵活性。
[1]JEDEC Standard No.21C.200-Pin DDR2 SDRAM unbuffered SO-DIMM design specification[S].2008.
[2]Agilent.U1080A acqiris high speed CPCI digitizer with onboard FPGA processing[A].2012.
[3]American National Standards Institute(Rev 1.90).Fiber channel-framing and signaling(FC-FS).FC-FS Draft Standard[S].2003:62-70.
[4]李霖.基于光纤通道的LVDS视频数据传输系统接收端设计与实现[D].成都:电子科技大学,2009.
[5]American National Standards Institute(Rev 1.90).Fibre channel-link service(FC-LS).FC-LS Draft Standard[S].2006.
[6]Altera.Stratix IV Device Handbook[A].2009.
[7]黄绍锦.基于CPCI总线的中频信号处理模块的设计[D].成都:电子科技大学.2008.
[8]SFF Committee.SFF-8431(Revision 4.1).SFF-8431 specifications for enhanced small form factor pluggable module SFP+[S].2009.
[9]周楠,王志刚.数据采集卡光纤高速收发模块的设计[J].光通信技术,2011(12):28-31.
[10]PCI-SIG.PCI Local Bus Specification(Rev.2.2)[S].1998.
[11]任颖.DDR2 SDRAM在高端数字存储示波器中的应用[D].成都:电子科技大学,2009.