零調製解調器

零調製解調器(英語: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針腳 信號
幀接地 FG 1 不適用 通用 不適用 1 FG
發出數據英語Transmitted Data 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
信號地英語Single-ended signalling SG 7 5 通用 5 7 SG
數據集就緒 DSR 6 6 4 20 DTR
數據載波檢測英語Data Carrier Detect DCD、CD 8 1
數據終端就緒英語Data Terminal Ready DTR 20 4 1 8 DCD
6 6 DSR

應用 編輯

零調製解調器最初的應用方式是直接連接兩台電傳打印機,而無需使用調製解調器。由於其他類型的設備採用了RS-232標準,設計人員需要決定其設備是否具有類DTE或類DCE的接口。當應用程序需要兩個DTE(或兩個DCE)相互通信時,則需要一個零調製解調器。[4]

零調製解調器常用於計算機之間的文件傳輸英語file transfer或遠程操作。在Microsoft Windows操作系統中,可以通過零調製解調器連接使用直接電纜連接英語direct cable connectionMS-DOS的晚期版本有附加InterLnk程序。兩個程序都允許將一台計算機上的硬盤映射為其他計算機上的網絡驅動器。這樣做無需以太網硬件設備(如網卡或調製解調器)。[5]Commodore Amiga系統上,零調製解調器是在兩台計算機間玩多人遊戲的一個常用方式。

更快的信息交換系統(如以太網)的普及和可用性使得零調製解調器電纜的使用不再常見。在現代系統中,這種電纜仍可用於內核模式開發,因為它允許用戶使用最少的設備驅動程序和代碼(僅一個串行驅動程序,主要由兩個FIFO緩衝區和一個中斷服務程序英語Interrupt service routine組成)來遠程調試內核。用於LinuxKGDB、用於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).