基于ARM9的嵌入式LINUX地震数据采集系统设计
【摘要】本文简要地介绍了微处理器AT91RM9200和嵌入式LINUX操作系统,同时讨论了地震数据采集系统的硬件设计以及相应的软件设计方法。
本文引用地址://m.amcfsurvey.com/article/83297.htm【关键词】AT91RM9200嵌入式LINUX操作系统数据采集
0 引言
随着数字技术的飞速发展,数字化仪器已成为观测技术领域的主流仪器,因而数据采集技术也成为观测技术领域中一个十分重要的技术环节。众所周知,地震预报一个的世界性难题,作为地震预报的基础,地震及地震前兆观测数据的地位可想而知,获得真实、可靠的观测数据取决于地震观测仪(包括传感器和采集器两部分)。伴随着计算机的迅速发展,以嵌入式为平台的数据采集系统就应运而生了,它具有可靠性高,体积小,易扩展、功能强,开发周期短、成本低。本论文是基于东方地球物理公司地震采集系统设计项目,采用ARM9的嵌入式系统,因此对其研究具有非常重要的现实意义。
1 总体设计方案
作为一个通用的工业数据采集系统的硬件平台,其基本目的是获取外界信号,例如模拟量、开关量,并且能够将数字量信号,转化成模拟量信号输出,以达到对外部 设备的控制。在此基础上,本文所要设计的系统有以下的要求
(1)多通道模拟量采集。因为工控现场的模拟量数据非常多,而且各种模拟量所需要的放大倍数是不一样的,就需要可变增益的放大器。
(2)支持以太网等多种通讯接口。现代工业测控现场要求控制器能够更加速高效的传输数据。
(3)数据采集具有移动转储功能。基于现场的实际工况,需要控制平台在正常工作的情况下,能够将部分数据通过移动存储器提取出来,以便在其它设备上进行数据分析。
设计要求为整个系统的性能提出了最低要求,它为器件选型和系统内部的设计提供了指导原则。根据要求总的系统框图如下:
图1 系统的总体结构框图
2 系统硬件设计
构建地震采集嵌入式系统必须有硬件支持,嵌入式系统硬件没有统一的标准,根据应用要求对嵌入式系统进行裁剪,系统设计的微处理器采用ATMEL公司生产的AT91RM9200微处理器,它是一个真正的片上系统,片内集成了USB、以太网、EBI、, MCI、SSC和SPI等多种通信接口,200MIPS的处理速度和先进电源管理使这款芯片非常适合于系统控制领域。
设计基于AT91RM9200的硬件框图如下所示:
图2 系统硬件结构图
本系统是一款功能强大的微功耗嵌入式高精度数据采集系统,采用基于ARM9内核的工业级处理器和嵌入式Linux操作系统。该系统具备丰富的外围控制接口和通信接口,可通过IO输出的形式控制外围部件以及进行多路模拟信号的切换,采集到的高精度数据可以通过RS232或者高速以太网等方式传送到远程监控端。由于系统采用了功能强大的处理器以及Linux操作系统,除了可以完成高精度数据的采集外,还可以允许用户完成数据处理以及其他的一些应用层的功能。
3 系统软件设计
该系统的实现是在嵌入式Linux操作系统下完成的。嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件是可裁剪的,适用于对功能、可靠性、成本、体积、功耗等有严格要求的专用计算机系统。Linux拥有的许多特点,比如广泛的硬件支持,内核高效稳定,开放源码,软件丰富,优秀的开发工具,完善的网络通信和文件管理机制,免费的等等,它的这些优良特性使得其在嵌入式系统中应用十分合适。嵌入式系统是在满足实际应用基础上的最小简化型系统,嵌入式数据采集系统上运行的各种任务繁多并且部分实时性要求高,嵌入式微处理器需要管理的资源丰富,这些都决定了要在嵌入式平台上引入操作系统。
根据系统要求完成的任务,相应的各模块的设计也就有运用而生了。
3.1 A/D通道模块的软件设计
本系统中采用的 ADS1256 芯片,具有 24 位的转换数据,有效转换位数会根据转换速率、输入缓冲器及放大器的设置而有所改变,在输入缓冲器和放大器的设置不变的情况下,转换速率成了影响有效位数的要素。数据采集频率在允许范围内可为改动,但无论采集频率为多少,ADC的转换速率始终设置为最高 30Ksps,这是为了满足在最高采样频率下工作时,使有效数据位数始终处于最小值,但并不能照顾在低采样频率下工作的情况,因为这时数据量相对较低,对转换速率没有太高的要求,故可以当改选用较低采样频率工作时,相应的将 ADC 工作数进行设置,将其改为在较低的低转换速率下工作,当然要求是满足此时采样频率下的数据要求,这样可以提高系统在某些采样频率下 ADC 工作的转换精度。
使用ADC模块时,先要将测量通道引脚设置为AINx,然后通过ADCR寄存器设置ADC的工作模式,ADC转换通道,转换通道(CLKDIV时钟分频值),并启动ADC转换。可以通过查询或中断的方式等待AD转换完毕,转换数据保存在ADDR存器中。ADC转换时钟分频值计算: CLKDIV= -1(Fadclk为所要设置的ADC时钟,其值不能大于4.5MHZ)。
进行多通道AD转换的时候,首先切换到通道1并进行第一次转换,等待转换结束,再次启动转换,等待转换结果,读取ADC结果。然后切换到通道2并进行第一次转换,操作过程与通道1相同,依次再切换到通道3, 4......,最终完成所有通道的转换。
A/D转换任务的流程如图所示:
图3 A/D任务转换流程图
3.2 USB通道模块的软件设计
USB的拓扑结构中居于核心地位的是主机,任何一次USB的数据传输都必须由主机来发起和控制,所有的USB设备都只能和主机建立连接,而目前,大量的扮演主机角色的是个人电脑。因此我们目前所使用的USB移动设备都是USB的设备如U盘,在嵌入式平台上使用U盘,就必须使得嵌入式产品支持USB host接口。
USB总线包含4种基本数据传输类型:控制传输、中断传输、批传输以及同步传输,本文中用到的是控制传输和批传输。由于一般U盘都属于mass-storage存储类,遵循Bulk-Only传输协议和UFI命令规范。在该种传输方式下,有3种类型的数据在板卡和U盘之间传送:CBW, CSW和普通数据。CBW是从板卡发送到U盘的命令,这里为SCSI传输命令集(包括标志信息,数据度,UFI命令),完成后U盘向板卡反映当前命令执行状态的CSW,板卡根据CSW来决定是否发送数据。
图4 U盘写数据流程图
3.3 串口模块的软件设计
一般工控现场所使用的控制器或者智能仪表都需要具有与PC机通讯的功能,以充分发挥PC机和智能设备各自资源的优势。可以设置通讯的波特率,串行口为8位异步通信接口,一帧信息为10位:1位起始位(0), 8位数据位(低位先)和1位停止位(1) TXD1为发送端,RXD1为接收端,这些都是对USART寄存器的初始化。
完成初始化后,下图是程序流程图:
图5 串口流程图
4 结束语
作为嵌入式系统在工业控制领域的应用,本文主要讨论了基于AT91系列处理器AT91RM9200、嵌入式Linux操作系统的地震数据采集系统的硬件软件设计,在对目前地震测量技术发展进行研究的基础上,对本数据采集的功能和设计方法提出了一整套系统的方案。在不断更新总结的过程中完成了采集系统的研发和制作,并且进行了系统的 ADC性能和数据存储各方面的测试。
参考文献
[1] 江俊辉,基于ARM的嵌入式系统硬件设计,微计算机信息,2005年第7-2期
[2] 周振安 范良龙等. 数据采集系统的设计与实践. 地震出版社,2005年7月
[3] 马建明. 数据采集与处理技术. 西安交通大学出版社,2005年9月
[4] 杨恒. ARM嵌入式系统设计与实践. 西安电子科技大学出版社,2005年10月
[5] 邹思轶. 嵌入式 Linux 设计与应用. 清华大学出版社,2002年4月
[6] 何加铭. 嵌入式32位微处理器系统设计与应用. 电子工业出版社,2005年12月
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论