论文部分内容阅读
摘要:本文主要介绍基于ARM+FPGA的高精度数据采集器设计,该设计的特点是利用FPGA控制数据的高速采集,同时采用ARM对外围电路进行控制和数据处理,并实现在液晶屏上的频谱显示。该设计利用FPGA实现高精度数据采集控制,利用ARM实现光标跟踪、D/A变换及显示等重要指标,并且提供了良好的人机交互界面,其设计方法具有较高的实际应用价值。文章重点论述了基于ARM+FPGA的实用高精度数据采集器的总体设计、硬件设计和软件设计。
关键词:ARM;FPGA;高精度;数据采集;系统
引言
在科技快速发展的今天,数据采集的重要性是十分显著的,其应用范围越来越广泛,尤其是在工业领域,数据采集的精度和处理的实时性要求逐渐提高,传统的数据采集系统通常采用A/D芯片和主控芯片搭配的手段,该方法功能单一,处理效率低下,如果遇到被测的对象比较复杂并且数据量比较大时,无法满足对数据高精度的要求。基于ARM+FPGA的高精度数据采集系统能够有效的避免上述问题,ARM作为主控芯片,对整个系统进行控制,并将数据通过USB高速的上传到上位机中,能够借助上位机的强大的运算能力,对数据处理的实时性进行确保,同时能够简便的形成一个用户自定义的数据采集系统,具有良好的通用性;而FPGA能够对数据采样的高精度和高效率进行保证。本文主要论述基于ARM+FPGA的高精度数据采集器设计相关内容。
1系统总体设计及基本工作原理
1.1系统组成
高精度数据采集器主要架构由ARM(+DA)+FPGA(+AD)组成。本系统主要由三个独立的模块组成。第一部分是数据采集模块,主要完成信号的采集、调理和A/D转换,然后采用并行方式送给处理器;第二部分是处理器模块,接收数据采集模块发送过来的数字信号、处理后显示,并且将处理完的信号送给D/A转换模块;第三部分是D/A转换模块,把数字频谱信号还原并通过示波器显示。
1.2 系统基本工作原理
系统工作时,数据采集器置于被监控的设备处,通过传感器对设备的电压或者电流信号进行采样、保持,并送入A/D转换器变成数字信号,然后将该信号送到FPGA内的FIFO中。当FIFO中存放的数据到了一定数目时,由主控芯片ARM从FIFO中读出,然后通过ARM的USB接口或者RS232送给上位机。考虑到要监控的设备可能会很多,所以设计了8路采集通道,信号经过模拟开关后再进入A/D转换器。FPGA是整个系统的控制核心,它控制采集通道的切换、A/D转换器的启/停、转换后的数据在FIFO中的存放地址发生器、产生中断请求以通知ARM读取存放在FIFO中的数据等。FPGA通过FFT运算,在时域和频域对信号的各个频率分量进行分析和处理,由ARM控制并通过LCD显示信号频谱,同时将频谱信号通过D/A变换后送入示波器显示。
2硬件设计
2.1数据采集模块
数据采集模块基于Altera公司的低成本FPGA实现,包括信号调理电路、A/D变换芯片和FPGA芯片。由于实际采集及工程化应用时,噪声、采样率过低,或者信号中包含频率高于奈奎斯特频率的成分,信号都可能会发生畸变。为了避免这种情况的发生,通常在信号被采集(A/D)之前,经过一个抗混叠低通滤波器,将信号中高于奈奎斯特频率的信号成分滤去。本方案中采用了低噪声运放THS3001作为输入缓冲运放,减少了微弱信号的衰减,对输入信号进行调理。
A/D变换芯片采用高性能24位过采样SAR型ADC(模数转换器)AD7767,它具有较宽的动态范围和输入带宽,非常适合在较宽的动态范围测量小信号变化的应用。由于AD7767片内集成数字滤波器(包括线性相位响应),通过过采样输入来消除带外噪声。这种过采样架构也可以相应减少对前端抗混叠滤波的需求。
FPGA 选用Altera公司的Cyclone IV GX系列FPGA芯片EPCGX30CF19,它具有低成本、低功耗的FPGA架构;6K到150K的逻辑单元;高达6.3Mb的嵌入式存储器。FPGA的作用除了构造FIFO以实现数据通道复用外,还可以作为协处理器进行实时性要求较高的数据预处理。由于FPGA的数据速率可高达3.125Gbps,配合FIFO对信号进行采集,完全能够满足设计要求。通过FPGA产生一个频率和穩定度高的信号作为FIFO的时钟,然后由FIFO对A/D转换的结果进行采集与存储,本设计采用FPGA可以方便地控制时序和数据传输。数据采集后送入ARM处理器进行处理。
2.2 处理器模块
处理器模块主要由ARM最小系统组成,采用Luminary Micro公司的工作频率为50MHz的ARM1138作为主芯片,其工作频率高达50MHz,在运算速度和内存处理上能充分满足浮点运算需求,同时该芯片具有丰富的外设接口,能够满足本设计的需求。为了提供良好的人机界面、增加信息的可读性,本设计采用了显示信息量多、较易控制的4×4矩阵输入键盘、LCD12864型(128*64点阵)液晶显示信号频谱分析结果。
2.3 D/A转换模块
输出采用8位D/A转换芯片TLC5628C,其转换速率为10KHz,由ARM1138控制。D/A主要是将FFT变换所产生的频谱数据转变为模拟信号输出。TLC5628操作简便,只要选通后给数据端送数据即可输出,转换为模拟信号后送给示波器进行显示。
3软件设计
3.1信号FFT理论计算
在数字信号系统中,通常采用离散傅里叶变换(DFT)来完成信号从时域到频域的变换。对于一个N点有限长序列,其DFT变换表示为:
在FFT运算之前须调整采样率(fk)和采样点数(N),分辨率、采样频率和采样点数的关系如下:
又根据采样定理,采样频率必须不小于2fm,即: 设计要求的最高频率为10MHz,所以采样率必须大与等于20MHz,因此我们选择采样率为30MHz。
3.2 FPGA程序设计
FPGA是控制AD采集的核心,首先在其内部实现各模块的设计与仿真,然后设计出顶层电路原理图。其中数据采集控制模块负责对A/D转换进行时序控制,实现AD转换的正常工作。FPGA利用时钟管理模块产生时钟用以作为采样时钟,采样数据被送至FIFO进行缓存处理。FPGA程序模块主要包括时钟管理模块、AD数据采集控制模块以及数据缓存模块。本部分程序采用VHDL语言编写。AD控制模块仿真图如图2所示。
3.3 ARM程序设计
本系统的ARM程序设计基于ADS1.2开发系统,ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,ADS1.2支持ARM10之前的所有ARM系列微控制器。ARM程序模块主要包括数据读取模块、FFT计算模块、LCD显示模块,本部分程序采用C 语言编写。
4测试
硬件测试时,先检查电路板是否有虚焊、短路、断路,然后用万用表检测,检查无误后可通电检查LCD液晶屏亮度情况,一般4-5V可达到满意效果。
软件调试是在QuartusⅡ和ADS1.2下进行,原程序编译和仿真调试以子程序为单位进行,最后结合硬件实时调试。子程序调试包括:FFT变换程序、数据采集程序、测频程序、LCD和键盘外围程序。测试最终结果满足设计要求。
结语
随着科技与信息技术的飞速发展,使得数据采集在精度及速度方面提出了越来越高的要求。在这种背景下,本文中作者采用ARM做为主控芯片,通过FPGA控制A/D转换对信号进行采样,把连续信号离散化,然后通过FFT运算,在时域和频域对信号的各个频率分量进行分析和处理、并通过LCD显示信号频谱,同时将频谱信号通过D/A变换后送入示波器显示。本設计充分结合了ARM系统和FPGA芯片的强大功能,实现了高精度数据采集及显示,具有较高的实际应用价值。
参考文献:
[1]朱晓鹏,肖铁军,赵蕙. ARM+FPGA的实时数据采集系统设计[J]. 计算机工程与设计,2009,30(13):3088-3090.
[2]秦奎,张卫平,陈文元. 基于ARM和FPGA的微加速度计数据采集系统设计[J]. 现代电子技术,2010,33(2):25-27.
[3]许思琦. 基于Linux的FPGA+ARM高速数据采集系统设计[J]. 计算机测量与控制,2017(4):172-175.
关键词:ARM;FPGA;高精度;数据采集;系统
引言
在科技快速发展的今天,数据采集的重要性是十分显著的,其应用范围越来越广泛,尤其是在工业领域,数据采集的精度和处理的实时性要求逐渐提高,传统的数据采集系统通常采用A/D芯片和主控芯片搭配的手段,该方法功能单一,处理效率低下,如果遇到被测的对象比较复杂并且数据量比较大时,无法满足对数据高精度的要求。基于ARM+FPGA的高精度数据采集系统能够有效的避免上述问题,ARM作为主控芯片,对整个系统进行控制,并将数据通过USB高速的上传到上位机中,能够借助上位机的强大的运算能力,对数据处理的实时性进行确保,同时能够简便的形成一个用户自定义的数据采集系统,具有良好的通用性;而FPGA能够对数据采样的高精度和高效率进行保证。本文主要论述基于ARM+FPGA的高精度数据采集器设计相关内容。
1系统总体设计及基本工作原理
1.1系统组成
高精度数据采集器主要架构由ARM(+DA)+FPGA(+AD)组成。本系统主要由三个独立的模块组成。第一部分是数据采集模块,主要完成信号的采集、调理和A/D转换,然后采用并行方式送给处理器;第二部分是处理器模块,接收数据采集模块发送过来的数字信号、处理后显示,并且将处理完的信号送给D/A转换模块;第三部分是D/A转换模块,把数字频谱信号还原并通过示波器显示。
1.2 系统基本工作原理
系统工作时,数据采集器置于被监控的设备处,通过传感器对设备的电压或者电流信号进行采样、保持,并送入A/D转换器变成数字信号,然后将该信号送到FPGA内的FIFO中。当FIFO中存放的数据到了一定数目时,由主控芯片ARM从FIFO中读出,然后通过ARM的USB接口或者RS232送给上位机。考虑到要监控的设备可能会很多,所以设计了8路采集通道,信号经过模拟开关后再进入A/D转换器。FPGA是整个系统的控制核心,它控制采集通道的切换、A/D转换器的启/停、转换后的数据在FIFO中的存放地址发生器、产生中断请求以通知ARM读取存放在FIFO中的数据等。FPGA通过FFT运算,在时域和频域对信号的各个频率分量进行分析和处理,由ARM控制并通过LCD显示信号频谱,同时将频谱信号通过D/A变换后送入示波器显示。
2硬件设计
2.1数据采集模块
数据采集模块基于Altera公司的低成本FPGA实现,包括信号调理电路、A/D变换芯片和FPGA芯片。由于实际采集及工程化应用时,噪声、采样率过低,或者信号中包含频率高于奈奎斯特频率的成分,信号都可能会发生畸变。为了避免这种情况的发生,通常在信号被采集(A/D)之前,经过一个抗混叠低通滤波器,将信号中高于奈奎斯特频率的信号成分滤去。本方案中采用了低噪声运放THS3001作为输入缓冲运放,减少了微弱信号的衰减,对输入信号进行调理。
A/D变换芯片采用高性能24位过采样SAR型ADC(模数转换器)AD7767,它具有较宽的动态范围和输入带宽,非常适合在较宽的动态范围测量小信号变化的应用。由于AD7767片内集成数字滤波器(包括线性相位响应),通过过采样输入来消除带外噪声。这种过采样架构也可以相应减少对前端抗混叠滤波的需求。
FPGA 选用Altera公司的Cyclone IV GX系列FPGA芯片EPCGX30CF19,它具有低成本、低功耗的FPGA架构;6K到150K的逻辑单元;高达6.3Mb的嵌入式存储器。FPGA的作用除了构造FIFO以实现数据通道复用外,还可以作为协处理器进行实时性要求较高的数据预处理。由于FPGA的数据速率可高达3.125Gbps,配合FIFO对信号进行采集,完全能够满足设计要求。通过FPGA产生一个频率和穩定度高的信号作为FIFO的时钟,然后由FIFO对A/D转换的结果进行采集与存储,本设计采用FPGA可以方便地控制时序和数据传输。数据采集后送入ARM处理器进行处理。
2.2 处理器模块
处理器模块主要由ARM最小系统组成,采用Luminary Micro公司的工作频率为50MHz的ARM1138作为主芯片,其工作频率高达50MHz,在运算速度和内存处理上能充分满足浮点运算需求,同时该芯片具有丰富的外设接口,能够满足本设计的需求。为了提供良好的人机界面、增加信息的可读性,本设计采用了显示信息量多、较易控制的4×4矩阵输入键盘、LCD12864型(128*64点阵)液晶显示信号频谱分析结果。
2.3 D/A转换模块
输出采用8位D/A转换芯片TLC5628C,其转换速率为10KHz,由ARM1138控制。D/A主要是将FFT变换所产生的频谱数据转变为模拟信号输出。TLC5628操作简便,只要选通后给数据端送数据即可输出,转换为模拟信号后送给示波器进行显示。
3软件设计
3.1信号FFT理论计算
在数字信号系统中,通常采用离散傅里叶变换(DFT)来完成信号从时域到频域的变换。对于一个N点有限长序列,其DFT变换表示为:
在FFT运算之前须调整采样率(fk)和采样点数(N),分辨率、采样频率和采样点数的关系如下:
又根据采样定理,采样频率必须不小于2fm,即: 设计要求的最高频率为10MHz,所以采样率必须大与等于20MHz,因此我们选择采样率为30MHz。
3.2 FPGA程序设计
FPGA是控制AD采集的核心,首先在其内部实现各模块的设计与仿真,然后设计出顶层电路原理图。其中数据采集控制模块负责对A/D转换进行时序控制,实现AD转换的正常工作。FPGA利用时钟管理模块产生时钟用以作为采样时钟,采样数据被送至FIFO进行缓存处理。FPGA程序模块主要包括时钟管理模块、AD数据采集控制模块以及数据缓存模块。本部分程序采用VHDL语言编写。AD控制模块仿真图如图2所示。
3.3 ARM程序设计
本系统的ARM程序设计基于ADS1.2开发系统,ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,ADS1.2支持ARM10之前的所有ARM系列微控制器。ARM程序模块主要包括数据读取模块、FFT计算模块、LCD显示模块,本部分程序采用C 语言编写。
4测试
硬件测试时,先检查电路板是否有虚焊、短路、断路,然后用万用表检测,检查无误后可通电检查LCD液晶屏亮度情况,一般4-5V可达到满意效果。
软件调试是在QuartusⅡ和ADS1.2下进行,原程序编译和仿真调试以子程序为单位进行,最后结合硬件实时调试。子程序调试包括:FFT变换程序、数据采集程序、测频程序、LCD和键盘外围程序。测试最终结果满足设计要求。
结语
随着科技与信息技术的飞速发展,使得数据采集在精度及速度方面提出了越来越高的要求。在这种背景下,本文中作者采用ARM做为主控芯片,通过FPGA控制A/D转换对信号进行采样,把连续信号离散化,然后通过FFT运算,在时域和频域对信号的各个频率分量进行分析和处理、并通过LCD显示信号频谱,同时将频谱信号通过D/A变换后送入示波器显示。本設计充分结合了ARM系统和FPGA芯片的强大功能,实现了高精度数据采集及显示,具有较高的实际应用价值。
参考文献:
[1]朱晓鹏,肖铁军,赵蕙. ARM+FPGA的实时数据采集系统设计[J]. 计算机工程与设计,2009,30(13):3088-3090.
[2]秦奎,张卫平,陈文元. 基于ARM和FPGA的微加速度计数据采集系统设计[J]. 现代电子技术,2010,33(2):25-27.
[3]许思琦. 基于Linux的FPGA+ARM高速数据采集系统设计[J]. 计算机测量与控制,2017(4):172-175.