1 總體設計
瓦斯傳感器將被測物理量瓦斯涌出量轉換成電信號,經(jīng)過A/D轉換采樣,轉換成數(shù)字信號,在ARM處理器中處理。基于ARM920T內(nèi)核的S3C2440核心板帶有內(nèi)置STN/CSTN/TFT LCD控制器,支持1 024×768分辨率以下的各種液晶,用于顯示預測信息、檢測量、檢測時間等。內(nèi)置4線制電阻式觸摸屏控制器,用于用戶與系統(tǒng)的交互,也可以通過鍵盤對系統(tǒng)參數(shù)等進行設置。100 Mbit/s 以太網(wǎng)控制器,用于與上位PC的雙向信息傳遞。系統(tǒng)的軟件開發(fā)是在Fedora Linux環(huán)境下基于QT設計的。QT是挪威的Trolltech 公司開發(fā)的一個開源的、跨平臺的C++圖形用戶界面應用程序框架。它提供給應用程序開發(fā)者建立藝術級的圖形用戶界面所需的所用功能。QT完全面向?qū)ο?,很容易擴展,并且允許真正地組件編程。系統(tǒng)依據(jù)分源法[1,2]將礦井各個開采面分為不同的瓦斯涌出源,建立瓦斯分源預測模型,經(jīng)過換算得到預測數(shù)據(jù)并顯示。系統(tǒng)結構如圖1所示。
2 硬件設計
2.1 芯片及存儲器設計
系統(tǒng)選用了三星公司基于ARM 9 內(nèi)核的S3C2440嵌入式處理器。S3C2440被廣泛應用于PDA、移動通信、路由器、工業(yè)控制等領域, 芯片中集成了下列模塊: 16 KB指令Cache、16 KB數(shù)據(jù)Cache、MMU、外部存儲器控制器、LCD控制器、NAND Flash控制器、4通道PWM 定時器和1個內(nèi)部定時器、168腳通用GPIO、實時時鐘、8通道10 bit的AD和觸摸屏接口、標準20 pin JTAG調(diào)試接口等。存儲器方面采用標準的64 MB Nand-Flash用于數(shù)據(jù)存儲和64 MB SDRAM用于程序的運行。
2.2 A/D采樣、顯示和接口設計
A/D轉換單元采用MAX1297AEEG實現(xiàn)12位并行模數(shù)轉換,直接與核心板的I/O線連接,如圖2所示。由于S3C2440自帶有LCD控制器,所以免去了LCD控制器的設計,顯示屏采用NEC公司的3.5寸的壓電式觸摸LCD,分辨率為240×320。以太網(wǎng)接口采用TC3097F-5芯片。
3 軟件設計
3.1 BootLoader的移植
BootLoader是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序。大多數(shù)BootLoader都分為Stage1 和Stage2 兩大部分。Stage1主要包含依賴于CPU的體系結構硬件初始化的代碼,通常都用匯編語言來實現(xiàn)。這個階段的任務有:(1)為基本的硬件設備初始化;(2)為第二階段準備RAM空間;(3)設置堆棧并跳轉到第二階段的程序入口點。Stage2通常用C語言完成,以便實現(xiàn)更復雜的功能,也使程序有更好的可讀性和可移植性。這個階段的任務有:(1)初始化本階段要使用到的硬件設備,檢測系統(tǒng)內(nèi)存映射;(2)將內(nèi)核映像和根文件系統(tǒng)映像從Flash讀到RAM;(3)為內(nèi)核設置啟動參數(shù),調(diào)用內(nèi)核。系統(tǒng)采用韓國MIZI公司開發(fā)的開源BootLoader, 即vivi,對vivi進行必要的裁剪并移植到系統(tǒng)當中。[!--empirenews.page--]
3.2 Linux內(nèi)核的移植[5]
由于系統(tǒng)包括數(shù)據(jù)的分析、系統(tǒng)間的通信及與上位機的交互等功能的綜合,所以考慮加入操作系統(tǒng),以便更好地管理和分配資源。系統(tǒng)采用最新的Linux 2.6.14內(nèi)核,內(nèi)核的移植較為復雜,主要包括Makefile文件的修改(如設置交叉編譯的路徑、flash分區(qū)的設置等)和配置內(nèi)核編譯項(make menuconfig):(1)加入Yaffs2文件系統(tǒng)支持;(2)CS8900網(wǎng)卡驅(qū)動的移植;(3)LCD驅(qū)動移植;(4)USB驅(qū)動移植等。
3.3 Yaffs2文件系統(tǒng)的制作
文件系統(tǒng)的制作主要是用busybox工具制作最小文件系統(tǒng),編譯和安裝busybox-1.7.tar后會在busybox目錄下生成子目錄_install,并且/bin目錄下集成壓縮了Linux的許多工具和命令。另外,還要加入QT程序所依賴的動態(tài)共享庫libQtCore.so.4、libQtGui.so.4和libQtNetWork.so.4,并設置環(huán)境變量。
3.4 基于QT的軟件設計[6]
系統(tǒng)的應用程序主要包括以下幾個模塊:
(1)核心算法模塊。根據(jù)分源法建立數(shù)學模型,如圖3所示。
其中主要瓦斯涌出源包括開采煤層(包括圍巖)瓦斯涌出、鄰近煤層瓦斯涌出、掘進巷道煤壁瓦斯涌出、掘進落煤瓦斯涌出、已采采區(qū)采空區(qū)瓦斯涌出和生產(chǎn)采區(qū)瓦斯涌出。
回采工作面瓦斯涌出量q1=開采煤層瓦斯涌出+鄰近煤層瓦斯涌出
掘進工作面瓦斯涌出q2=掘進巷道煤壁瓦斯涌出+掘進落煤瓦斯涌出
其中q4為已采采區(qū)采空區(qū)瓦斯涌出量。
(2)通信模塊。系統(tǒng)的通信包括與上位PC通信和與其他子系統(tǒng)的通信。通信接口采用100 Mb/s以太網(wǎng)接口,通信協(xié)議采用輕量級的UDP協(xié)議,該協(xié)議適用于短消息的網(wǎng)絡數(shù)據(jù)傳輸、擁有大量的客戶端、對數(shù)據(jù)安全無特殊要求、對響應速度要求高等情況。QT提供了一個QUdpSocket類用于編寫UDP程序,QUdpSocket類提供的一個重要功能是廣播,這里正好適合系統(tǒng)以廣播的形式向鄰近煤層系統(tǒng)發(fā)送廣播數(shù)據(jù)報,從而獲得鄰近煤層瓦斯涌出量信息。
(3)信息顯示GUI模塊。該模塊用于與操作人員交互,采用觸摸方式,更適于在狹窄的空間中進行操作。QT的GUI類為程序設計人員提供了豐富的操作控件,可以方便地設計出操作簡單、界面友好的系統(tǒng)。系統(tǒng)的顯示主要包括回采工作面瓦斯涌出量,掘進工作面瓦斯涌出量,當前開采面風速、濕度、瓦斯涌出量預報信息及檢測時間等。
本文針對礦井下不同深度、不同采區(qū)瓦斯涌出量的差異及鄰近采區(qū)瓦斯涌出相互影響的特點,設計出分布式的基于ARM的瓦斯預測系統(tǒng)。系統(tǒng)的硬件平臺設計,鑒于其特殊的應用環(huán)境,采用可靠性高、應用廣泛、技術成熟的S3C2440做為核心板;軟件方面采用了兼容性強的Linux+QT的設計方式,保證了系統(tǒng)的穩(wěn)定可靠。根據(jù)歷史瓦斯涌出數(shù)據(jù),在煤層厚度為4.96m、日產(chǎn)量3 000 t、巷長1 000 m、巷道橫截面為5 m2、平均瓦斯含量為18.80 m3/t、距地面90 m的礦井下,系統(tǒng)預測值為45.28 m3/min,實際值為50.06 m3/min。