在煤炭开采工业中,瓦斯是危害矿井安全生产的重要因素之一。目前的煤矿瓦斯预测系统大多是将影响瓦斯涌出的物理量如浓度、湿度、风速等发送至井上的中心管理系统中进行分析预测,预测信息难以及时反应到井下作业人员及系统,从而导致不能在第一时间作出反应。基于此,本设计选用了三星公司基于ARM9内核的S3C2440嵌入式处理器用于显示预测信息、检测量、检测时间等。
ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM将其技术授权给世界上许多着名的半导体、软件和OEM厂商,每个厂商得到的ARM公司(6张)都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。
一、总体设计
瓦斯传感器将被测物理量瓦斯涌出量转换成电信号,经过A/D转换采样,转换成数字信号,在ARM处理器中处理。基于ARM920T内核的S3C2440核心板带有内置STN/CSTN/TFT LCD控制器,支持1 024×768分辨率以下的各种液晶,用于显示预测信息、检测量、检测时间等。100 Mbit/s 以太网控制器,用于与上位PC的双向信息传递。QT完全面向对象,很容易扩展,并且允许真正地组件编程。系统依据分源法[1,2]将矿井各个开采面分为不同的瓦斯涌出源,建立瓦斯分源预测模型,经过换算得到预测数据并显示。系统结构如图1所示。
预测是指在掌握现有信息的基础上,依照一定的方法与规律对未来的事情进行测算,以预先了解事情发展的结果。预测的方法与形式多种多样,主要包括古代玄门术数对吉凶祸福的占卜与推演和现代科学对现有信息资料进行精密分析后所做出的对自然状况的预报以及各种政治理论学说对人类社会发展的推测。
二、硬件设计
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.2 A/D采样、显示和接口设计
A/D转换单元采用MAX1297AEEG实现12位并行模数转换,直接与核心板的I/O线连接,如图2所示。由于S3C2440自带有LCD控制器,所以免去了LCD控制器的设计,显示屏采用NEC公司的3.5寸的压电式触摸LCD,分辨率为240×320。以太网接口采用TC3097F-5芯片。
三、软件设计
3.1 BootLoader的移植
Bootloader是在运行操作系统内核前所执行的一段小程序。通过执行这段小程序,实现初始化硬件设备、建立内存空间的映射图,从而为系统的软硬件环境设置一个合适状态,以便为最终调用操作系统内核准备好正确环境。
大多数Bootloader包含"启动加载"和"下载"两种操作模式。从最终用户来看,Bootloader就是用来加载操作系统,而无工作模式区别。其中,启动加载模式是Bootloader从目标机上的某个固态存储设备将操作系统加载到RAM中运行,整个过程并没有用户介入。这种模式是Bootloader的正常工作模式。而在下载模式下,目标机上的Bootloader通过串口连接或网络连接从主机(Host)下载文件,例如下载内核映像和根文件系统映像等。
由于实现Bootloader依赖CPU的体系结构,因此大多数Bootloader分为stage1和stage2两部分,并依赖于CPU体系结构的代码,例如:设备初始化代码等,通常放在stage1中,一般采用汇编语言。而stage2则通常采用C语言实现复杂功能,而且代码具有良好的可读性和移植性。Bootloader的stage2步骤通常包括:初始化当前阶段使用的硬件设备;检测系统内存映射;将Kernel映像和根文件系统映像从Flash上读到RAM空间中;为内核设置启动参数;调用内核。
BootLoader是在操作系统内核运行之前运行的一段小程序。大多数BootLoader都分为Stage1 和Stage2 两大部分。Stage1主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。这个阶段的任务有:
(1)为基本的硬件设备初始化;
(2)为第二阶段准备RAM空间;
(3)设置堆栈并跳转到第二阶段的程序入口点。
Stage2通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。这个阶段的任务有:
(1)初始化本阶段要使用到的硬件设备,检测系统内存映射;
(2)将内核映像和根文件系统映像从Flash读到RAM;
3.2 Linux内核的移植
由于系统包括数据的分析、系统间的通信及与上位机的交互等功能的综合,所以考虑加入操作系统,以便更好地管理和分配资源。系统采用最新的Linux 2.6.14内核,内核的移植较为复杂,主要包括Makefile文件的修改和配置内核编译项:(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的软件设计
系统的应用程序主要包括以下几个模块:
(1)核心算法模块。根据分源法建立数学模型,如图3所示。
其中主要瓦斯涌出源包括开采煤层(包括围岩)瓦斯涌出、邻近煤层瓦斯涌出、掘进落煤瓦斯涌出、已采采区采空区瓦斯涌出和生产采区瓦斯涌出。
回采工作面瓦斯涌出量q1=开采煤层瓦斯涌出+邻近煤层瓦斯涌出
掘进工作面瓦斯涌出q2=掘进巷道煤壁瓦斯涌出+掘进落煤瓦斯涌出
其中q4为已采采区采空区瓦斯涌出量。
(2)通信模块。系统的通信包括与上位PC通信和与其他子系统的通信。通信接口采用100 Mb/s以太网接口,通信协议采用轻量级的UDP协议,该协议适用于短消息的网络数据传输、拥有大量的客户端、对数据安全无特殊要求、等情况。QT提供了一个QUdpSocket类用于编写UDP程序,QUdpSocket类提供的一个重要功能是广播,这里正好适合系统以广播的形式向邻近煤层系统发送广播数据报,从而获得邻近煤层瓦斯涌出量信息。
(3)信息显示GUI模块。该模块用于与操作人员交互,采用触摸方式,更适于在狭窄的空间中进行操作。QT的GUI类为程序设计人员提供了丰富的操作控件,可以方便地设计出操作简单、界面友好的系统。系统的显示主要包括回采工作面瓦斯涌出量,掘进工作面瓦斯涌出量,当前开采面风速、湿度、瓦斯涌出量预报信息及检测时间等。
四、总结
本文针对矿井下不同深度、不同采区瓦斯涌出量的差异及邻近采区瓦斯涌出相互影响的特点,设计出分布式的基于ARM的瓦斯预测系统。系统的硬件平台设计,鉴于其特殊的应用环境,采用可靠性高、应用广泛、技术成熟的S3C2440做为核心板;根据历史瓦斯涌出数据,在煤层厚度为4.96m、日产量3000 t、巷长1000 m、巷道横截面为5m2、平均瓦斯含量为18.80m3/t、距地面90m的矿井下,系统预测值为45.28m3/min,实际值为50.06m3/min。