有一些情况下需要将一个RS-232口扩展出多个RS-232口,本文以波仕电子产品为例介绍如何选择RS-232扩展器及其使用方法。
从总体上讲,RS-232扩展器分为两类:带地址与不带地址的。我们知道,RS-485以及RS-422可以实现多机通信,前提是各个下位机都可以设置地址。上位机与下位机进行数据通信之前先发送地址信号,选通某地址的下位机后进行数据通信。而RS-232口本身不支持多机通信,即使带可设置地址功能也必须先转换为RS-485或RS-422口后才能够实现。更多情况下,RS-232口不带设置地址功能,但是加带地址的RS-232扩展器后可以实现多机通信。
1、带地址的RS-232扩展器
波仕的产品型号为4232A、8232A。 RS-232一变四扩展器(型号:4232A)用于将PC机的一个RS-232串行口分时扩展成四个准RS-232串行口。4232A已经有4个下位机的硬件地址,无需修改下位机的软件。准RS-232串行口只有TXD(发送)、RXD(接收)、GND(信号地)三个信号。4232A适用于一台PC机与多台PC机、单片机或仪表之间的通信。
4232A的外型为DB-9(孔)/DB-25(针)转接盒大小,直接插在PC机的DB-9芯RS-232串行口上。4232A无须外接电源!4232A还配套有带4个DB-9针座的板,可以直接插4232A的DB-25端。使用之前通过软件设置来分时选通四个下位机RS-232口。选择下位机串口地址只需要加一句指令或者只需要一个初始设置。
WINDOWS下4232A的软件设置方法
4232A支持mscomm.ocx通信控件。WINDOWS下的编程语言只要可以使用mscomm.ocx通信控件就可以方便地得到4232A的支持。打开一个mscomm控件,分别设:
RTS.Enable=False DTR.Enable=False ; 此时选中0# 准RS-232口
RTS.Enable=False DTR.Enable=True ; 此时选中1# 准RS-232口
RTS.Enable=True DTR.Enable=False ; 此时选中2# 准RS-232口
RTS.Enable=True DTR.Enable=True ; 此时选中3# 准RS-232口
也可以使用波仕网站上的软件NTPort对端口地址(比如3FC)进行写操作,软件设置方法为向所插的RS-232串行口地址送被选中的准RS-232口编号(0、1、2、3)。比如外插COM1串行口(物理地址为3FC)时,要选通2号准RS-232口,则
BASIC语言为OUT &H3FC,2 C语言为outportb (0x3fc,2);
以上语句均指向COM1串行口,如果是COM2串行口则将物理地址3FC改为2FC即可。
2、不带地址的RS-232扩展器
波仕的产品型号为4232B、8232B。4232B本身不带地址,所以要求各个下位机RS-232口自己带地址。4232B的一个上位机向4个下位机发送的数据是一样的,软件与RS-485多机通信是一样的。4232B用于一个RS-232串行口与多个(1、2、3或4个)RS-232串行口的通信连接。4232B使传统的RS-232口实现多机通信。4232B已经有4个下位机的插座(DB-9针座),无需修改软件、无须供电。4232B的RS-232串行口只有TXD(发送)、RXD(接收)、GND(信号地)三个信号。4232B适用于一台上位机的RS-232口同时驱动多至四台下位机的RS-232口。
4232B实现RS-232多机通信时,软件与RS-485多机通信是一样的。可以理解为一个4232B代替了5个RS-232/RS-485转换器。因为这5个RS-232口(1个上位机、4个下位机)也可以通过都转换为RS-485口的方法实现多机通信。
4232B的外型与4232A是完全一样的,也无须供电。它们的区别在于:4232B既可以外插计算机、也可以外插设备的RS-232口,因为4232B无须软件设置。4232A必须外插计算机,因为要使用软件设置地址。
2、其它RS-232扩展器
从计算机扩展多个RS-232口的方法还有:从PCMCIA口扩展、从USB口扩展、从以太网扩展。这些方法扩展出来的RS-232口是带独立地址的,不依赖原来的RS-232口。
笔记本的PCMCIA扩展出的RS-232口的通用性是最好的,因为是带独立物理地址的。它相当于从台式计算机的PCI扩展的RS-232口的通用性。 由于计算机的PCMCIA口的变化,现在的PCMCIA卡有3种插口外形:最左边的为方形,中间为T形,最右边为条形,请一定特别注明。
USB扩展RS-232口已经非常广泛,优势是无须供电,使用方便。缺点是通用性比PCMCIA扩展的RS-232口差。以太网扩展RS-232口也在工业上大量使用,需要供电,需要专门的软件,通用性介于PCMCIA串口扩展器与USB串口扩展器之间。