串行端口
编辑在计算中,串行端口是一个串行通信接口,通过它一次信息依次传输一个比特。这与并行端口相反,并行端口同时通信多个位。在个人电脑的大部分历史中,数据通过串口传输到调制解调器、终端、各种xxx设备,以及计算机之间直接传输。
虽然以太网、FireWire和USB等接口也以串行流形式发送数据,但术语串行端口通常表示符合RS-232或相关标准(如RS-485或RS-422)的硬件。
现代消费型个人电脑在很大程度上已经用更高的速度标准取代了串行端口,主要是USB。然而,串口仍然经常用于需要简单、低速接口的应用,如工业自动化系统、科学仪器、销售点系统以及一些工业和消费品。
服务器计算机可能使用串口作为诊断的控制台,而网络硬件(如路由器和交换机)通常使用串口进行配置、诊断和紧急维护访问。为了与这些和其他设备接口,USB到串行转换器可以快速轻松地向现代PC添加串行端口。
串行端口的硬件
编辑在当今,许多设备使用称为UART的集成电路来实现串行端口。该IC将字符转换为异步串行形式,实现串行协议在硬件中指定的数据的时间和框架。IBM PC在存在时使用一个或多个UART实现其串行端口。
非常低成本的系统,例如一些早期的家用计算机,会使用CPU通过输出引脚发送数据,使用位撞击技术。这些早期的家用计算机通常具有专有的串行端口,其引脚和电压水平与RS-232不兼容。
在大规模集成(LSI)使UART成为普遍之前,串口通常用于大型机和小型计算机,这些小型集成电路将具有多个小型集成电路来实现移位寄存器、逻辑门、计数器和所有其他所需的逻辑。随着PC的演变,串行端口包含在超级I/O芯片中,然后包含在芯片组中。
硬件抽象
操作系统通常为计算机的串口创建符号名称,而不是要求程序通过硬件地址引用它们。
类Unix操作系统通常标记串口设备/dev/tty*。TTY是电传打字的常见无商标缩写,电传打字通常附加在早期计算机串行端口上的设备,*代表一个字符串,标识特定端口;该字符串的语法取决于操作系统和设备。在Linux上,8250/16550 UART硬件串行端口名为/dev/ttyS*,USB适配器显示为/dev/ttyUSB*,各种类型的虚拟串行端口不一定以tty开头。
DOS和Windows环境将串行端口称为COM端口:COM1、COM2等。
虚拟串行端口
编辑虚拟串行端口是物理串口的模拟。有几个用例。
串口重定向
串口重定向软件在操作系统中创建额外的虚拟串口,而无需额外的硬件安装(如扩展卡等),以便为各种应用程序分割或重定向数据。
一种选择是在多个应用程序之间共享数据。在大多数操作系统的约束下,串口通常一次只能由一个设备监控,但串口重定向器可以创建两个虚拟端口,用于两个单独的应用程序来监控相同的数据,例如输出位置数据的GPS设备。
另一种选择是通过互联网或局域网与另一台串行设备通信,就像它们是本地连接一样,使用局域网串行设备。
虚拟串口理想地模拟所有硬件串口功能,包括波特率、数据位、奇偶校验位、停止位等。此外,它们允许控制数据流,模拟所有信号线(DTR、DSR、CTS、RTS、DCD和RI)并自定义引脚。
在PC中可以创建大量虚拟串行端口。xxx的限制是资源,如RAM和CPU时间。串行端口模拟器可用于许多操作系统,包括MacOS、Linux、NetBSD和其他类Unix操作系统,以及各种移动和桌面版本的Microsoft Windows。
蓝牙
蓝牙通过串行端口配置文件实现虚拟串行端口。例如,这是从配备蓝牙的GPS模块接收数据的标准方式。
软调制解调器
软件实现的调制解调器驱动程序创建一个虚拟串行端口,用于与主机操作系统通信,因为调制解调器完全在设备驱动程序中实现,因此没有将串行数据发送到物理卡的地方。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/122455/