1.5ビット時間など、データストリームの残りの部分から簡単に識別できるストップビット長を使用すると、送信途中で受信を開始しやすくなります。ただし、これにはオーバーヘッドの増加という犠牲が伴います。ストップビットの長さを長くすると、使用可能な総データスループットが低下します。
頻繁にバスを使用しておらず、フレーム間に頻繁にギャップがある場合は、これらのギャップの1つが発生するのを待ってから、最初のハイロー送信を最初のハイロートランスミッションとしてピックアップするだけで問題ない場合があります。次のスタートビット。
フレームサイズと同様に、データビットの数は予測可能である必要があることに注意してください。バスの容量を100%使用していて、ストップビットがシングルビットタイムの場合でも、そのビットを見つけることができるはずです。十分な数のフレームを収集した場合、開始ビット。すべてのフレームにhi-loトランジションが含まれることが保証されています。ストップビットは常にハイです。スタートビットは常にローのビットです。データがランダム(または十分にランダム)であると仮定すると、フレームのサイズのバッファーを作成し、そのすべてのビットを設定し、フレームを収集し、バッファーが1になるまでこのバッファーにAND演算するだけで、簡単なことができます。ビットセット。このビットはあなたのストップビットです。その次があなたのスタートビットです。出来上がり!あなたはそれを見つけました。
パリティビットを使用している場合、別のオプションは、2フレーム分のデータを取得し、最初の下位ビットを開始ビットとして選択して、チェックサムを計算し、パリティビットと比較することです。一致する場合は、(おそらく)開始ビットを見つけました。そうでない場合は、次の下位ビットを選択し、適切なチェックサムが得られるまで繰り返します。2つのデータフレームで有効な開始ビットとしてチェックアウトされるビットが見つからない場合、データが破損しているため、さらに2つのフレームを取得する必要があります。