零數據機

<image>

零數據機（Null modem），也稱空數據機，是一種使用一根RS-232串行電纜直接連接兩個（電子計算機、終端、印表機等）的通信方法。這個名稱源自歷史上使用RS-232電纜將兩個電傳打字機設備到連接兩個數據機以彼此通信的方式；零數據機的通信是指使用交叉的RS-232電纜將電傳印表機直接連接到另一台電傳印表機，而無需數據機。

假設一端為一個DTE，另一端為一個數據電路終端設備（例如數據機），則RS-232標準對於通信鏈路兩端的定義是不對稱的。使用零數據機連接，則發送和接收線路交叉連接取決於目的，有時還會交叉連接一個或多個握手線路。因為零數據機連接未被RS-232標準覆蓋，所以有數種布線布局得到使用。

## 起源

最初，RS-232標準的開發是用於電傳打字機通過電話線相互通信。每個電傳印表機通過RS-232物理連接到其數據機，而數據機可以呼叫，以在電傳印表機之間建立遠程連接。如果使用者想直接連接兩台電傳印表機而不用到數據機（零數據機），則將它們交叉連接。術語零數據機也可以指其電纜或適配器本身以及連接方法。零數據機電纜是20世紀80年代到90年代初期的早期個人電腦之間傳輸數據的常用方法。

## 線纜和適配器

<image>

零數據機電纜為RS-232串行電纜，其中發送和接收線路交叉連接。一些電纜中也有交叉的握手線路。在許多情況下使用一個直通串行電纜配合一個零數據機介面卡。適配器包含信號之間必要的交叉連接。

### 接線圖

<image>

<image>

以下是用於互連兩個DTE（例如兩台個人電腦），提供完全握手的零數據機電纜的非常常見的接線圖，它配合軟體，依賴於適當的數據載體檢測（CD）信號：

一側｜信號檢測｜另一側

信號和縮寫｜DB-25針腳｜DE-9針腳｜DE-9針腳｜DB-25針腳｜信號

幀接地｜FG｜1｜不適用｜不適用｜1｜FG

發出數據｜TxD, TD｜2｜3｜→｜2｜3｜RxD

接收數據｜RxD、RD｜3｜2｜←｜3｜2｜TxD

請求發送｜RTS｜4｜7｜→｜8｜5｜CTS

清場發送｜CTS｜5｜8｜←｜7｜4｜RTS

單端信號｜SG｜7｜5｜通用｜5｜7｜SG

數據集就緒｜DSR｜6｜6｜←｜4｜20｜DTR

數據載波檢測｜DCD、CD｜8｜1

數據終端就緒｜DTR｜20｜4｜→｜1｜8｜DCD

6｜6｜DSR

## 應用

零數據機最初的應用方式是直接連接兩台電傳印表機，而無需使用數據機。由於其他類型的設備採用了RS-232標準，設計人員需要決定其設備是否具有類DTE或類DCE的接口。當應用程式需要兩個DTE（或兩個DCE）相互通信時，則需要一個零數據機。

零數據機常用於電腦之間的文件傳輸或遠程操作。在Microsoft Windows作業系統中，可以通過零數據機連接使用直接電纜連接。MS-DOS的晚期版本有附加InterLnk程序。兩個程序都允許將一台電腦上的硬碟映射為其他電腦上的網路驅動器。這樣做無需乙太網硬體設備（如網卡或數據機）。在Commodore Amiga系統上，零數據機是在兩台電腦間玩多人遊戲的一個常用方式。

更快的資訊交換系統（如乙太網）的普及和可用性使得零數據機電纜的使用不再常見。在現代系統中，這種電纜仍可用於內核模式開發，因為它允許用戶使用最少的設備驅動程序和代碼（僅一個串行驅動程序，主要由兩個FIFO緩衝區和一個中斷服務程序組成）來遠程調試內核。用於Linux的KGDB、用於BSD的ddb，以及用於Windows的WinDbg或KD都可以用於遠程調試系統。這也可以提供一個串行控制台，內核調試器在內核混亂的情況下可能被丟棄，這種情況下，本地監視器和鍵盤也可能不再可用（GUI保留這些資源，並且在丟棄調試器的緊急情況下不會釋放它們）。

Another context where these cables can be useful is when administering "headless" devices providing a serial administration console (i.e. managed switches, rackmount server units, and various embedded systems). An example of embedded systems that widely use null modems for remote monitoring include RTUs, device controllers, and smart sensing devices. These devices tend to reside in close proximity and lend themselves to short run serial communication through protocols such as DNP3, Modbus, and other IEC variants. The Electric, Oil, Gas, and Water Utilities are slow to respond to newer networking technologies which may be due to large investments in capital equipment that has useful service life measured in decades. Serial ports and null modem cables are still widely used in these industries with Ethernet just slowly becoming a widely available option.

## 零數據機的類型

將兩個DTE設備連接在一起需要一個零數據機，通過交換相應信號（TD-RD、DTR-DSR和RTS-CTS）充當設備之間的DCE。這可以使用單獨的設備和兩根電纜或使用一條有線電纜做到。如果設備需要載波檢測，則可以通過連接連接器內部的DSR和DCD模擬，從而從遠程DTR信號獲取CD。翻轉電纜標準的一個特點是，零數據機電纜是一個「翻轉電纜」，它將一端的引腳1至8反轉到另一端的8到1。

### 無硬體握手

最簡單的串行電纜類型沒有硬體握手。該電纜僅連接數據和信號地線。其他所有引腳都沒有連接。使用這種類型的電纜必須在軟體中實現流控制。這種電纜的作用僅限於在其交叉連接的Rx和Tx線路上的數據流量。此種電纜也可用於不需要或使用數據機控制信號的設備。

### 環回握手

由於兼容性問題和一個簡單的零數據機電纜的潛在問題，一個欺騙軟體認為握手可用的解決方案得到開發。但是，電纜引腳只是將輸出循環回去，物理上並不支持硬體流量控制。

這種電纜可以配合更多軟體使用，但就它的前身沒有實際的增強。軟體將認為它具有硬體流量控制，但在達到更高速度並且沒有可識別的原因時可能會突然停止。

### 部分握手

在此種電纜中，流量控制線路仍然是環回設備。但是，它以某種方式允許請求發送（RTS）和清除發送（CTS）流量控制，但沒有實際的功能。The only way the flow control signal would reach the other device is if the opposite device checked for a Carrier Detect (CD) signal (at pin 1 on a DE-9 cable and pin 8 on a DB-25 cable). As a result only specially designed software could make use of this partial handshaking. Software flow control still worked with this cable.

### 完全握手

由於其RTS/CTS引腳的交叉連接，此種電纜與以前類型電纜的硬體流量控制不兼容。配合合適的軟體，該種電纜的速度可比其前身高很多。它還支持軟體流量控制。

### 虛擬零數據機

虛擬零數據機是使用虛擬串行埠直接連接兩台電腦的應用程式的一種通信方法。與零數據機電纜不同，虛擬零數據機是在電腦內仿真硬體零數據機的一種軟體解決方案。硬體零數據機的所有功能在虛擬零數據機中也可使用。這也有一些優點：

- 串行數據傳輸速度更高，僅受電腦性能和網路速度的限制
- 通過本地網路或網際網路進行虛擬連接，減少電纜長度的限制
- 幾乎無限數量的虛擬連接
- 不需要串行電纜
- 不占用電腦的物理串行埠

舉例來說，DOSBox允許舊款DOS遊戲使用虛擬零數據機。

另一個常見的例子包括Unix偽終端（pty），它為使用者應用程式提供標準的tty接口，包括虛擬串行控制。兩個這樣的pty可以很容易地通過應用程式相連接，形成一個虛擬零數據機通信路徑。