技术频道

正确选择笔记本串口扩展卡

现在的笔记本计算机可以说都没有带RS-232串口了,但是在许多工业通信的场合需要用到RS-232口和RS-485口。这样就需要从笔记本计算机扩展出RS-232口,有了RS-232口就可以加波仕RS-232/RS-485转换器也就可以扩出RS-485口。现在主流笔记本的扩展槽叫做EXPRESS插口,早期的笔记本的扩展槽称为PCMCIA插口。本文将先简要介绍这2种插口的区别,然后重点介绍几种EXPRESS串口卡的真实物理地址串口与虚拟串口的区别,以帮助用户正确选择。当然无论是笔记本计算机还是台式计算机都有USB口,显然USB口也是可以扩展出串口的,本文也将对USB扩出串口与EXPRESS扩出的串口有什么区别进行介绍。而关于USB以及以太网扩展出串口的问题,我们将另外文章予以详细介绍。

从总体上讲,计算机串口扩展器分为两类:真实物理地址串口与虚拟串口。真实物理地址串口有固定的I/O地址以及中断号,比如COM1的基地址规定为3FC,中断号为INT 14。通信软件可以通过对地址的直接I/O读写来实现。虚拟串口就是没有固定I/O地址的,它的通信只能通过比如被包装的WINDOWS API函数或者比如MSCOMM控件来实现。当然真实物理地址串口的通信也可以用API函数或MSCOMM控件来实现。虽然我们确信实现串口的通信必然存在对计算机内部的串口通信芯片的地址总线和数据总线的读写,但是因为虚拟串口的这些读写不是固定地址的,而是WINDOWS内核智能随机分配的,那么用户就无法编写出读写这些动态I/O的指令。显然如果通信软件中有I/O地址,那么就只有真实物理地址串口是可行的。而在我们的大量实际使用例子中,有些通信软件即使用的就是API函数或者MSCOMM控件,但是在比如数据采集等实时性要求较高的场合,往往就是用不了的,而必须使用真实物理地址串口。原因可能是虚拟串口由于API函数或是MSCOMM控件因为相对于直接I/O读写过于复杂而耗时,使得读写时间超过了实时性要求而通信失败。已经有的大量工业串口通信软件由于实时性和可靠性的考虑仍然使用了I/O读写,或者就是用API函数或MSCOMM控件但是实时性要求高,这样就只有用真实物理地址串口卡。注意无论是真实物理地址串口卡还是虚拟串口卡,这些扩展出来的RS-232口都是独立的。区别它们的方法就是看COM口的号码,是绝对不会重复的。
目前能够从计算机扩展出真实物理地址串口的接口,对于笔记本来讲只有现在EXPRESS插口或者早期笔记本的PCMCIA插口。对于台式机来讲,只有PCI插槽或者早期的ISA插槽。
参见图1。笔记本的扩展卡有3种插口外形:最左边的条形叫做EXPRESS卡,最右边为方形叫做PCMCIA卡。中间的L形的卡也是EXPRESS卡,电插口部分是一样的,但是外形比条形的EXPRESS卡大一些。显然条形的RXPRESS卡可以插到L形的EXPRESS槽里面,反之不行。可以说L形的EXPRESS只是一个过度产品。注意任何RXPRSS卡都无法插到PCMCIA槽里面的,反之更不行。PCMCIA也是一个过时的接口,我们将不再讨论。

图1
EXPRESS插口全称是RXPRESS PCI或者PCI EXPRESS,也简称为E-PCI,它与台式机的PCI接口规范是一样的。但是在物理尺寸上有一些减小,并且EXPRESS总线还包含有USB口!
是的,EXPRESS总线还包含有USB口,因此我们要特别注意。因为这就意味着EXPRESS扩展出来的串口可能是真实物理地址也可能是虚拟串口的。USB扩展的串口肯定是虚拟的。
图2
图2是用EXPRESS插口的USB总线扩展出的虚拟串口卡的内部结构图。USB的D+和D-占用了RXPRESS插口的2个脚,再加上已有的5V和GND信号就构成了一个完整的USB2.0口。它与从USB口扩展的RS-232串口没有本质的区别。所以它是一个EXPRESS的虚拟串口卡。
图3
图3是用EXPRESS插口的地址总线和数据总线扩展出的真实物理地址串口卡的内部结构图。它与从台式机的PCI口扩展的RS-232串口没有本质的区别。所以它是一个EXPRESS的真实物理地址串口卡。
问题并没有就这样简单的结束。并非所有EXPRESS的真实物理地址串口卡在任何WINDOWS版本下都可以用的起来。WINDOWS并不是适合工业通信的操作系统,实时性不如单任务的操作系统DOS,只不过是因为垄断才造就了工业通信产品居然要向WINDOWS兼容的要求。目前主流的WINDOWS版本是XP,而实际安装的XP绝大部分是GHOST版本。可能因为XP出现的比EXPRESS早,也可能目前RXPRESS串口卡正在发展阶段,许多的EXPRESS真实物理地址串口卡并不支持目前装机量最大的GHOST版本的XP(图4)。

图4
波仕电子花大量的精力和成本解决这些问题,所以波仕的EXPRESS串口卡不仅是真实物理地址的,而且软件上也不存在这样的GHOST XP兼容问题。
安装好了驱动程序后,如何识别EXPRESS CARD扩展的串口是虚拟串口还是真实物理地址串口呢?以Windows XP为例,点击:我的电脑\属性\系统属性\硬件\设备管理器\端口,找到新出现的COM口,再点击: 属性\详细信息,如果是真实物理地址的串口,就会显示物理地址以及中断号,比如3FC、2FC之类,如果是USB虚拟串口,就会显示USB的字样,比如设备范例ID:USB\VID_067B&PID_2303\5&18CD3484&1&2。

文章版权归西部工控xbgk所有,未经许可不得转载。