毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 开发语言 >> 正文

vb如何提供mscomm的通信效率

更新时间:2013-11-29:  来源:毕业论文

和AT89C51ED2的bootloader通信。ED2的bootloader会收到一个字节就立即返回这个字节。
使用了485,但485是个半双工的通信方式。而ED2的bootloader是双工通信。
如果上位机连续发送,ED2立即返回接受的字节,会在485总线产生冲突,从而不能正常通讯。

处理方法:
VB 用mscomm控件写上位机发送程序,一次发送1个字节,延时等待(或者在接收事件中再发生下一个字节)接收到返回的1个字节后再发送下一个字节。

问题:
VB的整个过程效率太低下了,57600波特率,2个停止位,发送64K数据(实际还要增加大约10%的命令头,尾等信息)需要大约22分钟。
而厂家提供的双工模式下的通讯程序只要1-2分钟。

即使双工变半双工,理论上应该2-4分钟就可以完成。

怎么提高速度?
多种选择:

1 采用 4 线制 RS-485 架构,做成全双工。

2 仍采用 2 线制 RS-485 架构,每字节切换传输方向。在 PC 端,不要采用延时方式,而是使用 OnComm 事件触发,接收并发送一字节。

PC 的速度是很快的。如果没有有意的延时,一般不会影响到串口通讯的速度。

问题是否出在 RS-232 转 RS-485 的环节?

你一定要得到芯片返回的字节吗?如果不是必要的,在从机硬件方面做一些改动,在这个操作期间,芯片的 TXD 不要连接到 RS485 去,RS485 的 2 条线仅用作主机发送的差分信号。把芯片返回数据忽略掉。

如果一定要返回的字节,就改成 4 线制,或者找能够更快转换发送方向的 232-485 转换器。

有一点你没有说清楚,厂家双向模式的程序不是用当前 RS485 环境测试的吧?

还有一点,你和转换器的波特率是 57600,并不意味着 RS485 线上的波特率也是这么高。RS485 远距离传输时,波特率一般都低于 9600。距离越远,可实现的波特率就越低,有用 1200 的。

因此,与 RS232 传输相比,速度差个几倍十几倍,很正常。

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。