徐曉天,張紅娟,王世隆,高妍,靳寶全
(1.太原理工大學(xué) 電氣與動力工程學(xué)院, 太原 030024;2.太原理工大學(xué) 新型傳感器與智能控制教育部與山西省重點(diǎn)實(shí)驗(yàn)室, 太原 030024)
煤炭開采過程中,實(shí)時(shí)監(jiān)測并上傳井下環(huán)境參數(shù)對保障生產(chǎn)安全具有重要意義[1],但井下設(shè)備產(chǎn)生的電磁輻射對正常信息傳輸干擾較大[2],目前常見的抗擾型總線數(shù)據(jù)傳輸方式仍有諸多不足。一主多從的RS485總線使數(shù)據(jù)只能從各自獨(dú)立線路上傳[3],難以聯(lián)動配置。全雙工的CAN總線支持多機(jī)同步發(fā)送[4],仲裁優(yōu)先級次第傳輸,但不利于協(xié)調(diào)遠(yuǎn)程共享,僅適用于現(xiàn)場設(shè)備間信息交互[5]。適合數(shù)據(jù)共享的以太網(wǎng)傳輸網(wǎng)絡(luò)[6],非光纖結(jié)構(gòu)時(shí)通信距離有限,無法獨(dú)立完成傳輸。
針對這一狀況,主流解決方案為多總線并行排布并引入井下網(wǎng)關(guān)設(shè)計(jì),借助帶載操作系統(tǒng)的控制芯片將多種總線信號全部轉(zhuǎn)為網(wǎng)絡(luò)信號輸送至上位機(jī)處理[7]。此時(shí)龐大的硬件結(jié)構(gòu)會增加系統(tǒng)出錯(cuò)幾率。移植操作系統(tǒng)后主控芯片資源調(diào)度緊張[8]。軟件線程增多,輪轉(zhuǎn)時(shí)間片減小[9],削弱了實(shí)時(shí)響應(yīng)。異構(gòu)總線數(shù)據(jù)信息只能單線傳輸?shù)缴衔粰C(jī),彼此不互通共享,阻礙全局信息評估。
設(shè)計(jì)一款結(jié)構(gòu)簡單,抗擾能力強(qiáng),資源占用少,使井下多總線協(xié)議信息通透傳遞的數(shù)據(jù)通信分站,消除傳輸中的滯后性和孤立性,將會為井下風(fēng)險(xiǎn)判識和危機(jī)管控提供有力支撐。為此,文章設(shè)計(jì)了兼容RS485、CAN和ModbusTCP協(xié)議的井下數(shù)據(jù)通信分站。
系統(tǒng)總體設(shè)計(jì)思路如圖1所示,井下各傳感器和控制執(zhí)行機(jī)構(gòu)通過RS485總線連接到監(jiān)控站點(diǎn),用于信息采集與上傳。站點(diǎn)通過CAN總線相連實(shí)現(xiàn)信息共享,在任一站點(diǎn)均可調(diào)閱同總線上其它站點(diǎn)數(shù)據(jù)并進(jìn)行操作控制。站點(diǎn)通過基于TCP/IP協(xié)議,可在Ethernet接口下傳輸以太網(wǎng)數(shù)據(jù)的ModbusTCP總線與井上監(jiān)控系統(tǒng)互聯(lián),便于集控室監(jiān)控情況,下發(fā)操作指令。
圖1 系統(tǒng)總體設(shè)計(jì)思路
系統(tǒng)硬件結(jié)構(gòu)如圖2所示。系統(tǒng)以總線供電、低功耗和強(qiáng)抗干擾設(shè)計(jì)識別信息類型,完成數(shù)據(jù)在各通訊協(xié)議下的采集,傳輸和控制。其中核心控制單元選用32位的STM32F407芯片。該芯片為ARM架構(gòu),168 MHz時(shí)鐘[10],滿足系統(tǒng)通信、采集和控制需求。支持485、CAN和以太網(wǎng)接口,輔以少量電平轉(zhuǎn)換電路便可與目標(biāo)接口設(shè)備連接,能提高系統(tǒng)集成,降低整體能耗,減小設(shè)備體積。
控制單元內(nèi)嵌bxCAN控制器,可收發(fā)全格式CAN報(bào)文,為兼容常見的CAN2.0B協(xié)議,以內(nèi)置高效電源的TD501DCANH3作為CAN收發(fā)器,該芯片輸入輸出雙端隔離,自身輻射低,抗擾性高。RS485協(xié)議定義接口電氣特性,正電平2 V~6 V是邏輯“1”,負(fù)電平2 V~6 V是邏輯“0”,考慮隔離需求收發(fā)選用MAX1480B,除收發(fā)器外,芯片還包括由光耦和變壓器構(gòu)成的隔離電路,內(nèi)含限擺率驅(qū)動器可增強(qiáng)抗干擾能力。控制單元包括MAC802.3介質(zhì)控制的以太網(wǎng)模塊,故以DP83848芯片連接其RMII接口作為以太網(wǎng)PHY實(shí)現(xiàn),DP83848功耗低,魯棒好,能夠很好實(shí)現(xiàn)礦井上下的通訊,為消除噪聲,用網(wǎng)絡(luò)變壓器H1102作為網(wǎng)絡(luò)濾波中繼。
井下多種設(shè)備運(yùn)行時(shí)產(chǎn)生的電磁干擾將會影響系統(tǒng)工作能力。因此,系統(tǒng)在引入井下24 V供電后,經(jīng)24S5-500B轉(zhuǎn)換得到直流5 V,在轉(zhuǎn)換模塊與外部電源間加入雙T低通電路濾除外界高頻擾動。5 V電源經(jīng)由DC-DC隔離,剔除靜電和浪涌干擾,通過ASM1117降壓至3.3 V驅(qū)動核心控制單元,分流5 V供能其他模塊。最后接地抑制共模干擾[11]。
圖2 系統(tǒng)硬件結(jié)構(gòu)
為方便井下工作,系統(tǒng)配備TFTLCD液晶顯示屏實(shí)時(shí)放送當(dāng)前各站點(diǎn)采集傳輸數(shù)據(jù),并設(shè)計(jì)了蜂鳴器和發(fā)光LED強(qiáng)化報(bào)警功能。
為實(shí)現(xiàn)對指令和數(shù)據(jù)信息的發(fā)送,多種協(xié)議信號的識別、轉(zhuǎn)換和接收,要求吞吐龐大數(shù)據(jù)且響應(yīng)快速。即軟件要以高可靠低時(shí)延特性驅(qū)動讀寫進(jìn)程完成預(yù)設(shè)功能。軟件設(shè)計(jì)分為通信檢測和協(xié)議收發(fā)轉(zhuǎn)換設(shè)計(jì)兩部分。
為避免系統(tǒng)無關(guān)中斷的干擾,程序采用循環(huán)掃描、心跳響應(yīng)和中斷節(jié)拍結(jié)合的主動循環(huán)模式,通信檢測流程如圖3所示。系統(tǒng)初始化后,掃描循環(huán)檢測各端口心跳值。傳輸端不傳送數(shù)據(jù)時(shí)以固定心跳值表示連接正常。若需要傳輸數(shù)據(jù),固定心跳變?yōu)閭鬏斝奶到y(tǒng)檢測到后中斷其他操作激活接收轉(zhuǎn)換函數(shù)響應(yīng)此心跳,結(jié)合內(nèi)部時(shí)鐘節(jié)拍消除轉(zhuǎn)換中的時(shí)間誤差。
協(xié)議收發(fā)存儲轉(zhuǎn)換過程如圖4所示,收發(fā)端接收報(bào)文后,識別剝離有效數(shù)域,添設(shè)傳輸標(biāo)識位寫入獨(dú)立緩存區(qū)。傳輸標(biāo)識位由一位數(shù)表示,“0”為輸出,“1”為輸入。獨(dú)立緩存區(qū)內(nèi)置多級指針,兩個(gè)輸入指針分別指向數(shù)據(jù)的開頭結(jié)尾,中央緩存區(qū)響應(yīng)后,將指針中間的數(shù)據(jù)轉(zhuǎn)移到中央緩存區(qū),之后指針移向下一組輸入數(shù)據(jù)。同理,兩個(gè)輸出指針指向傳出數(shù)據(jù)的開頭結(jié)尾。中央緩存區(qū)采用先進(jìn)先出的環(huán)形緩存區(qū)轉(zhuǎn)移數(shù)據(jù),添加互斥訪問機(jī)制以保證傳輸準(zhǔn)確。中央緩存區(qū)輸出數(shù)據(jù)時(shí),去掉傳輸標(biāo)識符,依據(jù)目標(biāo)協(xié)議格式,將數(shù)據(jù)域重新封裝驅(qū)動至收發(fā)口。收發(fā)口分析協(xié)議正確性,無誤則接收,否則拒絕并報(bào)錯(cuò)。
圖3 通信檢測流程
設(shè)計(jì)超限發(fā)送機(jī)制和超時(shí)發(fā)送機(jī)制,當(dāng)接受的數(shù)據(jù)量超出緩存區(qū)上限閾值時(shí),激活發(fā)送函數(shù)防止數(shù)據(jù)溢出。若定時(shí)區(qū)間內(nèi)數(shù)據(jù)未達(dá)發(fā)送函數(shù)動作的下限閾值,定時(shí)結(jié)束立刻發(fā)送數(shù)據(jù)以提高轉(zhuǎn)換效率。二者閾值參數(shù)可由現(xiàn)場實(shí)際靈活設(shè)定。
數(shù)據(jù)傳輸過程中,運(yùn)行檢測函數(shù)確保兩側(cè)數(shù)據(jù)有序,避免沖突發(fā)送,同時(shí)監(jiān)測雙方波特率和發(fā)送間隔,使發(fā)送方速率不高于接收方。
圖4 協(xié)議收發(fā)存儲轉(zhuǎn)換過程
RS485提供開放接口,既可采用設(shè)備供應(yīng)商提供的協(xié)議,也可自行約定協(xié)議傳輸。初始化設(shè)定波特率、數(shù)據(jù)位、停止位和校驗(yàn)位4個(gè)參數(shù)。波特率定義傳輸速率,依據(jù)設(shè)備性能設(shè)置。數(shù)據(jù)位通常是8位,傳輸0~127位標(biāo)準(zhǔn)ASCII碼只需7位。隨著纜線抗擾能力的提升,停止位常設(shè)1位,校驗(yàn)位多設(shè)為無。
CAN報(bào)文發(fā)送時(shí)對應(yīng)設(shè)置報(bào)文類型和幀標(biāo)識符[12]:報(bào)文類型鎖定為標(biāo)準(zhǔn)幀,標(biāo)識碼為11位。接收時(shí)額外設(shè)置濾波和屏蔽寄存器,二者配合判定信息接收與否,具體關(guān)系如表1所示。
為傳輸ModbusTCP數(shù)據(jù),系統(tǒng)嵌入LwIP為TCP/IP協(xié)議棧、freeModbus為Modbus協(xié)議棧[13]。ModbusTCP格式由MBAP報(bào)文頭,功能碼和數(shù)據(jù)碼組成[14]。MBAP為ModbusTCP獨(dú)有報(bào)文頭,共7字節(jié):兩字節(jié)傳輸標(biāo)志,設(shè)置00-00表示詢問回應(yīng)傳輸。兩字節(jié)協(xié)議標(biāo)志,設(shè)置00-00表示為Modbus協(xié)議。后續(xù)字節(jié)計(jì)數(shù)占兩字節(jié)表征后續(xù)字節(jié)個(gè)數(shù)。一字節(jié)單位標(biāo)志默認(rèn)00。功能碼用于協(xié)議控制器中,判定主從應(yīng)答情況[15]。
表1 濾波和屏蔽寄存器關(guān)系
為最大限度解放系統(tǒng)資源,針對自建局域網(wǎng)在井下數(shù)據(jù)交換時(shí)沒有頻繁的擁堵或網(wǎng)絡(luò)攻擊的現(xiàn)狀,調(diào)整協(xié)議格式,在網(wǎng)絡(luò)層保留了地址解析協(xié)議ARP,互聯(lián)網(wǎng)協(xié)議IP和互聯(lián)網(wǎng)控制消息協(xié)議ICMP,刪除OSPF、RIP、BGP和IGMP等路由管理和網(wǎng)絡(luò)組管理服務(wù),且ICMP只響應(yīng)ping命令和端口不可達(dá)消息。在傳輸層禁用SCTP流控制協(xié)議,去除媒體網(wǎng)關(guān)控制功能。在TCP中只打開502端口偵聽并交換數(shù)據(jù),拒絕FTP、HTTP和SMTP等服務(wù)窗口。限制冗余功能后協(xié)議格式更加緊湊,降低了資源需求。
在485和CAN的傳輸鏈路中加載霍爾直檢放大式電流傳感器,配置測量電阻為2 kΩ標(biāo)準(zhǔn)電阻,將弱電流信號轉(zhuǎn)換為電壓信號,用PicoScope采集電壓變化分析信號傳輸過程。485鏈路在11 ms內(nèi)連續(xù)傳輸數(shù)據(jù)24次,試驗(yàn)結(jié)果如圖5所示,單次數(shù)據(jù)傳輸在9.70 ms時(shí)耗時(shí)最長,為0.41 ms,無阻塞發(fā)生。
圖5 485傳輸驗(yàn)證
為區(qū)分CAN信號與485信號,在PicoScope中偏置CAN信號基準(zhǔn)電壓為+1 V,以相同方式檢測CAN信號傳輸時(shí)的電壓變化。實(shí)驗(yàn)結(jié)果表明CAN數(shù)據(jù)從898.5 μs開始傳遞,到1 109.8 μs時(shí)出現(xiàn)正向脈沖信號表示數(shù)據(jù)域傳輸完畢,1 111.3 μs時(shí)完成數(shù)據(jù)校驗(yàn)自檢發(fā)射反向脈沖。一次完整數(shù)據(jù)傳輸用時(shí)約0.2 ms。
將系統(tǒng)程序設(shè)置為調(diào)試模式,將PicoScope的兩路采集線分別接入485和CAN的傳輸線路檢測數(shù)據(jù)轉(zhuǎn)換。圖6表示CAN數(shù)據(jù)與485數(shù)據(jù)轉(zhuǎn)換耗時(shí),803.8 μs開始轉(zhuǎn)換,1 018.9 μs時(shí)轉(zhuǎn)換完成,耗時(shí)約0.21 ms,轉(zhuǎn)換傳輸過程無擁堵沖突,運(yùn)行穩(wěn)定。
為檢測ModbusTCP連接穩(wěn)定性,設(shè)置上位機(jī)IP為192.168.1.110,系統(tǒng)端IP為192.168.1.33,檢測雙方通訊。ARP與ping數(shù)據(jù)包捕獲如表2所示,ARP請求Mac地址,然后連續(xù)4次ping請求正常,精簡后的協(xié)議網(wǎng)絡(luò)通訊良好。
圖6 CAN和485數(shù)據(jù)接收轉(zhuǎn)換驗(yàn)證
表2 ARP與ping數(shù)據(jù)包捕獲
采用Jperf測試1min內(nèi)數(shù)據(jù)信息通過ModbusTCP協(xié)議的傳輸速率,三次測試得到ModbusTCP傳輸速率如圖7所示,在1.114 Mbps~1.180 Mbps之間波動,平均傳輸速率為1.147 Mbps。
圖7 ModbusTCP傳輸速率
采用DelyCheck對系統(tǒng)通訊延時(shí)連續(xù)測試3 000次,驗(yàn)證全系統(tǒng)通信傳輸實(shí)時(shí)性,系統(tǒng)時(shí)延測試如圖8所示。由結(jié)果可知,絕大多數(shù)數(shù)據(jù)傳輸時(shí)延在13 ms以內(nèi),最大時(shí)延為31 ms,系統(tǒng)實(shí)時(shí)性滿足工作需求。
圖8 系統(tǒng)時(shí)延測試
礦用多總線數(shù)據(jù)通信分站設(shè)計(jì)是對現(xiàn)有趙莊煤礦排水系統(tǒng)設(shè)計(jì)的進(jìn)一步深化和改進(jìn),原系統(tǒng)已投入使用數(shù)年。改進(jìn)后的系統(tǒng)實(shí)現(xiàn)了數(shù)據(jù)信息在RS485、CAN、ModbusTCP協(xié)議下透傳。
(1)在硬件方面,面向井下特殊環(huán)境選用合適的防爆隔離硬件設(shè)計(jì)系統(tǒng),并做了針對性抗電磁干擾措施減小干擾,保障系統(tǒng)可在井下正常工作;
(2)在軟件方面,設(shè)計(jì)了循環(huán)掃描、心跳響應(yīng)和中斷節(jié)拍結(jié)合的軟件工作模式以及多級存儲、獨(dú)立讀寫的數(shù)據(jù)緩存模式,提高了傳輸效率;
(3)在實(shí)用性方面,采用精簡后的緊湊型協(xié)議格式,數(shù)據(jù)傳輸穩(wěn)定,協(xié)議轉(zhuǎn)換高效,時(shí)延主要集中在13 ms以內(nèi),為井下數(shù)據(jù)可靠傳輸提供了新思路。