少し戻って、UARTで使用される低レベルの信号プロトコルについて話しましょう。TXおよびRXはデータラインであり、クロックではありません。クロックは各UART内にのみ存在するため、ボーレートについて事前に合意する必要があります。
送信しない場合、回線はアイドル状態のままになります。バイトを送信するために(たとえば、他のデータ幅も可能)、トランスミッターは最初にスタートビットを送信します。レシーバーは、スタートビットのリーディングエッジの時間と既知のボーレートを使用して、残りの文字をデコードします。簡単にするために、100 kBaudが使用されているとしましょう。つまり、各ビット時間は10 µsです。これには、開始ビット、データビット、および停止ビットが含まれます。したがって、最初のデータビットの中央は開始ビットのリーディングエッジから15 µs、2番目のビットは25 µsなどになります。
受信機と送信機のクロックが同じである限り、これは永遠に続く可能性があります。ただし、それらがまったく同じになることはないため、永遠に続くことはできません。レシーバーのクロックをトランスミッターのクロックに再同期できるようにするために、データ文字が終了し、回線が少しの間アイドル状態のままになり、プロセスが繰り返されます。タイミングエラーはスタートビットのリーディングエッジから蓄積されるため、最大ドリフトは最後のビットにあります。そのキャラクターが終了すると、レシーバーはリセットされ、次の開始ビットを待機し、プロセスが繰り返されます。
8データビットの場合、タイミングの最悪のケースは最後のビットのサンプリングです。これは、開始ビットのリーディングエッジであるタイミング基準から8.5ビット時間です。レシーバーが1/2ビット以上オフになっている場合、異なるビットの間に最後のビットをサンプリングします。明らかにそれは悪いことです。これは、8 1/2ビットの1/2ビット、つまり5.9%のクロック周波数の不一致で発生します。これが不一致の失敗を保証するものです。信頼性のために、通常、レシーバーがトランスミッターの半分、つまり2.9%に一致することを確認する必要があります。これは、最後のビットでの1/4ビット時間エラーを表します。
ただし、それほど単純ではありません。上記のシナリオでは、受信機は基本的にスタートビットのリーディングエッジでストップウォッチを開始します。理論的にはアナログエレクトロニクスで行うことができますが、それは複雑で高価であり、デジタルチップに簡単に統合することはできません。代わりに、ほとんどのデジタルUART実装には、期待されるビットレートの16倍で動作する内部クロックがあります。「ストップウォッチ」はこれらの16サイクルをカウントします。つまり、すべてのビットサンプリング時間に1/16ビットのエラーが追加される可能性があります。これは、最後のビットでのもう1つの0.7%クロックミスマッチのようなものです。
これにより、ストップビットとは何か、ビットタイミングがどのように機能するか、16xクロックが何であるかが明確になることを願っています。私はほとんどストップビットをスキップしましたが、少なくとも1つのストップビットが必要な理由を自分で確認できるかもしれません。基本的に、ストップビットは、文字間の最小強制ラインアイドル時間です。これは、受信者が文字の受信を完了し、開始ビットの次のリーディングエッジの準備ができている時間です。ストップビットがない場合、最後のデータビットはスタートビットと同じ極性になる可能性があり、レシーバにはストップウォッチを開始するエッジがありません。
昔、このプロトコルはカム、レバー、および回転する車輪によってデコードされていました。多くの場合、メカニズムをリセットできるようにするために2つのストップビットが使用されました。今日では、すべてがデジタルロジックで行われ、1ストップビットがほぼ普遍的に使用されています。低レベルプロトコルは、8データビット、パリティビットなし(これらを忘れて、今日ではほとんど使用されない)、1ストップビットを意味する8-N-1と略記されます。そこにはオプションがないため、開始ビットが暗示されています。
8-N-1を使用すると、8ビットバイトのデータは実際に送信に10ビット時間かかります。これが、「ビットレート」と「ボーレート」に違いがある1つの理由です。ボーレートは、開始ビットと停止ビットを含む個々のビット信号時間を指します。100 kBaudでは、開始ビットと停止ビットを含め、送信される各ビットは10 µsかかります。したがって、文字全体は100 µsかかりますが、転送されるのは8ビットの実データのみです。ボーレートは100 kですが、より高いレベルの観点からのデータ転送ビットレートは80 kBits / sのみです。