假設電腦a和電腦b通過rs232串列埠通訊
a 和 b協商使用軟體握手協議(dcb.foutx = true), 定義xonchar / xoffchar 比如xonchar = 1,
xoffchar = 2.
現在, a向b傳送字元2, b向a傳送字串"helloworld". a能收到字串"helloworld"嗎? 不行的.
b向a傳送字元1後, a將會收到字串"helloworld".
問題:是a向b發xoffchar? 還是b向a發xoffchar?
舉個形像例子,李四有很多書,現在一本本的傳遞給張三,張三突然要去廁所,想李四暫停一會兒,於是
張三對李四說:「暫停!」,李四聽到後,就停下來不再把書傳給張三。
「張三」就是通訊的接收端,「李四」是通訊的傳送端。
xoffchar的傳送方向是 接收端 ——> 傳送端
當張三從廁所回來後,對李四說:「我回來了,開始吧」。於是,李四把剩餘的書一本一本的傳遞給張三
同理,xonchar的傳送方向也是 接收端 ——> 傳送端。
問題:傳送端接收到xoffchar之後,還沒有傳送成功的字元由誰保管?
答: 作業系統。
串列埠傳送資訊使用writefile(), 如果是overlap方式,傳送端收到xoffchar後,writefile()會返回faile,
getlasterror() == error_io_pending.
如果是非overlap方式,程式會在writefile()在停下來, 等待傳送成功,當然,還要考慮到timeout的設定.
接下來繼續深入writefile的overlap原理。
串列埠通訊 通訊協議
我們的串列埠程式,除了通用的,進行串列埠監聽收發的簡單工具,大多都和下位機有關,這就需要關心我們的通訊協議如何快取,分析,以及通知介面。所謂通訊協議是指通訊雙方的一種約定。約定包括對資料格式 同步方式 傳送速度 傳送步驟 檢糾錯方式以及控制字元定義等問題做出統一規定,通訊雙方必須共同遵守。因此,也叫...
串列埠通訊協議
簡介 通訊協議分層理解 物理層和協議層 物理層規定通訊系統中具有機械 電子功能部分的特性,確保原始資料在物理 的傳輸。協議層規定通訊邏輯,統一收發雙方的資料打包 解包標準。物理層串列埠通訊結構圖 電平標準 ttl電平標準 理想狀態下使用5v表示二進位制邏輯1,使用0v表示二進位制邏輯0 rs232電...
串列埠通訊協議簡介
串列埠通訊 serial communication 是一種裝置間非常常用的序列通訊方式,因為它簡單便捷,大部分電子裝置都支援該通訊方式,電子工程師在除錯裝置時也經常使用該通訊方式輸出除錯資訊。電平標準根據通訊使用的電平標準不同,串列埠通訊可分為ttl標準及rs 232標準,見如下 通訊標準 電平標...