同步通訊和非同步通訊

liuxixi發表於2016-03-03

5.1.3 同步通訊和非同步通訊
一、同步通訊和非同步通訊
序列通訊可以分為兩種型別,一種叫同步通訊,另一種叫非同步通訊。
同步通訊方式,是把許多字元組成一個資訊組,這樣,字元可以一個接一個地傳輸,但是,在每組資訊(通常稱為資訊幀)的開始要加上同步字元,在沒有資訊要傳輸時,要填上空字元,因為同步傳輸不允許有間隙。同步方式下,傳送方除了傳送資料,還要傳輸同步時鐘訊號,資訊傳輸的雙方用同一個時鐘訊號確定傳輸過程中每1位的位置。見右圖5.2所示。



圖5.2 同步通訊示意圖
在非同步通訊方式中,兩個資料字元之間的傳輸間隔是任意的,所以,每個資料字元的前後都要用一些數位來作為分隔位。
從圖5.2中可以看到,按標準的非同步通訊資料格式(叫做非同步通訊幀格式),1個字元在傳輸時,除了傳輸實際資料字元資訊外,還要傳輸幾個外加數位。具體說,在1個字元開始傳輸前,輸出線必須在邏輯上處於“1”狀態,這稱為標識態。傳輸一開始,輸出線由標識態變為“0”狀態,從而作為起始位。起始位後面為5~8個資訊位,資訊位由低往高排列,即先傳字元的低位,後傳字元的高位。資訊位後面為校驗位,校驗位可以按奇校驗設定,也可以按偶校驗設定,或不設校驗位。最後是邏輯的“1”作為停止位,停止位可為1位、1.5位或者2位。如果傳輸完1個字元以後,立即傳輸下一個字元,那麼,後一個字元的起始位便緊挨著前一個字元的停止位了,否則,輸出線又會進入標識態。在非同步通訊方式中,傳送和接收的雙方必須約定相同的幀格式,否則會造成傳輸錯誤。在非同步通訊方式中,傳送方只傳送資料幀,不傳輸時鐘,傳送和接收雙方必須約定相同的傳輸率。當然雙方實際工作速率不可能絕對相等,但是隻要誤差不超過一定的限度,就不會造成傳輸出錯。圖5.3是非同步通訊時的標準資料格式。

圖5.3 非同步通訊示意圖
比較起來,在傳輸率相同時,同步通訊方式下的資訊有效率要比非同步方式下的高,因為同步方式下的非資料資訊比例比較小。
二、傳輸率
所謂傳輸率就是指每秒傳輸多少位,傳輸率也常叫波特率。在計算機中,每秒傳輸多少位和波特率的含義是完全一致的,但是,在最初的定義上,每秒傳輸多少位和波特率是不同的,前者是指每秒鐘傳輸的數位是多少,而波特率是指每秒鐘傳輸的離散訊號的數目。所謂離散訊號,就是指不均勻的、不連續的也不相關的訊號。在計算機裡,只允許高電平和低電平兩種離散訊號,它們分別表示l和0,於是,造成了波特率與每秒傳輸數位這兩者的吻合。但在其他一些場合,就未必如此。比如,採用脈衝調製時,可以允許取4種相位,而每種相位代表2個數位,這種情況下,按每秒傳輸多少位(bps)計算的傳輸率便是波特率的兩倍。
國際上規定了一個標準波特率系列,標準波特率也是最常用的波特率,標準波特率系列為110、300、600、1200、1800、2400、4800、9600、19200......。
大多數介面的波特率可以通過程式設計來指定。
作為例子,我們可以考慮這樣一個非同步傳輸過程:設每個字元對應1個起始位、7個資料位、1個奇/偶校驗位和1個停止位,如果波特率為1200,那麼,每秒鐘能傳輸的最大字元數為1200/10=120個。 
作為比較,我們再來看一個同步傳輸的例子。假如也用1200的波特率工作,每個字元為7位,用4個同步字元作為資訊幀頭部,但不用奇/偶校驗,那麼,傳輸100個字元所用的時間為7×(100+4)/1200=0.6067,這就是說,每秒鐘能傳輸的字元數可達到100/0.6067=165個。
三、非同步通訊的差錯型別
非同步通訊過程中,可能發生通訊錯,一般有3種錯誤:
1、幀格式錯:在應該接收到停止位的時候,接收到邏輯的“0”,便產生幀格式錯誤。
2、奇偶錯:接收到的奇偶校驗位錯。
3、覆蓋錯:通訊介面接收到資料並存放到資料輸入暫存器中,但是CPU沒有及時來取,後面新接收的資料覆蓋了前面收到的資料,叫做覆蓋錯。
發生幀格式錯和奇偶錯的原因可能為下面幾種:
◆ 傳送和接收雙方採用了不同的傳輸率,或雖然雙方約定了相同的傳輸率,但傳輸率不可能絕對相等。在通訊的速率比較高的情況下,如果雙方的傳輸率誤差達到一定的程度,也會造成通訊出錯;
◆ 通訊雙方採用了不相同的幀格式;
◆ 干擾。

相關文章