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

时间:2011-05-26来源:网络

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.

1 2 3

关键词: ARM和FPGA 地震数据采集系统

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版