2010年第1D期 中图分类号:TP274 文献标识码:A 文章编号:1009—2552(2010)10—0146—03 基于FPGA+DSP的多通道数据采集系统设计 史洪玮 ,王紫婷 ,宁 平 ,张鹏图 (1.兰州交通大学电子信息与工程学院,兰州730070;2.兰州交通大学电工电子实验中心,兰州730070) 摘要:介绍了一种基于FPGA+DSP的多路数据采集系统的设计方案,描述了系统的硬件设计 方案和硬件电路,介绍了信息采集过程以及外围通讯接口及软件设计。通过Quartus II8.0 2 ̄.CCS2 进行系统仿真,证明了系统设计方案的可行性。 关键词:数据采集系统;FPGA;DSP;FIFO Design of multichannel data acquisition system based on FPGA and DSP SHI Hong—wei ,WANG Zi-ting ,NING Ping ,ZHANG Peng-tu (1.S ̄ool of Electronic Information and Engineering,Lanzhou Jiaotong University,Lanzhou 730070,China; 2.Electicral&Electronic Experimental Center,Lanzhou Jiaotong University,Lanzhou 730070,China) Abstract:The paper introduces the design of muhichannel data acquisition system based on FPGA and DSP.Hardware desin and cigrcuit of the data acquisition system and software desin arge introduced, external communication interface and the process of acquisition are described.Simulation results by Quartus II8.0 and CCS 2 prove that the design of he systtem is feasible. Key words:data acquisition system;FPGA;DSP;FIFO 0 引言 在以往的数据采集系统中,单片机、DSP常常被 选作主控制器,但随着FPGA性能的不断提高,具有 l 糸玩设计 数据采集系统硬件原理框图如图1所示,由图 知DSP收到上位机发送的命令完成系统工作参数 的配置,然后向FPGA发送指令,FPGA收到指令后 一时钟域高,内部延时小,速度快,全部逻辑由硬件完 成等优点,因此在高速数据采集方面FPGA相对有 着巨大优势,但也存在难于实现复杂的算法的缺点, 而DSP适合于高速算法的处理,因此为了弥补系统 的不足,本系统采用FPGA+DSP的方案。本系统 方面对多路模拟开关进行选通让选通信号通过信 号调理电路实现电平调整并进行A/D转换的时序 控制,另一方面把转换好的数据进行数据缓存,当 FIFO满时并产生DSP能识别的外部中断信号及标 识信号,通知DSP取数据,最后DSP对采集到的数 据进行滤波处理、变换、谱分析。 数据采集的控制部分、缓存及外围通讯部分,用FP— GA硬件实现;算法处理由DSP完成。在线采集的 数据存放在DSP外挂的SRAM中。 本设计采用DE2,THDB.ADA开发平台进行开 发。DE2平台选用的是FPGA EP2C35F672。 THDB—ADA是针对DE2开发板设计的一款子开发 板,由FPGA实现对AD的控制。在本系统中只用 图1系统硬件原理 收稿日期:2010—05—07 作者简介:史洪玮(1985一),男,硕士研究生。研究方向为测试计量 到了模块的AD转换部分。其中的芯片AD9248是 一款双通道模数转换器。另外DSP选用了TI推出 的TMS32OUC54o2。 一技术及仪器。 146一 2 硬件设计 2.1通道切换电路 端接口元件,将各种信号转换成DSP能读取的并行 本系统采用16通道ADG506模拟开关进行各 通道的切换。它具有开关速度快、泄漏小等特点。 格式数据。 FPGA的开发采用自顶向下的设计方法,即指 将一个系统按功能划分为不同的模块 J,而模块再 根据需要再次划分为二级模块,依此往下直到模块 易被实现为止。通过Verilog编程FPGA即可生成 它主要有A0~A3,s1一s8,D,EN端口。其中A0一 A3是二进制地址信号输入端,译码结果用来选择有 效的输出通道;S1一S16是l6路信号的输入端,在 此可以根据需要选择通道数;D是被选择通道的信 号输出端;EN是选择开关使能控制端,高电平为有 效。FPGA通过数据帧(如表1所示)来进行通道选 以下逻辑功能模块:主要有双口SRAM模块,ADC 接口模块、调理电路放大倍数控制模块、数据接收模 块,以实现对输入信号的采集、存储、处理、输出。 2.5 DSP硬件电路设计 择,每次只选择一路,经A/D转换后送人FIFO。 表1帧结构的数据格式 D】D0 A5 A4 A3 A2 A1 AO A0一A5表示所选择通道,其中A4,A5恒为0。 Do—D1表示帧结构数据起止标识位。 2.2信号调理电路 信号调理电路 对模拟信号进行了一定的放 大/衰减,使信号的幅度满足AD芯片的要求。 本文的前向调理电路采用高速低噪声的模拟开 关MAX4545去选择不同的反馈电阻,同模拟运算放 大器MAX817构成标准的反相运算放大器来实现 前向调理。MAX817的单位增益3dB,截止频率高 达50MHz,满足宽带宽的要求。MAX4545的四根控 制线由FPGA设计控制电路去控制,具体是由复位 按钮进行边沿触发,使四位输出电平在0001、0010、 0100、1000之间轮流切换,将输出电平去控制 MAX4545的四根控制线,这样就实现了不同的放大 倍数之间切换,控制信号与放大倍数的对应关系,如 表2所示。 表2控制信号与放大倍数的对应表 2.3滤波电路 系统接收到的模拟信号总是混有噪声成分,为 达到奈奎斯特采样定理 所要求信号频率的频率 范围,需要利用低通滤波器除去干扰信号及抑制混 叠现象,即进行衰减与滤除。本设计选用二阶巴特 沃斯低通滤波器电路来滤除信号中的高频分量,其 特点是通频带内的的响应曲线最大限度平坦,没有 起伏,而在阻频带逐渐衰减为0.2阶的巴特沃斯低 通滤波器幅频。 2.4 FPGA硬件电路设计 FPGA作为接口电路的主芯片,充当DSP的前 在数据采集过程中,采集的数据缓存在FPGA 内部构建的FIFO_4 中在线采集时,通过FPGA与 DSP接口将FIFO中的数据转存到的DSP外挂的 SRAM内,当需要分析数据时再从存储器中取出。 DSP外挂FLASH存放程序及配置信息。 3 软件设计 3.1 FPGA软件设计 3.1.1 FIFO模块 数据在传人FPGA后,直接采用数据在传人FP— GA后,直接利用RAM 来设计的同步FIFO来缓存 采样数据(如图2所示)。将FIFO抽象为环形数 组,并用读、写指针来控制对环形数组的读写。该 FIFO提供读使能(fford)和写使能(ffowr)输入控制 信号,并指示FIFO的状态(非空(nempty),非满 (dul1))。没完成一次读写操作,地址加一。随着 地址的增加,采样数据被依次存人双口RAM中,当 存完数据后向DSP发出信号。 图2 FIFO 3.1.2 ADC接口模块 ADC接口模块 主要由分频器、通道选择模块 和ADC控制模块组成。分频器一方面产生ADC控 制模块的工作时钟,另一方面提供采集启动信号以 触发通道选择模块。通道选择控制模块,输出地址 信号到多路开关,用来选择采集对应通道的数据信 息。该模块 由分频器产生的采集启动信号触发 一147— 启动。ADC控制模块,主要完成模数转换器的配置 和读取。根据通道选择模块发出的AD启动信号, SRAM的初始化,即完成对EMIF内部关于 SRAM参数寄存器的初始化 3.2.2数据采集模块 按照配置信息对选择的通道进行A/D转换。该模 块的数据接收触发信号在一次A/D转换结束后该 信号有效,表示开始接收转换结果。为提高准确性, 采取平均值滤波的方法,然后将结果输出至寄存器 DSP对数据采集控制主要通过查询和中断两种 方式进行。本系统是通过中断方式进行,即指当 FIFO满时产生一个高电平中断。它的主要流程由 系统初始化和开启中断组成。 初始化程序完成对所有变量以及DSP相应寄 存器的初始化工作,同时复位SRAM,并完成采集通 阵列,同时向通道选择模块输出数据有效信号,标识 该通道数据采集结束,数据有效。 3.2 DSP软件设计 DSP软件设计 包括模块化编程,其中包括初始 化模块、数据采集模块、通讯模块、FFT功能模块等。 3.2.1初始化模块 初始化模块涉及锁相环的初始化,FLASH的初 始化、SRAM的初始化等。 锁相环的初始化,本系统中PLL输人时钟为 10MHz的晶振,输出时钟有两个,一个是DSP内部 时SYSCLK1,另一个是EMIF3。为了得到这两个时 钟而进行初始化。 道及量程的设置,随后开启中断,进入等待中断状 态。当检测到中断时进人中断服务程序,并查询 FPGA相关寄存器查询哪一通道的中断,并将数据 存于SRAM中。 3.2.3通讯模块 UART在FPGA内部实现,但是接收数据的是 DSP。DSP接收数据时UART采用中断方式,即由 UART接收FIFO满产生中断通知DSP去读取信息。 3.2.4 F 功能模块 FLASH的初始化,EMIF接口对于异步器件的 控制通过A1 CR来实现,主要是根据FLASH参数设 置数据位宽、读写建立时间、读写选通时间、读写保 持时间。 ●啊● DSP对采集到的数据进行滤波处理、变换、谱分 析,下面以F订为例对信号进行采样点为512的谱 分析,如图3所示。 螂 2 O 老尊 ●●● _ j jl lI 嗣啦 ●嘴 l, 麓■ _■ 誓J ●1● 1●2 tn 1_】薯 ●■‘, ●_ 矗1 图3信号频谱图 3.3 FPGA与DSP的接口设计 足采集速度和A/D转换精度的要求。 参考文献: [1]徐海东,叶卫东.FPGA在高性能数据采集系统中的应用[J].计 算机技术与应用,2005,25(1):4o一43. [2]刘军,岳兴莲,何国国,等.基于FPGA的数据采集系统的设计 [J].硬件纵横,2009(19):13一I5. [3]林灶生.Verilog FPGA芯片设计[M].北京:北京航空航天大学 出版社,2006. FPGA与DSP两者之间的通信 ,可以分为 DSP到FPGA为写操作和FPGA到DSP为读操作。 DSP发给FPGA的配置信息为:通道切换电路 的选通信号、各通道数据采集使能信号及清零信号、 UART的数据格式及中断源设置等。 FPGA返回给DSP的信息主要有:数据采集存储 的空满标志,实际采集的数据、UART的中断 息等。 [4]王永水,任勇峰,焦新泉.国外电子元器件[J].2008(10):3—4. [5]程琼,原腾飞,付波.工业控制计算机[J].2OO9,22(I1):42-45. [6]Anon.Cyclone II Device Handbook[z].2007. [7]周林等.数据采集与分析技术[M].西安:西安电子科技大学出 版社,2005. 4 结束语 提出了一种基于FPGA+DSP的高速多通道数 据采集系统设计方案,将FPGA及DSP的优势充分 结合在一起,并针对间歇性数据传输特征,设计了以 FIFO作数据过渡。本系统经过测试,工作稳定,满 [8]李念强.数据采集与系统设计[M].北京:机械工业出版社,20O9. [9]陈美艳.基于FPGA+DSP的信息采集板的设计[D],成都:西南 交通大学,2009. 责任编辑:刘新影