基于CPLD与单片机的高速数据采集系统

发布时间:2010-4-8 16:15    发布者:我芯依旧
关键词: CPLD , 单片机 , 数据采集 , 系统
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.jpg
图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转换器,系统可满足不同应用场合的需求,因而系统具有普遍使用性。

项目经济效益(300万元)


作者:万军      来源:《微计算机信息》(嵌入式与SOC)2009年第4-2期
本文地址:https://www.eechina.com/thread-10257-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
wfnic 发表于 2011-7-10 10:57:14
jhapaj1
lidezhen2 发表于 2014-4-4 14:41:20
基于CPLD与单片机的高速数据采集系统
xie xie
muzisuzhu 发表于 2016-1-5 22:38:09
参考
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表