串口通訊-通信協(xié)議.docx
《串口通訊-通信協(xié)議.docx》由會(huì)員分享,可在線閱讀,更多相關(guān)《串口通訊-通信協(xié)議.docx(9頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
串口通訊—通信協(xié)議 所謂通信協(xié)議是指通信雙方的一種約定。約定包括對(duì)數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯(cuò)方式以及控制字符定義等問(wèn)題做出統(tǒng)一規(guī)定,通信雙方必須共同遵守。因此,也叫做通信控制規(guī)程,或稱傳輸控制規(guī)程,它屬于ISOS OSI七層參考模型中的數(shù)據(jù)鏈路層。 目前,采用的通信協(xié)議有兩類:異步協(xié)議和同步協(xié)議。同步協(xié)議又有面向字符和面向比特以及面向字節(jié)計(jì)數(shù)三種。其中,面向字節(jié)計(jì)數(shù)的同步協(xié)議主要用于DEC公司的網(wǎng)絡(luò)體系結(jié)構(gòu)中。 一、物理接口標(biāo)準(zhǔn) 1.串行通信接口的基本任務(wù) (1)實(shí)現(xiàn)數(shù)據(jù)格式化:因?yàn)閬?lái)自CPU的是普通的并行數(shù)據(jù),所以,接口電路應(yīng)具有實(shí)現(xiàn)不同串行通信方式下的數(shù)據(jù)格式化的任務(wù)。在異步通信方式下,接口自動(dòng)生成起止式的幀數(shù)據(jù)格式。在面向字符的同步方式下,接口要在待傳送的數(shù)據(jù)塊前加上同步字符。 (2)進(jìn)行串-并轉(zhuǎn)換:串行傳送,數(shù)據(jù)是一位一位串行傳送的,而計(jì)算機(jī)處理數(shù)據(jù)是并行數(shù)據(jù)。所以當(dāng)數(shù)據(jù)由計(jì)算機(jī)送至數(shù)據(jù)發(fā)送器時(shí),首先把串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)才能送入計(jì)算機(jī)處理。因此串并轉(zhuǎn)換是串行接口電路的重要任務(wù)。 (3)控制數(shù)據(jù)傳輸速率:串行通信接口電路應(yīng)具有對(duì)數(shù)據(jù)傳輸速率——波特率進(jìn)行選擇和控制的能力。 (4)進(jìn)行錯(cuò)誤檢測(cè):在發(fā)送時(shí)接口電路對(duì)傳送的字符數(shù)據(jù)自動(dòng)生成奇偶校驗(yàn)位或其他校驗(yàn)碼。在接收時(shí),接口電路檢查字符的奇偶校驗(yàn)或其他校驗(yàn)碼,確定是否發(fā)生傳送錯(cuò)誤。 (5)進(jìn)行TTL與EIA電平轉(zhuǎn)換:CPU和終端均采用TTL電平及正邏輯,它們與EIA采用的電平及負(fù)邏輯不兼容,需在接口電路中進(jìn)行轉(zhuǎn)換。 (6)提供EIA-RS-232C接口標(biāo)準(zhǔn)所要求的信號(hào)線:遠(yuǎn)距離通信采用MODEM時(shí),需要9根信號(hào)線;近距離零MODEM方式,只需要3根信號(hào)線。這些信號(hào)線由接口電路提供,以便與MODEM或終端進(jìn)行聯(lián)絡(luò)與控制。 2、串行通信接口電路的組成 為了完成上述串行接口的任務(wù),串行通信接口電路一般由可編程的串行接口芯片、波特率發(fā)生器、EIA與TTL電平轉(zhuǎn)換器以及地址譯碼電路組成。其中,串行接口芯片,隨著大規(guī)模繼承電路技術(shù)的發(fā)展,通用的同步(USRT)和異步(UART)接口芯片種類越來(lái)越多,如下表所示。它們的基本功能是類似的,都能實(shí)現(xiàn)上面提出的串行通信接口基本任務(wù)的大部分工作,且都是可編程的。才用這些芯片作為串行通信接口電路的核心芯片,會(huì)使電路結(jié)構(gòu)比較簡(jiǎn)單。 芯片 同步(USRT) 異步(UART)(起止式) 傳輸速率b/s 面向字符 HDLC 同步 異步 INS8250 56K MC6850 1M MC6852 1.5M MC6854 1.5M Int8251A 64K 19.2K Int8273 64K Z-80 SIO 800K 3.有關(guān)串行通信的物理標(biāo)準(zhǔn) 為使計(jì)算機(jī)、電話以及其他通信設(shè)備互相溝通,現(xiàn)在,已經(jīng)對(duì)串行通信建立了幾個(gè)一致的概念和標(biāo)準(zhǔn),這些概念和標(biāo)準(zhǔn)屬于三個(gè)方面:傳輸率,電特性,信號(hào)名稱和接口標(biāo)準(zhǔn)。 1、傳輸率:所謂傳輸率就是指每秒傳輸多少位,傳輸率也常叫波特率。國(guó)際上規(guī)定了一個(gè)標(biāo)準(zhǔn)波特率系列,標(biāo)準(zhǔn)波特率也是最常用的波特率,標(biāo)準(zhǔn)波特率系列為110、300、600、1200、4800、9600和19200。大多數(shù)CRT終端都能夠按110到9600范圍中的任何一種波特率工作。打印機(jī)由于機(jī)械速度比較慢而使傳輸波特率受到限制,所以,一般的串行打印機(jī)工作在110波特率,點(diǎn)針式打印機(jī)由于其內(nèi)部有較大的行緩沖區(qū),所以可以按高達(dá)2400波特的速度接收打印信息。大多數(shù)接口的接收波特率和發(fā)送波特率可以分別設(shè)置,而且,可以通過(guò)編程來(lái)指定。 2、RS-232-C標(biāo)準(zhǔn):RS-232-C標(biāo)準(zhǔn)對(duì)兩個(gè)方面作了規(guī)定,即信號(hào)電平標(biāo)準(zhǔn)和控制信號(hào)線的定義。RS-232-C采用負(fù)邏輯規(guī)定邏輯電平,信號(hào)電平與通常的TTL電平也不兼容,RS-232-C將-5V~-15V規(guī)定為“1”,+5V~+15V規(guī)定為“0”。圖1是TTL標(biāo)準(zhǔn)和RS-232-C標(biāo)準(zhǔn)之間的電平轉(zhuǎn)換。 圖1 二、軟件協(xié)議 1.OSI協(xié)議和TCP/IP協(xié)議 圖2 (1)OSI協(xié)議 OSI七層參考模型不是通訊標(biāo)準(zhǔn),它只給出一個(gè)不會(huì)由于技術(shù)發(fā)展而必須修改的穩(wěn)定模型,使有關(guān)標(biāo)準(zhǔn)和協(xié)議能在模型定義的范圍內(nèi)開(kāi)發(fā)和相互配合。 一般的通訊協(xié)議只符合OSI七層模型的某幾層,如: EIA-RS-232-C:實(shí)現(xiàn)了物理層。 IBM的SDLC(同步數(shù)據(jù)鏈路控制規(guī)程):數(shù)據(jù)鏈路層。ANSI的ADCCP(先進(jìn)數(shù)據(jù)通訊規(guī)程):數(shù)據(jù)鏈路層IBM的BSC(二進(jìn)制同步通訊協(xié)議):數(shù)據(jù)鏈路層。應(yīng)用層的電子郵件協(xié)議SMTP只負(fù)責(zé)寄信、POP3只負(fù)責(zé)收信。 (2)TCP/IP協(xié)議 實(shí)現(xiàn)了五層協(xié)議。 (1)物理層:對(duì)應(yīng)OSI的物理層。 (2)網(wǎng)絡(luò)接口層:類似于OSI的數(shù)據(jù)鏈路層。 (3)Internet層:OSI模型在Internet網(wǎng)使用前提出,未考慮網(wǎng)間連接。 (4)傳輸層:對(duì)應(yīng)OSI的傳輸層。 (5)應(yīng)用層:對(duì)應(yīng)OSI的表示層和應(yīng)用層。 2.串行通信協(xié)議 串行通信協(xié)議分同步協(xié)議和異步協(xié)議。 (1)異步通信協(xié)議的實(shí)例——起止式異步協(xié)議 圖3 特點(diǎn)與格式: 起止式異步協(xié)議的特點(diǎn)是一個(gè)字符一個(gè)字符傳輸,并且傳送一個(gè)字符總是以起始位開(kāi)始,以停止位結(jié)束,字符之間沒(méi)有固定的時(shí)間間隔要求。其格式如圖3所示。每一個(gè)字符的前面都有一位起始位(低電平,邏輯值0),字符本身有5~7位數(shù)據(jù)位組成,接著字符后面是一位校驗(yàn)位(也可以沒(méi)有校驗(yàn)位),最后是一位,或意味半,或二位停止位,停止位后面是不定長(zhǎng)度的空閑位。停止位和空閑位都規(guī)定為高電平(邏輯值),這樣就保證起始位開(kāi)始處一定有一個(gè)下跳沿。 從圖中可以看出,這種格式是靠起始位和停止位來(lái)實(shí)現(xiàn)字符的界定或同步的,故稱為起始式協(xié)議。傳送時(shí),數(shù)據(jù)的低位在前,高位在后,圖4表示了傳送一個(gè)字符E的ASCAII碼的波形1010001。當(dāng)把它的最低有效位寫到右邊時(shí),就是E的ASCII碼1000101=45H。 圖4 起/止位的作用:起始位實(shí)際上是作為聯(lián)絡(luò)信號(hào)附加進(jìn)來(lái)的,當(dāng)它變?yōu)榈碗娖綍r(shí),告訴收方傳送開(kāi)始。它的到來(lái),表示下面接著是數(shù)據(jù)位來(lái)了,要準(zhǔn)備接收。而停止位標(biāo)志一個(gè)字符的結(jié)束,它的出現(xiàn),表示一個(gè)字符傳送完畢。這樣就為通信雙方提供了何時(shí)開(kāi)始收發(fā),何時(shí)結(jié)束的標(biāo)志。傳送開(kāi)始前,發(fā)收雙方把所采用的起止式格式(包括字符的數(shù)據(jù)位長(zhǎng)度,停止位位數(shù),有無(wú)校驗(yàn)位以及是奇校驗(yàn)還是偶校驗(yàn)等)和數(shù)據(jù)傳輸速率作統(tǒng)一規(guī)定。傳送開(kāi)始后,接收設(shè)備不斷地檢測(cè)傳輸線,看是否有起始位到來(lái)。當(dāng)收到一系列的“1”(停止位或空閑位)之后,檢測(cè)到一個(gè)下跳沿,說(shuō)明起始位出現(xiàn),起始位經(jīng)確認(rèn)后,就開(kāi)始接收所規(guī)定的數(shù)據(jù)位和奇偶校驗(yàn)位以及停止位。經(jīng)過(guò)處理將停止位去掉,把數(shù)據(jù)位拼裝成一個(gè)并行字節(jié),并且經(jīng)校驗(yàn)后,無(wú)奇偶錯(cuò)才算正確的接收一個(gè)字符。一個(gè)字符接收完畢,接收設(shè)備有繼續(xù)測(cè)試傳輸線,監(jiān)視“0”電平的到來(lái)和下一個(gè)字符的開(kāi)始,直到全部數(shù)據(jù)傳送完畢。 由上述工作過(guò)程可看到,異步通信是按字符傳輸?shù)?,每傳輸一個(gè)字符,就用起始位來(lái)通知收方,以此來(lái)重新核對(duì)收發(fā)雙方同步。若接收設(shè)備和發(fā)送設(shè)備兩者的時(shí)鐘頻率略有偏差,這也不會(huì)因偏差的累積而導(dǎo)致錯(cuò)位,加之字符之間的空閑位也為這種偏差提供一種緩沖,所以異步串行通信的可靠性高。但由于要在每個(gè)字符的前后加上起始位和停止位這樣一些附加位,使得傳輸效率變低了,只有約80%。因此,起止協(xié)議一般用在數(shù)據(jù)速率較慢的場(chǎng)合(小于19.2kbit/s)。在高速傳送時(shí),一般要采用同步協(xié)議。 (2)面向字符的同步協(xié)議 特點(diǎn)與格式:這種協(xié)議的典型代表是IBM公司的二進(jìn)制同步通信協(xié)議(BSC)。它的特點(diǎn)是一次傳送由若干個(gè)字符組成的數(shù)據(jù)塊,而不是只傳送一個(gè)字符,并規(guī)定了10個(gè)字符作為這個(gè)數(shù)據(jù)塊的開(kāi)頭與結(jié)束標(biāo)志以及整個(gè)傳輸過(guò)程的控制信息,它們也叫做通信控制字。由于被傳送的數(shù)據(jù)塊是由字符組成,故被稱作面向字符的協(xié)議。 特定字符(控制字符)的定義:由上面的格式可以看出,數(shù)據(jù)塊的前后都加了幾個(gè)特定字符。SYN是同步字符(synchronous Character),每一幀開(kāi)始處都有SYN,加一個(gè)SYN的稱單同步,加兩個(gè)SYN的稱雙同步設(shè)置同步字符是起聯(lián)絡(luò)作用,傳送數(shù)據(jù)時(shí),接收端不斷檢測(cè),一旦出現(xiàn)同步字符,就知道是一幀開(kāi)始了。接著的SOH是序始字符(Start Of Header),它表示標(biāo)題的開(kāi)始。標(biāo)題中包括院地址、目的地址和路由指示等信息。STX是文始字符(Start Of Text),它標(biāo)志著傳送的正文(數(shù)據(jù)塊)開(kāi)始。數(shù)據(jù)塊就是被傳送的正文內(nèi)容,由多個(gè)字符組成。數(shù)據(jù)塊后面是組終字符ETB(End Of Transmission Block)或文終字符ETX(End Of Text),其中ETB用在正文很長(zhǎng)、需要分成若干個(gè)分?jǐn)?shù)據(jù)塊、分別在不同幀中發(fā)送的場(chǎng)合,這時(shí)在每個(gè)分?jǐn)?shù)據(jù)塊后面用文終字符ETX。一幀的最后是校驗(yàn)碼,它對(duì)從SOH開(kāi)始到ETX(或ETB)字段進(jìn)行校驗(yàn),校驗(yàn)方式可以是縱橫奇偶校驗(yàn)或CRC。另外,在面向字符協(xié)議中還采用了一些其他通信控制字,它們的名稱如下表所示: 名 稱 ASCII EBCDIC 序始(SOH) 0000001 00000001 文始(STX) 0000010 00000010 組終(ETB) 0010111 00100110 文終(ETX) 0000011 00000011 同步(SYN) 0010110 00110010 送畢(EOT) 0000100 00110111 詢問(wèn)(ENQ) 0000101 00101101 確認(rèn)(ACK) 0000110 00101110 否認(rèn)(NAK) 0010101 00111101 轉(zhuǎn)義(DLE) 0010000 00010000 數(shù)據(jù)透明的實(shí)現(xiàn):面向字符的同步協(xié)議,不象異步起止協(xié)議那樣,需要在每個(gè)字符前后附加起始和停止位,因此,傳輸效率提高了。同時(shí),由于采用了一些傳輸控制字,故增強(qiáng)了通信控制能力和校驗(yàn)功能。但也存在一些問(wèn)題,例如,如何區(qū)別數(shù)據(jù)字符代碼和特定字符代碼的問(wèn)題,因?yàn)樵跀?shù)據(jù)塊中完全有可能出現(xiàn)與特定字符代碼相同的數(shù)據(jù)字符,這就會(huì)發(fā)生誤解。比如正文有個(gè)與文終字符ETX的代碼相同的數(shù)據(jù)字符,接收端就不會(huì)把它當(dāng)作為普通數(shù)據(jù)處理,而誤認(rèn)為是正文結(jié)束,因而產(chǎn)生差錯(cuò)。因此,協(xié)議應(yīng)具有將特定字符作為普通數(shù)據(jù)處理的能力,這種能力叫做“數(shù)據(jù)透明”。為此,協(xié)議中設(shè)置了轉(zhuǎn)移字符DLE(Data Link Escape)。當(dāng)把一個(gè)特定字符看成數(shù)據(jù)時(shí),在它前面要加一個(gè)DLE,這樣接收器收到一個(gè)DLE就可預(yù)知下一個(gè)字符是數(shù)據(jù)字符,而不會(huì)把它當(dāng)作控制字符來(lái)處理了。DLE本身也是特定字符,當(dāng)它出現(xiàn)在數(shù)據(jù)塊中時(shí),也要在它前面加上另一個(gè)DLE。這種方法叫字符填充。字符填充實(shí)現(xiàn)起來(lái)相當(dāng)麻煩,且依賴于字符的編碼。正是由于以上的缺點(diǎn),故又產(chǎn)生了新的面向比特的同步協(xié)議。 (3)面向比特的同步協(xié)議 特點(diǎn)與格式:面向比特的協(xié)議中最具有代表性的是IBM的同步數(shù)據(jù)鏈路控制規(guī)程SDLC(Synchronous Data Link Control),國(guó)際標(biāo)準(zhǔn)化組織ISO(International Standard Organization)的高級(jí)數(shù)據(jù)鏈路控制規(guī)程HDLC(High Level Data link Control),美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(Americal National Standard Institute)的先進(jìn)數(shù)據(jù)通信規(guī)程ADCCP(Advanced Data Communication Control Procedure)。這些協(xié)議的特點(diǎn)是所傳輸?shù)囊粠瑪?shù)據(jù)可以是任意位,而且它是靠約定的位組合模式,而不是靠特定字符來(lái)標(biāo)志幀的開(kāi)始和結(jié)束,故稱“面向比特”的協(xié)議。這中協(xié)議的一般幀格式如圖5所示: 圖5 幀信息的分段:由圖5可見(jiàn),SDLC/HDLC的一幀信息包括以下幾個(gè)場(chǎng)(Filed),所有場(chǎng)都是從有效位開(kāi)始傳送。 (1)SDLC/HDLC標(biāo)志字符:SDLC/HDLC協(xié)議規(guī)定,所有信息傳輸必須以一個(gè)標(biāo)志字符開(kāi)始,且以同一個(gè)字符結(jié)束。這個(gè)標(biāo)志字符是 01111110,稱標(biāo)志場(chǎng)(F)。從開(kāi)始標(biāo)志到結(jié)束標(biāo)志之間構(gòu)成一個(gè)完整的信息單位,稱為一幀(Frame)。所有的信息是以幀的形傳輸?shù)?,而?biāo)志字符提供了每一幀的邊界。接收端可以通過(guò)搜索“01111110”來(lái)探知幀的開(kāi)頭和結(jié)束,以此建立幀同步。 (2)地址場(chǎng)和控制場(chǎng):在標(biāo)志場(chǎng)之后,可以有一個(gè)地址場(chǎng)A(Address)和一個(gè)控制場(chǎng)C(Control)。地址場(chǎng)用來(lái)規(guī)定與之通信的次站的地址??刂茍?chǎng)可規(guī)定若干個(gè)命令。SDLC規(guī)定A場(chǎng)和C場(chǎng)的寬度為8位或16位。接收方必須檢查每個(gè)地址字節(jié)的第一位,如果為“0”,則后面跟著另一個(gè)地址字節(jié);若為“1”,則該字節(jié)就是最后一個(gè)地址字節(jié)。同理,如果控制場(chǎng)第一個(gè)字節(jié)的第一位為為“0”,則還有第二個(gè)控制場(chǎng)字節(jié),否則就只有一個(gè)字節(jié)。 (3)信息場(chǎng):跟在控制場(chǎng)之后的是信息場(chǎng)I(Information)。I場(chǎng)包含有要傳送的數(shù)據(jù),并不是每一幀都必須有信息場(chǎng)。即數(shù)據(jù)場(chǎng)可以為0,當(dāng)它為0時(shí),則這一幀主要是控制命令。 (4)幀校驗(yàn)信息:緊跟在信息場(chǎng)之后的是兩字節(jié)的爭(zhēng)校驗(yàn),幀校驗(yàn)場(chǎng)稱為FC(Frame Check)場(chǎng)或稱為幀校驗(yàn)序列FCS(Frame check Squence)。SDLC/HDLC均采用16位循環(huán)冗余校驗(yàn)碼CRC(Cyclic Redundancy Code)。除了標(biāo)志場(chǎng)和自動(dòng)插入的“0”以外,所有的信息都參加CRC計(jì)算。 實(shí)際應(yīng)用時(shí)的兩個(gè)技術(shù)問(wèn)題: (1)“0”位插入/刪除:如上所述,SDLC/HDLC協(xié)議規(guī)定以01111110為標(biāo)志字節(jié),但在信息場(chǎng)中也完全有可能有同一種模式的字符,為了把它與標(biāo)志區(qū)分開(kāi)來(lái),所以采取了“0”位插入和刪除技術(shù)。具體作法是發(fā)送端在發(fā)送所有信息(除標(biāo)志字節(jié)外)時(shí),只要遇到連續(xù)5個(gè)“1”,就自動(dòng)插入一個(gè)“0”,當(dāng)接收端在接收數(shù)據(jù)時(shí)(除標(biāo)志字節(jié))如果連續(xù)收到5個(gè)“1”,就自動(dòng)將其后的一個(gè)“0”刪除是,以恢復(fù)信息的原有形式。這種“0”位的插入和刪除過(guò)程是由硬件自動(dòng)完成的。 (2)SDLC/HDLC異常結(jié)束:若在發(fā)送過(guò)程中出現(xiàn)錯(cuò)誤,則SDLC/HDLC協(xié)議常用異常結(jié)束(Abort)字符,或稱為失效序列使本幀作廢。在HDLC規(guī)程中,7個(gè)連續(xù)的“1”被作為失效字符,而在SDLC中失效字符是8個(gè)連續(xù)的“1”。當(dāng)然在試銷序列中不使用“0”位插入/刪除技術(shù)。SDLC/HDLC協(xié)議規(guī)定,在一幀之內(nèi)不允許出現(xiàn)數(shù)據(jù)間隔。在兩幀之間,發(fā)送器可以連續(xù)輸出標(biāo)志字符序列,也可以輸出連續(xù)的高電平,它被稱為空閑(Idle)信號(hào)。- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 串口 通訊 通信協(xié)議
鏈接地址:http://www.820124.com/p-9128023.html