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