一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解RS232、RS485、RS485、串口&握手

m3eY_edn_china ? 來(lái)源:未知 ? 2018-03-01 09:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、RS232基礎(chǔ)知識(shí)
計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠(yuǎn)程傳輸時(shí),避免了多條線路特性的不一致而被廣泛采用。在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來(lái)進(jìn)行通訊。RS-232-C接口(又稱EIA RS-232-C)是目前最常用的一種串行通訊接口。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ù),代表RS232的最新一次修改(1969),在這之前,有RS232B、RS232A。它是在1970 年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”。

1、電氣特性EIA-RS-232C對(duì)電器特性、邏輯電平和各種信號(hào)線功能都作了規(guī)定。在TxD和RxD上:邏輯1(MARK)=-3V~-15V ,邏輯0(SPACE)=+3~+15V 在RTS、CTS、DSR、DTR和DCD等控制線上:信號(hào)有效(接通,ON狀態(tài),正電壓)=+3V~+15V信號(hào)無(wú)效(斷開,OFF狀態(tài),負(fù)電壓)=-3V~-15V根據(jù)設(shè)備供電電源的不同,+-5、+-10、+-12和+-15這樣的電平都是可能的。
2、連接器機(jī)械特性由于RS-232C并未定義連接器的物理特性,因此,出現(xiàn)了DB-25、DB-15和DB-9各種類型的連接器,其引腳的定義也各不相同。最近,8管腳的RJ-45型連接器變得越來(lái)越普遍,盡管它的管腳分配相差很大。EIA/TIA 561標(biāo)準(zhǔn)規(guī)定了一種管腳分配的方法,但是由Dave Yost發(fā)明的被廣泛使用在Unix計(jì)算機(jī)上的Yost串連設(shè)備配線標(biāo)準(zhǔn) ("Yost Serial Device Wiring Standard")以及其他很多設(shè)備都沒(méi)有采用上述任一種連線標(biāo)準(zhǔn)。下表中列出的是被較多使用的RS-232中的信號(hào)和管腳分配:

信號(hào)的標(biāo)注是從DTE設(shè)備的角度出發(fā)的,TD、DTR和RTS信號(hào)是由DTE產(chǎn)生的,RD、DSR、CTS、DCD和RI信號(hào)是由DCE產(chǎn)生的。PC 機(jī)的RS-232 口為9 芯針插座。一些設(shè)備與PC 機(jī)連接的RS-232 接口,因?yàn)椴皇褂脤?duì)方的傳送控制信號(hào),只需三條接口線,即“發(fā)送數(shù)據(jù)TXD”、“接收數(shù)據(jù)RXD”和“信號(hào)地GND”。

雙向接口能夠只需要3根線制作是因?yàn)镽S-232的所有信號(hào)都共享一個(gè)公共接地。非平衡電路使得RS-232非常的容易受兩設(shè)備間基點(diǎn)電壓偏移的影響。對(duì)于信號(hào)的上升期和下降期,RS-232也只有相對(duì)較差的控制能力,很容易發(fā)生串話的問(wèn)題。RS-232被推薦在短距離(15m以內(nèi))間通信。由于非對(duì)稱電路的關(guān)系,RS-232接口電纜通常不是由雙絞線制作的。
3、傳輸電纜RS-232-C標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸速率為每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特,驅(qū)動(dòng)器允許有2500pF的電容負(fù)載,通信距離將受此電容限制。例如,采用150pF/m的通信電纜時(shí),最大通信距離為15m;若每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號(hào)傳送,存在共地噪聲和不能抑制共模干擾等問(wèn)題,因此一般用于20m以內(nèi)的通信。由RS-232C標(biāo)準(zhǔn)規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長(zhǎng)度應(yīng)為50 英尺,其實(shí)這個(gè)4%的碼元畸變是很保守的,在實(shí)際應(yīng)用中,約有99%的用戶是按碼元畸變10-20%的范圍工作的,所以實(shí)際使用中最大距離會(huì)遠(yuǎn)超過(guò)50英尺,美國(guó)DEC公司曾規(guī)定允許碼元畸變?yōu)?0%而得出下面實(shí)驗(yàn)結(jié)果。其中1 號(hào)電纜為屏蔽電纜,型號(hào)為DECP.NO.9107723 內(nèi)有三對(duì)雙絞線,每對(duì)由22# AWG 組成,其外覆以屏蔽網(wǎng)。2 號(hào)電纜為不帶屏蔽的電纜。型號(hào)為DECP.NO.9105856-04是22#AWG 的四芯電纜。

4、鏈路層

在RS-232標(biāo)準(zhǔn)中,字符是以一系列位元來(lái)一個(gè)接一個(gè)的傳輸。最長(zhǎng)用的編碼格式是異步起停asynchronous start-stop格式,它使用一個(gè)起始位后面緊跟7或8 個(gè)數(shù)據(jù)比特,這個(gè)可能是奇偶位,然后是兩個(gè)停止位。所以發(fā)送一個(gè)字符需要10比特,帶來(lái)的一個(gè)好的效果是使全部的傳輸速率,發(fā)送信號(hào)的速率以10分劃。串行通信在軟件設(shè)置里需要做多項(xiàng)設(shè)置,最常見的設(shè)置包括波特率、奇偶校驗(yàn)和停止位。 波特率是指從一設(shè)備發(fā)到另一設(shè)備的波特率,即每秒鐘多少比特bits per second (bit/s)。典型的波特率是300、1200、2400、9600、19200等bit/s。一般通信兩端設(shè)備都要設(shè)為相同的波特率,但有些設(shè)備也可以設(shè)置為自動(dòng)檢測(cè)波特率。奇偶校驗(yàn)Parity是用來(lái)驗(yàn)證數(shù)據(jù)的正確性。奇偶校驗(yàn)一般不用,如果使用,那么既可以做奇校驗(yàn)也可以做偶校驗(yàn)。奇偶校驗(yàn)是通過(guò)修改每一發(fā)送字節(jié)(也可以限制發(fā)送的字節(jié))來(lái)工作的。如果不作奇偶校驗(yàn),那么數(shù)據(jù)是不會(huì)被改變的。在偶校驗(yàn)中,因?yàn)槠媾夹r?yàn)位會(huì)被相應(yīng)的置1或0(一般是最高位或最低位),所以數(shù)據(jù)會(huì)被改變以使得所有傳送的數(shù)位(含字符的各數(shù)位和校驗(yàn)位)中“1”的個(gè)數(shù)為偶數(shù);在奇校驗(yàn)中,所有傳送的數(shù)位(含字符的各數(shù)位和校驗(yàn)位)中“1”的個(gè)數(shù)為奇數(shù)。奇偶校驗(yàn)可以用于接受方檢查傳輸是否發(fā)送生錯(cuò)誤——如果某一字節(jié)中“1”的個(gè)數(shù)發(fā)生了錯(cuò)誤,那么這個(gè)字節(jié)在傳輸中一定有錯(cuò)誤發(fā)生。如果奇偶校驗(yàn)是正確的,那么要么沒(méi)有發(fā)生錯(cuò)誤要么發(fā)生了偶數(shù)個(gè)的錯(cuò)誤。停止位是在每個(gè)字節(jié)傳輸之后發(fā)送的,它用來(lái)幫助接受信號(hào)方硬件重同步。

在串行通信軟件設(shè)置中D/P/S是常規(guī)的符號(hào)表示。8/N/1(非常普遍)表明8bit數(shù)據(jù),沒(méi)有奇偶校驗(yàn),1bit停止位。數(shù)據(jù)位可以設(shè)置為7、8或者9,奇偶校驗(yàn)位可以設(shè)置為無(wú)(N)、奇(O)或者偶(E),奇偶校驗(yàn)位可以使用數(shù)據(jù)中的比特位,所以8/E/1就表示一共8位數(shù)據(jù)位,其中一位用來(lái)做奇偶校驗(yàn)位。停止位可以是1、1.5或者2位的(1.5是用在波特率為60wpm的電傳打字機(jī)上的)。

5、傳輸控制

當(dāng)需要發(fā)送握手信號(hào)或數(shù)據(jù)完整性檢測(cè)時(shí)需要制定其他設(shè)置。公用的組合有RTS/CTS,DTR/DSR或者XON/XOFF(實(shí)際中不使用連接器管腳而在數(shù)據(jù)流內(nèi)插入特殊字符)。接受方把XON/XOFF信號(hào)發(fā)給發(fā)送方來(lái)控制發(fā)送方何時(shí)發(fā)送數(shù)據(jù),這些信號(hào)是與發(fā)送數(shù)據(jù)的傳輸方向相反的。XON信號(hào)告訴發(fā)送方接受方準(zhǔn)備好接受更多的數(shù)據(jù),XOFF信號(hào)告訴發(fā)送方停止發(fā)送數(shù)據(jù)直到知道接受方再次準(zhǔn)備好。XON/XOFF一般不贊成使用,推薦用RTS/CTS控制流來(lái)代替它們。XON/XOFF是一種工作在終端間的帶內(nèi)方法,但是必須兩端都支持這個(gè)協(xié)議,而且在突然啟動(dòng)的時(shí)候會(huì)有混淆的可能。XON/XOFF可以工作于3線的接口。RTS/CTS最初是設(shè)計(jì)為電傳打字機(jī)和調(diào)制解調(diào)器半雙工協(xié)作通信的,每次它只能一方調(diào)制解調(diào)器發(fā)送數(shù)據(jù)。終端必須發(fā)送請(qǐng)求發(fā)送信號(hào)然后等到調(diào)制解調(diào)器回應(yīng)清除發(fā)送信號(hào)。盡管RTS/CTS是通過(guò)硬件達(dá)到握手,但它有自己的優(yōu)勢(shì)。

6、RS-232標(biāo)準(zhǔn)的不足

經(jīng)過(guò)許多年來(lái)RS-232 器件以及通信技術(shù)的改進(jìn),RS-232 的通信距離已經(jīng)大大增加。由于RS-232 接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點(diǎn):(1) 接口的信號(hào)電平值較高,易損壞接口電路的芯片,又因?yàn)榕cTTL 電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL 電路連接。(2) 傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps?,F(xiàn)在由于采用新的UART 芯片16C550 等,波特率達(dá)到115.2Kbps。(3) 接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式, 這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。(4) 傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50 米,實(shí)際上也只能用在15米左右。

二、RS485基礎(chǔ)知識(shí)

針對(duì)RS-232串口標(biāo)準(zhǔn)的局限性,人們又提出了RS-422,RS-485接口標(biāo)準(zhǔn)。RS-485/422采用平衡發(fā)送和差分接收方式實(shí)現(xiàn)通信:發(fā)送端將串行口的TTL電平信號(hào)轉(zhuǎn)換成差分信號(hào)A、B兩路輸出,經(jīng)過(guò)線纜傳輸之后在接收端將差分信號(hào)還原成TTL電平信號(hào)。由于傳輸線通常使用雙絞線,又是差分傳輸,所以又極強(qiáng)的抗共模干擾的能力,總線收發(fā)器靈敏度很高,可以檢測(cè)到低至200mV電壓。故傳輸信號(hào)在千米之外都是可以恢復(fù)。
1、RS-485 的電氣特性驅(qū)動(dòng)器能輸出±7V的共模電壓接收器的輸入電阻RIN≥12kΩ輸入端的電容≤50pF在節(jié)點(diǎn)數(shù)為32個(gè),配置了120Ω的終端電阻的情況下,驅(qū)動(dòng)器至少還能輸出電壓1.5V(終端電阻的大小與所用雙絞線的參數(shù)有關(guān))發(fā)送端:邏輯"1"以兩線間的電壓差為+(2 至6) V 表示;邏輯"0"以兩線間的電壓差為-(2 至6)V 表示。接收器的輸入靈敏度為200mV(即(V+)-(V-)≥0.2V,表示信號(hào)"0";(V+)-(V-)≤-0.2V,表示信號(hào)"1")
2、傳輸速率與傳輸距離RS-485 的數(shù)據(jù)最高傳輸速率為10Mbps,最大的通信距離約為1219M,傳輸速率與傳輸距離成反比,在10Kb/S的傳輸速率下,才可以達(dá)到最大的通信距離。但是由于RS-485 常常要與PC 機(jī)的RS-232口通信,所以實(shí)際上一般最高115.2Kbps。又由于太高的速率會(huì)使RS-485 傳輸距離減小,所以往往為9600bps 左右或以下。
3、網(wǎng)絡(luò)拓?fù)銻S-485 接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干能力增強(qiáng),即抗噪聲干擾性好。RS-485采用半雙工工作方式,支持多點(diǎn)數(shù)據(jù)通信。RS-485總線網(wǎng)絡(luò)拓?fù)湟话悴捎媒K端匹配的總線型結(jié)構(gòu)。即采用一條總線將各個(gè)節(jié)點(diǎn)串接起來(lái),不支持環(huán)形或星型網(wǎng)絡(luò)。如果需要使用星型結(jié)構(gòu),就必須使用485中繼器或者485集線器才可以。RS-485/422總線一般最大支持32個(gè)節(jié)點(diǎn),如果使用特制的485芯片,可以達(dá)到128個(gè)或者256個(gè)節(jié)點(diǎn),最大的可以支持到400個(gè)節(jié)點(diǎn)。
4、連接器RS-485 的國(guó)際標(biāo)準(zhǔn)并沒(méi)有規(guī)定RS485 的接口連接器標(biāo)準(zhǔn)、所以采用接線端子或者DB-9、DB-25 等連接器都可以。

三、RS422基礎(chǔ)知識(shí)

RS-422 的電氣性能與RS-485近似一樣。主要的區(qū)別在于:

(1)RS-485 有2 根信號(hào)線:發(fā)送和接收都是A 和B。由于RS-485 的收與發(fā)是共用兩根線,所以不能夠同時(shí)收和發(fā)(半雙工)。
(2)RS-422 有4 根信號(hào)線:兩根發(fā)送(Y、Z)、兩根接收(A、B)。由于RS-422 的收與發(fā)是分開的,所以可以同時(shí)收和發(fā)(全雙工)。
(3)支持多機(jī)通信的RS-422將Y-A 短接作為RS-485 的A、將RS-422 的Z-B 短接作為RS-485 的B可以這樣簡(jiǎn)單轉(zhuǎn)換為RS-485。

很多人往往都誤認(rèn)為RS-422串行接口是RS-485串行接口的全雙工版本,實(shí)際上,它們?cè)陔娖魈匦陨洗嬖谥簧俨町?,共模電壓范圍和接收器輸入電阻不同使得該兩個(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ù),反之則不能成立。對(duì)于RS-485串行接口的驅(qū)動(dòng)器,共模電壓的輸出范圍是-7V和+12V之間;對(duì)于RS-422串行接口的驅(qū)動(dòng)器,該項(xiàng)性能指標(biāo)僅有±7V。RS-422串行接口接收器的最小輸入電阻是4KΩ;而RS-485串行接口接收器的最小輸入電阻則是12KΩ。

串口與握手基礎(chǔ)知識(shí)

一、串口基礎(chǔ)知識(shí)

串口是計(jì)算機(jī)上一種非常通用設(shè)備通信的協(xié)議(不要與通用串行總線Universal Serial Bus或者USB混淆)。大多數(shù)計(jì)算機(jī)包含兩個(gè)基于RS232的串口。串口同時(shí)也是儀器儀表設(shè)備通用的通信協(xié)議;很多GPIB兼容的設(shè)備也帶有RS-232口。同時(shí),串口通信協(xié)議也可以用于獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)。串口通信的概念非常簡(jiǎn)單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總常不得超過(guò)20米,并且任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過(guò)2米;而對(duì)于串口而言,長(zhǎng)度可達(dá)1200米。

典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)。
對(duì)于兩個(gè)進(jìn)行通行的端口,這些參數(shù)必須匹配:
1、波特率這是一個(gè)衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個(gè)數(shù)。例如300波特表示每秒鐘發(fā)送300個(gè)bit。當(dāng)我們提到時(shí)鐘周期時(shí),我們就是指波特率例如如果協(xié)議需要4800波特率,那么時(shí)鐘是4800Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為4800Hz。通常電話線的波特率為14400,28800和36600。波特率可以遠(yuǎn)遠(yuǎn)大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設(shè)備的通信。
2、數(shù)據(jù)位這是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)信息包,實(shí)際的數(shù)據(jù)不會(huì)是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于你想傳送的信息。比如,標(biāo)準(zhǔn)的ASCII碼是0~127(7位)。擴(kuò)展的ASCII碼是0~255(8位)。如果數(shù)據(jù)使用簡(jiǎn)單的文本(標(biāo)準(zhǔn) ASCII碼),那么每個(gè)數(shù)據(jù)包使用7位數(shù)據(jù)。每個(gè)包是指一個(gè)字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語(yǔ)“包”指任何通信的情況。
3、停止位用于表示單個(gè)包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。適用于停止位的位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時(shí)也越慢。
4、奇偶校驗(yàn)位在串口通信中一種簡(jiǎn)單的檢錯(cuò)方式。有四種檢錯(cuò)方式:偶、奇、高和低。當(dāng)然沒(méi)有校驗(yàn)位也是可以的。對(duì)于偶和奇校驗(yàn)的情況,串口會(huì)設(shè)置校驗(yàn)位(數(shù)據(jù)位后面的一位),用一個(gè)值確保傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對(duì)于偶校驗(yàn),校驗(yàn)位為0,保證邏輯高的位數(shù)是偶數(shù)個(gè)。如果是奇校驗(yàn),校驗(yàn)位位1,這樣就有3個(gè)邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡(jiǎn)單置位邏輯高或者邏輯低校驗(yàn)。這樣使得接收設(shè)備能夠知道一個(gè)位的狀態(tài),有機(jī)會(huì)判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步
二、握手基礎(chǔ)知識(shí)
RS-232通行方式允許簡(jiǎn)單連接三線:Tx、Rx和地線。但是對(duì)于數(shù)據(jù)傳輸,雙方必須對(duì)數(shù)據(jù)定時(shí)采用使用相同的波特率。盡管這種方法對(duì)于大多數(shù)應(yīng)用已經(jīng)足夠,但是對(duì)于接收方過(guò)載的情況這種使用受到限制。這時(shí)需要串口的握手功能。在這一部分,我們討論三種最常用的RS-232握手形式:軟件握手、硬件握手和Xmodem。1、軟件握手我們討論的第一種握手是軟件握手。通常用在實(shí)際數(shù)據(jù)是控制字符的情況,類似于GPIB使用命令字符串的方式。必須的線仍然是三根:Tx、Rx和地線,因?yàn)榭刂谱址趥鬏斁€上和普通字符沒(méi)有區(qū)別,函數(shù)SetXModem允許用戶使能或者禁止用戶使用兩個(gè)控制字符XON和OXFF。這些字符在通信中由接收方發(fā)送,使發(fā)送方暫停。

例如:假設(shè)發(fā)送方以高波特率發(fā)送數(shù)據(jù)。在傳輸中,接收方發(fā)現(xiàn)由于CPU忙于其他工作,輸入buffer已經(jīng)滿了。為了暫時(shí)停止傳輸,接收方發(fā)送XOFF,典型的值是十進(jìn)制19,即十六進(jìn)制13,直到輸入buffer空了。一旦接收方準(zhǔn)備好接收,它發(fā)送XON,典型的值是十進(jìn)制17,即十六進(jìn)制11,繼續(xù)通信。輸入buffer半滿時(shí),LabWindows發(fā)送XOFF。此外,如果XOFF傳輸被打斷,LabWindows會(huì)在buffer達(dá)到75%和90%時(shí)發(fā)送XOFF。顯然,發(fā)送方必須遵循此守則以保證傳輸繼續(xù)。2、硬件握手第二種是使用硬件線握手。和Tx和Rx線一樣,RTS/CTS和DTR/DSR一起工作,一個(gè)作為輸出,另一個(gè)作為輸入。第一組線是RTS (Request to Send)和CTS(Clear to Send)。當(dāng)接收方準(zhǔn)備好接收數(shù)據(jù),它置高RTS線表示它準(zhǔn)備好了,如果發(fā)送方也就緒,它置高CTS,表示它即將發(fā)送數(shù)據(jù)。另一組線是DTR(Data Terminal Ready)和DSR(Data Set Ready)。這些現(xiàn)主要用于Modem通信。使得串口和Modem通信他們的狀態(tài)。例如:當(dāng)Modem已經(jīng)準(zhǔn)備好接收來(lái)自PC的數(shù)據(jù),它置高DTR線,表示和電話線的連接已經(jīng)建立。讀取DSR線置高,PC機(jī)開始發(fā)送數(shù)據(jù)。一個(gè)簡(jiǎn)單的規(guī)則是DTR/DSR用于表示系統(tǒng)通信就緒,而RTS/CTS用于單個(gè)數(shù)據(jù)包的傳輸。

在LabWindows,函數(shù)SetCTSMode使能或者禁止使用硬件握手。如果CTS模式使能,LabWindows使用如下規(guī)則:當(dāng)PC發(fā)送數(shù)據(jù):RS-232庫(kù)必須檢測(cè)CTS線高后才能發(fā)送數(shù)據(jù)。當(dāng)PC接收數(shù)據(jù):如果端口打開,且輸入隊(duì)列有空接收數(shù)據(jù),庫(kù)函數(shù)置高RTS和DTR。如果輸入隊(duì)列90%滿,庫(kù)函數(shù)置低RTS,但使DTR維持高電平。如果端口隊(duì)列近乎空了,庫(kù)函數(shù)置高RTS,但使DRT維持高電平。如果端口關(guān)閉,庫(kù)函數(shù)置低RTS和DTR。3、XModem握手最后討論的握手叫做XModem文件傳輸協(xié)議。這個(gè)協(xié)議在Modem通信中非常通用。盡管它通常使用在Modem通信中,XModem協(xié)議能夠直接在其他遵循這個(gè)協(xié)議的設(shè)備通信中使用。在LabWindows中,實(shí)際的XModem應(yīng)用對(duì)用戶隱藏了。只要PC和其他設(shè)備使用XModem協(xié)議,在文件傳輸中就使用LabWindows的XModem函數(shù)。函數(shù)是XModemConfig,XModemSend和XModemReceive。

XModem使用介于如下參數(shù)的協(xié)議:start_of_data、end_of_data、neg_ack、wait_delay、 start_delay、max_tries、packet_size。這些參數(shù)需要通信雙方認(rèn)定,標(biāo)準(zhǔn)的XModem有一個(gè)標(biāo)準(zhǔn)的定義:然而,可以通過(guò) XModemConfig函數(shù)修改,以滿足具體需要。這些參數(shù)的使用方法由接收方發(fā)送的字符neg_ack確定。這通知發(fā)送方其準(zhǔn)備接收數(shù)據(jù)。它開始嘗試發(fā)送,有一個(gè)超時(shí)參數(shù)start_delay;當(dāng)超時(shí)的嘗試超過(guò)max_ties次數(shù),或者收到接收方發(fā)送的start_of_data,發(fā)送方停止嘗試。如果從發(fā)送方收到start_of_data,接收方將讀取后繼信息數(shù)據(jù)包。包中含有包的數(shù)目、包數(shù)目的補(bǔ)碼作為錯(cuò)誤校驗(yàn)、packet_size字節(jié)大小的實(shí)際數(shù)據(jù)包,和進(jìn)一步錯(cuò)誤檢查的求和校驗(yàn)值。在讀取數(shù)據(jù)后,接收方會(huì)調(diào)用wait_delay,然后想發(fā)送方發(fā)送響應(yīng)。如果發(fā)送方?jīng)]有收到響應(yīng),它會(huì)重新發(fā)送數(shù)據(jù)包,直到收到響應(yīng)或者超過(guò)重發(fā)次數(shù)的最大值max_tries。如果一直沒(méi)有收到響應(yīng),發(fā)送方通知用戶傳輸數(shù)據(jù)失敗。由于數(shù)據(jù)必須以pack_size個(gè)字節(jié)按包發(fā)送,當(dāng)最后一個(gè)數(shù)據(jù)包發(fā)送時(shí),如果數(shù)據(jù)不夠放滿一個(gè)數(shù)據(jù)包,后面會(huì)填充ASCII碼NULL(0)字節(jié)。這導(dǎo)致接收的數(shù)據(jù)比原數(shù)據(jù)多。在XModem情況下一定不要使用XON/XOFF,因?yàn)閄Modem發(fā)送方發(fā)出包的數(shù)目很可能增加到XON/OFF控制字符的值,從而導(dǎo)致通信故障。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • RS485
    +關(guān)注

    關(guān)注

    39

    文章

    1230

    瀏覽量

    84014
  • RS232
    +關(guān)注

    關(guān)注

    13

    文章

    808

    瀏覽量

    95878

原文標(biāo)題:詳解RS232、RS485、RS485、串口&握手

文章出處:【微信號(hào):edn-china,微信公眾號(hào):EDN電子技術(shù)設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    LTC1334單5V RS232/RS485多協(xié)議收發(fā)器技術(shù)手冊(cè)

    LTC1334 是一款低功率 CMOS 雙向收發(fā)器,具有兩個(gè)可再配置接口端口。該器件可配置為兩個(gè) RS485 差分端口、兩個(gè)雙通道 RS232 單端端口、或者一個(gè) RS485 差分端口和一個(gè)雙通道
    的頭像 發(fā)表于 05-20 14:10 ?265次閱讀
    LTC1334單5V <b class='flag-5'>RS232</b>/<b class='flag-5'>RS485</b>多協(xié)議收發(fā)器技術(shù)手冊(cè)

    LTC2872具集成型終端的RS232 / RS485雙通道多協(xié)議收發(fā)器技術(shù)手冊(cè)

    LTC2872 是一款堅(jiān)固的引腳可配置型收發(fā)器,可支持 RS232、RS485RS422 標(biāo)準(zhǔn),并采用單 3V 至 5.5V 工作電源。LTC2872 可配置為采用共用 I/O 線路的 4 個(gè)
    的頭像 發(fā)表于 05-19 16:28 ?241次閱讀
    LTC2872具集成型終端的<b class='flag-5'>RS232</b> / <b class='flag-5'>RS485</b>雙通道多協(xié)議收發(fā)器技術(shù)手冊(cè)

    LTC2873具可通斷終端的單總線RS485/RS232多協(xié)議收發(fā)器技術(shù)手冊(cè)

    LTC2873 是一款堅(jiān)固的引腳可配置型多協(xié)議收發(fā)器,可支持 RS232RS485RS422 協(xié)議,并采用單 3V 至 5.5V 工作電源。 LTC2873 可配置為采用相同的兩個(gè)總線引腳的一個(gè)半雙工
    的頭像 發(fā)表于 05-19 16:22 ?221次閱讀
    LTC2873具可通斷終端的單總線<b class='flag-5'>RS485</b>/<b class='flag-5'>RS232</b>多協(xié)議收發(fā)器技術(shù)手冊(cè)

    RS485通信的必要性和接線方法

    在探討RS485通信之前,有必要先提及RS232通信。即便您不熟悉RS232通信,您很可能已經(jīng)見過(guò)并使用過(guò)RS232接口——只需查看家中臺(tái)式電腦的機(jī)箱背面即可證實(shí)。
    的頭像 發(fā)表于 04-03 09:17 ?1012次閱讀
    <b class='flag-5'>RS485</b>通信的必要性和接線方法

    STM32F103上位機(jī)升級(jí),RS485升級(jí)、CAN升級(jí)

    STM32F103_IAP開發(fā)板,用STM32F103RCT6主控芯片,例程用標(biāo)準(zhǔn)庫(kù)開發(fā)?;?b class='flag-5'>串口RS232\\RS485通信及CAN接口升級(jí)學(xué)習(xí)方案開發(fā)板。 升級(jí)方案分兩種:用外置FIash和不用
    發(fā)表于 01-03 08:57

    485接口與RS232的區(qū)別 485接口在工業(yè)自動(dòng)化中的應(yīng)用

    在工業(yè)自動(dòng)化和通信領(lǐng)域,485接口(RS485)和RS232是兩種常見的串行通信接口。它們?cè)谠O(shè)計(jì)、應(yīng)用和性能上有著明顯的區(qū)別。 1. 電氣特性 RS232
    的頭像 發(fā)表于 12-19 17:44 ?2219次閱讀

    OpenHarmony測(cè)試RS232/RS485串口方法,觸覺(jué)智能SBC3528工控主板演示

    為大家介紹在鴻蒙系統(tǒng)下,沒(méi)有串口工具的情況下如何測(cè)試RS232/RS485,觸覺(jué)智能SBC3528工控主板演示
    的頭像 發(fā)表于 12-17 14:29 ?958次閱讀
    OpenHarmony測(cè)試<b class='flag-5'>RS232</b>/<b class='flag-5'>RS485</b><b class='flag-5'>串口</b>方法,觸覺(jué)智能SBC3528工控主板演示

    如何構(gòu)建RS485通信網(wǎng)絡(luò) RS485串口助手的使用與配置

    構(gòu)建RS485通信網(wǎng)絡(luò) 構(gòu)建RS485通信網(wǎng)絡(luò)需要考慮網(wǎng)絡(luò)布線、設(shè)備連接、通信協(xié)議等多個(gè)方面。以下是一個(gè)基本的構(gòu)建步驟: 網(wǎng)絡(luò)布線 : 使用雙絞線作為RS485通信的傳輸介質(zhì),通常選擇帶屏蔽層
    的頭像 發(fā)表于 11-28 15:40 ?2976次閱讀

    RS485RS232的區(qū)別和選擇

    RS485RS232是兩種不同的串行通信標(biāo)準(zhǔn),它們?cè)诙鄠€(gè)方面存在顯著的差異,以下是對(duì)兩者的對(duì)比以及選擇建議: 一、區(qū)別 電氣特性 : RS232:是單點(diǎn)通信協(xié)議,使用一對(duì)傳輸線(TX、RX)進(jìn)行
    的頭像 發(fā)表于 11-28 14:26 ?2669次閱讀

    RS232RS485接口之間的區(qū)別

    在現(xiàn)代工業(yè)控制和通信領(lǐng)域,RS232RS485作為兩種常用的串行通信標(biāo)準(zhǔn),各自發(fā)揮著獨(dú)特的作用。它們?cè)陔姎馓匦?、傳輸距離和速率等方面存在顯著差異。本文將對(duì)這兩種接口技術(shù)進(jìn)行深入對(duì)比與分析。 一
    的頭像 發(fā)表于 09-14 14:41 ?1536次閱讀

    RS232RS422、RS485怎么選?串口通信標(biāo)準(zhǔn)的深度剖析!

    RS232RS422、RS485三種串口通訊規(guī)范各有千秋,適用于不同的應(yīng)用場(chǎng)景。RS232適宜短路線、低速簡(jiǎn)單地通訊,
    的頭像 發(fā)表于 09-02 11:51 ?5851次閱讀
    <b class='flag-5'>RS232</b>、<b class='flag-5'>RS</b>422、<b class='flag-5'>RS485</b>怎么選?<b class='flag-5'>串口</b>通信標(biāo)準(zhǔn)的深度剖析!

    EtherCAT轉(zhuǎn)RS232/RS485主站協(xié)議網(wǎng)關(guān)(YC-ECT-RS232/RS485

    遠(yuǎn)創(chuàng)智控YC-ECT-RS232/RS485實(shí)現(xiàn)EtherCAT網(wǎng)絡(luò)與Modbus網(wǎng)絡(luò)之間的數(shù)據(jù)通訊,可分別連接Modbus設(shè)備網(wǎng)絡(luò)到EtherCAT網(wǎng)絡(luò),并且支持具有不同Modbus通訊波特率和其它設(shè)置。即將Modbus設(shè)備轉(zhuǎn)換為EtherCAT設(shè)備。
    的頭像 發(fā)表于 08-25 09:41 ?738次閱讀
    EtherCAT轉(zhuǎn)<b class='flag-5'>RS232</b>/<b class='flag-5'>RS485</b>主站協(xié)議網(wǎng)關(guān)(YC-ECT-<b class='flag-5'>RS232</b>/<b class='flag-5'>RS485</b>)

    RS485 RS232轉(zhuǎn)EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)配置案例

    如何將RS485/RS232和EtherCAT連接互通起來(lái)?有許多朋友想要了解這個(gè)問(wèn)題,所以作者在這里統(tǒng)一回復(fù)一下。其實(shí)捷米特JM-ECT-RTU這個(gè)設(shè)備可以很好地解決這個(gè)問(wèn)題,下面作者為大家詳細(xì)
    的頭像 發(fā)表于 08-02 15:36 ?918次閱讀
    <b class='flag-5'>RS485</b> <b class='flag-5'>RS232</b>轉(zhuǎn)EtherCAT協(xié)議轉(zhuǎn)換網(wǎng)關(guān)配置案例

    RS485 RS232轉(zhuǎn)EtherCAT協(xié)議轉(zhuǎn)化網(wǎng)關(guān)功能及配置步驟

    怎么樣讓RS485/RS232和EtherCAT通訊連接起來(lái)?這幾天有幾個(gè)客戶朋友咨詢到這個(gè)問(wèn)題,作者在這里統(tǒng)一為大家回復(fù)一下。想要解決這個(gè)問(wèn)題其實(shí)也非常簡(jiǎn)單,只需要用到一個(gè)設(shè)備,名為
    的頭像 發(fā)表于 07-30 14:22 ?770次閱讀
    <b class='flag-5'>RS485</b> <b class='flag-5'>RS232</b>轉(zhuǎn)EtherCAT協(xié)議轉(zhuǎn)化網(wǎng)關(guān)功能及配置步驟

    不同設(shè)備RS485的接線方式分享

    總線方式通訊,可以并聯(lián)多個(gè)傳 通訊接口為RS232 時(shí)無(wú)法并聯(lián)多個(gè)設(shè)備。 DTU配置接口串口2為RS232是無(wú)法作為通訊接口使用。 IG網(wǎng)管系列設(shè)備:(通訊接口: 485232) 1. 485
    發(fā)表于 07-24 07:56