誤り制御について 4400075 田原慎一朗 (注意) 画面上で動きが進まないときは,画面を左クリック すること。 誤り制御とは? • データ転送の際,データが正しく相手に届くと は限らない。 • 正しく送信されたか,チェックする必要がある。 • このチェック機能を誤り制御という。 誤り制御の種類 • パリティチェック,ハミングコード,CRCなど, いくつか方法が見つけられている。 • 自動修正できるものや,連続した誤りを見る けられるものもある。 • ここでは,最も簡単で,よく使われているパリ ティチェックの例をあげる。 1.パリティチェック 伝送するビット列 + ある規則に従ったパリティビット ∥ データを受けたった人が, そのデータにエラーがないかチェックができる。 2つの種類と,3つの方式がある。 2つの種類 偶数パリティ 伝送するデータのビット列 ↓ ”1”の数が偶数になるように調整する。 奇数パリティ 伝送するデータのビット列 ↓ ”1”の数が奇数になるように調整する。 偶数パリティの場合 • “1000101”という列を送りたい。 伝送したいビット列 → “1”が3つある ↓ 10001011 パリティビット “1”の数を偶数にしたい ↓ “1”をもう一つ足せばいい 偶数パリティの場合 • “1010101”という列を送りたい。 伝送したいビット列 → “1”が4つある ↓ 1010101 0 パリティビット “1”の数は偶数でOK! ↓ “1”を足す必要はない 奇数パリティの場合 • “1000110”という列を送りたい。 伝送したいビット列 → “1”が3つある ↓ 1000110 0 パリティビット “1”の数は奇数でOK! ↓ “1”を足す必要はない 奇数パリティの場合 • “1010101”という列を送りたい。 伝送したいビット列 → “1”が4つある ↓ 1010101 1 パリティビット “1”の数を奇数にしたい ↓ “1”を足せばいい 3つの方式 • 垂直パリティ・・・各符号(文字)に1つのパリ ティをつける。 • 水平パリティ・・・複数の符号をまとめたブロッ クに1つのパリティキャラクタ(=1つの符号) をつける。ベーシック手順で用いられる。 • 水平垂直パリティ・・・上の2つを足したもの 水平パリティの場合 • 文字列 ”STAR” を ASCII コード で変換し, 水平方向に偶数パリティビットをつける。 コード化 S T A R 水平パリティ ビット 01 0 1 0 0 1 1 11 0 1 0 1 0 0 01 0 0 0 0 0 1 11 0 1 0 0 1 0 →”1”が4つ →”1”が4つ ”1”が3つ →”1”が2つ →”1”が4つ ”1”が3つ 偶数にする 垂直パリティの場合 • 文字列 ”STAR” を ASCII コード で変換し, 垂直方向に偶数パリティビットをつける。 コード化 S T A R 1の数 1010011 1010100 1000001 1 0 1 0 0 1 0 垂直パリティビット 0010100 404 302 122 偶数に する 水平垂直パリティ • 文字列 ”STAR” を ASCII コード で変換し, 水平垂直・偶数パリティビットをつけて送る。 コード化 S T A R 水平パリティ 0 1 0 1 0 0 1 1 →”1”が4つ ”1”が4つ 1 1 0 1 0 1 0 0 →”1”が3つ 0 1 0 0 0 0 0 1 →”1”が2つ ”1”が4つ 1 1 0 1 0 0 1 0 →”1”が3つ 0 0 0 1 0 1 0 0 →”1”が2つ 垂直パリティ ビット 2404 302 122 1の数
© Copyright 2024 ExpyDoc