Junky's IT Notebook

          導航

          <2006年12月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          隨筆分類(224)

          文章分類(5)

          隨筆檔案(228)

          文章檔案(7)

          統計

          留言簿(8)

          積分與排名

          WebSphere Studio

          閱讀排行榜

          評論排行榜

          同步和異步的區別集錦

          通俗版:

          舉個例子:普通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)通信效率:異步通信低,同步通信高。



          posted on 2006-12-18 23:43 junky 閱讀(10720) 評論(0)  編輯  收藏 所屬分類: 計算機科學,編程思想


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 长子县| 依安县| 陆河县| 霍林郭勒市| 阳江市| 顺昌县| 河津市| 德阳市| 罗源县| 大安市| 湄潭县| 尚义县| 江城| 百色市| 大连市| 云和县| 桦甸市| 紫云| 昂仁县| 南涧| 化州市| 珠海市| 镶黄旗| 苗栗县| 仁化县| 合肥市| 合作市| 耒阳市| 潞城市| 中牟县| 迭部县| 巴林左旗| 福贡县| 四平市| 新乡市| 准格尔旗| 东乡县| 高要市| 高陵县| 那曲县| 渭源县|