(1)基本概念
RS485總線傳輸協(xié)議是一種串行總線通信協(xié)議標(biāo)準(zhǔn),RS485總線采用平衡發(fā)送,差分接收的結(jié)構(gòu)設(shè)計(jì),因此具有抑制共模干擾的能力。RS485總線的數(shù)據(jù)傳輸速率最高可達(dá) ,最遠(yuǎn)傳輸距離可達(dá)1000米左右。RS485不是點(diǎn)對(duì)點(diǎn)式的總線結(jié)構(gòu),而是分布式架構(gòu),其總線能夠連接多達(dá)128個(gè)收發(fā)器。
RS-485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。RS-485采用半雙工工作方式,任何時(shí)候只能有一點(diǎn)處于發(fā)送狀態(tài),因此,發(fā)送電路須由使能信號(hào)加以控制。RS-485用于多點(diǎn)互連時(shí)非常方便,可以省掉許多信號(hào)線。應(yīng)用RS-485可以聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng),其允許最多并聯(lián)32臺(tái)驅(qū)動(dòng)器和32臺(tái)接收器。在RS232或RS485設(shè)備聯(lián)成的設(shè)備網(wǎng)中,如果設(shè)備數(shù)量超過(guò)2臺(tái),就必須使用RS485做通訊介質(zhì),RS485網(wǎng)的設(shè)備間要想互通信息只有通過(guò)“主(Master)”設(shè)備中轉(zhuǎn)才能實(shí)現(xiàn),這個(gè)主設(shè)備通常是PC,而這種設(shè)備網(wǎng)中只允許存在一個(gè)主設(shè)備,其余全部是從(Slave)設(shè)備。
RS-485 ( EIA-485 標(biāo)準(zhǔn))是RS-422的改進(jìn),因?yàn)樗黾恿嗽O(shè)備的個(gè)數(shù),從10個(gè)增加到32個(gè),同時(shí)定義了在最大設(shè)備個(gè)數(shù)情況下的電氣特性,以保證足夠的信號(hào)電壓。有了多個(gè)設(shè)備的能力,你可以使用一個(gè)單個(gè)RS-485口建立設(shè)備網(wǎng)絡(luò)。出色抗噪和多設(shè)備能力,在工業(yè)應(yīng)用中建立連向PC機(jī)的分布式設(shè)備網(wǎng)絡(luò)、其他 數(shù)據(jù)收集 控制器、HMI或者其他操作時(shí),串行連接會(huì)選擇RS-485。RS-485是RS-422的超集,因此所有的RS-422設(shè)備可以被RS-485控制。RS-485可以用超過(guò)4000英尺的線進(jìn)行串行通行。
為改進(jìn)RS232通信距離短、速率低的缺點(diǎn),EIA在基于RS422的基礎(chǔ)上制定了RS485接口標(biāo)準(zhǔn)。RS485是平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力,它的最大傳輸距離為1200米,實(shí)際可達(dá)3000米,傳輸速率最高可達(dá)10Mbit/s。所以,一般在要求通信距離為幾十米到上千米時(shí),會(huì)廣泛采用RS-485串行通信。
RS-485采用半雙工工作方式,允許在簡(jiǎn)單的一對(duì)屏蔽雙絞線上進(jìn)行多點(diǎn)、雙向通信,不過(guò)任何時(shí)候只能有一點(diǎn)處于發(fā)送狀態(tài),因此,發(fā)送電路須由使能信號(hào)加以控制。
與RS232不同的是,RS485的工作方式是差分工作方式,所謂差分工作方式,是指在一堆雙絞線中,一條定義為A,一條定義為B。RS485采用差分信號(hào)負(fù)邏輯,+2V~+6V表示“0”,- 6V~- 2V表示“1”。RS485有兩線制和四線制兩種接線,四線制是全雙工通訊方式,兩線制是半雙工通訊方式。
RS485和RS232一樣都是基于串口的通訊接口,數(shù)據(jù)收發(fā)的操作是一致的,但是它們?cè)趯?shí)際應(yīng)用中通訊模式卻有著很大的區(qū)別,RS232接口為全雙工數(shù)據(jù)通訊模式,而RS485接口為半雙工數(shù)據(jù)通訊模式,數(shù)據(jù)的收發(fā)不能同時(shí)進(jìn)行,為了保證數(shù)據(jù)收發(fā)的不沖突,在RS485中還有一個(gè)使能端,使能端是用于控制發(fā)送驅(qū)動(dòng)器與傳輸線的切斷與連接,可以認(rèn)為是一個(gè)開(kāi)關(guān)。當(dāng)開(kāi)關(guān)即使能端信號(hào)為1時(shí),信號(hào)就輸出,當(dāng)使能端信號(hào)是0時(shí),信號(hào)就無(wú)法輸出。相應(yīng)也要求軟件上必須將收發(fā)的過(guò)程嚴(yán)格地分開(kāi)。
RS-485與RS-422的不同還在于其共模輸出電壓是不同的,RS-485是-7V至+12V之間,而RS-422在-7V至+7V之間;RS-485滿足所有RS-422的規(guī)范,所以RS-485的驅(qū)動(dòng)器可以用在RS-422網(wǎng)絡(luò)中應(yīng)用。RS-485與RS-422一樣,其最大傳輸距離約為1219米,最大傳輸速率為10Mbps。平衡雙絞線的長(zhǎng)度與傳輸速率成反比,在100Kbps速率以下,才可能使用規(guī)定最長(zhǎng)的電纜長(zhǎng)度。只有在很短的距離下才能獲得最高速率傳輸。一般100米長(zhǎng)雙絞線最大傳輸速率僅為1Mbps。
RS485接口組成的半雙工網(wǎng)絡(luò),一般是兩線制(以前有四線制接法,只能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信方式,現(xiàn)很少采用),多采用屏蔽雙絞線傳輸。這種接線方式為總線式拓?fù)浣Y(jié)構(gòu)在同一總線上最多可以掛接32個(gè)結(jié)點(diǎn)。在RS485通信網(wǎng)絡(luò)中一般采用的是主從通信方式,即一個(gè)主機(jī)帶多個(gè)從機(jī)。很多情況下,連接RS-485通信鏈路時(shí)只是簡(jiǎn)單地用一對(duì)雙絞線將各個(gè)接口的“A”、“B”端連接起來(lái)。RS485接口連接器采用DB-9的9芯插頭座,與智能終端RS485接口采用DB-9(孔),與鍵盤連接的鍵盤接口RS485采用DB-9(針)
(2) RS-485引腳定義
RS-485的兩線制引腳定義:
序號(hào) | 名稱 | 作用 | 備注 |
---|---|---|---|
1 | Data-/B/485- | 發(fā)送正 | 必連 |
2 | Data/B/485+ | 接收正 | 必連 |
5 | GND | 地線 | 不連 |
9 | +9V | 電源 | 不連 |
RS-485的四線制引腳定義:
序號(hào) | 名稱 | 作用 | 備注 |
---|---|---|---|
1 | TDA-/Y | 發(fā)送A | TXD+/A,必連 |
2 | TDB+/Z | 發(fā)送B | TXD-/B,必連 |
3 | RDA-/A | 接收A | RXD-,必連 |
4 | RDB+/B | 接收B | RXD+,必連 |
5 | GND | 地線 | 不連 |
?
RS485標(biāo)準(zhǔn)物理接口也是9個(gè)引腳的,對(duì)于引腳定義有不同的標(biāo)識(shí):
英式標(biāo)識(shí)為 TDA(-) 、TDB(+) 、RDA(-) 、RDB(+) 、GND
美式標(biāo)識(shí)為 Y 、Z 、 A 、 B 、 GND
中式標(biāo)識(shí)為 TXD(+)/A 、TXD(-)/B 、RXD(-) 、RXD(+)、GND
RS485兩線一般定義為:“A、B"或"Date+、Date-” ,也就是我們即常說(shuō)的485+、485- 。
具體還要根據(jù)廠家的使用信號(hào)針腳而定,有的RS485也可能使用了RTS或DTR等針腳。其中支持RS485接口的芯片(MAX481,MAX483,MAX485,MAX487,MAX1487等)。
? ? (3)通信
? 在 RS485 通信網(wǎng)絡(luò)中,通常會(huì)使用 485 收發(fā)器來(lái)轉(zhuǎn)換 TTL 電平和 RS485 電平。各路節(jié)點(diǎn)連接到 485 收發(fā)器上,而收發(fā)器通過(guò)差分線連接到網(wǎng)絡(luò)總線,串口控制器與收發(fā)器之間一般使用 TTL 信號(hào)傳輸,收發(fā)器與總線則使用差分信號(hào)來(lái)傳輸。發(fā)送數(shù)據(jù)時(shí),串口控制器的 TX 信號(hào)經(jīng)過(guò)收發(fā)器轉(zhuǎn)換成差分信號(hào)傳輸?shù)娇偩€上,而接收數(shù)據(jù)時(shí),收發(fā)器把總線上的差分信號(hào)轉(zhuǎn)化成 TTL 信號(hào)通過(guò) RX 引腳傳輸?shù)酱诳刂破髦小MǔT谶@些節(jié)點(diǎn)中只能有一個(gè)主機(jī),剩下的全為從機(jī)。在總線的起止端分別加了一個(gè)?120 歐的匹配電阻。
(4)硬件設(shè)計(jì)
? RS485 與RS422 均采用差分平衡傳輸?shù)姆绞?,所以他們的電平方式,一般采用A、B 引腳的方式。
? 電平定義:
以U = A - B 的電壓值為劃分依據(jù)
發(fā)送端:邏輯1:+2V ~ +6V;邏輯0:-6V ~ -2V
接收端:邏輯1:>= 200mv;邏輯0:<= -200mv
? 信號(hào)電平轉(zhuǎn)換:
在單片機(jī)設(shè)計(jì)系統(tǒng)中,常把信號(hào)電平在TTL 與485 之間轉(zhuǎn)換,獲得良好的傳輸質(zhì)量,并使MCU更好的處理信號(hào)。
下圖是485通信的應(yīng)用電路設(shè)計(jì):
3V3與+5V是兩組不共地的電源,一般用隔離型的DC-DC來(lái)實(shí)現(xiàn)。通過(guò)光耦隔離來(lái)實(shí)現(xiàn)信號(hào)的隔離傳輸,MAX485與MCU系統(tǒng)不共地,完全隔離則有效的抑制了高共模電壓的產(chǎn)生,大大降低485的損壞率,提高了系統(tǒng)穩(wěn)定性。但也存在電路體積過(guò)大、電路繁瑣、分立器件過(guò)多,傳輸速率受光電器件限制等缺點(diǎn),對(duì)整個(gè)系統(tǒng)的穩(wěn)定性也有一定影響。
? RS485_DIR:為控制位,控制發(fā)送還是接收數(shù)據(jù);
當(dāng)RS485_DIR=1(高電平時(shí)),光耦電路U3截止,/RE=1(無(wú)效),DE=1(有效),即發(fā)送數(shù)據(jù);
當(dāng)RS485_DIR=0 (低電平時(shí)),光耦電路U3導(dǎo)通,/RE=0(有效),DE=0(無(wú)效),即接收數(shù)據(jù);
MAX485芯片管腳定義:
?
RO :串口接收端
DI :串口傳輸端
/RE:485接收端
DE: 485發(fā)送端
(5) RS485通信缺點(diǎn)
?
RS485總線是一種常規(guī)的通信總線,它不能夠做總線的自動(dòng)仲裁,也就是不能夠同時(shí)發(fā)送數(shù)據(jù)以避免總線競(jìng)爭(zhēng),所以整個(gè)系統(tǒng)的通信效率必然較低,數(shù)據(jù)冗余量較大,對(duì)于速度要求高的應(yīng)用場(chǎng)所不適應(yīng)用RS485總線。同時(shí)由于RS485總線上通常只有一臺(tái)主機(jī),所以這種總線方式是典型的集中—分散型控制系統(tǒng)。一旦主機(jī)出現(xiàn)故障,會(huì)使整個(gè)系統(tǒng)的通信限于癱瘓狀態(tài),因此做好主機(jī)的在線備份是一個(gè)重要措施。
RS485有兩線制和四線制兩種接線,四線制只能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信方式,現(xiàn)很少采用,現(xiàn)在多采用的是兩線制接線方式,這種接線方式為總線式拓樸結(jié)構(gòu)在同一總線上最多可以掛接32個(gè)結(jié)點(diǎn)。在RS485通信網(wǎng)絡(luò)中一般采用的是主從通信方式,即一個(gè)主機(jī)帶多個(gè)從機(jī)。很多情況下,連接RS-485通信鏈路時(shí)只是簡(jiǎn)單地用一對(duì)雙絞線將各個(gè)接口的“A”、“B”端連接起來(lái)。而忽略了信號(hào)地的連接,這種連接方法在許多場(chǎng)合是能正常工作的,但卻埋下了很大的隱患,有二個(gè)原因:
(1)共模干擾問(wèn)題:RS-485接口采用差分方式傳輸信號(hào)方式,并不需要相對(duì)于某個(gè)參照點(diǎn)來(lái)檢測(cè)信號(hào),系統(tǒng)只需檢測(cè)兩線之間的電位差就可以了。但人們往往忽視了收發(fā)器有一定的共模電壓范圍,RS-485收發(fā)器共模電壓范圍為-7~+12V,只有滿足上述條件,整個(gè)網(wǎng)絡(luò)才能正常工作。當(dāng)網(wǎng)絡(luò)線路中共模電壓超出此范圍時(shí)就會(huì)影響通信的穩(wěn)定可靠,甚至損壞接口。
(2)EMI問(wèn)題:發(fā)送驅(qū)動(dòng)器輸出信號(hào)中的共模部分需要一個(gè)返回通路,如沒(méi)有一個(gè)低阻的返回通道(信號(hào)地),就會(huì)以輻射的形式返回源端,整個(gè)總線就會(huì)像一個(gè)巨大的天線向外輻射電磁波。
由于PC機(jī)默認(rèn)的只帶有RS232接口,有兩種方法可以得到PC上位機(jī)的RS485電路:
(1)通過(guò)RS232/RS485轉(zhuǎn)換電路將PC機(jī)串口RS232信號(hào)轉(zhuǎn)換成RS485信號(hào),對(duì)于情況比較復(fù)雜的工業(yè)環(huán)境最好是選用防浪涌帶隔離珊的產(chǎn)品。(2)通過(guò)PCI多串口卡,可以直接選用輸出信號(hào)為RS485類型的擴(kuò)展卡。
? 因?yàn)椴捎脙删€制,數(shù)據(jù)的發(fā)送和接收都要用到這對(duì)差分信號(hào)線,發(fā)送和接收不能同時(shí)進(jìn)行,所以只能采用半雙工的方式工作。
? ? (6)優(yōu)點(diǎn)
? RS485標(biāo)準(zhǔn)規(guī)定采用差分信號(hào)進(jìn)行數(shù)據(jù)傳輸,兩線間的電壓差為+2v到+6v表示邏輯“1”,兩線間的電壓差為-2v到-6v表示邏輯“0”。使用差分信號(hào)能有效的減少噪音信號(hào)的干擾,延長(zhǎng)通信距離,RS485的通信距離可以達(dá)到1500m,RS485接口信號(hào)的電平比RS232降低了,所以不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便地與TTL電路連接。
? RS485采用兩線制,這種接線方式為總線式拓?fù)浣Y(jié)構(gòu),在同一總線上,可以同時(shí)存在多個(gè)節(jié)點(diǎn)。
? 由于RS-485是從RS-422基礎(chǔ)上發(fā)展而來(lái)的,所以RS-485許多電氣規(guī)定與RS-422相仿。如都采用平衡傳輸方式、都需要在傳輸線上接終接電阻等。RS-485可以采用二線與四線方式,二線制可實(shí)現(xiàn)真正的多點(diǎn)雙向通信。RS-485總線,在要求通信距離為幾十米到上千米時(shí),廣泛采用RS-485 串行總線標(biāo)準(zhǔn)。RS-485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測(cè)低至200mV的電壓,故傳輸信號(hào)能在千米以外得到恢復(fù)。RS-485采用半雙工工作方式,任何時(shí)候只能有一點(diǎn)處于發(fā)送狀態(tài),因此,發(fā)送電路須由使能信號(hào)加以控制。RS-485用于多點(diǎn)互連時(shí)非常方便,可以省掉許多信號(hào)線。應(yīng)用RS-485可以聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng),其允許最多并聯(lián)32臺(tái)驅(qū)動(dòng)器和32臺(tái)接收器。
? RS-485使用該標(biāo)準(zhǔn)的數(shù)字通信網(wǎng)絡(luò)能在遠(yuǎn)距離條件下以及電子噪聲大的環(huán)境下有效傳輸信號(hào)。RS-485使得連接本地網(wǎng)絡(luò)以及多支路通信鏈路的配置成為可能。
? 該標(biāo)準(zhǔn)允許連接多個(gè)收發(fā)器,即具有多站能力,這樣可以利用單一的RS485接口方便地建立起一個(gè)設(shè)備網(wǎng)絡(luò)。
審核編輯:黃飛
評(píng)論
查看更多