在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

詳解RS232 RS485 RS422串口和握手

aIpM_gongkongwo ? 來(lái)源:fqj ? 2019-05-13 09:14 ? 次閱讀

RS232RS485RS422基礎(chǔ)知識(shí)

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

計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線(xiàn)路少、成本低,特別是在遠(yuǎn)程傳輸時(shí),避免了多條線(xiàn)路特性的不一致而被廣泛采用。

在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來(lái)進(jìn)行通訊。RS-232-C接口(又稱(chēng)EIARS-232-C)是目前最常用的一種串行通訊接口。

RS-232-C是美國(guó)電子工業(yè)協(xié)會(huì)EIA(ElectronicIndustryAssociation)制定的一種串行物理接口標(biāo)準(zhǔn)。RS是英文“推薦標(biāo)準(zhǔn)”的縮寫(xiě),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)器廠(chǎng)家及計(jì)算機(jī)終端生產(chǎn)廠(chǎng)家共同制定的用于串行通訊的標(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)線(xiàn)功能都作了規(guī)定。

在TxD和RxD上:邏輯1(MARK)=-3V~-15V,邏輯0(SPACE)=+3~+15V在RTS、CTS、DSR、DTR和DCD等控制線(xiàn)上: 信號(hào)有效(接通,ON狀態(tài),正電壓)=+3V~+15V 信號(hào)無(wú)效(斷開(kāi),OFF狀態(tài),負(fù)電壓)=-3V~-15V

根據(jù)設(shè)備供電電源的不同,+-5、+-10、+-12和+-15這樣的電平都是可能的。

2、連接器機(jī)械特性

由于RS-232C并未定義連接器的物理特性,因此,出現(xiàn)了DB-25、DB-15和DB-9各種類(lèi)型的連接器,其引腳的定義也各不相同。最近,8管腳的RJ-45型連接器變得越來(lái)越普遍,盡管它的管腳分配相差很大。EIA/TIA561標(biāo)準(zhǔn)規(guī)定了一種管腳分配的方法,但是由DaveYost發(fā)明的被廣泛使用在Unix計(jì)算機(jī)上的Yost串連設(shè)備配線(xiàn)標(biāo)準(zhǔn)("YostSerialDeviceWiringStandard")以及其他很多設(shè)備都沒(méi)有采用上述任一種連線(xiàn)標(biāo)準(zhǔn)。下表中列出的是被較多使用的RS-232中的信號(hào)和管腳分配:

詳解RS232 RS485 RS422串口和握手

信號(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),只需三條接口線(xiàn),即“發(fā)送數(shù)據(jù)TXD”、“接收數(shù)據(jù)RXD”和“信號(hào)地GND”。

詳解RS232 RS485 RS422串口和握手

雙向接口能夠只需要3根線(xiàn)制作是因?yàn)镽S-232的所有信號(hào)都共享一個(gè)公共接地。非平衡電路使得RS-232非常的容易受兩設(shè)備間基點(diǎn)電壓偏移的影響。對(duì)于信號(hào)的上升期和下降期,RS-232也只有相對(duì)較差的控制能力,很容易發(fā)生串話(huà)的問(wèn)題。RS-232被推薦在短距離(15m以?xún)?nèi))間通信。由于非對(duì)稱(chēng)電路的關(guān)系,RS-232接口電纜通常不是由雙絞線(xiàn)制作的。

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以?xún)?nèi)的通信。

由RS-232C標(biāo)準(zhǔn)規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長(zhǎng)度應(yīng)為50英尺,其實(shí)這個(gè)4%的碼元畸變是很保守的,在實(shí)際應(yīng)用中,約有99%的用戶(hù)是按碼元畸變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ì)雙絞線(xiàn),每對(duì)由22#AWG組成,其外覆以屏蔽網(wǎng)。2號(hào)電纜為不帶屏蔽的電纜。型號(hào)為DECP.NO.9105856-04是22#AWG的四芯電纜。

詳解RS232 RS485 RS422串口和握手

4、鏈路層在RS-232標(biāo)準(zhǔn)中,字符是以一系列位元來(lái)一個(gè)接一個(gè)的傳輸。最長(zhǎng)用的編碼格式是異步起停asynchronousstart-stop格式,它使用一個(gè)起始位后面緊跟7或8個(gè)數(shù)據(jù)比特,這個(gè)可能是奇偶位,然后是兩個(gè)停止位。所以發(fā)送一個(gè)字符需要10比特,帶來(lái)的一個(gè)好的效果是使全部的傳輸速率,發(fā)送信號(hào)的速率以10分劃。

串行通信在軟件設(shè)置里需要做多項(xiàng)設(shè)置,最常見(jiàn)的設(shè)置包括波特率、奇偶校驗(yàn)和停止位。波特率是指從一設(shè)備發(fā)到另一設(shè)備的波特率,即每秒鐘多少比特bitspersecond(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ò)誤。

詳解RS232 RS485 RS422串口和握手

停止位是在每個(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線(xiàn)的接口。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。現(xiàn)在由于采用新的UART芯片16C550等,波特率達(dá)到115.2Kbps。

(3)接口使用一根信號(hào)線(xiàn)和一根信號(hào)返回線(xiàn)而構(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ò)線(xiàn)纜傳輸之后在接收端將差分信號(hào)還原成TTL電平信號(hào)。由于傳輸線(xiàn)通常使用雙絞線(xiàn),又是差分傳輸,所以又極強(qiáng)的抗共模干擾的能力,總線(xiàn)收發(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(終端電阻的大小與所用雙絞線(xiàn)的參數(shù)有關(guān)) 發(fā)送端:邏輯"1"以?xún)删€(xiàn)間的電壓差為+(2至6)V表示;邏輯"0"以?xún)删€(xiàn)間的電壓差為-(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ù)?/p>

RS-485接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干能力增強(qiáng),即抗噪聲干擾性好。RS-485采用半雙工工作方式,支持多點(diǎn)數(shù)據(jù)通信。

RS-485總線(xiàn)網(wǎng)絡(luò)拓?fù)湟话悴捎媒K端匹配的總線(xiàn)型結(jié)構(gòu)。即采用一條總線(xiàn)將各個(gè)節(jié)點(diǎn)串接起來(lái),不支持環(huán)形或星型網(wǎng)絡(luò)。如果需要使用星型結(jié)構(gòu),就必須使用485中繼器或者485集線(xiàn)器才可以。RS-485/422總線(xiàn)一般最大支持32個(gè)節(jié)點(diǎn),如果使用特制的485芯片,可以達(dá)到128個(gè)或者256個(gè)節(jié)點(diǎn),最大的可以支持到400個(gè)節(jié)點(diǎn)。

詳解RS232 RS485 RS422串口和握手

4、連接器RS-485的國(guó)際標(biāo)準(zhǔn)并沒(méi)有規(guī)定RS485的接口連接器標(biāo)準(zhǔn)、所以采用接線(xiàn)端子或者DB-9、DB-25等連接器都可以。

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

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

(1)RS-485有2根信號(hào)線(xiàn):發(fā)送和接收都是A和B。由于RS-485的收與發(fā)是共用兩根線(xiàn),所以不能夠同時(shí)收和發(fā)(半雙工)。

(2)RS-422有4根信號(hào)線(xiàn):兩根發(fā)送(Y、Z)、兩根接收(A、B)。由于RS-422的收與發(fā)是分開(kāi)的,所以可以同時(shí)收和發(fā)(全雙工)。

(3)支持多機(jī)通信的RS-422將Y-A短接作為RS-485的A、將RS-422的Z-B短接作為RS-485的B可以這樣簡(jiǎn)單轉(zhuǎn)換為RS-485。

詳解RS232 RS485 RS422串口和握手

很多人往往都誤認(rèn)為RS-422串行接口是RS-485串行接口的全雙工版本,實(shí)際上,它們?cè)陔娖魈匦陨洗嬖谥簧俨町悾材k妷悍秶徒邮掌鬏斎腚娮璨煌沟迷搩蓚€(gè)標(biāo)準(zhǔn)適用于不同的應(yīng)用領(lǐng)域。RS-485串行接口的驅(qū)動(dòng)器可用于RS-422串行接口的應(yīng)用中,因?yàn)镽S-485串行接口滿(mǎn)足所有的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é)議(不要與通用串行總線(xiàn)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)的并行通信慢,但是串口可以在使用一根線(xiàn)發(fā)送數(shù)據(jù)的同時(shí)用另一根線(xiàn)接收數(shù)據(jù)。它很簡(jiǎn)單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線(xiàn)總常不得超過(guò)20米,并且任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過(guò)2米;而對(duì)于串口而言,長(zhǎng)度可達(dá)1200米。

詳解RS232 RS485 RS422串口和握手

典型地,串口用于A(yíng)SCII碼字符的傳輸。通信使用3根線(xiàn)完成:(1)地線(xiàn),(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線(xiàn)上發(fā)送數(shù)據(jù)同時(shí)在另一根線(xiàn)上接收數(shù)據(jù)。其他線(xiàn)用于握手,但是不是必須的。串口通信最重要的參數(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ù)線(xiàn)上的采樣率為4800Hz。通常電話(huà)線(xiàn)的波特率為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é),包括開(kāi)始/停止位,數(shù)據(jù)位和奇偶校驗(yàn)位。由于實(shí)際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語(yǔ)“包”指任何通信的情況。

3、停止位

用于表示單個(gè)包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線(xiàn)上定時(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)單連接三線(xiàn):Tx、Rx和地線(xiàn)。但是對(duì)于數(shù)據(jù)傳輸,雙方必須對(duì)數(shù)據(jù)定時(shí)采用使用相同的波特率。盡管這種方法對(duì)于大多數(shù)應(yīng)用已經(jīng)足夠,但是對(duì)于接收方過(guò)載的情況這種使用受到限制。這時(shí)需要串口的握手功能。在這一部分,我們討論三種最常用的RS-232握手形式:軟件握手、硬件握手和Xmodem。1、軟件握手

我們討論的第一種握手是軟件握手。通常用在實(shí)際數(shù)據(jù)是控制字符的情況,類(lèi)似于GPIB使用命令字符串的方式。必須的線(xiàn)仍然是三根:Tx、Rx和地線(xiàn),因?yàn)榭刂谱址趥鬏斁€(xiàn)上和普通字符沒(méi)有區(qū)別,函數(shù)SetXModem允許用戶(hù)使能或者禁止用戶(hù)使用兩個(gè)控制字符XON和OXFF。這些字符在通信中由接收方發(fā)送,使發(fā)送方暫停。

詳解RS232 RS485 RS422串口和握手

例如:假設(shè)發(fā)送方以高波特率發(fā)送數(shù)據(jù)。在傳輸中,接收方發(fā)現(xiàn)由于CPU忙于其他工作,輸入buffer已經(jīng)滿(mǎn)了。為了暫時(shí)停止傳輸,接收方發(fā)送XOFF,典型的值是十進(jìn)制19,即十六進(jìn)制13,直到輸入buffer空了。一旦接收方準(zhǔn)備好接收,它發(fā)送XON,典型的值是十進(jìn)制17,即十六進(jìn)制11,繼續(xù)通信。輸入buffer半滿(mǎn)時(shí),LabWindows發(fā)送XOFF。此外,如果XOFF傳輸被打斷,LabWindows會(huì)在buffer達(dá)到75%和90%時(shí)發(fā)送XOFF。顯然,發(fā)送方必須遵循此守則以保證傳輸繼續(xù)。2、硬件握手

第二種是使用硬件線(xiàn)握手。和Tx和Rx線(xiàn)一樣,RTS/CTS和DTR/DSR一起工作,一個(gè)作為輸出,另一個(gè)作為輸入。第一組線(xiàn)是RTS (Request to Send)和CTS(Clear to Send)。當(dāng)接收方準(zhǔn)備好接收數(shù)據(jù),它置高RTS線(xiàn)表示它準(zhǔn)備好了,如果發(fā)送方也就緒,它置高CTS,表示它即將發(fā)送數(shù)據(jù)。另一組線(xiàn)是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線(xiàn),表示和電話(huà)線(xiàn)的連接已經(jīng)建立。讀取DSR線(xiàn)置高,PC機(jī)開(kāi)始發(fā)送數(shù)據(jù)。一個(gè)簡(jiǎn)單的規(guī)則是DTR/DSR用于表示系統(tǒng)通信就緒,而RTS/CTS用于單個(gè)數(shù)據(jù)包的傳輸。

詳解RS232 RS485 RS422串口和握手

在LabWindows,函數(shù)SetCTSMode使能或者禁止使用硬件握手。如果CTS模式使能,LabWindows使用如下規(guī)則:當(dāng)PC發(fā)送數(shù)據(jù):RS-232庫(kù)必須檢測(cè)CTS線(xiàn)高后才能發(fā)送數(shù)據(jù)。當(dāng)PC接收數(shù)據(jù):如果端口打開(kāi),且輸入隊(duì)列有空接收數(shù)據(jù),庫(kù)函數(shù)置高RTS和DTR。如果輸入隊(duì)列90%滿(mǎn),庫(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ì)用戶(hù)隱藏了。只要PC和其他設(shè)備使用XModem協(xié)議,在文件傳輸中就使用LabWindows的XModem函數(shù)。函數(shù)是XModemConfig,XModemSend和XModemReceive。

詳解RS232 RS485 RS422串口和握手

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ù)修改,以滿(mǎn)足具體需要。這些參數(shù)的使用方法由接收方發(fā)送的字符neg_ack確定。這通知發(fā)送方其準(zhǔn)備接收數(shù)據(jù)。它開(kāi)始嘗試發(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ā)送方通知用戶(hù)傳輸數(shù)據(jù)失敗。由于數(shù)據(jù)必須以pack_size個(gè)字節(jié)按包發(fā)送,當(dāng)最后一個(gè)數(shù)據(jù)包發(fā)送時(shí),如果數(shù)據(jù)不夠放滿(mǎn)一個(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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:【干貨】詳解RS232、RS485、RS422、串口&握手(文章有點(diǎn)長(zhǎng))

文章出處:【微信號(hào):gongkongworld,微信公眾號(hào):工控資料窩】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RS232,RS422RS485標(biāo)準(zhǔn)及應(yīng)用

    RS232,RS422RS485標(biāo)準(zhǔn)及應(yīng)用
    發(fā)表于 08-15 13:13

    詳解RS232RS485RS485串口&握手

    詳解RS232RS485RS485串口&握手 圖文詳解
    發(fā)表于 11-14 10:07

    rs422接口定義 rs232接口定義 rs485接口定義

    rs422接口定義 rs232接口定義 rs485接口定義 Pin 信 號(hào) 定 義  
    發(fā)表于 04-27 17:33 ?1.6w次閱讀

    一種RS232/RS485/RS422接口轉(zhuǎn)換器說(shuō)明

    一種RS232/RS485/RS422接口轉(zhuǎn)換器說(shuō)明 &n
    發(fā)表于 10-17 08:31 ?2.4w次閱讀
    一種<b class='flag-5'>RS232</b>/<b class='flag-5'>RS485</b>/<b class='flag-5'>RS422</b>接口轉(zhuǎn)換器說(shuō)明

    RS232RS422RS485的區(qū)別

    RS232RS422RS485的區(qū)別 1、RS-232-C   RS-232-C是美國(guó)電子工業(yè)協(xié)會(huì)EIA(Electronic I
    發(fā)表于 10-17 08:33 ?3154次閱讀

    RS232C/RS422/RS485行通信標(biāo)準(zhǔn)

    RS232C、RS422/RS485行通信標(biāo)準(zhǔn) 一、RS232C串行接口標(biāo)準(zhǔn)簡(jiǎn)介 RS232
    發(fā)表于 10-17 08:35 ?1.2w次閱讀
    <b class='flag-5'>RS232</b>C/<b class='flag-5'>RS422</b>/<b class='flag-5'>RS485</b><b class='flag-5'>串</b>行通信標(biāo)準(zhǔn)

    RS232RS422RS485的區(qū)別

    RS232RS422RS485的區(qū)別
    發(fā)表于 03-04 17:53 ?38次下載

    TTL CMOS RS232 RS485 RS422各種電平內(nèi)容

    TTL CMOS RS232 RS485 RS422各種電平內(nèi)容
    發(fā)表于 10-31 14:32 ?55次下載
    TTL CMOS <b class='flag-5'>RS232</b> <b class='flag-5'>RS485</b> <b class='flag-5'>RS422</b>各種電平內(nèi)容

    RS232RS485RS422串口握手基礎(chǔ)知識(shí)詳細(xì)介紹

    本文開(kāi)始闡述了RS232RS485RS422相關(guān)的基礎(chǔ)知識(shí),其次介紹了RS232RS485RS4
    發(fā)表于 04-19 10:29 ?3.6w次閱讀
    <b class='flag-5'>RS232</b>、<b class='flag-5'>RS485</b>、<b class='flag-5'>RS422</b>、<b class='flag-5'>串口</b>與<b class='flag-5'>握手</b>基礎(chǔ)知識(shí)詳細(xì)介紹

    RS232RS422RS485有什么區(qū)別

    這三種通訊端口都是串口,在以下幾個(gè)方面有區(qū)別: 1、通訊距離 RS232最大通訊距離是15米,而RS422/485最大通訊距離是120
    的頭像 發(fā)表于 02-23 09:00 ?3.2w次閱讀

    RS485/RS232串口轉(zhuǎn)Modbus網(wǎng)關(guān)

    RS485/RS232串口轉(zhuǎn)Modbus網(wǎng)關(guān)
    發(fā)表于 12-03 16:59 ?2705次閱讀

    RS485或者rs232串口設(shè)備如何上傳mqtt平臺(tái)

    RS485或者rs232串口設(shè)備如何上傳mqtt平臺(tái)
    發(fā)表于 12-03 17:03 ?1821次閱讀

    圖文解 RS485 RS422 RS232 TTL

    圖文詳解 RS485 RS422 RS232 TTLRS485RS422
    發(fā)表于 12-28 20:02 ?121次下載
    圖文解 <b class='flag-5'>RS485</b> <b class='flag-5'>RS422</b> <b class='flag-5'>RS232</b> TTL

    RS485/RS422/RS232覆盆子帽開(kāi)源項(xiàng)目

    電子發(fā)燒友網(wǎng)站提供《RS485/RS422/RS232覆盆子帽開(kāi)源項(xiàng)目.zip》資料免費(fèi)下載
    發(fā)表于 07-29 09:40 ?5次下載
    <b class='flag-5'>RS485</b>/<b class='flag-5'>RS422</b>/<b class='flag-5'>RS232</b>覆盆子帽開(kāi)源項(xiàng)目

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

    RS232RS422RS485三種串口通訊規(guī)范各有千秋,適用于不同的應(yīng)用場(chǎng)景。RS232適宜短路線(xiàn)、低速簡(jiǎn)單地通訊,
    的頭像 發(fā)表于 09-02 11:51 ?4245次閱讀
    <b class='flag-5'>RS232</b>、<b class='flag-5'>RS422</b>、<b class='flag-5'>RS485</b>怎么選?<b class='flag-5'>串口</b>通信標(biāo)準(zhǔn)的深度剖析!
    主站蜘蛛池模板: 黄色国产视频 | 性在线视频 | 亚洲资源最新版在线观看 | 天天爱夜夜 | 精品特级毛片 | 天天做天天爱天天爽综合网 | 国产精品嫩草影院一二三区入口 | 日本欧美一区二区免费视 | 人人公开免费超级碰碰碰视频 | 男女草逼视频 | 五月天亚洲综合 | 最新日本免费一区二区三区中文 | 夜夜操狠狠操 | 日本黄色大片在线播放视频免费观看 | 搜索黄色毛片 | 国内精品久久久久久久久蜜桃 | 亚洲合集综合久久性色 | 亚洲国产成人久久精品影视 | 欧美一二| 久久夜视频 | 亚洲小便| 日本特级淫片免费 | 亚洲日本黄色 | 亚洲 [12p] | 看毛片网站 | 免费在线观看一级片 | 亚洲精品卡1卡二卡3卡四卡 | 亚洲色四在线视频观看 | 色综合成人网 | 91久久国产青草亚洲 | 亚洲色图在线观看视频 | 天天色资料 | 天天做天天添天天谢 | 丁香婷婷在线视频 | 男操女免费视频 | 好紧好湿好黄的视频 | 国产成人综合久久 | 国产在线精品一区二区夜色 | 特黄一级真人毛片 | 大香交伊人 | 婷婷色激情 |