完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1 引言
高速数据采集系统广泛应用于网像信号采集、雷达、软件无线电等技术领域。在传统的以MCU为控制器的数据采集系统中,数据采集频率直接受到MCU速度的限制。在采样频率要求较高的场合。MCU和数据存储的同步将成为问题。 以CPLD为代表的可编程逻辑器件以其工作速度快、灵活的可编程能力等特点越来越受到人们的广泛应用。它弥补了以MCU为控制器的传统数据采集系统的不足。 2 系统硬件设计 本文设计的高速数据采集系统采用ALTERA公司的MAX7000系列产品之一的EPM7128SLC84作为控制器,选用TI公司的TLC5510作为模数转换器,其采样频率可以达到20MSPS,8位并行输出。RAM选择ICSI公司的61C256。系统的硬件原理 如图1所示。 1.gif 图1系统原理图 在该系统中,CPLD和单片机一同构成了系统的控制核心。CPLD与RAM的接口信号分为三类:地址信号、数据信号和控制信号。由于本系统采样数据达到2KB即可满足要求,因此地址信号线为12位,RAM的A12-A14接地;数据信号为8位;控制信号为写使能WE和片选CE。CPLD对TLC5510的接口包括时钟信号CLK和数据输出使能OE。TLC5510的数据输出端口和RAM的8位数据线相连,以便将AD转换后的数据写入RAM中。 P80C552和CPLD之间的接口信号包括两类:数据信号和控制信号。在CPLD侧.8位的数据总线与单片机系统数据总线D0~D7相连.用以单片机读取A/D转换后的数据。控制信号包括读信号RD,写信号WR和地址译码信号Yl及Y2。 2.1 CPLD控制器 CPLD控制器主要负责A/D转换并将转换得到的数据写入SRAM中。对TLC5510的控制按照TLC5510数据手册给出的典型电路实现:在转换控制信号ADCLK的每一个下降沿开始采样,第n次采集的数据经过2.5个时钟周期的延迟之后,送到内部数据总线上。此时如果输出使能OE有效.则数据便可被送至数据总线上。启动后A/D转换无须控制,将连续不断的以转换时钟频率输出转换后的并行8位数字信号。 在转换过程中,CPLD同时控制采样数据写入RAM中,这样就必须考虑TLC5510采样和61C256写入的时序匹配。在设计中,首先对clk 40MHZ信号2分频得到20MHZ信号,将此信号作为TLC5510的采样时钟ADCLK。TLC55lo在ADCLK的下降沿采样,CPLD在ADCLK的上升沿读取转换后的数据写入RAM中。 图2为CPLD对SRAM的控制逻辑电路。主要包括以下几个部分: (1)写地址产牛器:由于61C256为32Kx8的SRAM,故写地址产生器用15位寄存器实现。靠ADCLK时钟驱动,每进行一次写操作后,读写控制单元使其加1。写RAM操作发生在系统采样前的RAM单凡清零和采样过程中。 (2)读地址产牛器:读地址产牛器也用15位寄存器实现。单片机每次发出读信号对RAM读操作后,读写控制单元使其加1,下次单片机从此位置读取数据。 (3)读写控制:当需要对SRAM进行写操作时,由CPLD控制产生写地址选通信号RAMWR,片选信号RAMCE,同时给数据线上送数据,而写地址选通信号上升沿到来时使写地址寄存器增1,使CPLD输出写地址。对SRAM进行读操作相对较简单,在进行读操作期间,RAMCE始终为低电平。每进行一次读操作,地址按系统要求变化一次。 2.gif 图2 SRAM读写控制 2.2 MCU控制器 单片机主要控制对A/D转换的启动及对保存在RAM中的数据读入以备后续处理。在图l的系统原理中,Yl、Y2为单片机部分通过74LSl38泽码器产生.RD、WR为单片机的读写信号。当Y1和WR有效时,MCU指示CPI.D控制完成对SRAM地址单元内容的清零,并复位CPLD内部写地址寄存器值;当Y2和WR有效时.MCU指示CPLD开始进行A/D采样;当Y2和RD有效时,CPLD对61C256读取一个单元并通过I/O口将数据送至单片机数据总线上。本系统中,61C256的读信号直接由单片机RD信号控制,无须CPLD控制产生。 3 软件设计 3.1 CPLD部分的软件设计 CPLD在每个ADCLK时钟的下降沿,检测信号Y1、Y2、WR和RD信号的变化,根据2.2节中MCU控制器部分给出的功能描述来完成具体的操作。 以下是用Verilog HDL语言描述的CPLD控制程序主要代码: c.gif c2.gif 在上述程序中,clraddr、wraddr和rdaddr为CPLD内部清零地址寄存器、写地址寄存器和读寄存器,用以产生RAM的读写地址。clrbz、cvbz为CPLD内部RAM清零和采样标志,当这两标志为1有效时,CPLD分别控制完成61C256地址单元内容的清零和外部采样操作,操作完成后两标志被清0表示无效。流程中的数值N可根据实际需要的采样点数来调整。 3.2单片机部分的软件设计 单片机软件部分相对简单,只要根据Yl、Y2的具体地址,参考MCU对外部SRAM的读写操作来方问即可。本设计中,将61C256中的采样数据读取到单片机部分,以便进行液晶显示等后续处理。具体程序段参考如下: /* 产生Y1和WR有效信号,指示CPLD清SRAM 2K单元 */ /*((unsigned char xdata *)CPLD_Y1ADDR)=0x00; /*产生Y2和WR有效信号。指示CPLD开始采样*/, *((unsigned char xdata *) CPLD_Y2ADDR)=Ox00; for(i=0:i《2048;i++) //通过CPLD读取SRAM 2K单元内容 { /* 产生Y2和RD有效信号。读61C256中的数据 */ to_data [ i ]=* ( ( unsigned char xdata * ) CPLD_Y2ADDR); } 4 仿真和实验结果 图3 CPLD采样和渎写SRAM仿真波形 图3为CPLD采样和读写SRAM的仿真结果。在仿真过程中,选取采样点数为6进行测试以方便观察。当MCUWR和Yl信号有效时,由CPLD控制产生对SRAM的片选和写信号,连续对SRAM单元内容清O;当MCUWR和Y2信号有效后,CPLD输出给TLC5510的采样时钟,在2.5个ADCLK周期后,产生TLC5510的输出使能信号,同时控制61C256的写操作,将采样数据连续写入SRAM单元。仿真过程中,在数据总线上模拟了采样的6个数据。当MCURD和Y2信号有效时,CPLD给出61C256的片选信号和地址信号,读出一个单元的数据,若再次读,则地址单元加1。 5 总结 本文设计的基于CPLD与单片机的高速数据采集系统在QUARTUS II软件中进行了仿真并达到了预期的控制逻辑。该系统的实际电路在新型匝问间耐压测斌仪的开发中得到了成功的应用。本文创新点:本文的设计方案对于其它高速数据采集系统设计具有借鉴价值,通过选择不同采样频率的A/D转换器,系统可满足不同应用场合的需求,因而系统具有普遍使用性。 |
|
|
|
只有小组成员才能发言,加入小组>>
702 浏览 0 评论
1111 浏览 1 评论
2476 浏览 5 评论
2811 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2654 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
658浏览 9评论
666浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
788浏览 6评论
633浏览 5评论
677浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 06:07 , Processed in 0.875101 second(s), Total 51, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号