对于一个成型的探测系统而言,通常都是有采集储存部分的,无论是电信号、光信号、声音信号、磁信号等在被探测器接收到后大部分都需要转化为数字信号传给处理器才能完成分析、判断的过程。对于需要高速采集并存储的系统,在基于CPLD、AVR等控制高速ADC、储存等技术的基础上,本文设计低成本、高速采集存储的硬件实现。
1 系统总体设计方案
系统利用ATmegal62作为主控制器,CPLD用于产生控制时序,二者相结合协调进行数据的采集与传输控制。图1给出其系统总体设计方案框图。
数据采集系统的工作原理是:模拟量信号经过传感器后转化成电压量,通过ADC将模拟量转换为数字量,而后进行传输存储和处理。在本系统中,在CPLD和AVR的控制下,将采集到的模拟信号经过A/D器件转换之后,转换结果先缓存到FIFO,再转存到非易失性Flash阵列中,其中FIFO不但可以实现缓存功能,还可以解决A/D转换之后数据位数跟Flash存储器的数据线位数不匹配的矛盾。
1.1 采集部分
本系统应用的A/D转换器是MAXl308,它具有8通道可编程配置,可接收数字输入分别激活每一路通道;100 ps通道间T/H匹配;转换时间为0.72(单通道),0.9(2通道),1.26(4通道),1.98μs(8通道);吞吐率为1 075(单通道),90(2通道),680(4通道),456千次/秒(8通道)。其他特性包括20 MHz T/H输入带宽、并具有内部时钟、内部(+2.5 V)或外部(+2.0~+3.O V)基准,以及低功耗省电模式。
1.2 控制与存储部分
如图2所示是4个Flash模块组采用流水线(pipeline)操作,使用该方式可以克服Flash写入速度较慢的缺点。Flash存储器的写入有2个阶段:数据加载阶段(通过I/0端口将数据写入页寄存器)和编程阶段(在芯片内部,将页寄存器的数据传输到存储单元)。由于编程阶段是自动进行的,不需要外部系统的干预,控制器可以进行其他事务的处理,如有效块地址的运算等,从而节省系统开销。NAND型Flash存储器的写操作以流水线方式进行,首先加载第1个Flash模块组,数据加载完后,第1个模块组进入自动编程阶段:再加载第2个Flash模块组,数据加载完后,第2个模块组进入自动编程阶段;然后依次对第3个乃至第4个模块组进行操作,当第4个模块组数据加载完后,第1个存储模块组已经自动编程结束,接着再加载和自动编程形成流水线的工作方式。从整个系统总体效果来看,它一直在进行存储加载数据。
2 程序设计与实现
编程实现采集部分的功能,采集部分时序图如图3所示。任意选择两条通道进行内部时钟分析,图中为第3通道和第7通道,当控制信号产生低电平时,控制引脚起作用,触发采集功能,同时EOC引脚电平至低。在tCTR段时间后读信号被启动经过tACC的时间后,12位数据将出现在DO-D11引脚上。在整个采集、存储过程中其他通道和通道3、通道7一样,随后将数据存入数据缓存器中。
2.1 控制A/D转换程序设计
根据控制存储的要求,首先要设计控制A/D转换的状态机,用来确定A/D转换的状态,根据MAXl308工作时序特点而设计的控制A/D转换的状态机转换图如图4所示。实现控制A/D转换的状态机部分主要VHDL程序源代码如下:
将程序下载至CPLD中运行调试,经过对电路的调试和测量,控制8通道A/D同时转换的状态机产生的示波器时序波形如图5所示,其中,0、1、2、3、4分别对应的是图3中的CONVST、EOC、EOLC、CS、RD,而第5通道是对FIF0的写信号。从示波器显示的波形图可以看出产生的8个连续的脉冲对应位置完全满足图3所要求的时序要求,也就是说在控制器同时控制8路信号的采集时不会出现时序混乱的情况。由此可知,采用本系统中设计的采集程序可以实现同时采集的要求,并且根据采集的脉冲宽度分析可知该系统能满足采集速度为10 Mb/s的设计要求。
2.2 控制Flash存储程序设计
4个Flash存储器的流水线工作原理如图2所示,对单独的每一片Flash来说每一次存储都是在上一次存储过程中加载完成后进行,而对于由4片Flash存储器组成的整个系统,它一直在加载存储数据,这样可以保证存储速度大于采集速度,从而保证存储过程中不会因单片Flash存储速度慢而造成丢失数据。实现Flash存储的主要程序:
在数据加载期间本系统应采用DMA传输控制方式,即:每当FIF0的半满标志信号HF产生一次有效电平时,ATmegal62就启动一次中断,在中断程序中,ATmegal62将产生NAND Flash命令和有效地址,以及启动DMA控制器。一旦DMA控制器启动,ATmegal62就将转入后台进行有效地址的运算等,从而参与数据传输过程,整个数据从FIFO到Flash存储器的传输过程是由CPLD内部编写的DMA控制器控制完成。启动一次DMA控制器传输一页2048个字节的数据,一次中断完成16 K字节的传输。其示波器时序如图6所示:第0,1,2,3通道是FIF0的读数据时序波形,第4通道是Flash的写通道时序波形。
3 结论
通过使用AVR和CPLD编程,设计实现了一种成本低且可实现10 Mb/s以上并行采集数据率的高速数据采集存储系统。在分析MAXl308特性及转换时序的基础上,设计完成了A/D转换器及其外围电路,并通过调试可知时序稳定。通过VHDL语言实现了采集模块、控制与存储模块和Flash存储功能。在完成硬件连接后调试,试验结果显示,该设计能够实现低成本高速采集,多路同时采集速度大于10 Mb/s采集系统,具有一定的实用价值。
关键字:AVR CPLD 高速数据采集 存储系统
引用地址:
基于AVR和CPLD编程的高速数据采集存储系统设计
推荐阅读最新更新时间:2024-03-16 12:40
AVR AT90S1200 IP核设计及复用技术
1 引言 随着芯片集成程度的飞速提高,一个电子系统或分系统可以完全集成在一个芯片上,IC产业中形成了以片上系统SOC(System-on-Chip)技术为主的设计方式。同时IC设计能力和EDA工具却相对落后于半导体工艺技术的发展,两者之间日益加剧的差距已经成为SOC技术发展过程中一个突出的障碍。采用基于IP复用技术进行设计是减小这一差距惟一有效的途径,IP复用技术包括两个方面的内容:IP核生成和IP核复用。文中采用IP核复用方法和SOC技术基于AVR 8位微处理器AT90S1200IP Core设计专用PLC微处理器FSPLCSOC模块。 2 IP核复用 IP核复用(IP Core Reuse)是指在集成电路
[单片机]
使用高速AVR单片机实现振动/温度信号采集和存储
铅酸电池具有价格低廉、供电可靠、电压稳定等优点,广泛应用于通信、铁路、交通、电力、石油、国防、工农业生产部门。在传统的充电技术中,常用的恒压充电、恒压限流充电、恒流充电等模式,都是由工人控制充电过程,由于充电技术不能适应免维护电池的特殊要求,严重影响电池的寿命,大量的免维护电池用几年后即报废,造成巨大的经济损失。本文所介绍的新型智能充电机系统,解决了动态跟踪电池可接受充电电流曲线的技术关键,形成了独具特色的智能充电机系列,提高了充电质量和效率,充电工人只担任辅助性工作,为充电技术和充电设备闯出了一条崭新的路。 1硬件部分 电池充放电过程中,可进行恒流、恒压、涓流、充放电时间以及终止电压等多种控制规律选择。整个系统分2
[单片机]
适用于ATMEL AVR32系列的TRACE32® PowerTools(劳特巴赫)
劳特巴赫公司推出了一款新工具,可以对ATMEL AVR32微处理器系列平台提供调试支持。
劳特巴赫的TRACE32为AVR32系列平台的调试提供了两种调试方案。PowerDebug 系列通过JTAG接口为整个调试过程提供调试服务,包括代码下载、flash编程和源代码调试等基本调试功能。而PowerTrace系列则利用芯片的Nexus接口在基本调试功能基础上新增了实时跟踪功能。这两个工具可通过USB 2.0和以太网10/100/1000连接至通用的Windows或Linux主机。TRACE32 PowerView软件是一个用户友好的高效 HLL调试器,适用于C和C++,而且可识别多数常用的实时操作系统。
所有TRACE3
[单片机]
AVR 8515单片机遥控器 解码程序
这个程序实现K1D和中国电信机顶盒遥控器解码。 刚刚从51单片机转到AVR ,也刚刚学习用C编程,一些语句格式纠错搞了一天,终于完成,效果很好。共享给大家。 我这里只贴上解码部分的文件,显示部分文件就算了。大家知道的。 第一次发帖,请大家鼓励一下! //ICC-AVR application builder : 2020/3/25 // Target : 8515 TH186_K1D遥控器解码 // Crystal: 8.0000Mhz #include io8515v.h #include macros.h #include lcd1602.h //两个C文件都要这 //////////////////////
[单片机]
一种基于CPLD的数字式大功率激光驱动电源设计
激光加工主要是利用CO:激光束聚焦在材料表 面使材料熔化,同时用与激光束同轴的压缩气体吹 走被熔化的材料,来完成所需轨迹图形的切割或者相应工艺品表面的雕刻。激光加工属于非接触加工, 具有加工方法多、适应性强、加工精度高、质量好和加工效率高等优点。激光驱动 电源 作为激光器的 直接控制单元,其光开关响应的最高频率和出光功率稳定和可靠性会直接影响最终的加工效果。基于 快速响应和出光稳定的需求,乐创自动化技术有限公司研发了一种基于 CPLD 的数字式大功率激光驱 动 电源 。 2 系统组成及其工作原理 2.1 系统组成 基于 CPLD 的数字式大功率CO:激光驱动 电源 的系统结构如图1所示。 该 系统 主 要由主电源、稳压电源、辅
[电源管理]
avr单片机控制AD5161实验程序
/******************************************* 文件:AD5161.C 环境:编译为ICC AVR6.25A,仿真为AVR Studio4.10 硬件:ATMEGA16芯片 功能:驱动开发板上的数字电位器(AD5161采用IIC接口) /******************************************/ #include iom16v.h //包含型号头文件 #include macros.h //包含"位"操作头文件 #include stdio.h //标准输入输出头文件 #include AVR_PQ1A.h
[单片机]
AVR单片机熔丝位的设置和详细的拯救方法
熔丝位是ATMEL公司AVR单片机比较独到的特征。在每一种型号的AVR单片机内部都有一些特定含义的熔丝位,其特性表现为多次擦写的E²PROM。用户通过配置(编程)这些熔丝位,可以固定地设置AVR的一些特性,参数以及I/O配置等,当然也包括对片内运行代码的锁定(加密)。 用户使用并行编程方式、ISP编程方式、JTAG编程方式都可以对AVR的熔丝位进行配置,但不同的编程工具软件提供对熔丝位的配置方式(指人机界面)也是不同的。有的是通过直接填写熔丝位位值(如:CVAVR、PonyProg2000和SLISP等),有的是通过列出表格选择(如AVR STUDIO、BASCOM-AVR)。前者程序界面比较简单,但是需要用户在仔细查询操作,
[单片机]
基于AVR单片机的臭氧治疗仪设计方案
臭氧作为一种高效冷杀菌手段,目前已经被广泛应用在各行各业中。具有高效、迅速杀菌作用的臭氧在医院环境消毒、术前消毒等方面应用广泛,其治疗效果优于其它传统杀菌治疗仪。因此研制一种运行稳定、使用方便、便携的臭氧治疗仪产品,为妇科疾病患者提供一种方便有效的在家治疗方式,具有实际意义。 目前市面上的同类型产品都是采用80C51单片机为控制核心的, 虽然也能实现它所需求的功能,但执行速度慢,在长期工作环境中,特别在臭氧治疗仪的内部大功率气泵模块和臭氧发生器的干扰下,系统功耗高和抗干扰性能差,系统性能不稳定等问题便凸现出来。对此本文采用了ATMEL公司的一款AVR高档单片机,对控制系统作了改进,提高了整机的性能。 臭氧产生的原理及方
[单片机]