随着微电子技术和计算机技术的发展,嵌入式技术得到了广阔的发展空间。特别是进入20世纪90年代以来,嵌入式技术的发展和普及更为引人注目,已经成为现代工业控制、通信类和消费类产品发展的方向。在煤炭开采工业中,瓦斯是危害矿井安全生产的重要因素之一。目前的煤矿瓦斯预测系统大多是将影响瓦斯涌出的物理量如浓度、湿度、风速等发送至井上的中心管理系统中进行分析预测,预测信息难以及时反应到井下作业人员及系统,从而导致不能在第一时间作出反应。基于嵌入式的瓦斯涌出量预测系统便于在井下不同的开采区安装,对当前开采区传感器数据进行处理分析,并预测出该开采区的瓦斯涌出量信息,各个开采区之间不但彼此可以相互通信,而且可以与上位机进行实时交互。
1 总体设计
瓦斯传感器将被测物理量瓦斯涌出量转换成电信号,经过A/D转换采样,转换成数字信号,在ARM处理器中处理。基于ARM920T内核的S3C2440核心板带有内置STN/CSTN/TFT LCD控制器,支持1 024×768分辨率以下的各种液晶,用于显示预测信息、检测量、检测时间等。内置4线制电阻式触摸屏控制器,用于用户与系统的交互,也可以通过键盘对系统参数等进行设置。100 Mbit/s 以太网控制器,用于与上位PC的双向信息传递。系统的软件开发是在Fedora Linux环境下基于QT设计的。QT是挪威的Trolltech 公司开发的一个开源的、跨平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。QT完全面向对象,很容易扩展,并且允许真正地组件编程。系统依据分源法[1,2]将矿井各个开采面分为不同的瓦斯涌出源,建立瓦斯分源预测模型,经过换算得到预测数据并显示。系统结构如图1所示。
2硬件设计
2.1芯片及存储器设计
系统选用了三星公司基于ARM 9 内核的S3C2440嵌入式处理器。S3C2440被广泛应用于PDA、移动通信、路由器、工业控制等领域, 芯片中集成了下列模块: 16 KB指令Cache、16 KB数据Cache、MMU、外部存储器控制器、LCD控制器、NAND Flash控制器、4通道PWM 定时器和1个内部定时器、168脚通用GPIO、实时时钟、8通道10 bit的AD和触摸屏接口、标准20 pin JTAG调试接口等。存储器方面采用标准的64 MB Nand-Flash用于数据存储和64 MB SDRAM用于程序的运行。
2.2A/D采样、显示和接口设计
A/D转换单元采用MAX1297AEEG实现12位并行模数转换,直接与核心板的I/O线连接,如图2所示。由于S3C2440自带有LCD控制器,所以免去了LCD控制器的设计,显示屏采用NEC公司的3.5寸的压电式触摸LCD,分辨率为240×320。以太网接口采用TC3097F-5芯片。
3 软件设计
3.1 BootLoader的移植
BootLoader是在操作系统内核运行之前运行的一段小程序。大多数BootLoader都分为Stage1 和Stage2 两大部分。Stage1主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。这个阶段的任务有:(1)为基本的硬件设备初始化;(2)为第二阶段准备RAM空间;(3)设置堆栈并跳转到第二阶段的程序入口点。Stage2通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。这个阶段的任务有:(1)初始化本阶段要使用到的硬件设备,检测系统内存映射;(2)将内核映像和根文件系统映像从Flash读到RAM;(3)为内核设置启动参数,调用内核。系统采用韩国MIZI公司开发的开源BootLoader, 即vivi,对vivi进行必要的裁剪并移植到系统当中。
3.2 Linux内核的移植[5]
由于系统包括数据的分析、系统间的通信及与上位机的交互等功能的综合,所以考虑加入操作系统,以便更好地管理和分配资源。系统采用最新的Linux 2.6.14内核,内核的移植较为复杂,主要包括Makefile文件的修改(如设置交叉编译的路径、flash分区的设置等)和配置内核编译项(make menuconfig):(1)加入Yaffs2文件系统支持;(2)CS8900网卡驱动的移植;(3)LCD驱动移植;(4)USB驱动移植等。
3.3 Yaffs2文件系统的制作
文件系统的制作主要是用busybox工具制作最小文件系统,编译和安装busybox-1.7.tar后会在busybox目录下生成子目录_install,并且/bin目录下集成压缩了Linux的许多工具和命令。另外,还要加入QT程序所依赖的动态共享库libQtCore.so.4、libQtGui.so.4和libQtNetWork.so.4,并设置环境变量。
3.4基于QT的软件设计[6]
系统的应用程序主要包括以下几个模块:
(1)核心算法模块。根据分源法建立数学模型,如图3所示。
其中主要瓦斯涌出源包括开采煤层(包括围岩)瓦斯涌出、邻近煤层瓦斯涌出、掘进巷道煤壁瓦斯涌出、掘进落煤瓦斯涌出、已采采区采空区瓦斯涌出和生产采区瓦斯涌出。
回采工作面瓦斯涌出量q1=开采煤层瓦斯涌出+邻近煤层瓦斯涌出
掘进工作面瓦斯涌出q2=掘进巷道煤壁瓦斯涌出+掘进落煤瓦斯涌出
其中q4为已采采区采空区瓦斯涌出量。
(2)通信模块。系统的通信包括与上位PC通信和与其他子系统的通信。通信接口采用100 Mb/s以太网接口,通信协议采用轻量级的UDP协议,该协议适用于短消息的网络数据传输、拥有大量的客户端、对数据安全无特殊要求、对响应速度要求高等情况。QT提供了一个QUdpSocket类用于编写UDP程序,QUdpSocket类提供的一个重要功能是广播,这里正好适合系统以广播的形式向邻近煤层系统发送广播数据报,从而获得邻近煤层瓦斯涌出量信息。
(3)信息显示GUI模块。该模块用于与操作人员交互,采用触摸方式,更适于在狭窄的空间中进行操作。QT的GUI类为程序设计人员提供了丰富的操作控件,可以方便地设计出操作简单、界面友好的系统。系统的显示主要包括回采工作面瓦斯涌出量,掘进工作面瓦斯涌出量,当前开采面风速、湿度、瓦斯涌出量预报信息及检测时间等。
本文针对矿井下不同深度、不同采区瓦斯涌出量的差异及邻近采区瓦斯涌出相互影响的特点,设计出分布式的基于ARM的瓦斯预测系统。系统的硬件平台设计,鉴于其特殊的应用环境,采用可靠性高、应用广泛、技术成熟的S3C2440做为核心板;软件方面采用了兼容性强的Linux+QT的设计方式,保证了系统的稳定可靠。根据历史瓦斯涌出数据,在煤层厚度为4.96m、日产量3 000 t、巷长1 000 m、巷道横截面为5 m2、平均瓦斯含量为18.80 m3/t、距地面90 m的矿井下,系统预测值为45.28 m3/min,实际值为50.06 m3/min。