武汉波仕电子公司 版权所有
摘要:USB串口的超高速通信是指波特率超过115200bps的串口通信,比如921600、460800230400bps.由于这几种波特率是非标的,所以从硬件到软件都有特殊要求和方法才可以实现。本文以波仕USB232GH2转换器和波特率921600bps为例来进行介绍如何实现USB串口的超高速通信。
USB串口转换器是实现USB与RS-232/RS-485/RS-422串口设备相互通讯的一种协议转换装置(USB协议-串行通信协议)。一般的USB串口转换器支持的波特率最高达到115.2Kbps(115200bps).USB串口的超高速通信是指最高波特率超过115200bps的串口通信,比如921600、460800、230400bps.由于这几种波特率是非标的,所以从硬件到软件都有特殊要求和方法才可以实现。本文以波仕USB232GH2转换器和波特率921.6Kbps(921600bps)为例来进行介绍。
要实现USB串口的921.6Kbps的高速通信,必须满足2个条件:1、USB-串口转换器本身支持921.6Kbps波特率;2、必须有支持921.6Kbps波特率的通信软件。如果软件只有应用程序(EXE可执行文件),那也就只能够进行通信的演示,因为所有的接收与发送数据都必须位于应用程序的界面内,无法提供给用户。如果用户要将这些接收或者发送的数据嵌入到用户自己的程序中,那么就必须有支持921.6Kbps波特率的通信软件的源代码。
波仕USB232GH2提供一个USB2.0口,一个隔离的RS232/RS485/RS422串口,一个可以对外提供隔离5V供电的插座等。高速光电隔离USB/串口转换器支持串口最高速率达921.6Kbps,RS-232、RS-485、RS-422通用,可以虚拟成为本地COM串口(COM1-COM256)、无须修改已有的串口通信软件。USB232GH2的RS-232/485/422的最高通信速率为921.6Kbps,并且实现了USB与串口(RS-232/485/422)之间的2500V光电隔离。
1、如何判断USB-串口转换器本身是否支持921.6Kbps波特率
将USB232GH2的USB电缆插到计算机的USB口、计算机会自动检测到USB232GH2并且显示“发现新硬件”,将USB232GH2的配套光盘插入计算机的光驱,按“自动查找”计算机会自动找到驱动程序,最后按“完成”结束。用户可以查看“控制面板”的“系统\设备管理器\端口”,就会发现自动分配给USB232GH2一个新的COM口号码。如果要查看USB串口是否支持921.6Kbps(921600bps),在Windows 7下,桌面à我的电脑\属性à硬件à设备管理器à端口à通信端口(找到USB232GH2的COM口)\属性à端口设置à高级àPort Settings,用户就可以看到所支持的全部波特率了。
如果其中有921600,就说明可以支持921.6Kbps波特率。注意即使有显示921600,也并不意味着该USB-串口转换器就一定支持到921600。因为这还与具体USB-串口转换器的接口硬件性能相关。这个就必须参考产品的说明书的指标。只有经过921600bps波特率检测通过的、且厂家的说明书确认的产品才可以。另外一般来讲,产品支持RS-485和RS-422的最高波特率要比支持RS-232的最高波特率要高。
2、如何实现USB-串口转换器的921.6Kbps波特率通信
921600bps是比较少使用的波特率,可以说目前的常用串口通信软件几乎都不支持921600bps。一般最高到115200,少数到230400bps、。由于Windows api实现的最高也就支持256Kbps,所以要实现921600bps串口通信就必须使用更加底层的编程。
以Visual Basic语言为例,无法使用选择波特率的下拉式菜单来选择921600,因为921600是非标准的。要想让串口的波特率一开始就设置为921600,只能把选择波特率的下拉式菜单的属性中将初始值设为921600。注意通信波特率的设置必须用Windows底层函数来定义,否则会出现“无效的属性”提示,就是提示961200是不标准的。
由于软件运行时默认打开COM1串口,而默认波特率又是921600,那么当COM1串口是普通串口(比如波特率最高115200,达不到921600)而不是最高921600的超高速串口时,会提示“无法打开串口”。这并不意味着COM1串口不存在,只是说明COM1不支持921600。这时按“确定”后,将COM1改选为USB232GH2的COM口即可正确运行!
本文介绍的通信方法也适合于其它非标的超高波特率,比如460800bps,230400bps。一般来讲,可以支持921600bps的USB串口转换器一定也支持460800bps和230400bps。支持460800bps和230400bps的串口通信软件与以上介绍的支持921600bps的程序编写方法是一样的,就是:要想让串口的波特率一开始就设置为460800(或230400),只能把选择波特率的下拉式菜单的属性中将初始值设为460800(或230400)。