RS485基本概念及可靠性設(shè)計
以下是485接口的幾個典型問題:
1 為何A端加上拉,B端加下拉?
由于RS-485芯片的特性,接收器的檢測靈敏度為± 200mV,即差分輸入端VA-VB ≥+200mV,輸出邏輯1,VA-VB ≤-200mV,輸出邏輯0;而A、B端電位差的絕對值小于200mV時,輸出為不確定。如果在總線上所有發(fā)送器被禁止時,接收器輸出邏輯0,這會誤認(rèn)為通信幀的起始引起工作不正常。解決這個問題的辦法是人為地使A端電位高于B兩端電位,這樣RXD的電平在485總線不發(fā)送期間(總線懸浮時)呈現(xiàn)唯一的高電平,單片機就不會被誤中斷而收到亂字符。通過在485電路的A、B輸出端加接上拉、下拉電阻(1K歐姆),即可很好地解決這個問題。
2 為何串接20歐姆電阻?
考慮到線路的特殊情況(如某一臺分機的485芯片被擊穿短路),為防止總線中其它分機的通信受到影響,在485信號輸出端串聯(lián)了兩個20Ω的電阻,使A端和B端與總線之間加以隔離,這樣本機的硬件故障就不會使整個總線的通信受到影響。
3 為何A端和B端要串接120歐姆電阻?
在應(yīng)用系統(tǒng)工程的現(xiàn)場施工中,由于通信載體是雙絞線,它的特性阻抗為120Ω左右,所以線路設(shè)計時,在RS-485網(wǎng)絡(luò)傳輸線的始端和末端各應(yīng)接1只120Ω的匹配電阻,以減少線路上傳輸信號的反射。
注:一般情況下不需要增加終端電阻,只有在485通信距離超過100米的情況下,要在485通訊的開始端和結(jié)束端增加終端電阻。匹配電阻要消耗較大電流,不適用于功耗限制嚴(yán)格的系統(tǒng)。另外一種比較省電的匹配方案是RC 匹配(A端和B端串接一電阻和電容),利用一只電容C 隔斷直流成分,可以節(jié)省大部分功率,但電容C的取值是個難點,需要在功耗和匹配質(zhì)量間進行折衷。除上述兩種外還有一種采用二極管的匹配方案,這種方案雖未實現(xiàn)真正的匹配,但它利用二極管的鉗位作用,迅速削弱反射信號達到改善信號質(zhì)量的目的,節(jié)能效果顯著。
4 總線傳輸端如何保護?
輸出電路的設(shè)計要充分考慮到線路上的各種干擾及線路特性阻抗的匹配。由于工程環(huán)境比較復(fù)雜,現(xiàn)場常有各種形式的干擾源,所以485總線的傳輸端一定要加有保護措施。在電路設(shè)計中采用穩(wěn)壓管(P6KE68)組成的吸收回路,也可以選用能夠抗浪涌的TVS瞬態(tài)雜波抑制器件,或者直接選用能抗雷擊的485芯片(如SN75LBC184/SN65LBC184等)。
5 為何DE控制端要默認(rèn)為0?
在RS-485總線構(gòu)筑的半雙工通信系統(tǒng)中,在整個網(wǎng)絡(luò)中任一時刻只能有一個節(jié)點處于發(fā)送狀態(tài)并向總線發(fā)送數(shù)據(jù),其他所有節(jié)點都必須處于接收狀態(tài)。如果有2個節(jié)點或2個以上節(jié)點同時向總線發(fā)送數(shù)據(jù),將會導(dǎo)致所有發(fā)送方的數(shù)據(jù)發(fā)送失敗。因此,在系統(tǒng)各個節(jié)點的硬件設(shè)計中,應(yīng)首先力求避免因異常情況而引起本節(jié)點向總線發(fā)送數(shù)據(jù)而導(dǎo)致總線數(shù)據(jù)沖突。以MCS51系列的單片機為例,因其在系統(tǒng)復(fù)位時,I/O口都輸出高電平,如果把I/O口直接與RS-485接口芯片的驅(qū)動器使能端DE相連,會在CPU復(fù)位期間使DE為高,從而使本節(jié)點處于發(fā)送狀態(tài)。如果此時總線上有其他節(jié)點正在發(fā)送數(shù)據(jù),則此次數(shù)據(jù)傳輸將被打斷而告失敗,甚至引起整個總線因某一節(jié)點的故障而通信阻塞,繼而影響整個系統(tǒng)的正常運行??紤]到通信的穩(wěn)定性和可靠性,在每個節(jié)點的設(shè)計中應(yīng)將控制RS485總線接口芯片的發(fā)送引腳設(shè)計成DE端的反邏輯,即控制引腳為邏輯“1”時,DE端為“0”;控制引腳為邏輯“0”時,DE端為“1”。
6 什么叫共模干擾和差模干擾?如何消除通訊線上的干擾?
485通信線由兩根雙絞的線組成,它是通過兩根通信線之間的電壓差的方式來傳遞信號,因此稱之為差分電壓傳輸。差模干擾在兩根信號線之間傳輸,屬于對稱性干擾。消除差模干擾的方法是在電路中增加一個偏值電阻,并采用雙絞線;共模干擾是在信號線與地之間傳輸,屬于非對稱性干擾。消除共模干擾的方
法包括:
(1)采用屏蔽雙絞線并有效接地
(2)強電場的地方還要考慮采用鍍鋅管屏蔽
(3)布線時遠離高壓線,更不能將高壓電源線和信號線捆在一起走線
(4)不要和電控鎖共用同一個電源
(5)采用線性穩(wěn)壓電源或高品質(zhì)的開關(guān)電源(紋波干擾小于50mV)
7 485總線應(yīng)采用什么樣的通訊線?
必須采用國際上通行的屏蔽雙絞線。我們推薦用的屏蔽雙絞線的型號為RVSP2*0.5(二芯屏蔽雙絞線,每芯由16股的0.2mm的導(dǎo)線組成)。采用屏蔽雙絞線有助于減少和消除兩根485通信線之間產(chǎn)生的分布電容以及來自于通訊線周圍產(chǎn)生的共模干擾。工程商大都習(xí)慣采用5類網(wǎng)線或超5類網(wǎng)線作為485通信線,這是錯誤的。這是因為:
(1)普通網(wǎng)線沒有屏蔽層,不能防止共模干擾。
(2)網(wǎng)線只有0.2mm平方,線徑太細,會導(dǎo)致傳輸距離降低和可掛接的設(shè)備減
少。
(3)網(wǎng)絡(luò)線為單股的銅線,相比多芯線而言容易斷裂。
RS-485總線在實際工程中總是出現(xiàn)一些接線的問題,注意,在接傳輸線時一定要用同樣的雙絞線或者同樣的電纜,有些人一段使用雙絞線,由于雙絞線長度不夠或者在中間接上一段電話線或者是其他的線,這樣阻抗就不連續(xù),產(chǎn)生很大的反射信號,通信是不能正常進行的。
8 構(gòu)建RS485網(wǎng)絡(luò)需要注意哪些問題?
RS-485支持半雙工或全雙工模式,網(wǎng)絡(luò)拓?fù)?/strong>一般采用終端匹配的總線型結(jié)構(gòu)而不支持環(huán)形或星形網(wǎng)絡(luò),構(gòu)建485網(wǎng)絡(luò)需要注意以下幾點:
(1) 最好采用一條總線將各個節(jié)點串接起來。從總線到每個節(jié)點的引出線長度應(yīng)盡量短,以便使引出線中的反射信號對總線信號的影響最低。有些網(wǎng)絡(luò)連接盡管不正確,在短距離、低速率仍可能正常工作,但隨著通信距離的延長或通信速率的提高,其不良影響會越來越嚴(yán)重,主要原因是信號在各支路末端反射后與原信號疊加,會造成信號質(zhì)量下降。
(2) 應(yīng)注意總線特性阻抗的連續(xù)性,在阻抗不連續(xù)點就會發(fā)生信號的反射。
下列幾種情況易產(chǎn)生這種不連續(xù)性:總線的不同區(qū)段采用了不同電纜,或某一段總線上有過多收發(fā)器緊靠在一起安裝,再者是過長的分支線引出到總線。
(3) 終端負(fù)載電阻問題:在設(shè)備少距離短的情況下不加終端負(fù)載電阻整個網(wǎng)絡(luò)能很好的工作但隨著距離的增加性能將降低。理論上,在每個接收數(shù)據(jù)信號的中點進行采樣時,只要反射信號在開始采樣時衰減到足夠低就可以不考慮匹配。但這在實際上難以掌握.一條經(jīng)驗性的原則可以用來判斷在什么樣的數(shù)據(jù)速率和
電纜長度時需要進行匹配:當(dāng)信號的轉(zhuǎn)換時間(上升或下降時間)超過電信號沿總線單向傳輸所需時間的3倍以上時就可以不加匹配。例如具有限斜率特性的RS-485接口MAX483輸出信號的上升或下降時間最小為250ns,典型雙絞線上的信號傳輸速率約為0.2m/ns(24AWG PVC電纜),那么只要數(shù)據(jù)速率在250kbps以內(nèi)、電纜長度不超過16米,采用MAX483作為RS-485接口時就可以不加終端匹配。
注:終端匹配的方法可參考問題3。
9 RS485網(wǎng)絡(luò)的最大傳輸距離和網(wǎng)絡(luò)最大節(jié)點數(shù)由哪些因素決定?
在使用RS485接口時,對于特定的傳輸線經(jīng),從發(fā)生器到負(fù)載其數(shù)據(jù)信號傳輸所允許的最大電纜長度是數(shù)據(jù)信號速率的函數(shù),這個長度數(shù)據(jù)主要是受信號失真及噪聲等影響所限制。當(dāng)數(shù)據(jù)信號速率降低到90Kbit/S以下時,假定最大允許的信號損失為6dBV時,則電纜長度被限制在1200M。盡管理論上RS485的最長傳輸距離能達到1200米,但在實際應(yīng)用中傳輸?shù)木嚯x要比1200米短,具體能傳輸多遠視周圍環(huán)境而定。在傳輸過程中可以采用增加中繼器或者集線器的方法對信號進行放大,最多可以加八個中繼,也就是說理論上RS485的最大傳輸距離可以達到9.6公理。利用485中繼器或485集線器,可以將一個大型485網(wǎng)絡(luò)分隔成若干個網(wǎng)段。485中繼器或485集線器就如同485網(wǎng)段之間連接的"橋梁"。當(dāng)然每個網(wǎng)段還是遵循上面485集線器是485中繼器概念的拓廣,它不僅解決了多分叉問題,同時也解決了網(wǎng)段之間的485規(guī)范,即1.2公里長度,32個節(jié)點數(shù)間相互隔離的問題,即某
一個網(wǎng)段出現(xiàn)問題(例如短路等),不至于影響到其它網(wǎng)段,從而極大地提高了大型網(wǎng)絡(luò)的安全性和穩(wěn)定性。如果真需要長距離傳輸,可以采用光纖為傳播介質(zhì),收發(fā)兩端各加一個光電轉(zhuǎn)換器,多模光纖的傳輸距離是5~10公里,而采用單模光纖可達50公里的傳播距離。
網(wǎng)絡(luò)節(jié)點數(shù)與所選RS-485芯片驅(qū)動能力和接收器的輸入阻抗有關(guān),如75LBC184標(biāo)稱最大值為64點,SP485R標(biāo)稱最大值為400點。實際使用時,因線纜長度、線徑、網(wǎng)絡(luò)分布、傳輸速率不同,實際節(jié)點數(shù)均達不到理論值。例如75LBC184運用在500m分布的RS-485網(wǎng)絡(luò)上節(jié)點數(shù)超過50或速率大于9.6kb/s時,工作可靠
性明顯下降。通常推薦節(jié)點數(shù)按RS-485芯片最大值的70%選取,傳輸速率在1200~9600b/s之間選取。通信距離1km以內(nèi),從通信效率、節(jié)點數(shù)、通信距離等綜合考慮選用4800b/s最佳。通信距離1km以上時,應(yīng)考慮通過增加中繼模塊或降低速率的方法提高數(shù)據(jù)傳輸可靠性。
10 485通信的軟件設(shè)計要注意哪些?
軟件設(shè)計對系統(tǒng)聯(lián)網(wǎng)的可靠性有很大影響。由于485總線是異步半雙工的通信總線,在某一個時刻總線只可能呈現(xiàn)一種狀態(tài),所以這種方式一般適用于主機對分機的查詢方式通信,總線上必然有一臺始終處于主機地位的設(shè)備在巡檢其他分機,這就需要制定一套合理的通信協(xié)議來協(xié)調(diào)總線的分時共用。可以采用數(shù)據(jù)包通信方式,通信數(shù)據(jù)是成幀、成包發(fā)送的,每包數(shù)據(jù)都由引導(dǎo)碼、地址碼、長度碼、命令碼、內(nèi)容和校驗碼等部分組成。其中: 引導(dǎo)碼是用于同步每一包數(shù)據(jù)的引導(dǎo)頭(如0x7E);地址碼是分機的本機地址號;長度碼是這一包數(shù)據(jù)的總長度;命令碼是主機對分機(或分機應(yīng)答主機)的控制命令;“內(nèi)容”是這一包數(shù)據(jù)里的各種信息;校驗碼是這一包數(shù)據(jù)的校驗標(biāo)志,可以采用奇偶校驗、“和”校驗
以及CRC校驗等不同方式。此外,為了可靠的工作,在485總線狀態(tài)切換時需要做適當(dāng)延時,再進行數(shù)據(jù)的收發(fā)。具體的做法是在數(shù)據(jù)發(fā)送狀態(tài)下,先將控制端DE置“1”,延時1ms左右的時間,再發(fā)送有效的數(shù)據(jù),一包數(shù)據(jù)發(fā)送結(jié)束后再延時1ms后,將控制端置“0”。這樣的處理會使總線在狀態(tài)切換時,有一個穩(wěn)定的工作過程。11 485接口除了兩根通信線,為什么還要接地?僅僅用一對雙絞線將各個接口的A、B端連接起來,而不對RS-485通信鏈路的信號地接地,在某些情況下也可以工作,但給系統(tǒng)埋下了隱患。(1)共模干擾問題: RS-485接口采用差分方式傳輸信號并不需要對于某個參照點來檢測信號系統(tǒng),只需檢測兩線之間的電位差就可以了。但應(yīng)該注意的是收發(fā)器只有在共模電
壓不超出一定范圍(-7V至+12V)的條件下才能正常工作。當(dāng)共模電壓超出此范圍,就會影響通信的可靠直至損壞接口。如下圖所示,當(dāng)發(fā)送器A向接收器B發(fā)送數(shù)據(jù)
時,發(fā)送器A的輸出共模電壓為VOS,由于兩個系統(tǒng)具有各自獨立的接地系統(tǒng)存在著地電位差VGPD,那么接收器輸入端的共模電壓就會達到VCM=VOS+VGPD。RS-485
標(biāo)準(zhǔn)規(guī)定VOS≤3V,但VGPD可能會有很大幅度(十幾伏甚至數(shù)十伏),并可能伴有強干擾信號致使接收器共模輸入VCM超出正常圍,在信號線上產(chǎn)生干擾電流輕則影響正常通信,重則損壞設(shè)備。(2)EMI問題:發(fā)送驅(qū)動器輸出信號中的共模部分需要一個返回通路,如沒有一個低阻的返回通道(信號地),就會以輻射的形式返回源端,整個總線就會像一個巨大的天線向外輻射電磁波。
12 RS-485與RS-422有何不同?
很多人往往都誤認(rèn)為RS-422串行接口是RS-485串行接口的全雙工版本,實際上,它們在電器特性上存在著不少差異,共模電壓范圍和接收器輸入電阻不同使得該兩個標(biāo)準(zhǔn)適用于不同的應(yīng)用領(lǐng)域。RS-485串行接口的驅(qū)動器可用于RS-422串行接口的應(yīng)用中,因為RS-485串行接口滿足所有的RS-422串行接口性能參數(shù),反之則不能成立。對于RS-485串行接口的驅(qū)動器,共模電壓的輸出范圍是-7V和+12V之間;對于RS-422串行接口的驅(qū)動器,該項性能指標(biāo)僅有±7V。RS-422串行接口接收器的最小輸入電阻是4KΩ;而RS-485串行接口接收器的最小輸入電阻則是12KΩ。
13 RS-485有何規(guī)格要求?
RS-485標(biāo)準(zhǔn)采用平衡式發(fā)送,差分式接收的數(shù)據(jù)收發(fā)器來驅(qū)動總線,支持多點通信,具體規(guī)格要求:
· 接收器的輸入電阻RIN≥12kΩ
· 驅(qū)動器能輸出±7V的共模電壓
· 輸入端的電容≤50pF
· 在節(jié)點數(shù)為32個,配置了120Ω的終端電阻的情況下,驅(qū)動器至少還能輸出電壓1.5V(終端電阻的大小與所用雙絞線的參數(shù)有關(guān))
· 接收器的輸入靈敏度為200mV(即(V+)-(V-)≥0.2V,表示信號"0";
(V+)-(V-)≤-0.2V,表示信號"1")
· 最大輸入電流:1.0mA/-0.8mA(12Vin/-7Vin);
· 最大總線負(fù)載:32個單位負(fù)載(UL);
· 最大傳輸速率:10Mbps;
· 最大電纜長度:4000英尺。
14 PC機如何使用485通信?
由于PC機默認(rèn)的只帶有RS232接口,有兩種方法可以得到PC上位機的RS485電路:(1)通過RS232/RS485轉(zhuǎn)換電路將PC機串口RS232信號轉(zhuǎn)換成RS485信號,對
于情況比較復(fù)雜的工業(yè)環(huán)境最好是選用防浪涌帶隔離珊的產(chǎn)品。(2)通過PCI多串口卡,可以直接選用輸出信號為RS485類型的擴展卡。
15 RS-485系統(tǒng)的出現(xiàn)故障該如何分析診斷、處理?
(1)若出現(xiàn)系統(tǒng)完全癱瘓,大多因為某節(jié)點芯片的VA、VB對電源擊穿,使用萬用表測VA、VB間差模電壓為零,而對地的共模電壓大于3V,此時可通過測共模電壓大小來排查,共模電壓越大說明離故障點越近,反之越遠;
(2)總線連續(xù)幾個節(jié)點不能正常工作。一般是由其中的一個節(jié)點故障導(dǎo)致的。一個節(jié)點故障會導(dǎo)致鄰近的2~3個節(jié)點(一般為后續(xù))無法通信,因此將其逐一與總線脫離,如某節(jié)點脫離后總線能恢復(fù)正常,說明該節(jié)點故障;
(3)集中供電的RS-485系統(tǒng)在上電時常常出現(xiàn)部分節(jié)點不正常,但每次又不完全一樣。這是由于對RS-485的收發(fā)控制端TC設(shè)計不合理,造成微系統(tǒng)上電時節(jié)點收發(fā)狀態(tài)混亂從而導(dǎo)致總線堵塞。改進的方法是將各微系統(tǒng)加裝電源開關(guān)然后分別上電;
(4)系統(tǒng)基本正常但偶爾會出現(xiàn)通信失敗。一般是由于網(wǎng)絡(luò)施工不合理導(dǎo)致系統(tǒng)可靠性處于臨界狀態(tài),最好改變走線或增加中繼模塊。應(yīng)急方法之一是將出現(xiàn)失敗的節(jié)點更換成性能更優(yōu)異的芯片;
(5)因MCU 故障導(dǎo)致TC 端處于長發(fā)狀態(tài)而將總線拉死一片。提醒讀者不要忘記對TC 端的檢查。盡管RS-485 規(guī)定差模電壓大于200mV 即能正常工作。但實際測量:一個運行良好的系統(tǒng)其差模電壓一般在1.2V 左右(因網(wǎng)絡(luò)分布、速率的差異有可能使差模電壓在0.8~1.5V 范圍內(nèi))。
評論