趙鑫,林夢潔,楊安東,高子飛,梅茹雪,李會(huì)軍
(中國礦業(yè)大學(xué)信息與控制工程學(xué)院,江蘇徐州 221116)
氣體檢測是生產(chǎn)作業(yè)、火場救災(zāi)等眾多領(lǐng)域至關(guān)重要的一環(huán)[1-3]。然而,傳統(tǒng)的氣體檢測方案大多基于一種[4-7]或少數(shù)幾種[8-10]固定種類氣體的檢測,使得檢測應(yīng)用場景較為單一;同時(shí),部分氣體檢測裝置采用固定式安裝檢測方式,導(dǎo)致其檢測范圍受限、機(jī)動(dòng)性差。此外,針對火場、管廊等人員不方便進(jìn)入的場景,如何實(shí)施快速有效的氣體檢測,也是亟須解決的問題。
基于上述氣體檢測方案存在的不足,文中提出了一種便攜式的自適應(yīng)多組分氣體檢測系統(tǒng)設(shè)計(jì)。該系統(tǒng)可同時(shí)檢測多種氣體,根據(jù)應(yīng)用場景的需要,可隨時(shí)更換不同的氣體傳感器;采用自供電式便攜設(shè)計(jì),可搭載無人機(jī)等開展遠(yuǎn)程檢測作業(yè),以解決場景受限問題,具有良好的應(yīng)用前景。
多組分氣體檢測系統(tǒng)可分為下位機(jī)氣體檢測部分和上位機(jī)數(shù)據(jù)顯示部分,以云端作為連接,如圖1所示。下位機(jī)通過氣體檢測模塊和定位模塊實(shí)時(shí)獲取各種氣體的濃度和對應(yīng)的地理位置;采集到的數(shù)據(jù)由主控模塊處理后同步保存至存儲(chǔ)電路中;同時(shí),通過無線通信模塊將數(shù)據(jù)從下位機(jī)端實(shí)時(shí)傳輸至上位機(jī)端,實(shí)現(xiàn)端到端的數(shù)據(jù)傳輸與顯示。上位機(jī)支持多形式數(shù)據(jù)顯示、數(shù)據(jù)導(dǎo)出等功能。
圖1 系統(tǒng)框架圖
相比傳統(tǒng)氣體檢測解決方案,文中提出的氣體檢測方案做出了以下改進(jìn)與創(chuàng)新:
1)采用RS485 總線通信,可同時(shí)檢測6 種氣體;根據(jù)實(shí)際需要,可以方便地?cái)U(kuò)展至32 路氣體檢測。
2)提出一種自適應(yīng)氣體檢測算法,可自動(dòng)識(shí)別所安裝的傳感器并進(jìn)行氣體檢測。
3)采用下位機(jī)到上位機(jī)端到端設(shè)計(jì),進(jìn)一步減小時(shí)延,提高系統(tǒng)實(shí)時(shí)性。
4)獨(dú)立供電和便攜式設(shè)計(jì),使其可搭載無人機(jī)在火場等人員不便進(jìn)入的場景開展氣體檢測作業(yè)。
硬件電路部分可分為主控電路、氣體檢測電路、定位電路、數(shù)據(jù)存儲(chǔ)電路、無線通信電路和電源管理電路6 部分。主控電路采用基于ARM Cortex-M4 架構(gòu)的STM32F407 芯片作為控制核心。定位電路和無線通信電路基于安信可A9 模組,該模組兼具GPS 定位和GPRS 通信功能,通過串口和主控系統(tǒng)通信。
2.1.1 傳感器選型
目前市面上較為主流的氣體檢測方案有霍尼韋爾、阿爾法、費(fèi)加羅等公司所生產(chǎn)的傳感檢測裝置;國內(nèi)有煒盛科技、精訊暢通、深國安等。但大多數(shù)廠家所生產(chǎn)的傳感器還需二次開發(fā)才能使用,增加了設(shè)計(jì)開發(fā)周期;同時(shí),同一廠家不同種類的傳感器外形不一致,很難做到靈活地拔插替換,通用性較低。綜合考量,文中最終選擇精訊暢通JXM 系列傳感器,該系列傳感器提供模擬和數(shù)字雙輸出;此外,同一系列不同種類氣體傳感器外形一致,通用性高;并支持多達(dá)20 種可檢測氣體。
2.1.2 電路設(shè)計(jì)
氣體檢測電路采用單板獨(dú)立設(shè)計(jì),位于頂層電路板上,詳見下位機(jī)檢測裝置。數(shù)據(jù)通信基于RS485 雙總線通信方案,最多可同時(shí)掛接32 個(gè)傳感器,中采用6 路檢測方案。其中,SP3485 實(shí)現(xiàn)TTL 和485 電平轉(zhuǎn)換;兩個(gè)120 Ω電阻為終端匹配電阻,一前一后分別置于傳感器陣列首和尾,以確保數(shù)據(jù)的準(zhǔn)確性;兩個(gè)360 Ω電阻為偏置電阻,以保證總線空閑時(shí)仍有穩(wěn)定的壓差,防止出現(xiàn)數(shù)據(jù)傳輸亂碼,具體電路如圖2 所示。
圖2 氣體檢測電路圖
存儲(chǔ)電路采用板載FLASH 和可拔插SD 卡設(shè)計(jì),如圖3 所示。FLASH 存儲(chǔ)芯片采用16 M 字節(jié)大小的W25Q128,基于SPI 全雙工通信,可供操作系統(tǒng)FreeRTOS 和文件管理系統(tǒng)Fatfs 使用。SD 卡存儲(chǔ)電路采用4 位并行SDIO 通信,以實(shí)現(xiàn)氣體數(shù)據(jù)的實(shí)時(shí)存儲(chǔ),47 kΩ上拉電阻用于避免SD 卡未插入或SD 卡驅(qū)動(dòng)處于高阻狀態(tài)時(shí)的總線浮動(dòng)。
圖3 數(shù)據(jù)存儲(chǔ)電路圖
電源管理采用外接電源供電和內(nèi)部鋰電池供電兩種供電方式,具體電路如圖4 所示。
圖4 電源管理電路圖
外部電源通過USB 接口提供5 V 直流電壓供電池充電管理芯片TC4056A,最后從BAT 管腳輸出3.7 V 直流電壓,作為系統(tǒng)源電壓。
以源電壓為基礎(chǔ)獲取5 V和3.3 V電源電壓。5 V電壓獲取采用PS7516 升壓芯片,其中,VIN 最小輸入電壓為2.5 V,文中輸入電壓為3.7 V,滿足升壓要求,經(jīng)轉(zhuǎn)換從OUT 輸出5 V 電壓。沒有直接從USB 接口獲取5 V 電壓給相應(yīng)電路供電,是為了實(shí)現(xiàn)對外接USB 供電和內(nèi)部鋰電池供電的統(tǒng)一管理。3.3 V 電壓通過ASM1117 線性穩(wěn)壓芯片獲取。
為了應(yīng)對電源電路中的過充等情況,加入了相應(yīng)的的保護(hù)電路。其中,SI2301 場效應(yīng)管用來保護(hù)電池反接情況;DW01K 和8205 用來防止過充、過放和短路情況的出現(xiàn)。
下位機(jī)軟件架構(gòu)基于FreeRTOS[11]操作系統(tǒng),以提高系統(tǒng)實(shí)時(shí)性,如圖5 所示。系統(tǒng)上電初始化后,分3 個(gè)任務(wù)并行執(zhí)行,氣體問詢?nèi)蝿?wù)用于獲取有效氣體數(shù)據(jù);GPS 問詢?nèi)蝿?wù)實(shí)時(shí)查詢氣體源所在物理位置;數(shù)據(jù)發(fā)送任務(wù)將氣體濃度和物理位置數(shù)據(jù)打包后發(fā)送至云端,供上位機(jī)抓取。此外,氣體數(shù)據(jù)和GPS 數(shù)據(jù)由Fatfs[12]文件管理系統(tǒng)統(tǒng)一管理。
圖5 下位機(jī)軟件框圖
多組分氣體檢測采用主動(dòng)問詢方式,即主控器向總線發(fā)出一次問詢指令,匹配的傳感器會(huì)發(fā)出一幀有效數(shù)據(jù)作為應(yīng)答。但不同場景下使用的傳感器種類不同,為實(shí)現(xiàn)快速且正確的數(shù)據(jù)采集,文中提出了一種自適應(yīng)氣體檢測算法,基本流程如圖6 所示。
圖6 自適應(yīng)氣體檢測算法流程圖
檢測過程分為有效傳感器問詢和有效氣體數(shù)據(jù)問詢兩部分。首先確定氣體檢測裝置上的有效傳感器數(shù)量及種類。根據(jù)各傳感器地址的不同,通過RS485 總線依次發(fā)出主動(dòng)問詢指令,若有應(yīng)答,對應(yīng)答幀進(jìn)行解析,提取出有效地址,在緩存中查找與之匹配的傳感器種類,并作出有效標(biāo)記;反則,若無應(yīng)答,則該種類傳感器不存在,標(biāo)記無效。輪詢結(jié)束后,確定最終有效的傳感器及種類。然后對有效傳感器進(jìn)行氣體數(shù)據(jù)問詢,獲取氣體數(shù)據(jù)。根據(jù)已標(biāo)記的有效傳感器,依次發(fā)出氣體數(shù)據(jù)問詢指令,由于應(yīng)答數(shù)據(jù)一幀長度為10 字節(jié),設(shè)定一個(gè)長度為10的計(jì)數(shù)器,以進(jìn)行有效幀數(shù)據(jù)的判斷。接收到應(yīng)答幀后,截取有效數(shù)據(jù),即第5 字節(jié)(MSB)和第6 字節(jié)(LSB),根據(jù)式(1)進(jìn)行轉(zhuǎn)換,得到最終的有效氣體數(shù)據(jù)。
該算法基于自適應(yīng)的思想,可以自動(dòng)識(shí)別有效傳感器,對有效傳感器進(jìn)行數(shù)據(jù)問詢,帶來了較大的靈活性。
為便于后期對采集到的氣體數(shù)據(jù)和GPS 數(shù)據(jù)進(jìn)行處理,將數(shù)據(jù)進(jìn)行實(shí)時(shí)保存管理。文中基于Fatfs文件管理系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)管理,分為驅(qū)動(dòng)移植和自定義數(shù)據(jù)管理兩部分。驅(qū)動(dòng)移植是將FLASH 和SD 卡底層讀寫驅(qū)動(dòng)移植到Fatfs 中,供頂層API 調(diào)用;同時(shí),根據(jù)實(shí)際需要,對文件系統(tǒng)進(jìn)行裁剪,以提高系統(tǒng)運(yùn)行的實(shí)時(shí)性。
自定義數(shù)據(jù)管理即根據(jù)需要存儲(chǔ)所需的數(shù)據(jù)。其中,一個(gè)重要的環(huán)節(jié)是如何實(shí)現(xiàn)數(shù)據(jù)分門別類的實(shí)時(shí)存儲(chǔ)。具體做法是創(chuàng)建一個(gè)配置文件,用于記錄有效的傳感器種類;在每次系統(tǒng)上電時(shí),讀取配置文件,為每種有效氣體創(chuàng)建一個(gè)新的存儲(chǔ)文件。對于每種氣體進(jìn)行一次有效數(shù)據(jù)存儲(chǔ)操作可分為以下幾步:1)對數(shù)據(jù)幀進(jìn)行封裝,包括加時(shí)間戳,結(jié)束符等;2)根據(jù)氣體種類打開相應(yīng)的數(shù)據(jù)存儲(chǔ)文件;3)指針偏移;4)寫入數(shù)據(jù);5)地址偏移;6)更新并關(guān)閉文件。
綜合藍(lán)牙、WIFI、移動(dòng)網(wǎng)絡(luò)等無線通信方式的特點(diǎn)和實(shí)際需求[13-15],文中下位機(jī)和上位機(jī)數(shù)據(jù)傳輸采用GPRS 通信[16],將數(shù)據(jù)發(fā)送至機(jī)智云云端,供上位機(jī)抓取。具體操作在數(shù)據(jù)發(fā)送任務(wù)中實(shí)現(xiàn),首先將氣體數(shù)據(jù)和GPS 數(shù)據(jù)打包,再進(jìn)行格式轉(zhuǎn)換,變成機(jī)智云平臺(tái)能夠識(shí)別的16 進(jìn)制格式數(shù)據(jù),最后通過A9無線通信模組傳輸至云端;上位機(jī)從云端抓取數(shù)據(jù)包,進(jìn)行解析。
文中下位機(jī)將所有硬件進(jìn)行一體化設(shè)計(jì),與上位機(jī)通信無需中轉(zhuǎn)硬件平臺(tái),通過這種端到端的設(shè)計(jì)可以在便攜化系統(tǒng)的同時(shí),降低數(shù)據(jù)傳輸時(shí)延,提高響應(yīng)速度。
基于Qt 跨平臺(tái)的特性,即在一種平臺(tái)編寫的上位機(jī)可以基本不做修改就可以在其他平臺(tái)運(yùn)行,文中上位機(jī)采用Qt 進(jìn)行設(shè)計(jì),包括從云端獲取數(shù)據(jù)、數(shù)據(jù)處理與顯示、數(shù)據(jù)導(dǎo)出等功能,主界面如圖7所示。
圖7 上位機(jī)主界面圖
數(shù)據(jù)的獲取依靠機(jī)智云平臺(tái)提供的Open API,利用APP ID 和APP Secret 以及設(shè)備的DID 編號(hào)請求機(jī)智云相關(guān)網(wǎng)頁,連接服務(wù)器后解析json 獲取數(shù)據(jù)點(diǎn)的數(shù)值,以餅狀圖和折線圖形式進(jìn)行實(shí)時(shí)顯示。數(shù)據(jù)源位置的顯示整體使用html 網(wǎng)頁調(diào)用百度地圖API 實(shí)現(xiàn),其中,QWebEngineView 控件實(shí)現(xiàn)網(wǎng)頁的加載與顯示,QWebChannel控件負(fù)責(zé)與html中js腳本通信,向其傳遞GPS 參數(shù)并往地圖中添加位置標(biāo)記。數(shù)據(jù)的導(dǎo)出基于QTabWidget 控件實(shí)現(xiàn)excel 格式數(shù)據(jù)的導(dǎo)出。
下位機(jī)實(shí)物圖如圖8 所示,采用3 塊PCB 疊層設(shè)計(jì),便于散熱的同時(shí)縮小檢測裝置的體積;其中,頂層為氣體采集板、中間層為主控板、底層為電源板。
圖8 下位機(jī)實(shí)物圖
為驗(yàn)證系統(tǒng)功能的可行性,對系統(tǒng)各項(xiàng)功能進(jìn)行測試。以氧氣和甲烷兩種氣體為例進(jìn)行測試,氧氣和甲烷分別采用濃度為20%和10%的潔凈氣體作為測試使用氣體。將下位機(jī)通過串口與PC 端相連,通過串口助手實(shí)時(shí)查看采集到的數(shù)據(jù);將標(biāo)準(zhǔn)值與采集到的數(shù)據(jù)、SD 卡導(dǎo)出數(shù)據(jù)和上位機(jī)導(dǎo)出數(shù)據(jù)進(jìn)行比對,得到的結(jié)果如表1 和表2 所示。從數(shù)據(jù)可知,下位機(jī)采集數(shù)據(jù)、SD 卡存儲(chǔ)數(shù)據(jù)和發(fā)送數(shù)據(jù)至上位機(jī)以秒作為單位時(shí),時(shí)間完全同步,可見系統(tǒng)實(shí)時(shí)性滿足要求。同時(shí),采集到的數(shù)據(jù)與標(biāo)準(zhǔn)值的誤差在1%以內(nèi),滿足實(shí)際生產(chǎn)作業(yè)要求。
表1 氧氣測試結(jié)果(標(biāo)準(zhǔn)值20%)
表2 甲烷測試結(jié)果(標(biāo)準(zhǔn)值10%)
針對傳統(tǒng)氣體檢測方案存在的問題,文中提出了一種自適應(yīng)多組分氣體檢測系統(tǒng)。該系統(tǒng)可支持多種類氣體檢測,提出的自適應(yīng)檢測算法可以實(shí)現(xiàn)傳感器的即時(shí)拔插替換,以適應(yīng)不同檢測場景的需求。裝置便攜式和獨(dú)立供電式的設(shè)計(jì)使其可以搭載無人機(jī)在火場等人員不便進(jìn)入的場景開展作業(yè)。端到端的設(shè)計(jì)可以進(jìn)一步提高系統(tǒng)實(shí)時(shí)性。通過實(shí)際測試表明,該系統(tǒng)具有一定的實(shí)用價(jià)值。