回答:
余分なストップビットは、特に高いボーレートで、および/または受信したバイトの処理に時間が必要なソフトUARTを使用して、少し余分な受信処理時間を追加するのに便利な方法です。
速度が厳しく、UARTが2の累乗の分周比しか提供しない場合、余分なストップビットを追加することで、次に低いボーレートよりも大幅に速度を落とすことはできません。
これが、DMX512標準で2ストップビットが指定されている理由の1つであると考えられます。
バッファリングやパケット化なしでデータストリームを転送するデバイスがある場合、それらが役立つ可能性がある別の状況です-ノード間のクロックレートのわずかな違いと有限サンプリング粒度により、データが複数のノードによって受信および再送信されるときにエラーが発生する可能性がありますチェーンですが、データが2ストップビットで送信され、レシーバーが1ストップビットに設定されている場合、これらのエラーに対応する十分なマージンが追加され、チェーンのはるか下のノードが確実に受信できるように少なくとも1つの有効なストップビット期間が残されます
また、ケーブルが非常に長いために立ち上がり時間と立ち下がり時間が非対称になり、ストップビットの長さが不十分になるという状況も発生しました。2ストップビットを送信し、レシーバーでこれを修正するだけで済みます。
昔は、プリンターは(ほぼ)すべて機械的な構造でした。その場合でもボーレートは多少標準化されていたため、余分なストップビットを追加すると、プリンターに文字を印刷するための余分な時間が与えられます。当時のタイミングの側面はより目立っていました。私の最初のプリンター、騒々しいhttp://en.wikipedia.org/wiki/Teletype_Model_33では、キャリッジリターンを送信した後、2文字のポーズを挿入する必要がありました。
2つのストップビットは、かなりの割合の停止時間を持ち、機器内部または数メートルの周辺インターフェイスなどの低ノイズ(低BER)環境で動作するシステム上の1つよりもはるかに有用ではありません。ケーブルおよび/またはモデムモデムステージなし。
2ストップビットにより、同期時間が長くなり、文字間の処理時間が長くなります。おそらく、ハードウェアとアルゴリズムによっては、連続データストリーム中に同期を取得または再取得する可能性が高くなります。文字間時間は、最新のシステムでは、クロック速度が遅く、プロセッサーのスループットが低い場合よりもはるかに価値がありません。
本質的に連続したデータストリームがある場合、非同期の場合、上位ビットはストップビットのように見えます。高低遷移はバイト境界のように見えます。レシーバが10の境界で開始し、それが真の開始境界ではない場合、これは時間の50%でのみ検出されます)途中で本物のストップ/スタート境界をスキップしました平均して、バイト境界が1/0であり、ストップ/スタートペアのように見えるという1/4の見込みがあります。ペアを開始すると、おそらく約50%の確率で次の試行で別のペアを選択します。
2ストップビット(11)を使用する場合、有効なストップスタートシーケンスは110であり、ランダムデータトラフィックで発生する確率は1/8です。非同期フローの本物のストップビットとスタートビットの混合により、サットがわずかに変化しますが、あるサイクルで誤った110ストップ/スタートシーケンスを取得した場合、次に本物の110につまずく前に別の1つをヒットする可能性は比較的低いようです次に発生するシーケンス。
ご指摘のとおり、1ストップビットでは8/10 =最大スループットの80%が得られ、2ストップビットでは8/11 = 72%の効率が得られます。完全な制限でのスループットの違いは、80%/ 72%=〜11%です。これは極端な状況では有用なゲインですが、広大ではなく、回路が約10%以上の時間アイドル状態になっている場合は最小値になります。回路にノイズが多く、時折同期が失われる傾向がある場合は、余分なストップビットが大いに役立つ可能性があります。ただし、スループットを重視する場合は、ボーレートを(常にではなく)上げるか、完全同期動作に変更することができます。
「soft UART」で受信時間に関するmikeselectricstuffのポイントを増幅するために、ポーリングベースでいつデータを受け入れるかを常に知る受信アプリケーションは、割り込み駆動型ソフトUARTで実用的であるよりも速いボーレートを処理できます。ただし、このようなアプリケーションは、1バイトのストップビットの開始から次のバイトのスタートビットまでの時間にのみ着信データを処理できます。各バイトの処理に必要な時間は、通信速度の制限要因になります。115,200-N-8-2でのデータ処理は、57,600-N-8-1での処理よりもそれほど厳しいものではありませんが、80%以上高速です。
一見効率の悪いデータ形式を使用することで、さらに物事を進めることができます。たとえば、各バイトを2つに分けて送信できます。1つは7ビットで、もう1つは1ビットです(1ビット部分のMSBがすべて設定されます)。それを行うと、ストップビットが1つしかない場合でも、1つのバイトペアの終わりと次のバイトペアの始まりの間に8ビットのマーキングがあり、ビットレートを1倍の4倍にすることができますストップビットは2つだけで済みます(1つでできることの8倍)。2倍のバイトを送信する必要がありますが、データレートの4倍の増加は大きな勝利です。さらに、送信された各バイトペアを使用して8ビットのデータを送信できますが、256個の可能なバイト値のうち130個のみがエンコードに使用されます。
昔々、テレタイプと呼ばれる電気機械的なモンスターがいました。ほとんどは、電力線周波数と同期したACモーターで実行されました。したがって、2つの通信するマシンが同じ電力グリッドに同期されていないか、異なる周波数を使用して交流で動作している可能性が常にありました。
したがって、低速のマシンが追いつき、同期がずれないようにするために、2つのストップビットが送信されました。
印刷キャリッジが新しい行の先頭に戻ることを許可するなど、その他の目的で、CR、LF、および2つのラブアウトが送信されました(8レベルテープのすべての穴)。
110ボー以下の速度でのみ動作する回路では一般的でした。