官术网_书友最值得收藏!

第2章 串行接口通信

智能儀表是伴隨20世紀80年代初單片機技術的成熟而發(fā)展起來的,現(xiàn)在世界儀表市場基本被智能儀表所壟斷。究其原因就是企業(yè)信息化的需要,企業(yè)在儀表選型時其中的一個必要條件就是要具有聯(lián)網(wǎng)通信接口。最初是數(shù)據(jù)模擬信號輸出簡單過程量;后來儀表接口是RS-232C接口,這種接口可以實現(xiàn)點對點的通信方式,但這種方式不能實現(xiàn)聯(lián)網(wǎng)功能;隨后出現(xiàn)的RS-485解決了這個問題。

RS-485總線標準是工業(yè)中(考勤、監(jiān)控和數(shù)據(jù)采集系統(tǒng))使用非常廣泛的雙向、平衡傳輸標準接口,支持多點連接,允許創(chuàng)建多達32個節(jié)點的網(wǎng)絡;最大傳輸距離1200m,支持1200m時為100Kbps的高速傳輸,抗干擾能力很強,布線僅有兩根線,很簡單。本章將對其展開闡述,并列舉具體的項目研發(fā)實例加以詳細說明。

2.1 串行接口通信基礎

2.1.1 計算機串行通信基礎

隨著多微機系統(tǒng)的廣泛應用與計算機網(wǎng)絡技術的普及,計算機的通信功能越來越顯得重要。計算機通信是指將計算機技術和通信技術相結合,完成計算機與外部設備或計算機與計算機之間的信息交換。通信方式可以分為兩大類:并行通信與串行通信。在多微機系統(tǒng)及現(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式。

(1)并行通信

并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時進行傳送,如圖2-1所示。

圖2-1 并行通信方式

并行通信控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難。

(2)串行通信

串行通信是將數(shù)據(jù)字節(jié)分成1位1位的形式,再在一條傳輸線上逐個地傳送,如圖2-2所示。

圖2-2 串行通信方式

串行通信的特點:傳輸線少,長距離傳送時成本低,且可以利用電話網(wǎng)等現(xiàn)成的設備,但數(shù)據(jù)的傳送控制比并行通信復雜。

串行通信的基本概念和具體特點介紹如下。

1.異步通信與同步通信

(1)異步通信

異步通信是指通信的發(fā)送與接收設備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設備的時鐘盡可能一致。

異步通信是以字符(構成的幀)為單位進行傳輸?shù)?,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有“位間隔”的整數(shù)倍的關系,但同一字符內(nèi)的各位之間的距離均為“位間隔”的整數(shù)倍,圖2-3和圖2-4分別為異步通信的收發(fā)示意圖和數(shù)據(jù)格式。

圖2-3 異步通信的收發(fā)示意圖

圖2-4 異步通信的數(shù)據(jù)格式

異步通信的特點:不要求收發(fā)雙方的時鐘嚴格一致,實現(xiàn)容易,設備開銷較小,但每個字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。

(2)同步通信

同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。此時,傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時傳送的字符間不留間隙,既保持位同步關系,也保持字符同步關系。發(fā)送方對接收方的同步可以通過兩種方法實現(xiàn),如圖2-5所示,分別對應于外同步和自同步兩種方法。

圖2-5 同步通信的同步方法

另外,根據(jù)同步格式的不同,同步通信可以分為面向字符和面向位這兩種同步格式,具體如圖2-6所示。

圖2-6 同步通信的同步格式

在面向字符的同步格式中,傳送的數(shù)據(jù)和控制信息都必須由規(guī)定的字符集(如ASCII碼)中的字符所組成。圖2-6(a)中幀頭為一個或兩個同步字符SYN(ASCII碼為16H)。SOH為序始字符(ASCII碼為01H),表示標題的開始,標題中包含源地址、目標地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送數(shù)據(jù)塊的開始。數(shù)據(jù)塊是傳送的正文內(nèi)容,由多個字符組成。數(shù)據(jù)塊后面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H),然后是校驗碼。

典型的面向字符的同步規(guī)程是IBM的二進制同步規(guī)程BSC。

而在面向位的同步格式中,是將數(shù)據(jù)塊看做數(shù)據(jù)流,并用序列01111110作為開始和結束標志。為了避免在數(shù)據(jù)流中出現(xiàn)序列01111110時引起的混亂,發(fā)送方總是在其發(fā)送的數(shù)據(jù)流中每出現(xiàn)5個連續(xù)的“1”就插入一個附加的“0”;接收方則每檢測到5個連續(xù)的“1”并且其后有一個“0”時,就刪除該0。

典型的面向位的同步協(xié)議有:ISO的高級數(shù)據(jù)鏈路控制規(guī)程HDLC和IBM的同步數(shù)據(jù)鏈路控制規(guī)程SDLC。

在這種情況下,同步通信的特點是以特定的位組合“01111110”作為幀的開始和結束標志的,所傳輸?shù)囊粠瑪?shù)據(jù)可以是任意位。所以傳輸?shù)男瘦^高,但實現(xiàn)的硬件設備比異步通信復雜。

2.串行通信的傳輸方向

串行通信的傳輸方向分為單工、半雙工、全雙工3類,如圖2-7所示。

圖2-7 串行通信的傳輸方向

① 單工:單工是指數(shù)據(jù)傳輸僅能沿一個方向,不能實現(xiàn)反向傳輸。

② 半雙工:半雙工是指數(shù)據(jù)傳輸可以沿兩個方向,但需要分時進行。

③ 全雙工:全雙工是指數(shù)據(jù)可以同時進行雙向傳輸。

3.信號的調(diào)制與解調(diào)

如圖2-8所示,利用調(diào)制器(Modulator)把數(shù)字信號轉(zhuǎn)換成模擬信號,然后送到通信線路上去,再由解調(diào)器(Demodulator)把從通信線路上收到的模擬信號轉(zhuǎn)換成數(shù)字信號。由于通信是雙向的,調(diào)制器和解調(diào)器合并在一個裝置中,這就是調(diào)制解調(diào)器MODEM。

圖2-8 信號的調(diào)制與解調(diào)

4.串行通信的錯誤校驗

(1)奇偶校驗

在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應為奇數(shù);偶校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應為偶數(shù)。接收字符時,對“1”的個數(shù)進行校驗,若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。

(2)代碼和校驗

代碼和校驗是指發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生1字節(jié)的校驗字符(校驗和)附加到數(shù)據(jù)塊末尾。接收方在接收數(shù)據(jù)的同時對數(shù)據(jù)塊(除校驗字節(jié)外)求和(或各字節(jié)異或),將所得的結果與發(fā)送方的“校驗和”進行比較,相符則無差錯,否則即認為傳送過程中出現(xiàn)了差錯。

(3)循環(huán)冗余校驗

這種校驗是通過某種數(shù)學運算實現(xiàn)有效信息與校驗位之間的循環(huán)校驗,常用于對磁盤信息的傳輸、存儲區(qū)的完整性校驗等。這種校驗方法糾錯能力強,廣泛應用于同步通信中。

5.傳輸速率與傳輸距離

(1)傳輸速率

比特率是每秒鐘傳輸二進制代碼的位數(shù),單位是位/秒(bps)。如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位、1個停止位和8個數(shù)據(jù)位),這時的比特率為10位× 240字符/秒 = 2400位/秒(bps)。

(2)傳輸距離與傳輸速率的關系

串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關。當傳輸線使用每0.3m(約1英尺)有50pF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當比特率超過1000bps時,最大傳輸距離迅速下降,如9600bps時最大距離下降到只有76m(約250英尺)。

2.1.2 RS-232C串行通信接口

RS-232C是EIA(美國電子工業(yè)協(xié)會)1969年修訂的RS-232C標準。RS-232C定義了數(shù)據(jù)終端設備(DTE)與數(shù)據(jù)通信設備(DCE)之間的物理接口標準。

1.機械特性

RS-232C接口規(guī)定使用25針連接器,連接器的尺寸及每個插針的排列位置都有明確的定義,如圖2-9所示。

圖2-9 RS-232C接口的機械特性

2.功能特性

RS-232C接口的主要功能特性如表2-1所示。

表2-1 RS-232C接口的主要引腳定義

3.過程特性

過程特性規(guī)定了信號之間的時序關系,以便正確地接收和發(fā)送數(shù)據(jù)。圖2-10分別對應于遠程通信和近程通信兩種連接方式。

圖2-10 RS-232C接口的通信連接方式

4.RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路

圖2-11所示為RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路。

圖2-11 RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路

5.采用RS-232C接口存在的問題

(1)傳輸距離短,傳輸速率低

RS-232C總線標準受電容允許值的約束,使用時傳輸距離一般不要超過15m(線路條件好時也不超過幾十米)。最高傳送速率為20Kbps。

(2)有電平偏移

RS-232C總線標準要求收發(fā)雙方共地。通信距離較大時,收發(fā)雙方的地電位差別較大,在信號地上將有比較大的地電流并產(chǎn)生壓降。

(3)抗干擾能力差

RS-232C在電平轉(zhuǎn)換時采用單端輸入輸出,在傳輸過程中當干擾和噪聲混在正常的信號中時,為了提高信噪比,RS-232C總線標準不得不采用比較大的電壓擺幅。

2.1.3 RS-485串行通信接口

在圖2-12中,RS-422A輸出驅(qū)動器為雙端平衡驅(qū)動器。如果其中一條線為邏輯1狀態(tài),另一條線就為邏輯0,比采用單端不平衡驅(qū)動對電壓的放大倍數(shù)大一倍。差分電路能從地線干擾中拾取有效信號,差分接收器可以分辨200mV以上電位差。若傳輸過程中混入了干擾和噪聲,由于差分放大器的作用,可使干擾和噪聲相互抵消。因此可以避免或大大減弱地線干擾和電磁干擾的影響。RS-422A傳輸速率為90Kbps時,傳輸距離可達1200m。

圖2-12 RS-422A接口的收發(fā)示意圖

RS-485是RS-422A的改進型:RS-422A用于全雙工,而RS-485則用于半雙工。RS-485是一種多發(fā)送器標準,在通信線路上最多可以使用32對差分驅(qū)動器/接收器。如果在一個網(wǎng)絡中連接的設備超過32個,還可以使用中繼器。圖2-13所示為RS-485接口的收發(fā)示意圖。

圖2-13 RS-485接口的收發(fā)示意圖

1.RS-485的特點

① RS-485的電氣特性:邏輯0以兩線間的電壓差為+(2~6)V表示;邏輯1以兩線間的電壓差為-(2~6)V表示。接口信號電平比RS-232C降低了,就不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL電路連接。

② RS-485的數(shù)據(jù)最高傳輸速率為10Mbps。

③ RS-485接口是采用平衡驅(qū)動器和差分接收器的組合,抗共模干擾能力增強,即抗噪聲干擾性好。

④ RS-485最大的通信距離約為1219m,最大傳輸速率為10Mbps,傳輸速率與傳輸距離成反比,在100Kbps的傳輸速率下,才可以達到最大的通信距離,如果需傳輸更長的距離,需要加485中繼器。RS-485總線一般最大支持32個節(jié)點,如果使用特制的485芯片,可以達到128個或者256個節(jié)點,最大的可以支持到400個節(jié)點。

2.RS-485接口

RS-485的信號傳輸采用兩線間的電壓來表示,即邏輯1和邏輯0。由于發(fā)送方需要兩根傳輸線,接收方也需要兩根傳輸線,傳輸線采用差動信道,所以它的干擾抑制性極好,又因為它的阻抗低,無接地問題,所以傳輸距離和傳輸速率相對都比較有優(yōu)勢。

RS-485有兩線制和四線制兩種接線,四線制只能實現(xiàn)點對點的通信方式,現(xiàn)很少采用。大多采用的是兩線制接線方式,這種接線方式為總線型拓撲結構,在同一總線上最多可以掛接32個節(jié)點。在RS-485通信網(wǎng)絡中一般采用的是主從通信方式,即一個主機帶多個從機。很多情況下,連接RS-485通信鏈路時只是簡單地用一對雙絞線將各個接口的“A”、“B”端連接起來,而忽略了信號地的連接,這種連接方法在許多場合是能正常工作的,但卻埋下了很大的隱患,這有兩個原因:

① 共模干擾問題:RS-485接口采用差分方式傳輸信號方式,并不需要相對于某個參照點來檢測信號,系統(tǒng)只需檢測兩線之間的電位差就可以了。但人們往往忽視了收發(fā)器有一定的共模電壓范圍,RS-485收發(fā)器共模電壓范圍為-7~+12V,只有滿足上述條件,整個網(wǎng)絡才能正常工作。當網(wǎng)絡線路中共模電壓超出此范圍時就會影響通信的穩(wěn)定可靠,甚至損壞接口。

② EMI問題:發(fā)送驅(qū)動器輸出信號中的共模部分需要一個返回通路,如沒有一個低阻的返回通道(信號地),就會以輻射的形式返回源端,整個總線就會像一個巨大的天線向外輻射電磁波。

由于PC默認的只帶有RS-232C接口,有兩種方法可以得到PC上位機的RS-485電路:

① 通過RS-232C/RS-485轉(zhuǎn)換電路將PC串口RS-232C信號轉(zhuǎn)換成RS-485信號,對于情況比較復雜的工業(yè)環(huán)境最好是選用防浪涌帶隔離珊的產(chǎn)品。

② 通過PCI多串口卡,可以直接選用輸出信號為RS-485類型的擴展卡。

3.RS-485電纜

在低速、短距離、無干擾的場合可以采用普通的雙絞線,反之,在高速、長傳輸距離時,則必須采用阻抗匹配(一般為120Ω)的RS-485專用電纜(STP-120Ω for RS-485 & CAN one pair 18 AWG),而在干擾惡劣的環(huán)境下還應采用鎧裝型雙絞線屏蔽電纜(ASTP-120Ω for RS-485 &CAN one pair 18 AWG)。在使用RS-485接口時,對于特定的傳輸線路,從RS-485接口到負載其數(shù)據(jù)信號傳輸所允許的最大電纜長度與信號傳輸?shù)牟ㄌ芈食煞幢?,這個長度主要數(shù)據(jù)由信號失真及噪聲等影響所確定。理論上,通信速率在100Kbps及以下時,RS-485的最長傳輸距離可達1200m,但在實際應用中傳輸?shù)木嚯x也因芯片及電纜的傳輸特性而所差異。在傳輸過程中可以采用增加中繼的方法對信號進行放大,最多可以加8個中繼,也就是說理論上RS-485的最大傳輸距離可以達到9.6km。如果真需要長距離傳輸,可以采用光纖為傳播介質(zhì),收發(fā)兩端各加一個光/電轉(zhuǎn)換器,多模光纖的傳輸距離是5~10km,而采用單模光纖可達50km的傳播距離。

4.RS-485布網(wǎng)

網(wǎng)絡拓撲一般采用終端匹配的總線型結構,不支持環(huán)形或星形網(wǎng)絡。在構建網(wǎng)絡時,應注意如下幾點:

① 采用一條雙絞線電纜作總線,將各節(jié)點串接起來,從總線到每個節(jié)點的引出線長度應盡量短,以便使引出線中的反射信號對總線信號的影響最低。有些網(wǎng)絡連接盡管不正確,在短距離、低速率仍可能正常工作,但隨著通信距離的延長或通信速率的提高,其不良影響會越來越嚴重,主要原因是信號在各支路末端反射后與原信號疊加,會造成信號質(zhì)量下降。

② 應注意總線特性阻抗的連續(xù)性,在阻抗不連續(xù)點就會發(fā)生信號的反射。下列幾種情況易產(chǎn)生這種不連續(xù)性:總線的不同區(qū)段采用了不同電纜,或某一段總線上有過多收發(fā)器緊靠在一起安裝,再者是過長的分支線引出到總線。

在RS-485組網(wǎng)過程中另一個需要注意的問題是終端負載電阻問題,在設備距離短的情況下不加終端負載電阻整個網(wǎng)絡能很好地工作,但隨著距離的增加性能將降低。理論上,在每個接收數(shù)據(jù)信號的中點進行采樣時,只要反射信號在開始采樣時衰減到足夠低,就可以不考慮匹配。

但這在實際上難以掌握,美國MAXIM公司有篇文章提到一條經(jīng)驗性的原則,可以用來判斷在什么樣的數(shù)據(jù)速率和電纜長度時需要進行匹配:當信號的轉(zhuǎn)換時間(上升或下降時間)超過電信號沿總線單向傳輸所需時間的3倍以上時就可以不加匹配。一般終端匹配采用終端電阻方法,RS-485應在總線電纜的開始和末端都并接終端電阻。終端電阻在RS-485網(wǎng)絡中取120Ω,相當于電纜特性阻抗的電阻,因為大多數(shù)雙絞線電纜特性阻抗大約在100~120Ω。這種匹配方法簡單有效,但有一個缺點,匹配電阻要消耗較大功率,對于功耗限制比較嚴格的系統(tǒng)不太適合。

一種比較省電的匹配方式是RC匹配。利用一只電容C隔斷直流成分可以節(jié)省大部分功率。但電容C的取值是個難點,需要在功耗和匹配質(zhì)量間進行折中。

還有一種采用二極管的匹配方法,這種方法雖未實現(xiàn)真正的“匹配”,但它利用二極管的鉗位作用能迅速削弱反射信號,達到改善信號質(zhì)量的目的,節(jié)能效果顯著。

最近兩年,一些公司基于部分企業(yè)信息化的實施已完成,工廠中已經(jīng)鋪設了延伸到車間每個辦公室、控制室的局域網(wǎng)的現(xiàn)狀,推出了串口服務器來取代多串口卡,這主要是利用企業(yè)已有的局域網(wǎng)資源減少線路投資,節(jié)約成本,相當于通過TCP/IP把多串口卡放在了現(xiàn)場。

5.RS-485的功能

PC與智能設備通信多借助RS-232C、RS-485、以太網(wǎng)等方式,主要取決于設備的接口規(guī)范。但RS-232C、RS-485只能代表通信的物理介質(zhì)層和鏈路層,如果要實現(xiàn)數(shù)據(jù)的雙向訪問,就必須自己編寫通信應用程序,但這種程序多數(shù)都不能符合ISO/OSI的規(guī)范,只能實現(xiàn)較單一的功能,適用于單一設備類型,程序不具備通用性。在RS-232C或RS-485設備連成的設備網(wǎng)中,如果設備數(shù)量超過兩臺,就必須使用RS-485做通信介質(zhì),RS-485網(wǎng)的設備間要想互通信息只有通過主(Master)設備中轉(zhuǎn)才能實現(xiàn),這個主設備通常是PC,而這種設備網(wǎng)中只允許存在一個主設備,其余全部是從(Slave)設備。而現(xiàn)場總線技術是以ISO/OSI模型為基礎的,具有完整的軟件支持系統(tǒng),能夠解決總線控制、沖突檢測、鏈路維護等問題。

RS-485是一點對多點的通信接口,一般采用雙絞線的結構。普通的PC一般不帶RS-485接口,因此要使用RS-232C/RS-485轉(zhuǎn)換器。對于單片機可以通過芯片MAX485來完成TTL/RS-485的電平轉(zhuǎn)換。在計算機和單片機組成的RS-485通信系統(tǒng)中,下位機由單片機系統(tǒng)組成,上位機為普通的PC,負責監(jiān)視下位機的運行狀態(tài),并對其狀態(tài)信息進行集中處理,以圖文方式顯示下位機的工作狀態(tài),以及工業(yè)現(xiàn)場被控設備的工作狀況。系統(tǒng)中各節(jié)點(包括上位機)的識別是通過設置不同的站地址來實現(xiàn)的。

主站蜘蛛池模板: 易门县| 北流市| 隆德县| 广汉市| 灵山县| 象州县| 炎陵县| 兴业县| 漯河市| 鄢陵县| 于都县| 会昌县| 台安县| 铁岭县| 大化| 博乐市| 黔西| 治多县| 德保县| 鹤岗市| 板桥市| 小金县| 逊克县| 濮阳县| 呼伦贝尔市| 长兴县| 博客| 保靖县| 霍州市| 安乡县| 中江县| 大同县| 崇仁县| 达孜县| 和政县| 淮南市| 庆元县| 罗源县| 塘沽区| 万荣县| 金塔县|