如何提高RS-232傳輸速度

小弟我使用RS232和 I/O控制盒溝通

但是每write一次所需都需wait 50ms才能繼續下個動作

請問在baudrate 9600下要如何減少wait的時間?

9600的速度就是每秒可傳1200可字,已就是說PC下指令+I/O盒回指定的總數如為30個字,就要花25ms(30/1200),加上PC及I/O盒的處理時間也要20~30ms,所以50ms已經是非常快

如果baudrate 115200時  請問可以讀取多少是值?

一個字元8bit來計算
所以一秒鐘能傳的字元為baudrat/8
這也就是之前9600可傳輸1200字元的計算
115200/8=每秒14400個字元
但是為了系統穩定,多半不會將頻寬佔滿
所以已我常用的上限就是14400/2=每秒7200字元
也就是通訊設計上,每秒字元上限為7200
如此可以保證較好的通訊品質
避免系統稍微LAG加上長久使用下BUFFER容易爆掉的狀況

那在請問一下  我包率是115200  一個字元15bit來計算 之後再/2

每秒字元上限為3840  
那為什麼我把讀取bytes調至15時
會出現溢出的錯誤??

不是很懂你說的,
可否貼張圖&錯誤訊息看看?

另,DATA BITS只能5-8(當有其他停止位元時會變少),該敘述如下:
data bits is the number of bits in the incoming data. The value
of data bits is between five and eight. The default value is 8.

串列傳輸速率:115200
資料位元:10位(1個起始位;8個資料位元;1個停止位;無校驗);
資料封包:15-byte/包;250資料包/秒
信號電平:TTL/RS232C可選(預設RS232C)
接收資料格式:
每個封包15個位元組(無符號8位元),

這樣的話  bit要設多少呢??
LEEEEO41206.6300694444

DATABITS一樣是8,這個設定只是告訴電腦如何把資料依共通的協定收回來,
然和取得的資料需要轉換,你必須自己去定義取得資料的格式,
例如GPS中U-BLOX6通訊中取得版本的通訊封包:


這意味著我必須要把傳回來的東西回復成規定的格式,才能了解資料內容為何。

所以你必須要把資料抓回來,(你說15-BYTE/包,代表一個資料佔了15 BYTES,但是後頭又說是15BITS/包?)
判讀檔頭(通常有定義的格式)後取得後面長度的資料才行。

是15-BYTE/包 才對 我看錯



壓縮檔是我的錯誤的視窗
不知到為什麼讀取的時候一直溢出?

http://it360.tw/forum/forum_posts.asp?TC=00SOCIA0F29C&KW=RS232

這邊也是討論一樣的問題

 

bahamut41207.3531828704