通俗版:
舉個例子:普通B/S模式(同步)AJAX技術(異步)
同步:提交請求->等待服務器處理->處理完畢返回 這個期間客戶端瀏覽器不能幹任何事
異步: 請求通過事件觸發->服務器處理(這是瀏覽器仍然可以作其他事情)->處理完畢
--------------------------------------------------------------------------------------------------------------------
同步就是你叫我去吃飯,我聽到了就和你去吃飯;如果沒有聽到,你就不停的叫,直到我告訴你聽到了,才一起去吃飯。
異步就是你叫我,然後自己去吃飯,我得到消息後可能立即走,也可能等到下班纔去吃飯。
所以,要我請你吃飯就用同步的方法,要請我吃飯就用異步的方法,這樣你可以省錢。
--------------------------------------------------------------------------------------------------------------------
舉個例子 打電話時同步 發消息是異步
綜述版:
異步通信”是一種很常用的通信方式。異步通信在發送字符時,所發送的字符之間的時間間隔可以是任意的。當然,接收端必須時刻做好接收的準備(如果接收端主機的電源都沒有加上,那麼發送端發送字符就沒有意義,因爲接收端根本無法接收)。發送端可以在任意時刻開始發送字符,因此必須在每一個字符的開始和結束的地方加上標誌,即加上開始位和停止位,以便使接收端能夠正確地將每一個字符接收下來。異步通信的好處是通信設備簡單、便宜,但傳輸效率較低(因爲開始位和停止位的開銷所佔比例較大)。
異步通信也可以是以幀作爲發送的單位。接收端必須隨時做好接收幀的準備。這是,幀的首部必須設有一些特殊的比特組合,使得接收端能夠找出一幀的開始。這也稱爲幀定界。幀定界還包含確定幀的結束位置。這有兩種方法。一種是在幀的尾部設有某種特殊的比特組合來標誌幀的結束。或者在幀首部中設有幀長度的字段。需要注意的是,在異步發送幀時,並不是說發送端對幀中的每一個字符都必須加上開始位和停止位後再發送出去,而是說,發送端可以在任意時間發送一個幀,而幀與幀之間的時間間隔也可以是任意的。在一幀中的所有比特是連續發送的。發送端不需要在發送一幀之前和接收端進行協調(不需要先進行比特同步)。 每個字符開始發送的時間可以是任意的t0 0 1 1 0 1 1 0起始位結束位t每個幀開始發送的時間可以是任意的以字符爲單位發送以幀爲單位發送幀開始幀結束
“同步通信”的通信雙方必須先建立同步,即雙方的時鐘要調整到同一個頻率。收發雙方不停地發送和接收連續的同步比特流。但這時還有兩種不同的同步方式。一種是使用全網同步,用一個非常精確的主時鐘對全網所有結點上的時鐘進行同步。另一種是使用準同步,各結點的時鐘之間允許有微小的誤差,然後採用其他措施實現同步傳輸。
串口進行通信的方式有兩種:同步通信方式和異步通信方式。同步通信方式要求通信雙方以相同的時鐘頻率進行,而且準確協調,通過共享一個單個時鐘或定時脈衝源保證發送方和接收方的準確同步,效率較高;異步通信方式不要求雙方同步,收發方可採用各自的時鐘源,雙方遵循異步的通信協議,以字符爲數據傳輸單位,發送方傳送字符的時間間隔不確定,發送效率比同步傳送效率低。
具體
專業版:
串行通信可以分爲兩種類型:同步通信、異步通信。
1.異步通信的特點及信息幀格式:
以起止式異步協議爲例,下圖顯示的是起止式一幀數據的格式:
圖1
起止式異步通信的特點是:一個字符一個字符地傳輸,每個字符一位一位地傳輸,並且傳輸一個字符時,總是以“起始位”開始,以“停止位”結束,字符之間沒有固定的時間間隔要求。每一個字符的前面都有一位起始位(低電平,邏輯值),字符本身由5-7位數據位組成,接着字符後面是一位校驗位(也可以沒有校驗位),最後是一位或一位半或二位停止位,停止位後面是不定長的空閒位。停止位和空閒位都規定爲高電平(邏輯值1),這樣就保證起始位開始處一定有一個下跳沿。
從圖中可看出,這種格式是靠起始位和停止位來實現字符的界定或同步的,故稱爲起止式協議。
異步通信可以採用正邏輯或負邏輯,正負邏輯的表示如下表所示:
邏輯0 |
邏輯1 |
|
正邏輯 |
低電平 |
高電平 |
負邏輯 |
高電平 |
低電平 |
異步通信的信息格式如下邊的表所示
起始位 |
邏輯0 |
1位 |
數據位 |
邏輯0或1 |
5位、6位、7位、8位 |
校驗位 |
邏輯0或1 |
1位或無 |
停止位 |
邏輯1 |
1位,1.5位或2位 |
空閒位 |
邏輯1 |
任意數量 |
注:表中位數的本質含義是信號出現的時間,故可有分數位,如1.5。
例:傳送8位數據45H(0100,0101B),奇校驗,1個停止位,則信號線上的波形象圖2所示那樣:異步通信的速率:若9600bps,每字符8位,1起始,1停止,無奇偶,則實際每字符傳送10位,則960字符/秒。
圖2
2.異步通信的接收過程
接收端以“接收時鐘”和“波特率因子”決定一位的時間長度。下面以波特率因子等於16(接收時鐘每16個時鐘週期,使接收移位寄存器移位一次)、正邏輯爲例說明,如圖3所示。
圖3
(1)開始通信時,信號線爲空閒(邏輯1),當檢測到由1到0的跳變時,開始對“接收時鐘”計數。
(2)當計到8個時鐘時,對輸入信號進行檢測,若仍爲低電平,則確認這是“起始位”B,而不是干擾信號。
(3)接收端檢測到起始位後,隔16個接收時鐘,對輸入信號檢測一次,把對應的值作爲D0位數據。若爲邏輯1, 作爲數據位1;若爲邏輯0,作爲數據位0。
(4)再隔16個接收時鐘,對輸入信號檢測一次,把對應的值作爲D1位數據。….,直到全部數據位都輸入。
(5)檢測校驗位P(如果有的話)。
(6)接收到規定的數據位個數和校驗位後,通信接口電路希望收到停止位S(邏輯1),若此時未收到邏輯1,說明出現了錯誤,在狀態寄存器中置“幀錯誤”標誌。若沒有錯誤,對全部數據位進行奇偶校驗,無校驗錯時,把數據位從移位寄存器中送數據輸入寄存器。若校驗錯,在狀態寄存器中置奇偶錯標誌。
(7)本幀信息全部接收完,把線路上出現的高電平作爲空閒位。
(8)當信號再次變爲低時,開始進入下一幀的檢測。
3、異步通信的發送過程
發送端以“發送時鐘”和“波特率因子”決定一位的時間長度。
(1)當初始化後,或者沒有信息需要發送時,發送端輸出邏輯1,即空閒位,空閒位可以有任意數量。
(2)當需要發送時,發送端首先輸出邏輯0,作爲起始位。
(3)接着,發送端首先發送D0位,直到各數據位發送完。
(4)如果需要的話,發送端輸出校驗位。
(5)最後,發送端輸出停止位(邏輯1)。
(6)如果沒有信息需要發送時,發送端輸出邏輯1,即空閒位,空閒位可以有任意數量。如果還有信息需要發送,轉入第(2)步。
對於以上發送、接收過程應注意以下幾點:
(1)接收端總是在每個字符的頭部(即起始位)進行一次重新定位,因此發送端可以在字符之間插入不等長的空閒位,不影響接收端的接收。
(2)發送端的發送時鐘和接收端的接收時鐘,其頻率允許有一定差異,當頻率差異在一定範圍內,不會引起接收端檢測錯位,能夠正確接收。並且這種頻率差異不會因多個字符的連續接收而造成誤差累計(因爲每個字符的開始(起始位處)接收方均重新定位)。只有當發送時鐘和接收時鐘頻率差異太大,引起接收端採樣錯位,才造成接收錯誤。
(3)起始位、校驗位、停止位、空閒位的信號,由“發送移位寄存器”自動插入。在接收方,“接收移位寄存器”接收到一幀完整信息(起始、數據、校驗、停止)後,僅把數據的各位送至“數據輸入寄存器”,即CPU從“數據輸入寄存器”中讀得的信息,只是有效數字,不包含起始位、校驗位、停止位信息。
1、同步通信方式的特點:
採用同步通信時,將許多字符組成一個信息組,這樣,字符可以一個接一個地傳輸,但是,在每組信息(通常稱爲幀)的開始要加上同步字符,在沒有信息要傳輸時,要填上空字符,因爲同步傳輸不允許有間隙。在同步傳輸過程中,一個字符可以對應5~8位。當然,對同一個傳輸過程,所有字符對應同樣的數位,比如說n位。這樣,傳輸時,按每n位劃分爲一個時間片,發送端在一個時間片中發送一個字符,接收端則在一個時間片中接收一個字符。
同步傳輸時,一個信息幀中包含許多字符,每個信息幀用同步字符作爲開始,一般將同步字符和空字符用同一個代碼。在整個系統中,由一個統一的時鐘控制發送端的發送和空字符用同一個代碼。接收端當然是應該能識別同步字符的,當檢測到有一串數位和同步字符相匹配時,就認爲開始一個信息幀,於是,把此後的數位作爲實際傳輸信息來處理。
2、面向字符的同步協議(IBM的BSC協議)
該協議規定了10個特殊字符(稱爲控制字符)作爲信息傳輸的標誌。其格式爲
SYN SOH 標題 STX 數據塊 ETB/ETX 塊校驗
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字段的檢驗碼。
3、面向bit的同步協議(ISO的HDLC)
一幀信息可以是任意位,用位組合標識幀的開始和結束。 幀格式爲:
F場 A場 C場 I場 FC場 F場
F場:標誌場;作爲一幀的開始和結束,標誌字符爲8位,01111110。
A場:地址場,規定接收方地址,可爲8的整倍位。接收方檢查每個地址字節的第1位,如果爲"0",則後邊跟着另一
個地址字節。若爲"1",則該字節爲最後一個地址字節。
C場:控制場。指示信息場的類型,8位或16位。若第1字節的第1位爲0,則還有第2個字節也是控制場。
I場:信息場。要傳送的數據。
FC場:幀校驗場。16位循環冗餘校驗碼CRC。除F場和自動插入的"0"位外,均參加CRC計算。
4、同步通信的"0位插入和刪除技術"
在同步通信中,一幀信息以一個(或幾個)特殊字符開始,例如,F場=01111110B。
但在信息幀的其他位置,完全可能出現這些特殊字符,爲了避免接收方把這些特殊字符誤認爲幀的開始,發送方採用“0位插入技術",相應地,接收方採用"0位刪除技術"。
發送方的0位插入:除了起始字符外,當連續出現5個1時,發送方自動插入一個0。使得在整個信息幀中,只有起始字符含有連續的6個1。
接收方的"0位刪除技術":接收方收到連續6個1,作爲幀的起始,把連續出現5個1後的0自動刪除。
5、同步通信的"字節填充技術"
設需要傳送的原始信息幀爲:
SOT DATA EOT
節填充技術採用字符替換方式,使信息幀的DATA中不出現起始字符SOT和結束字符EOT。
設按下表方式進行替換:
DATA中的原字符 替換爲
SOT ESC X
EOT ESC Y
ESC ESC Z
其中,ESC=1AH,X、Y、Z可指定爲任意字符(除SOT、EOT、ESC外)。
發送方按約定方式對需要發送的原始幀進行替換,並把替換後的新的幀發送給接收方。例如圖所示:
接收方按約定方式進行相反替換,可以獲得原始幀信息。
6、異步通信和同步通信的比較
(1)異步通信簡單,雙方時鐘可允許一定誤差。同步通信較複雜,雙方時鐘的允許誤差較小。
(2)異步通信只適用於點<--> 點,同步通信可用於點<--> 多。
(3)通信效率:異步通信低,同步通信高。