德陽四星電子技術(shù)有限公司
關(guān)鍵詞:RS485布線、CAN布線、RS485終端電阻、RS485支線問題、RS485接口隔離
1、概述
筆者結(jié)合多年工程實(shí)踐經(jīng)驗(yàn),與廣大同行討論一番關(guān)于RS485和CAN總線布線工程中的一些常見問題。本文討論的內(nèi)容適合基于這些物理接口的各種底層和上層協(xié)議總線,如RS485、PROFIBUS、PPI、MPI、MODBUS、MODBUS+、CC-Link……;CAN、CAN FD、DeviceNet、CANopen、SDS、NMEA2000、 SAE J1939、SAE J2284 等。
眾所周知,RS485和CAN是一種采用雙絞線(特性阻抗為120歐姆)傳輸?shù)摹?strong>手牽手、無支線、總線兩端必須有終端電阻的一種線性總線結(jié)構(gòu),如圖1-1所示。
圖1-1 標(biāo)準(zhǔn)的RS485和CAN總線連接拓?fù)?/span>
為圖示清晰,后面均采用下面圖1-2所示的簡潔圖示:
圖1-2標(biāo)準(zhǔn)的RS485和CAN總線連接拓?fù)浜啙崍D示
2、RS485和CAN總線的終端電阻
關(guān)于RS485和CAN總線終端電阻的詳細(xì)論述請參看相關(guān)教科書。簡單的表述是:當(dāng)信號在電纜中傳輸時(shí),由于電纜的線間電容、電感和電阻的作用,會(huì)產(chǎn)生信號反射,從而引起波形畸變使得通信數(shù)據(jù)出錯(cuò)。在電纜的兩端各并接一只與電纜特性阻抗相同的電阻,就可以消除這種信號反射,從而保證數(shù)據(jù)正常傳輸,這兩個(gè)電阻就叫做終端電阻。雙絞線的特性阻抗通常為120歐,所以終端電阻的標(biāo)準(zhǔn)值通常也為120歐。如上面圖1-1和圖1-2所示。
由于信號是雙向傳輸?shù)?,所以一段總線電纜的終端電阻是2個(gè),需分別安裝在一段電纜的兩端。當(dāng)總線中安裝有中繼器、集線器、光纖轉(zhuǎn)換器等部件后,電纜就被這些部件分割成了幾段,每段電纜的兩端都須安裝終端電阻,以此類推,如圖2-1、圖2-2、圖2-3所示。
圖2-1 有中繼器時(shí)的終端電阻配置
圖2-2 有集線器時(shí)的終端電阻配置
圖2-3 有光纖轉(zhuǎn)換器時(shí)的終端電阻配置
2.1、RS485和CAN總線電纜超過多長才需安裝終端電阻?
這個(gè)問題與通信波特率(通信速率)密切相關(guān),筆者實(shí)際測試的結(jié)果是,RS485波特率為9.6Kbps時(shí),電纜長度幾百米無需終端電阻也能正常通信,波特率12Mbps時(shí),電纜長度十幾米必須有終端電阻才能正常通信;CAN總線波特率為1Mbps時(shí),電纜長度幾米也必須有終端電阻才能正常通信。總之筆者認(rèn)為,不管電纜長短,都應(yīng)該有終端電阻,遵守規(guī)則總是正確的。
2.2、為什么有的RS485總線兩端必須安裝有源終端電阻?
先看一個(gè)案例:如圖2-4,兩臺西門子S7-200PLC之間通訊,電纜長度十幾米,沒有120歐終端電阻時(shí)通信正常,有120歐終端電阻時(shí)則不能通信。
圖2-4
分析如下:
如圖2-5是S7-200PLC的RS485通信口簡化圖,為了保證總線上能夠掛接數(shù)十個(gè)RS485站點(diǎn),PLC的RS485接口上只能設(shè)計(jì)兩個(gè)100K的弱上拉電阻和下拉電阻(也稱為偏置電阻,該電阻不能過小,否則節(jié)點(diǎn)掛多了時(shí)會(huì)把總線拉死?。?/span>
圖2-5 S7-200PLC的RS485接口簡圖
接入120歐終端電阻后,在RS485總線上產(chǎn)生偏置電壓為:5×0.12 /(100+100+0.12)=0.003V,眾所周知,RS485芯片的門限電壓為±0.2V,也就是說RS485輸入電壓在-0.2V~+0.2V之間時(shí),其接收器的輸出是不確定的,如果接收器輸出為邏輯0 ,就會(huì)使CPU收到連續(xù)長0信號而無法正常通信。
西門子為解決這種問題設(shè)計(jì)了兩種產(chǎn)品:總線連接器和有源終端電阻,二者原理相同,都是在終端電阻上增加了390歐的上拉電阻和下拉電阻,如圖2-6所示,RS485空閑時(shí),在總線上產(chǎn)生邏輯1偏置電壓為:5×220 /(390+390+220)=1.1V,或5×120 /(390+390+120)=0.66V,該電壓大于RS485的門限電壓0.2V,從而保證了RS485接收器輸出為邏輯1,使總線處于空閑待機(jī)狀態(tài)。
圖2-6 RS485總線上拉下拉電阻的原理
西門子采用的終端電阻是220歐,筆者測試的結(jié)果是:電纜長度1000米,RS485芯片發(fā)送器發(fā)送信號,用示波器觀察該RS485芯片的接收器輸出,電纜的兩端都有390歐的偏置電阻時(shí),終端電阻為220歐和120歐都沒有信號反射,當(dāng)電纜只有一端有390歐偏置電阻時(shí),終端電阻為120歐仍然沒有信號反射,220歐時(shí)有信號反射。
圖2-7是西門子總線連接器原理圖,圖2-8是四星電子有源終端電阻原理圖。
圖2-7 西門子總線連接器原理圖
圖2-8 四星電子有源終端電阻原理圖
另一種結(jié)構(gòu)的RS485接口電路,如CC-Link,如圖2-9所示,這種RS485接口電路無需在設(shè)備外部設(shè)計(jì)上拉下拉電阻,直接并接120歐終端電阻即可,即使總線短路也不會(huì)使RS485接收器輸出長邏輯0給CPU,讀者可自行分析。
圖2-9 CC-Link的RS485接口電路
CAN總線的門限電平為≥0.9V才有效,因此也就不存在上拉下拉電阻問題了,直接在電纜兩端并接120歐終端電阻即可。
3、RS485和CAN總線的支線問題
支線問題往往被很多用戶忽視,當(dāng)支線較多或太長時(shí)會(huì)產(chǎn)生一些奇怪的通信故障。支線是指RS485或CAN接口到總線的那一段電纜,如圖3-1所示。
圖3-1 RS485和CAN總線的支線
當(dāng)RS485或CAN信號在總線上傳輸時(shí),會(huì)在支線中產(chǎn)生回波使得信號波形畸變,當(dāng)支線長度過長或者支線站點(diǎn)過多時(shí)尤其嚴(yán)重。常見的錯(cuò)誤支線如圖3-2所示。
圖3-2 RS485和CAN常見錯(cuò)誤支線
3.1、支線到底允許多長?
相關(guān)文獻(xiàn)和產(chǎn)品說明書上講RS485或CAN的支線允許長度時(shí),幾乎沒有統(tǒng)一的數(shù)據(jù),有說允許支線最長1米,有說允許支線最長5米,特別是CAN總線的支線問題,其允許每個(gè)支線長度和支線數(shù)量等還有很復(fù)雜的估算公式。其實(shí)支線長度也是和通信波特率密切相關(guān)的,筆者認(rèn)為,施工布線成無支線為上策,避免不必要的麻煩。
3.2、怎樣做到無支線?
對于接口形式是DB9插座的現(xiàn)場總線,如PROFIBUS、PPI、MPI、CANOpen,西門子等公司早已設(shè)計(jì)有PROFIBUS總線連接器(俗稱DP插頭)、CANOpen總線連接器等部件,只要使用這些連接器就可實(shí)現(xiàn)無支線的網(wǎng)絡(luò)結(jié)構(gòu),PROFIBUS總線連接器的原理圖見前面的圖2-7,下面圖3-3是CANOpen總線連接器原理圖。
圖3-3 CANOpen總線連接器原理圖
現(xiàn)在新型的DeviceNet連接器采用了一分二的雙孔連接器端子,同樣也實(shí)現(xiàn)了無支線的網(wǎng)絡(luò)結(jié)構(gòu),如圖3-4所示。
圖3-4 DeviceNet一分二連接器
對于那些只有一對接線端子的RS485和CAN接口,可采用雙線并接一個(gè)端子的方式來實(shí)現(xiàn)無支線結(jié)構(gòu),如圖3-5所示。
圖3-5 雙線并接的無支線結(jié)構(gòu)
3.3、無法避免支線怎么辦呢?
在RS485和CAN總線布線施工時(shí),有些時(shí)候由于環(huán)境局限或本身就需要將電纜分支引到別處,這時(shí)就必須在分支處安裝中繼器,經(jīng)過中繼器就產(chǎn)生了一條新的總線,且傳輸距離符合RS485標(biāo)準(zhǔn),如圖3-6所示。注意,圖中的中繼器在總線段1中是作為一個(gè)站點(diǎn)(節(jié)點(diǎn)),在總線段2和總線段3中是作為一個(gè)終端。
圖3-6 RS485和CAN總線在分支處須安裝中繼器
4、RS485信號極性標(biāo)注符號
RS485標(biāo)準(zhǔn)中沒有規(guī)定信號正負(fù)極性的符號,因此各廠家產(chǎn)品標(biāo)注RS485信號正負(fù)極性的符號各不相同,中國的產(chǎn)品以及日本三菱的PLC、CC-Link等工控產(chǎn)品多以A(或DA)表示RS485信號正、B(或DB)表示RS485信號負(fù)。而西門子、歐姆龍、施耐德等則相反,用B表示RS485信號正、A表示RS485信號負(fù)。 用戶經(jīng)常因此犯糊涂。
判斷RS485信號正負(fù)極性很簡單:取下電纜,用萬用表電壓檔測量一下RS485兩個(gè)端子上的開路電壓極性便知,RS485開路時(shí),即使內(nèi)部沒有設(shè)計(jì)上拉下拉電阻,也總會(huì)有一定的殘余電壓。
四星電子的RS485正負(fù)極性符號為D+、D-,不易混淆。
5、RS485和CAN的信號地和屏蔽地
RS485和CAN總線電纜通常使用帶屏蔽層的雙絞線電纜,屏蔽層需接到各個(gè)站點(diǎn)的機(jī)殼地(屏蔽接地,符號通常為FG、SLD),這是屏蔽電纜接地的常規(guī)做法,很好理解,不用贅述。
很多RS485和CAN總線產(chǎn)品還有一個(gè)信號地(通常符號為SG、DG)端子,按照相關(guān)標(biāo)準(zhǔn)上的表述是需要用一根導(dǎo)線將所有站點(diǎn)的信號地連通,使之成等電位,以免各站點(diǎn)地電位差太大損壞RS485或CAN器件。如圖5-1所示。
圖5-1 將各站點(diǎn)的信號地SG連成等電位
CC-Link、DeviceNet、CANOpen等在產(chǎn)品上和通信電纜均設(shè)計(jì)了這個(gè)信號地線,而PROFIBUS從產(chǎn)品到通信電纜均沒有設(shè)計(jì)這個(gè)信號地;眾多的RS485、CAN總線在實(shí)際工程中其實(shí)都是使用二芯雙絞線,大多數(shù)的用戶都沒有連接各站點(diǎn)的信號地線。
筆者認(rèn)為,如果各站點(diǎn)的接口是經(jīng)過隔離的,則完全沒有必要連接第三條信號地線,因?yàn)楦綦x后各站點(diǎn)的信號地是各自獨(dú)立不相干的,不會(huì)形成地線回路。
6、RS485和CAN總線的傳輸距離
RS485和CAN總線的傳輸距離除了與使用的雙絞線有關(guān)外,還與通信波特率密切相關(guān),波特率越低傳輸距離越遠(yuǎn),反之波特率越大傳輸距離越短。RS485和CAN總線均規(guī)定了所使用雙絞線的參數(shù),如表6-1、表6-2所示。
表6-1 RS485專用雙絞線電纜參數(shù)
通 用 特 性 | 規(guī) 范 |
類型 | 屏蔽雙絞線 |
導(dǎo)體截面積 | 24AWG(0.35mm2)或更粗 |
電纜電容 | <60pf/m |
特性阻抗 | 120歐 |
表6-2 CAN總線專用雙絞線電纜參數(shù)
通 用 特 性 | 規(guī) 范 |
類型 | 屏蔽雙絞線 |
導(dǎo)體截面積 | 0.5mm2 ,當(dāng)長度超過1km時(shí),要求截面積≥1.5mm2 |
電纜電容 | <60pf/m |
特性阻抗 | 120歐 |
有的電纜生產(chǎn)廠家為節(jié)省成本,在銅線中添加了其它廉價(jià)合金,這將使得電纜的電阻值增大,在購買電纜時(shí)需指明為無氧銅電纜。用戶可對電纜進(jìn)行一下簡單粗略的測試:
用萬用表電阻檔測量電纜的電阻值、游標(biāo)卡尺測量導(dǎo)體的直徑(換算成截面積),根據(jù)導(dǎo)體電阻計(jì)算公式R= ρL/S,ρ:銅的電阻率為0.017,L:電纜長度(米),S:電纜截面積(mm2),根據(jù)公式可判斷電纜是否為純銅材質(zhì)。
用萬用表電容檔測量電纜的線間電容,每米的線間電容應(yīng)小于60pf。
表6-3 不同波特率下RS485的最大傳輸距離
波特率(bps) | 9.6K | 19.2K | 45.45K | 93.75K | 187.5K | 500K | 1.5M | 3M | 6M | 12M |
最大電纜長度(米) | 1200 | 1000 | 400 | 200 | 100 |
表6-4 不同波特率下CAN總線的最大傳輸距離
波特率(bps) | 5k | 10k | 20k | 50k | 100k | 125k | 250k | 500k | 1M |
最大電纜長度 | 10km | 5km | 3km | 1km | 500m | 400m | 200m | 100m | 30m |
為什么CAN總線電纜長度超過1km時(shí),要求雙絞線導(dǎo)體的截面積≥1.5mm2 ?
幾乎所有關(guān)于CAN總線的教科書和產(chǎn)品手冊上都提到CAN總線在通信速率為5Kbps時(shí)通信距離可達(dá)10公里,10Kbps時(shí)通信距離可達(dá)5公里,但用戶在實(shí)際使用中卻達(dá)不到說明書上注明的最大通信距離,原因何在?這里人們忽略了傳輸線的截面積問題,因?yàn)镃AN在遠(yuǎn)距離傳輸時(shí)需要較粗的雙絞線!我們假定不考慮通信線路的電感和線間電容,CAN數(shù)據(jù)發(fā)送和接收如下圖6-1所示:
圖6-1 CAN總線信號的發(fā)送與接收
圖中:Rt為終端電阻,Rt=120歐;R為雙絞線電纜電阻(二根線的電阻),阻值由線路的長度和粗細(xì)確定;Vo為CAN發(fā)送器輸出電壓,當(dāng)接上終端電阻Rt時(shí),Vo=2V;Vi為CAN接收器的輸入電壓,Vi≥0.9V時(shí)信號有效。
當(dāng)發(fā)送器發(fā)送信號時(shí)Vo=2V,接收器輸入電壓Vi≥0.9V時(shí)信號被接收,這時(shí)允許通信線路的最大壓降為:Vr=Vo-Vi=2-0.9=1.1V。線路電阻為:R=RtVo/Vi-Rt=120×2/0.9-120=146歐,線路導(dǎo)線的截面積為:S=ρL/R S::導(dǎo)線截面積mm2,ρ:銅的電阻率,ρ=0.017,L:線路長度(二芯),當(dāng)通信距離為10公里時(shí)L=20000米,由此得出通信距離為10公里時(shí)的最小導(dǎo)線截面積為:S=0.017×20000/146=2.3 mm2??紤]到雙絞線的電感和線間電容,截面積應(yīng)該大于2.3 mm2,實(shí)際上傳輸10km距離時(shí),雙絞線截面積應(yīng)選2.5mm2以上。
實(shí)際應(yīng)用中,如果已敷設(shè)好截面積較小的雙絞線,可將總線兩端的終端電阻適當(dāng)增大,比如可在120歐~390歐之間選擇來試試,這樣可提高CAN接收器分得的信號電壓,因?yàn)榈退偻ㄐ艜r(shí),較大的終端電阻產(chǎn)生的信號反射往往在容忍范圍內(nèi)。下表6-5是實(shí)測的CAN總線在不同傳輸距離和不同波特率下可使用的終端電阻經(jīng)驗(yàn)數(shù)據(jù)。
表6-5 CAN總線不同傳輸距離和波特率可使用的終端電阻經(jīng)驗(yàn)數(shù)據(jù)
傳輸距離 | 波特率(bps) | 終端電阻 |
30m | 1M | 120歐 |
40m | 800K | 120歐 |
100m | 500K | 120歐 |
200m | 250K | 120歐 |
400m | 125K | 120歐 |
500m | 100K | 120歐 |
1km | 50K | 120歐 |
3km | 20K | 180歐 |
5km | 10K | 270歐 |
10km | 5K | 390歐 |
影響傳輸距離的因素除以上所述外,還和工業(yè)現(xiàn)場的干擾相關(guān),特別是與大功率變頻器通信時(shí),其傳輸距離會(huì)大大的縮短。必要時(shí)需要增加安裝中繼器或隔離器來解決這些問題。西門子的相關(guān)產(chǎn)品說明書就表述得很保守,規(guī)定非隔離的RS485口傳輸距離不能超過50米,我們實(shí)測結(jié)果遠(yuǎn)不止50米,說明人家是考慮了現(xiàn)場干擾等綜合因素。所以我們在實(shí)際工程中所使用的電纜長度最好不要超過標(biāo)準(zhǔn)規(guī)定的70%為宜,凡事需留有一定的余地。
7、RS485和CAN總線的星型連接
手牽手一條總線走到底的總線型連接是RS485和CAN的經(jīng)典網(wǎng)絡(luò)拓?fù)?,但也存在以下缺點(diǎn):
● 某個(gè)站點(diǎn)故障時(shí)可能會(huì)影響整條總線。
● 排查故障麻煩,特別是站點(diǎn)較多時(shí),要找到故障站點(diǎn)很費(fèi)時(shí)。
● 總線如遭遇雷擊浪涌,可能損壞所有連接在總線上的站點(diǎn)設(shè)備。
● 在某些環(huán)境下施工麻煩。
● 對于總線型光纖連接,某個(gè)光纖適配器停電時(shí),則后面的站點(diǎn)就無法進(jìn)行通信了。
星型連接的網(wǎng)絡(luò)拓?fù)渚湍芎芎玫慕鉀Q上述問題,如圖7-1所示為使用集線器后星型連接拓?fù)洹?/span>
圖7-1 RS485和CAN總線的星型連接
四星電子為RS485和CAN總線的星型連接拓?fù)溲邪l(fā)出了系列集線器,如組合式RS485集線器、組合式CC-Link集線器、組合式LonWorks集線器、PROFIBUS集線器、CAN總線集線器、AS-i總線集線器等系列產(chǎn)品。如圖7-2所示。
圖7-2 四星電子各種現(xiàn)場總線集線器
8、RS485和CAN總線接口隔離
接口隔離是用光耦將RS485或CAN接口與內(nèi)部電路隔離開來,這樣一來總線上的各個(gè)站點(diǎn)通信口之間就沒有電的連接,也不會(huì)形成地線回路,起到了很好的抗共模干擾的作用,各站點(diǎn)的信號地就不必用導(dǎo)線連成等電位。在有些場合,接口隔離是必須的,如變頻器的RS485口或PROFIBUS口,變頻器的工作原理決定了其RS485口在輸出正常數(shù)據(jù)信號的同時(shí),往往還夾雜著一些雜波干擾信號,這些信號時(shí)常會(huì)使傳輸數(shù)據(jù)出錯(cuò),現(xiàn)場實(shí)踐中通常表現(xiàn)為通信時(shí)通時(shí)斷。
用RS485隔離器可以解決或改善這種問題,如圖8-1所示。圖中接變頻器的是RS485隔離器,接PLC的是隔離型的PROFIBUS總線連接器。
圖8-1 西門子PLC與變頻器隔離通信方案
9、RS485和CAN總線接口保護(hù)
圖9-1是四星電子出品的RS485和CAN總線通用接口保護(hù)器BH-485,從圖中可看出該保護(hù)器設(shè)計(jì)為二級保護(hù),第一級采用陶瓷放電管吸收雷電浪涌,然后經(jīng)過自恢復(fù)保險(xiǎn)限流到第二級TVS保護(hù),三個(gè)TVS器件分別對信號線之間、信號線與信號地之間進(jìn)行鉗位保護(hù)。
該保護(hù)器內(nèi)還帶有120歐終端電阻,通過短路S1、S2端子來接入終端電阻,而且該產(chǎn)品設(shè)計(jì)成J1、J2雙接線端子,這樣便于實(shí)現(xiàn)手牽手的無支線的連接方式。
圖9-1 RS485和CAN浪涌保護(hù)器
10、RS485站點(diǎn)上電時(shí)對總線的影響
在實(shí)際工程中,有的從站是間歇式工作的,即需要時(shí)通電連入總線,不用時(shí)則關(guān)斷從站電源。在設(shè)備上電的過渡過程中,其RS485口輸出是不確定的,可能輸出邏輯1或邏輯0電平短暫的拉死總線,從而造成通訊閃斷。
如圖10-1的接口電路設(shè)計(jì)可以防止這種現(xiàn)象的發(fā)生。
當(dāng)上電瞬間,C1電壓不能突變,或非門U1的1腳為高電平,輸出3腳為低電平,確保了RS485芯片U2的發(fā)送器關(guān)閉,不會(huì)對總線造成擾動(dòng);當(dāng)經(jīng)過t=R1×C1時(shí)間后,U1的1腳變?yōu)榈碗娖?,使能信號EN才開始控制RS485芯片U2的數(shù)據(jù)收發(fā)。二極管D1的作用是反向電壓鉗位保護(hù)。
圖10-1 上電瞬間不會(huì)對總線產(chǎn)生擾動(dòng)的電路
CAN總線站點(diǎn)上電的過渡過程中,CANH、CANL是處于高阻懸浮狀態(tài),不會(huì)對總線產(chǎn)生影響。
文章下載地址:http://zgfspmh.com/uploads/files/20230911/31cedbec0dce7818842f5e19c37e1333.pdf
德陽四星電子技術(shù)有限公司
地 址:四川省德陽市廬山南路二段88號H棟二樓
電 話:0838-2515543 傳真:0838-2515546
網(wǎng) 址:http://zgfspmh.com