最近试验了一下CH341转R232串口,由一片341加一片Max232组成,测试结果速度太慢了,用一个串口编程器试验(自制的),读取一片89C52内容竞然要14s ,而相同条件下用机器自带的硬串口只要3.07秒,以为USB转串口就这速度呢,然后用一个在市场上买的USB转RS232(PL2303芯片)线试验,结果人家只用了3.17秒就完成了,基本上和机器上的硬串口相当,于是又试了CP2101芯片的,结果也差不多,为什么341这么慢?
请你具体讲一下,你的PC应用程序是如何操作串口的? 你是否使用握手信号?
PC端用Delphi和Windows标准API写的(CreateFile,ReadFile,WriteFile...),每次下传16个字节(有检查和校验),下位机接收正确(校验正确)回传一个字节0x0f,(OK),上位机再传下16个字节,否则回传一个字节ERR(0xf0)上位机重发上一次的16个字节,没有使用硬件握手,买的那个USB转串口线使用PL2303芯片,也是三线的,没有Modem信号,然而同样的程序,PL2303的要比341快4倍还多.是不是341双向通讯延迟比较大? 还是发送和接收缓冲区的问题?
针对您所说的这个问题,最近我们做了好多测试:上位机测试程序是用Delphi写的,每次PC向串口写16字节数据,与串口相连的sst单片机,收到16个字节数据后返回一个0xf0数据,上位机收到0xf0后再往下发16个字节,如此循环1000次,测试下来的结果并不是您所说的那样.他们的速度没有多大差别,更不会是您所说的4倍之多.您出现的这种现象很奇怪,如果方便的话,您可以将您关于串口操作的那一块代码发来帮您看一下:tech@wch.cn
最近有点忙,过一段我会给你们一个比较容易实现的测试方案,比如用PC的一个串口和341产生的虚拟口通信,然后再比较和PL2303线的通信速度.
对了,我是用57600波特率的,不知道你们试验的时候用的是多少?
公司测试是从4800BPS--115200BPS
串口驱动2.4已更新,请从我们公司网站http://www.wch.cn/download/list.asp?id=65或http://www.wch.cn/download/list.asp?id=5下载最新的驱动. 您试一看看结果怎么样.有问题请与我们联系.
安装2.4驱动速度一下就上来了(原来是2.3),哈哈,现在是3.3秒,已经基本上和硬口串差不多了,很想知道为什么,到底是什么原因呢?.