我們都知道數據通訊就是兩個通訊主體之間發送、接收數字信號。假設要發送以下數據:12,23,34,45,56,67,78,89。接收方要正確接收這些數據,就必須知道數據什么時候開始發送,什么時候結束,要不然,可能會將數據接收成22,33,44,55,66,77,88。
對于同步通訊協議,發送方在發送數據之前先發出一個特殊的電信號,讓接收方準備好接收數據,然后發送方就將以上數據全部連續發出,發送完畢后,再發送一個特殊的電信號表示數據發送結束。我們可以用以下圖表示同步信號通訊。
數據包
然后,接收方按照事先約定,即每兩位一個數值,將數據包分成一個個數值。
對于異步通訊協議,發送方每發送一個數據都要發一“開始”標志,每個數據發送結束后都發出一個“結束”標志。用下圖表示異步通訊信號:
因此,POS通訊中的同步、異步是兩種不同的通訊協議,它是信號發送方和信號接收方的一種約定。通信過程中,同步信號的作用非常重要,尤其對于串行方式的數據通信。同步信號的作用簡單講有兩個作用,1是“尺子”的作用,用于丈量一個比特的寬度;2是決定丈量的“起點”位置。收發雙方必須采用相同的“尺子”,從相同的“起點”開始丈量數據線上的電平變化,才能保證數據通信的正確。
因此,任何方式的串行通信,同步的過程必須有,也就是說通信雙方必須保持“同步”。我們看最典型的SPI、I2C,在這兩種方式中,都專門有一個CLK信號線,由通信的一方產生一個CLK,通過CLK信號線傳到另一方,雙方就就按這個CLK的控制工作,CLK的寬度就是一個數據位的寬度,而CLK的上升或下降沿,就是“起點”標志。這種在通信過程中明顯有個CLK線專門傳送同步信號的方式,就是同步通信。同步通信由于有專用的CLK線控制,因此通信雙方比較容易實現“同步”,因此速度比較快。但是對于長距離的通信,同步方式就不行了,1是由于需要專門一個信號線,成本提高。2是通信線越長,上面的干擾就越多,通信的速度也上不去。因此同步方式多是作為同一PCB板上芯片級之間的通信接口使用。而長距離通信多使用“異步”通信方式,這里的“異步”不是指通信雙方不需要同步,而是指通信雙方之間不使用專用的同步信號線傳送CLK,而是各自僅依賴于自己的系統時鐘(這個就是異步的!),再根據約定的規程,調節自己的“步伐”達到雙方的同步。同步通信通常要比異步通信快速得多。接收方不必對每個字符進行開始和停止的操作。一旦檢測到幀同步字符,它就在接下來的數據到達時接收它們。另外,同步通信的開銷也比較少。例如,一個典型的幀可能有500字節(即4000比特)的數據,其中可能只包含100比特的開銷。這時,增加的比特位使通信的比特總數增加2.5%,這與異步通信中25 %的增值要小得多。隨著數據幀中實際數據比特位的增加,開銷比特所占的百分比將相應地減少。但是,數據比特位越長,緩存數據所需要的緩沖區也越大,這就限制了一個幀的大小。另外,幀越大,它占據通信媒體的連續時間也越長。在極端的情況下,這將導致其他用戶等得太久。
如果掌握這些最基本的概念,那么你能了解和面對通信中出現的問題,找到解決辦法。比如對于UART的通信,你就知道為什么要規定雙方要采用相同的幀結構,波特率了,如果設置錯誤會導致什么現象?而此時對雙方的系統時鐘不僅要求要更加準確和穩定,而且還要使用11.0592這些特殊的晶體,如果使用12M晶體,會產生什么后果等等。
最后總結一下1,異步通信是面向字符的通信,而同步通信是面向比特的通信。2,異步通信的單位是字符而同步通信的單位是楨。3,異步通信通過字符起止的開始和停止碼抓住再同步的機會,而同步通信則是以數據中抽取同步信息。4,異步通信對時序的要求較低,同步通信往往通過特定的時鐘線路協調時序。5,異步通信相對于同步通信效率較低。
-
異步通信
+關注
關注
1文章
57瀏覽量
10124 -
同步通信
+關注
關注
0文章
28瀏覽量
9155
原文標題:同步和異步通信區別 一點就透
文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論