パリティ ビットがまったく使用されていない状態をすべて定義する 3 種類のパリティ ビットを作成した目的は何ですか?
「パリティ ビットが存在するが使用されていない場合は、マーク パリティ (パリティ ビットが常に 1 の場合) またはスペース パリティ (ビットが常に 0 の場合) と呼ばれる場合があります」 -ウィキペディア
パリティ ビットがまったく使用されていない状態をすべて定義する 3 種類のパリティ ビットを作成した目的は何ですか?
「パリティ ビットが存在するが使用されていない場合は、マーク パリティ (パリティ ビットが常に 1 の場合) またはスペース パリティ (ビットが常に 0 の場合) と呼ばれる場合があります」 -ウィキペディア
ここで省略されているように見えるマークまたはスペース パリティを使用するのには、非常に単純で非常に便利な理由があります。それは、ノード アドレスのフラグです。
非常に低電力または小型の組み込みシステムでは、RS485 や RS422 などの産業用シリアル バスを使用することがあります。おそらく、多くの非常に小さなプロセッサが同じバスに接続されている可能性があります。
これらの小さなデバイスは、シリアル ポート経由で着信するすべての文字を見て、電力や処理時間を無駄にしたくありません。ほとんどの場合、それは彼らが興味を持っているものではありません。
したがって、たとえば 9 ビットを使用するバス プロトコルを設計します... 8 データ ビットとマーク/スペース パリティ ビット。各データ パケットには、マーク パリティ ビットが設定された正確な 1 バイトまたはワード (ノード アドレス) が含まれます。それ以外はすべてスペース パリティです。次に、これらの小さなデバイスは、パリティ エラーの割り込みを待機するだけです。割り込みを取得すると、そのバイトをチェックします。それは私の住所ですか?いいえ、寝てください。
これは非常に電力効率の高いシステムであり、帯域幅の無駄はわずか 10% です。多くの環境では、これは非常に良いトレードオフです。
したがって...これらの小さなデバイスと会話しようとしているPCクラスのシステムを持っている場合は、そのパリティビットを設定/クリアできる必要があります。したがって、ノード アドレスを送信するときは MARK パリティを設定し、それ以外の場所では SPACE パリティを設定します。
したがって、3つではなく、 5つの可能性があります。パリティなし、マーク、スペース、奇数、偶数です。パリティがない場合、フレーム内で余分なビットが省略されるだけです。多くの場合、プロトコルがチェックサムまたはCRCでエラーをチェックしている場合、またはデータの破損が発生する可能性が高い、または重大であるとは見なされない場合に選択されます。
マークやスペースを選択する人は誰もいません。それは単に帯域幅を浪費しているだけです。モジュロいくつかの奇妙な標準。たとえば、9ビットデータプロトコルのように、ドライバーを作成せずにUARTをオンザフライで再プログラミングすることはできないため、ハードウェアベンダーはハードウェアの購入を強制します。
マークまたはスペース パリティの設定は、パリティ ビットを必要とするハードウェアに送信するデータを生成している場合 (おそらく、ハード コードされたワード長が電子機器に組み込まれているため) に役立ちますが、その値は気にしません。