基于CPLD与单片机的高速数据采集系统
时间:04-08
来源:互联网
点击:
1 引言
高速数据采集系统广泛应用于网像信号采集、雷达、软件无线电等技术领域。在传统的以MCU为控制器的数据采集系统中,数据采集频率直接受到MCU速度的限制。在采样频率要求较高的场合。MCU和数据存储的同步将成为问题。
以CPLD为代表的可编程逻辑器件以其工作速度快、灵活的可编程能力等特点越来越受到人们的广泛应用。它弥补了以MCU为控制器的传统数据采集系统的不足。
2 系统硬件设计
本文设计的高速数据采集系统采用ALTERA公司的MAX7000系列产品之一的EPM7128SLC84作为控制器,选用TI公司的TLC5510作为模数转换器,其采样频率可以达到20MSPS,8位并行输出。RAM选择ICSI公司的61C256。系统的硬件原理
如图1所示。
图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 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控制程序主要代码:
在上述程序中,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);
}
高速数据采集系统广泛应用于网像信号采集、雷达、软件无线电等技术领域。在传统的以MCU为控制器的数据采集系统中,数据采集频率直接受到MCU速度的限制。在采样频率要求较高的场合。MCU和数据存储的同步将成为问题。
以CPLD为代表的可编程逻辑器件以其工作速度快、灵活的可编程能力等特点越来越受到人们的广泛应用。它弥补了以MCU为控制器的传统数据采集系统的不足。
2 系统硬件设计
本文设计的高速数据采集系统采用ALTERA公司的MAX7000系列产品之一的EPM7128SLC84作为控制器,选用TI公司的TLC5510作为模数转换器,其采样频率可以达到20MSPS,8位并行输出。RAM选择ICSI公司的61C256。系统的硬件原理
如图1所示。
图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 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控制程序主要代码:
在上述程序中,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);
}
无线电 MCU CPLD LTE 单片机 总线 电路 ADC Verilog 仿真 嵌入式 相关文章:
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 赛灵思详解新近推出的FPGA领域设计平台(12-16)
- 选择合适的FPGA千兆位收发器至关重要(10-28)
- Virtex-5推动超宽带通信和测距的发展(01-06)
- QPSK调制器的FPGA实现(03-22)
- 基于太空级Virtex FPGA的灵活高性能计算平台(04-08)