基于ARM和FPGA的便携人工地震数据采集系统设计

发布者:神光骑士最新更新时间:2011-05-26 关键字:ARM和FPGA  地震数据采集系统 手机看文章 扫描二维码
随时随地手机看文章

近年来,随着可编程逻辑器件(CPLD/FPGA)的迅猛发展,可编程逻辑器件在数据采集、逻辑接口设计、电平接口转换和高性能数字信号处理等领域取得越来越广泛的应用。CPLD/FPGAD不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且开发周期短、投入少,同时不断下降的芯片价格极大推动了CPLD/FPGA器件在广泛应用领域的使用。本文介绍一种ARM微处理器+FPGA的硬件设计,融合嵌入式Linux技术,实现一种小型化、移动性强、网络耦合度高的便携式人工地震数据采集系统。该系统以满足人工地震观测的需要、减小仪器尺寸和重量、降低功耗、降低野外工作强度和提高数据采集工作效率为目标。
1 系统硬件设计
    采集系统由CPU核心板、A/D数据采集板和电源板组成,系统原理如图1所示。CPU板以Atmel  AT91SAM9G20微处理器为核心,通过总线和GPIO分别与64 MB SDRAM、16 MB Norflas和FPGA A3P250接口。板上大容量CF卡安装有FAT文件系统,用于地震波形数据的本地存储。网络接口提供远程登录、数据传输及系统控制功能,包括实时数据流传输。LCD屏显示系统工作参数,如温度、经纬度、高程、系统网络IP地址等信息。串口用于输出调试信息,也被SAM-BA软件用来下载烧写引导加载程序U-boot和嵌入式Linux操作系统内核映像文件。A/D采集板上有三路模数转换数据采集通道,标定信号发生器和检波器控制信号调理电路。高效的电源转换电路是实现系统低功耗的基础。电源板主要提供CPU等数字电路+3.3 V/+1.8 V电源,地震计反馈电路供电±12 V、±4 V,参考电压±2.5 V,标定电路和检波器控制电路供电。GPS系统提供时间服务和地理位置信息。

    AT91SAM9G20是Atmel公司推出的一款基于ARM926EJ-S核的低功耗SoC。ARM核工作频率高达400 MHz,具有DSP指令扩展,支持Java硬件加速,具备全功能的MMU。内部集成2个容量为16 KB的高速SRAM,具有丰富的片上I/O设备,包括以太网MAC、USB主机和设备接口、通用同/异步发送接收器USART、SPI接口、同步串行接口SSC、多媒体存储接口等。电源管理控制器(PMC)提供了CPU动态调频的硬件支持。
1.1 FPGA逻辑设计
    FPGA芯片的功能主要包括:(1)采集三个通道的A/D数据。当三路数据准备就绪,nDRDY1、nDRDY2、nDRDY3信号全部拉低,启动由FPGA实现的SPI数据传输状态机,地震波形数据被缓冲到FPGA内部的16 bit宽的FIFO_2k_ADC_DATA中。当FIFO_2k_ADC_DATA中数据达到一个阈值时,向ARM微处理器触发AD_INT中断。在中断处理程序ad_irq_rx()中,通过系统数据总线把FIFO中数据转移到内存缓冲区ad_data_buff[]中。之后,调用schedule_work(&tasklet)把诸如数字信号滤波等耗时任务放到中断下半部中进行处理。(2)根据标定数据文件,控制DAC生成模拟标定波形输出。标定波形类型有正弦波、方波等。(3)检波器控制电路驱动地震计调零电机动作。(4)IRIG读码。生成IRIG-B数据帧,通过PPS_interrupt触发CPU中断,pps_irq_handle()中断处理程序负责把IRIG码存储到内存变量irig_frame中,等待解码以提取时间、经纬度、高程等信息。下面是spi实体的Top-level行为级VHDL语言描述。[page]

ENTITY spi IS
    PORT (    CLK        :in  STD_LOGIC;--4.096 MHz
            CLK40    :in  STD_LOGIC;--40 MHz
            SYNC    :out STD_LOGIC;--PINMODE模式下,
使用复位信号同步数据采集信号
            DOUT1    :in STD_LOGIC;
            SCLK1    :out STD_LOGIC;--第一通道的
ADS1281模数转换器的SPI时钟
            nDRDY1,nDRDY2,nDRDY3:in STD_LOGIC;
--ADS1281数据就绪等待采集信号
            spi_clk    :out STD_LOGIC;--扩展SPI时钟
            spi_mosi    :out STD_LOGIC;--扩展SPI主机
发送从机接收数据信号线
            spi_cs1    :out  STD_LOGIC;--扩展SPI片选
信号
            EINT1,EINT2:out STD_LOGIC;--FIFO半满数
据采集中断信号AD_INT,
和DAC数据请求中断信号INT
            ENABLE1,A2,A3,A4,A5:in STD_LOGIC;
            DATA:inout STD_LOGIC_VECTOR(15 downto 0);
--ARM处理器数据总线
            led_drv:out STD_LOGIC;--LED状态指示
            PPS_interrupt:out  STD_LOGIC;--1 Hz,
GPS秒脉冲
            nRESET:in STD_LOGIC;
            GPS_IRIGL:in STD_LOGIC;--IRIG码读写
            nRD:in STD_LOGIC;--ARM读
            nWR:in STD_LOGIC;--ARM写
            nCS:in STD_LOGIC);--ARM片选
END spi;
1.2 A/D数据采集通道
    A/D转换器采用TI公司的ADS1281。该A/D转换器具有高分辨率、高精度特性,内置4阶稳定的ΔΣ调制器,可配置SINC、FIR和IIR滤波器,数据率250 S/s~4 KS/s,特别适合地震数据观测环境。在本设计中,模拟地动波形信号经差分放大后输入到AD1281的AINP和AINN端。SCLK由FPGA分频产生的1.024 MHz的时钟驱动,用于串行输出A/D数据到FPGA FIFO。当A/D完成数据转化后,CH1_DRDY拉低向FPGA表示数据准备就绪,等待读取。CH1_ DOUT连接至FPGA的DOUT1端口,用于数据到FPGA FIFO的串行传输。AD_CLK由4.096 MHz时钟驱动,是A/D的工作时钟。A/D转换原理电路如图2所示。

[page]

2 系统软件设计概要
    Linux因其源代码开放性特点,成为嵌入式系统中应用最为广泛的操作系统之一。本系统采用嵌入式操作系统Linux-2.6.30内核,交叉编译工具使用arm-none-linux-gnueabi-gcc,底层硬件驱动和数字信号FIR/IIR滤波程序使用C语言,部分代码使用嵌入式汇编语言,上层应用程序开发则使用C、C++。本系统的软件设计主要任务包括操作系统的移植、驱动程序开发(包括数据采集驱动、系统控制及标定驱动程序等模块)以及嵌入式应用软件和上位PC机应用软件开发。
2.1 嵌入式操作系统Linux-2.6.30的裁剪
    下载解压缩内核源文件。修改顶层目录下的Makefile文件,设定目标硬件ARCH=arm,指定交叉编译环境路径CROSS_COMPILE=/usr/locaL/arm-2007q1/bin/arm-none-linux- gnueabi-。使用图形界面或文本行界面进行内核配置,根据硬件电路和软件系统功能对内核模块进行剪裁,完成操作系统镜像的定制、编译与调试,并在此环境上进行应用软件和驱动程序的开发。在ARM中植入嵌入式linux平台,首先根据目标设备的硬件配置及需要,对linux-2.6.30内核进行基本定制,开发并安装驱动程序,增加CPU动态调频特性,生成镜像文件。JTAG将U-boot写入Flash后,通过网卡将镜像文件下载到目标设备中进行调试,最终把U-boot、linux-2.6.30内核及文件系统映像文件等烧写入Flash存储器。
2.2 A/D数据采集驱动
    设备驱动程序是操作系统内核与硬件之间的接口,属于内核的一部分。根据功能划分,设备驱动程序代码有以下几个部分:(1)驱动程序的注册与注销;(2)设备的打开与释放;(3)设备的读/写操作;(4)设备的控制操作;(5)数据采集中断处理程序和PPS_INTERRUPT中断处理程序。AD驱动程序最终实现一个字符设备驱动,为了使该驱动程序能够被上层的应用程序方便地调用,需要实现以下的接口函数:
    (1)open调用:打开数据采集通道,需要注意的是open调用不应该自动启动AD采样,而应该由ioctl调用提供显式的控制接口。
    (2)read调用:读取采样数据,阻塞式读取,以字节数返回读取到的数据量。
    (3)release调用:关闭数据采集通道,释放系统资源。
    (4)ioctl调用:提供以下一些设置命令。DS—ADC—START:启动AD采样,每次开始都会清空上次未读走的数据。DS—ADC—ST0P:停止AD采样。DS—ADC—SET—SAMPIE_RATE:设定采样率。DS—AdC—GET—COUNT:获取内存环行缓冲区中已存储的采样数据。
2.3 应用软件设计
    应用软件包括嵌入式应用软件和PC机应用软件。嵌入式应用软件运行在采集器ARM处理器上,具体实现为一个命令解析服务器,通过Socket接口连接到上位PC机,并接收PC机端发送来的控制命令,执行相应的操作。PC机应用软件由主线程和数据通信线程组成。主线程为文档—视图结构,实现参数查询与设置操作、实时波形显示与波形存储等功能;数据通信线程与硬件通信,接收波形数据。主要功能包括,(1)实时接收、存储波形数据;(2)实时浏览波形;(3)查询、设置系统工作参数;(4)查询GPS信息;(5)查询、设置标定参数、启动停止标定;(6)查询、设置触发参数;(7)设置数据采集器通信参数。
3 动态电源管理
    在本设计中,从微处理器和A/D等芯片的选型到电源系统设计都充分考虑低功耗设计,为了进一步降低系统功耗,设计中引入了CPU动态调频技术。位于系统内核的负载监控器Load Monitor负责统计核算负载信息,并根据系统负载轻重,驱动电源管理控制器Power Controller对CUP工作频率和相关设备能效状态做出调整。该模型对应用层程序完全透明,但应用程序也可通过proc接口显式调整系统状态。在开发板的初步实验中,在测试程序为while死循环情况下,测得系统在三个频率点上的总功率为169 mA×12 V@400 MHz,133 mA×12 V@
200 MHz,112 mA×12 V@99 MHz,系统存在可观的降耗空间。值得注意的是,动态调频对系统稳定性造成很大挑战,调频代码需进一步完善。
    本文主要讨论了基于低功耗微处理器AT91SAM9G20和可编程逻辑门阵列器件(FPGA)的地震数据采集系统的硬件设计和嵌入式Linux软件开发思路。值得一提的是,在系统中引入动态调频技术,为进一步降低系统动态功耗以至总体功耗做了有益探索。本设计是在对当前地震测量技术发展研究的基础上,提出的一种功耗低、体积小、野外使用安装便捷的实现方案,对降低数据采集成本、延长系统有效工作时间、提高野外工作效率有着积极意义。
参考文献
[1] 杜春雷.Arm体系结构与编程[M].北京:清华大学出版社,2003.
[2] CHARLES H.ROTH,Jr.数字系统设计与VHDL[M].北京:电子工业出版社,2008.
[3] GROUT I著.基于FPGA和CPLD的数字系统设计[M].北京:电子工业出版社,2009.
[4] 刘淼.嵌入式系统接口设计与Linux驱动程序开发[M].北京:北京航空航天出版社,2O06.
[5] 宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社,2008.
[6] Jens Ha kov,著.地震观测技术与仪器[M].赵仲,赵建和译.北京:地震出版社,2007.
[7] 张朋.嵌入式系统在工程地震仪的应用研究[J].计算机与数字工程,2008,36(2):l37-l39.

 

关键字:ARM和FPGA  地震数据采集系统 引用地址:基于ARM和FPGA的便携人工地震数据采集系统设计

上一篇:基于ARM9的视频监控终端的设计与实现
下一篇:基于ARM的嵌入式航空拖靶高度控制器设计

推荐阅读最新更新时间:2024-03-16 12:36

ActelARM联合开发专为FPGA应用而优化的高性能32位处理器
Actel全新的Cortex-M1适用于以Flash为基础的M1 ProASIC3和 M1 Fusion 器件 Actel公司进一步扩展其工业标准处理器系列,宣布推出ARM Cortex-M1处理器,这是与ARM公司联合开发的小型高性能32位软件微处理器核,专为在FPGA中的实施而优化。不象许多业界领先的处理器核通常需要支付授权费用和权益金,Actel的客户能够免费获得先进的ARM处理器技术如Cortex-M1,适用于广阔的市场领域。 免费提供的Cortex-M1可与Actel以Flash为基础且可运行MI核的Actel Fusion FPGA和ProASIC3 FPGA同用,为设计人员提供编程灵活性和系统级集成,从而开发出低成
[新品]
ARM,DSP,FPGA,CPLD,SOPC,SOC区别联系
ARM,DSP,FPGA,CPLD,SOPC,SOC之间有什么区别和联系? arm是一种嵌入式芯片,比单片机功能强,可以针对需要增加外设。类似于通用cpu,但是不包括桌面计算机。 DSP主要用来计算,计算功能很强悍,一般嵌入式芯片用来控制,而DSP用来计算,譬如一般手机有一个arm芯片,主要用来跑界面,应用程序,DSP可能有两个,adsp,mdsp,或一个,主要是加密解密,调制解调等。 FPGA和CPLD都是可编程逻辑器件,都可以用VHDL或verilog HDL来编程,一般CPLD使用乘积项技术,粒度粗些;FPGA使用查找表技术,粒度细些,适用触发器较多的逻辑。其实多数时候都忽略它们的差异,一般在设计ASIC芯片时要用FP
[单片机]
ARM,DSP,FPGA,CPLD,SOPC,SOC之间有什么区别联系
arm是一种嵌入式芯片,比单片机功能强,可以针对需要增加外设。类似于通用cpu,但是不包括桌面计算机。EETOP专业博客---电子工程师自己的家园u0010~u000Fh-Nu0006{u0016Xu0005tY#Y!P DSP主要用来计算,计算功能很强悍,一般嵌入式芯片用来控制,而DSP用来计算,譬如一般手机有一个arm芯片,主要用来跑界面,应用程序,DSP可能有两个,adsp,mdsp,或一个,主要是加密解密,调制解调等。 FPGA和 CPLD 都是可 编程 逻辑器件,都可以用 VHDL 或 verilog HDL 来编程,一般CPLD使用乘积项技术,粒度粗些;FPGA使用查找表技术,粒度细些,适用触发器较多的逻辑。其实多
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved