高可靠性隔離型RS422接口的設(shè)計方案
1 引言
現(xiàn)代工業(yè)測控系統(tǒng)中,系統(tǒng)之間以及系統(tǒng)內(nèi)部經(jīng)常需要進(jìn)行數(shù)據(jù)通信。通信分無線和有 線兩種方式,由于無線通信的可靠性不及有線通信,因此在工業(yè)環(huán)境中一般選用有線通信。 對于有線通信既可以采用并行數(shù)據(jù)總線方式進(jìn)行,也可以采用串行數(shù)據(jù)總線方式來進(jìn)行,不 同的總線適合不同的應(yīng)用環(huán)境。一般我們在設(shè)計接口方案的時候,總是在滿足系統(tǒng)需求的前 提下選擇成熟穩(wěn)定可靠且易于實現(xiàn)接口方案。
在我們開發(fā)的分布式監(jiān)測系統(tǒng)中,傳感器節(jié)點需要盡可能將信號無失真穩(wěn)定可靠得傳 輸?shù)浇尤牍?jié)點。從通信的可靠性考慮我們放棄了布點靈活方便的無線通信方式,選擇了有線 通信??紤]到實際的應(yīng)用情況,傳感器需要分布在監(jiān)測范圍的各個角落,各個傳感器與接入 節(jié)點直接的通信距離不一,從幾米到上百米均有可能。如果傳感器和接入節(jié)點直接選用模擬 信號直接傳輸?shù)姆绞剑瑢τ谀切﹤鬏斁嚯x遠(yuǎn)的傳感器節(jié)點,其信號衰減會很嚴(yán)重,信噪比會 降低很多,同時傳輸過程中也會引入干擾,因此傳感器節(jié)點需要將采集到的信號數(shù)字化,然 后通過數(shù)字接口將信號發(fā)送出去。由于數(shù)字信號抗干擾性強(qiáng),可以無失真的傳輸,因此信號 失真只存在傳感器對其數(shù)字化的過程中。有線數(shù)字通信的方式比較多,如果采用并行數(shù)據(jù)總 線,那么傳感器節(jié)點和接入節(jié)點之間的連線數(shù)量會較串行總線大大增加,會給布點帶來不便 和增加成本,因此在工程上長距離通信時一般都采用串行通信。由于分布式監(jiān)測系統(tǒng)中傳感 器節(jié)點和接入節(jié)點之間的通信對傳輸距離有一定要求,對可靠性要求高,但對通信速率要求 不高,最后我們選用了實現(xiàn)簡單、抗干擾性強(qiáng)、通信距離遠(yuǎn)的RS422接口。雖然RS422采用的 是差分傳輸方式,抗干擾能力強(qiáng),但如果只是簡單的采用一般的設(shè)計方案,在溫濕度及電磁 環(huán)境十分惡劣的工業(yè)環(huán)境下仍會出現(xiàn)接口故障甚至損壞,因此有必要從軟硬件上面引入更多 的抗干擾、保護(hù)、偵錯等措施來提高接口的可靠性。
2 RS422 標(biāo)準(zhǔn)及分布式監(jiān)測系統(tǒng)介紹
RS422是一種在工程中廣泛使用的接口標(biāo)準(zhǔn),它采用差分傳輸方式,也稱為“平衡傳輸”,標(biāo)準(zhǔn)全稱是“平衡電壓數(shù)字接口電路的電氣特性”。可見RS422定義的是接口電路的電氣特 性,而對數(shù)據(jù)格式?jīng)]有做定義。RS422是全雙工通信,通信的雙方均含有一個發(fā)送驅(qū)動器和 接收驅(qū)動器。其中接收驅(qū)動器的兩個平衡線連接端點定義為A和B,發(fā)送驅(qū)動器的兩個平衡線 連接端點定義為Y和Z,一般使用平衡雙絞線將一端的Y和A、Z和B連接起來。通常情況下,發(fā) 送驅(qū)動器端Y、Z之間的正電平在+2~+6V,代表正邏輯,負(fù)電平在-6~-2V,代表負(fù)邏輯。在 接收端,當(dāng)A、B之間有大于+200mV 的電平時,輸出正邏輯電平,小于-200mV 時,輸出負(fù)邏 輯電平。RS422最大傳輸距離為4000英尺(約1219米),最大傳輸速率為10Mb/s。其中平衡雙 絞線的長度與傳輸速率成反比,在100Kb/s速率下,才能達(dá)到最大傳輸距離。只有在很短的 距離下才能獲得最高速率傳輸。一般100米長的雙絞線能獲得的最大傳輸速率為1Mb/s。
本文中所設(shè)計的RS422接口方案主要用于工控環(huán)境中的分布式監(jiān)測系統(tǒng),此系統(tǒng)的結(jié)構(gòu) 示意圖如圖1所示。該系統(tǒng)主要可分為四個層次結(jié)構(gòu):服務(wù)器、交換機(jī)、接入節(jié)點、傳感器 節(jié)點。其中傳感器節(jié)點負(fù)責(zé)采集信號,首先對信號進(jìn)行放大和抗混疊濾波,然后通過A/D芯 片將模擬信號轉(zhuǎn)換為數(shù)字信號,最后通過RS422接口將采集到的數(shù)據(jù)傳送給接入節(jié)點;接入 節(jié)點一方面負(fù)責(zé)接收來自服務(wù)器的命令,對各個傳感器節(jié)點進(jìn)行管理,另一方面將來自于近 端的各個傳感器節(jié)點的有效數(shù)據(jù)通過以太網(wǎng)接口發(fā)送給遠(yuǎn)端的服務(wù)器;交換機(jī)主要作用是將 服務(wù)器和各個接入節(jié)點通過以太網(wǎng)連接起來;服務(wù)器則負(fù)責(zé)數(shù)據(jù)的接收、分析、存儲并顯示 結(jié)果以及對整個系統(tǒng)的管理。
3 RS422 接口硬件電路設(shè)計
為保證接口的可靠性,電路設(shè)計中要考慮到芯片的選擇、接地、阻抗匹配、電氣保護(hù)等 問題。市面上可供選擇的RS422接口芯片種類很多,為了防止瞬態(tài)高壓對接口的破壞以及有 效隔離各個系統(tǒng)模塊直接的相互干擾,本方案選用的是美信公司的隔離型RS422接口芯片 MAX1490 AEPG。采用隔離的設(shè)計方案可以將瞬態(tài)高壓轉(zhuǎn)移到隔離接口中的電隔離層上,由于 隔離層的高絕緣電阻不會產(chǎn)生損害性的浪涌電流,可以有效防止浪涌及靜電對接口的損害。
MAX1490A轉(zhuǎn)換速率可達(dá)5.5Mbps,隔離電壓可以到2500V,可以承受高電壓持續(xù)時間較長的瞬 態(tài)干擾。同時MAX1490A是將高頻變壓器、光耦、MAX490等元件集成到一個IC里面的單芯片, 電路實現(xiàn)起來也比較容易。MAX1490 AEPG是MAX1490A系列中的一款工業(yè)級芯片,使用溫度范 圍較商用級更廣,為-40°C 到 +85°C。使用MAX1490AEPG設(shè)計的電路原理圖如圖2:
圖2 MAX1490A 硬件電路圖
此原理圖參考了MAX1490A的數(shù)據(jù)手冊的典型應(yīng)用電路圖。其中接口電路采用5V供電,C1、 C2是去耦電容,R3、R5、R6、R8取數(shù)據(jù)手冊建議參考值。R1、R2為匹配電阻,可以降低信號 反射。R1、R2的取值取決于采用的傳輸數(shù)據(jù)線的阻抗,通常數(shù)雙絞線特性阻抗大約在100 至 120 之間,所以R1、R2通常取120歐姆。實際應(yīng)用中,匹配電阻并不一定需要。由于接收器 是在每個數(shù)據(jù)位的中點采樣數(shù)據(jù)的,只要反射信號在開始采樣時衰減到足夠低就可以不考慮 匹配。具體而言R1、R2是否需要取決于數(shù)據(jù)傳輸速率、電纜長度及信號轉(zhuǎn)換速率,有一條經(jīng) 驗性的準(zhǔn)則可用來判斷在什么樣的數(shù)據(jù)速率和電纜長度時需要進(jìn)行匹配:當(dāng)信號的上升或下 降時間超過電信號沿總線單向傳輸所需時間的3倍以上時就可以不加匹配。例如對MAX1490A 而言,輸出信號的上升或下降時間典型值為15ns,通常雙絞線上的信號傳輸速率約為 0.2m/ns, 當(dāng)電纜長度不超過1米的時候可以不用焊接R1、R2。RS422接口的接地是一個非 常重要的問題,接地處理不當(dāng)經(jīng)常會導(dǎo)致不能穩(wěn)定工作甚至危及系統(tǒng)安全,沒有一個合理的 接地系統(tǒng)可能會使系統(tǒng)的可靠性大打折扣,尤其是在工作環(huán)境比較惡劣的情況下對于接地的 要求更為嚴(yán)格。很多設(shè)計者認(rèn)為RS422采用差分傳輸,通信鏈路可以不需要信號地,從而只 是簡單地用一對雙絞線將對應(yīng)數(shù)據(jù)端口連接起來。這種接線方法在一般情況下也可以工作, 但給系統(tǒng)埋下了極大的隱患,主要會導(dǎo)致EMC和共模干擾導(dǎo)致數(shù)據(jù)出錯兩個問題。RS422 接 口采用差分方式傳輸信號,只需檢測兩線之間的電位差就可以判斷數(shù)據(jù)值,但前提是收發(fā)驅(qū) 動器只有在共模電壓不超出一定范圍(-7V 至+12V )的條件下才能正常工作,當(dāng)共模電壓 超出此范圍就會導(dǎo)致接收驅(qū)動器接收數(shù)據(jù)出錯,甚至有可能損壞接口。另外驅(qū)動器輸出信號 中的共模部分需要一個返回通路,如果沒有一個低阻的返回通道(信號地),就會以輻射的 形式返回源端,整個總線就會像一個巨大的天線向外輻射電磁波,同樣傳輸線也很容易受到 外界的電磁干擾。因此圖2中的RS422接口的隔離地線需要通過傳輸線纜的屏蔽層連接起來, 另外在設(shè)計PCB布線和覆銅的時候需要注意將信號地和隔離地之間保持一定的距離,最好在 芯片下面的PCB導(dǎo)一個長方形的槽,這樣可以有效防止爬電,以保證MAX1490A的2500V隔離效 果。穩(wěn)壓管D1~D8的作用是把數(shù)據(jù)傳輸線的電壓牢牢限制在-7V至+12V,以有效保護(hù)RS422 接口。增加D9和D10的目的主要是為了防止浪涌電壓損壞接口。
4 通訊接口的軟件實現(xiàn)
RS422標(biāo)準(zhǔn)只對接口的電氣特性做出規(guī)定而不涉及協(xié)議,因此我們可以定義自己的高層 通信協(xié)議。在本設(shè)計方案中,傳感器節(jié)點和接入節(jié)點在底層以字節(jié)為單位通信,采用ASCII 協(xié)議,數(shù)據(jù)長度為11位:1位起始位+8位數(shù)據(jù)+1位偶校驗+1位停止位。在上層協(xié)議中采用數(shù) 據(jù)包為單位通信。通信協(xié)議中使用了三種通信數(shù)據(jù)包:數(shù)據(jù)包、命令包和應(yīng)答包。其中數(shù)據(jù) 包定義為:長度為100個字節(jié),前面98個字節(jié)為數(shù)據(jù)字節(jié),后面2個字節(jié)為校驗字節(jié),校驗字 節(jié)為前98個字節(jié)以每2個為一組進(jìn)行異或所得值;命令包定義為:長度為10個字節(jié),第1個字 節(jié)固定為0X02,代表這個數(shù)據(jù)包為命令包,第2個字節(jié)為命令類型標(biāo)志字節(jié),用來表明命令 的類型,如請求發(fā)送數(shù)據(jù)命令、請求發(fā)送狀態(tài)命令等。第2到第7字節(jié)為保留字節(jié),暫時沒有 定義,固定為0,可以留待以后擴(kuò)充功能。最后兩個字節(jié)為校驗字節(jié),校驗字節(jié)為前8個字節(jié) 以每2個為一組進(jìn)行異或所得值;應(yīng)答包定義為:長度為10個字節(jié),第1個字節(jié)固定為0X01, 表明這個數(shù)據(jù)包為應(yīng)答包,第2字節(jié)為接收是否正常標(biāo)志字節(jié),為0X01代表正常,0X00代表 不正常。第3字節(jié)為接入節(jié)點和服務(wù)器通信故障是否錯誤標(biāo)志字節(jié),值0X01代表正常,0X00 代表故障。第3到第7字節(jié)為保留字節(jié),暫時沒有定義,固定為0,留待以后擴(kuò)充功能。最后 兩個字節(jié)為校驗字節(jié),校驗字節(jié)為前8個字節(jié)以每2個為一組進(jìn)行異或所得值。每種數(shù)據(jù)包均 引入字節(jié)偶校驗和幀校驗,這樣可以有效得檢測到通信中的數(shù)據(jù)錯誤。
本系統(tǒng)中,傳感器節(jié)點和接入節(jié)點可雙向通信,考慮到實際情況下主要是傳感器節(jié)點通 過RS422接口向接入節(jié)點發(fā)送大量的數(shù)據(jù),而接入節(jié)點主要向傳感器節(jié)點發(fā)送少量的狀態(tài)和 命令,協(xié)議中設(shè)計了兩種通信模式。
通信模式A:接入節(jié)點主動發(fā)起通信,接入節(jié)點首先主動發(fā)送一個請求傳感器節(jié)點發(fā)送 數(shù)據(jù)的命令包給傳感器節(jié)點,傳感器節(jié)點收到此命令包后發(fā)送一個數(shù)據(jù)包給接入節(jié)點,完成 一次通信,接入節(jié)點負(fù)責(zé)無應(yīng)答錯誤和數(shù)據(jù)錯誤的檢查。此模式下接入節(jié)點端程序流程圖如 圖3左圖所示,傳感器節(jié)點端接收流程圖如圖3右圖所示。
圖3:模式A接入節(jié)點端程序流程圖(左)與傳感器節(jié)點端流程圖(右)
通信模式B:傳感器節(jié)點主動發(fā)起通信,傳感器節(jié)點首先發(fā)出數(shù)據(jù)包給接入節(jié)點,接入 節(jié)點收到數(shù)據(jù)包后發(fā)送一個應(yīng)答包,傳感器節(jié)點收到應(yīng)答包后完成一次通信,無應(yīng)答錯誤和 數(shù)據(jù)錯誤的檢查由傳感器節(jié)點負(fù)責(zé)。此模式下傳感器節(jié)點端程序流程圖如圖4左圖所示,接 入端接收流程圖如圖4右圖所示。
圖4:模式B接入節(jié)點端程序流程圖(左)與傳感器節(jié)點端流程圖(右)
正常情況下,接入節(jié)點與傳感器節(jié)點均處于接收狀態(tài)。當(dāng)接入節(jié)點主動發(fā)起通信時進(jìn)入 通信模式A,當(dāng)傳感器節(jié)點主動發(fā)起通信時進(jìn)入通信模式B。
實際做穩(wěn)定性測試時,采用一臺普通PC機(jī)作為上位機(jī)服務(wù)器,傳感器節(jié)點循環(huán)發(fā)送三角 波數(shù)據(jù),服務(wù)器顯示三角波波形,傳感器節(jié)點和服務(wù)器均記錄傳輸?shù)臄?shù)據(jù)包數(shù)量,系統(tǒng)連續(xù) 運(yùn)行8小時,實驗結(jié)果顯示服務(wù)器收到的數(shù)據(jù)包數(shù)目和傳感器節(jié)點發(fā)送的數(shù)據(jù)包數(shù)目相同, 數(shù)據(jù)傳輸丟失率為0.0%。另外在整個系統(tǒng)做高溫、低溫、濕熱等環(huán)境試驗和靜電放電、浪 涌沖擊、電場輻射抗擾度、工頻磁場抗擾度等電磁兼容可靠性試驗中,RS422接口也表現(xiàn)十 分可靠,沒有出現(xiàn)差錯。
5 總結(jié)
本設(shè)計方案在芯片選型上選用了美信公司的隔離型RS422芯片MAX1490AEPG,可以有效從 電氣上隔離系統(tǒng)各個子模塊的相互干擾,電路設(shè)計上考慮了接口兩側(cè)接地的隔離距離以防止 爬電,兩個對接的RS422接口共地可以很好的抑制傳輸線的共模電壓干擾以及取得良好的EMC 性能,傳輸線終端的匹配電阻可以減少信號的反射,增加穩(wěn)壓和瞬態(tài)抑制二極管可以解決防 浪涌、靜電放電等問題;在通信協(xié)議設(shè)計中引入的字節(jié)的偶校驗、數(shù)據(jù)幀的校驗可以有效得 檢測數(shù)據(jù)出錯,無應(yīng)答計數(shù)器和數(shù)據(jù)錯誤計數(shù)器的引入可以偵測到通訊線路故障和批量數(shù)據(jù) 出差以及避免軟件死鎖,采取以上措施使RS422接口的通信可靠性得到極大的保障。該設(shè)計 方案可以廣泛用于對可靠性有一定要求的工控、醫(yī)療、軍事場合。
本文作者創(chuàng)新點:本文提出的接口設(shè)計方案在硬件上對普通的RS422接口電路進(jìn)行改善,在 軟件上亦加入了多種檢錯措施。從軟硬件兩方面整體來提高RS422接口的可靠性,使其在惡 劣的工控環(huán)境更加穩(wěn)定可靠。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論