日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

同步通信与异步通信以及阻塞和非阻塞之我见 [原]

發布時間:2024/10/8 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 同步通信与异步通信以及阻塞和非阻塞之我见 [原] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、硬件層次上的同步與異步
1.異步通信
???在異步通信中,CPU與外設之間有兩項約定:
???(1)字符格式---字符的編碼形式及規定,每個串行字符由以下四個部分組成:
??????⑴?1個起始位,低電平;
??????⑵?5--8個數據位;
??????⑶?1個奇偶校驗位;
??????⑷?1--2個終止位(停止位)高電平;?
???(2)波特率
??????波特率是指單位時間內傳送二進制數據的位數,以位/秒位單位,它是衡量串行數據
????傳送速度快慢的重要標志和參數。
????例如:假如數據出送速率是120位/秒,則傳送的波特率為:120波特。
????注意:異步通信的傳送速度一般在50波特-----19200波特之間。

2.同步通信
???在異步通信中,每個字符要用起始位和終止位作為字符開始和結束的標志,占用了一些時間,為了提高數據塊的傳送速度,就要設法去掉這些標志,就采用同步通信。
???同步通信的速度可達500千波特。但是它的硬件電路比較復雜。

3.優缺點比較
1)異步通信簡單,雙方時鐘可允許一定誤差。同步通信較復雜,雙方時鐘的允許誤差較小。
2)通信效率:異步通信低,同步通信高。
3)同步通信取消了每個字節的同步位,從而使數據位在傳送為中所占比率增大,提高了傳送效率。
4)同步通信容許用戶傳送沒有意義的二進制數據,即在沒有信息要傳輸時,要填上空字符,因為同步傳輸不允許有間隙。

二、軟件層次的同步與異步
1.同步通信:
一般使用單線程,讀操作和寫操作都在同一個線程里面,讀操作時不會寫,寫操作時不會讀,此時硬件處于半雙工模式。

2.異步通信
一般使用多線程,讀操作和寫操作在不同的線程里面,讀操作和寫操作同時進行,當讀或寫完成時使用事件通知,此時硬件處于全雙工模式。
用異步方式操作串口必須要定義?OVERLAPPED?結構,其中的?hEvent?必須自己建立,要定義兩個?OVERLAPPED?結構,一個用于讀一個用于寫,當然也必須建立兩個?Event,把它們放入?OVERLAPPED.hEvent。
一般我們是在主線程中寫數據,因為寫是我們可以控制的,而讀的時候我們不知道數據什么時候會到,所以要建立一個線程專門用來讀數據,在這個線程中,我們循環地用?ReadFile?讀串口,同時用?WaitCommEvent?檢測線路狀態。

三、軟件層次的阻塞和非阻塞模式
1.阻塞模式:
????阻塞模式執行I/O操作完成前會一直進行等待,不會將控制權交給程序,一般可以設置一個超時結構,超時時間到則返回超時,可以通過多線程技術進行處理。

2.非阻塞模式
????非阻塞模式執行I/O操作后會立即返回,而不管讀寫有沒有成功,一般在進行I/O操作前可以通過一些異步模型(如socket通信里面的select模型)來查詢通信口的當前狀態是否可讀或可寫。

轉載于:https://www.cnblogs.com/highmayor/archive/2008/04/23/1167739.html

總結

以上是生活随笔為你收集整理的同步通信与异步通信以及阻塞和非阻塞之我见 [原]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。