1 引言
随着科技的发展,嵌入式操作系统在越来越多的领域发挥着重要的作用,目前已成为产品技术水平的标志之一。其中Linux因为其拥有开放性、多用户、多任务、良好的用户界面、丰富的网络功能、可靠的系统安全和良好的可移植等特性被广泛的应用到仪器测量设备中。
传统的磁场测量设备(持斯拉计、高斯计)普遍存在精度低(典型测量精度为1.5%)、操作不便等缺点。本文提出一种基于嵌入式Linux的中频磁场测量系统,它不但可以满足当前磁场测量数据采集的需要,还因为其嵌入了操作系统Linux,使具有可靠性好、升级方便的特点,既提高了磁场测量的准确性,又为仪器的功能升级带来便利。可应用于实验室仪器,医疗仪器,姿态控制,安全检测等需磁场检测的领域。
2 磁场测量系统的硬件结构
磁场测量系统在硬件结构上采用ARM9作为控制器,与信号放大、整流滤波、程控放大等硬件构成了整个磁场测量系统。而且,测量系统还搭配了USB、RS232、以太网通信接口,系统通讯能力强,可实现网络连网功能。其硬件结构如图1所示。
·ARM9嵌入式处理器采用三星公司的$3C2410。S3C2410是基于ARM920T内核的16/32位RISC嵌入式微处理器,主要面向手持设备以及高性价比,低功耗的应用。它采用5级流水线和全性能的MMU,同时该芯片集成了大量的功能扩展单元,例如LCD控制器、I2C总线、触摸屏接口、USB接口等。强大的芯片功能简化了系统设计,不但缩小了系统体积,而且提高了系统的可靠性。
·USB、RS232和以太网接口可为系统提供不同的通信方式,适合不同测量环境和条件,以太网接口还可实现系统联网功能。
·在磁场测量系统中,可使用触摸屏简便地对系统进行控制,实现不同显示方式切换、参数设置和测量数据保存等功能。
·磁场测量电压信号部分,由磁场传感器得到微弱的电压信号,经放大整流等措施后输入控制系统。
·报警输出可实现用户自设定报警的上下限值,方便用户测量现场的监控。
3 磁场测量系统前端信号处理模块
磁场测量系统前端传感器采用的测量方法为电磁感应法。电磁感应法是将测量线圈置入交变磁场中,根据法拉第电磁感应定律在线圈的引线间会产生感应电动势,并且感应电动势的大小与穿过线圈的磁通量的大小成正比。感应电动势e为:
测量系统前端信号处理模块的结构如图2所示。
(1)为了实现多路磁场传感器的信号输入,设计中采用片选芯片74HCl5进行通道的选择。通过对74HCl53控制端S0,Sl输入不同的数据组合(00,10,0l,11),输出端lY和2Y就可实现不同输入通道的选择。
(2)在整个系统的电路设计中,前置放大电路的主要作用是将传感器输出的、和磁场强度成正比的微弱电压信号放大。根据其要求,设计的前置放大电路采用了差动放大的方式,电路如图3所示。它具有高共模抑制比、输入阻抗高、输出阻抗低、失调小、温漂小、线性好等优点。
(3)磁场测量系统对不同的测量对象进行测量时,磁场传感器的感应强度都会不同。要实现不同测量对象自适应量程的切换,必须设计一个放大倍数可调的模块,而且放大倍数的范围应较广。现采用BURR-BROWN公司的PGA202/203程控仪表放大器,该芯片无需外围芯片,而且PGA202与PGA203经级联可组成从l~8000倍的16种程控增益。放大范围可满足系统的需要。
(4)因磁场检测时会受到环境中其它外部磁场的干扰而输出偏移电压,所以在电路设计中设有自动调零电路,在每次仪器使用前进行自动校准。实现方法是在输入端增加一个开关,校准时输入直接接地,测量时输入接传感器。主控制器将接地时的输出记录在数据区中,并将此输出作为零点而实现自动调零。
(5)该仪器检测的是交变磁场,所以对磁场的频率检测是必需的。实现方法是将磁场检测信号通过一个过零比较器变成方波,方波经过二极管将正电压部分送至单片机的输入捕捉引脚进行频率检测。
总之,前端信号处理模块的设计关系到系统测量数据是否可靠和准确。在设计的过程中,遇到信号在程控放大倍数设置为1000的时候会出现失真的情况,究其原因,是器件PGA202的性能问题导致。所以必须根据器件的性能参数选择合适的放大倍数。
电压的检测也采用了在一秒的时间内取样N次去掉最大和最小值然后取平均值的方法减少测量误差。测量电压V为:
在系统设计时,也充分考虑了抗干扰的要求。在硬件的设计中,采取了同轴电缆作为传输媒质、模拟地与数字地分开、光电隔离、系统加屏蔽罩等措施。软件设计中加入数字滤波、定时自检等措施抗干扰。
4 嵌入式Liinux系统的设计
嵌入式Linux系统不是针对某个硬件平台而开发的,所以进行Linux移植时必须针对相应的硬件对Linux内核加以裁减、修改和补充。磁场测量系统采用的是基于ARM9内核的硬件平台,下面介绍该硬件平台下的Linux系统移植过程和方法。
4.1 建立交叉编译环境
在进行移植前,首先要建立开发平台的ARM—Linux交叉编译环境。linux下的交叉编译环境主要包括针对目标系统几部分:编译器gcc;二进制工具binutils:标准c库glibc;linux内核头文件。
4.2 启动代码的移植
启动代码主要完成硬件检测和系统引导,建立内存空间映射图,为正确调用操作系统内核做好准备。系统加电后,由引导代码进行基本的硬件初始化,然后把内核经映像装入内存运行。启动代码必须针对不同的硬件而设计,本测量系统选择了当前流行的U-BOOT引导系统进行了修改移植。
U-BOOT的启动具体可分为两个阶段,分别为硬件的初始化和内核调用的准备。U—BOOT为开源软件,可找到很多接近目标开发板的参考程序。本系统在参考韩国某公司开发的VIVI启动代码的基础上进行修改和移植,减少了开发时间且代码健壮性好。
4.3 Linux内核的移植
Linux内核的移植是整个嵌入式系统设计的关键部分。Linux内核移植需要完成内核与启动代码的衔接部分的移植以及硬件相关部分的移植,如CPU、中断控制器、定时器、内存控制器等的移植。根据磁场测量系统的硬件结构,Linux内核的移植分为以下四个步骤:
(1)首先是选择内核版本、建立交叉编译环境。本系统选择的Linux内核版本为2.4.18,交叉编译工具选择arm-1inux-gcc 3.3.2;
(2)然后是配置和编译内核,针对硬件对源码作必要的修改。①先修改根目录下的Makefile文件,分别指定目标平台为ARM和指定交叉编译器是arm-1inux-gcc 3.3.2;②接着对linux内核进行配置,此过程必须根据系统硬件和功能进行裁剪。进入linux内核目录输入命令make menuconfig,其配置方式为通过图形方式进行配置,对驱动程序进行裁剪;③配置完成后保存退出,输入Make命令,编译成功后会在arch/arm/boot目录中生成内核的镜像;
(3)接着制作根文件系统并挂载。要实现程序固化,还必须将程序和模块添加到根文件系统中。在程序的设计中,本系统主要是使用软件QT进行触摸屏界面的开发和相关功能的设计;
(4)最后是下载、调试内核并运行。
5 结语
电磁测量已广泛应用于各个行业,随着技术的发展和进步,对磁场测量系统的精度和扩展功能要求越来越高。本文的创新之处是将当前流行的嵌入式Linux系统和磁场测量技术结合起来,构建了一个系统功能丰富、易用性好且扩展功能强的智能化磁场测量系统。在实际应用中可提高测量系统的实时性和多任务处理的能力,符合当前测量发展的需要。