宋益東
(1.煤科集團沈陽研究院有限公司,遼寧 撫順113122;2.煤礦安全技術國家重點實驗室,遼寧 撫順113006)
控制器局域網(wǎng)絡(Controller Area Network,CAN)作為一種高可靠的現(xiàn)場總線,工業(yè)控制方面已經(jīng)得到廣泛應用。憑借其傳輸距離長、通信速率高、誤碼率低、通信方式靈活、穩(wěn)定性高、實時性好、抗干擾能力強、組網(wǎng)簡單等優(yōu)點,在工業(yè)通信領域得到了廣泛應用,CAN 總線標準僅對物理層及數(shù)據(jù)鏈路層做了相應規(guī)定,沒有對應用層進行嚴格的規(guī)范,根據(jù)自身的應用特點很多工業(yè)控制領域已經(jīng)形成了幾種標準的 CAN 總線應用層通信協(xié)議,如CANaerospace、CAL、Devi-ceNet、CANopen 等[1-3]。
目前國內煤礦安全監(jiān)控系統(tǒng)應用最廣泛的CAN 總線通信協(xié)議,主要為主從式通信方式。主從式通信的優(yōu)點是各個從節(jié)點可以統(tǒng)一管理和調度,可保證通信信息按照設定時序進行交互,有效避免總線數(shù)據(jù)競爭或沖突。但通信效率不高,監(jiān)控分站主節(jié)點在等待從節(jié)點應答期間,總線始終為空閑狀態(tài),導致總線利用率較低。根據(jù)行業(yè)標準,監(jiān)控系統(tǒng)信息融合和多系統(tǒng)應急聯(lián)動的要求,通信數(shù)據(jù)量大幅提升,監(jiān)控系統(tǒng)設備間的數(shù)據(jù)交叉控制和設備間數(shù)據(jù)交互數(shù)據(jù)量在不斷提升[4]。要滿足不斷增長的監(jiān)控分站通信數(shù)據(jù)需求,在總線通信速率不變的情況下,提高總線使用效率就是唯一途徑。主從式通信模式,不僅增加主節(jié)點監(jiān)控分站調度管理壓力,同時在等待應答期間也增加對總線的無效占用。
為提升各節(jié)點的通信效率和增加對總線利用效率,設計了一種基于CAN 總線多主通信技術的監(jiān)控分站, 監(jiān)控分站使用基于CAN2.0 標準規(guī)范的CAN總線應用層協(xié)議,結合煤礦安全監(jiān)控系統(tǒng)自身應用特點設計開發(fā)的相對簡化的應用層協(xié)議,它可支持監(jiān)控分站多主通信[2]。監(jiān)控分站采用多主通信方式,每一臺監(jiān)控分站都可以自主發(fā)起數(shù)據(jù)傳輸,從而提高總線利用率,滿足行業(yè)標準要求[5-6]。
監(jiān)控分站總體設計框圖如圖1。
監(jiān)控分站主要是采集現(xiàn)場各類傳感器數(shù)據(jù),經(jīng)過分析處理,根據(jù)預設數(shù)據(jù)算法和控制邏輯,一方面通過井下工業(yè)環(huán)網(wǎng)將實時數(shù)據(jù)上傳到監(jiān)控主機。另一方面根據(jù)地面中心站命令,同時結合本分站實際情況發(fā)出控制指令,控制設備聲光報警或閉鎖相應電源,保證煤礦作業(yè)現(xiàn)場安全生產(chǎn)。監(jiān)控分站采用模塊化設計,采用基于ARM 結構的處理器,主處理器選用位32 位ARM 處理器STM32F407ZGT6[7],該處理器具有豐富的片上資源,2 路CAN 控制器,以太網(wǎng)DMA 總線,6 個USART 等,協(xié)處理器采用STM32F103RC,多個處理器協(xié)同工作,同時處理數(shù)據(jù)采集、展示、數(shù)據(jù)通信、控制、數(shù)據(jù)存儲等任務,完全滿足監(jiān)控分站的響應時間。
監(jiān)控分站主要由核心CPU 數(shù)據(jù)數(shù)據(jù)算法和控制處理模塊、通訊模塊、紅外遙控模塊、數(shù)據(jù)采集分析模塊、液晶顯示模塊、中心站數(shù)據(jù)通信模塊和電源模塊組成[8-9]。
電源電路原理圖如圖2。
圖2 電源電路原理圖Fig.2 Power circuit schematic
電源是監(jiān)控分站正常工作的基礎,監(jiān)控分站輸入電源電壓為DC24 V,為了提升電源的轉換效率和提高監(jiān)控分站的抗干擾能力,選用了一款DC/DC 模塊,模塊的輸入電壓為DC24 V,輸出電壓為3.3、5、12 VDC。DC12 V 給網(wǎng)絡光電轉換模塊供電,DC5 V給通信模塊供電,DC3.3 V 給核心ARM 芯片STM32F407ZGT6 和STM32F103RC 及外圍電路供電,選用的STM32 系列ARM 芯片,正常工作電壓為1.8~3.6 VDC。選用DC5 V 供電的通信芯片是為了提高通信距離和通信穩(wěn)定性,DC3.3 V 直流電源采用LM1117-3.3 芯片進行電壓轉換,該芯片在特定的輸入電壓和輸出負載的條件下,負載穩(wěn)定度0.4%,輸出電壓穩(wěn)定度0.2%。
CAN 總線通信電路原理圖如圖3。
圖3 CAN 總線通信電路原理圖Fig.3 Principle of CAN bus communication
物理層CAN 通信主要是由光電隔離器件、CAN收發(fā)器和CAN 控制器組成,最后連接到CAN 總線上,STM32F407ZGT6 微控制器集成了CAN 總線控制器,驅動能力不強,為了增強內部的CAN 控制器的數(shù)據(jù)接收和發(fā)送能力,增加傳輸距離,適應煤礦監(jiān)控系統(tǒng)應用場景,CAN 總線需要增加收發(fā)器驅動芯片,外接CAN 收發(fā)器,使之適應長距離通信的要求。監(jiān)控分站CAN 的物理層使用DC5V 電壓的CAN總線收發(fā)器PCA82C251 來實現(xiàn),提高了總線的接收和發(fā)送能力。
為了完成監(jiān)控分站與監(jiān)控分站、監(jiān)控分站與上位機之間的數(shù)據(jù)通信。CAN 總線通信模塊需要通過程序對CAN 控制器的寄存器進行配置,可以將接收的數(shù)據(jù)或命令發(fā)送給指定的CAN 網(wǎng)絡節(jié)點,監(jiān)控分站采用多主通信會對總線通信產(chǎn)生競爭,利用CAN 總線的CSMA/CD 特點可以有效解決,為了解決丟包對整個監(jiān)控系統(tǒng)造成的影響,分站采取丟包數(shù)據(jù)從發(fā)方式,從數(shù)據(jù)源頭解決對于CAN 總線傳輸出現(xiàn)丟包的情況。
目前監(jiān)控系統(tǒng)分站CAN 總線通信協(xié)議以CAN2.0A 為主,為此主要對CAN2.0A 幀結構進行細化,從新進行定義仲裁段中標識符、數(shù)據(jù)段中數(shù)據(jù)場的具體內容。標準的CAN2.0A 鏈路層數(shù)據(jù)幀結構見表1,依次為幀起始、仲裁段、控制端、數(shù)據(jù)段、CRC 校驗段、ACK 應答段和幀結束。
設計的監(jiān)控分站多主通信協(xié)議11 位標識符區(qū)域從新劃分,劃分后的協(xié)議中包括3 個部分,前5 位為目的分站地址,中間部分為5 位源分站地址,最后1 位為幀類型,11 位標識符功能劃分見表2。
在監(jiān)控分站協(xié)議中,目的地址5 位填充接收數(shù)據(jù)的分站地址或上位機地址;源地址5 位填充發(fā)送數(shù)據(jù)的本分站地址;幀類型1 位,單幀數(shù)據(jù)用0 表示,多幀數(shù)據(jù)用1 表示。單幀數(shù)據(jù)主要應用于命令類交互;多幀數(shù)據(jù)每幀數(shù)據(jù)的第1 個字節(jié)為幀序,第2 個字節(jié)以后為各類傳感器數(shù)據(jù)或控制數(shù)據(jù),多幀數(shù)據(jù)監(jiān)控分站通信協(xié)議見表3。
表2 11 位標識符功能劃分Table 2 Function division of 11 bit identifier
表3 多幀數(shù)據(jù)監(jiān)控分站通信協(xié)議Table 3 Communication protocol of multi-frame data monitoring substation
在該監(jiān)控分站協(xié)議標識符中同時設計了監(jiān)控分站的數(shù)據(jù)發(fā)送地址和數(shù)據(jù)接收地址,總線上的任何一幀監(jiān)控分站數(shù)據(jù)都可以被完全識別是來自哪個監(jiān)控分站和發(fā)送到哪個監(jiān)控分站,不會出現(xiàn)數(shù)據(jù)被錯誤接收或錯誤處理。經(jīng)測試該協(xié)議可以滿足多臺監(jiān)控分站間主動發(fā)起的數(shù)據(jù)傳輸需求。
監(jiān)控分站程序流程圖如圖4。
圖4 監(jiān)控分站程序流程圖Fig.4 Flow chart of monitoring substation procedure
監(jiān)控分站采用μC/OS-Ⅱ操作系統(tǒng)[10],該系統(tǒng)源代碼公開,結構簡單、內核小、可移植性和可裁剪性簡便等特點,選用Keil uVision5 為開發(fā)環(huán)境對監(jiān)控分站程序進行編譯和調試。 μC/OS - Ⅱ在STM32F407ZGT6 上移植后,多任務調度和管理由操作系統(tǒng)內核自動處理。操作系統(tǒng)按照監(jiān)控分站功能要求,合理劃分和設計相關任務,通過任務調度函數(shù)來調度各個任務,實現(xiàn)分站整體高效實時運行。監(jiān)控分站程序主要包括各類傳感器數(shù)據(jù)采集部分,風電、瓦斯電閉鎖部分,LCD 數(shù)據(jù)實時顯示部分,與上位機或其他分站數(shù)據(jù)通信部分。各類任務設定不同的優(yōu)先級,監(jiān)控分站上電初始化通過后,由μC/OS-Ⅱ內核按照設定的優(yōu)先級統(tǒng)一調度和管理,實現(xiàn)監(jiān)控分站程序協(xié)調運行。
設計了一種基于CAN 總線多主通信技術的監(jiān)控分站。介紹了多主通信監(jiān)控分站總體設計和關鍵技術, 該多主通信監(jiān)控分站可以有效支持總線多主通信,系統(tǒng)的通信效率和靈活性有了大幅提升。解決了長期以來監(jiān)控分站主從式通信數(shù)據(jù)傳輸慢、總線利用率低、抗干擾能力差的問題。煤礦現(xiàn)場應用結果證明,監(jiān)控分站運行穩(wěn)定可靠,能夠滿足全數(shù)字化監(jiān)控系統(tǒng)的要求。