iT邦幫忙

0

rs232 同時接收發送是否會阻塞?

Zaku 5 月前3399 瀏覽

各位大大好,
請問一下,若我用電腦將RS232的訊號接收進來,不斷地在接收,
假定0.3秒會收到一次訊號,
那麼在這個瞬間我若發一個訊號回去,
兩個之間會衝突嗎?
還是它們是分開的?或不一定,看機器?

譬如訊號可能延遲送出,
或是可能會被干擾,而訊號錯出有誤,或收接衝突兩邊訊號都出問題等等?

窮嘶發發發 iT邦高手 1 級 ‧ 5 月前 檢舉
RS232 速度就算你調整到 115K
你資料沒傳完,就是要等,你可以發沒錯,但會排在佇列上面
等傳完了,才能夠再進行下面的傳輸做業
如果有用過 MODEM 上過網的人,就知道了
他不能一直收發資料,一段時間就會頓一下
跟現在的網路環境不一樣,上過TELEX的人應該會很清楚,RS232 的做動模式
他就是很死板的傳送要求 > 傳輸 > 傳輸完成告知 > 結束
如果 RS232 可以 不需要等待,那麼 TELEX 的時候就會有線上聊天室了
不會只有純文字的溝通方式
Zaku iT邦新手 5 級 ‧ 5 月前 檢舉
請問,意思是,機器發送給電腦,電腦收到後會再回傳"收到"給機器,這樣才完成一次傳輸,但在這個之間,電腦向發送訊號給機器,會卡住?會等到完成上述動作才發訊息??所以會卡?照時間先後順序排成送?還是機器跟電腦發訊號是分開的?但都要完成"發送要求" , "完成告知"這兩個動作。
3
門神JanusLin
iT邦大師 1 級 ‧ 5 月前

rx/tx腳位是分開的
除非你的電腦或是設備處理慢了

Zaku iT邦新手 5 級 ‧ 5 月前 檢舉

感謝大大,所以基本上訊號是分流開的,收歸收,發送歸發送。除非設備或電腦本生態爛才可能會有某些問題?

門神JanusLin iT邦大師 1 級 ‧ 5 月前 檢舉

Welcome

0
WilliamHuang
iT邦大師 1 級 ‧ 5 月前

RS-232是最簡單的傳輸方式
他也是最笨的~
網路傳的話他會說
我開始傳了唷
另一台會回
我開始收了唷
然後傳2XX
另一台會回我收到2XX
結束傳輸
但是RS-232
只會一直等~等到你軟體
或裝置重開機才會正常
所以~因為傳送跟接收不是同腳位
SO...不會有影響阻塞情形發生
/images/emoticon/emoticon41.gif

0
wwx
iT邦研究生 1 級 ‧ 5 月前

是的,會塞或出錯!

因為通常rs232硬體介面的cache/buffer只有幾bytes,
通訊量如果沒在這個緩存大小內和足夠的I/O次數可以完成的話,
就會發生問題!
使用專業的moxa則cache/buffer可以到32KB甚至更多於這方面可以改善

如果是直接控制RS232的I/O
最好雙方透過檢查DSR/CTS的狀態來進行recv/send
Null Modem則可以主動控制DSR/CTS狀態使其相容數據機的用法...
透過這種模式可以避免

一般來說也可看Baud Rate設多少,控制傳輸速度不可高過設定

如果是用COM元件開發要看那個COM元件本身的設計了~
例如Windows下要看使用同步還是非同步的方式,控制方式也會不一樣
如果要發送的信息很大,又使用同步的方式一次就送出,
那段程式就要等到資料全部送完才會執行下一個步驟了~
比如Baud Rate設9600bps,
那要發送1KB的資料大概就得超過1秒以上了...
也就是塞住的感覺!

如果使用非同步的方式又沒檢查CTS Low的狀態,
那麼資料直接一次送出去會送太快可能就丟失了哩!

我要發表回答

立即登入回答