不歸零 (信號)
不歸零編碼 (non-return-to-zero line code, NRZ) 指的是一種二進位的訊號代碼,在這種傳輸方式中,1 和 0 都分別由不同的電子狀態來表現,除此之外,沒有中性狀態、亦沒有其他種狀態。這種脈衝的能量比歸零代碼(return-to-zero, RZ) 要來得密集,但它傳輸時是不停歇的,這代表同步信號必須在此代碼之外獨自傳輸。
![](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/5/55/NRZcode.png)
在給定一個信號頻率的情況下(比如說位元率),NRZ 代碼只需要曼徹斯特碼 (Manchester code) 的一半頻寬。
當用於非同步傳輸時,由於缺少中性狀態,必須依靠其他種機制,來達成在同步傳輸中使用時鐘偵測錯誤的資料回復工作。
NRZ-Level 本身並非一種同步系統,而更是一種編碼方式,因為它可用於同步環境、或非同步環境中,也就是不管有沒有明確的時鐘訊號,都可以運作。所以,討論 NRZ-Level 編碼是否在時鐘「跳動 (clock-edge)」或「跳動之間 (between clock-edge)」並非必要的,因為每一個訊號一定都是以給定的時脈來傳輸的,這就暗示了訊號內在的時脈。真正的問題是,能否在接收端以當初取樣時的同樣頻率重繪該訊號。
然而,由於 NRZ 訊號的脈衝與時鐘是一致的,這就很容易看出 NRZ-Level 和其他編碼方式的不同,例如前面提到的曼徹斯特碼,它需要明確的時脈資訊(即 NRZ 和時鐘的 XOR 值),還能看出與 NRZ-Mark 和 NRZ-Inverted 等編碼的不同。
單極 NRZ-Level
「1」由一種物理電平表現,例如傳輸線上的直流偏移 (DC bias)。
「0」由另一種電平表現(通常是正電壓)。
在時脈術語中,通常「1」沿著上一個位元的時脈邊緣,維持或改變到一個較低的位置;而「0」則沿著上一個位元的時脈邊緣,維持或改變到一個較高的位置,或者兩者反過來。這可能會造成一長串不改變的電平,讓同步工作變得困難。一個解決辦法是只傳送有著許多變化的訊號,見限制遊長 (Run Length Limited)。
圖表顯示最低一條線代表真正的零電平,而其上是代表「0」的邏輯電平,電壓代表「1」,這種配置較稀少。
兩極 NRZ-Level
「1」由一物理電平表現(通常是負電壓)。
「0」由另一電平表現(通常是正電壓)。
在時脈術語中,兩極的 NRZ-Level 電壓沿著上一個位元的時脈邊緣,從正轉向負。
這種訊號的例子是 RS-232,它的「1」是 -5v 至 -12V 之間、「0」是 +5V 至 +12V 之間。
NRZ-Mark
「1」由物理電平的改變來表示。
「0」由物理電平的沒有改變來表示。
在時脈術語中,沿著上一個位元的時脈邊緣作出改變的代表「1」,沒有改變的代表「0」。
觀看圖表來理解以改變為基礎的編碼時,必須理解到如果第一個位元之前的初始狀態被判斷為相反的,則整個訊號會是反相的、或部份反相的。
在其他文件中,這個編碼很常只用「NRZ」單名來稱呼[1];FIPS 1037 也把「不歸零改變為一 (non-return-to-zero change-on-ones)」和「不歸零一 (non-return-to-zero one)」定義為與此相同的東西。
NRZ-Space
「1」由物理電平的沒有改變來表現。
「0」由電平的改變來表現。
在時脈術語中,沿著前一個位元的時脈邊緣改變的電平代表的是「0」。
這個「改變為零」的應用例子是 High-Level Data Link Control 和 USB。它們利用插入零位元來避免長串的未改變位元(即使資料中包含了大量的 1 位元序列)。HDLC 傳輸器會在連續的五個 1 位元後面,自動插入一個 0 位元(一個例外是區塊定義符 "01111110")。USB 傳輸器會在六個連續的 1 位元後,插入一個 0 位元。接收端將使用每一個電平的轉換(不管是資料本身還是自動插入位元)來維持時脈的同步性,若不為同步,則這些插入 0 位元會被忽略。
NRZ-Inverted (NRZI)
一改變:「1」為物理電平上的改變。「0」為沒有改變。
零改變:「0」為物理電平上的改變。「1」為沒有改變。
改變發生在當下位元的時鐘脈衝前緣。
但是,NRZI 會有長串的 0或1 位元出現,導致時脈回覆有困難,可以使用一些編碼技巧(例如遊長限制)來解決。曼徹斯特碼永遠有時脈信號,但傳輸效率比 NRZI 低。
注
- ^ 例如 non return to zero (頁面存檔備份,存於網際網路檔案館)
參見
- 交替反轉碼
- Enhanced Non-Return-to-Zero-Level E-NRZ-L
- Return-to-zero
- 線路碼
- UART(通用異步收發傳輸器)
參考資料
- Brey, Barry. The Intel Microprocessors, Columbus: Pearson Prentice Hall. ISBN 0-13-119506-9
- Federal Standard 1037C in support of MIL-STD-188