零數據機
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
零數據機(英語:Null modem),也稱空數據機,是一種使用一根RS-232串行電纜直接連接兩個DTE(電子計算機、終端、印表機等)的通訊方法。這個名稱源自歷史上使用RS-232電纜將兩個電傳打字機裝置到連接兩個數據機以彼此通訊的方式;零數據機的通訊是指使用交叉的RS-232電纜將電傳印表機直接連接到另一台電傳印表機,而無需數據機。
假設一端為一個DTE,另一端為一個DCE(例如數據機),則RS-232標準對於通訊鏈路兩端的定義是不對稱的。使用零數據機連接,則傳送和接收線路交叉連接取決於目的,有時還會交叉連接一個或多個握手線路。因為零數據機連接未被RS-232標準覆蓋,所以有數種布線佈局得到使用。
起源
[編輯]最初,RS-232標準的開發是用於電傳打字機通過電話線相互通訊。每個電傳印表機通過RS-232物理連接到其數據機,而數據機可以呼叫,以在電傳印表機之間建立遠端連接。如果用戶想直接連接兩台電傳印表機而不用到數據機(零數據機),則將它們交叉連接。術語零數據機也可以指其電纜或配接器本身以及連接方法。[1]零數據機電纜是20世紀80年代到90年代初期的早期個人電腦之間傳輸數據的常用方法。
線纜和配接器
[編輯]零數據機電纜為RS-232串行電纜,其中傳送和接收線路交叉連接。一些電纜中也有交叉的握手線路。在許多情況下使用一個直通串行電纜配合一個零數據機介面卡。配接器包含訊號之間必要的交叉連接。[2][3]
接線圖
[編輯]以下是用於互連兩個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)相互通訊時,則需要一個零數據機。[4]
零數據機常用於電腦之間的檔案傳輸或遠端操作。在Microsoft Windows作業系統中,可以通過零數據機連接使用直接電纜連接。MS-DOS的晚期版本有附加InterLnk程式。兩個程式都允許將一台電腦上的硬碟對映為其他電腦上的網絡驅動器。這樣做無需乙太網路硬件裝置(如網卡或數據機)。[5]在Commodore Amiga系統上,零數據機是在兩台電腦間玩多人遊戲的一個常用方式。
更快的資訊交換系統(如乙太網路)的普及和可用性使得零數據機電纜的使用不再常見。在現代系統中,這種電纜仍可用於內核模式開發,因為它允許用戶使用最少的裝置驅動程式和代碼(僅一個串行驅動程式,主要由兩個FIFO緩衝區和一個中斷服務程式組成)來遠端除錯內核。用於Linux的KGDB、用於BSD的ddb,以及用於Windows的WinDbg或KD都可以用於遠端除錯系統。這也可以提供一個串行控制台,內核除錯器在內核混亂的情況下可能被丟棄,這種情況下,本地監視器和鍵盤也可能不再可用(GUI保留這些資源,並且在丟棄除錯器的緊急情況下不會釋放它們)。
零數據機的類型
[編輯]將兩個DTE裝置連接在一起需要一個零數據機,通過交換相應訊號(TD-RD、DTR-DSR和RTS-CTS)充當裝置之間的DCE。這可以使用單獨的裝置和兩根電纜或使用一條有線電纜做到。如果裝置需要載波檢測,則可以通過連接連接器內部的DSR和DCD模擬,從而從遠端DTR訊號取得CD。Yost標準的一個特點是,零數據機電纜是一個「翻轉電纜」,它將一端的引腳1至8反轉到另一端的8到1。
無硬件握手
[編輯]最簡單的串行電纜類型沒有硬件握手。該電纜僅連接數據和訊號地線。其他所有引腳都沒有連接。使用這種類型的電纜必須在軟件中實現流控制。這種電纜的作用僅限於在其交叉連接的Rx和Tx線路上的數據流量。此種電纜也可用於不需要或使用數據機控制訊號的裝置。
環回握手
[編輯]由於相容性問題和一個簡單的零數據機電纜的潛在問題,一個欺騙軟件認為握手可用的解決方案得到開發。但是,電纜引腳只是將輸出迴圈回去,物理上並不支援硬件流量控制。
這種電纜可以配合更多軟件使用,但就它的前身沒有實際的增強。軟件將認為它具有硬件流量控制,但在達到更高速度並且沒有可辨識的原因時可能會突然停止。
部分握手
[編輯]在此種電纜中,流量控制線路仍然是環回裝置。但是,它以某種方式允許請求傳送(RTS)和清除傳送(CTS)流量控制,但沒有實際的功能。
完全握手
[編輯]由於其RTS/CTS引腳的交叉連接,此種電纜與以前類型電纜的硬件流量控制不相容。配合合適的軟件,該種電纜的速度可比其前身高很多。它還支援軟件流量控制。
虛擬零數據機
[編輯]虛擬零數據機是使用虛擬序列埠直接連接兩台電腦的應用程式的一種通訊方法。與零數據機電纜不同,虛擬零數據機是在電腦內仿真硬件零數據機的一種軟件解決方案。[6][7]硬件零數據機的所有功能在虛擬零數據機中也可使用。這也有一些優點:
- 串行數據傳輸速度更高,僅受電腦效能和網絡速度的限制
- 通過本地網絡或互聯網進行虛擬連接,減少電纜長度的限制
- 幾乎無限數量的虛擬連接
- 不需要串行電纜
- 不佔用電腦的物理序列埠
另一個常見的例子包括Unix偽終端(pty),它為用戶應用程式提供標準的tty介面,包括虛擬串行控制。兩個這樣的pty可以很容易地通過應用程式相連接,形成一個虛擬零數據機通訊路徑。
參見
[編輯]參考資料
[編輯]- ^ Lammert Biespublisher=lammertbies.nl. RS232 serial null modem cable wiring and tutorial. [2013-12-26]. (原始內容存檔於2019-09-06).
- ^ Null Modem. nullmodem.com. 2008-11-07 [2013-12-26]. (原始內容存檔於2021-04-29).
- ^ Nullmodem (9-9) - HwB. hardwarebook.info. 2006-12-27 [2013-12-26]. (原始內容存檔於2021-05-06).
- ^ ADTPro - ADTPro Serial Cabling. sourceforge.net. 2011-01-25 [2013-12-26]. (原始內容存檔於2013-12-26).
- ^ MS-DOS External commands - INTERLNK. angelfire.com. [2013-12-26]. (原始內容存檔於2020-12-02).
- ^ Null-modem emulator | Download Null-modem emulator software for free at. sourceforge.net. [2013-12-26]. (原始內容存檔於2021-04-19).
- ^ BerliOS Developer: Project Summary - N8VB_vCOM Virtual Null Modem Cable. berlios.de. 2005-07-15 [2013-12-26]. (原始內容存檔於2013-12-26).