在煤礦瓦斯監控系統中,井下監控分站擔負著非常重要的作用。本設計研制的安全監控分站,以微處理機AT89S52為核心,配置8路頻率量入口,與礦用傳感器連接,以采集各種測量數據。監控分站的8路開關量輸出口與執行器連接可實行自動斷電控制。監控分站通過CAN總線與中心站計算機進行數據通訊,克服了傳統煤礦監測監控系統總線的缺陷,能夠滿足礦井監控系統對監控分站的要求。
監控系統結構
整個煤礦安全監控系統設計由地面中心站、網關節點站、分支中繼器、井下監控分站和各種傳感器,以及通信介質六部分組成。其中中心站負責接收、存儲和顯示從井下監控分站傳來的各種井下生產環境安全監控數據,并通過各個井下分站發送各種配置命令和對現場設備的控制命令;網關節點站實現現場總線協議和中心站計算機標準接口協議的相互轉換;分支中繼器在需要的地方完成通信線路的分支、中繼和介質信號的轉換;傳感器負責收集各種現場環境安全監控數據和設備運行狀態數據;通信介質負責安全監控系統各設備的連接和信息的傳遞。整個監控系統分三級結構:中心站—井下分站—傳感器。傳輸介質根據傳輸距離不同,可分段采用不同線纜,長距離用光纖不加中繼器,或用電纜加中繼器,短距離則可只用電纜不加中繼器。如果連接的節點總數大于110個,則也需加中繼器。圖1是帶有中繼器的煤礦安全監控系統組成原理圖。
圖1 煤礦安全監控系統組成框圖
圖2監控分站硬件框圖
圖3 安全監控分站軟件流程圖
安全監控分站硬件結構
井下安全監控分站是安全監控監測系統的核心,負責采集和處理現場生產環境和設備狀態等方面的安全監控數據,并能實時地控制設備。同時它也是傳輸系統的關鍵設施,各種數據都要通過它與地面中心站進行通訊。圖2是監控分站的原理圖。
在圖2中,二線制輸入電路和三線制輸入電路負責對來自傳感器的8路頻率信號(200Hz~1000Hz)進行整形,從而得到波形、電平規范的方波信號。光耦電路則主要負責信號的隔離,消除共模電壓的影響并遏制過程通道上的一些脈沖干擾,從而提高系統的信噪比。單片機通過多路選擇器(8選1開關)定時巡檢8路信號,對得到的數字量進行判斷和運算,進而用得到的控制量,去自動控制繼電器的狀態,從而實現對井下設備的控制。利用CH451L芯片驅動數碼管循環顯示8路信號的頻率、通道號、通道類型以及線路狀態等。CAN總線和RS-232總線把單片機根據主站命令采集的安全監控監測數據傳給上位機。74HC373除了擴展片外RAM,以用來存儲歷史數據外,還進行了P0口擴展,從而使分站能夠根據主站發來的命令允許對繼電器的狀態進行手動控制。系統中的紅外接口,主要用來實現對分站的就地遙控、更改分站通道號,以及對單片機進行復位等。
安全監控分站軟件設計
系統總體軟件結構如圖3所示。在整個軟件流程中,測頻中斷的優先級最高,以保證測頻的精度。CAN通信的中斷優先級次之,RS-232中斷的優先級最低。
為保證主站與分站通信的實效性,本設計完成測頻中斷服務僅需13個機器周期,而信號的周期比機器周期大數千倍,從而大大減小了主站在測頻中斷服務期間與分站進行通信的概率。
在本設計中,已知來自傳感器的信號的頻率范圍為200Hz~1000Hz,信號的周期為1ms~5ms,而機器周期為0.0005ms,故主站與分站在測頻中斷響應期間進行通信的概率為0.12~0.60%,即主站與分站進行通信的實效率為99.40~99.88%,完全能夠滿足安全生產的要求。
關鍵技術及其實現
測頻技術
通常使用的單片機的測頻方法有兩種:直接測頻法和測周期的方法。本設計中選用了測周期的方法,因為本設計中被測信號的頻率較低,用測周期的方法精度較高,而且實時性強、測頻時間短,即使主站與分站每隔400ms通信一次,也能夠完成測頻的功能。
根據頻率計算公式得到周期法測頻公式,式中,TO為定時器/計數器的計數脈沖周期時間,由單片機主脈沖經12分頻得到,N為計數器在測周期期間的計數脈沖。當晶振振蕩頻率為24MHz時,定時器的計數脈沖周期時間為0.5?s,測量最大絕對誤差為信號前后邊界之差共1?s。對于周期為1ms~5ms(頻率200Hz~1000Hz)的信號,最大誤差折算成頻率約為0.002Hz~0.01Hz,所以,頻率測量精度可達到0.001Hz~0.01 Hz。
CAN總線通訊技術
CAN 總線通信是整個軟件設計的重要部分。通信過程主要包括發送和接收部分,本設計中兩部分都設置成了中斷方式而不是查詢方式,可以把它們做成模塊,采用調用子程序的方式來訪問。
發送子程序負責節點報文的發送,發送時用戶只需將待發送的數據按特定格式組合成一幀報文送入SJA1000發送緩存區中,然后啟動SJA1000發送即可。但在往SJA1000發送緩沖區送報文之前,必須先作一些判斷。程序如下:
MOV DPTR,#CAN_SR ;狀態寄存器
WS0: MOVX A,@DPTR ;從SJA1000讀出狀態寄存器值
JNB ACC.3,WS0 ;判斷上次發送是否完成
WS1: MOVX A,@DPTR ;
JNB ACC.2,WS1 ;判斷發送區是否鎖定
CAN總線通訊的發送模塊根據用戶制定的應用層協議,將要發送的數據分類、拆解、合并,確定發送對象,然后根據CAN的數據鏈路層協議填寫到CAN數據幀的各個場,并發送出去。發送程序分為發送遠程幀和數據幀兩種,遠程幀無數據場。
接收子程序負責節點報文的接收以及其它情況。接收子程序比發送子程序要復雜一些,因為在處理接收報文的過程中,同時要對諸如總線脫離、錯誤報警、接收溢出等情況進行處理。SJA1000報文的接收主要有兩種方式:中斷接收和查詢接收,考慮到對通信的實時性要求很強,本設計采用中斷接收方式。
接收模塊的工作與發送模塊相反,首先進行接收濾波,確認該幀數據是否接收。如果接收,先按照數據鏈路層協議拆解數據包,將數據場的數據提取出來,再根據應用層協議確定數據的具體含義,進行相應的處理。CAN信息幀共有4種:數據幀、遠程幀、出錯幀和超載幀。其中,數據幀將數據由發送器傳至接收器。一個數據幀由7個不同場構成。其中仲裁場由標識符ID和RTR構成。
結語
本文以微處理器AT89S52為核心,設計的KJ122型煤礦安全監控分站,通過CAN總線、RS-232總線,在定制的KJ122型煤礦監控系統協議下與中心站計算機進行通訊,具有實時性強、可靠性高、結構簡單、互操作性好、價格低廉等特點,目前已投入實用。