零數據機

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
一個空數據機配接器

零數據機(英語: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).