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