usb转串口rs232/rs485的超高速通信
--- 武汉波仕电子公司版权所有
摘要:usb串口的超高速通信是指波特率超过115200bps的串口通信,比如921600、460800、230400bps.由于这几种波特率是非标的,所以从硬件到软件都有特殊要求和方法才可以实现。本文以波仕usb232gh2转换器和波特率921600bps为例来进行介绍如何实现。
usb串口转换器是实现usb与rs-232/rs-485/rs-422串口设备相互通讯的一种协议转换装置(usb协议-串行通信协议)。一般的usb串口转换器支持的波特率zui高达到115.2kbps(115200bps).usb串口的超高速通信是指zui高波特率超过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/串口转换器支持串口zui高速率达921.6kbps,rs-232、rs-485、rs-422通用,可以虚拟成为本地com串口(com1-com256)、无须修改已有的串口通信软件。usb232gh2的rs-232/485/422的zui高通信速率为921.6kbps,并且实现了usb与串口(rs-232/485/422)之间的2500v光电隔离。
1、如何判断usb-串口转换器本身是否支持921.6kbps波特率
将usb232gh2的usb电缆插到计算机的usb口、计算机会自动检测到usb232gh2并且显示“发现新硬件”,将usb232gh2的配套光盘插入计算机的光驱,按“自动查找”计算机会自动找到驱动程序,zui后按“完成”结束。用户可以查看“控制面板”的“系统\设备管理器\端口”,就会发现自动分配给usb232gh2一个新的com口号码。如果要查看usb串口是否支持921.6kbps(921600bps),在windows7下,桌面à我的电脑\属性à硬件à设备管理器à端口à通信端口(找到usb232gh2的com口)\属性à端口设置ààportsettings,用户就可以看到所支持的全部波特率了。如果其中有921600,就说明可以支持921.6kbps波特率。注意即使有显示921600,也并不意味着该usb-串口转换器就一定支持到921600。因为这还与具体usb-串口转换器的接口硬件性能相关。这个就必须参考产品的说明书的指标。只有经过921600bps波特率检测通过的、且厂家的说明书确认的产品才可以。另外一般来讲,产品支持rs-485和rs-422的zui高波特率要比支持rs-232的zui高波特率要高。
2、如何实现usb-串口转换器的921.6kbps波特率通信
921600bps是比较少使用的波特率,可以说目前的常用串口通信软件几乎都不支持921600bps。一般zui高到115200,少数到230400bps。由于windowsapi实现的zui高也就支持256kbps,所以要实现921600bps串口通信就必须使用更加底层的编程。
以visualbasic语言为例,无法使用选择波特率的下拉式菜单来选择921600,因为921600是非标准的。要想让串口的波特率一开始就设置为921600,只能把选择波特率的下拉式菜单的属性中将初始值设为921600。注意通信波特率的设置必须用windows底层函数来定义,否则会出现“无效的属性”提示,就是提示961200是不标准的。
由于软件运行时默认打开com1串口,而默认波特率又是921600,那么当com1串口是普通串口(比如波特率zui高115200,达不到921600)而不是zui高921600的超高速串口时,会提示“无法打开串口”。这并不意味着com1串口不存在,只是说明com1不支持921600。这时按“确定”后,将com1改选为usb232gh2的com口即可正确运行!()
本文介绍的通信方法也适合于其它非标的超高波特率,比如460800bps,230400bps。一般来讲,可以支持921600bps的usb串口转换器一定也支持460800bps和230400bps。支持460800bps和230400bps的串口通信软件与以上介绍的支持921600bps的程序编写方法是一样的,就是:要想让串口的波特率一开始就设置为460800(或230400),只能把选择波特率的下拉式菜单的属性中将初始值设为460800(或230400)。