1 概述
計算機通信是指計算機與外界的信息傳輸,既包括計算機與計算機之間的傳輸,也包括計算機與外部設備,如U盤、打印機和磁盤等設備之間的傳輸。在通信領域內,根據每次傳送的數據位數,計算機通信可分為:并行通信和串行通信。
串行通信是指計算機主機與外設之間以及主機系統與主機系統之間數據的串行傳送。使用一條數據線,將數據一位一位地依次傳輸,每一位數據占據一個固定的時間長度。其只需要少數幾條線就可以在系統間交換信息,特別適用于計算機與計算機、計算機與外設之間的遠距離通信。
2 通信基礎
2.1 串行通信與并行通信
串行通信是通過一根數據線,一個bit一個bit地傳輸數據,且每個bit表示的值為0或1,信號線分為RXD(數據接收)、TXD(數據發送)兩根如圖 1所示。具有速度慢、信號線少、成本低的特點,適合遠距離、低速率的數據傳輸。常見的串行通信應用包括USB、SATA、以太網口、COM(RS232/RS485/RS422)等。
圖 1 串行通信
并行通信是通過數據線,一次傳輸和接收多個bit數據,如圖 2所示,每個bit的數據都有對應的數據線進行傳輸,傳輸一次即可完成以個8個數據bit即一個Byte(字節)的數據以及1個校驗bit數據,實際應用中,有可能不是8bit數據,而是更多bit數據,如32bit、64bit等,但原理都是相同的,計算機內部的總線結構(PCI總線、PCIe總線、以及以前的并口硬盤、光驅等)就是典型的并行通信。并行通信具有傳輸效率高、使用信號線多、成本高、信號間電容會引起串擾,不適合遠距離傳輸,一般用于外設與計算機終端設備間近距離、大量和快速的傳輸。
圖 2 并行通信
2.2 串行通信工作方式
計算機是以并行的方式來處理數據的,通過串行發送數據時候,先由具有幾位(8/16/32/64位)總線的計算機內的發送設備,將幾位(8/16/32/64位)并行數據經并——串轉換硬件轉換成串行方式,再逐位經數據線到達接收站的設備中,并在接收端將數據從串行方式重新轉換成并行方式,以供接收方使用,如圖 3所示。串行通信時,數據的發送與接收需要時鐘進行控制。
圖 3 計算機數據傳輸基本原理
根據串行通信時,收發雙方的始終是否相同,可以分為:異步通信和同步通信。
2.3 異步通信
如圖 4所示,發送與接收方各自配置有獨立的時鐘進行控制,叫異步串行通信。
圖 4 異步串行通信
異步串行通信時,數據是以數據幀(每個數據幀傳送一個字符)來進行傳輸的,異步通信數據幀結構如下圖 5所示。
圖 5 異步通信數據幀格式
-
以字符為單位進行信息傳送,每次傳輸一個字符即一個數據幀;
-
每個字符都是以起始位開始(“0”),以停止位(“1”,停止位為1~2位)結束;
-
校驗位分為奇校驗(數據位加上這一位后,“1”的個數為奇數)與偶校驗(數據位加上這一位后,“1”的個數為偶數),在通信過程中也可以不使用校驗位;
-
字符之間為空閑位,沒有嚴格的定時要求,因此,空閑位可以為多位;
案例1:某計算機采用異步串行通信方式,數據格式為:8位數據位,奇校驗,2位停止位。試畫出傳送字符“A”時通信線路上的波形。
字符“A”的ASCLL碼為“65H”換成二進制位0110 0101,從低位開始傳輸1010 0110。加上1位起始位“0”,后加奇校驗位“1”(由于數據位“1”的個數為4個,偶數個,傳輸采用奇校驗,因此需要填“1”,如果采用偶校驗則填“0”),再加上2位停止位“11”。整個數據幀為0 1010 0110 1 11,波形如下
圖 6 “A”數據幀
異步通信中,在異步通行中有兩個比較重要的指標:字符幀格式和波特率。數據通常以字符或者字節為單位組成字符幀傳送。字符幀由發送端逐幀發送,通過傳輸線被接收設備逐幀接收。 發送端和接收端可以由各自的時鐘來控制數據的發送和接收,這兩個時鐘源彼此獨立,互不同步。接收端檢測到傳輸線上發送過來的低電平邏輯'0'(即字符幀起始位)時,確定發送端已開始發送數據,每當接收端收到字符幀中的停止位時,就知道一幀字符已經發送完畢。
2.4 同步通信
如圖 7所示,發送與接收由同一個時鐘控制,叫同步串行通信。
圖 7 同步串行通信
同步通信是一種連續串行傳送數據的通信方式, 一次通信只傳送一幀信息。這里的信息幀與異步通信中的字符幀不同,通常含有若干個數據字符。
它們均由同步字符、數據字符和校驗字符(CRC)組成。 其中同步字符位于幀開頭,用于確認數據字符的開始。數據字符在同步字符之后,個數沒有限制,由所需傳輸的數據塊長度來決定;校驗字符有 1 到 2 個,用于接收端對接收到的字符序列進行正確性的校驗。 同步,通信的缺點是要求發送時鐘和接收時鐘保持嚴格的同步。
同步串行通信不使用起始位與停止位來標識字符傳輸的開始和結束,而使用特定的幀頭與幀尾,以固定的時鐘節拍來發送數據信號,每個字符間的時間間隔是相等的,而且每個字符中各相鄰位代碼間的時間間隔也是固定的,每個字符也可以對應5~8位。同步串行通信現階段主要包括兩類通信種類:
1)面向字符(Character Oriented)的同步通信:
一個數據幀由若干個字符組成(IBM的BSC協議);
圖 8 BSC協議數據幀格式
該協議規定了10個特殊字符(稱為控制字符)作為信息傳輸的標志,其格式如圖 8所示:
-
SYN:同步字符(Synchronous character),每幀可加1個(單同步)或2個(雙同步)同步字符;
-
SOH:標題開始(Start of Header);
-
標題:Header,包含源地址(發送方地址)、目的地址(接收方地址)、路由指示;
-
STX:正文開始(Start of Text);
-
數據塊:正文(Text),由多個字符組成;
-
ETB:塊傳輸結束(end of transmission block),標識本數據塊結束;
-
ETX:全文結束(end of text),(全文分為若干塊傳輸);
-
塊校驗:對從SOH開始;
-
直到ETB/ETX字段的檢驗碼;
2)面向比特(Bit-Oriented)的同步通信:
一個數據幀由任意位bit組成,主要用于二進制的傳輸;典型的面向位的同步協議如國際標準化組織(ISO)的高級數據鏈路控制規程HDLC和IBM的同步數據鏈路控制規程SDLC。
圖 9 SDLC數據格式
面向比特時,將數據塊看作數據流,
-
F場:開始于結束標志;用序列01111110作為開始和結束標志。為了避免在數據流中出現序列01111110時引起的混亂,發送方總是在其發送的數據流中每出現5個連續的“1”就插入一個附加的“0”;接收方則每檢測到5個連續的“1”并且其后有一個“0”時,就刪除該“0”。
-
A場:地址,規定接收方可為 8的整倍位。接收方檢查每個地址字節第 1位,如果為 '0' ,則后邊跟著另一個地址字節。若為 '1' ,則該字節為最后一個地址。
-
C場:控制場。指示信息場的類型,8位或16位。若第1字節的第1位為0,則還有第2個字節也是控制場。
-
I場:信息場。要傳送的數據
-
FC場:幀校驗場。16位循環冗余校驗碼CRC。除F場和自動插入的'0'位外,均參加CRC計算。
2.5 通信模式
串行通信通常是在兩個站點(點對點)之間進行數據傳輸,按照數據流的傳輸方向課分成三種傳送模式。
單工通信模式
使用一根數據線,只允許在一個方向上傳送數據,主要表現在一端只發送,另一段只能接受,如我們的電視機,以及我們的遠程控制(門禁、智能開關等)。
圖 10 單工通信
半雙工方式
使用同一根數據線,即可發送數據又可接收數據,但同一時刻只能進行一個方向的傳送,如圖 11所示。半雙工通信每端需要一個收/發切換電子開關,在切換時,也會產生延遲。如我們的對講機、USB、打印機串口外設等。
圖 11 半雙工通信
全雙工方式
在兩個站點之間傳輸數據中,數據的發送和接收分別在兩根數據線上同時進行,通信雙方都能在同一時刻進行數據的發送和接收操作如圖 12所示。通常在交互式應用、遠程檢測控制場景。如電話通信、上網(登錄某個網站,進行上傳、下載文件)、兩臺計算機通過網線傳送文件電影等。
圖 12 全雙工通信
異步通信和同步通信的比較
-
異步通信簡單,雙方時鐘可允許一定誤差。同步通信較復雜,雙方時鐘的允許誤差較小;
-
異步通信只適用于點←→點,同步通信可用于點←→多;
-
通信效率:異步通信低,同步通信高。
2.6 傳輸速率
傳輸速率是指每秒鐘傳送的二進制位數,通常稱為波特率(Band Rate)。
即:1波特 = 1bit/s (位/秒)
國際上規定了標準波特率系列,最常用的標準波特率是:110、300、600、1200、l800、2400、4800、9600、115200、19200波特等。
3 RS232串行接口標準
3.1 RS232串口簡介
RS232串口是美國電子工業協會EIA于1962年發布,并于1969年修訂的串行接口標準,已成為國際上通用的標準,標準代號EIA-RS-232C。RS是英文“推薦標準”的縮寫,232為標識號,C表示修改次數。該標準定義了DTE(Data Terminal Equipment,數據終端設備)與DCE(Data Communication Equipment,數據通信設備)兩者間按串行傳輸信息的接口的機械特性、電氣特性、功能特性。標準規定采用DB25連接器進行通信連接,IBM將RS232簡化成DB9連接器,DB9連接器由于使用更簡單,得到更普遍的應用。
標準規定DB25或DB9連接器公頭做為DTE設備端接口插座DB25或DB9連接器母頭做為DCE設備端接口插座,如圖 13所示。
圖13 連接器示意圖
3.2 機械特性
EIA-RS-232C標準對針連接器的引腳定義做出了規定,如圖 14所示。
圖 14 針連接器(公頭)引腳定義
3.3 功能特性
RS-232C最初設計為計算機(稱為數據終端設備DTE--Data Terminal Equipment和數據通信設備DCE--Data Communication Equipment(如MODEM)的連接,如圖 15所示。
圖 15 通過調制解調器連接
通過MODEM接入電話網絡,可連接世界上任何接入電話網絡的主機,該種網絡連接方法在90年代較為常見,作者在08年在某軍工企業工作時候,也曾使用該網絡連接方法,與軍方某研究所人員進行文件傳輸,這種點對點的撥號連接,可不經過第三方服務器即可完成文件傳輸,相關方法步驟如下:
1)通過串口線把臺式機上的COM1串口與串口撥號貓(某寶上搜尋56K撥號貓應能找到);
2)把座機的電話線拔掉,插到撥號貓的電話口上,對端計算機也照此連接;
3)線路連接好后,可通過超級終端軟件進行撥號連接,打開超級終端,在'待撥電話詳細資料'中選擇國家代碼為中國(86),輸入朋友的電話號碼和區號(如果同城就直無須國家代碼與區號);“確定”后彈出一個'連接'對話框,這時不用理它,單擊'取消',這樣'超級終端'的配置工作就算完成了。當然,另一臺遠程機器也必須進行同樣的配置,只不過他填的是我的區號與電話號碼。
RS-232C標準規定的數據傳輸速率為每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特 。
現階段,通過電話網絡進行撥號網絡連接的應用已很少見,工業引用領域,更多常見的應用場景的是近距離(<15m)DTE設備與DTE設備直連,如計算機與計算機、計算機與網絡設備(路由器、交換機等)管理口連接等。在應用時,則需要把收發信號進行交叉連接,如圖 16所示。
圖 16 DTE設備與DTE設備連接
3.4 電氣特性
EIA-RS-232C標準規定:
邏輯“1”信號,電平在 –3V ~ -15V 之間;
邏輯“0”信號,電平在 +3V ~ +15V 之間;
在實際應用中,常采用±12 V或±15V。RS-232C可承受±25 V的信號電壓。另外,要注意RS-232C數據線TXD和RXD使用負邏輯,即高電平表示邏輯0,用符號SPACE(空號)表示;低電平表示邏輯1,用符號MARK(傳號)表示。其它控制線均為正邏輯,高電平有效,為ON狀態;低電平無效,為OFF狀態。
在串口電路設計時,由于發送器/接收器芯片使用TTL電平,但RS-232C卻使用上述EIA電平,所以為滿足EIA電氣特性,必須在發送器/接收器與RS-232C接口之間使用轉換器件。如SN75150、 MC1488等芯片完成TTL電平到EIA電平的轉換,而SN75154、MCI489等芯片可完成EIA電平到TTL電平的轉換。
電平轉換器不僅可以由晶體管分立元件構成,也可以直接使用集成電路。目前美信的MAX232芯片使用較多,該芯片使用單端+5V電源供電實現電平轉換。