1つまたは2つのUARTストップビット?


15

UARTでは、多くの場合、1、1.5、2ストップビットを選択できます。1ストップビットのペイロードの効率は80%(8/10)で、2ストップビットは72.7%(8/11)に低下します。2番目のストップビットの利点は何ですか?

回答:


19

余分なストップビットは、特に高いボーレートで、および/または受信したバイトの処理に時間が必要なソフトUARTを使用して、少し余分な受信処理時間を追加するのに便利な方法です。

速度が厳しく、UARTが2の累乗の分周比しか提供しない場合、余分なストップビットを追加することで、次に低いボーレートよりも大幅に速度を落とすことはできません。

これが、DMX512標準で2ストップビットが指定されている理由の1つであると考えられます。

バッファリングやパケット化なしでデータストリームを転送するデバイスがある場合、それらが役立つ可能性がある別の状況です-ノード間のクロックレートのわずかな違いと有限サンプリング粒度により、データが複数のノードによって受信および再送信されるときにエラーが発生する可能性がありますチェーンですが、データが2ストップビットで送信され、レシーバーが1ストップビットに設定されている場合、これらのエラーに対応する十分なマージンが追加され、チェーンのはるか下のノードが確実に受信できるように少なくとも1つの有効なストップビット期間が残されます

また、ケーブルが非常に長いために立ち上がり時間と立ち下がり時間が非対称になり、ストップビットの長さが不十分になるという状況も発生しました。2ストップビットを送信し、レシーバーでこれを修正するだけで済みます。


6

昔は、プリンターは(ほぼ)すべて機械的な構造でした。その場合でもボーレートは多少標準化されていたため、余分なストップビットを追加すると、プリンターに文字を印刷するための余分な時間が与えられます。当時のタイミングの側面はより目立っていました。私の最初のプリンター、騒々しいhttp://en.wikipedia.org/wiki/Teletype_Model_33では、キャリッジリターンを送信した後、2文字のポーズを挿入する必要がありました。


適切に調整されたモデル33は、キャリッジリターン後に1文字のみを必要としました。それがラインフィードを送信することになっているときです!2ストップビットが必要であることを忘れていましたが、あなたは正しいので、以下にラッセルの答えが当てはまります(ただし、これらの1.5ストップビットはBaudotハードウェア用でした)。ただし、余分なストップビット(10ミリ秒)は、キャリッジリターンの遅延には役立ちませんでした。
gbarry

4

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%以上の時間アイドル状態になっている場合は最小値になります。回路にノイズが多く、時折同期が失われる傾向がある場合は、余分なストップビットが大いに役立つ可能性があります。ただし、スループットを重視する場合は、ボーレートを(常にではなく)上げるか、完全同期動作に変更することができます。


マーキングのフルビット時間より前にない明らかなスタートビットを無視するように設定できるUARTを知りません(実際、ほとんどの場合、半ビット時間の前にあるスタートビットを受け入れます)マーキング、およびそうするように構成することはできません)。ただし、このような機能は便利です。
-supercat

この方法が機械の時代に遡ることを受け入れることができれば、あなたはむしろ正しい答えにつまずいたでしょう。当時、レシーバーメカニズムは、次のスタートビットの準備ができるまで停止するのに約1ビットの時間が必要でした。そのため、送信機は1.5ビットのタイムストップビットを持つように構築されました。あなたが説明した効果がありました。同期が失われた場合、同期を回復するまで、いくつかの文字化けが発生する可能性があります。それは、パディング必要はありませんでした-私たちは、電子実装に着いたとき、受信機は、次のスタートが停止レベルへの移行を見た直後にビットを待って開始することができます
gbarry

@gbarry-あなたのコメントではなくつまずいたことはありません。
ラッセルマクマホン14

実際、私はキャラクターを使い果たしました:)何かおかしいですか?
gbarry

3

「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個のみがエンコードに使用されます。


また、スタートビットエッジで割り込みを生成し、バイト全体の割り込みコード内にとどめることで、高速UART(250K以上)をソフトUARTすることもできます。ここでは、追加のストップビットが非常に役立ちます。
-mikeselectricstuff

@mikeselectricstuff:各バイトの一部のビットのみを使用できるように、追加のストップビットが非常に役立ちます(各ビットのLSBを設定する必要があるのは、そのビットの立ち上がりエッジからタイミングを導出できるためです。割り込みが発生したときに少し傾斜があるかもしれません)。ただし、開始ビットのビット割り込みでトリガーされるアプローチの主な制限は、着信データが到着する可能性がある間にデータを送信する良い方法がないことです。送信データまたは受信データ(あるいはその両方)が失われます。
-supercat

2

昔々、テレタイプと呼ばれる電気機械的なモンスターがいました。ほとんどは、電力線周波数と同期したACモーターで実行されました。したがって、2つの通信するマシンが同じ電力グリッドに同期されていないか、異なる周波数を使用して交流で動作している可能性が常にありました。

したがって、低速のマシンが追いつき、同期がずれないようにするために、2つのストップビットが送信されました。

印刷キャリッジが新しい行の先頭に戻ることを許可するなど、その他の目的で、CR、LF、および2つのラブアウトが送信されました(8レベルテープのすべての穴)。

110ボー以下の速度でのみ動作する回路では一般的でした。


1

受信側の機械デバイスの速度が遅いために余分なストップビットが追加されましたが、今日のデバイスは十分に高速であり、余分なストップビットを必要とせずにさらに高いボーレートで動作します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.