我对这3个概念感到困惑。
我的理解是,Serial Port
通常意味着RS-232兼容端口(RS =推荐标准)。 USB
代表Universal Serial Bus
。所以它的名字包含串口,是否支持RS-232? Universal
是什么意思?
COM端口是什么意思?
汉斯的一些理解'回答:
为了减少工作量,设备制造商通常也会使其设备的行为类似于串行端口设备。这依赖于许多操作系统和语言库已经包含串行端口通信支持的事实。虽然这种支持无法与真正匹配的设备驱动程序相媲美。
关于Serial Port HOW-TO的好参考文档。
顺便说一句,the Linux Document Project非常有用。
答案 0 :(得分:34)
Serial port
是一种使用UART芯片的设备,通用异步接收器发送器。在过去,连接计算机的两种基本方法之一是并行端口。串口很容易连接,它不需要很多电线。如果你想要快速,并行是有用的,比串行快8倍,但电缆和连接器很昂贵。并行I / O已完全从计算机设计中消失,它被总线收发器的巨大进步所吸引,这种芯片可以通过电线传输电信号。
COM
来自MS-Dos,它是设备名称。 “COMmunication port”的缩写。 20世纪80年代的计算机通常有两个串行端口,机器背面标有COM1和COM2。此名称已转移到Windows中,大多数模拟串行端口的驱动程序将在其名称中创建一个名为“COM”的设备。 LPT
是并行端口的设备名称,是“Line PrinTer”的缩写。
RS-232
是串行端口的电信号标准。它是对设备要求非常低的最简单的一种,只支持点对点连接。 RS-422和RS-485并不罕见,每个信号使用一对双绞线,提供更高的抗噪性,允许多个设备相互连接。
USB
表示通用串行总线。能够将微处理器集成到几毫米的设备中,并且成本只有几美分。它在20世纪90年代后期取代了传统设备。它是Universal,因为它可以支持许多不同类型的设备,从咖啡壶加热器到磁盘驱动器,wifi适配器到音频播放。它是Serial,它只需要4根电线。它是一个总线,您可以将USB设备插入任意端口。它与FireWire竞争,这是一种非常类似的方法,并且得到了苹果的支持,但却以滑坡而获胜。
目前,串行端口在Windows上仍然存在的唯一原因是因为USB设备需要自定义设备驱动程序。设备制造商不喜欢编写和支持驱动程序,他们经常在驱动程序中使用快捷方式,使其模拟传统的串行端口设备。因此,程序员可以使用对操作系统内置的串行端口的遗留支持以及任何语言运行时库。相当不完美的支持btw,这些模拟器永远不会支持即插即用。发现要打开的特定串行端口非常困难。当您的程序使用USB设备时,这些驱动程序经常会出现行为错误,无法诊断出来。
答案 1 :(得分:8)
USB代表通用串行总线而非端口。术语“串行端口”仅意味着数据在单个信号路径上一次传输一位 - 在这种意义上,即使以太网本质上也是串行。两个术语中的单词 serial 意味着除了数据路径的宽度之外没有任何关系。
你说得对,在PC环境中的术语串口通常意味着RS-232端口,但还有其他串口标准,如RS-422和RS-485常用于工业应用。它们的共同之处在于它们是使用UART(Universal Asynchronous Receiver/Transmitter)实现的。
USB中的术语通用仅仅反映了它不是特定的设备接口,例如旧硬件上的专用鼠标或键盘端口。同样,基于UART的串行端口不是特定于器件的,由UART中的U反映。
USB在很多方面与RS-232显着不同;它是主/从(或USB术语中的主机/设备),而不是点对点,USB设备无法启动通信,它必须由主机轮询。 USB包括一个低压电源,允许具有中等功率要求的设备由总线供电 - 这也是USB端口可用于为电池供电设备充电的原因。 USB比RS-232复杂得多,RS-232仅定义物理(硬件)层,而USB需要完整的软件协议栈。
术语COM只是Windows(以前的MS-DOS)中用于串行(UART)端口的设备名称前缀。 “通信”的缩写,您可以打开一个COM端口作为流I / O设备,并说FILE* port = fopen( "COM1", "wr" ) ;
。