このQ&Aは役に立ちましたか?
4B5B変換について質問です。
2024/02/03 20:05
4B5B変換について質問です。
wikiでは
0000 の様な一続きの 4 ビットは遷移を含まず、クロック問題を引き起こしうる。4B/5B では、この問題を 4 ビットを対応する 5 ビットワードに割り当てることにより解決する。
と記載があります。
・クロック問題とは何でしょうか。
・遷移を含むとこの問題が解決されるのはなぜでしょうか。
https://ja.wikipedia.org/wiki/4B5B%E7%AC%A6%E5%8F%B7%E5%8C%96
質問者が選んだベストアンサー
>・クロック問題とは何でしょうか。
データ送出側と、データ受入側で、クロックをピッタリ合わせてあれば、クロック問題は起きません。
しかし、送出側と受入側で、クロック周波数が0.0000001%ズレていた場合、信号1000000000個に付き、1個分のズレが発生します。
>・遷移を含むとこの問題が解決されるのはなぜでしょうか。
信号が0から1、または、1から0に必ず変わる事が保証されているなら、信号の変わり目で「クロックのズレを補正する」事ができます。
しかし、もし、0が1000000000個続いたら、受け側でズレを補正出来ないので「0が1000000001個」に化けたり、「0が99999999個」に化けたりします。
そこで「4ビットのデータを、5ビットで表現して、その5ビットの並びは、必ず0から1、1から0に変わる場所がある」ように変換して送出します。
そうすると、どんなデータを送っても、必ず「0から1、1から0に変わる地点が、5ビットの中に2か所以上出現する」ので、クロックが多少ズレていても、受け側で補正できます。
また、4B5B変換では、必ず一定の間隔で「最短の0」または「最短の1」が出現するようになっていて、この「最短の信号の長さ」を計れば「送出側が送り出すクロック」が判るようになっています。
4B5B変換を行わずに
0101010101010101...
という信号を送ったり
001100110011001100110011...
という信号を送ったり
000111000111000111000111000111...
という信号を送ると、受け側は「どれもすべて同じ」に見えます。
なぜなら、上記の3つは、どれも「一定間隔で、電気信号がローレベル、ハイレベル、ローレベル、ハイレベル、と繰り返す」ので「電気信号の変化として見れば、どれもすべて同じ」なのです。
このように「信号の中に、最短の遷移が必ず現れる事が保証される」と、受け側でクロックを同期し易くなり、色々な問題が解決します。
このQ&Aは役に立ちましたか?