RS232-RS485串口通信詳解_第1頁(yè)
RS232-RS485串口通信詳解_第2頁(yè)
RS232-RS485串口通信詳解_第3頁(yè)
RS232-RS485串口通信詳解_第4頁(yè)
RS232-RS485串口通信詳解_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、串口通信詳解一、RS-232RS-232在1962年發(fā)布,命名為EIA-232-E,作為工業(yè)標(biāo)準(zhǔn),以保證不同廠家產(chǎn)品之間的兼容。RS-232-C是美國(guó)電子工業(yè)協(xié)會(huì)EIA(Electronic Industry Association)制定的一種串行物理接口標(biāo)準(zhǔn)。RS是英文“推薦標(biāo)準(zhǔn)”的縮寫,232為標(biāo)識(shí)號(hào),C表示修改次數(shù)。RS-232-C總線標(biāo)準(zhǔn)設(shè)有25條信號(hào)線,包括一個(gè)主通道和一個(gè)輔助通道。在多數(shù)情況下主要使用主通道,對(duì)于一般雙工通信,僅需幾條信號(hào)線就可實(shí)現(xiàn),如一條發(fā)送線、一條接收線及一條地線。RS-232-C標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸速率為每秒50、75、 100、150、300、600、1200

2、、2400、4800、9600、19200波特。RS-232-C標(biāo)準(zhǔn)規(guī)定,驅(qū)動(dòng)器允許有2500pF的電容負(fù)載,通信距離將受此電容限制,例如,采用150pF/m的通信電纜時(shí),最大通信距離為15m;若每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號(hào)傳送,存在共地噪聲和不能抑制共模干擾等問(wèn)題,因此一般用于20m以內(nèi)的通信。9針串口(DB9)25針串口(DB25)針號(hào)功能說(shuō)明縮寫針號(hào)功能說(shuō)明縮寫1數(shù)據(jù)載波檢測(cè)DCD8數(shù)據(jù)載波檢測(cè)DCD2接收數(shù)據(jù)RXD3接收數(shù)據(jù)RXD3發(fā)送數(shù)據(jù)TXD2發(fā)送數(shù)據(jù)TXD4數(shù)據(jù)終端準(zhǔn)備DTR20數(shù)據(jù)終端準(zhǔn)備DTR5信號(hào)地GND7信號(hào)地GND

3、6數(shù)據(jù)設(shè)備準(zhǔn)備好DSR6數(shù)據(jù)準(zhǔn)備好DSR7請(qǐng)求發(fā)送RTS4請(qǐng)求發(fā)送RTS8清除發(fā)送CTS5清除發(fā)送CTS9振鈴指示DELL22振鈴指示DELL目前RS-232是PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通訊中增加通訊距離的單端標(biāo)準(zhǔn)。RS-232采取不平衡傳輸方式,即所謂單端通訊。 圖1收、發(fā)端的數(shù)據(jù)信號(hào)是相對(duì)于信號(hào)地,如從DTE設(shè)備發(fā)出的數(shù)據(jù)在使用DB25連接器時(shí)是2腳相對(duì)7腳(信號(hào)地)的電平,DB25各引腳定義參見圖1。典型的RS-232信號(hào)在正負(fù)電平之間擺動(dòng),在發(fā)送數(shù)據(jù)時(shí),發(fā)送端驅(qū)動(dòng)器輸出正電平在+5+15V,負(fù)電平在-5-15V電平。當(dāng)無(wú)數(shù)據(jù)傳輸時(shí),

4、線上為TTL,從開始傳送數(shù)據(jù)到結(jié)束,線上電平從TTL電平到RS-232電平再返回TTL電平。接收器典型的工作電平在+3+12V與-3-12V。由于發(fā)送電平與接收電平的差僅為2V至3V左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20kb/s。RS-232是為點(diǎn)對(duì)點(diǎn)(即只用一對(duì)收、發(fā)設(shè)備)通訊而設(shè)計(jì)的,其驅(qū)動(dòng)器負(fù)載為37k。所以RS-232適合本地設(shè)備之間的通信。RS232C串口通信接線方法(三線制)首先,串口傳輸數(shù)據(jù)只要有接收數(shù)據(jù)針腳和發(fā)送針腳就能實(shí)現(xiàn):同一個(gè)串口的接收腳和發(fā)送腳直接用線相連,兩個(gè)串口相連或一個(gè)串口和多個(gè)串口相連 同一個(gè)串口的接收腳和

5、發(fā)送腳直接用線相連 對(duì)9針串口和25針串口,均是2與3直接相連; 兩個(gè)不同串口(不論是同一臺(tái)計(jì)算機(jī)的兩個(gè)串口或分別是不同計(jì)算機(jī)的串口)9針9針25針25針9針25針233222322333557757上面表格是對(duì)微機(jī)標(biāo)準(zhǔn)串行口而言的,還有許多非標(biāo)準(zhǔn)設(shè)備,如接收GPS數(shù)據(jù)或電子羅盤數(shù)據(jù),只要記住一個(gè)原則:接收數(shù)據(jù)針腳(或線)與發(fā)送數(shù)據(jù)針腳(或線)相連,彼些交叉,信號(hào)地對(duì)應(yīng)相接。規(guī)定RS232RS422R485工作方式單端差分差分節(jié)點(diǎn)數(shù)1收、1發(fā)1發(fā)10收1發(fā)32收最大傳輸電纜長(zhǎng)度50英尺400英尺400英尺最大傳輸速率20Kb/S10Mb/s10Mb/s最大驅(qū)動(dòng)輸出電壓+/-25V-0.25V+

6、6V-7V+12V驅(qū)動(dòng)器輸出信號(hào)電平(負(fù)載最小值)負(fù)載+/-5V+/-15V+/-2.0V+/-1.5V驅(qū)動(dòng)器輸出信號(hào)電平(空載最大值)空載+/-25V+/-6V+/-6V驅(qū)動(dòng)器負(fù)載阻抗()3K7K10054擺率(最大值)30V/sN/AN/A接收器輸入電壓范圍+/-15V-10V+10V-7V+12V接收器輸入門限+/-3V+/-200mV+/-200mV接收器輸入電阻()3K7K4K(最小)12K驅(qū)動(dòng)器共模電壓-3V+3V-1V+3V接收器共模電壓-7V+7V-7V+12V表1 二、RS485和RS422RS-422由RS-232發(fā)展而來(lái),它是為彌補(bǔ)RS-232之不足而提出的。為改進(jìn)RS-

7、232通信距離短、速率低的缺點(diǎn),RS-422定義了一種平衡通信接口,將傳輸速率提高到10Mb/s,傳輸距離延長(zhǎng)到4000英尺(速率低于100kb/s時(shí)),并允許在一條平衡總線上連接最多10個(gè)接收器。RS-422是一種單機(jī)發(fā)送、多機(jī)接收的單向、平衡傳輸規(guī)范,被命名為TIA/EIA-422-A標(biāo)準(zhǔn)。為擴(kuò)展應(yīng)用范圍,EIA又于1983年在RS-422基礎(chǔ)上制定了RS-485標(biāo)準(zhǔn),增加了多點(diǎn)、雙向通信能力,即允許多個(gè)發(fā)送器連接到同一條總線上,同時(shí)增加了發(fā)送器的驅(qū)動(dòng)能力和沖突保護(hù)特性,擴(kuò)展了總線共模范圍,后命名為TIA/EIA-485-A標(biāo)準(zhǔn)。由于EIA提出的建議標(biāo)準(zhǔn)都是以“RS”作為前綴,所以在通訊工

8、業(yè)領(lǐng)域,仍然習(xí)慣將上述標(biāo)準(zhǔn)以RS作前綴稱謂。 平衡傳輸 RS-422、RS-485與RS-232不一樣,數(shù)據(jù)信號(hào)采用差分傳輸方式,也稱作平衡傳輸,它使用一對(duì)雙絞線,將其中一線定義為A,另一線定義為B,如圖2。 圖2 通常情況下,發(fā)送驅(qū)動(dòng)器A、B之間的正電平在+2+6V,是一個(gè)邏輯狀態(tài),負(fù)電平在-26V,是另一個(gè)邏輯狀態(tài)。另有一個(gè)信號(hào)地C,在RS-485中還有一“使能”端,而在RS-422中這是可用可不用的?!笆鼓堋倍耸怯糜诳刂瓢l(fā)送驅(qū)動(dòng)器與傳輸線的切斷與連接。當(dāng)“使能”端起作用時(shí),發(fā)送驅(qū)動(dòng)器處于高阻狀態(tài),稱作“第三態(tài)”,即它是有別于邏輯“1”與“0”的第三態(tài)。接收器也作與發(fā)送端相對(duì)的規(guī)定,收、發(fā)

9、端通過(guò)平衡雙絞線將AA與BB對(duì)應(yīng)相連,當(dāng)接收端AB之間有大于+200mV的電平時(shí),輸出正邏輯電平,小于-200mV時(shí),輸出負(fù)邏輯電平。接收器接收平衡線上的電平范圍通常在200mV至6V之間。參見圖3。 圖3 RS-422電氣規(guī)定 RS-422標(biāo)準(zhǔn)全稱是“平衡電壓數(shù)字接口電路的電氣特性”,它定義了接口電路的特性。圖5是典型的RS-422四線接口。實(shí)際上還有一根信號(hào)地線,共5根線。圖4是其DB9連接器引腳定義。由于接收器采用高輸入阻抗和發(fā)送驅(qū)動(dòng)器比RS232更強(qiáng)的驅(qū)動(dòng)能力,故允許在相同傳輸線上連接多個(gè)接收節(jié)點(diǎn),最多可接10個(gè)節(jié)點(diǎn)。即一個(gè)主設(shè)備(Master),其余為從設(shè)備(Salve),從設(shè)備之間

10、不能通信,所以RS-422支持點(diǎn)對(duì)多的雙向通信。接收器輸入阻抗為4k,故發(fā)端最大負(fù)載能力是104k+100(終接電阻)。RS-422四線接口由于采用單獨(dú)的發(fā)送和接收通道,因此不必控制數(shù)據(jù)方向,各裝置之間任何必須的信號(hào)交換均可以按軟件方式(XON/XOFF握手)或硬件方式(一對(duì)單獨(dú)的雙絞線)實(shí)現(xiàn)。 圖4圖5RS-422的最大傳輸距離為4000英尺(約1219米),最大傳輸速率為10Mb/s。其平衡雙絞線的長(zhǎng)度與傳輸速率成反比,在100kb/s速率以下,才可能達(dá)到最大傳輸距離。只有在很短的距離下才能獲得最高速率傳輸。一般100米長(zhǎng)的雙絞線上所能獲得的最大傳輸速率僅為1Mb/s。 RS-422需要一

11、終接電阻,要求其阻值約等于傳輸電纜的特性阻抗。在矩距離傳輸時(shí)可不需終接電阻,即一般在300米以下不需終接電阻。終接電阻接在傳輸電纜的最遠(yuǎn)端。 RS-422有關(guān)電氣參數(shù)見表1 RS-485電氣規(guī)定 由于RS-485是從RS-422基礎(chǔ)上發(fā)展而來(lái)的,所以RS-485許多電氣規(guī)定與RS-422相仿。如都采用平衡傳輸方式、都需要在傳輸線上接終接電阻等。RS-485可以采用二線與四線方式,二線制可實(shí)現(xiàn)真正的多點(diǎn)雙向通信,參見圖6。 而采用四線連接時(shí),與RS-422一樣只能實(shí)現(xiàn)點(diǎn)對(duì)多的通信,即只能有一個(gè)主(Master)設(shè)備,其余為從設(shè)備,但它比RS-422有改進(jìn), 無(wú)論四線還是二線連接方式總線上可多接到

12、32個(gè)設(shè)備。參見圖7。 圖6圖7RS-485與RS-422的不同還在于其共模輸出電壓是不同的,RS-485是-7V至+12V之間,而RS-422在-7V至+7V之間,RS-485接收器最小輸入阻抗為12k劍鳵S-422是4k??;舊峽梢運(yùn)礡S-485滿足所有RS-422的規(guī)范,所以RS-485的驅(qū)動(dòng)器可以用在RS-422網(wǎng)絡(luò)中應(yīng)用。 RS-485有關(guān)電氣規(guī)定參見表1。 RS-485與RS-422一樣,其最大傳輸距離約為1219米,最大傳輸速率為10Mb/s。平衡雙絞線的長(zhǎng)度與傳輸速率成反比,在100kb/s速率以下,才可能使用規(guī)定最長(zhǎng)的電纜長(zhǎng)度。只有在很短的距離下才能獲得最高速率傳輸。一般100

13、米長(zhǎng)雙絞線最大傳輸速率僅為1Mb/s。 RS-485需要2個(gè)終接電阻,其阻值要求等于傳輸電纜的特性阻抗。在矩距離傳輸時(shí)可不需終接電阻,即一般在300米以下不需終接電阻。終接電阻接在傳輸總線的兩端。 RS-422與RS-485的網(wǎng)絡(luò)安裝注意要點(diǎn) RS-422可支持10個(gè)節(jié)點(diǎn),RS-485支持32個(gè)節(jié)點(diǎn),因此多節(jié)點(diǎn)構(gòu)成網(wǎng)絡(luò)。網(wǎng)絡(luò)拓?fù)湟话悴捎媒K端匹配的總線型結(jié)構(gòu),不支持環(huán)形或星形網(wǎng)絡(luò)。在構(gòu)建網(wǎng)絡(luò)時(shí),應(yīng)注意如下幾點(diǎn): 1采用一條雙絞線電纜作總線,將各個(gè)節(jié)點(diǎn)串接起來(lái),從總線到每個(gè)節(jié)點(diǎn)的引出線長(zhǎng)度應(yīng)盡量短,以便使引出線中的反射信號(hào)對(duì)總線信號(hào)的影響最低。圖8所示為實(shí)際應(yīng)用中常見的一些錯(cuò)誤連接方式(a,c,e

14、)和正確的連接方式(b,d,f)。a,c,e這三種網(wǎng)絡(luò)連接盡管不正確,在短距離、低速率仍可能正常工作,但隨著通信距離的延長(zhǎng)或通信速率的提高,其不良影響會(huì)越來(lái)越嚴(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ū)段采用了不同電纜,或某一段總線上有過(guò)多收發(fā)器緊靠在一起安裝,再者是過(guò)長(zhǎng)的分支線引出到總線??傊?,應(yīng)該提供一條單一、連續(xù)的信號(hào)通道作為總線。 圖8 RS-422與RS-485傳輸線上匹配的一些說(shuō)明 對(duì)RS-422與RS-485總線網(wǎng)絡(luò)一般要使用終接電阻進(jìn)行匹配。

15、但在短距離與低速率下可以不用考慮終端匹配。那么在什么情況下不用考慮匹配呢?理論上,在每個(gè)接收數(shù)據(jù)信號(hào)的中點(diǎn)進(jìn)行采樣時(shí),只要反射信號(hào)在開始采樣時(shí)衰減到足夠低就可以不考慮匹配。但這在實(shí)際上難以掌握,美國(guó)MAXIM公司有篇文章提到一條經(jīng)驗(yàn)性的原則可以用來(lái)判斷在什么樣的數(shù)據(jù)速率和電纜長(zhǎng)度時(shí)需要進(jìn)行匹配:當(dāng)信號(hào)的轉(zhuǎn)換時(shí)間(上升或下降時(shí)間)超過(guò)電信號(hào)沿總線單向傳輸所需時(shí)間的3倍以上時(shí)就可以不加匹配。例如具有限斜率特性的RS-485接口MAX483輸出信號(hào)的上升或下降時(shí)間最小為250ns,典型雙絞線上的信號(hào)傳輸速率約為0.2m/ns(24AWG PVC電纜),那么只要數(shù)據(jù)速率在250kb/s以內(nèi)、電纜長(zhǎng)度不

16、超過(guò)16米,采用MAX483作為RS-485接口時(shí)就可以不加終端匹配。 一般終端匹配采用終接電阻方法,前文已有提及,RS-422在總線電纜的遠(yuǎn)端并接電阻,RS-485則應(yīng)在總線電纜的開始和末端都需并接終接電阻。終接電阻一般在RS-422網(wǎng)絡(luò)中取100,在RS-485網(wǎng)絡(luò)中取120。相當(dāng)于電纜特性阻抗的電阻,因?yàn)榇蠖鄶?shù)雙絞線電纜特性阻抗大約在100120。這種匹配方法簡(jiǎn)單有效,但有一個(gè)缺點(diǎn),匹配電阻要消耗較大功率,對(duì)于功耗限制比較嚴(yán)格的系統(tǒng)不太適合。 另外一種比較省電的匹配方式是RC匹配,如圖9。利用一只電容C隔斷直流成分可以節(jié)省大部分功率。但電容C的取值是個(gè)難點(diǎn),需要在功耗和匹配質(zhì)量間進(jìn)行折衷

17、。 還有一種采用二極管的匹配方法,如圖10。這種方案雖未實(shí)現(xiàn)真正的“匹配”,但它利用二極管的鉗位作用能迅速削弱反射信號(hào),達(dá)到改善信號(hào)質(zhì)量的目的。節(jié)能效果顯著。 圖9圖10RS-422與RS-485的接地問(wèn)題 電子系統(tǒng)接地是很重要的,但常常被忽視。接地處理不當(dāng)往往會(huì)導(dǎo)致電子系統(tǒng)不能穩(wěn)定工作甚至危及系統(tǒng)安全。RS-422與RS-485傳輸網(wǎng)絡(luò)的接地同樣也是很重要的,因?yàn)榻拥叵到y(tǒng)不合理會(huì)影響整個(gè)網(wǎng)絡(luò)的穩(wěn)定性,尤其是在工作環(huán)境比較惡劣和傳輸距離較遠(yuǎn)的情況下,對(duì)于接地的要求更為嚴(yán)格。否則接口損壞率較高。很多情況下,連接RS-422、RS-485通信鏈路時(shí)只是簡(jiǎn)單地用一對(duì)雙絞線將各個(gè)接口的“A”、“B”端

18、連接起來(lái)。而忽略了信號(hào)地的連接,這種連接方法在許多場(chǎng)合是能正常工作的,但卻埋下了很大的隱患,這有下面二個(gè)原因: 1共模干擾問(wèn)題:正如前文已述,RS-422與RS-485接口均采用差分方式傳輸信號(hào)方式,并不需要相對(duì)于某個(gè)參照點(diǎn)來(lái)檢測(cè)信號(hào),系統(tǒng)只需檢測(cè)兩線之間的電位差就可以了。但人們往往忽視了收發(fā)器有一定的共模電壓范圍,如RS-422共模電壓范圍為-7+7V,而RS-485收發(fā)器共模電壓范圍為-7+12V,只有滿足上述條件,整個(gè)網(wǎng)絡(luò)才能正常工作。當(dāng)網(wǎng)絡(luò)線路中共模電壓超出此范圍時(shí)就會(huì)影響通信的穩(wěn)定可靠,甚至損壞接口。以圖11為例,當(dāng)發(fā)送驅(qū)動(dòng)器A向接收器B發(fā)送數(shù)據(jù)時(shí),發(fā)送驅(qū)動(dòng)器A的輸出共模電壓為VOS

19、,由于兩個(gè)系統(tǒng)具有各自獨(dú)立的接地系統(tǒng),存在著地電位差VGPD。那么,接收器輸入端的共模電壓VCM就會(huì)達(dá)到VCM=VOS+VGPD。RS-422與RS-485標(biāo)準(zhǔn)均規(guī)定VOS3V,但VGPD可能會(huì)有很大幅度(十幾伏甚至數(shù)十伏),并可能伴有強(qiáng)干擾信號(hào),致使接收器共模輸入VCM超出正常范圍,并在傳輸線路上產(chǎn)生干擾電流,輕則影響正常通信,重則損壞通信接口電路。 圖11 2(EMI)問(wèn)題:發(fā)送驅(qū)動(dòng)器輸出信號(hào)中的共模部分需要一個(gè)返回通路,如沒(méi)有一個(gè)低阻的返回通道(信號(hào)地),就會(huì)以輻射的形式返回源端,整個(gè)總線就會(huì)像一個(gè)巨大的天線向外輻射電磁波。 由于上述原因,RS-422、RS-485盡管采用差分平衡傳輸方

20、式,但對(duì)整個(gè)RS-422或RS-485網(wǎng)絡(luò),必須有一條低阻的信號(hào)地。一條低阻的信號(hào)地將兩個(gè)接口的工作地連接起來(lái),使共模干擾電壓VGPD被短路。這條信號(hào)地可以是額外的一條線(非屏蔽雙絞線),或者是屏蔽雙絞線的屏蔽層。這是最通常的接地方法。 值得注意的是,這種做法僅對(duì)高阻型共模干擾有效,由于干擾源內(nèi)阻大,短接后不會(huì)形成很大的接地環(huán)路電流,對(duì)于通信不會(huì)有很大影響。當(dāng)共模干擾源內(nèi)阻較低時(shí),會(huì)在接地線上形成較大的環(huán)路電流,影響正常通信。筆者認(rèn)為,可以采取以下三種措施: (1) 如果干擾源內(nèi)阻不是非常小,可以在接地線上加限流電阻以限制干擾電流。接地電阻的增加可能會(huì)使共模電壓升高,但只要控制在適當(dāng)?shù)姆秶鷥?nèi)就

21、不會(huì)影響正常通信。 (2) 采用浮地技術(shù),隔斷接地環(huán)路。這是較常用也是十分有效的一種方法,當(dāng)共模干擾內(nèi)阻很小時(shí)上述方法已不能奏效,此時(shí)可以考慮將引入干擾的節(jié)點(diǎn)(例如處于惡劣的工作環(huán)境的現(xiàn)場(chǎng)設(shè)備)浮置起來(lái)(也就是系統(tǒng)的電路地與機(jī)殼或大地隔離),這樣就隔斷了接地環(huán)路,不會(huì)形成很大的環(huán)路電流。 (3) 采用隔離接口。有些情況下,出于安全或其它方面的考慮,電路地必須與機(jī)殼或大地相連,不能懸浮,這時(shí)可以采用隔離接口來(lái)隔斷接地回路,但是仍然應(yīng)該有一條地線將隔離側(cè)的公共端與其它接口的工作地相連。參見圖12。 圖12 RS-422與RS-485的網(wǎng)絡(luò)失效保護(hù) RS-422與RS-485標(biāo)準(zhǔn)都規(guī)定了接收器門限為

22、200mV。這樣規(guī)定能夠提供比較高的噪聲抑制能力,如前文所述,當(dāng)接收器A電平比B電平高+200mV以上時(shí),輸出為正邏輯,反之,則輸出為負(fù)邏輯。但由于第三態(tài)的存在,即在主機(jī)在發(fā)端發(fā)完一個(gè)信息數(shù)據(jù)后,將總線置于第三態(tài),即總線空閑時(shí)沒(méi)有任何信號(hào)驅(qū)動(dòng)總線,使AB之間的電壓在-200+200mV直至趨于0V,這帶來(lái)了一個(gè)問(wèn)題:接收器輸出狀態(tài)不確定。如果接收機(jī)的輸出為0V,網(wǎng)絡(luò)中從機(jī)將把其解釋為一個(gè)新的啟動(dòng)位,并試圖讀取后續(xù)字節(jié),由于永遠(yuǎn)不會(huì)有停止位,產(chǎn)生一個(gè)幀錯(cuò)誤結(jié)果,不再有設(shè)備請(qǐng)求總線,網(wǎng)絡(luò)陷于癱瘓狀態(tài)。除上述所述的總線空閑會(huì)造成兩線電壓差低于200mV的情況外,開路或短路時(shí)也會(huì)出現(xiàn)這種情況。故應(yīng)采取

23、一定的措施避免接收器處于不確定狀態(tài)。 圖13 通常是在總線上加偏置,當(dāng)總線空閑或開路時(shí),利用偏置電阻將總線偏置在一個(gè)確定的狀態(tài)(差分電壓-200mV)。如圖13。將A上拉到地,B下拉到5V,電阻的典型值是1k,具體數(shù)值隨電纜的電容變化而變化。 上述方法是比較經(jīng)典的方法,但它仍然不能解決總線短路時(shí)的問(wèn)題,有些廠家將接收門限移到-200mV/-50mV,可解決這個(gè)問(wèn)題。例如Maxim公司的MAX3080系列RS-485接口,不僅省去了外部偏置電阻,而且解決了總線短路情況下的失效保護(hù)問(wèn)題。 RS-422與RS-485的瞬態(tài)保護(hù) 前文提到的信號(hào)接地措施,只對(duì)低頻率的共模干擾有保護(hù)作用,對(duì)于頻率很高的瞬

24、態(tài)干擾就無(wú)能為力了。由于傳輸線對(duì)高頻信號(hào)而言就是相當(dāng)于電感,因此對(duì)于高頻瞬態(tài)干擾,接地線實(shí)際等同于開路。這樣的瞬態(tài)干擾雖然持續(xù)時(shí)間短暫,但可能會(huì)有成百上千伏的電壓。 實(shí)際應(yīng)用環(huán)境下還是存在高頻瞬態(tài)干擾的可能。一般在切換大功率感性負(fù)載如電機(jī)、變壓器、繼電器等或閃電過(guò)程中都會(huì)產(chǎn)生幅度很高的瞬態(tài)干擾,如果不加以適當(dāng)防護(hù)就會(huì)損壞RS-422或RS-485通信接口。對(duì)于這種瞬態(tài)干擾可以采用隔離或旁路的方法加以防護(hù)。 1隔離保護(hù)方法。這種方案實(shí)際上將瞬態(tài)高壓轉(zhuǎn)移到隔離接口中的電隔離層上,由于隔離層的高絕緣電阻,不會(huì)產(chǎn)生損害性的浪涌電流,起到保護(hù)接口的作用。通常采用高頻變壓器、光耦等元件實(shí)現(xiàn)接口的電氣隔離,

25、已有器件廠商將所有這些元件集成在一片IC中,使用起來(lái)非常簡(jiǎn)便,如Maxim公司的MAX1480/MAX1490,隔離電壓可達(dá)2500V。這種方案的優(yōu)點(diǎn)是可以承受高電壓、持續(xù)時(shí)間較長(zhǎng)的瞬態(tài)干擾,實(shí)現(xiàn)起來(lái)也比較容易,缺點(diǎn)是成本較高。 2旁路保護(hù)方法。這種方案利用瞬態(tài)抑制元件(如TVS、MOV、氣體放電管等)將危害性的瞬態(tài)能量旁路到大地,優(yōu)點(diǎn)是成本較低,缺點(diǎn)是保護(hù)能力有限,只能保護(hù)一定能量以內(nèi)的瞬態(tài)干擾,持續(xù)時(shí)間不能很長(zhǎng),而且需要有一條良好的連接大地的通道,實(shí)現(xiàn)起來(lái)比較困難。實(shí)際應(yīng)用中是將上述兩種方案結(jié)合起來(lái)靈活加以運(yùn)用,如圖14。在這種方法中,隔離接口對(duì)大幅度瞬態(tài)干擾進(jìn)行隔離,旁路元件則保護(hù)隔離接

26、口不被過(guò)高的瞬態(tài)電壓擊穿。 常見的I/O設(shè)備及其與PC間的連接方法1、PC-Based設(shè)備常見的PC-Based設(shè)備及其通訊連接方式見表。常見的PC-Based設(shè)備及其通訊連接方式生產(chǎn)商產(chǎn)品型號(hào)設(shè)備端通訊適配器型號(hào)PC端通訊適配器型號(hào)通訊方式研華PC、PCI總線數(shù)據(jù)采集和控制卡、PC/104模塊、CompactPCI工業(yè)控制計(jì)算機(jī)。RS232/RS422/RS485、以太網(wǎng)RS232/RS422/RS485、以太網(wǎng)采集/控制站與操作站合一時(shí),不使用通訊協(xié)議;采集/控制站與操作站不合一時(shí),在采集/控制站上運(yùn)行嵌入式監(jiān)控組態(tài)軟件,通過(guò)TCP/IP、CAN等協(xié)議與操作站通訊ADAM4000系列遠(yuǎn)程數(shù)

27、據(jù)采集控制模塊RS422/RS485RS422/RS485ADAM4000通訊協(xié)議ADAM5000系列數(shù)據(jù)采集控制系統(tǒng)RS232/RS422/RS485/CANRS232/RS422/RS485/CANCAN、Modbus等艾訊PC、PCI總線數(shù)據(jù)采集和控制卡、PC/104模塊、CompactPCI、FamaPLC等工業(yè)控制計(jì)算機(jī)。RS232/RS422/RS485、以太網(wǎng)RS232/RS422/RS485、以太網(wǎng)采集/控制站與操作站合一時(shí),不使用通訊協(xié)議;采集/控制站與操作站不合一時(shí),在采集/控制站上運(yùn)行嵌入式監(jiān)控組態(tài)軟件,通過(guò)TCP/IP、CAN等協(xié)議與操作站通訊。IDAM7000系列遠(yuǎn)程

28、數(shù)據(jù)采集控制模塊RS422/RS485RS422/RS485IDAM7000通訊協(xié)議康泰克PC、PCI總線數(shù)據(jù)采集和控制卡。RS232/RS485、以太網(wǎng)。RS232/ RS485、以太網(wǎng)。采集/控制站與操作站合一時(shí),不使用通訊協(xié)議;采集/控制站與操作站不合一時(shí),在采集/控制站上運(yùn)行嵌入式監(jiān)控組態(tài)軟件,通過(guò)TCP/IP協(xié)議與操作站通訊。Windows CE BOX工業(yè)控制計(jì)算機(jī)。RS232/RS485、以太網(wǎng)RS232/ RS485、以太網(wǎng)。通過(guò)TCP/IP協(xié)議與操作站通訊。研祥PC、PCI總線數(shù)據(jù)采集和控制卡、PC/104模塊、CompactPCI工業(yè)控制計(jì)算機(jī)。RS232/RS422/RS

29、485、以太網(wǎng)。RS232/RS422/RS485、以太網(wǎng)。采集/控制站與操作站合一時(shí),不使用通訊協(xié)議;采集/控制站與操作站不合一時(shí),在采集/控制站上運(yùn)行嵌入式監(jiān)控組態(tài)軟件,通過(guò)TCP/IP、CAN等協(xié)議與操作站通訊。ADAN4000系列遠(yuǎn)程數(shù)據(jù)采集控制模塊RS422/RS485RS422/RS485ADAN4000通訊協(xié)議ADAN5000系列數(shù)據(jù)采集控制系統(tǒng)RS232/RS422/RS485/CAN以太網(wǎng)。RS232/RS422/RS485/CAN/以太網(wǎng)。CAN、Modbus、TCP/IP等。威達(dá)PC、PCI總線數(shù)據(jù)采集和控制卡、PC/104模塊、CompactPCI工業(yè)控制計(jì)算機(jī)。RS2

30、32/RS422/RS485、以太網(wǎng)。RS232/RS422/RS485、以太網(wǎng)。采集/控制站與操作站合一時(shí),不使用通訊協(xié)議;采集/控制站與操作站不合一時(shí),在采集/控制站上運(yùn)行嵌入式監(jiān)控組態(tài)軟件,通過(guò)TCP/IP、CAN等協(xié)議與操作站通訊。牛頓7000、8000系列數(shù)據(jù)采集控制系統(tǒng)。RS232/RS422/RS485/CAN以太網(wǎng)。RS232/RS422/RS485/CAN/以太網(wǎng)。牛頓7000通訊協(xié)議2、PLC設(shè)備常見的PLC設(shè)備及其通訊連接方式見表。常見的PLC設(shè)備及其通訊連接方式生產(chǎn)商產(chǎn)品型號(hào)通訊方式OMRONCPM1RS232/RS422CQM1RS232/RS422、COMPOBUS

31、/S、COMPOBUS/DC1000H/C2000HC200HCVMCVCS1RS232/RS422、Controller Link、SYSMAC LINK、SYSNET、Ethernet、CompoBus/s、CompoBus/DC20H-C60HRS232/RS422MISTUBISHFX系列RS232/RS422A系列Q系列RS232/RS422/USB、PROFIBUS、Modbus、MELSECNET10、CC-Link、EthernetAllen-BradleyControlLogixPLC5SLC500RS232/RS422、DH+/DH485、ControlNet、Ethern

32、et、DeviceNet松下FP0 /FP1FP3FP10SHRS232/RS422、Ethernet、MEWNET、C-NETGE FanucLM90-30LM90-70RS-232/422、Ethernet、GENIUS BUS、PROFIBUS、WorldFip、InterBus-sSchneidernanoRS485Tsx-MICRORS232/RS422Tsx-PremiumTsx-QuantumTsx-MomentumEthernet、Modbus-Plus、RS232(MODBUS)、WorldFip、InterBus、PROFIBUSSiemensS5PROFIBUSS7-20

33、0PPIS7-300S7-400MPI、PROFIBUS、Ethernet3、智能指示、控制儀表及控制器目前國(guó)內(nèi)外的智能儀表廠商有數(shù)千家,產(chǎn)品種類繁多,難以歸納,其中數(shù)字指示儀、單(多)回路調(diào)節(jié)器、流量積算儀、智能終端、樓宇自控設(shè)備所占比重較大,這里不一一列舉。這些儀表與計(jì)算機(jī)間的通訊方式以RS485居多,但越來(lái)越多的產(chǎn)品會(huì)增加現(xiàn)場(chǎng)總線的通訊接口,智能控制器、樓宇自控設(shè)備使用現(xiàn)場(chǎng)總線的較多(如LonWorks、C-Bus等)。在這方面較有影響的廠商有霍尼韋爾、橫河、富士電機(jī)、山武、歐陸、慕爾、ABB、H&B、梅特勒-托利多、GEFRAN等。 計(jì)算機(jī)與PLC的通訊可編程序控制器(PLC)都有一個(gè)

34、編程口。以日本三菱公司生產(chǎn)的PLC為例(包括FX系列和A系列),其編程口為RS-422格式,根據(jù)PLC型號(hào)不同又分為8針座編程口和25針座編程口。對(duì)于后者,可直接將SC08編程電纜將PLC的編程口和微型計(jì)算機(jī)的RS232口連接起來(lái);對(duì)于后者,則還需要一根轉(zhuǎn)換電纜將PLC 的8針座編程口和25針編程電纜相連。無(wú)論何種情況,一旦將PLC用戶程序由微型計(jì)算機(jī)編程環(huán)境傳到PLC 用戶程序區(qū),其編程口大多就沒(méi)有被再利用。其實(shí),這是一種浪費(fèi)。也就是說(shuō),可利用此編程口實(shí)現(xiàn)微型計(jì)算機(jī)和PLC 的數(shù)據(jù)通訊,將PLC的工作狀態(tài)納入微型計(jì)算機(jī)管理之下。編程口操作命令類型與通訊端口初始化串行通訊是計(jì)算機(jī)與其它機(jī)器之間

35、進(jìn)行通訊的一種常用方法,在WINDOWS操作系統(tǒng)中提供了實(shí)現(xiàn)各種串行通訊的API函數(shù)。通過(guò)SC08編程電纜或FX232AW模塊,可將微型計(jì)算機(jī)的串行通訊口RS232和PLC 的編程口連接起來(lái),這樣微型計(jì)算機(jī)就可對(duì)PLC的RAM區(qū)數(shù)據(jù)進(jìn)行讀、寫操作。由PLC本身所具有的特性,可對(duì)PLC進(jìn)行以下四種類型的操作:(1)位元件或字元件狀態(tài)讀操作(CMD0);(2)位元件或字元件狀態(tài)寫操作(CMD1);(3)位元件強(qiáng)制ON操作(CMD7);(4)位元件強(qiáng)制OFF操作(CMD8)。另外,在進(jìn)行上述四類操作以前,首先要對(duì)端口進(jìn)行初始化操作,即設(shè)定通訊協(xié)議(包括設(shè)置通訊波特率、數(shù)據(jù)位數(shù)、數(shù)據(jù)停止位及奇偶校驗(yàn))

36、。在WINDOWS的SDK中定義了一個(gè)結(jié)構(gòu)DCB,該結(jié)構(gòu)詳細(xì)地說(shuō)明了如何對(duì)通訊端口進(jìn)行控制,所以通訊端口的初始化也是圍繞著對(duì)這個(gè)結(jié)構(gòu)的正確設(shè)置為中心進(jìn)行的。用VC語(yǔ)言實(shí)現(xiàn)端口初始化如下:BOOL CSerial:Open(int nPort)/nPort 為微型計(jì)算機(jī)串行通訊口端口號(hào)。nport=1為端口1;nPort=2為端口2。char szPort15;DCB dob;m_hIDComDev=CreateFile(szPort, GENERIC_READGENERIC_WRITE,O,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMALFILE_FLAG_OV

37、ERLAPPED,NULL);dcb.DCB1ength=sizeof(DCB);GetCommState(m_hIDComDev,&dcb);/取得通訊資源當(dāng)前設(shè)置dcb.BaudRate=9600;/設(shè)定波特率為9600dcb.ByteSize=7;/7數(shù)據(jù)位dcb.Parity=2;/偶校驗(yàn)dcb.StopBits=0;/設(shè)定1個(gè)停止位if(SetCommState(m_hIDComDev,&dcb)return(TRUE);else return(FALSE);/設(shè)置端口,若設(shè)置成功則返回TRUE,否則返回FALSE需要說(shuō)明的是CSerial是一個(gè)用于串行通訊的類,它包含了進(jìn)行串行通訊

38、的所需的函數(shù)。除上述端口初始化成員函數(shù)Open外,還包括另兩個(gè)重要成員函數(shù):一個(gè)是endData,把數(shù)據(jù)從一個(gè)緩沖區(qū)發(fā)送到串行端口。另一個(gè)是ReadData,從端口的接收緩沖區(qū)中讀入數(shù)據(jù)。其次,在每進(jìn)行一次上述四類操作中的一種操作以前,還要進(jìn)行握手聯(lián)絡(luò)。對(duì)PLC發(fā)請(qǐng)求訊號(hào)ENQ(代碼為OX05),然后讀PLC 的響應(yīng)訊號(hào)。如果讀到的響應(yīng)訊號(hào)為ACK(代碼為OX06),則表示PLC已準(zhǔn)備就緒,等待接收通訊數(shù)據(jù)。握手聯(lián)絡(luò)VC語(yǔ)言示PLC已準(zhǔn)備就緒,等待接收通訊數(shù)據(jù)。握手聯(lián)絡(luò)VC語(yǔ)言實(shí)現(xiàn)為:BOOL CNTJD1g:ReadFromPLC(char *Read_char char *Read_add

39、ress,int Read_bytes)CSerial Serial;/用于串行通訊的類char read_BUFFER;if(Serial.Open(2)/初始化串行口通訊口COM2Serial.SendData(&ENQ_request,1);/發(fā)送聯(lián)絡(luò)訊號(hào)Sleep(1000);/等待1秒鐘Serial.ReadData(&read_BUFFER,1);/讀取PLC響應(yīng)訊號(hào)if(read_BUFFER=ACK)如果PLC響應(yīng)訊號(hào)等于ACK,則進(jìn)行上述四種操作:Serial.Close():/操作完畢后,關(guān)閉通訊口編程口命令操作(1)位元件或字元件狀態(tài)讀操作操作對(duì)象元件:PLC內(nèi)部的X、Y

40、、M、S、T、C、D元件;命令格式:說(shuō)明:為讀命令起始標(biāo)志STX,代碼為OX02;為位元件或字元件狀態(tài)讀命令CMDO,命令代碼為OX30;為讀位元件或字元件的4位起始地址,高位先發(fā),低位后發(fā),且是以ASCII碼的形式發(fā)送;為一次讀取位元件或字元件的個(gè)數(shù),最多一次可讀取OXff個(gè)字節(jié)的元件,以ASCII碼的形式發(fā)送;為停止位標(biāo)志ETX,代碼為OX03;為2位和校驗(yàn),和累計(jì)為、項(xiàng)代碼,取其和最低兩位轉(zhuǎn)化成ASCII碼,高位先發(fā),低位后發(fā)。在發(fā)送完上述命令格式代碼后,就可直接讀取PLC響應(yīng)的信息。響應(yīng)信息格式如下:VC語(yǔ)言實(shí)現(xiàn):BOOL CNTJDlg:ReadFromPLC(char *Read_

41、char char*Read_address, int Read_bytes)char senddatasum_CHECK2;char readdatasum_CHECK2; char total_DATABYTES2;char readdatasum_check2;int readdata_sum;int datasum_check=0;int i;Serial.SendData(&STX_start,1);/向PLC發(fā)送“開始”標(biāo)志代碼Serial.SendData(&CMDO_read,1);/發(fā)送“讀”命令代碼datasum_check+=CMDO_read;for(i=0;i4;i+

42、)Serial.SendData(&Read_addressi,1);/發(fā)送起始元件地址的ASCII代碼datasum_check+=Read_addressi;Change to ASCII(total DATABYTES,Read_bytes);/將字節(jié)數(shù)轉(zhuǎn)化成ASCII代碼for (i=0;i2;i+)Serial.SendData(&total_DATABYTESi,1);/發(fā)送元件字節(jié)數(shù)的ASCII代碼)datasum_check+total_DATABYTESi;Serial.SendData(&ETX_end,1);/發(fā)送“結(jié)束”標(biāo)志代碼senddatasum_CHECK+ETX

43、_end;Change_to_ASCII(senddatasum_CHECK,senddatasum_CHECK);/將“和”轉(zhuǎn)化成ASCII碼for (i=0;i2;i+) Serial.SendData(&senddatasum_CHECKi,1);Sleep(1000);/等待PLC響應(yīng)Serial.ReadData(&read_BUFFER,1);if(read_BUFFER=STX_start)readdata_sum=0;for(i=0;i2*Read_bytes;i+)Serial.ReadData(&Read_chari,1);/讀Read_bytes個(gè)字節(jié)readdata_s

44、um+Read_chari;Serial.ReadData(&read_BUFFER,1);if(read_BUFFER=ETX_end)Serial.ReadData(readdatasum_CHECK,2);/讀入的“和”的低2位ASCII碼Readdata_sum+=ETX_end;Change_to_ASCII(readdatasum_check,readdata_sum);/將計(jì)算得到的“和”轉(zhuǎn)化成ASCII碼if(*readdatasum_CHECK=*readdatasum_check)/“和”校驗(yàn)AfxMessageBox(“數(shù)據(jù)讀出成功!”)return TRUE;else

45、AfxMessageBox(“校驗(yàn)錯(cuò)誤”)return FALSE.(2)位元件或字元件狀態(tài)寫操作操作對(duì)象元件:同3(1);命令格式:說(shuō)明:為寫命令起始標(biāo)志STX,代碼為OX02;為位元件或字元件狀態(tài)寫命令CMD1,命令代碼為OX31;為寫位元件或字元件的4位起始地址,高位先發(fā),低位后發(fā),且是以ASCII碼的形式發(fā)送;為一次寫入位元件或字元件的個(gè)數(shù),以ASCII碼的形式發(fā)送;為待寫到PLC RAM區(qū)的數(shù)據(jù)DATA,以ASCII碼形式發(fā)送;為停止位標(biāo)志ETX,代碼為OX03;為2位和校驗(yàn),和累計(jì)為、項(xiàng)代碼,取其和最低兩位轉(zhuǎn)化成ASCII碼,高位先發(fā),低位后發(fā)。VC語(yǔ)言實(shí)現(xiàn):BOOL CNTJDl

46、g:WritePLC(char *data_ADDRESS,char *Write_ASC,int bytesnumber)char total_BYTES2;char senddatasum_CHECK2;char read_BUFFER;char read_finishBUFFER;int datasum_check=0; int i=0;Serial.SendData(&STX_start,1);/向PLC發(fā)送“開始”標(biāo)志代碼datasum_check=0;Serial.SendData(&CMD1_write,1);/發(fā)送“寫”命令代碼datasum_check+CMD1_write;

47、for(i=0;i4;i+) Serial.SendData(&data_ADDRESSi,1);/發(fā)送起始元件地址的ASCII碼datasum_check+=data_ADDRESSi;Change_to_ASCII(total_DATABYTES,bytesnumber);/將字節(jié)數(shù)轉(zhuǎn)化成ASCII碼for(i=0;i2;i+)Serial.SendData(&total_BYTES,1);/發(fā)送元件字節(jié)數(shù)的ASCII代碼datasum_check+=total_BYTESi;for i=0;ibytesnumber*2;i+)Serial.SendData(&Write_ASCi,1);

48、/發(fā)送要寫入的數(shù)據(jù)的ASCII碼datasum_check+=Write_ASCi;Serial.SendData(&ETX_end,1);/發(fā)送“結(jié)束”標(biāo)志代碼datasum_check+=ETX_end;Change_to_ASCII(senddatasum_CHECK,datasum_check);/將“和”轉(zhuǎn)化成ASCII碼Serial.SendData(&senddatasum_CHECK,2);Sleep(1000);Serial.ReadData(&read_finishBUFFER,1);if (read_finishBUFFER=ACK_reply)AfxMessageBox(“數(shù)據(jù)寫入 OK”)return TRUE;else AfxMessageBox(“數(shù)據(jù)寫入失敗”)return FALSE。(3)位元件強(qiáng)制ON操作操作對(duì)象:X、Y、M、S、T、C元件;命令格式:說(shuō)明:為強(qiáng)制ON命令起始標(biāo)志STX,代碼為OX02;為強(qiáng)制ON命令CMD7,命令代碼為OX37;為強(qiáng)制ON位元件4位起始地址,高位先發(fā),低位后發(fā),是以ASCII碼形式發(fā)送;為停止位標(biāo)志ETX

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論