1. 程式人生 > >同步序列通訊與非同步序列通訊

同步序列通訊與非同步序列通訊

轉載地址:http://blog.chinaunix.net/uid-22778496-id-2114647.html

序列通訊是微機介面的一個重要組成部分,有著極其廣泛的應用。隨著微機特別是微控制器的發展,其應用已從單機逐漸轉向多機或聯網,而多機應用的關鍵又在微機通訊。微機通訊有序列並行兩種通訊方式,並行通訊可以提高資料交換速度而序列通訊可以節省系統資源,降低系統成本。序列通訊又分為同步序列通訊非同步序列通訊。本章將就序列通訊進行詳細講述,末了還給出應用例項,力求反應目前序列通訊的新技術和新發展。

序列通訊的概念

並行通訊和序列通訊

在微機系統中,CPU 與外部的基本通訊方式有兩種:

並行通訊——資料各位同時傳送;

序列通訊——資料一位位順序傳送。

是這兩種方式的示意圖。一般快速裝置之間採用並行通訊,譬如CPU 與儲存裝置、儲存器與儲存器、主機與印表機等都採用並行通訊。並行通訊,有多少位資料就必須有多少根資料線,如下圖是11 位資料就有11 根資料線。序列通訊最少可以只需一根通訊線,只發或只收。因而大大節省了系統資源,降低了系統成本。由於只用一根資料線,所以是以降低傳送速度來換取資源的,它常用在傳送距離遠,速度要求不高的場合。

序列通訊的傳送方式

序列通訊的傳送方式通常有種:

一種為單向(或單工)配置,只允許資料向一個傳送;

另一種是半雙工

配置,允許資料向兩個方向中的任一方向傳送,但每次只能有一個站傳送;

第三種傳送方式是全雙工配置,允許同時雙向傳送資料,因此,全雙工配置是一對單向配置,它要求兩端的通訊裝置具有完整和獨立的傳送和接收能力。

7-2 所示為序列通訊中的資料傳送方式。

非同步通訊和同步通訊

序列通訊進行資料傳送時是將要傳送的資料按二進位制位,依據一定的順序逐位傳送到接收方。其有兩種通訊方式:

1、 非同步通訊

非同步通訊是我們最常採用的通訊方式,我們後面的例子都是採用的非同步通訊方式。非同步通訊採用固定的通訊格式,資料以相同的幀格式傳送。如圖7-3 所示,每一幀由始位資料位奇偶校驗位

停止位組成。

在通訊線上沒有資料傳送時處於邏輯“1”狀態。當傳送裝置傳送一個字元資料時,首先發出一個邏輯“0”訊號,這個邏輯低電平就是起始位。起始位通過通訊線傳向接收裝置,當接收裝置檢測到這個邏輯低電平後,就開始準備接收資料訊號。因此,起始位所起的作用就是表示字元傳送開始。

起始位後面緊接著的是資料位,它可以是位、位、位、或資料傳送時,低位在前。

奇偶校驗位用於資料傳送過程中的資料檢錯,資料通訊時通訊雙方必須約定一致的奇偶校驗方式。就資料傳送而言,奇偶校驗位是冗餘位,但它表示資料的一種性質。也有的不要校驗位。

在奇偶校驗位或資料位後緊接的是停止位,停止位可以是一位、也可以是1.5 。接收端收到停止位後,知道上一字元已傳送完畢,同時,也為接收下一字元作好準備。若停止位後不是緊接著傳送下一個字元,則讓線路保持為“1”。“1”表示空閒位,線路處於等待狀態。存在空閒位是非同步通訊的特性之一。

2、 同步通訊

同步通訊時,通訊雙方共用一個時鐘,這是同步通訊區分於非同步通訊的最顯著的特點。在非同步通訊中,每個字元要用起始位和停止位作為字元開始和結束的標誌,以致佔用了時間。所以在資料塊傳送時,為提高通訊速度,常去掉這些標誌,而採用同步通訊。同步通訊中,資料開始傳送前用同步字元來指示(常約定1),並由時鐘來實現傳送端和接收端的同步,即檢測到規定的同步字元後,下面就連續按順序傳送資料,直到一塊資料傳送完畢。同步傳送時,字元之間沒有間隙,也不要起始位和停止位,僅在資料開始時用同步字元SYNC來指示,其資料格式見圖7-4

同步通訊和非同步通訊相比有以下特點:

1. 以同步字元作為傳送的開始,從而使收發雙方取得同步。

2. 每位佔用的時間相等。

3. 字元資料之間不允許有空位,當線路空閒或沒字元可發時,傳送同步字元

同步字元的插入可以是單同步字元或雙同步字元,如圖7-4 所示同步字元也可以由使用者約定,當然也可以採用ASCII 碼中規定的SYN 程式碼,即16H

在同步傳送時,要求用時鐘來實現傳送端和接收端之間的同步。為了保證接收正確無誤,傳送方除了傳送資料外,還要傳送同步時鐘。

同步通訊雖然可以提高傳送速度,可達56Kb/s 或更高,但實現起來頗為複雜,因此實際較少使用。

波特率和接收發送時鐘

1. 波特率(Baud rate

波特率是指資料傳送時,每秒傳送資料二進位制程式碼的位數,它的單位是位/秒(b/s)。1波特就是一位每秒。假設資料傳送速率是每秒120 字元,而每個字元格式包括10 個程式碼位(1個起始位、一個終止位、個數據位),這時傳送的波特率為:

10 × 120 = 1200b/s

位傳送時間寬度Td=波特率的倒數,則上式中的Td1/1200s0.883ms

在非同步序列通訊中,接收裝置和傳送裝置保持相同的傳送波特率,並以每個字元資料的起始位與傳送裝置保持同步。起始位。資料位。奇偶位和停止位的約定,在同一次傳送過程中必須保持一致,這樣才能成功的傳送資料。

2.接收/傳送時鐘

二進位制資料系列在序列傳送過程中以數字訊號波形的形式出現。不論接收還是傳送,都必須有時鐘訊號對傳送的資料進行定位。接收/傳送時鐘就是用來控制通訊裝置接收/傳送字元資料速度的,該時鐘訊號通常由外部時鐘電路產生。

在傳送資料時,傳送器在傳送時鐘的下降沿將移位暫存器的資料序列移位輸出;在接收資料時,接收器在接收時鐘的上升沿對接收資料取樣,進行資料位檢測,

如圖7-5 所示。

接收/傳送時鐘頻率與波特率有如下關係:

/發時鐘頻率 = × 收/發波特率

n11664

在同步傳送方式,必須取n1,即接收/傳送時鐘的頻率等於收/發波特率。在非同步傳送方式,n1,16,64,即可以選擇接收/傳送時鐘頻率是波特率的1,16,64 倍。因此可由要求的傳送波特率及所選擇的倍數來確定接收/傳送時鐘的頻率。

例如,若要求資料傳送的波特率為300Baud,則

接收/傳送時鐘頻率=300Hz n1

接收/傳送時鐘頻率=4800Hz n16

接收/傳送時鐘頻率=19.2kHz n64

接收/傳送時鐘的週期Tc 與傳送的資料位寬之間的關係是:

Tc = Td / n

若取n16,那麼非同步傳送接收資料實現同步的過程如下:接收器在每一個接收時鐘的上升沿取樣接收資料線,當發現接收資料線出現低電平時就認為是起始位的開始,以後若在連續撤個時鐘週期(因n16,Td16Tc)內檢測到接收資料線仍保持低電平,則確定它為起始位(不是干擾訊號)。通過這種方法,不僅能夠排除接收線上的噪聲干擾,識別假起始位,而且能夠相當精確的確定起始位的中間點,從而提供一個正確的時間基準。從這個基準算起,每隔16Tc 取樣一次資料線,作為輸入資料。一般來說,從接收資料線檢測到一個下降沿開始,若其低電平能保持n/2Tc(半位時間),則確定為起始位,其後每隔nTc 時間(一個數據時間)在每個資料位的中間點取樣。

由此可見,接收/傳送時鐘對於收/發雙方之間的資料傳輸達到同步是至關重要的。