黃 斌 ,王 英* ,王 強 ,盧 群 ,茅奇輝
(1.浙江理工大學機械與自動控制學院,浙江杭州310018;2.浙江省地礦勘察院,浙江杭州310013)
在地質勘察與地下建筑工程領域,淺層氣給施工過程帶來極大的困擾[1-2]。淺層氣的泄露和噴發會造成勘查設備損害和人員傷亡。淺層氣的主要成分還是地球溫室效應來源之一,其泄露和噴發造成環境損壞。因此研究淺層氣的高精度探測方法,已成為我國地質勘察、地下工程建設與環境保護的迫切需求[3]。淺層氣主要成分為甲烷,含量為90%以上,其余為二氧化碳、及少量氮氣和一氧化碳[4]。本研究通過檢測淺層氣勘探和施工現場空氣中的甲烷與二氧化碳濃度為勘探和施工過程提供保證。目前工程勘探部門在用的淺層氣檢測的方法是現場采集到氣體后再到實驗室中通過氣體組分測定分析試驗來獲取淺層氣中各種氣體的濃度信息,這種方法檢測周期長,實驗環境與方法復雜,無法在工程勘探現場對淺層氣進行方便、快捷地檢測[5]。
本研究采用SAMSUNG 公司的S3C2440 微處理器,結合嵌入式Linux 操作系統作為儀器的主要平臺,使用非色散紅外吸收法(NDIR)氣體傳感器MH-410D和MH-440D 分別用于檢測淺層氣中CO2與CH4的濃度[6],通過嵌入式SQLite 數據庫來存儲淺層氣檢測的濃度數據,運用Qt Creator 設計數據訪問的圖形用戶界面(GUI)來顯示實時濃度、歷史數據以及數據曲線。
根據儀器功能的需求,本研究設計了儀器的硬件電路。它主要包括以微處理器為中心的核心板模塊、電源模塊、串口調試模塊,數據顯示模塊,SD 存儲模塊,傳感器模塊。硬件資源包括64 MB SDRAM、128M字節的NAND Flash。LCD 顯示屏用于氣體數據的顯示,SD 卡用于存儲氣體濃度數據,RS-232 接口用于開發過程中輸出系統調試信息,JTAG 接口用于燒寫UBoot,Linux 內核以及文件系統的鏡像文件。硬件框圖如圖1 所示。

圖1 硬件框圖
甲烷傳感器選用MH-440D 型紅外氣體傳感器,該傳感器采用非色散紅外(NDIR)技術[7-8]對空氣中存在的CH4進行探測,檢測原理為CH4對特定波長的紅外光具有一定的吸收作用,濃度越大,吸收越強烈,傳感器內部帶有溫度傳感器,可進行溫度補償。廣泛應用于存在可燃性、爆炸性氣體的各種場合。將傳感器VCC 端接5 V,GND 端接電源地,Vout端接微處理器ADC 模塊的輸入端AIN0。經過預熱時間后從Vout端輸出電壓值0.4 V~2.0 V 代表氣體濃度值0~100%VOL。當自檢發現故障時,傳感器輸出電壓為0 V。MH-440D 型甲烷傳感器的技術參數如表1 所示。

表1 MH-440D 型甲烷傳感器技術參數表
設A/D 轉換值為ADCCH4,ADC 參考電壓值為VVDDA,轉換精度為S,ADC 輸出最小值為VMIN,測量范圍為L,信號輸出范圍為VL。則甲烷濃度值VALCH4為:

二氧化碳傳感器采用MH-410D 型紅外傳感器,MH-410D 傳感器同樣基于NDIR 原理對空氣中存在的CO2進行探測,其內置溫度傳感器,可進行溫度補償。MH-410D 是一款小巧精密的二氧化碳傳感器。將傳感器VCC 端接5 V,GND 端接電源地,Vout端接微處理器ADC 模塊的輸入端AIN1。傳感器的預熱時間為3 min,經過預熱時間后從Vout端輸出表征氣體濃度的電壓值,正常輸出電壓信號范圍是0.4 V~2.0 V 代表氣體濃度值0~5% VOL。當自檢發現故障時,傳感器輸出電壓為0 V。MH-410D 型傳感器的技術參數如表2 所示。

表2 MH-410D 型二氧化碳傳感器技術參數表
設A/D 轉換值為ADCCO2,ADC 參考電壓值為VVDDA,轉換精度為S,ADC 輸出最小值為VMIN,測量范圍L,信號輸出范圍VL。則二氧化碳濃度值VALCO2為:

S3C2440 微處理器內部集成一個八通道模擬輸入轉換器,ADC 單元在工作時的供電電壓為3.3 V,輸入的模擬信號幅值為0~3.3 V 的電壓信號,由此可知該模數轉換的最大量程為3.3 V。ADC 單元的分辨率為10 位,那么電壓信號經過轉換后的輸出值應該在0~210之間的一個值,這樣就可以通過轉換后的數字量來表示輸入的模擬電壓值的大小并以數值的形式保存在ADC 模塊的數據寄存器中,然后通過ADC 驅動程序讀取數值并提交給應用程序進行處理。
S3C2440 微處理器ADC 單元最大的轉換速率是在2.5 MHz 轉換時鐘下達到500 KSPS。S3C2440 有3個時鐘FCLK、HCLK 和PLCK。FLCK 是芯片內核時鐘,HCLK 是高速總線時鐘,PCLK 是低速I/O 接口時鐘。S3C2440 的ADC 采樣頻率與PCLK 有關,PCLK一般配置為50 MHz。因為時鐘頻率過高,需要通過對預分頻器進行適當的設置,才能獲取ADC 正常工作的頻率。設定PCLK 的頻率為50 MHz,預分頻值在ADCCON 寄存器中設定。ADC 轉換頻率fA/D可以通過式(3)求得:

ADC 驅動程序初始化函數主要完成以下5 部分工作:
(1)使用register_chrdev_region(devno,adc_nr_devs,"adc_device")函數獲取驅動程序設備號,如果申請失敗則使用alloc_chrdev_region(&devno,adc_minor,adc_nr_devs,"adc_device")函數請求內核動態分配一個未被占用的設備號,本次使用的主設備號設為240,次設備分別為0 和1;
(2)映射虛擬內存地址:使用ioremap(58000000,0x6)函數將A/D 轉換器的物理地址映射為Linux 內核能夠訪問的虛擬內存地址;
(3)使能ADC 轉換時鐘:clk_get()從時鐘list 鏈表中以字符id 名稱來查找ADC 時鐘clk 結構體并且返回,最后調用clk_enable()使能對應的ADC 模塊的時鐘源;
(4)設置ADC 預分頻值:設置預分頻值時先要使能A/D 預分頻器,然后在ADCCON 寄存器中設置其預分頻值;
(5)創建設備文件:設備文件是Linux 內核給用戶空間的訪問接口,應用程序通過操作設備文件來訪問硬件,創建設備文件使用class_create()和device_create()函數來實現。
當用戶空間調用read 函數時,最終驅動程序中的read 函數被執行,這個函數主要用來讀取硬件的數據并和用戶空間交換數據。宏定義GET_DATA 用來實現兩路ADC 數據的讀取,宏定義SET_ADC_CHANNEL(ch)可以實現兩路ADC 轉換通道的切換,參數ch是次設備號,通過iminor()函數在內部調用MINOR宏,從inode 中提取次設備號。內核空間與用戶空間交換數據使用copy_to_user(buf,&data,sizeof(data))函數,參數buf 來自于用戶空間,參數&data 是內核空間中存放A/D 轉換數據的地址,參數sizeof(data)表示從內核空間復制到用戶空間數據的長度。
本研究將雙通道ADC 驅動程序編譯進內核采用驅動靜態加載的方式:①將ADC 驅動程序復制到Linux 內核的/drivers/char/目錄下;②修改/drivers/char/目錄下的內核配置文件Kconfig;③修改/drivers/char/目錄下的Makefile 文件將ADC 驅動以靜態方式編譯;④使用make menuconfig 命令將雙通道ADC 驅動配置到Linux內核中;⑤編譯生成Linux 內核鏡像文件;⑥將內核鏡像文件通過以NFS 的方式下載到目標板上啟動即可。
該設計中采用了軟件抗干擾設計,針對由于脈沖干擾所引起的氣體采樣偏差,筆者采用防脈沖干擾平均濾波法降低隨機干擾。防脈沖干擾平均濾波法又可稱為中位值平均濾波法,它是平均濾波法與中位值濾波法結合體。平均濾波法只能對周期性的脈動采樣值進行平滑處理,但是對于隨機的脈沖干擾卻無法消除,而采用中位值平均濾波法就可以解決這個問題,故將兩種濾波方法結合在一起形成中位值平均濾波法。采樣序列的濾波結果Y 可用過公式求得:
若X(1)≤X(2)≤X(3)…X(N),(3 ≤N ≤14)

在實際應用中,防脈沖干擾平均濾波法對信號的平滑度取決于連續采樣次數N,N 值越大濾波平滑度越好,但靈敏度變差;反之,N 值越小濾波靈敏度越好而平滑度變差,通常N 的取值在區間[3~14]中[9]。連續采樣次數N 取為10,每采集到10 個采樣值后進行一次中位值平均濾波,記錄所得到的濾波結果。每次濾波運算完成后接著進行下一組采樣值的濾波運算并保存結果。防脈沖濾波法程序流程圖如圖2 所示。

圖2 防脈沖濾波法流程圖
由于Linux 內核的內存管理機制,應用程序不能直接讀/寫硬件的物理地址,必須借助驅動程序在內核空間實現對硬件地址的訪問。設備驅動程序是操作系統內核和系統硬件之間的接口,它為應用程序屏蔽了硬件的細節。這樣在應用程序看來,硬件設備只是一個設備文件,應用程序可以和操作普通文件一樣,只需要進行文件的打開、讀寫和關閉等操作,就能控制底層的具體硬件設備。Linux 系統與所有硬件設備的交互都如同操作普通文件一樣簡單。雙通道ADC 驅動程序加載后,在/dev/目錄下會產生兩個設備文件/dev/adc0 和/dev/adc1,應用程序通過讀設備文件來獲取兩個傳感器數據。系統每間隔10 s 讀取一次氣體濃度數據,讀取的數據都保存在嵌入式數據庫中。當嵌入式系統中移植了SQLite 數據庫后,應用程序可以利用SQLite 提供的API 來進行對數據的存儲操作。本次設計中建立了一張用于存儲氣體濃度數據表,在打開數據庫文件后,主要使用sqlite3_exec()函數執行SQL 語句來實現氣體濃度數據的插入、刪除,讀取等操作。程序流程如圖3 所示。
Qt 是一個跨平臺圖形用戶界面庫,它提供給應用程序開發者建立圖形用戶界面所需的所用功能。Qt的開發語言是C + +,它可以向開發人員提供各種主要功能的統一的編程接口。由于Qt 的出現,使得UNIX、Linux 這些操作系統能為用戶展現精美的人機界面,Qt 是Linux 系統中主流的GUI 工具。Qt/Embedded 是一種面向嵌入式平臺的Qt 版本[10]。

圖3 程序流程圖
在嵌入式Linux 系統中搭建好Qt/Embedded 環境后,就可以將在上位機設計完成的Qt 界面程序拷貝到下位機上運行。該設計的淺層氣檢測儀的GUI 界面由3 部分組成:①實時數據顯示;②歷史記錄顯示;③數據曲線顯示。儀器界面框圖如圖4 所示。

圖4 檢測儀界面
淺層氣檢測試驗平臺由壓力容器、抽真空裝置、加氣增壓裝置和氣體收集四大部分組成。壓力容器用于混合氣體;抽真空裝置用于將壓力容器抽至真空狀態;加氣增壓裝置用于向壓力容器中充氣,以獲得不同不同濃度的混合氣體;氣體收集部分主要用于收集從淺層氣物理模型中放出的氣體,以便后續檢測與分析,淺層氣檢測實驗平臺簡圖如圖5 所示。本研究在進行測量實驗時采用稀釋配氣的方法獲取標準氣源,根據流量比混合法將兩種高純度氣體進行混合,通過控制瞬時流量比的方式來獲取滿足要求的不同濃度標準氣。
在配制標準氣時,流量計處的溫度為鋼瓶氣溫度tstdm,壓力為pstdm,流量Fstdm;稀釋氣溫度tNm,壓力為pNm,流量為FNm,則配制的標準氣濃度為:

圖5 淺層氣檢測實驗平臺簡圖

式中:C—稀釋后的標準氣濃度,%VOL;Cstd—瓶裝標準氣濃度,%VOL。且有:

故只需要調整標準氣與稀釋氣輸出口的兩個流量計之比FNm/Fstdm,就可以獲得高濃度標準氣稀釋后的各種標準濃度的氣體[11]。
淺層氣檢測試驗平臺上的甲烷氣瓶與二氧化碳氣瓶裝有濃度為99.9%的高純度標準氣體。筆者采用高精度的D07-7 型氣體質量流量控制器控制配合D08-8C型流量積算儀設定瞬時流量實現流量計之比的調整。在實驗平臺上測得的一組數據如表3、表4 所示。

表3 甲烷測量結果

表4 二氧化碳測量數據
對測量實驗結果進行分析可得:CH4與CO2的示值相對誤差為小于10%;通過重復測量值與貝塞爾公式求得CH4與CO2的標準偏差分別為1.16%和0.78%;通過對實驗過程分析可知儀器不確定度影響顯著的因素有:測量重復性引起的標準不確定度與淺層氣測量實驗平臺配置標準濃度氣體的不確定度,檢測儀測量CH4與CO2合成不確定度分別為1.26%和1.08%。
本研究通過在實驗室建立淺層氣測量實驗平臺,采用NDIR 氣體傳感器檢測淺層氣中的主要成分甲烷與二氧化碳,設計了儀器的硬件電路,設計了Linux 系統中針對傳感器模塊的雙通道驅動程序,采樣Qt Creator 設計了顯示數據的儀器界面。筆者通過使用ARMLinux 作為儀器平臺有利于實現測控儀器的智能化與網絡化,可進一步實現淺層氣的遠程檢測功能。該儀器在地質勘察與地下建筑施工現場可幫助施工人員進行方便快捷的獲取淺層氣濃度信息,具有較好的實用性。
[1]陶靈法,潘永堅,蔡國成.沿海平原海相沉積土中淺層氣的探查[J].鐵道勘察,2014(4):47-49.
[2]郭愛國,孔令偉,沈林沖,等.地鐵建設中淺層氣危害防治對策研究[J].巖土力學,2013,34(3):769-775.
[3]孔令偉,郭愛國,陳守義,等.淺層天然氣井噴對地層的損傷影響與樁基工程危害分析[J]. 防災減災工程學報,2004,24(4):375-400.
[4]曾洪賢,周傳斌,黃燕慶.杭州灣大橋含生物氣層工程特性研究[J].土工基礎,2008,22(3):53-55.
[5]王江濤. 天然氣水合物氣體組成分析方法研究與應用[D].青島:中國海洋大學化學工程學院,2012.
[6]付 華,劉 娜,周 坤,等. 基于ATMEGA16 的便攜式瓦斯檢測儀[J].傳感技術學報,2012,25(9):1323-1325.
[7]PARK J S,YI S H. Temperature compensated NDIR CH4gas sensor with focused beam structure[J].Procedia Engineering,2010(5):1248-1251.
[8]WCNG J Y,TSE C W. Recalibration technique for NDIR gas sensors without the need for gas standards[J]. Sensor Review,2012,32(3):217-221.
[9]陳 燕.基于ARM 的礦用便攜式多氣體檢測儀的研制[D].西安:西安科技大學電氣與控制工程學院,2013.
[10]BLANCHETTE J,SUMMERFIELD M. C + + GUI programming with Qt 4[M]. Upper Saddle River:Prentice Hall Professional,2006.
[11]傅忠誠,艾效逸,王天飛.天然氣燃燒與節能環保新技術[M].北京:中國建筑工業出版社,2007.