RS485基本概念及可靠性設計
以下是幾個(gè)485通信的實(shí)用電路:
本文引用地址:http://dyxdggzs.com/article/201609/310408.htm



以下是485接口的幾個(gè)典型問(wèn)題:
1 為何A端加上拉,B端加下拉?
由于RS-485芯片的特性,接收器的檢測靈敏度為± 200mV,即差分輸入端VA-VB ≥+200mV,輸出邏輯1,VA-VB ≤-200mV,輸出邏輯0;而A、B端電位差的絕對值小于200mV時(shí),輸出為不確定。如果在總線(xiàn)上所有發(fā)送器被禁止時(shí),接收器輸出邏輯0,這會(huì )誤認為通信幀的起始引起工作不正常。解決這個(gè)問(wèn)題的辦法是人為地使A端電位高于B兩端電位,這樣RXD的電平在485總線(xiàn)不發(fā)送期間(總線(xiàn)懸浮時(shí))呈現唯一的高電平,單片機就不會(huì )被誤中斷而收到亂字符。通過(guò)在485電路的A、B輸出端加接上拉、下拉電阻(1K歐姆),即可很好地解決這個(gè)問(wèn)題。
2 為何串接20歐姆電阻?
考慮到線(xiàn)路的特殊情況(如某一臺分機的485芯片被擊穿短路),為防止總線(xiàn)中其它分機的通信受到影響,在485信號輸出端串聯(lián)了兩個(gè)20Ω的電阻,使A端和B端與總線(xiàn)之間加以隔離,這樣本機的硬件故障就不會(huì )使整個(gè)總線(xiàn)的通信受到影響。
3 為何A端和B端要串接120歐姆電阻?
在應用系統工程的現場(chǎng)施工中,由于通信載體是雙絞線(xiàn),它的特性阻抗為120Ω左右,所以線(xiàn)路設計時(shí),在RS-485網(wǎng)絡(luò )傳輸線(xiàn)的始端和末端各應接1只120Ω的匹配電阻,以減少線(xiàn)路上傳輸信號的反射。
注:一般情況下不需要增加終端電阻,只有在485通信距離超過(guò)100米的情況下,要在485通訊的開(kāi)始端和結束端增加終端電阻。匹配電阻要消耗較大電流,不適用于功耗限制嚴格的系統。另外一種比較省電的匹配方案是RC 匹配(A端和B端串接一電阻和電容),利用一只電容C 隔斷直流成分,可以節省大部分功率,但電容C的取值是個(gè)難點(diǎn),需要在功耗和匹配質(zhì)量間進(jìn)行折衷。除上述兩種外還有一種采用二極管的匹配方案,這種方案雖未實(shí)現真正的匹配,但它利用二極管的鉗位作用,迅速削弱反射信號達到改善信號質(zhì)量的目的,節能效果顯著(zhù)。

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

12 RS-485與RS-422有何不同?
很多人往往都誤認為RS-422串行接口是RS-485串行接口的全雙工版本,實(shí)際上,它們在電器特性上存在著(zhù)不少差異,共模電壓范圍和接收器輸入電阻不同使得該兩個(gè)標準適用于不同的應用領(lǐng)域。RS-485串行接口的驅動(dòng)器可用于RS-422串行接口的應用中,因為RS-485串行接口滿(mǎn)足所有的RS-422串行接口性能參數,反之則不能成立。對于RS-485串行接口的驅動(dòng)器,共模電壓的輸出范圍是-7V和+12V之間;對于RS-422串行接口的驅動(dòng)器,該項性能指標僅有±7V。RS-422串行接口接收器的最小輸入電阻是4KΩ;而RS-485串行接口接收器的最小輸入電阻則是12KΩ。
13 RS-485有何規格要求?
RS-485標準采用平衡式發(fā)送,差分式接收的數據收發(fā)器來(lái)驅動(dòng)總線(xiàn),支持多點(diǎn)通信,具體規格要求:
· 接收器的輸入電阻RIN≥12kΩ
· 驅動(dòng)器能輸出±7V的共模電壓
· 輸入端的電容≤50pF
· 在節點(diǎn)數為32個(gè),配置了120Ω的終端電阻的情況下,驅動(dòng)器至少還能輸出電壓1.5V(終端電阻的大小與所用雙絞線(xiàn)的參數有關(guān))
· 接收器的輸入靈敏度為200mV(即(V+)-(V-)≥0.2V,表示信號"0";
(V+)-(V-)≤-0.2V,表示信號"1")
· 最大輸入電流:1.0mA/-0.8mA(12Vin/-7Vin);
· 最大總線(xiàn)負載:32個(gè)單位負載(UL);
· 最大傳輸速率:10Mbps;
· 最大電纜長(cháng)度:4000英尺。
14 PC機如何使用485通信?
由于PC機默認的只帶有RS232接口,有兩種方法可以得到PC上位機的RS485電路:(1)通過(guò)RS232/RS485轉換電路將PC機串口RS232信號轉換成RS485信號,對
于情況比較復雜的工業(yè)環(huán)境最好是選用防浪涌帶隔離珊的產(chǎn)品。(2)通過(guò)PCI多串口卡,可以直接選用輸出信號為RS485類(lèi)型的擴展卡。
15 RS-485系統的出現故障該如何分析診斷、處理?
(1)若出現系統完全癱瘓,大多因為某節點(diǎn)芯片的VA、VB對電源擊穿,使用萬(wàn)用表測VA、VB間差模電壓為零,而對地的共模電壓大于3V,此時(shí)可通過(guò)測共模電壓大小來(lái)排查,共模電壓越大說(shuō)明離故障點(diǎn)越近,反之越遠;
(2)總線(xiàn)連續幾個(gè)節點(diǎn)不能正常工作。一般是由其中的一個(gè)節點(diǎn)故障導致的。一個(gè)節點(diǎn)故障會(huì )導致鄰近的2~3個(gè)節點(diǎn)(一般為后續)無(wú)法通信,因此將其逐一與總線(xiàn)脫離,如某節點(diǎn)脫離后總線(xiàn)能恢復正常,說(shuō)明該節點(diǎn)故障;
(3)集中供電的RS-485系統在上電時(shí)常常出現部分節點(diǎn)不正常,但每次又不完全一樣。這是由于對RS-485的收發(fā)控制端TC設計不合理,造成微系統上電時(shí)節點(diǎn)收發(fā)狀態(tài)混亂從而導致總線(xiàn)堵塞。改進(jìn)的方法是將各微系統加裝電源開(kāi)關(guān)然后分別上電;
(4)系統基本正常但偶爾會(huì )出現通信失敗。一般是由于網(wǎng)絡(luò )施工不合理導致系統可靠性處于臨界狀態(tài),最好改變走線(xiàn)或增加中繼模塊。應急方法之一是將出現失敗的節點(diǎn)更換成性能更優(yōu)異的芯片;
(5)因MCU 故障導致TC 端處于長(cháng)發(fā)狀態(tài)而將總線(xiàn)拉死一片。提醒讀者不要忘記對TC 端的檢查。盡管RS-485 規定差模電壓大于200mV 即能正常工作。但實(shí)際測量:一個(gè)運行良好的系統其差模電壓一般在1.2V 左右(因網(wǎng)絡(luò )分布、速率的差異有可能使差模電壓在0.8~1.5V 范圍內)。
評論