最近試驗了一下CH341轉(zhuǎn)R232串口,由一片341加一片Max232組成,測試結(jié)果速度太慢了,用一個串口編程器試驗(自制的),讀取一片89C52內(nèi)容競?cè)灰?4s ,而相同條件下用機器自帶的硬串口只要3.07秒,以為USB轉(zhuǎn)串口就這速度呢,然后用一個在市場上買的USB轉(zhuǎn)RS232(PL2303芯片)線試驗,結(jié)果人家只用了3.17秒就完成了,基本上和機器上的硬串口相當,于是又試了CP2101芯片的,結(jié)果也差不多,為什么341這么慢?
請你具體講一下,你的PC應用程序是如何操作串口的? 你是否使用握手信號?
PC端用Delphi和Windows標準API寫的(CreateFile,ReadFile,WriteFile...),每次下傳16個字節(jié)(有檢查和校驗),下位機接收正確(校驗正確)回傳一個字節(jié)0x0f,(OK),上位機再傳下16個字節(jié),否則回傳一個字節(jié)ERR(0xf0)上位機重發(fā)上一次的16個字節(jié),沒有使用硬件握手,買的那個USB轉(zhuǎn)串口線使用PL2303芯片,也是三線的,沒有Modem信號,然而同樣的程序,PL2303的要比341快4倍還多.是不是341雙向通訊延遲比較大? 還是發(fā)送和接收緩沖區(qū)的問題?
針對您所說的這個問題,最近我們做了好多測試:上位機測試程序是用Delphi寫的,每次PC向串口寫16字節(jié)數(shù)據(jù),與串口相連的sst單片機,收到16個字節(jié)數(shù)據(jù)后返回一個0xf0數(shù)據(jù),上位機收到0xf0后再往下發(fā)16個字節(jié),如此循環(huán)1000次,測試下來的結(jié)果并不是您所說的那樣.他們的速度沒有多大差別,更不會是您所說的4倍之多.您出現(xiàn)的這種現(xiàn)象很奇怪,如果方便的話,您可以將您關于串口操作的那一塊代碼發(fā)來幫您看一下:tech@wch.cn
最近有點忙,過一段我會給你們一個比較容易實現(xiàn)的測試方案,比如用PC的一個串口和341產(chǎn)生的虛擬口通信,然后再比較和PL2303線的通信速度.
對了,我是用57600波特率的,不知道你們試驗的時候用的是多少?
公司測試是從4800BPS--115200BPS
串口驅(qū)動2.4已更新,請從我們公司網(wǎng)站http://www.findthetime.net/download/list.asp?id=65或http://www.findthetime.net/download/list.asp?id=5下載最新的驅(qū)動. 您試一看看結(jié)果怎么樣.有問題請與我們聯(lián)系.
安裝2.4驅(qū)動速度一下就上來了(原來是2.3),哈哈,現(xiàn)在是3.3秒,已經(jīng)基本上和硬口串差不多了,很想知道為什么,到底是什么原因呢?.