基于FPGA的多通道数据采集系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的多通道数据采集系统设计
大地电磁场携带着地球内部的结构、构造、温度、压力以及物质成分的物理状态等信息,为人们讨论板块运动的逻辑、追溯地球的演变历史提供了科学依据。

大地电磁探测是讨论大陆岩石圈导电性结构的有效办法之一,使人们从电性角度熟悉地球内部的构造形态,达到了解地下不同深度地质状况的目的。

该技术应用前景广泛,可用于地下更深层找矿、找水、找油、监测海底潜艇等,对国民经济和国防的进展都有重要的推进作用。

最常用的数据采集计划多以为核心,控制多路信号的采集及处理。

但因为本身的命令周期以及处理速度的影响,对于多通道A/D举行控制及数据处理,一般的MCU往往不简单达到要求。

考虑到器件的高集成度、内部资源丰盛、特殊适合处理多路并行数据等显然优于一般微处理器的特点,并针对大地电磁数据采集系统对实时性和同步性的要求,本文提出了一种多通道数据采集计划。

采纳FPGA与相结合的设计,采集主控制规律用FPGA实现,ARM用来实现采集数据的存储和数据传输控制。

1 系统总体结构
系统总体结构1所示。

A/D转换器采纳TI公司的24位高精度模数转换器ADS1255;FPGA采纳公司的EP2C35;ARM为ARM9内核的处理器。

双口RAM由EP2C35内部存储器块配置而成,该双口RAM与ARM的系统相连,映射为ARM的一块内存区。

AD前端处理的作用是实现对信号的放大、衰减以及阻抗匹配,从而满足对输入信号的要求。

滤波网络滤除高频噪声和工频信号的干扰,增益放大通过ARM给出的控制信号实现对模拟信号的不同增益的放大处理。

ADS1255负责把模拟电信号转换成数字信号,可以通过功能挑选设置ADS1255工作在不同的工作模式下。

ADS1255的工作时钟由FPGA 提供,转变FPGA输出时钟的频率就能实现AD采样率的转变。

FPGA并
行控制5路AD的数据采集,并把采集到的各路数据按挨次以字节的形式写入双口RAM中缓存。

FPGA对双口RAM的数据写入和ARM对数据的读取是通过乒乓传输结构实现的。

当FPGA写满双口RAM上半区后,向ARM申请中断,ARM响应中断后,读出上半区数据到内存中举行存储;同时FPGA向RAM的下半区写数据,写满下半区后也向ARM发出中断,通知ARM读出下半区数据。

通过乒乓传输保证了系统数据采样和数据传输可以延续举行。

2 FPGA的规律设计
本计划中的数据采集流程如下:系统初始化后,ARM通过控制信号把采样频率、通道挑选等参数通知给FPGA,然后FPGA向需要同步采样的通道对应的AD芯片提供统一时钟,使得AD同步地挑选相应的通道举行数据的同步采样和转换,其结果由FPGA接收并存储在双口RAM对应的存储空间,然后由ARM从相应的双口RAM空间读取数据举行本地存储或经过网络传输给上位机举行处理。

按照以上流程以及FPGA要实现的功能,囫囵FPGA规律设方案分为通道和采样率挑选模块、时钟模块、双口RAM模块、AD采样控制模块、串并转换模块、数据存储控制模块、ARM 接口控制模块。

各模块衔接关系2所示。

2.1 通道和采样率挑选模块
在实际应用中并不是每个通道都被用法,AD的采样率也不只一种,所以在通道的控制和采样率设置上应当具有可挑选性。

通道和采样率挑选模块提供2个8 bit的控制寄存器A和B。

3所示,寄存器A的0~4 bit分离对应ADC通道CH0~CH4,5~7 bit保留;寄存器B的8 bit分离对应采样率FS0~FS7。

假如要挑选某几个通道,只需将寄存器A中相应的位置1,其他位置0,AD采样控制模块就会按照该寄存器中的内容使能相应的通道。

假如要挑选某一个采样频率,
只需把寄存器B中相应的位置1,其他位置0,时钟模块会产生相应的时钟控制AD的采样率。

在开启数据采集之前,ARM应按照所要求的通道和采样频率向寄存器A和B写入相应指令字。

2.2 时钟模块
本设计中外部输入时钟为16.384 MHz。

因为设计中各个模块工作时钟的不同以及AD采样率的变幻,所以需要多种不同的时钟信号。

时钟模块的功能就是按照不同采样率为各个模块提供所需的时钟信号。

因为该设计采纳同步时序电路,它是基于时钟触发沿设计,对时钟的周期、占空比、延时、颤动提出了较高的要求,为此本设计中采纳FPGA所带的PLL时钟资源驱动设计的主时钟,使其达到最低的时钟颤动和延迟。

2.3 双口RAM模块
本设计中双口RAM用于数据缓存,一方面存储各个AD芯片转换的数据,另一方面供ARM读取数据做进一步的存储与处理。

它具有真正的双端口,可以同时对其举行数据存取,两个端口具有自立的控制线、地址线和数据线。

该双口RAM模块是通过调用Altera FPGA自带的参数化模型库(Mega-lpm)实现的。

2.4 A/D采样控制模块
A/D采样控制模块的主要任务就是按照ADS1255的转换时序图,在其芯片的引脚发出相应的时序控制信号,使ADS1255完成启动、配置和数据读取等操作。

ADS1255的控制操作如下:首先设置ADS1255的参数配置,读数据模,然后启动转换,通过查询ADS1255的DRDY信号推断是否转换完成,转换结束后将数据按bit挨次读出。

同时将数据输出给串并转换模块,完成一次A/D转换操作。

采样控制模块每完成一次采样操作,则停止等待下一个触发脉冲的到来。

这一控制过程通过状态机实现。

图4给出了该A/D转换控制模块的状态转换图。

当数据采集启动信号START为高电平常,状态机启动。

状态机的各个状态描述如下:
(1)conv_init:状态机的初始状态。

(2)mode_set:设置ADS1255内部的控制寄存器。

(3)conv_start:启动A/D转换。

(4)conv_wait:等待A/D转换结束。

假如转换结束则进入下一状态,否则将继续保持在该状态。

(5)conv_read:A/D转换结束后读出每个bit信息,同时使能移位寄存器举行串并转换。

(6)read_next:推断数据是否读完。

假如没有返回conv_read状态,否则进入下一状态。

(7)conv_next:推断是否需要继续转换数据。

假如没有就进入下一状态,否则返回conv_start状态。

(8)cony_end:表示本次采样任务结束。

状态机保持在该状态,直到采样启动脉冲触发重新开头新的一次采样任务,状态机复位到conv_init 状态。

2.5 串并转换模块
因为ADS1255是以串行输出转换结果的,故需要该模块将串行输出的
数据转换为井行输出。

该模块主要采纳移位寄存器来实现,其移位控
制信号由AD采样控制模块提供。

2.6 数据存储控制模块
该模块的作用是将5通道24 bit经过串并转换的采样数据按通道挨次,以从低字节到高字节的次序,一个一个字节将其写入双口RAM中,事
实上相当于一个字节意义上的并串转换。

该模块输入为5路采样数据reg24Data_0~4,dataF为输出的字节数据,wrenF为双口RAM的写控制信号。

图5是一个五通道数据存储的暗示图。

输入数据值分离为
0x030201、0x060504、0x090807、0x121110、0x151413,输出字节数
据为01~15,同时使能写RAM,满足设计要求。

2.7 ARM接口控制模块
该模块为ARM与FPGA及其双口RAM交互提供桥梁。

当ARM向控制寄存器写入采集参数信息时,接口模块要将该信息通知通道和采样率挑选模块;当ARM读取双口RAM中的数据时,接口模块对ARM的拜访地址举行译码,选中对应的存储空间取出数据。

本文采纳FPGA和ARM结合设计,很好地完成了多通道高精度的数据采集与处理,并且还具体介绍了FPGA规律的设计办法。

FPGA规律通过硬件描述语言实现,已应用到磁数据采集系统中。

本计划设计灵便,能很简单地扩展为更多路的数据采集,也能很简单地修改为与其他的A/D 转换芯片接口。

所以该计划可按照不同的应用举行扩展,进一步增加了系统应用的灵便性。

相关文档
最新文档