采用AT91m40800与μC/OS-II系统对海底大地电磁数据采集器进行改进

描述

对现有海底大地电磁信号采集系统的主控模块进行了改进。采用AT91m40800为主控单元,通过移植嵌入式实时操作系统μC/OS-II进行任务管理,并扩展了ISA总线、串行接口和网络接口。概要介绍了改进方案的设计思路、μC/OS-II的移植以及ARM对外围器件的扩展,并通过ISA总线仿真了系统时序效果。

1 、海底大地电磁仪的分析

海底大地电磁数据采集器是对海底大地电磁场和海底环境信息进行自动采集的智能化仪器,旨在建立具有我国特色的海底大地电磁探测技术,并使之实用化,为我国海域区域地质调查提供新的技术支撑,为发展我国海洋电磁探测奠定基础。仪器于2000年研制成功后,在我国东海大陆架进行了成功试验。

整个数据采集器由电道前放板、磁道前放板、主放板、辅助通道板、时钟板、数字板、标定信号板和主控单元构成层叠式电路结构。整个电路板的整体何种为90%26;#215;96%26;#215;170mm3,重量约1kg。采集器使用+5V和%26;#177;12V三路电源,工作状态下整机功耗为7W,正常工作的环境温度为-50℃~+70℃。目前一期完成的海底大地电磁仪最长记录时间为7天,频率范围为0.0001Hz~100Hz。数据采集器配置容量为144MB的固态电子盘。从数据处理的逻辑次序看,整个系统分为八部分,包括前置放大、数字和模拟滤波、低通滤波、高通滤波、主放大器、数据转换、缓冲存储和数据存储。

操作系统

一期建设中,海底大地电磁仪器整体效果还是令人满意的。但也存在一些不足,主要体现在以下几个方面:

(1)系统功耗

目前系统正常工作下,功耗约为7W。其中主要包括磁场传感器功耗290mW、倾斜传感器功耗45mW、振动传感器功耗0.5W、主控电路功耗2W等。在电池电能一定的情况下,整个采集可以持续7天左右,采集时间长度不够。

(2)主控单元

目前采用286系列主控单元,在嵌入式系统发展到很高水平的今天,已不适应高效率、高集成度的技术需要。

(3)采集稳定性

海底大地电磁采集要求各采集点精确同步,所以系统对稳定性的要求十分高。而目前系统采用单道大循环程序实现各项系统任务。这样不利于提高数据采集的稳定性。

2 、改进方案的设计思路

海底电磁数据采集需要的海上作业,采集成本大。为了达到效率最大化,就必须明显降低原有系统的功耗,并提高数据采集的稳定性。鉴于此,改进方案如下:

(1)用ARM芯片取代286系列主控单元

ARM具有集成度高、能耗低等特点,通过使用ARM芯片取代目前的286系列主控单元将极大地降低系统的功耗,同时也可以缩减电路,进而降低电路的复杂度,减小系统的体积。

操作系统

(2)用μC/OS-II取代目前的单道程序

μC/OS-II取得了美国联邦航空管理局(FAA)对于商用飞机的、符合RTCA DO-178B标准的认证,表明μC/OS-II具有足够的安全性和稳定性。使用操作系统管理多任务,实现多任务的并发和同步。通过这种方式取代目前的单道大循环程序,可以提高系统的稳定性。

3 、改进主控单元的硬件组成

ARM架构在推出后获得了成功,各种ARM核心版本以及不同系统方案种类繁多。使用ARM本身已经比原有主控电路功耗降低,在满足实际需要的情况下,还可以在ARM各架构中选择功耗较低的。最终选择了ARM7TDMI结构,部分架构功耗比较见表1。由于原有数据采集系统前台采集部分和后台主控部分使用ISA总线标准进行连接,在ARM7TDMI架构的ARM芯片中,选择了ATMEL公司支持ISA总线扩展的AT91M40800。为完成系统所需任务,根据ATMEL公司发布的EB40开发板电路设计主控单元。片内SRAM 8KB,外部Flash2MB,另有外部器件如串行接口和网络接口等。AT91m40800共有37个寄存器,其中包括31个32位通用寄存器(含程序计数器PC在内)、6个32位状态寄存器(但目前只使用其中的12位)。运行时的任意时刻,可见寄存器包括15个通用寄存器(R0~R14),一个或两个状态寄存器及程序计数器PC,其他寄存器多用于备份。经测试证明:所购芯片功耗测量均值小于0.25mW,较之原有主控单元2W的功耗,显著降低。

表1 部分ARM架构功耗比较表

操作系统

4 、嵌入式实时操作系统μC/OS-II的移植

尽管μC/OS-II是用标准C语言写的,但当应用到某个具体的CPU上时,还需要用C和汇编语言写一些与处理器相关的代码。改写过程主要结合改进系统所采用的新主CPU AT91m40800的一些具体参数,完成整个操作系统的移植。

μC/OS-II可以大致分为内核、任务处理、时间处理、任务同步与通信、与CPU的接口等五部分。内核(OSCore.c)是操作系统的处理核心,包括操作系统初始化、系统运行、中断处理、时钟节拍、任务调度和事件处理等多任务。任务处理部分(OSTask.c)是与任务操作密切相关的,包括任务的建立、删除、挂起、恢复等。时钟部分(OSTime.c)定义μC/OS-II的最小时钟单位是Timetick(时钟节拍)。任务同步和通信部分包括信号邮箱、邮箱队列和时间 标志等部分,主要用于任务间的互相联系和对临界资源的访问。与CPU接口部分是指μC/OS-II针对所使用的CPU的移植部分,主要包括中断级任务切换的底层实现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断和相关处理部分等内容。

μC/OS-II除了良好的稳定性和安全性以外,很重要的特点就是对多任务管理的优异表现。μC/OS-II可以管理多达64个任务。除了8个μC/OS-II自用的任务以外,用户的应用程序最多可有56个任务。用户可以通过系统提供的任务结构来自行创立任务。改进方案中需要管理的任务包括GPS校时、读采集数据、数字滤波和存数据,执行框架如图1。

在初始化时,进行GPS校时。读优先级最高,采集器不停地读数据。当数据在缓冲区中还没填满时,进行滤波和写存储器的任务,一旦缓冲已满就要继续执行读操作。这里所说的读操作实际上是系统从缓冲中读的操作,并不是实际的采集器读地磁信号操作。写任务其次,必须连贯地完成一次写任务,中途不能被打断。所以只有在不进行读操作时,才可以进行写操作。滤波任务在读任务完成后执行,但是如果前一个写任还没有完成,就不能滤波,以防止新数据无法写入。所以只有当新的读任务结束,且旧的写任务完成后方可执行新读数据的滤波任务。通过μC/OS-II提供的信号量机制,可很好地实现任务进程的互斥与并发。

操作系统

5 、ARM对外围设备的扩展

主控单元与前台数据采集模块间仍保留原有ISA总线接口标准,只是自行设计ARM主控单元的接口电路如图2所示。符合原有协议标准后,改进电路成功替代了原来的主控。

虽然串行接口速度较慢,但完全可以满足与上位机之间的通信。改进方案首先实现了ARM对于串口的扩展,作为通信手段之一。使用ARM公司自行开发的的ARM调试专用环境ADS1.2测试串行接口的效果:扩展程序所设计的输出结果为AT9140800USART_CUGB,连接采集仪和PC机,使用Windows自带的超级终端可以看到输出结果与设计一致,表明扩展是成功的。

各采集器间及采集器与上位机交互还可通过网络实现。改进方案基于μC/OS-II移植IP协议栈后,通过扩展网络接口卡,可实现网络功能。由于网络接口芯片本身也遵守ISA标准,所以扩展的网络接口还可以用来仿真测试ISA总线。检测总线时序情况就可测试主控模块的功能情况。抓取ISA设备时序,即得出系统接总线是否符号ISA协议标准。写一次后,逻辑分析仪截出几次时序,结果如图3所示。图3时序情况:/CS8019为网络接口芯片片选信号,/WE为写使能信号,/OE为输出使能信号,A1~A5为低5位地址,D0~D7为8位数据位。图3中显示写使能一次后,输出多次,对应地址循环(程序设定的输出效果),数据位则是输出8019的数据,具体内容没有意义。如图3虚线处,在C1时刻,开始进行写操作;C2时刻输出,低5位地址为00000;C3时刻第二次输出,地址为00001;C4时刻第三次输出,地址为00010。依次类推,表明主控单元改进满足了ISA总线的要求,网络接口扩展也正常。基于此,通过与前台数据采集模块直接连接,即可进行海底大地电磁数据的高效采集。

由于采用ARM芯片取代原有主控单元,仅此一项就降低功耗约25%,实现了功耗降低的要求。另外在采用了操作系统后,将使整个采集过程更稳定有序,提高了整个采集过程的准确性和安全性。


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分