回覆列表
  • 1 # 使用者8140234220371

      有的字元在編碼以後有兩個碼組與之對應,一個碼組叫RD+,一個碼組叫RD-,其中RD+碼組的1的個數比0少,RD-碼組中1的個數比0多。1的個數和0的個數相等的情況,即可以歸入RD+,也可以歸入RD-。

      對於輸入的待編碼的8B碼組,可以分為三類碼組,一類是普通的資料碼組,一類是用於控制的K控制碼組,再有一類就是特殊資料碼組,特殊資料碼組只有六個,是10B編碼在8B/10B碼錶的RD+列選取的D11.7、D13.7和D14.7,10B編碼在8B/10B碼錶RD-列選取的D17.7、D18.7和D20.7。

      8B/10B的編碼碼錶有兩列,一列為RD-,一列為RD+。RD-的列的10B碼組中"1"的個數比"0"多,或者"1"的個數與"0"的個數相等;RD+列的10B碼組中"1"的個數比"0"的個數少,或者"1"的個數與"0"的個數相等。也就是說一個8B碼組的10B編碼可以有兩種。RD-和RD+的碼組互為取反。

      編碼時也可以分兩步走,先做5B/6B編碼,再做3B/4B編碼,注意一定要先做5B/6B編碼。編碼規則類似上面介紹的8B/10B規則,也是先有極性RD,根據RD選擇6B碼組,同時決定次態RD,再根據剛才6B決定的RD來指導3B/4B編碼,編碼後決定的RD去指導下一個10B編碼碼組中的6B編碼部分。5B/6B和3B/4B的編碼表也都和8B/10B的碼錶一樣,分為RD-和RD+兩列,但是3B/4B碼錶中3B碼0111的4B編碼可以有四種選擇,通常情況下0111的4B編碼選擇為1110和0001,但是有六種情況下,4B碼的選擇為0111和1000,這6個8B碼組就叫做特殊資料碼組。選擇4B碼為0111和1000的規則如下:如果當前狀態為RD-,且前面已編碼的6B碼組中e=i=1,則3B/4B編碼的選擇為3B/4B碼錶RD-列的0111;如果當前狀態為RD+,且前面已編碼的6B碼組中e=i=0,則3B/4B編碼的選擇為3B/4B碼錶RD-列的1000。可見,3B/4B的選擇是由5B/6B編碼結果所決定的,這就是要先進行5B/6B編碼的原因。

      編碼規則是這樣的,根據當前的RD極性來從兩個10B中選擇一個最為當前8B的編碼,即先有RD極性,後對8B進行編碼,再根據此10B編碼決定下一個RD的極性,決定下一極性的規則如下:如果編碼後的10B碼組中‘1’的個數與‘0’的個數相等,則次態極性保持不變;如果‘1’的個數與‘0’的個數不等,則次態的極性為當前極性的反轉。無論是普通資料碼組、特殊資料碼組還是K控制碼組都符合以上的編碼規則。

      舉個例子,當前極性為RD-,待編碼的8B碼組為D10.7,即111 01010,這裡對8B碼組的書寫均是按照HGF EDCBA的順序,即左邊為高位,右邊為低位。對於該8B碼組,由於當前為RD-,所以其10B編碼要在編碼表的RD-一列進行選取,即10B編碼為010101 1110,這裡對10B碼組的書寫,都是按照abcdei fghj的順序,左邊為低位,右邊為高位。再看當前編好的10B碼組,其‘1’的個數比‘0’的個數要多,所以此10B碼組的極性為RD-,為達支流平衡,次態極性要反轉,由此決定的次態極性就為RD+。其實8B/10B編碼也可以分為5B/6B和3B/4B兩部分進行,先編碼6B,6B編碼後的極性RD決定後面4B編碼的選擇,然後編碼4B,編碼4B後的極性RD又決定下個10B碼組中6B碼組的選擇。仍用上面的D10.7做例子,在RD-下,5B碼組01010對應的6B碼組為010101,該6B碼組中‘1’的個數與‘0’的個數相等,所以極性狀態不會改變,仍為RD-,下面再對3B進行編碼,此時就相當於是在RD-下對3B碼組111進行編碼,前面的6B碼組中不滿足e=i=1,所以該碼組不是特殊資料碼組,所以對3B的編碼就在3B/4B碼錶的RD-列選取,編碼後的4B碼組為1110,再看此4B碼組中‘1’比‘0’個數多,該碼組極性為RD-,所以次態極性要進行反轉,所以次態的極性為RD+,最終,得到10B碼組為010101 1110,次態為RD+ ,可見,分步編碼與前面直接的8B/10B編碼得到的結果是相同的。

      再舉個例子,當前極性為RD-,待編碼8B碼組為D4.7,即111 00100所以其10B在RD-列選取,10B編碼為110101 0001,其‘1’的個數與‘0’的個數相等,所以次態將保持極性不變,次態極性仍為RD-。用5B/6B和3B/4B兩步走的方法也會得到同樣結果。即,在RD-下,5B碼組00100對應的6B編碼為110101,此6B碼組中‘1’比‘0’多,即極性為RD-,所以次態的極性就為RD+,再看3B碼組111,前面6B碼組不滿足e=i=0,所以此8B不是特殊資料碼組,所以直接從3B/4B碼錶的RD+列選取4B編碼,為0001,此4B碼組中‘1’的個數比‘0’少,即極性為RD+,所以次態極性要反轉,下一個極性為RD-,至此可見,得到了同樣的編碼結果。

  • 中秋節和大豐收的關聯?
  • 紅棗和什麼搭配最補氣血?