隨著微電子技術和計算機技術的發(fā)展,嵌入式技術得到了廣闊的發(fā)展空間。特別是進入20世紀90年代以來,嵌入式技術的發(fā)展和普及更為引人注目,已經(jīng)成為現(xiàn)代工業(yè)控制、通信類和消費類產(chǎn)品發(fā)展的方向。在煤炭開采工業(yè)中,瓦斯是危害礦井安全生產(chǎn)的重要因素之一。目前的煤礦瓦斯預測系統(tǒng)大多是將影響瓦斯涌出的物理量如濃度、濕度、風速等發(fā)送至井上的中心管理系統(tǒng)中進行分析預測,預測信息難以及時反應到井下作業(yè)人員及系統(tǒng),從而導致不能在第一時間作出反應。
ARM(Advanced RISC Machines)是微處理器行業(yè)的一家知名企業(yè),設計了大量高性能、廉價、耗能低的RISC處理器、相關技術及軟件。技術具有性能高、成本低和能耗省的特點。適用于多種領域,比如嵌入控制、消費/教育類多媒體、DSP和移動式應用等。ARM將其技術授權給世界上許多著名的半導體、軟件和OEM廠商,每個廠商得到的ARM公司(6張)都是一套獨一無二的ARM相關技術及服務。利用這種合伙關系,ARM很快成為許多全球性RISC標準的締造者。
1 總體設計
瓦斯傳感器將被測物理量瓦斯涌出量轉換成電信號,經(jīng)過A/D轉換采樣,轉換成數(shù)字信號,在ARM處理器中處理;贏RM920T內(nèi)核的S3C2440核心板帶有內(nèi)置STN/CSTN/TFT LCD控制器,支持1 024×768分辨率以下的各種液晶,用于顯示預測信息、檢測量、檢測時間等。100 Mbit/s 以太網(wǎng)控制器,用于與上位PC的雙向信息傳遞。QT完全面向對象,很容易擴展,并且允許真正地組件編程。系統(tǒng)依據(jù)分源法[1,2]將礦井各個開采面分為不同的瓦斯涌出源,建立瓦斯分源預測模型,經(jīng)過換算得到預測數(shù)據(jù)并顯示。系統(tǒng)結構如圖1所示。
預測是指在掌握現(xiàn)有信息的基礎上,依照一定的方法與規(guī)律對未來的事情進行測算,以預先了解事情發(fā)展的結果。預測的方法與形式多種多樣,主要包括古代玄門術數(shù)對吉兇禍福的占卜與推演和現(xiàn)代科學對現(xiàn)有信息資料進行精密分析后所做出的對自然狀況的預報以及各種政治理論學說對人類社會發(fā)展的推測。
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)核前所執(zhí)行的一段小程序。通過執(zhí)行這段小程序,實現(xiàn)初始化硬件設備、建立內(nèi)存空間的映射圖,從而為系統(tǒng)的軟硬件環(huán)境設置一個合適狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確環(huán)境。
大多數(shù)Bootloader包含"啟動加載"和"下載"兩種操作模式。從最終用戶來看,Bootloader就是用來加載操作系統(tǒng),而無工作模式區(qū)別。其中,啟動加載模式是Bootloader從目標機上的某個固態(tài)存儲設備將操作系統(tǒng)加載到RAM中運行,整個過程并沒有用戶介入。這種模式是Bootloader的正常工作模式。而在下載模式下,目標機上的Bootloader通過串口連接或網(wǎng)絡連接從主機(Host)下載文件,例如下載內(nèi)核映像和根文件系統(tǒng)映像等。
由于實現(xiàn)Bootloader依賴CPU的體系結構,因此大多數(shù)Bootloader分為stage1和stage2兩部分,并依賴于CPU體系結構的代碼,例如:設備初始化代碼等,通常放在stage1中,一般采用匯編語言。而stage2則通常采用C語言實現(xiàn)復雜功能,而且代碼具有良好的可讀性和移植性。Bootloader的stage2步驟通常包括:初始化當前階段使用的硬件設備;檢測系統(tǒng)內(nèi)存映射;將Kernel映像和根文件系統(tǒng)映像從Flash上讀到RAM空間中;為內(nèi)核設置啟動參數(shù);調(diào)用內(nèi)核。
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.2 Linux內(nèi)核的移植
由于系統(tǒng)包括數(shù)據(jù)的分析、系統(tǒng)間的通信及與上位機的交互等功能的綜合,所以考慮加入操作系統(tǒng),以便更好地管理和分配資源。系統(tǒng)采用最新的Linux 2.6.14內(nèi)核,內(nèi)核的移植較為復雜,主要包括Makefile文件的修改和配置內(nèi)核編譯項:(1)加入Yaffs2文件系統(tǒng)支持;(2)CS8900網(wǎng)卡驅動的移植;(3)LCD驅動移植;(4)USB驅動移植等。
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的軟件設計
系統(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做為核心板;根據(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。