首页 > 技术 > 内容

基于可编程逻辑器件实现多路数据采集系统的设计

时间:2025-12-06  作者:Diven  阅读:0

对于国内而言,正如DSP在20年前出现的情形一样,如今,FPGA正处于数字信号处理技术的前沿。而DSP都是基于精简指令集的计算机体系架构,其固定的硬件结构和数据总线宽度已不适合许多面向用户型(可重配置型)的DSP应用系统;其速度也受制于CPU的指令顺序执行的基本工作模式,这已成为DSP处理器一个难以突破的瓶颈。

现代的大容量、高速度FPGA器件通常都内嵌有可配置的高速RAM、PLL、LVDS、LVTTL以及硬件乘法累加器(MAC)等DSP模块,而且都提供了支持以低系统开销、低成本实现高速乘-累加(MAC)超前进位链的DSP算法。 在许多宽带信号处理领域(如无线通信、多媒体系统、卫星通信、雷达系统等),FPGA技术具有更广阔的应用前景,已代替DSP实现许多前端的数字信号处理算法。用FPGA来实现数字信号处理可以很好地解决并行性和速度问题,而且其灵活的可配置特性,使得FPGA构成的数字信号处理系统易于修改、测试及系统升级,能降低设计成本,缩短开发周期。

本文应用FPGA技术针对一个远程监控系统的多路数据采集系统,实现了64bit位宽的海量数据实时采集、存储以及时钟匹配。

1 数据存储板的结构

图1为数据采集系统中数据存储板的基本框图,数据采集时钟为20MHz,远低于SDRAM存储的工作时钟100MHz,需要进行缓冲处理。通用CPU的SDRAM控制器只支持32bit位宽数据,而且容量也很难做到480M,笔者运用Altera公司的Cyclone系列高性价比EP1CQ240C8定制SDRAM控制器

EP1CQ240C8是该数据存储板的核心器件,其主要功能有:完成数据的缓冲;对SDRAM的读写时序控制;完成EPP(增强型并口)协议与计算机通信;提供SDRAM的100MHz工作时钟;产生SDRAM所需的定时刷新、充电、配置等控制命令;提供SDRAM的地址空间等。SDRAM选择HYNIX公司32M×8bit×16组的HYM72V64636BT8。

20MHz晶振为EP1CO240C8提供输入时钟,同时被EP1CQ240C8内部的PLL倍频到100MHz和跟随的20MHz,前者被CY2309功分到SDRAM,为SDRAM的存储器组提供工作时钟;后者被时钟驱动芯片74FCT3807分为多路,为A/D提供采样时钟。

2 EP1CQ240C8与SDRAM的接口设计

SDRAM的工作模式配置

HYM72V64636BT8具有同步接口,其所有输入和输出都与系统时钟CLK上升沿同步,由输入信号RAS、CAS、WE组合产生SDRAM控制命令,完成相应的模式寄存器设置、刷新、激活、读写、预充电等操作。

SDRAM在工作之前必须设置模式寄存器,其读写工作模式分为普通模式和页模式。普通模式的数据长度可以为1,2,4,8;页模式和普通模式不同,一旦确定行列地址,则数据按照工作时钟(本系统工作时钟为100MHz)读出或写完一页(1024列)。

为了编程方便,笔者选取读写不同的工作模式:向SDRAM写入数据时采用页模式,写满后读出数据时采用是突发长度为1的普通模式。读写操作完成后用PCH命令或BT命令预充电中止读或写操作。在没有读写操作的时候,每64ms必须用ARF命令刷新存储单元,防止数据丢失。

SDRAM的控制接口设计

根据本系统SDRAM的工作要求, EP1CQ240C8与SDRAM的接口电路方框图如图2示,笔者对FPGA的内部硬件资源进行了详细配置。

(1)PLL(锁相环)完成时钟管理。

(2)地址产生模块由计数器构成,包括写地址模块和读地址模块。写地址模块产生的地址同时送到双口RAM和状态机,状态机发出初始化、刷新、读写、充电等命令,交给仲裁机制,在不冲突的情况下完成命令的译码和地址的行列复用,这时数据被存入到由地址的行和列所确定的SDRAM地址中去。数据存满SDRAM后再切换到读地址模块,通过读地址模块产生读地址将数据读出到并口,然后导入计算机进行相关的处理。

(3)仲裁机制完成对读写命令和刷新命令的仲裁,杜绝同时操作;命令译码主要用于控制SDRAM的各种时序,完成SDRAM的读写和刷新。

(4) 刷新控制电路主要完成对SDRAM数据刷新进行计时,确保每64ms刷新8192行数据;刷新控制电路主要由781计数器构成。由于SDRAM工作时钟是100MHz,SDRAM要求在64ms之内刷新8192行数据,因此该计数器应小于:64ms/8192/0.01us=781.25 。当计数器计满781次后,刷新控制电路向仲裁电路发出刷新请求,仲裁机制根据请求向SDRAM发出刷新命令。

(5)状态机是SDRAM控制器的核心。在程序方案上,笔者设计了两个模块:一个模块产生状态机命令和控制命令;另一个模块完成命令的译码,包括读写、刷新、充电等操作,将命令翻译成SDRAM的命令码字,完成特定的操作。

在本系统中,由于多通道数据采集后进入FPGA的时钟是20MHz,而FPGA的状态机以及SDRAM的时钟是100MHz,数据需要做缓冲处理。笔者利用FPGA内部的硬件资源构造双口RAM解决时钟匹配问题,同时又考虑到SDRAM工作在页模式,因此将双口RAM的容量构造成SDRAM一页的数据容量1024×64bits,这样数据缓冲一页就存入一页。双口RAM作为FPGA配置中的关键模块,下面将详细介绍双口RAM的设计。

3 双口RAM的构造

由于本系统中数据读出时钟是写入时钟的五倍,所以必须注意时钟追赶的问题,即读出一定要滞后写入,否则读出的数据就不是存入双口RAM的数据。

笔者的编程思路是:当数据以20MHz时钟写入到双口RAM容量的7/8时,便以100MHz时钟开始读出,读完一页后必须就等待下次写满7/8。读出的一页数据刚好存满SDRAM的一页,依次类推,这样就完成了数据的缓冲。当然,读写地址的产生是FPGA内部用计数器实现的,就得到如图3示的算法流程图。

图3中clk1为20MHz时钟,clk2为100MHz时钟;count1[9:0]输入到双口RAM的wraddress[9:0],count2[9:0]输入到rdaddress[9:0]。并和“1110000000”比较,判断是否写满了双口RAM的容量的7/8,如果写满了就触发100MHz的读出时钟,数据开始从双口RAM读出。根据上述思路,利用Altera公司的开发平台QUARTUS II完成编译、仿真得到双口RAM的功能仿真波形如图4示,由仿真结果可知该方案很好地解决了时钟追赶问题,完成了数据缓冲。

4 数据存储板的性能测试

笔者利用在FPGA内部资源编写了一个测试模块,用产生有规律的数据信号(模拟采样的数据),并存入SDRAM,当存满后通过EPP将数据存储到计算机,利用相关软件读出保存到计算机的数据如图5示,仿真结果表明存入的数据与测试模块产生的数据一致,存储板能正常工作。

本文作者的创新点:

在本监控系统中,充分利用了FPGA内部的硬件资源—嵌入式逻辑块,应用软件编程解决了64位宽的海量数据缓冲、分页存储及系统时钟匹配问题,有着了FPGA技术在信号处理领域的重要作用。

猜您喜欢


电容柜在电力系统中非常重要。帮助提高电能的质量和效率。本文将介绍电容柜的操作流程,帮助用户更好地理解。准备工作操作电容柜前,首先要准备好工具。需要检查设备是否正...
2025-03-26 23:01:39
手持式热成像仪在市场上种类繁多,主要有以下几个区别。分辨率是一个关键因素。高分辨率的热成像仪能够提供更清晰的图像,使用户更容易识别温度异常。测温范围和精度也是重...
2010-01-03 00:00:00
现代电子产品设计中,封装技术的选择对电路性能、尺寸和散热等方面都有着重要影响。VSSOP-8_3X3MM是一种广泛应用的小型封装,因其优越的特性被许多电子工程师...
2025-02-24 14:02:16
在电子元器件的世界里,贴片电阻扮演着至关重要的角色。选择一家可靠的贴片电阻供应商,不仅能保障产品质量,还能提升生产效率。我们作为专业的贴片电阻供应商,提供种类齐...
2024-11-26 11:29:17
在日常生活中,清洁用品是我们保持居住环境卫生的重要工具。除了传统的洗洁精和消毒剂,市场上还有许多其清洁用品,各自具有独特的优势。天然清洁剂越来越受到欢迎。这类产...
2010-05-08 00:00:00
电气设备和电路设计中,保险丝作为重要的保护元件,起着防止过电流引发设备损坏或火灾的关键作用。选择合适大小的保险丝不仅关系到电路的安全运行,还能有效延长设备的使用...
2025-11-06 23:30:05
贴片电阻的阻值单位通常用欧姆(Ω)表示,但为了方便标记小阻值和大阻值,也会使用千欧(kΩ)和兆欧(MΩ)。之间的换算关系如下:1 kΩ = 1000 Ω (一千...
2024-11-29 10:25:29
平板推车是多功能的运输工具,应用于仓库、工厂和商店等场所。其主要优势体现在以下几个方面。平板推车具有较大的承载能力,能够轻松搬运重物,减少人力负担,提高工作效率...
2012-12-23 00:00:00
移液器具应用于多个领域,成为实验室和工业生产中不可少的工具。在生物医学领域,移液器用于样本的转移和液体的精准计量,帮助研究人员进行细胞培养、药物筛选和基因测序等...
2019-03-29 00:00:00
超势垒整流器(SBR)是高效的半导体器件,应用于电源转换和电力电子领域。其主要优势体现在以下几个方面:SBR具有低正向压降,能够显著减少能量损耗,提高整体系统的...
2013-04-20 00:00:00