データ伝送web講座

8. 伝送誤り制御

line

8.1. 伝送誤りの性質

8.1.(1) ランダム誤り

◆ 伝送誤り の定義については、第 1 章の、コラム 1.3 に示しました。
伝送誤りの原因は、伝送波形の歪です。伝送波形は、伝送の途中で歪みます。歪みの原因は、既に説明してきたように、いろいろあります。外来ノイズによる歪みもありますし、伝送路の周波数特性反射などもあります。
◆ ディジタル信号には、ノイズマージンがありますから、多少歪んでも、正しく伝わります。また、伝送用の IC は、シュミットトリガ特性を持っていますから、さらにノイズには強くなっています。
しかし、歪みが限界を超えれば、伝送誤りを引き起こします。
伝送誤りは、確率現象です。したがって、伝送誤り制御は、確率統計の立場から検討する必要があります。
◆ 波形歪みが、外来ノイズに起因しているときには、波形歪みと伝送とは、独立な要因です。したがって、伝送誤り発生の確率は、ランダムとなります。ランダムな誤りを、ランダム誤り と言います。
通常、伝送誤りは、ランダム誤りであるとして、論じられています。
◆ ランダム誤りにおいては、ある特定のビットが誤る確率は、そのシステムと、そのシステムが置かれている環境によって決まる、一定値です。

8.1.(2) バースト誤り

◆ しかし、伝送における誤りは、ランダム誤りだけではありません。複数ビットに跨るような、長時間連続するノイズの場合には、そのノイズが持続している、複数ビットの期間、データは、デタラメになるでしょう。デタラメであるということは、その間のあるビットは、間違っているかも知れませんし、偶然正しいかもしれません。このような誤りを、バースト誤り と言います(図.1)。

[図.1] バースト誤りの定義

バースト誤り

◆ 伝送誤りが、ランダム誤りであれば、伝送上の、ある任意の 1 ビットが誤る確率、ビット誤り率 は、一定です。その確率を、E とすれば、連続した 2 ビットのデータが誤る確率 E(2) は、
      E(2) = E2
となります。ある特定の n ビット(連続であるとは限らない)が誤る確率 E(n) は、
     E(n) = En
です。
◆ 伝送が実用になるためには、当然、
     E ≪ 1
でなければなりません。したがって、連続した、または特定の複数ビットが共に誤る確率は、一つだけ誤る確率に比べて、はるかに小さく、無視することができます。
◆ バースト誤りは、上記の連続した、または特定の複数ビットのランラム誤りであるとして、計算した値よりも、はるかに高い確率で発生するものを言います。すなわち、バースト誤りは、それが発生する要因があって、発生する誤りです。
◆ 表.1 は、あるシステムにおける、バースト誤りの、実測例です。

[表.1] あるシステムにおけるバースト誤り実測例

誤りの種類 発生の割合 ランダム誤りであるとしたときの発生割合
1 ビットの単一誤り 50〜60% 99.99%
連続 2 ビットの誤り 10〜20% 0.001%
連続 3 ビットの誤り 3〜10% 10-8
連続 4 ビットの誤り 2〜6% 10-13
4 ビット以上の誤り -


8.2. 誤り検出の方式

8.2.(1) 概   要

8.2.(1-A) チェックコードを使用する

◆ 伝送誤り制御を行うためには、先ず、伝送誤りが発生したことを、検出する必要があります。伝送誤り発生を検出するためには、送信側で、伝送誤り検出用のチェックコード を、送信データに付け加えて送ります。受信側では、この送られてきたチェックコードを利用して、伝送誤りの有無を調べます(図.2)。

[図.2] チェックコードで誤りの有無を調べる

チェックコードで誤りの有無を調べる

◆ 伝送誤りは、確率現象ですが、チェックコードで誤りを検出することもまた、確率現象です。すなわち、チェックコードによって、100% 伝送誤りを検出できるのではありません。
チェックコードで、誤り無しと判定したにも関わらず、実は誤っていたということが起こります。
これが誤り見逃しで、その確率を、誤り見逃し率 と言います。誤り見逃し率は、元になる伝送誤り率と、チェックコードの種類とによって異なります。

8.2.(1-B) ランダム誤りに対する検査能力

◆ チェックコードの検査能力は、誤り見逃し率によって評価します。これも、パリティチェック例にとって、説明します。さきに述べたように、特定の n ビットが誤る確率 E(n) は、Enです。
パリティチェックでは、奇数個の誤りは、全て検出可能ですが、偶数個の誤りは、誤り無しと判定してしまうので、検出することができません。
◆ したがって、誤り見逃し率 Em は、
     Em = ΣE(2n) ≒ E(2) = E2
となります。一般に、誤り率 ≪ 1 ですから、近似解は、最小ベキ乗の項のみを考えれば、十分です。
◆ また、誤り率が小さければ、誤り見逃し率も小さいことが分かります。しかも、2 乗で効きますから、元になる誤り率が小さいことが有利です。
なお、誤り率も、誤り見逃し率も、m × 10n の n で評価すれば十分です。m の違いを考える必要はありません。

8.2.(1-C) バースト誤りに対する検査能力

◆ バースト誤りでは、チェックコードの長さを N ビットとすれば、N の大きさが、問題になります。バースト誤りでは、N ビット以下の以下の長さのバースト誤りを、全て検出することができます。
N ビット以上の長さのバースト誤りに対しては、見逃しが発生しますが、N ガ大きいほど、誤り見逃し率は、小さくなります。すなわち、N ガ大きいことは、2 重に効いてきます(8.2.(4-A)参照)。

8.2.(1-D) チェックコードの評価

◆ チェックコードの評価は、基本的には、チェック能力ですが、その他、コードの長さ、コードの作りやすさ、チェックのし易さなどが、あります。コードが短くて、チェック能力が高ければ、理想的ですが、なかなか、そうは行きません。バースト誤りに対するチェック能力は、コード長さに依存します。
結局は、目的、用途によって使い分けることになります。

8.2.(2) パリティチェック

8.2.(2-A) 垂直パリティ

◆ 垂直パリティは、最も簡単で、その故に多く使用されていますが、チェック能力は低いのです。垂直パリティは、ランダム誤りに対しては、かなり強いのですが、バースト誤りに対しては、無力です。 なお、通常パリティと呼ばれているものは、垂直パリティ のことです(図.3)。パリティには、この他に、水平パリティがあります。

[図.3] 垂直パリティ

垂直パリティ

◆ 図中の式は、誤り見逃し率 Es で、E はビット誤り率です(以降の図も同様)。
垂直パリティは、本格的な、データ伝送では、バースト誤りがあり得ますから、使用できません。近距離のインターフェースに使われています。
近距離のインターフェースでは、伝送誤りは、事実上存在しません。むしろ、機器の電源の入れ忘れ、ハードウェアの故障などのチェックの意味を持っています。

◆ なお、垂直パリティが多く使われているのは、マイコンに内蔵されている、UART が、垂直パリティの機能を内蔵いることにも、よります。
ただし、UART がパリティ機能を持っていても、使わないことも多いのです。パリティビットを付加することによる、実効伝送速度の低下を嫌ったのでしょう。

8.2.(2-B) 水平パリティ

◆ 水平パリティ は、最近では、ほとんど使われませんが、昔は、ベーシック手順で、広く使われた方式です(図.4)。

[図.4] 水平パリティ

水平パリティ

◆ 垂直パリティ、水平パリティの名前の由来ですが、この講座の垂直パリティの図、および水平パリティの図を 90 度回転すれば分かります。
水平パリティは、図から分かるように、複数キャラクタに対して、キャラクタを(この図では)縦断する方向にパリティを付けます。
キャラクタ数が多いと、上記の図の式から分かるように、誤り見逃し率は、急速に増加します。
水平パリティは、垂直パリティと異なり、バースト誤り検出能力があることが、特徴です。
◆ 水平パリティと似たものに、チェックサム があります(図.5)。

[図.5] チェックサムの仕組み

チェックサム

◆ チェックサムは、キャラクタを、四則演算の加算で足し込んだものです。

8.2.(2-C) 垂直+水平パリティ

◆ 垂直+水平パリティ は、垂直パリティと、水平パリティとを併用した方式です(図.6)。

[図.6] 垂直+水平パリティ

垂直+水平パリティ

◆ 図の式から分かるように、誤り見逃し率が、E4 で効いてきますから、ランダム誤りに対しては、極めて強い方式です。バースト誤りについては、水平パリティと、ほぼ同様です。キャラクタは通常 7〜8 ビットですから、強いとは言えません。
昔は、この、垂直+水平パリティ方式が、最強の方式でした。しかし、最近では、高度な伝送では、キャラクタ単位の伝送それ自体が、減っていることもあって、あまり使われていません。



目次に戻る   前に戻る   次に進む