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