基于FPGA和TS201链路口的多通道数据采集系统设计_第1页
基于FPGA和TS201链路口的多通道数据采集系统设计_第2页
基于FPGA和TS201链路口的多通道数据采集系统设计_第3页
基于FPGA和TS201链路口的多通道数据采集系统设计_第4页
基于FPGA和TS201链路口的多通道数据采集系统设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于FPGA和TS201链路口的多通道数据采集系统设计孙进卿,苏涛(西安电子科技大学雷达信号处理国家重点实验室陕西西安710071)摘要:设计了一个基于TS201高速链路口的多通道数据采集系统。其中FPGA作为主控器件控制AD的数据采集,并把多通道数据整序通过链路口实时地送到TS201中。有效缓解了在多DSP共享总线平台上多通道数据采集系统引起的总线冲突,提高了信号处理平台的整体性能。关键词:FPGA;链路口;多通道数据采集;总线冲突中图分类号:TP202文献标识码:B文章编号:1004373X(2007)0412904SystemDesignofMultichannelDataAcquisi

2、tionBasedonFPGAandTS201LinkPortSUNJinqing,SUTao(NationalKeyLabofRadarSignalProcessing,XidianUniversity,Xian,710071,China)Abstract:Amultichanneldataacquisitionsystemisintroduced.FPGAcontrolsthedataacquisition,readsthedatafromADCs,reordersthedataofmultichannel,andsendsthedatatoTS201throughlinkport.Thi

3、sdesignabbreviatesbuscolli2sionscausedbythemultichanneldataacquisitionsystemandimprovesthewholeperformanceoftheKeywords:FPGA;linkport;multichanneldataacquisition;buscollision1引言越来越大,DSP级连并行信号处理平台。为了便于各个DSP之间的通信和任务划分,多DSP并行信号处理平台又以共享总线的紧耦合系统结构,的内核时钟下,其48亿次乘加运算和每秒而在系统时钟为50MHz的情况下,其外部总线传输速度只有400MB/s,在一

4、个共享总线的多DSP处理系统中,完全依靠总线传输很容易形成IO瓶颈。ADSPTS201有4个链路口,都是钟控低压差分信号(LowVoltageDifferentialSignaling,LVDS)高速数据端口。LVDS的突出优点是比单端信号具有更高的频率、更好的噪声抑制、更低的功耗和更小的电磁干扰。Tiger2SHARC系列DSP的链路口数据传输用链路口时钟的双为主流。共享的总线不仅要完成DSP之间的通信,还要完成DSP与A/D,DSP与D/A,DSP与串口,DSP与USB器件、DSP与网口等之间的通信。对于一个实时信号处理系统而言,从AD读数据和向DA写数据都需要连续匀速地进行,这样就会长时

5、间占用共享总线,很容易引起数据采集与其他数据处理之间的总线竞争。ADI公司TigerSHARC系列DSP具有多个高速链路沿来驱动,则在内核工作在500MHz的时钟时,因为TS201的每个链路口数据宽度为4位,所以其单向数据传输最高为500MB/s,双向数据传输之和最高为1000MB/s。这4个链路口可以极大地缓解IO瓶颈。TS201的每个链路口有两个独立的可以同时操作的口。本设计用FPGA作为数据采集系统的控制器以及数据传输的缓冲器,将采集到的数据按照TS201链路口特殊的传输协议形成数据流,经TS201的链路口送到片内存储器,从而避开了共享总线,大大减少了共享总线的数据传输量,有效缓解了总线

6、的竞争。此外,链路口传输以DMA方式进行,采样数据的传输不会占用DSP内核的运算时间,可以提高整个系统性能。2TS201的IO传输TS201是一款高性能的浮点DSP,内部总线为128b,收稿日期:20060712通道,即发送通道与接收通道。链路口的内部结构如图1所示,发送通道有两个缓冲区而接收通道有3个缓冲区。其中LBUFTXx(发送缓冲寄存器)和LBUFRXx(接收缓冲寄存器)都是128位的存储器映射通用寄存器,可以在DSP内部通过软件进行访问。每个通道有4个可用的数据位,用LxCLKOUTP/N(P为LVDS的差分正极,N为LVDS的差分负极,下同)、LxACKI、LxCLKINP/N和L

7、xACKO信号来控制数据传输。LxBCMPI和LxBCMPO信号用来确认当前数据块是否传输完毕。1293数据采集系统的硬件设计3.1ADS83646个四字组,并且每次DMA传输都不能被打断。FPGA按一定速率向DSP发送数据,而不必理会DSP的反馈信号,所以把LxACKO,LxBCMPI悬空。设计中4片ADS8364的24个通道需同时采样,用4个CS选择4片AD,用地址码选择每片AD的6个通道;4片AD的CLK管脚接5MHz时钟;24个转换通道的数ADS8364是由TI公司生产的一款高速、低功耗的6通道同步采样转换的16bA/D转换器。ADS8364内部集成了6个ADC,分为A,B和C三个通道

8、对,每个通道的最高采样率可达到250kS/s。字输出共用一个并行数字输出端口。由FPGA控制4片ADS8364对24路模拟输入同时进行AD转换,转换后在FPGA内同时完成数据符号位的扩展和宽度的变换,把转换后的16b数据锁存到FPGA内部,对数据进行符号位扩展,依次将符号扩展后的各通道的数据按先低后高的顺序,把4位的数据送到DSP的链路口。这些将在下面FPGA的设计中详细介绍。3.3PCB设计在PCB设计中,最需要注意的是LVDS信号的连接,无论是LVDS的接收端还是发送端,都需要一个差分端图1TS201的链路口结构ADS8364的模拟部分和数字部分分开供电,而模拟接,而TS201的链路口为每

9、个LVDS接收端口都集成了一个100匹配电阻作为其差分端接,所以在电路图设计时,只需在FP端口外接一个电阻,信号两极的,部分与数字部分又包括工作电路和接口电路。模拟与数字的工作电压均为5V,接口电压均为3.3V。这样保证了数字接口电压的一致性。作为16b的ADC的量化精度达到了76V。ADS8364传输速度非常高,应该采用多层板设,让LVDS信号的走线层邻近地层,这样可以有效减少外部干扰对信号传输的影响。信号;ADD,(x为A,B和C)管脚是AD;CLK管脚为时钟输入信号,用于ADS8364内部转换过程和外部系统操作的同步。3.2系统总体设计在本系统中,需要对24路模拟信号进行同时采样,采样速

10、度为250k,输出到信号处理模块中的数据流就是12MB/s,小于链路口的最大传输速度。设计中,用FPGA控制ADS8364和链路口进行数据采集和数据传输,系统结构如图2所示。图3FPGA的LVDS终端4FPGA设计及其VHDL实现FPGA采用Altera公司的Cyclone系列的EP1C12,软件采用Altera公司的Quartus设计软件。FPGA的总体设计结构如图4所示。FPGA设计主要包括4个工作模块:系统控制模块、时钟模块、数据处理模块和数据发送模块。系统控制模块给4片ADS8364和两个数据处理模块图2数据采集系统提供控制信号和工作时钟。ADS8364工作在250k时,转换时间为3.

11、2s,保持时间为0.8s,因为给ADS8364的读信号有效时间最少是40ns,所以仅用0.8s的保持时间来读取24路采样数据不可行。本设计中,当前采样数据的读取需要延长到下次采样的转换时间3.2s内,这样就保证FPGA有充足的时间来读取24路采样数据。TS201链路口0的接收通道作为数据的输入通道。把链路口接收通道的LVDS差分时钟线LxCLKINP/N和差分数据线LxDATI30P/N直接接到FPGA上,由FPGA驱动,在FPGA向链路口传送数据时作为链路口的时钟输入。本设计中,每次链路口DMA接收数据都是130ADS8364的时钟输入由50MHz系统时钟10分频得到。器Data2LinkR

12、和Data2LinkF分别用于上升沿数据时钟模块主要由一个锁相环组成。为了确保内部电路与外部电路工作的同步,FPGA的工作时钟用外部提供50MHz的系统时钟。高速模块的工作时钟就可以用EP1C12内部集成的锁相环对系统时钟进行倍频得到。设和下降沿数据的锁存。锁存的4b数据在Clock2Dvd的上升沿和下降沿的驱动下发送给TS201链路口,而把Clock2Dvd经过一个触发器延迟5ns就可以作为TS201链路口的输入时钟。其中Clock2Dvd是由200MHz的时钟2分频得到,这样链路口的时钟就是100MHz,由于链路口是双沿传输,所以传输速度为100MB/s。处理进程2的VHDL程序如下:PD

13、ataOut:process(Clock2Dvd,Reset,LinkEn)beginifReset=0thenOutCountR<=0;OutCountF<=1;elseifLinkEn=1thenifRisingEdge(Clock2Dvd)thenData2LinkR<=RAMADDataR(OutCountR);OutCountR<=OutCountR+1;endif;ifFallingEdge(Clock2Dvd)thenData2LinkF<=RAMADDataF(OutCountF);OutCountF<=OutCountF+1;endif;e

14、ndif;endif;R=1elseDa2数据选择器计中对50MHz进行了4倍频,即200MHz。图4FPGA模块框图数据处理模块完成数据的简单处理。因为TS201处理数据的最小单元是32b字,为了减少DSP的运算量,本模块首先把AD转换的16b有符号数扩展成32b有符号数;而TS201链路口的数据连线为4根,所以还应把32b的数据再划分成4b用于链路口传输。这样每次AD转换之后,FPGA就把24路采样数据转化成192个4b的数据。本模块中,用ADRead信号的上升沿把16b的数据从ADS8364读到FPGA内部RAMADDataR(,程序最后面是一个数据选择器,用Clock2Dvd信号作为数

15、据选择信号,其高电平选通对应于CLKToLink上升沿的数据,低电平选通对应于CLK2ToLink下降沿的数据。实践证明,这个数据选择器简单F(中,这两个数组的长度都是96。处理进程1的VHDL程序如下:PDataIn:process(ADRead,Reset)variableSignExtend:stdlogicvector(3downto0);beginifReset=0thenInCount<=0;elseifRisingEdge(ADRead)thenRAMADDataR(InCount)<=DataAD(3downto0);RAMADDataF(InCount)<=

16、DataAD(7downto4);RAMADDataR(InCount+1)<=DataAD(11downto8);RAMADDataF(InCount+1)<=DataAD(15downto12);SignExtend:=DataAD(15)&DataAD(15)&DataAD(15)&DataAD(15);RAMADDataR(InCount+2)<=SignExtend;RAMADDataF(InCount+2)<=SignExtend;RAMADDataR(InCount+3)<=SignExtend;RAMADDataF(InCo

17、unt+3)<=SignExtend;InCount<=InCount+4;ifInCount>=96thenInCount<=0;endif;endif;endif;endprocess;有效,对FPGA实现双沿传输有着重要的意义。仿真所得时序如图5所示。图中光标所指的即为FPGA到链路口时钟和数据的输入开始,每个数据的高16位为符号扩展。图5FPGA到TS201链路口时序图在Quartus软件中,需要特别注意的是LVDS信号管脚的指定。要把设计输出的信号指定到相应差分对的正极,并在IO标准中选定LVDS,那么Quartus就会自动为该信号的负极指定到对应的差分负极。

18、而对于其他单端信号的指定,只需要把IO信号指定到相应的管脚上,采用相应的接口标准即可。5DSP的链路口配置及其程序设计本系统的设计中,有2种方法启动链路口DMA传输:利用链路中断和利用DSP的IRQ硬件中断。当链路131数据发送模块向链路口发送数据,程序中的两个寄存核发出中断请求,使得DSP有充分的时间来响应中断,配置链路口DMA,保证采样数据实时传送,避免数据的丢失。6结语本文设计了一个用FPGA控制多个通道数据采集并用链路口实现FPGA和TS201之间数据实时传输的数据采集系统。在共享总线的多DSP信号处理平台中,本设计用链路口代替共享总线,实现大流量采样数据的实时传输和处理,消除了数据采

19、集所引起的总线冲突并缓解了信号处理平台的IO瓶颈。对于有不同要求的数据采集系统,DSP仅仅向FPGA的控制模块写一个控制命令字就可以调整系统的采样速度和采样模式,因而具有很强的通用性。而对于串行AD,也只需在FPGA中的数据处理模块之前增加一个串并转换模块。目前,该系统的设计方法已经应用于多种并行和串行AD转换电路中。参考文献1,DSPM.西口收到一个四字组在LBUFRXx寄存器中处于待读取状态中、并且接收链路口DMA没有初始化时,链路口的接收端就会向TS201内核发出一个链路口中断请求。IRQ中断则是FPGA向TS201发出的一个硬件中断请求。无论采用哪种中断启动方式,DSP都需要预先对LR

20、CTLx(x为0,1,2,3)(链路口接收端控制寄存器)进行初始化。要把LRCTLx中的RBCMPE位设置为0。两种中断方式都需要在中断服务程序中对DMA的TCB寄存器进行配置来启动链路口的接收DMA通道。其中链路口中断是链路口接收端向DSP发出的中断请求,如果DSP中的相应的中断位已经打开,同时没有更高优先级的中断需要响应,那么DSP就会响应链路口中断,执行相应的中断服务程序。在DMA的TCB寄存器配置过程中,为了保证程序不被其他中断打断,可以在中断服务程序的开始就把所有的其他中断屏蔽掉,在中断服务程序返回之前再把屏蔽掉的中断位还原。在中断服务程序里面对链路口的DMA控制寄存器进行初始化,一

21、旦数据出现在链路口的LBUFRXx,DMA控制器就把数据读到内部存储器中。IRQ中断启动DMA的过程和链路口中断基本一样,不同的就是把链路口中断所做的操作换成IRQ中断的操作,链路口的中断服务程序换成IRQ2GailGray.VHDL设计:表断服务程序。,首先,DSP还没有响应链路口中断,这样就会造成采样数据的丢失;而IRQ中断数据外部硬件中断,优先级比较高,可以大大降低采样数据丢失的概率。其次,链路口中断服务程序的执行需要一段时间,而如果在这段时间里面链路口收到的数据大于2个四字组,也会出现采样数据丢失的情况;而设计中,IRQ中断的产生时间由FPGA来控制,这样就可以由FPGA提前向DSP内.2版.李宗伯,译.北京:机械工业出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论