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