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