国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ARM的淺層氣檢測儀*

2015-03-02 06:25:40茅奇輝
機電工程 2015年7期
關(guān)鍵詞:驅(qū)動程序內(nèi)核淺層

黃 斌 ,王 英* ,王 強 ,盧 群 ,茅奇輝

(1.浙江理工大學(xué)機械與自動控制學(xué)院,浙江杭州310018;2.浙江省地礦勘察院,浙江杭州310013)

0 引 言

在地質(zhì)勘察與地下建筑工程領(lǐng)域,淺層氣給施工過程帶來極大的困擾[1-2]。淺層氣的泄露和噴發(fā)會造成勘查設(shè)備損害和人員傷亡。淺層氣的主要成分還是地球溫室效應(yīng)來源之一,其泄露和噴發(fā)造成環(huán)境損壞。因此研究淺層氣的高精度探測方法,已成為我國地質(zhì)勘察、地下工程建設(shè)與環(huán)境保護的迫切需求[3]。淺層氣主要成分為甲烷,含量為90%以上,其余為二氧化碳、及少量氮氣和一氧化碳[4]。本研究通過檢測淺層氣勘探和施工現(xiàn)場空氣中的甲烷與二氧化碳濃度為勘探和施工過程提供保證。目前工程勘探部門在用的淺層氣檢測的方法是現(xiàn)場采集到氣體后再到實驗室中通過氣體組分測定分析試驗來獲取淺層氣中各種氣體的濃度信息,這種方法檢測周期長,實驗環(huán)境與方法復(fù)雜,無法在工程勘探現(xiàn)場對淺層氣進行方便、快捷地檢測[5]。

本研究采用SAMSUNG 公司的S3C2440 微處理器,結(jié)合嵌入式Linux 操作系統(tǒng)作為儀器的主要平臺,使用非色散紅外吸收法(NDIR)氣體傳感器MH-410D和MH-440D 分別用于檢測淺層氣中CO2與CH4的濃度[6],通過嵌入式SQLite 數(shù)據(jù)庫來存儲淺層氣檢測的濃度數(shù)據(jù),運用Qt Creator 設(shè)計數(shù)據(jù)訪問的圖形用戶界面(GUI)來顯示實時濃度、歷史數(shù)據(jù)以及數(shù)據(jù)曲線。

1 硬件設(shè)計

1.1 系統(tǒng)平臺硬件設(shè)計

根據(jù)儀器功能的需求,本研究設(shè)計了儀器的硬件電路。它主要包括以微處理器為中心的核心板模塊、電源模塊、串口調(diào)試模塊,數(shù)據(jù)顯示模塊,SD 存儲模塊,傳感器模塊。硬件資源包括64 MB SDRAM、128M字節(jié)的NAND Flash。LCD 顯示屏用于氣體數(shù)據(jù)的顯示,SD 卡用于存儲氣體濃度數(shù)據(jù),RS-232 接口用于開發(fā)過程中輸出系統(tǒng)調(diào)試信息,JTAG 接口用于燒寫UBoot,Linux 內(nèi)核以及文件系統(tǒng)的鏡像文件。硬件框圖如圖1 所示。

圖1 硬件框圖

1.2 甲烷傳感器

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

表1 MH-440D 型甲烷傳感器技術(shù)參數(shù)表

設(shè)A/D 轉(zhuǎn)換值為ADCCH4,ADC 參考電壓值為VVDDA,轉(zhuǎn)換精度為S,ADC 輸出最小值為VMIN,測量范圍為L,信號輸出范圍為VL。則甲烷濃度值VALCH4為:

1.3 二氧化碳傳感器

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

表2 MH-410D 型二氧化碳傳感器技術(shù)參數(shù)表

設(shè)A/D 轉(zhuǎn)換值為ADCCO2,ADC 參考電壓值為VVDDA,轉(zhuǎn)換精度為S,ADC 輸出最小值為VMIN,測量范圍L,信號輸出范圍VL。則二氧化碳濃度值VALCO2為:

2 ADC 驅(qū)動程序設(shè)計

2.1 ADC 模塊介紹

S3C2440 微處理器內(nèi)部集成一個八通道模擬輸入轉(zhuǎn)換器,ADC 單元在工作時的供電電壓為3.3 V,輸入的模擬信號幅值為0~3.3 V 的電壓信號,由此可知該模數(shù)轉(zhuǎn)換的最大量程為3.3 V。ADC 單元的分辨率為10 位,那么電壓信號經(jīng)過轉(zhuǎn)換后的輸出值應(yīng)該在0~210之間的一個值,這樣就可以通過轉(zhuǎn)換后的數(shù)字量來表示輸入的模擬電壓值的大小并以數(shù)值的形式保存在ADC 模塊的數(shù)據(jù)寄存器中,然后通過ADC 驅(qū)動程序讀取數(shù)值并提交給應(yīng)用程序進行處理。

2.2 A/D 采樣頻率

S3C2440 微處理器ADC 單元最大的轉(zhuǎn)換速率是在2.5 MHz 轉(zhuǎn)換時鐘下達到500 KSPS。S3C2440 有3個時鐘FCLK、HCLK 和PLCK。FLCK 是芯片內(nèi)核時鐘,HCLK 是高速總線時鐘,PCLK 是低速I/O 接口時鐘。S3C2440 的ADC 采樣頻率與PCLK 有關(guān),PCLK一般配置為50 MHz。因為時鐘頻率過高,需要通過對預(yù)分頻器進行適當?shù)脑O(shè)置,才能獲取ADC 正常工作的頻率。設(shè)定PCLK 的頻率為50 MHz,預(yù)分頻值在ADCCON 寄存器中設(shè)定。ADC 轉(zhuǎn)換頻率fA/D可以通過式(3)求得:

2.3 ADC 驅(qū)動程序初始化函數(shù)

ADC 驅(qū)動程序初始化函數(shù)主要完成以下5 部分工作:

(1)使用register_chrdev_region(devno,adc_nr_devs,"adc_device")函數(shù)獲取驅(qū)動程序設(shè)備號,如果申請失敗則使用alloc_chrdev_region(&devno,adc_minor,adc_nr_devs,"adc_device")函數(shù)請求內(nèi)核動態(tài)分配一個未被占用的設(shè)備號,本次使用的主設(shè)備號設(shè)為240,次設(shè)備分別為0 和1;

(2)映射虛擬內(nèi)存地址:使用ioremap(58000000,0x6)函數(shù)將A/D 轉(zhuǎn)換器的物理地址映射為Linux 內(nèi)核能夠訪問的虛擬內(nèi)存地址;

(3)使能ADC 轉(zhuǎn)換時鐘:clk_get()從時鐘list 鏈表中以字符id 名稱來查找ADC 時鐘clk 結(jié)構(gòu)體并且返回,最后調(diào)用clk_enable()使能對應(yīng)的ADC 模塊的時鐘源;

(4)設(shè)置ADC 預(yù)分頻值:設(shè)置預(yù)分頻值時先要使能A/D 預(yù)分頻器,然后在ADCCON 寄存器中設(shè)置其預(yù)分頻值;

(5)創(chuàng)建設(shè)備文件:設(shè)備文件是Linux 內(nèi)核給用戶空間的訪問接口,應(yīng)用程序通過操作設(shè)備文件來訪問硬件,創(chuàng)建設(shè)備文件使用class_create()和device_create()函數(shù)來實現(xiàn)。

2.4 ADC 驅(qū)動程序讀函數(shù)

當用戶空間調(diào)用read 函數(shù)時,最終驅(qū)動程序中的read 函數(shù)被執(zhí)行,這個函數(shù)主要用來讀取硬件的數(shù)據(jù)并和用戶空間交換數(shù)據(jù)。宏定義GET_DATA 用來實現(xiàn)兩路ADC 數(shù)據(jù)的讀取,宏定義SET_ADC_CHANNEL(ch)可以實現(xiàn)兩路ADC 轉(zhuǎn)換通道的切換,參數(shù)ch是次設(shè)備號,通過iminor()函數(shù)在內(nèi)部調(diào)用MINOR宏,從inode 中提取次設(shè)備號。內(nèi)核空間與用戶空間交換數(shù)據(jù)使用copy_to_user(buf,&data,sizeof(data))函數(shù),參數(shù)buf 來自于用戶空間,參數(shù)&data 是內(nèi)核空間中存放A/D 轉(zhuǎn)換數(shù)據(jù)的地址,參數(shù)sizeof(data)表示從內(nèi)核空間復(fù)制到用戶空間數(shù)據(jù)的長度。

2.5 ADC 驅(qū)動程序加載

本研究將雙通道ADC 驅(qū)動程序編譯進內(nèi)核采用驅(qū)動靜態(tài)加載的方式:①將ADC 驅(qū)動程序復(fù)制到Linux 內(nèi)核的/drivers/char/目錄下;②修改/drivers/char/目錄下的內(nèi)核配置文件Kconfig;③修改/drivers/char/目錄下的Makefile 文件將ADC 驅(qū)動以靜態(tài)方式編譯;④使用make menuconfig 命令將雙通道ADC 驅(qū)動配置到Linux內(nèi)核中;⑤編譯生成Linux 內(nèi)核鏡像文件;⑥將內(nèi)核鏡像文件通過以NFS 的方式下載到目標板上啟動即可。

3 應(yīng)用程序設(shè)計

3.1 防脈沖干擾設(shè)計

該設(shè)計中采用了軟件抗干擾設(shè)計,針對由于脈沖干擾所引起的氣體采樣偏差,筆者采用防脈沖干擾平均濾波法降低隨機干擾。防脈沖干擾平均濾波法又可稱為中位值平均濾波法,它是平均濾波法與中位值濾波法結(jié)合體。平均濾波法只能對周期性的脈動采樣值進行平滑處理,但是對于隨機的脈沖干擾卻無法消除,而采用中位值平均濾波法就可以解決這個問題,故將兩種濾波方法結(jié)合在一起形成中位值平均濾波法。采樣序列的濾波結(jié)果Y 可用過公式求得:

若X(1)≤X(2)≤X(3)…X(N),(3 ≤N ≤14)

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

圖2 防脈沖濾波法流程圖

3.2 氣體濃度數(shù)據(jù)的存儲

由于Linux 內(nèi)核的內(nèi)存管理機制,應(yīng)用程序不能直接讀/寫硬件的物理地址,必須借助驅(qū)動程序在內(nèi)核空間實現(xiàn)對硬件地址的訪問。設(shè)備驅(qū)動程序是操作系統(tǒng)內(nèi)核和系統(tǒng)硬件之間的接口,它為應(yīng)用程序屏蔽了硬件的細節(jié)。這樣在應(yīng)用程序看來,硬件設(shè)備只是一個設(shè)備文件,應(yīng)用程序可以和操作普通文件一樣,只需要進行文件的打開、讀寫和關(guān)閉等操作,就能控制底層的具體硬件設(shè)備。Linux 系統(tǒng)與所有硬件設(shè)備的交互都如同操作普通文件一樣簡單。雙通道ADC 驅(qū)動程序加載后,在/dev/目錄下會產(chǎn)生兩個設(shè)備文件/dev/adc0 和/dev/adc1,應(yīng)用程序通過讀設(shè)備文件來獲取兩個傳感器數(shù)據(jù)。系統(tǒng)每間隔10 s 讀取一次氣體濃度數(shù)據(jù),讀取的數(shù)據(jù)都保存在嵌入式數(shù)據(jù)庫中。當嵌入式系統(tǒng)中移植了SQLite 數(shù)據(jù)庫后,應(yīng)用程序可以利用SQLite 提供的API 來進行對數(shù)據(jù)的存儲操作。本次設(shè)計中建立了一張用于存儲氣體濃度數(shù)據(jù)表,在打開數(shù)據(jù)庫文件后,主要使用sqlite3_exec()函數(shù)執(zhí)行SQL 語句來實現(xiàn)氣體濃度數(shù)據(jù)的插入、刪除,讀取等操作。程序流程如圖3 所示。

3.3 Qt 界面設(shè)計

Qt 是一個跨平臺圖形用戶界面庫,它提供給應(yīng)用程序開發(fā)者建立圖形用戶界面所需的所用功能。Qt的開發(fā)語言是C + +,它可以向開發(fā)人員提供各種主要功能的統(tǒng)一的編程接口。由于Qt 的出現(xiàn),使得UNIX、Linux 這些操作系統(tǒng)能為用戶展現(xiàn)精美的人機界面,Qt 是Linux 系統(tǒng)中主流的GUI 工具。Qt/Embedded 是一種面向嵌入式平臺的Qt 版本[10]。

圖3 程序流程圖

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

圖4 檢測儀界面

4 實驗及結(jié)果分析

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

在配制標準氣時,流量計處的溫度為鋼瓶氣溫度tstdm,壓力為pstdm,流量Fstdm;稀釋氣溫度tNm,壓力為pNm,流量為FNm,則配制的標準氣濃度為:

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

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

故只需要調(diào)整標準氣與稀釋氣輸出口的兩個流量計之比FNm/Fstdm,就可以獲得高濃度標準氣稀釋后的各種標準濃度的氣體[11]。

淺層氣檢測試驗平臺上的甲烷氣瓶與二氧化碳氣瓶裝有濃度為99.9%的高純度標準氣體。筆者采用高精度的D07-7 型氣體質(zhì)量流量控制器控制配合D08-8C型流量積算儀設(shè)定瞬時流量實現(xiàn)流量計之比的調(diào)整。在實驗平臺上測得的一組數(shù)據(jù)如表3、表4 所示。

表3 甲烷測量結(jié)果

表4 二氧化碳測量數(shù)據(jù)

對測量實驗結(jié)果進行分析可得:CH4與CO2的示值相對誤差為小于10%;通過重復(fù)測量值與貝塞爾公式求得CH4與CO2的標準偏差分別為1.16%和0.78%;通過對實驗過程分析可知儀器不確定度影響顯著的因素有:測量重復(fù)性引起的標準不確定度與淺層氣測量實驗平臺配置標準濃度氣體的不確定度,檢測儀測量CH4與CO2合成不確定度分別為1.26%和1.08%。

5 結(jié)束語

本研究通過在實驗室建立淺層氣測量實驗平臺,采用NDIR 氣體傳感器檢測淺層氣中的主要成分甲烷與二氧化碳,設(shè)計了儀器的硬件電路,設(shè)計了Linux 系統(tǒng)中針對傳感器模塊的雙通道驅(qū)動程序,采樣Qt Creator 設(shè)計了顯示數(shù)據(jù)的儀器界面。筆者通過使用ARMLinux 作為儀器平臺有利于實現(xiàn)測控儀器的智能化與網(wǎng)絡(luò)化,可進一步實現(xiàn)淺層氣的遠程檢測功能。該儀器在地質(zhì)勘察與地下建筑施工現(xiàn)場可幫助施工人員進行方便快捷的獲取淺層氣濃度信息,具有較好的實用性。

[1]陶靈法,潘永堅,蔡國成.沿海平原海相沉積土中淺層氣的探查[J].鐵道勘察,2014(4):47-49.

[2]郭愛國,孔令偉,沈林沖,等.地鐵建設(shè)中淺層氣危害防治對策研究[J].巖土力學(xué),2013,34(3):769-775.

[3]孔令偉,郭愛國,陳守義,等.淺層天然氣井噴對地層的損傷影響與樁基工程危害分析[J]. 防災(zāi)減災(zāi)工程學(xué)報,2004,24(4):375-400.

[4]曾洪賢,周傳斌,黃燕慶.杭州灣大橋含生物氣層工程特性研究[J].土工基礎(chǔ),2008,22(3):53-55.

[5]王江濤. 天然氣水合物氣體組成分析方法研究與應(yīng)用[D].青島:中國海洋大學(xué)化學(xué)工程學(xué)院,2012.

[6]付 華,劉 娜,周 坤,等. 基于ATMEGA16 的便攜式瓦斯檢測儀[J].傳感技術(shù)學(xué)報,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].西安:西安科技大學(xué)電氣與控制工程學(xué)院,2013.

[10]BLANCHETTE J,SUMMERFIELD M. C + + GUI programming with Qt 4[M]. Upper Saddle River:Prentice Hall Professional,2006.

[11]傅忠誠,艾效逸,王天飛.天然氣燃燒與節(jié)能環(huán)保新技術(shù)[M].北京:中國建筑工業(yè)出版社,2007.

猜你喜歡
驅(qū)動程序內(nèi)核淺層
萬物皆可IP的時代,我們當夯實的IP內(nèi)核是什么?
強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
淺層換填技術(shù)在深厚軟土路基中的應(yīng)用
基于淺層曝氣原理的好氧顆粒污泥的快速培養(yǎng)
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
Linux內(nèi)核mmap保護機制研究
淺層地下水超采區(qū)劃分探究
包氣帶淺層地熱容量計算方法商榷
驅(qū)動程序更新與推薦
驅(qū)動程序更新與推薦
卓尼县| 蒙自县| 安义县| 济源市| 化德县| 保山市| 讷河市| 荥经县| 曲阜市| 安平县| 河池市| 民丰县| 亳州市| 胶南市| 大荔县| 手游| 汽车| 琼海市| 西昌市| 新蔡县| 青岛市| 乐清市| 乐都县| 揭西县| 徐州市| 白沙| 永靖县| 九龙坡区| 新昌县| 博客| 肇东市| 新宁县| 酒泉市| 赣州市| 吴忠市| 平湖市| 琼海市| 托克逊县| 博客| 南充市| 中牟县|