RZ、NRZ、NRZI、曼徹斯特編碼


Frm: http://blog.sina.com.cn/s/blog_78e87ba10102wj9g.html

在數字電路中,組成一連串信息的基元就是0和1,無論是在CPU、DSP、MCU甚至是個數字計數器中,數字電路在其中能夠處理的信息也只有0和1,而對於任何外界的信息,計算機都能通過兩個量來描述,那就是0和1。而對於數字通信來說,想要用0和1來傳遞你想傳達的信息,則必須要通過一種特殊的約定來進行同步,這種約定就是編碼。兩台設備要想進行有線通信,最終都是將想要傳達的信息轉變成一串比特流,進而在傳輸線上進行傳輸。常規數字通信為數據線+時鍾線的形式,但對於高速信號而言,時鍾線和數據線長度的稍稍偏差,就會造成接收端無法滿足數據采樣的建立時間,故會導致數據出錯。而最好的方式就是將時鍾信號和數據信號用同一根線來傳遞,所以出現了一些比較特殊的編碼,是的時鍾和數據能夠融合在一起。下面主要討論5中常用的編碼方式:

1.RZ(Return Zero Code)編碼

       RZ編碼也成為歸零碼,歸零碼的特性就是在一個周期內,用二進制傳輸數據位,在數據位脈沖結束后,需要維持一段時間的低電平。舉個圖例吧:


圖1 RZ碼示意圖
圖中紅色的線表示數據,只占據一部分的周期,剩下周期部分為歸零段。而歸零碼而分為單極性歸零碼和雙極性歸零碼,圖1表示的是單極性歸零碼,即低電平表示0,正電平表示1。對於雙極性歸零碼來說,則是高電平表示1,負電平表示0。如下圖所示:
圖2 雙極性RZ碼示意圖
這種編碼方式雖說能夠同時傳遞時鍾信號和數據信號,但由於歸零需要占用一部分的帶寬,故傳輸效率也就收到了一定的限制,假設數據傳輸時間為t,一個周期時間為T,則這種傳輸效率η=t/T。
 

2.NRZ(Non Return Zero Code)編碼

       NRZ編碼也成為不歸零編碼,也是我們最常見的一種編碼,即正電平表示1,低電平表示0。它與RZ碼的區別就是它不用歸零,也就是說,一個周期可以全部用來傳輸數據,這樣傳輸的帶寬就可以完全利用。一般常見的帶有時鍾線的傳輸協議都是使用NRZ編碼或者差分的NRZ編碼。因此,使用NRZ編碼若想傳輸高速同步數據,基本上都要帶有時鍾線,因為本身NRZ編碼無法傳遞時鍾信號。但在低速異步傳輸下可以不存在時鍾線,但在通信前,雙方設備要約定好通信波特率,例如UART。
圖3 NRZ編碼示意圖
 

3.NRZI(Non Return Zero Inverted Code)編碼

       NRZI編碼的全稱為反向不歸零編碼,這種編碼方式集成了前兩種編碼的優點,即既能傳輸時鍾信號,又能盡量不損失系統帶寬。對於USB2.0通信的編碼方式就是NRZI編碼。其實NRZI編碼方式非常的簡單,即信號電平翻轉表示0,信號電平不變表示1。例如想要表示00100010(B),則信號波形如下圖所示:
圖4 NRZI編碼示意圖
由圖可以看到,當電平狀態發生變化時,表示的數據為0。在傳輸的數據中,很少出現全1的狀態,故接收端可以根據發送端的電平變化確定采樣時鍾頻率。但是有時候依然會出現數據為全1的狀態,也就是說信號線一直保持一個狀態,這個時候時鍾信號就無法傳輸,接收端就無法同步時鍾信號,這該如何解決呢?解決方式就是在一定數量的1之后強行插入一個0,就是說若信號線狀態一直持續一段時間不變的話,發送端強行改變信號線的狀態,接收端則只需要將這個變化忽略掉就可以了。在USB2.0的協議中規定為傳輸7個1則在數據中插入一個0。例如有一段數據為:1111 1111 (B)要發送,則整個傳輸線上的電平狀態是這樣的:
 
圖5
 
5.曼徹斯特編碼
曼徹斯特編碼方式和NRZI編碼十分相似,只不過它是利用信號的跳變方向來決定數據的。在位中間,信號由高向低跳變表示數據0,信號由低向高跳變表示數據1。舉個圖例吧,若要表示數據1001 1010(B),則信號波形圖如下圖所示:


圖6 曼徹斯特編碼示意圖
 
       曼徹斯特編碼方式也如前面所說,雖然傳輸了時鍾信號,但也損失了一部分的帶寬,主要表現在相鄰相同數據上。但對於高速數據來說,這種編碼方式無疑是這幾種編碼方式中最優的,相比NRZI編碼,曼徹斯特編碼不存在長時間信號狀態不變導致的時鍾信號丟失的情況,所以在這種編碼方式在以太網通信中是十分常用的。
 
       總結了以上這幾種編碼方式,其實最終體現的都是一個問題,就是如何將時鍾信號傳遞出去,對於任何數字通信而言,時鍾信號都是首先要考慮的問題,因為同步通信在接收端對數據進行采樣時,都是利用發送端發出的時鍾信號作為采樣基准源,只有保證優質的數據信號和時鍾信號被傳送出來,才能夠保證采樣端不會在亞穩態區中進行采樣而導致數據的錯誤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM