丁 遠(yuǎn),劉 鵬,于曉珉
(1.煤科集團(tuán)沈陽研究院有限公司,遼寧 撫順113122;2.煤礦安全技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,遼寧 撫順113122;3.遼寧經(jīng)濟(jì)干部管理學(xué)院 信息工程系,遼寧 沈陽110122)
煤礦安全監(jiān)控系統(tǒng),作為煤礦6 大系統(tǒng)之首,在煤礦安全中起著重要作用?,F(xiàn)有的煤礦安全監(jiān)控系統(tǒng)通常存在數(shù)據(jù)通信傳輸抗干擾弱,實(shí)時(shí)性差,誤碼率高等問題,導(dǎo)致傳感器發(fā)生故障或甲烷超限時(shí)斷電時(shí)間過長,不符合AQ 6201—2006[1]標(biāo)準(zhǔn)規(guī)定的斷電時(shí)間,極大的影響了煤礦安全。針對(duì)上述現(xiàn)有問題,在結(jié)合調(diào)研實(shí)際環(huán)境與分析研究多種通信方案后,設(shè)計(jì)了基于CAN 無主通信技術(shù)[2]的煤礦安全監(jiān)控系統(tǒng)[3],對(duì)模擬量與開關(guān)量傳感器參數(shù)進(jìn)行實(shí)時(shí)監(jiān)測,當(dāng)傳感器發(fā)生故障或者數(shù)據(jù)超限時(shí),及時(shí)切斷相應(yīng)的非本質(zhì)安全型電源或風(fēng)機(jī)閉鎖,使煤礦企業(yè)能夠及時(shí)進(jìn)行險(xiǎn)情處理,避免安全事故發(fā)生,對(duì)煤礦安全生成具有重大意義。
Controller Area Network(CAN),即控制器局域網(wǎng)絡(luò),是目前國際上現(xiàn)場總線應(yīng)用最多的總線之一。CAN 總線是一種有效支持分布式控制系統(tǒng)的串行通信網(wǎng)絡(luò)。CAN2.0B 根據(jù)幀標(biāo)識(shí)符長度定義了標(biāo)準(zhǔn)幀、拓展幀2 種幀格式[4],其中標(biāo)準(zhǔn)幀含有11 位標(biāo)識(shí)符,拓展幀含有29 位標(biāo)識(shí)符,每一位標(biāo)識(shí)符有顯性、隱性2 種互補(bǔ)的邏輯數(shù)值表示。當(dāng)CAN 總線的CAN_H 與CAN_L 的電位差為0 V 時(shí),CAN 總線為隱性邏輯,當(dāng)CAN_H 與CAN_L 電位差時(shí)2.0 V 時(shí),CAN 總線為顯性邏輯。CAN 通信采用短幀結(jié)構(gòu),為了保證通信的實(shí)時(shí)性,1 幀數(shù)據(jù)傳輸時(shí)間短,受干擾率低,為了保證幀數(shù)據(jù)的正確性,傳輸出錯(cuò)率低,每一數(shù)據(jù)幀均有CRC 校驗(yàn)。CAN 總線使用串行通信方式[5],總線上的節(jié)點(diǎn)通過廣播形式將數(shù)據(jù)發(fā)送到總線,對(duì)于總線上每個(gè)節(jié)點(diǎn),接收所有數(shù)據(jù),只要總線空閑,任何節(jié)點(diǎn)都可以向總線發(fā)送報(bào)文。如果有2個(gè)或2 個(gè)以上的節(jié)點(diǎn)同時(shí)發(fā)送報(bào)文,就會(huì)引起總線訪問碰撞,標(biāo)識(shí)符的逐位仲裁可以解決這個(gè)碰撞,仲裁的機(jī)制確保了報(bào)文和時(shí)間均不損失。當(dāng)具有相同標(biāo)識(shí)符的數(shù)據(jù)幀和遠(yuǎn)程幀同時(shí)發(fā)送時(shí),數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀。仲裁期間,每一個(gè)發(fā)送器都對(duì)發(fā)送位的電平與被監(jiān)控的總線電平進(jìn)行比較。如果電平相同,這個(gè)單元可以繼續(xù)發(fā)送,如果發(fā)送的是“隱性”電平而監(jiān)視到的是“顯性”電平,那么這個(gè)單元就失去了仲裁,必須退出發(fā)送狀態(tài)。
標(biāo)準(zhǔn)幀與拓展幀是CAN 總線2 種數(shù)據(jù)幀格式,兩者異處在于標(biāo)識(shí)符長度,2 種幀格式根據(jù)應(yīng)用分為4 種不同的幀類型:數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀、過載幀,幀類型應(yīng)用表見表1。
表1 幀類型應(yīng)用表Table 1 Frame type application table
用戶只能配置CAN 幀是數(shù)據(jù)幀或者遠(yuǎn)程幀,設(shè)計(jì)的方案中使用標(biāo)準(zhǔn)幀格式數(shù)據(jù)幀。節(jié)點(diǎn)CAN 控制器發(fā)送數(shù)據(jù)時(shí),先發(fā)送1 個(gè)顯性幀起始位來通知總線其他節(jié)點(diǎn)做好接收數(shù)據(jù)準(zhǔn)備。CAN 控制器在發(fā)送數(shù)據(jù)的同時(shí)檢測數(shù)據(jù)總線的電平是否與發(fā)送電平相同,如果不同進(jìn)入總線仲裁階段,本階段是CAN 實(shí)現(xiàn)無主通信的硬件核心階段。3 個(gè)節(jié)點(diǎn)發(fā)送仲裁過程如圖1。
圖1 仲裁過程Fig.1 Arbitration process
假設(shè)總線上A、B、C 3 個(gè)節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù)幀,如圖1 第1 個(gè)虛線處,節(jié)點(diǎn)B 的ID 位時(shí)隱性位,節(jié)點(diǎn)A 與節(jié)點(diǎn)C 的ID 位是顯性,總線電平為顯性,故節(jié)點(diǎn)B 退出當(dāng)次總線競爭。在下1 個(gè)虛線處,節(jié)點(diǎn)C的ID 位是隱性,節(jié)點(diǎn)A 是顯性,總線電平顯性,故節(jié)點(diǎn)C 退出總線競爭,所以節(jié)點(diǎn)A 獲得本次發(fā)送數(shù)據(jù)幀權(quán),本次沒有獲取發(fā)送權(quán)限的子節(jié)點(diǎn),在總線空閑時(shí)自動(dòng)重發(fā)。當(dāng)總線出現(xiàn)遠(yuǎn)程幀與數(shù)據(jù)幀時(shí),由于數(shù)據(jù)幀的RTR 位是顯性,遠(yuǎn)程幀是隱性,在同等幀ID 時(shí),優(yōu)先發(fā)送數(shù)據(jù)幀。
幀ID 越小優(yōu)先級(jí)越高,標(biāo)識(shí)符ID 并非報(bào)文的目的地址,所以用戶可以通過對(duì)標(biāo)識(shí)符的自定義以及設(shè)置CAN 控制器的寄存器與可屏蔽寄存器實(shí)現(xiàn)基于CAN 總線無主通訊方式的單播、組播、廣播??梢奀AN 總線上節(jié)點(diǎn)間的數(shù)據(jù)通信實(shí)時(shí)性高,并且容易構(gòu)建冗余結(jié)構(gòu),提高可靠性。
設(shè)計(jì)的煤礦安全監(jiān)控系統(tǒng)采用無主通信模式,傳感器主動(dòng)上傳數(shù)據(jù)于監(jiān)控分站,監(jiān)控分站整合數(shù)據(jù)后主控上傳中心站,全程無輪詢機(jī)制,當(dāng)井下傳感器超限或故障,本地?cái)嚯娍? s 內(nèi)完成,監(jiān)控分站間的異地控制在井下組網(wǎng),無需中心站控制,異控時(shí)間可以控制在5 s 內(nèi)。監(jiān)控分站硬件結(jié)構(gòu)圖如圖2,主控制器選用ARM 內(nèi)核32 位芯片LPC2194, 此芯片內(nèi)部帶有4 個(gè)CAN 2.0B 控制器,4 個(gè)CAN 分別與下層傳感器層通信,數(shù)據(jù)整合后通過網(wǎng)口接口進(jìn)入環(huán)網(wǎng)交換機(jī)。此外監(jiān)控分站具有8 路開關(guān)量輸入與8 路開關(guān)量輸出。
圖2 硬件結(jié)構(gòu)圖Fig.2 Hardware structure diagram
傳感器層可以配節(jié)甲烷、一氧化碳、風(fēng)量等數(shù)字式模擬量傳感器以及局部通風(fēng)機(jī)開停、斷電器等數(shù)字式開關(guān)量傳感器。這些傳感器實(shí)時(shí)采集井下環(huán)境參數(shù)與設(shè)備工作狀態(tài)、參數(shù),以及執(zhí)行監(jiān)控分站下發(fā)的控制指令。通過設(shè)計(jì)特定的協(xié)議,傳感器可實(shí)現(xiàn)即插即用,無需人為設(shè)定類型,通過使用CAN 總線,有效解決原頻率型系統(tǒng)中傳感器因?yàn)殡姶鸥蓴_產(chǎn)生異常數(shù)據(jù)與誤報(bào)警,井下設(shè)備可以將自診斷信息主動(dòng)上傳中心站,由用戶使用。
實(shí)現(xiàn)強(qiáng)實(shí)時(shí)性系統(tǒng),軟件上需設(shè)計(jì)穩(wěn)定、可靠、實(shí)時(shí)性強(qiáng)。設(shè)計(jì)軟件采用Freertos[6]作為軟件的操作系統(tǒng),此系統(tǒng)開源,可免費(fèi)用于商業(yè),且結(jié)構(gòu)簡單,問題修復(fù)及時(shí)。軟件上設(shè)計(jì)的任務(wù)與中斷系統(tǒng)(ISR)要保證數(shù)目合理、簡單,遵循低內(nèi)聚、高耦合的軟件工程規(guī)范,軟件設(shè)計(jì)[7]的任務(wù)與ISR 之間的同步需要使用操作系統(tǒng)提供的方法,如共享內(nèi)存、信號(hào)量、互斥鎖等,減少全局變量作為共享資源。經(jīng)過過系統(tǒng)地分析,軟件結(jié)構(gòu)圖如圖3。
圖3 軟件結(jié)構(gòu)圖Fig.3 Software structure diagram
軟件系統(tǒng)設(shè)計(jì)主任務(wù)1 個(gè),接收任務(wù)1 個(gè),數(shù)據(jù)上傳任務(wù)1 個(gè),狀態(tài)變換任務(wù)1 個(gè),環(huán)網(wǎng)發(fā)送任務(wù)1個(gè)以及環(huán)網(wǎng)接收任務(wù)1 個(gè),共6 個(gè)任務(wù)。主任務(wù)完成系統(tǒng)配置以及建立其他子任務(wù),數(shù)據(jù)上傳任務(wù)周期性上傳傳感器數(shù)據(jù),狀態(tài)任務(wù)只有當(dāng)傳感器狀態(tài)改變時(shí)觸發(fā),CAN 接收處理任務(wù)負(fù)責(zé)將CAN 中斷接收到的數(shù)據(jù)處理后加入共享內(nèi)存,因?yàn)橄到y(tǒng)具有4 路CAN 接口,為了保證數(shù)據(jù)不丟幀,以及遵循中斷處理“短、平、快”的規(guī)范,當(dāng)CAN 中斷接收到數(shù)據(jù)后,不在中斷函數(shù)處理,將數(shù)據(jù)加入freertos 系統(tǒng)自帶的數(shù)據(jù)隊(duì)列后,觸發(fā)信號(hào)量通知處理任務(wù),處理后的數(shù)據(jù)根據(jù)協(xié)議規(guī)定會(huì)存放到共享內(nèi)存后通知相應(yīng)的任務(wù)來取數(shù)據(jù),這樣保證了系統(tǒng)的實(shí)時(shí)性。環(huán)網(wǎng)[8]發(fā)送與接收任務(wù)屬于觸發(fā)性任務(wù),只有信號(hào)量觸發(fā),才進(jìn)行數(shù)據(jù)上傳工作。
保證強(qiáng)實(shí)時(shí)性[9],任務(wù)優(yōu)先級(jí)分配至關(guān)重要,根據(jù)系統(tǒng)分析,接收中心站消息的任務(wù)優(yōu)先級(jí)最高,處理下層傳感器數(shù)據(jù)的CAN 接收任務(wù)次高,下層傳感器狀態(tài)改變時(shí),需要立即通知上位機(jī),所以狀態(tài)上傳任務(wù)優(yōu)先級(jí)較高,環(huán)網(wǎng)發(fā)送隨后,因?yàn)閿?shù)據(jù)上傳任務(wù)屬于周期性任務(wù),所以優(yōu)先級(jí)比較低,因?yàn)橹魅蝿?wù)創(chuàng)建子任務(wù)后,負(fù)責(zé)將數(shù)據(jù)顯示到屏幕上,所以優(yōu)先級(jí)最低,故優(yōu)先級(jí)從高到低為:環(huán)網(wǎng)接收,CAN 接收處理、狀態(tài)上傳、環(huán)網(wǎng)發(fā)送、數(shù)據(jù)上傳、主任務(wù)。
此外,為了降低更換程序的難度,系統(tǒng)內(nèi)的各個(gè)部件需要增加IAP[10]功能,方便后續(xù)實(shí)現(xiàn)程序遠(yuǎn)程在線更新。
在實(shí)驗(yàn)室利用仿真線搭建環(huán)境后,模擬大型煤礦所需設(shè)備量,系統(tǒng)接入32 臺(tái)監(jiān)控分站,每臺(tái)監(jiān)控分站接入16 臺(tái)傳感器與斷電器。使用CAN 總線分析儀對(duì)總線通信狀態(tài)監(jiān)測,使用Wireshark 軟件工具在PC 端進(jìn)行以太網(wǎng)異常數(shù)據(jù)監(jiān)測。在系統(tǒng)不間斷運(yùn)行40 d 后,查看相應(yīng)監(jiān)測軟件,無異常中斷與數(shù)據(jù),進(jìn)行傳感器斷電實(shí)驗(yàn),本地?cái)嚯娕c異地?cái)嚯妼?shí)測時(shí)間均達(dá)到AQ 6201—2006 行標(biāo)要求。
針對(duì)目前煤礦安全監(jiān)控系統(tǒng)存在實(shí)時(shí)性低、通信不穩(wěn)定易中斷、傳感器故障或超限時(shí)斷電控制時(shí)間過長等問題,對(duì)CAN 總線特點(diǎn)、軟件工程、煤安監(jiān)函[2016]5 號(hào)《煤礦安全監(jiān)控系統(tǒng)升級(jí)改造技術(shù)方案》以及煤礦井下真實(shí)環(huán)境等進(jìn)行了詳細(xì)調(diào)研與分析研究,設(shè)計(jì)了一種強(qiáng)實(shí)時(shí)性通信方案,并進(jìn)行了系統(tǒng)軟硬件設(shè)計(jì)。采用設(shè)計(jì)的強(qiáng)實(shí)時(shí)性煤礦安全監(jiān)控系統(tǒng),各個(gè)節(jié)點(diǎn)可任意時(shí)間主動(dòng)發(fā)送數(shù)據(jù),無需輪詢,可以任意單播、組播、廣播,不僅提高了系統(tǒng)實(shí)時(shí)性,還增加了系統(tǒng)的穩(wěn)定性與通信可靠性,減少了因通信問題導(dǎo)致的煤礦安全事故。