專利名稱:一種基于rs485總線通訊鏈路的故障監(jiān)測(cè)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,具體涉及ー種針對(duì)RS485總線通訊鏈路上主節(jié)點(diǎn)和/或從節(jié)點(diǎn)是否有故障進(jìn)行監(jiān)測(cè)的方法。
背景技術(shù):
RS-485總線為EIA研究出的自動(dòng)化領(lǐng)域使用比較廣泛的一種串行總線,RS-485總線能適合遠(yuǎn)距離的數(shù)字通信,具有多節(jié)點(diǎn)、遠(yuǎn)距離和接收高靈敏度的特點(diǎn);RS-485標(biāo)準(zhǔn)采用平衡式發(fā)送,差分式接收的數(shù)據(jù)收發(fā)器來驅(qū)動(dòng)總線,具有抑制共模干擾的能力;RS_485一般采用半雙エ工作方式,任何時(shí)候只能有一點(diǎn)處于發(fā)送狀態(tài)。基于RS-485總線的通訊ー 般采用主從式通訊設(shè)計(jì),即主結(jié)點(diǎn)發(fā)出通訊命令后,從結(jié)點(diǎn)識(shí)別命令是針對(duì)本節(jié)點(diǎn)后才作出相應(yīng)的動(dòng)作。在上述特點(diǎn)下,現(xiàn)有的基于RS-485總線的通訊協(xié)議的診斷方式為1、只執(zhí)行數(shù)據(jù)的傳輸,不對(duì)通訊鏈路進(jìn)行的診斷。通訊鏈路或結(jié)點(diǎn)故障后,主、從結(jié)點(diǎn)發(fā)出有效數(shù)據(jù)的一段時(shí)間后相互不能收到正確數(shù)據(jù),才會(huì)發(fā)現(xiàn)通訊鏈路的故障,這就導(dǎo)致發(fā)現(xiàn)故障的時(shí)間隨機(jī)不確定。2、只有通過專門的診斷命令或診斷設(shè)備對(duì)通訊鏈路進(jìn)行檢測(cè),這些措施不能保證診斷實(shí)時(shí)的進(jìn)行,故障只能被動(dòng)發(fā)生,而且還増加了額外的操作或額外的設(shè)備。上述問題的存在使RS485總線通訊鏈路在高安全性應(yīng)用上存在不足。
發(fā)明內(nèi)容
為解決現(xiàn)有技術(shù)中RS485通信總線鏈路存在故障時(shí)不能實(shí)時(shí)發(fā)現(xiàn)的問題,本發(fā)明提供一種其于RS485總線通訊鏈路的故障監(jiān)測(cè)方法,具體方案如下一種基于RS485總線通訊鏈路的故障監(jiān)測(cè)方法,其特征在于,包括如下步驟步驟1、通過RS485總線通訊鏈路的數(shù)據(jù)鏈路層上的主節(jié)點(diǎn)定時(shí)向各從節(jié)點(diǎn)發(fā)送帶有各從節(jié)點(diǎn)信息的鏈路診斷報(bào)文;步驟2、各從節(jié)點(diǎn)收到相應(yīng)的診斷報(bào)文后立即向主節(jié)點(diǎn)發(fā)送帶有從節(jié)點(diǎn)信息的鏈路診斷報(bào)文;步驟3、當(dāng)主節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)沒有收到相應(yīng)從節(jié)點(diǎn)的鏈路診斷報(bào)文后,即判斷該鏈路或此從節(jié)點(diǎn)存在故障并進(jìn)行故障指示和故障上報(bào)。優(yōu)選為其中主節(jié)點(diǎn)針對(duì)每個(gè)從節(jié)點(diǎn)的計(jì)時(shí)是獨(dú)立計(jì)算的。優(yōu)選為所述主節(jié)點(diǎn)在對(duì)故障從節(jié)點(diǎn)上報(bào)故障信息的同時(shí),停止對(duì)此從節(jié)點(diǎn)正常數(shù)據(jù)的發(fā)送,但并不停止對(duì)此從節(jié)點(diǎn)的鏈路診斷報(bào)文發(fā)送,直至解決此從節(jié)點(diǎn)故障后才進(jìn)行正常數(shù)據(jù)的發(fā)送。優(yōu)選為還包括從節(jié)點(diǎn)故障主動(dòng)判斷步驟在從節(jié)點(diǎn)上設(shè)置定時(shí)接收主節(jié)點(diǎn)鏈路診斷報(bào)文的時(shí)間,從節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)沒有收到主節(jié)點(diǎn)的鏈路診斷報(bào)文吋,即判斷該鏈路或主節(jié)點(diǎn)存在故障并進(jìn)行故障指示和故障上報(bào)。優(yōu)選為所述主節(jié)點(diǎn)的鏈路診斷報(bào)文包括目的從節(jié)點(diǎn)地址信息、發(fā)送診斷報(bào)文的源地址信息、根據(jù)通訊協(xié)議制定的與正常數(shù)據(jù)相區(qū)分的數(shù)據(jù)類型和數(shù)據(jù)校驗(yàn)信息。優(yōu)選為所述從節(jié)點(diǎn)的鏈路診斷報(bào)文包括目的主節(jié)點(diǎn)地址信息、發(fā)送診斷報(bào)文的從節(jié)點(diǎn)地址信息、根據(jù)通訊協(xié)議制定的與正常數(shù)據(jù)相區(qū)分的數(shù)據(jù)類型和數(shù)據(jù)校驗(yàn)信息。優(yōu)選為所述鏈路診斷報(bào)文的發(fā)送時(shí)間在鏈路數(shù)據(jù)正常通訊時(shí)和鏈路空閑時(shí)都實(shí)時(shí)進(jìn)行,其中主節(jié)點(diǎn)的鏈路數(shù)據(jù)正常通訊時(shí)鏈路診斷報(bào)文以插入正常數(shù)據(jù)隊(duì)列的方式隨正常數(shù)據(jù)發(fā)送。優(yōu)選為所述鏈路診斷報(bào)文和正常數(shù)據(jù)報(bào)文在數(shù)據(jù)傳輸格式中使用數(shù)據(jù)類型進(jìn)行區(qū)分。本發(fā)明利用與正常數(shù)據(jù)相區(qū)別的鏈路診斷報(bào)文,定時(shí)在主節(jié)點(diǎn)和從節(jié)點(diǎn)之間進(jìn)行發(fā)送,根據(jù)接收和反饋的時(shí)間來判斷相應(yīng)故障點(diǎn),大大提高了故障的及時(shí)發(fā)現(xiàn)率。本發(fā)明的故障檢測(cè)方法使得通訊診斷能夠?qū)崟r(shí)進(jìn)行,不管是數(shù)據(jù)傳輸還是網(wǎng)絡(luò)空閑階段都在進(jìn)行; 通訊故障上報(bào)時(shí)間可控,從發(fā)現(xiàn)鏈路故障到上報(bào)鏈路故障時(shí)間得到控制;在傳輸總線上各個(gè)結(jié)點(diǎn)都可進(jìn)行診斷;在檢測(cè)過程中不需要額外的診斷命令或動(dòng)作,不需要人為操作即可診斷通訊鏈路,也不需要增加額外的硬件設(shè)備或投入。本發(fā)明的診斷不影響通訊數(shù)據(jù)的正常傳輸。
圖1本發(fā)明的方法流程圖。
具體實(shí)施例方式根據(jù)通訊的OSI七層模型定義,網(wǎng)絡(luò)定義為物理層(Physical Layer)、數(shù)據(jù)鏈路層(Datalink Layer)、網(wǎng)絡(luò)層(Network Layer)、傳輸層(Transport Layer)、會(huì)話層(Session Layer)、表不 ノ云(Presentation Layer)、& 用 C App Ii cat ion Layer 本發(fā)明為達(dá)到實(shí)時(shí)診斷鏈路的目的,因此在通訊協(xié)議上對(duì)主、從結(jié)點(diǎn)的數(shù)據(jù)鏈路層(DatalinkLayer)進(jìn)行相應(yīng)設(shè)計(jì),如圖1所示,本發(fā)明的基于RS485總線通訊鏈路的故障監(jiān)測(cè)方法,包括如下步驟101、通過RS485總線通訊鏈路的數(shù)據(jù)鏈路層上的主節(jié)點(diǎn)定時(shí)向各從節(jié)點(diǎn)發(fā)送帶有各從節(jié)點(diǎn)信息的鏈路診斷報(bào)文;在通訊協(xié)議鏈路層的設(shè)計(jì)上,主結(jié)點(diǎn)每隔設(shè)定時(shí)間(設(shè)定時(shí)間可以根據(jù)鏈路通訊速率、系統(tǒng)對(duì)鏈路故障響應(yīng)時(shí)間的要求自行定義,以滿足系統(tǒng)對(duì)鏈路故障響應(yīng)時(shí)間為原則)對(duì)每個(gè)從節(jié)點(diǎn)發(fā)送帶有從節(jié)點(diǎn)地址信息的鏈路診斷報(bào)文,鏈路診斷報(bào)文可由鏈路層的診斷報(bào)文定時(shí)器自動(dòng)觸發(fā)鏈路層產(chǎn)生,不受上層控制,定時(shí)器根據(jù)設(shè)定時(shí)間進(jìn)行定時(shí),鏈路診斷報(bào)文的發(fā)送在正常數(shù)據(jù)通訊和空閑時(shí)都要實(shí)時(shí)進(jìn)行,在正常數(shù)據(jù)通訊吋,鏈路層的診斷報(bào)文定時(shí)器觸發(fā)鏈路層產(chǎn)生鏈路診斷報(bào)文,鏈路層在本幀數(shù)據(jù)傳輸后把鏈路診斷報(bào)文插入到正常數(shù)據(jù)傳輸隊(duì)列中。鏈路診斷報(bào)文和正常數(shù)據(jù)報(bào)文以及其他命令報(bào)文在數(shù)據(jù)傳輸格式中使用數(shù)據(jù)類型進(jìn)行區(qū)分;102、各從節(jié)點(diǎn)收到相應(yīng)的診斷報(bào)文后立即向主節(jié)點(diǎn)發(fā)送帶有從節(jié)點(diǎn)信息的鏈路診斷報(bào)文;在正常數(shù)據(jù)通訊時(shí),從節(jié)點(diǎn)收到主節(jié)點(diǎn)的鏈路報(bào)文后在從節(jié)點(diǎn)的鏈路層進(jìn)行報(bào)文解析,當(dāng)從節(jié)點(diǎn)的鏈路層解析報(bào)文時(shí)發(fā)現(xiàn)為鏈路診斷報(bào)文,則在本幀數(shù)據(jù)傳輸完成后、通訊鏈路空閑時(shí),從節(jié)點(diǎn)鏈路層立刻向主節(jié)點(diǎn)回復(fù)從節(jié)點(diǎn)的鏈路診斷報(bào)文,而在沒有正常數(shù)據(jù)傳輸空閑時(shí),從節(jié)點(diǎn)收到主節(jié)點(diǎn)的鏈路診斷報(bào)文并在鏈路層解析后,從節(jié)點(diǎn)鏈路層立刻向主節(jié)點(diǎn)回復(fù)從節(jié)點(diǎn)的鏈路診斷報(bào)文。103、當(dāng)主節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)沒有收到相應(yīng)從節(jié)點(diǎn)的鏈路診斷報(bào)文后,即判斷該鏈路或此從節(jié)點(diǎn)存在故障并進(jìn)行故障指示和故障上報(bào)。主節(jié)點(diǎn)鏈路層在發(fā)送給某從節(jié)點(diǎn)鏈路診斷報(bào)文后啟動(dòng)該從節(jié)點(diǎn)的計(jì)時(shí)器進(jìn)行計(jì)時(shí)(設(shè)定的時(shí)間根據(jù)鏈路通訊速率、系統(tǒng)對(duì)鏈路故障響應(yīng)時(shí)間的要求自行定義,以滿足系統(tǒng)對(duì)鏈路故障響應(yīng)時(shí)間為原則),主節(jié)點(diǎn)鏈路層在設(shè)定的時(shí)間之內(nèi)沒有收到從節(jié)點(diǎn)的鏈路診斷報(bào)文時(shí),診斷為該從節(jié)點(diǎn)通訊存在故障。此時(shí)主節(jié)點(diǎn)通訊鏈路層發(fā)送信息通知給通訊協(xié)議的上層,并最終傳遞到應(yīng)用層,主節(jié)點(diǎn)系統(tǒng)可根據(jù)應(yīng)用進(jìn)行自定義的動(dòng)作或者響應(yīng);同時(shí) 通訊鏈路層對(duì)該從節(jié)點(diǎn)不再進(jìn)行正常的數(shù)據(jù)傳輸,但對(duì)該節(jié)點(diǎn)的診斷鏈路報(bào)文的發(fā)送不中斷,直到收到該從節(jié)點(diǎn)的診斷鏈路報(bào)文繼續(xù)進(jìn)行正常的數(shù)據(jù)傳輸本發(fā)明的方法中,其中主節(jié)點(diǎn)針對(duì)每個(gè)從節(jié)點(diǎn)的計(jì)時(shí)是獨(dú)立計(jì)算的。另外,主節(jié)點(diǎn)在對(duì)故障從節(jié)點(diǎn)上報(bào)故障信息的同時(shí),停止對(duì)此從節(jié)點(diǎn)正常數(shù)據(jù)的發(fā)送,但并不停止對(duì)此從節(jié)點(diǎn)的鏈路診斷報(bào)文發(fā)送,直至解決此從節(jié)點(diǎn)故障后才進(jìn)行正常數(shù)據(jù)的發(fā)送。本發(fā)明還包括從節(jié)點(diǎn)故障主動(dòng)判斷步驟在從節(jié)點(diǎn)上設(shè)置定時(shí)接收主節(jié)點(diǎn)鏈路診斷報(bào)文的時(shí)間,從節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)沒有收到主節(jié)點(diǎn)的鏈路診斷報(bào)文吋,即判斷該鏈路或主節(jié)點(diǎn)存在故障并進(jìn)行故障指示和故障上報(bào)。從節(jié)點(diǎn)啟動(dòng)后,鏈路層使用從節(jié)點(diǎn)的鏈路診斷計(jì)時(shí)器進(jìn)行計(jì)時(shí)(設(shè)定的時(shí)間根據(jù)鏈路通訊速率、系統(tǒng)對(duì)鏈路故障響應(yīng)時(shí)間的要求自行定義,以滿足系統(tǒng)對(duì)鏈路故障響應(yīng)時(shí)間為原則),在計(jì)時(shí)器溢出即設(shè)定的時(shí)間之內(nèi)從節(jié)點(diǎn)的鏈路層不能或沒有收到主節(jié)點(diǎn)的鏈路診斷報(bào)文,則診斷為主節(jié)點(diǎn)存在故障,從節(jié)點(diǎn)通訊鏈路層發(fā)送信息通知給通訊協(xié)議的上層,并最終傳遞到應(yīng)用層,從節(jié)點(diǎn)系統(tǒng)可根據(jù)應(yīng)用進(jìn)行自定義的動(dòng)作或者響應(yīng);如果在從節(jié)點(diǎn)的鏈路層的鏈路診斷計(jì)時(shí)器沒有溢出之前收到主節(jié)點(diǎn)的鏈路診斷報(bào)文,該計(jì)時(shí)器清零,重新進(jìn)行計(jì)時(shí)診斷。本發(fā)明中主節(jié)點(diǎn)的鏈路診斷報(bào)文包括目的從節(jié)點(diǎn)地址信息、發(fā)送診斷報(bào)文的源地址信息、根據(jù)通訊協(xié)議制定的與正常數(shù)據(jù)相區(qū)分的數(shù)據(jù)類型和數(shù)據(jù)校驗(yàn)信息。從節(jié)點(diǎn)的鏈路診斷報(bào)文包括目的主節(jié)點(diǎn)地址信息、發(fā)送診斷報(bào)文的從節(jié)點(diǎn)地址信息、根據(jù)通訊協(xié)議制定的與正常數(shù)據(jù)相區(qū)分的數(shù)據(jù)類型和數(shù)據(jù)校驗(yàn)信息。具體內(nèi)容如下從節(jié)點(diǎn)收到主節(jié)點(diǎn)的鏈路診斷報(bào)文后立即向主節(jié)點(diǎn)發(fā)送帶有從節(jié)點(diǎn)地址信息的鏈路診斷報(bào)文。本發(fā)明中主節(jié)點(diǎn)發(fā)送鏈路診斷報(bào)文的格式如下
DA [ SA ] Type [ CRC其中DA為目的地址,即所要診斷的從結(jié)點(diǎn)地址;SA為源地址,即主節(jié)點(diǎn)地址;Type數(shù)據(jù)類型,需要根據(jù)通訊協(xié)議的制定為鏈路診斷報(bào)文設(shè)定Type,如正常數(shù)據(jù)傳輸時(shí)Type值為0X55AA,主節(jié)點(diǎn)鏈路診斷報(bào)文Type值為0X8855 ;CRC為數(shù)據(jù)校驗(yàn)。
從節(jié)點(diǎn)發(fā)送鏈路診斷報(bào)文格式為
權(quán)利要求
1.一種基于RS485總線通訊鏈路的故障監(jiān)測(cè)方法,其特征在于,包括如下步驟 步驟1、通過RS485總線通訊鏈路的數(shù)據(jù)鏈路層上的主節(jié)點(diǎn)定時(shí)向各從節(jié)點(diǎn)發(fā)送帶有各從節(jié)點(diǎn)信息的鏈路診斷報(bào)文; 步驟2、各從節(jié)點(diǎn)收到相應(yīng)的診斷報(bào)文后立即向主節(jié)點(diǎn)發(fā)送帶有從節(jié)點(diǎn)信息的鏈路診斷報(bào)文; 步驟3、當(dāng)主節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)沒有收到相應(yīng)從節(jié)點(diǎn)的鏈路診斷報(bào)文后,即判斷該鏈路或此從節(jié)點(diǎn)存在故障并進(jìn)行故障指示和故障上報(bào)。
2.如權(quán)利要求1所述的故障監(jiān)測(cè)方法,其特征在于,其中主節(jié)點(diǎn)針對(duì)每個(gè)從節(jié)點(diǎn)的計(jì)時(shí)是獨(dú)立計(jì)算的。
3.如權(quán)利要求1所述的故障監(jiān)測(cè)方法,其特征在于,所述主節(jié)點(diǎn)在對(duì)故障從節(jié)點(diǎn)上報(bào)故障信息的同時(shí),停止對(duì)此從節(jié)點(diǎn)正常數(shù)據(jù)的發(fā)送,但并不停止對(duì)此從節(jié)點(diǎn)的鏈路診斷報(bào)文發(fā)送,直至解決此從節(jié)點(diǎn)故障后才進(jìn)行正常數(shù)據(jù)的發(fā)送。
4.如權(quán)利要求1所述的故障監(jiān)測(cè)方法,其特征在于,還包括從節(jié)點(diǎn)故障主動(dòng)判斷步驟在從節(jié)點(diǎn)上設(shè)置定時(shí)接收主節(jié)點(diǎn)鏈路診斷報(bào)文的時(shí)間,從節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)沒有收到主節(jié)點(diǎn)的鏈路診斷報(bào)文時(shí),即判斷該鏈路或主節(jié)點(diǎn)存在故障并進(jìn)行故障指示和故障上報(bào)。
5.如權(quán)利要求1-4所述的任意故障監(jiān)測(cè)方法,其特征在于,所述主節(jié)點(diǎn)的鏈路診斷報(bào)文包括目的從節(jié)點(diǎn)地址信息、發(fā)送診斷報(bào)文的源地址信息、根據(jù)通訊協(xié)議制定的與正常數(shù)據(jù)相區(qū)分的數(shù)據(jù)類型和數(shù)據(jù)校驗(yàn)信息。
6.如權(quán)利要求5所述的故障監(jiān)測(cè)方法,其特征在于,所述從節(jié)點(diǎn)的鏈路診斷報(bào)文包括目的主節(jié)點(diǎn)地址信息、發(fā)送診斷報(bào)文的從節(jié)點(diǎn)地址信息、根據(jù)通訊協(xié)議制定的與正常數(shù)據(jù)相區(qū)分的數(shù)據(jù)類型和數(shù)據(jù)校驗(yàn)信息。
7.如權(quán)利要求6所述的故障監(jiān)測(cè)方法,其特征在于,所述鏈路診斷報(bào)文的發(fā)送時(shí)間在鏈路數(shù)據(jù)正常通訊時(shí)和鏈路空閑時(shí)都實(shí)時(shí)進(jìn)行,其中主節(jié)點(diǎn)的鏈路數(shù)據(jù)正常通訊時(shí)鏈路診斷報(bào)文以插入正常數(shù)據(jù)隊(duì)列的方式隨正常數(shù)據(jù)發(fā)送。
8.如權(quán)利要求7所述的故障監(jiān)測(cè)方法,其特征在于,所述鏈路診斷報(bào)文和正常數(shù)據(jù)報(bào)文在數(shù)據(jù)傳輸格式中使用數(shù)據(jù)類型進(jìn)行區(qū)分。
全文摘要
本發(fā)明公開一種基于RS485總線通訊鏈路的故障監(jiān)測(cè)方法,包括如下步驟步驟1、通過RS485總線通訊鏈路的數(shù)據(jù)鏈路層上的主節(jié)點(diǎn)定時(shí)向各從節(jié)點(diǎn)發(fā)送帶有各從節(jié)點(diǎn)信息的鏈路診斷報(bào)文;步驟2、各從節(jié)點(diǎn)收到相應(yīng)的診斷報(bào)文后立即向主節(jié)點(diǎn)發(fā)送帶有從節(jié)點(diǎn)信息的鏈路診斷報(bào)文;步驟3、當(dāng)主節(jié)點(diǎn)在設(shè)定時(shí)間內(nèi)沒有收到相應(yīng)從節(jié)點(diǎn)的鏈路診斷報(bào)文后,即判斷該鏈路或此從節(jié)點(diǎn)存在故障并進(jìn)行故障指示和故障上報(bào)。本發(fā)明利用與正常數(shù)據(jù)相區(qū)別的鏈路診斷報(bào)文定時(shí)在主節(jié)點(diǎn)和從節(jié)點(diǎn)之間進(jìn)行發(fā)送,根據(jù)接收和反饋的時(shí)間來判斷相應(yīng)故障點(diǎn),大大提高了故障的及時(shí)發(fā)現(xiàn)率。
文檔編號(hào)H04L12/24GK103023715SQ20121048356
公開日2013年4月3日 申請(qǐng)日期2012年11月23日 優(yōu)先權(quán)日2012年11月23日
發(fā)明者馬洪杰, 石桂連, 孫偉, 劉愛國(guó), 張春雷, 宋林, 陳乃奎, 謝逸欽 申請(qǐng)人:北京廣利核系統(tǒng)工程有限公司, 中國(guó)廣東核電集團(tuán)有限公司