"COM","USB","串口"之间有什么区别?

smw*_*dia 24 windows hardware usb serial-port

我对这三个概念感到困惑.

我的理解是,Serial Port通常意味着RS-232兼容端口(RS =推荐标准).USB代表Universal Serial Bus.所以它的名字包含串口,是否支持RS-232?什么Universal意思?

COM端口是什么意思?

添加1

汉斯回答的一些理解:

为了减少工作量,设备制造商通常也会使其设备的行为类似于串行端口设备.这依赖于许多操作系统和语言库已经包含串行端口通信支持的事实.虽然这种支持无法与真正匹配的设备驱动程序相媲美.

添加2

关于Serial Port HOW-TO的一个很好的参考文档.

顺便说一下,Linux Document Project非常有用.

Han*_*ant 36

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竞争,这是一种非常类似的方法,并且得到了Apple的支持,但是却因为滑坡而获胜.

目前串行端口在Windows上仍然相关的唯一原因是因为USB设备需要自定义设备驱动程序.设备制造商喜欢编写和支持驱动程序,他们经常在驱动程序中使用快捷方式,使其模拟传统的串行端口设备.因此,程序员可以使用对操作系统内置的串行端口的遗留支持以及任何语言运行时库.相当不完美的支持btw,这些模拟器永远不会支持即插即用.发现要打开的特定串行端口非常困难.当您的程序使用USB设备时,这些驱动程序通常会无法诊断出无法诊断USB设备的方法.

  • *"这些天串口仍然与计算有关的唯一原因......"* - 这听起来像是以PC为中心的观点,而不是计算机行业的准确观点.SoC几乎总是至少有一个用于串行控制台的UART,因为UART在HW和SW意义上都很容易用于接口.*"USB设备需要设备驱动程序."* - *所有*设备(无论总线)都需要驱动程序.是否必须安装它或者它是否已经在操作系统中是另一个问题.USB需要**协议栈**(因为它是多设备总线). (7认同)
  • 叹.它当然是可编程的,以所需的间隔自动关闭,因此咖啡不会烘烤到杯子上.为皮特的缘故使用一些想象力. (4认同)
  • 当然,这听起来像是以嵌入式设备开发为中心的观点。“COM”应该是一个很好的暗示,表明 OP 正在问一个以 Windows 为中心的问题。 (2认同)
  • 我不认为USB咖啡壶加热器是一个真正的USB设备的例子.此类设备通常仅使用USB端口提供的5V/500mA电源,而不使用数据通信线路. (2认同)

Cli*_*ord 8

USB代表通用串行总线而非端口.术语"串行端口"仅意味着数据在单个信号路径上一次传输一位 - 在这种意义上,即使以太网本质上也是串行的.两个术语中的单词serial表示与数据路径的宽度无关.

你是对的,因为PC环境中的串行端口一词通常意味着RS-232端口,但是还有其他串行端口标准,例如工业应用中经常使用的RS-422和RS-485.它们的共同点是它们是使用UART(通用异步接收器/发送器)实现的.

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" ) ;.

  • @user34660:一点也不;主机在设备供电时检测到该设备,并启动通信。连接时,主机不断轮询设备,设备可以在轮询响应数据包中发送数据。全双工通信和类UART通信的出现是一个门面。 (2认同)