基于ARM9的嵌入式LINUX地震数据采集系统设计
扫描二维码
随时随地手机看文章
【关键词】AT91RM9200 嵌入式LINUX操作系统 数据采集 www.51kaifa.com
【Summary】This text has introduced the microprocessor AT91RM9200 and embedded LINUX operating system briefly, and discussed hardware designing and corresponding software design method of the data collecting system of the earthquake.
【key】AT91RM9200 embedded LINUX operating system data collecting
0 引言
随着数字技术的飞速发展,数字化仪器已成为观测技术领域的主流仪器,因而数据采集技术也成为观测技术领域中一个十分重要的技术环节。众所周知,地震预报是一个的世界性难题,作为地震预报的基础,地震及地震前兆观测数据的地位可想而知,获得真实、可靠的观测数据取决于地震观测仪(包括传感器和采集器两部分)。伴随着计算机的迅速发展,以嵌入式为平台的数据采集系统就应运而生了,它具有可靠性高,体积小,易扩展、功能强,开发周期短、成本低。本论文是基于东方地球物理公司地震采集系统设计项目,采用ARM9的嵌入式系统,因此对其研究具有非常重要的现实意义。
1 总体设计方案
作为一个通用的工业数据采集系统的硬件平台,其基本目的是获取外界信号,例如模拟量、开关量,并且能够将数字量信号,转化成模拟量信号输出,以达到对外部设备的控制。在此基础上,本文所要设计的系统有以下的要求:www.51kaifa.com
(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寄存器的初始化。www.51kaifa.com
完成初始化后,下图是程序流程图:
图5 串口流程图
4 结束语
作为嵌入式系统在工业控制领域的应用,本文主要讨论了基于AT91系列处理器AT91RM9200、嵌入式Linux操作系统的地震数据采集系统的硬件软件设计,在对目前地震测量技术发展进行研究的基础上,对本数据采集的功能和设计方法提出了一整套系统的方案。在不断更新总结的过程中完成了采集系统的研发和制作,并且进行了系统的 ADC性能和数据存储各方面的测试。
参考文献
[1] 江俊辉,基于ARM的嵌入式系统硬件设计,微计算机信息,2005年第7-2期
[2] 周振安 范良龙等. 数据采集系统的设计与实践. 地震出版社,2005年7月www.51kaifa.com
[3] 马建明. 数据采集与处理技术. 西安交通大学出版社,2005年9月
[4] 杨恒. ARM嵌入式系统设计与实践. 西安电子科技大学出版社,2005年10月
[5] 邹思轶. 嵌入式 Linux 设计与应用. 清华大学出版社,2002年4月www.51kaifa.com
[6] 何加铭. 嵌入式32位微处理器系统设计与应用. 电子工业出版社,2005年12月