零调制解调器

零调制解调器(英語:Null modem),也称空调制解调器,是一种使用一根RS-232串行电缆英语Serial cable直接连接两个DTE英语Data terminal equipment電子計算機終端打印机等)的通信方法。这个名称源自历史上使用RS-232电缆将两个電傳打字機设备到连接两个调制解调器以彼此通信的方式;零调制解调器的通信是指使用交叉的RS-232电缆将电传打印机直接连接到另一台电传打印机,而无需调制解调器。

一个空调制解调器适配器

假设一端为一个DTE,另一端为一个DCE英语Data circuit-terminating equipment(例如调制解调器),则RS-232标准对于通信链路两端的定义是不对称的。使用零调制解调器连接,则发送和接收线路交叉连接取决于目的,有时还会交叉连接一个或多个握手线路。因为零调制解调器连接未被RS-232标准覆盖,所以有数种布线布局得到使用。

起源编辑

最初,RS-232标准的开发是用于电传打字机通过电话线相互通信。每个电传打印机通过RS-232物理连接到其调制解调器,而调制解调器可以呼叫,以在电传打印机之间建立远程连接。如果用户想直接连接两台电传打印机而不用到调制解调器(零调制解调器),则将它们交叉连接。术语零调制解调器也可以指其电缆或适配器本身以及连接方法。[1]零调制解调器电缆是20世纪80年代到90年代初期的早期个人电脑之间传输数据的常用方法。

线缆和适配器编辑

一个零调制解调器电缆

零调制解调器电缆为RS-232串行电缆,其中发送和接收线路交叉连接。一些电缆中也有交叉的握手线路。在许多情况下使用一个直通串行电缆配合一个零调制解调器介面卡。适配器包含信号之间必要的交叉连接。[2][3]

接线图编辑

DB-25零调制解调器接线图
DE-9零调制解调器接线图

以下是用于互连两个DTE(例如两台个人电脑),提供完全握手的零调制解调器电缆的非常常见的接线图,它配合软件,依赖于适当的数据载体检测(CD)信号:

一侧信号检测另一侧
信号和缩写DB-25针脚DE-9针脚DE-9针脚DB-25针脚信号
帧接地FG1不適用通用不適用1FG
发出数据英语Transmitted DataTxD, TD2323RxD
接收数据RxD、RD3232TxD
请求发送RTS4785CTS
清场发送CTS5874RTS
信号地英语Single-ended signallingSG75通用57SG
数据集就绪DSR66420DTR
数据载波检测英语Data Carrier DetectDCD、CD81
数据终端就绪英语Data Terminal ReadyDTR20418DCD
66DSR

应用编辑

零调制解调器最初的应用方式是直接连接两台电传打印机,而无需使用调制解调器。由于其他类型的设备采用了RS-232标准,设计人员需要决定其设备是否具有类DTE或类DCE的接口。当应用程序需要两个DTE(或两个DCE)相互通信时,则需要一个零调制解调器。[4]

零调制解调器常用于计算机之间的文件传输英语file transfer或远程操作。在Microsoft Windows操作系统中,可以通过零调制解调器连接使用直接电缆连接英语direct cable connectionMS-DOS的晚期版本有附加InterLnk程序。两个程序都允许将一台计算机上的硬盘映射为其他计算机上的网络驱动器。这样做无需以太网硬件设备(如网卡或调制解调器)。[5]Commodore Amiga系统上,零调制解调器是在两台计算机间玩多人游戏的一个常用方式。

更快的信息交换系统(如以太网)的普及和可用性使得零调制解调器电缆的使用不再常见。在现代系统中,这种电缆仍可用于内核模式开发,因为它允许用户使用最少的设备驱动程序和代码(仅一个串行驱动程序,主要由两个FIFO缓冲区和一个中断服务程序英语Interrupt service routine组成)来远程调试内核。用于Linux的KGDB、用于BSD的ddb,以及用于Windows的WinDbg或KD都可以用于远程调试系统。这也可以提供一个串行控制台,内核调试器在内核混乱的情况下可能被丢弃,这种情况下,本地监视器和键盘也可能不再可用(GUI保留这些资源,并且在丢弃调试器的紧急情况下不会释放它们)。

零调制解调器的类型编辑

将两个DTE设备连接在一起需要一个零调制解调器,通过交换相应信号(TD-RD、DTR-DSR和RTS-CTS)充当设备之间的DCE。这可以使用单独的设备和两根电缆或使用一条有线电缆做到。如果设备需要载波检测,则可以通过连接连接器内部的DSR和DCD模拟,从而从远程DTR信号获取CD。Yost英语Rollover cable标准的一个特点是,零调制解调器电缆是一个“翻转电缆英语Rollover cable”,它将一端的引脚1至8反转到另一端的8到1。

无硬件握手编辑

最简单的串行电缆类型没有硬件握手。该电缆仅连接数据和信号地线。其他所有引脚都没有连接。使用这种类型的电缆必须在软件中实现流控制英语Flow control (data)。这种电缆的作用仅限于在其交叉连接的Rx和Tx线路上的数据流量。此种电缆也可用于不需要或使用调制解调器控制信号的设备。

环回握手编辑

由于兼容性问题和一个简单的零调制解调器电缆的潜在问题,一个欺骗软件认为握手可用的解决方案得到开发。但是,电缆引脚只是将输出循环回去,物理上并不支持硬件流量控制。

这种电缆可以配合更多软件使用,但就它的前身没有实际的增强。软件将认为它具有硬件流量控制,但在达到更高速度并且没有可识别的原因时可能会突然停止。

部分握手编辑

在此种电缆中,流量控制线路仍然是环回设备。但是,它以某种方式允许请求发送(RTS)和清除发送(CTS)流量控制,但没有实际的功能。

完全握手编辑

由于其RTS/CTS引脚的交叉连接,此种电缆与以前类型电缆的硬件流量控制不兼容。配合合适的软件,该种电缆的速度可比其前身高很多。它还支持软件流量控制。

虚拟零调制解调器编辑

虚拟零调制解调器是使用虚拟串行端口英语Virtual serial port直接连接两台计算机应用程序的一种通信方法。与零调制解调器电缆不同,虚拟零调制解调器是在计算机内仿真硬件零调制解调器的一种软件解决方案。[6][7]硬件零调制解调器的所有功能在虚拟零调制解调器中也可使用。这也有一些优点:

  • 串行数据传输速度更高,仅受计算机性能和网络速度的限制
  • 通过本地网络或互联网进行虚拟连接,减少电缆长度的限制
  • 几乎无限数量的虚拟连接
  • 不需要串行电缆
  • 不占用计算机的物理串行端口

举例来说,DOSBox允许旧款DOS游戏使用虚拟零调制解调器。

另一个常见的例子包括Unix伪终端英语Pseudoterminal(pty),它为用户应用程序提供标准的tty接口,包括虚拟串行控制。两个这样的pty可以很容易地通过应用程序相连接,形成一个虚拟零调制解调器通信路径。

参见编辑

参考资料编辑

  1. ^ Lammert Biespublisher=lammertbies.nl. RS232 serial null modem cable wiring and tutorial. [2013-12-26]. (原始内容存档于2019-09-06). 
  2. ^ Null Modem. nullmodem.com. 2008-11-07 [2013-12-26]. (原始内容存档于2021-04-29). 
  3. ^ Nullmodem (9-9) - HwB. hardwarebook.info. 2006-12-27 [2013-12-26]. (原始内容存档于2021-05-06). 
  4. ^ ADTPro - ADTPro Serial Cabling. sourceforge.net. 2011-01-25 [2013-12-26]. (原始内容存档于2013-12-26). 
  5. ^ MS-DOS External commands - INTERLNK. angelfire.com. [2013-12-26]. (原始内容存档于2020-12-02). 
  6. ^ Null-modem emulator | Download Null-modem emulator software for free at. sourceforge.net. [2013-12-26]. (原始内容存档于2021-04-19). 
  7. ^ BerliOS Developer: Project Summary - N8VB_vCOM Virtual Null Modem Cable. berlios.de. 2005-07-15 [2013-12-26]. (原始内容存档于2013-12-26).