1、RS232通信協(xié)議詳解通信協(xié)議所謂通信協(xié)議是指通信雙方的一種約定。約定包括對數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯方式以及控制字符定義等問題做出統(tǒng)一規(guī)定,通信雙方必須共同遵守。因此,也叫做通信控制規(guī)程,或稱傳輸控制規(guī)程,它屬于ISOSOSI七層參考模型中的數(shù)據(jù)鏈路層。目前,采用的通信協(xié)議有兩類:異步協(xié)議和同步協(xié)議。同步協(xié)議又有面向字符和面向比特以及面向字節(jié)計數(shù)三種。其中,面向字節(jié)計數(shù)的同步協(xié)議主要用于DE公司的網(wǎng)絡(luò)體系結(jié)構(gòu)中。一、物理接口標(biāo)準(zhǔn)1.串行通信接口的基本任務(wù)(1)實現(xiàn)數(shù)據(jù)格式化:因為來自CPU勺是普通的并行數(shù)據(jù),所以,接口電路應(yīng)具有實現(xiàn)不同串行通信方式下的數(shù)據(jù)格式化的任務(wù)。在
2、異步通信方式下,接口自動生成起止式的幀數(shù)據(jù)格式。在面向字符的同步方式下,接口要在待傳送的數(shù)據(jù)塊前加上同步字符。(2)進(jìn)行申-并轉(zhuǎn)換:串行傳送,數(shù)據(jù)是一位一位用行傳送的,而計算機(jī)處理數(shù)據(jù)是并行數(shù)據(jù)。所以當(dāng)數(shù)據(jù)由計算機(jī)送至數(shù)據(jù)發(fā)送器時,首先把串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)才能送入計算機(jī)處理。因此串并轉(zhuǎn)換是串行接口電路的重要任務(wù)。(3)控制數(shù)據(jù)傳輸速率:串行通信接口電路應(yīng)具有對數(shù)據(jù)傳輸速率一一波特率進(jìn)行選擇和控制的能力。(4)進(jìn)行錯誤檢測:在發(fā)送時接口電路對傳送的字符數(shù)據(jù)自動生成奇偶校驗位或其他校驗碼。在接收時,接口電路檢查字符的奇偶校驗或其他校驗碼,確定是否發(fā)生傳送錯誤。(5)進(jìn)行TTL與EIA電平轉(zhuǎn)換:C
3、PU和終端均采用TTL電平及正邏輯,它們與EIA采用的電平及負(fù)邏輯不兼容,需在接口電路中進(jìn)行轉(zhuǎn)換。(6)提供EIA-RS-232C接口標(biāo)準(zhǔn)所要求的信號線:遠(yuǎn)距離通信采用MODEMS,需要9根信號線;近距離零MODEM?式,只需要3根信號線。這些信號線由接口電路提供,以便與MODE減終端進(jìn)行聯(lián)絡(luò)與控制。2、串行通信接口電路的組成為了完成上述申行接口的任務(wù),用行通信接口電路一般由可編程的串行接口芯片、波特率發(fā)生器、EIA與TTL電平轉(zhuǎn)換器以及地址譯碼電路組成。其中,申行接口芯片,隨著大規(guī)模繼承電路技術(shù)的發(fā)展,通用的同步(USRT刑異步(UART接口芯片種類越來越多,如下表所示。它們的基本功能是類似
4、的,都能實現(xiàn)上面提出的串行通信接口基本任務(wù)的大部分工作,且都是可編程的。才用這些芯片作為用行通信接口電路的核心芯片,會使電路結(jié)構(gòu)比較簡單。芯片1JiViCSRT)W(LARD再也式上,專輸速率bA面向y符KDIX同步洋慟INSB250456KWC68504inMC68527i.5n1MC68544L耨Int8251A4V6林19.3KInt827376矚Z-80SIOVdSDOK3.有關(guān)串行通信的物理標(biāo)準(zhǔn)為使計算機(jī)、電話以及其他通信設(shè)備互相溝通,現(xiàn)在,已經(jīng)對串行通信建立了幾個一致的概念和標(biāo)準(zhǔn),這些概念和標(biāo)準(zhǔn)屬于三個方面:傳輸率,電特性,信號名稱和接口標(biāo)準(zhǔn)。1、傳輸率:所謂傳輸率就是指每秒傳輸多
5、少位,傳輸率也常叫波特率。國際上規(guī)定了一個標(biāo)準(zhǔn)波特率系列,標(biāo)準(zhǔn)波特率也是最常用的波特率,標(biāo)準(zhǔn)波特率系列為110、300、600、1200、4800、9600和192000大多數(shù)CRT終端都能夠按110到9600范圍中的任何一種波特率工作。打印機(jī)由于機(jī)械速度比較慢而使傳輸波特率受到限制,所以,一般的串行打印機(jī)工作在110波特率,點針式打印機(jī)由于其內(nèi)部有較大的行緩沖區(qū),所以可以按高達(dá)2400波特的速度接收打印信息。大多數(shù)接口的接收波特率和發(fā)送波特率可以分別設(shè)置,而且,可以通過編程來指定。2、RS-232-C標(biāo)準(zhǔn):RS-232-C標(biāo)準(zhǔn)對兩個方面作了規(guī)定,即信號電平標(biāo)準(zhǔn)和控制信號線的定義。RS-232
6、-C采用負(fù)邏輯規(guī)定邏輯電平,信號電平與通常的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)換。MC148STTLA廠:BS-232-CTAF、軟件協(xié)議1.OSI協(xié)議和TCP/IP協(xié)議應(yīng)用層應(yīng)用層W個表示層表示層會話層會話層*一夕成良傳輸層山/*X場層I網(wǎng)備層*4據(jù)錯路念I(lǐng).看斑蠱層物理層同爭快件)(1) OSI協(xié)議OSI七層參考模型不是通訊標(biāo)準(zhǔn),它只給出一個不會由于技術(shù)發(fā)展而必須修改的穩(wěn)定模型,使有關(guān)標(biāo)準(zhǔn)和協(xié)議能在模型定義的范圍內(nèi)開發(fā)和相互配合。一般的通訊協(xié)議只符合OSI七層模型的某幾層,如:EI
7、A-RS-232-C:實現(xiàn)了物理層。舊M的SDLC(同步數(shù)據(jù)鏈路控制規(guī)程):數(shù)據(jù)鏈路層。ANSI的ADCCP先進(jìn)數(shù)據(jù)通訊規(guī)程):數(shù)據(jù)鏈路層舊M的BSC(二進(jìn)制同步通訊協(xié)議):數(shù)據(jù)鏈路層。應(yīng)用層的電子郵件協(xié)議SMTPR負(fù)責(zé)寄信、POP3只負(fù)責(zé)收信。(2) TCP/IP協(xié)議實現(xiàn)了五層協(xié)議。(1)物理層:對應(yīng)OSI的物理層。(2)網(wǎng)絡(luò)接口層:類似于OSI的數(shù)據(jù)鏈路層。(3) Internet層:OSI模型在Internet網(wǎng)使用前提出,未考慮網(wǎng)間連接。(4)傳輸層:對應(yīng)OSI的傳輸層。(5)應(yīng)用層:對應(yīng)OSI的表示層和應(yīng)用層。2.串行通信協(xié)議串行通信協(xié)議分同步協(xié)議和異步協(xié)議。(1)異步通信協(xié)議的實例
8、一一起止式異步協(xié)議弟(丁。個字符_停奇周t校的位0/10/i0/1o/t0/1o/i0/1低位停苻國Lt校驗他r起T高位款翹流向一第&乜)個字帶T位疑據(jù)起始泣0/1q/i0/10/1a/10/1節(jié)隆邊招出下一不字符的開府特點與格式:起止式異步協(xié)議的特點是一個字符一個字符傳輸,并且傳送一個字符總是以起始位開始,以停止位結(jié)束,字符之間沒有固定的時間間隔要求。其格式如圖3所示。每一個字符的前面都有一位起始位(低電平,邏輯值0),字符本身有57位數(shù)據(jù)位組成,接著字符后面是一位校驗位(也可以沒有校驗位),最后是一位,或意味半,或二位停止位,停止位后面是不定長度的空閑位。停止位和空閑位都規(guī)定為高電平(邏輯
9、值),這樣就保證起始位開始處一定有一個下跳沿。從圖中可以看出,這種格式是靠起始位和停止位來實現(xiàn)字符的界定或同步的,故稱為起始式協(xié)議。傳送時,數(shù)據(jù)的低位在前,高位在后,圖4表示了傳送一個字符E的ASCAII碼的波形1010001。當(dāng)把它的最低有效位寫到右邊時,就是E的ASCII碼1000101=45H呼呼科校停止:IIIIllI.IIII0101000101起/止位的作用:起始位實際上是作為聯(lián)絡(luò)信號附加進(jìn)來的,當(dāng)它變?yōu)榈碗娖綍r,告訴收方傳送開始。它的到來,表示下面接著是數(shù)據(jù)位來了,要準(zhǔn)備接收。而停止位標(biāo)志一個字符的結(jié)束,它的出現(xiàn),表示一個字符傳送完畢。這樣就為通信雙方提供了何時開始收發(fā),何時結(jié)束
10、的標(biāo)志。傳送開始前,發(fā)收雙方把所采用的起止式格式(包括字符的數(shù)據(jù)位長度,停止位位數(shù),有無校驗位以及是奇校驗還是偶校驗等)和數(shù)據(jù)傳輸速率作統(tǒng)一規(guī)定。傳送開始后,接收設(shè)備不斷地檢測傳輸線,看是否有起始位到來。當(dāng)收到一系列的“1”(停止位或空閑位)之后,檢測到一個下跳沿,說明起始位出現(xiàn),起始位經(jīng)確認(rèn)后,就開始接收所規(guī)定的數(shù)據(jù)位和奇偶校驗位以及停止位。經(jīng)過處理將停止位去掉,把數(shù)據(jù)位拼裝成一個并行字節(jié),并且經(jīng)校驗后,無奇偶錯才算正確的接收一個字符。一個字符接收完畢,接收設(shè)備有繼續(xù)測試傳輸線,監(jiān)視“0”電平的到來和下一個字符的開始,直到全部數(shù)據(jù)傳送完畢。80%由上述工作過程可看到,異步通信是按字符傳輸?shù)模?/p>
11、每傳輸一個字符,就用起始位來通知收方,以此來重新核對收發(fā)雙方同步。若接收設(shè)備和發(fā)送設(shè)備兩者的時鐘頻率略有偏差,這也不會因偏差的累積而導(dǎo)致錯位,加之字符之間的空閑位也為這種偏差提供一種緩沖,所以異步串行通信的可靠性高。但由于要在每個字符的前后加上起始位和停止位這樣一些附加位,使得傳輸效率變低了,只有約因此,起止協(xié)議一般用在數(shù)據(jù)速率較慢的場合(小于19.2kb4/s)。在高速傳送時,一般要采用同步協(xié)議。(2)面向字符的同步協(xié)議特點與格式:這種協(xié)議的典型代表是舊M公司的二進(jìn)制同步通信協(xié)議(BSQ。它的特點是一次傳送由若干個字符組成的數(shù)據(jù)塊,而不是只傳送一個字符,并規(guī)定了10個字符作為這個數(shù)據(jù)塊的開頭
12、與結(jié)束標(biāo)志以及整個傳輸過程的控制信息,它們也叫做通信控制字。由于被傳送的數(shù)據(jù)塊是由字符組成,故被稱作面向字符的協(xié)議。特定字符(控制字符)的定義:由上面的格式可以看出,數(shù)據(jù)塊的前后都加了幾個特定字符。SYNH!同步字符(synchronousCharacter),每一幀開始處都有SYN加一個SYN的稱單同步,加兩個SYN的稱雙同步設(shè)置同步字符是起聯(lián)絡(luò)作用,傳送數(shù)據(jù)時,接收端不斷檢測,一旦出現(xiàn)同步字符,就知道是一幀開始了。接著的SOH是序始字符(StartOfHeader),它表示標(biāo)題的開始。標(biāo)題中包括院地址、目的地址和路由指示等信息。STX是文始字符(StartOfText),它標(biāo)志著傳送的正文
13、(數(shù)據(jù)塊)開始。數(shù)據(jù)塊就是被傳送的正文內(nèi)容,由多個字符組成。數(shù)據(jù)塊后面是組終字符ETB(EndOfTransmissionBlock)或文終字符ETX(EndOfText),其中ETB用在正文很長、需要分成若干個分?jǐn)?shù)據(jù)塊、分別在不同幀中發(fā)送的場合,這時在每個分?jǐn)?shù)據(jù)塊后面用文終字符ETX一幀的最后是校驗碼,它對從SOH開始到ETX(或ETB字段進(jìn)行校驗,校驗方式可以是縱橫奇偶校驗或CRC另外,在面向字符協(xié)議中還采用了一些其他通信控制字,它們的名稱如下表所?。簗4E4MUIvjw*,-iJ,I-BIh.-1千名稱ASCIIEBCDIC序始岱0H)000000100000001文始(SIX)0000
14、01000000010組終(ETB)001011100100110文終(ETX)000001100000011同步(SYN)0010110oonooio送畢(EOT)0000100oonom詢問(EQ)000010100101101確認(rèn)(ACK)000011000101110否認(rèn)NAK)001010100111101轉(zhuǎn)義(DLE)001000000010000數(shù)據(jù)透明的實現(xiàn):面向字符的同步協(xié)議,不象異步起止協(xié)議那樣,需要在每個字符前后附加起始和停止位,因此,傳輸效率提高了。同時,由于采用了一些傳輸控制字,故增強了通信控制能力和校驗功能。但也存在一些問題,例如,如何區(qū)別數(shù)據(jù)字符代碼和特定字符代碼
15、的問題,因為在數(shù)據(jù)塊中完全有可能出現(xiàn)與特定字符代碼相同的數(shù)據(jù)字符,這就會發(fā)生誤解。比如正文有個與文終字符ETX的代碼相同的數(shù)據(jù)字符,接收端就不會把它當(dāng)作為普通數(shù)據(jù)處理,而誤認(rèn)為是正文結(jié)束,因而產(chǎn)生差錯。因此,協(xié)議應(yīng)具有將特定字符作為普通數(shù)據(jù)處理的能力,這種能力叫做“數(shù)據(jù)透明”。為此,協(xié)議中設(shè)置了轉(zhuǎn)移字符DLE(DataLinkEscape)。當(dāng)把一個特定字符看成數(shù)據(jù)時,在它前面要加一個DLE這樣接收器收到一個DLE就可預(yù)知下一個字符是數(shù)據(jù)字符,而不會把它當(dāng)作控制字符來處理了。DLE本身也是特定字符,當(dāng)它出現(xiàn)在數(shù)據(jù)塊中時,也要在它前面加上另一個DLE這種方法叫字符填充。字符填充實現(xiàn)起來相當(dāng)麻煩,
16、且依賴于字符的編碼。正是由于以上的缺點,故又產(chǎn)生了新的面向比特的同步協(xié)議。(3)面向比特的同步協(xié)議特點與格式:面向比特的協(xié)議中最具有代表性的是舊M的同步數(shù)據(jù)鏈路控制規(guī)程SDLC(SynchronousDataLinkControl),國際標(biāo)準(zhǔn)化組織ISO(InternationalStandardOrganization)的高級數(shù)據(jù)鏈路控制規(guī)程HDLC(HighLevelDatalinkControl),美國國家標(biāo)準(zhǔn)協(xié)會(AmericalNationalStandardInstitute)的先進(jìn)數(shù)據(jù)通信規(guī)程ADCCP(AdvancedDataCommunicationControlProced
17、ure)。這些協(xié)議的特點是所傳輸?shù)囊粠瑪?shù)據(jù)可以是任意位,而且它是靠約定的位組合模式,而不是靠特定字符來標(biāo)志幀的開始和結(jié)束,故稱“面向比特”的協(xié)議。這中協(xié)議的一般幀格式如圖5所示:池8位池三。位位8位Olii11110AC1FC01111110耳胎標(biāo)志的地場所灌制場信息場校驗場結(jié)束標(biāo)而幀信息的分段:由圖5可見,SDLC/HDLC勺一幀信息包才S以下幾個場(Filed),所有場都是從有效位開始傳送。(1)SDLC/HDLCfc志字符:SDLC/HDLC、議規(guī)定,所有信息傳輸必須以一個標(biāo)志字符開始,且以同一個字符結(jié)束。這個標(biāo)志字符是01111110,稱標(biāo)志場(F)。從開始標(biāo)志到結(jié)束標(biāo)志之間構(gòu)成一個完
18、整的信息單位,稱為一幀(Frame)。所有的信息是以幀的形傳輸?shù)模鴺?biāo)志字符提供了每一幀的邊界。接收端可以通過搜索“01111110來探知幀的開頭和結(jié)束,以此建立幀同步。(2)地址場和控制場:在標(biāo)志場之后,可以有一個地址場A(Address)和一個控制場C(Control)。地址場用來規(guī)定與之通信的次站的地址??刂茍隹梢?guī)定若干個命令。SDLC定A場和C場的寬度為8位或16位。接收方必須檢查每個地址字節(jié)的第一位,如果為“0”,則后面跟著另一個地址字節(jié);若為“1”,則該字節(jié)就是最后一個地址字節(jié)。同理,如果控制場第一個字節(jié)的第一位為為“0”,則還有第二個控制場字節(jié),否則就只有一個字節(jié)。(3)信息場:
19、跟在控制場之后的是信息場I(Information)。I場包含有要傳送的數(shù)據(jù),并不是每一幀都必須有信息場。即數(shù)據(jù)場可以為0,當(dāng)它為0時,則這一幀主要是控制命令。(4)幀校驗信息:緊跟在信息場之后的是兩字節(jié)的爭校驗,幀校驗場稱為FC(FrameCheck煬或稱為幀校驗序列FCS(FramecheckSquence)。SDLC/HDLC勻采用16位循環(huán)冗余校驗碼CRC(CyclicRedundancyCode)。除了標(biāo)志場和自動插入的“0”以外,所有的信息都參加CRC#算。實際應(yīng)用時的兩個技術(shù)問題:(1) “0”位插入/刪除:如上所述,SDLC/HDL協(xié)議規(guī)定以01111110為標(biāo)志字節(jié),但在信息場中也完全有可能有同一種模式的字符,為了把它與標(biāo)志區(qū)分開來,所以采取了“0”位插入和刪除技術(shù)。具體作法是發(fā)送端在發(fā)送所有信息(除標(biāo)志字節(jié)外)時,只要遇到連續(xù)5個“1”,就自動插入一個“0”,當(dāng)接收端在接收數(shù)據(jù)時(除標(biāo)志字節(jié))如果連續(xù)收到5個“1”,就自動
評論
0/150
提交評論