基于RS422接口的備份測試系統(tǒng)設(shè)計
1、引言
本文引用地址:http://cafeforensic.com/article/193591.htm在復雜現(xiàn)場工業(yè)環(huán)境中,有時需要對現(xiàn)場工作設(shè)備進行備份,提供一套與工作設(shè)備完全相同的設(shè)備,提高設(shè)備的應(yīng)急處理能力和工作任務(wù)完成的的靠性。在這種備份方式中,主輔兩臺設(shè)備同時開機,同時接收終端設(shè)備數(shù)據(jù),根據(jù)需求采用通信協(xié)議簡單、容錯能力強、安全性好以及成本較低的RS422總線方式實現(xiàn)。RS422總線是一種點對點傳輸總線,它定義了一種平衡通信接口,將傳輸速率提高到10Mb/s,在傳輸速率低于100kb/s時,其傳輸距離可達1200米。RS422傳輸協(xié)議屬于單機發(fā)送、多機接收的單向、平衡傳輸規(guī)范,只對接口電氣特性做出規(guī)定,不涉及接插件、電纜或協(xié)議,可在此基礎(chǔ)上建立高層通信協(xié)議進行通信。
2、系統(tǒng)接口設(shè)計
為使主輔設(shè)備互為備份,需要主輔設(shè)備同時接收數(shù)據(jù)、主設(shè)備應(yīng)答終端設(shè)備信號命令,而輔設(shè)備不應(yīng)答終端設(shè)備信號命令。主輔設(shè)備與終端設(shè)備通過RS422端口連接方式如圖1所示。
圖1 系統(tǒng)接口設(shè)計小標
3、系統(tǒng)工作流程
主輔設(shè)備同時工作時,系統(tǒng)工作流程如圖2所示:
圖2 系統(tǒng)工作流程框圖
4、軟件設(shè)計
通信過程中,終端設(shè)備通過RS422端口按查詢通信方式和中斷通信方式與主輔設(shè)備進行通信。
4.1 數(shù)據(jù)幀格式設(shè)計
4.1.1 查詢通信幀格式
查詢通信幀格式如表1所示,按照單字節(jié)握手方式進行數(shù)據(jù)傳輸:終端設(shè)備按照單字節(jié)信號傳輸方式發(fā)送信號命令到主輔設(shè)備,主設(shè)備在接收到每個字節(jié)后返回到終端設(shè)備,輔設(shè)備則無應(yīng)答。終端設(shè)備在確認接收字節(jié)與發(fā)送字節(jié)無誤后繼續(xù)發(fā)送幀中下一字節(jié)數(shù)據(jù)到主輔設(shè)備。
表1 查詢通信數(shù)據(jù)幀格式
幀格式
幀頭
數(shù)據(jù)長度
識別符
代碼
幀尾
字節(jié)數(shù)
3
2
2
1
1
4.1.2 中斷通信數(shù)據(jù)幀格式
中斷通信數(shù)據(jù)幀格式如表2所示,按照中斷方式進行數(shù)據(jù)傳輸:設(shè)備通過數(shù)據(jù)幀格式將每一個字節(jié)順序發(fā)出,接收方以中斷方式進行接收,根據(jù)幀格式判斷是否收到完整數(shù)據(jù)幀。
表2 中斷通信數(shù)據(jù)幀格式
幀格式
幀頭
識別符
數(shù)據(jù)區(qū)
校驗和
數(shù)據(jù)長度
幀尾
字節(jié)數(shù)
2
7
200
1
2
2
4.2 設(shè)計考慮
4.2.1 數(shù)據(jù)幀判別
設(shè)置后臺監(jiān)視線程,主輔設(shè)備同時不間斷接收終端設(shè)備傳輸信號,接收到信號后,判斷是否為單字節(jié),若是單字節(jié)則延時20毫秒繼續(xù)接收。20毫秒后若沒有接收到數(shù)據(jù)則進入查詢通信格式進行單字節(jié)握手接收,否則進入中斷通信方式進行數(shù)據(jù)接收。
4.2.2 通信同步
4.2.2.1 主輔設(shè)備與終端設(shè)備數(shù)據(jù)接收同步
主輔設(shè)備與終端設(shè)備通信時需在發(fā)送和接收數(shù)據(jù)時間間隔上進行限制,當接收和發(fā)送時間超過時間間隔,就認為本次通信失敗。程序立即回到通信程序開始,并清空緩沖區(qū)的數(shù)據(jù)繼續(xù)查詢接收;終端設(shè)備若在規(guī)定時間未收到返回確認信號,也立即返回到通信程序開始,并清空緩沖區(qū)中的數(shù)據(jù),重新發(fā)送數(shù)據(jù),接收雙方重新同步。
4.2.2.2 主設(shè)備與輔設(shè)備接收同步
主設(shè)備與輔設(shè)備同時接收終端設(shè)備傳輸數(shù)據(jù),因為接收線程都是程序子線程,因此當主設(shè)備接收并應(yīng)答終端設(shè)備信號時,輔設(shè)備接收線程可能存在未同步接收的情況,當主設(shè)備與終端設(shè)備通信到一定時間時,輔設(shè)備才開始接收數(shù)據(jù)。此時,輔設(shè)備接收線程進入中斷通信方式。
因此在程序設(shè)計中接收線程采用中斷查詢混合接收方式,判別幀格式不屬于中斷通信幀格式后,采用單字節(jié)格式繼續(xù)進行數(shù)據(jù)接收。
4.2.3 丟幀處理
主輔設(shè)備同時接收終端設(shè)備中斷數(shù)據(jù)幀格式時,需考慮到主輔設(shè)備間接收線程同步性,判別接收數(shù)據(jù)時是否存在丟幀現(xiàn)象。
4.3 接收工作線程
軟件接收參數(shù)工作線程如圖3所示。
圖3 軟件接收工作線程
4.3.1 查詢通信流程
查詢通信工作流程如圖4所示。
圖4 查詢通信工作流程
4.3.2 中斷查詢混合通信流程
中斷查詢混合通信工作流程如圖5所示。
圖5 中斷查詢混合通信工作流程
5、結(jié)論
經(jīng)過實驗驗證,通信時,通過主設(shè)備單獨應(yīng)答終端設(shè)備信號命令,主輔設(shè)備能很好的同時接收終端設(shè)備數(shù)據(jù)并存儲備份。經(jīng)過分析,這種按照RS422總線方式進行連接的備份測試方法雖然降低了總線輸出電平差值,但輸出電平仍然遠大于RS422規(guī)定的200mv門限電平值。因此,這種連接設(shè)計的主輔備份測試系統(tǒng)很好的滿足了數(shù)據(jù)備份和數(shù)據(jù)通信傳輸要求,而其結(jié)構(gòu)簡單、構(gòu)造方便、成本較低的優(yōu)點更具有無可比擬的優(yōu)勢。
參考文獻
[1] LRINRVKRT R C.Visual C++ Bible[M].北京:電子工業(yè)出版,1999.
[2] 徐曉剛,高兆法,王秀娟,Visual c 6.0入門與提高[M].北京:清華大學出版社,1999.
[3] 蔣濤.多串口通信編程解決方案分析[J].四川師范大學學報:自然科學版,2001,24[5]:11-14.
[4] Shepherd G,Kruglinski D.Visual C++.Net技術(shù)內(nèi)幕[M].潘愛民,譯.北京:清華大學出版社,2004.
[5] Gregory K.Visual C++ 5開發(fā)使用手冊[M].抗波創(chuàng)作室,譯.北京:機械工業(yè)出版社,1998.
c++相關(guān)文章:c++教程
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
評論