楊志雄 馬殷元 聶紅紅
1.蘭州交通大學(xué) 機(jī)電技術(shù)研究所 蘭州 730070 2.甘肅省物流及運(yùn)輸裝備信息化工程技術(shù)研究中心 蘭州 730070 3.蘭州交通大學(xué) 機(jī)電工程學(xué)院 蘭州 730070
無(wú)線傳感器網(wǎng)絡(luò)是由部署在監(jiān)測(cè)區(qū)域內(nèi)的大量低成本傳感器節(jié)點(diǎn)相互通信形成的多跳自組織網(wǎng)絡(luò),數(shù)據(jù)采集是無(wú)線傳感器網(wǎng)絡(luò)的主要應(yīng)用之一。無(wú)線傳感器網(wǎng)絡(luò)因?yàn)檩^低的成本,被廣泛應(yīng)用于各種場(chǎng)合[1-2]。在軌道交通行業(yè),越來(lái)越多的技術(shù)人員開(kāi)始研究無(wú)線傳感器網(wǎng)絡(luò)的應(yīng)用。韓曉哲[3]對(duì)無(wú)線傳感器網(wǎng)絡(luò)在列車(chē)?;愤\(yùn)輸監(jiān)控方面的應(yīng)用做了研究。文獻(xiàn)[4-6]對(duì)列車(chē)關(guān)鍵設(shè)備的監(jiān)控進(jìn)行了研究。為了提高無(wú)線傳感器網(wǎng)絡(luò)的設(shè)計(jì)可靠性,對(duì)無(wú)線傳感器網(wǎng)絡(luò)進(jìn)行可靠性測(cè)試很有必要[7]。哈佛大學(xué)開(kāi)發(fā)的無(wú)線傳感器網(wǎng)絡(luò)輔助測(cè)試系統(tǒng)提供了試驗(yàn)任務(wù)管理、日程調(diào)度、用戶訪問(wèn)控制等功能,使用戶可以方便靈活地完成測(cè)試,并對(duì)無(wú)線傳感器網(wǎng)絡(luò)進(jìn)行監(jiān)控[8]。由中科院軟件所研發(fā)的零打擾無(wú)線傳感器網(wǎng)絡(luò)測(cè)試平臺(tái),實(shí)現(xiàn)了無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)和系統(tǒng)的測(cè)試分析、故障定位、性能評(píng)估[9]。當(dāng)前,根據(jù)現(xiàn)有文獻(xiàn)報(bào)道,對(duì)列車(chē)特定環(huán)境下的無(wú)線傳感器網(wǎng)絡(luò)進(jìn)行可靠性測(cè)試的平臺(tái)還比較少,對(duì)此,筆者設(shè)計(jì)了一種基于故障注入的列車(chē)無(wú)線傳感器網(wǎng)絡(luò)可靠性測(cè)試系統(tǒng)。
基于故障注入的列車(chē)無(wú)線傳感器網(wǎng)絡(luò)可靠性測(cè)試系統(tǒng)主要由計(jì)算機(jī)控制軟件、故障注入節(jié)點(diǎn)、無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)故障協(xié)議集三部分組成,如圖1所示。計(jì)算機(jī)控制軟件實(shí)現(xiàn)故障命令的下達(dá),收集無(wú)線傳感器網(wǎng)絡(luò)的響應(yīng)信息,并進(jìn)行故障分析。故障注入節(jié)點(diǎn)實(shí)現(xiàn)故障命令的實(shí)時(shí)或定時(shí)注入,并且在下達(dá)故障命令后,收集并存儲(chǔ)無(wú)線傳感器網(wǎng)絡(luò)的響應(yīng)信息。待測(cè)試完成后,進(jìn)行可靠性分析。無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)故障協(xié)議集需要在開(kāi)發(fā)協(xié)議棧的同時(shí)進(jìn)行開(kāi)發(fā)。無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)收到注入故障命令后,調(diào)用相應(yīng)回調(diào)函數(shù)影響無(wú)線傳感器網(wǎng)絡(luò),達(dá)到故障注入的目的。
圖1 列車(chē)無(wú)線傳感器網(wǎng)絡(luò)可靠性測(cè)試系統(tǒng)組成
開(kāi)發(fā)無(wú)線傳感器網(wǎng)絡(luò)時(shí),在協(xié)議棧中針對(duì)需要注入的故障,開(kāi)發(fā)相對(duì)應(yīng)的故障回調(diào)函數(shù)。無(wú)線傳感器網(wǎng)絡(luò)運(yùn)行時(shí),將故障注入節(jié)點(diǎn)與選定的無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)相連,故障注入節(jié)點(diǎn)通過(guò)串口向無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)注入故障命令。無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)調(diào)取相應(yīng)回調(diào)函數(shù),激活故障處理機(jī)制,達(dá)到故障注入的目的。同時(shí),回調(diào)函數(shù)收集響應(yīng)信息,通過(guò)串口發(fā)送至故障注入節(jié)點(diǎn)或經(jīng)故障注入節(jié)點(diǎn)直接發(fā)送至計(jì)算機(jī)控制軟件。無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)故障注入流程如圖2所示。
圖2 無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)故障注入流程
故障注入節(jié)點(diǎn)主控芯片采用STM32F103VET6單片機(jī)。串行通信模塊采用串口通信,與計(jì)算機(jī)控制及無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行通信,實(shí)現(xiàn)故障命令的下達(dá)、無(wú)線傳感器網(wǎng)絡(luò)響應(yīng)信息的收集。時(shí)鐘模塊中,時(shí)鐘由主控芯片實(shí)時(shí)時(shí)鐘外設(shè)提供,主要為故障注入設(shè)置定時(shí)時(shí)間,為響應(yīng)信息添加時(shí)間戳。外設(shè)存儲(chǔ)模塊可以方便存儲(chǔ)故障響應(yīng)信息,通過(guò)串行外設(shè)接口連接存儲(chǔ)卡,擴(kuò)展了存儲(chǔ)空間。為了便于計(jì)算機(jī)讀取存儲(chǔ)卡中的響應(yīng)信息,在存儲(chǔ)卡中設(shè)計(jì)文件分配表文件系統(tǒng)[10]。故障注入節(jié)點(diǎn)采用定時(shí)注入時(shí),可以將計(jì)算機(jī)控制軟件下達(dá)的故障命令存儲(chǔ)在單片機(jī)內(nèi)存自定義的區(qū)域中,然后移走計(jì)算機(jī),不再需要人工干預(yù)。故障注入后,無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)回調(diào)函數(shù)將響應(yīng)信息經(jīng)串口發(fā)送至故障注入節(jié)點(diǎn),然后存儲(chǔ)在存儲(chǔ)卡中。測(cè)試完成后,使用計(jì)算機(jī)讀取存儲(chǔ)卡獲取故障響應(yīng)信息,進(jìn)行可靠性評(píng)估。故障注入節(jié)點(diǎn)采用實(shí)時(shí)注入時(shí),故障命令經(jīng)由故障注入節(jié)點(diǎn)直接注入無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),收到的實(shí)時(shí)響應(yīng)信息存儲(chǔ)在存儲(chǔ)卡中,同時(shí)復(fù)制相同的數(shù)據(jù),通過(guò)串口發(fā)送至計(jì)算機(jī)控制軟件,達(dá)到實(shí)時(shí)監(jiān)控的目的。故障注入節(jié)點(diǎn)程序設(shè)計(jì)流程如圖3所示。
圖3 故障注入節(jié)點(diǎn)程序設(shè)計(jì)流程
計(jì)算機(jī)控制軟件包括三部分:① 串行通信模塊,實(shí)現(xiàn)與故障注入節(jié)點(diǎn)的連接,進(jìn)行故障命令的下達(dá),以及系統(tǒng)時(shí)間設(shè)定與響應(yīng)數(shù)據(jù)的上傳;② 故障注入模塊,用于注入特定的故障命令,針對(duì)列車(chē)的特殊應(yīng)用環(huán)境,分析容易產(chǎn)生故障的原因,具體特定故障命令包括降低發(fā)射功率模擬障礙物,關(guān)閉無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)模擬節(jié)點(diǎn)失效,強(qiáng)制若干無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)退出并不斷發(fā)送數(shù)據(jù)模擬干擾等;③ 故障分析模塊,可以實(shí)時(shí)監(jiān)測(cè)無(wú)線傳感器網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變化,收集統(tǒng)計(jì)故障響應(yīng)信息,如時(shí)延、信號(hào)接收強(qiáng)度、數(shù)據(jù)包丟包率等,進(jìn)而協(xié)助設(shè)計(jì)人員分析注入故障對(duì)無(wú)線傳感器網(wǎng)絡(luò)的影響,評(píng)估無(wú)線傳感器網(wǎng)絡(luò)的可靠性。計(jì)算機(jī)控制軟件執(zhí)行程序流程如圖4所示。
圖4 計(jì)算機(jī)控制軟件執(zhí)行程序流程
為了驗(yàn)證基于故障注入的列車(chē)無(wú)線傳感器網(wǎng)絡(luò)可靠性測(cè)試系統(tǒng)的有效性,采用八個(gè)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),模擬列車(chē)車(chē)廂呈長(zhǎng)方形設(shè)置,終端節(jié)點(diǎn)每隔400 ms發(fā)送一個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包有效載荷為20 Byte,每輪發(fā)送100個(gè)數(shù)據(jù)包。采用三個(gè)故障注入節(jié)點(diǎn),連接三個(gè)無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行故障注入。注入模擬障礙物故障,分別修改終端無(wú)線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),發(fā)射功率為3 dBm、-5 dBm、-22 dBm,測(cè)試結(jié)果如圖5所示。圖5中,信號(hào)接收強(qiáng)度值為換算后的絕對(duì)值,值越大,表示接收到的信號(hào)強(qiáng)度越強(qiáng)。改變發(fā)射功率后,顯著影響了信號(hào)接收強(qiáng)度。對(duì)模擬障礙物和模擬干擾兩種故障進(jìn)行混合注入,測(cè)試結(jié)果如圖6所示。干擾功率一定,數(shù)據(jù)包丟包率隨發(fā)射功率的降低而增大。干擾功率越低,對(duì)數(shù)據(jù)包丟包率的影響越小。測(cè)試結(jié)果證明,這一系統(tǒng)可以模擬列車(chē)無(wú)線傳感器網(wǎng)絡(luò)運(yùn)行故障,對(duì)列車(chē)無(wú)線傳感器網(wǎng)絡(luò)進(jìn)行可靠性測(cè)試。
圖5 模擬障礙物故障注入測(cè)試結(jié)果
筆者提出了基于故障注入的列車(chē)無(wú)線傳感器網(wǎng)絡(luò)可靠性測(cè)試系統(tǒng),在列車(chē)無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)階段注入模擬列車(chē)現(xiàn)場(chǎng)運(yùn)行故障,用于測(cè)試所設(shè)計(jì)的列車(chē)無(wú)線傳感器網(wǎng)絡(luò)的可靠性。設(shè)計(jì)開(kāi)發(fā)了模擬列車(chē)無(wú)線傳感器網(wǎng)絡(luò)故障的故障協(xié)議,設(shè)計(jì)了故障注入節(jié)點(diǎn),并開(kāi)發(fā)了計(jì)算機(jī)控制軟件來(lái)下達(dá)故障命令,分析響應(yīng)信息。進(jìn)行了系統(tǒng)測(cè)試,結(jié)果表明,這一系統(tǒng)可以有效模擬列車(chē)無(wú)線傳感器網(wǎng)絡(luò)故障,測(cè)試列車(chē)無(wú)線傳感器網(wǎng)絡(luò)的可靠性,協(xié)助設(shè)計(jì)開(kāi)發(fā)人員有針對(duì)性地對(duì)列車(chē)無(wú)線傳感器網(wǎng)絡(luò)進(jìn)行改進(jìn),具有實(shí)用價(jià)值。
圖6 混合故障注入測(cè)試結(jié)果