基于FPGA的多通道数据采集系统设计
时间:09-30
来源:EDN
点击:
大地电磁场携带着地球内部的结构、构造、温度、压力以及物质成分的物理状态等信息,为人们研究板块运动的规律、追溯地球的演化历史提供了科学依据。大地电磁探测是研究大陆岩石圈导电性结构的有效方法之一,使人们从电性角度认识地球内部的构造形态,达到了解地下不同深度地质情况的目的。该技术应用前景广泛,可用于地下更深层找矿、找水、找油、监测海底潜艇等,对国民经济和国防的发展都有重要的推动作用。
最常用的数据采集方案多以MCU为核心,控制多路信号的采集及处理。但由于单片机本身的指令周期以及处理速度的影响,对于多通道A/D进行控制及数据处理,普通的MCU往往不容易达到要求。考虑到FPGA器件的高集成度、内部资源丰富、特别适合处理多路并行数据等明显优于普通微处理器的特点,并针对大地电磁数据采集系统对实时性和同步性的要求,本文提出了一种多通道数据采集方案。采用FPGA与ARM相结合的设计,采集主控制逻辑用FPGA实现,ARM用来实现采集数据的存储和数据传输控制。
1 系统总体结构
系统总体结构如图1所示。A/D转换器采用TI公司的24位高精度模数转换器ADS1255;FPGA采用Altera公司的EP2C35;ARM为ARM9内核的处理器S3C2410。双口RAM由EP2C35内部存储器块配置而成,该双口RAM与ARM的系统总线相连,映射为ARM的一块内存区。
AD前端处理电路的作用是实现对信号的放大、衰减以及阻抗匹配,从而满足ADC对输入信号的要求。滤波网络滤除高频噪声和工频信号的干扰,增益放大通过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)实现的。
最常用的数据采集方案多以MCU为核心,控制多路信号的采集及处理。但由于单片机本身的指令周期以及处理速度的影响,对于多通道A/D进行控制及数据处理,普通的MCU往往不容易达到要求。考虑到FPGA器件的高集成度、内部资源丰富、特别适合处理多路并行数据等明显优于普通微处理器的特点,并针对大地电磁数据采集系统对实时性和同步性的要求,本文提出了一种多通道数据采集方案。采用FPGA与ARM相结合的设计,采集主控制逻辑用FPGA实现,ARM用来实现采集数据的存储和数据传输控制。
1 系统总体结构
系统总体结构如图1所示。A/D转换器采用TI公司的24位高精度模数转换器ADS1255;FPGA采用Altera公司的EP2C35;ARM为ARM9内核的处理器S3C2410。双口RAM由EP2C35内部存储器块配置而成,该双口RAM与ARM的系统总线相连,映射为ARM的一块内存区。
AD前端处理电路的作用是实现对信号的放大、衰减以及阻抗匹配,从而满足ADC对输入信号的要求。滤波网络滤除高频噪声和工频信号的干扰,增益放大通过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)实现的。
- 8位高速A/D转换器TLC5510的应用(02-16)
- 毫欧姆电阻在汽车电子系统中的应用(05-11)
- 24位高精度模数转换器ADSl258的原理应用(11-28)
- 电子式互感器中数据采集系统误差补偿的设计与实现(01-01)
- 用于大型地震勘探网的高精度低功耗自检测数据采集系统(02-20)
- 为应变计应用选择合适的放大器(03-25)