マイクロプロセッサが単線で非同期シリアル通信を介して外部デバイスと通信するためのコードを書いています。
Low/High (いずれかの方法) からのワイヤ上の遷移を認識できるため、ビット境界を見つけることができます。デバイスが使用しているボー レートがわかっている場合は、クロック オフ ビットを開始できるので、デバイスからのビット ストリームを読み取ることができます。
私が概念的に苦労しているのは、開始ビットを認識することです-バイトフレームの開始を見つけることです(8ビット、パリティなし、1開始ビット、1停止ビットを取得していると仮定します)。各フレームがスタート ビットで始まり、ストップ ビットで終わることは理解していますが、スタート ビットとストップ ビットは他のビットと同じように見えることを理解しています。彼らの立場)。
スタート ビットを識別する唯一の方法は、それが持続的なアイドル期間の後の最初のハイ ビットになるということです。ラインはアイドル状態で、次の上位ビットは開始ビットになります。これで問題ありませんが、ビットストリームの途中でデバイスのリッスンを開始し、ワイヤ上に 9 ビット以上のアイドル時間がない場合はどうなりますか? ビットをクロックオフしていますが、どのビットが開始ビットであるかを認識して、バイトを読み取れるようにするにはどうすればよいですか? 私がビットをクロックオフしている場合、フレーム間のものはビットの整数倍にしかならないため(たとえば、ストップ「ビット」は1.5ビットにすることはできません)、すべてがビットのように見えます。
私が理にかなっているといいのですが...助けてくれてありがとう。