メッセージが開始されたことを示すものとして開始バイトをいつでも定義できます (ASCII SOH、STX、および ETX コードはそのような目的のために意図されていました)。ただし、データ伝送機器 (RS232C 以降) に接続するための標準的なハードウェアとプロトコルは、より低いレベルで動作し、一般にその配置を (特にソフトウェアを介して) 変更することは不可能であり、望ましくもありません。
ローカル エリア ネットワークや広域伝送システムで使用されるような高性能同期データ伝送方式では、精巧なフレーム マーカーが使用されます。フレーム マーカーは、メッセージ データのストリーム内で決して発生しないビットの明確なパターンです。通常、送信機器がそれをフレーム マーカーとして認識しないように、同様のビット パターンのデータ内発生を本質的に「エスケープ」する特別な書き換え規則があります。これらのエスケープされたパターンは受信者によって再構築されるため、送信者と受信者はこれに注意を払う必要はありません。これらの配置により、パーソナル コンピュータの典型的なネットワーク インターフェイス カード (最近ではマザーボード チップ) など、特殊なハードウェアがさらに重要になります。
非同期シリアル通信の背景
非同期シリアル伝送は、文字/データ フレーム間では非同期であり、文字フレームのスパン内 (スタート ビットと初期ストップ/フィルを含む) では同期であると考えると便利です。
この方式では、フレーム間に一定のフィル信号があり、通常は少なくとも 1 データ ビット幅ですが、1.5 ビットまたは 2 ビットのストップ/フィルが必要な構成もあります。ストップ「ビット」は同じ信号レベルを使用し、別のスタート ビットが到着するまでの最小フィル期間と見なすことができます。
フレームが到着するとき、それが運ぶと予想される所定のビット数と同期する必要があります。フィル信号から逆レベル信号への遷移は、ストップ/フィル レベルとは常に反対のスタート ビットによって行われます。ビットのサンプリングは、後続のビット到着期間の途中で発生するようにタイミングを合わせることができます。
技術的には、フレームが最大レートで送信されている場合、ストップ/フィルを送信する必要はなく、すぐに次のフレームの開始ビットに進みます。ただし、開始ビット遷移の前に少なくとも 1 ビット相当のフィルを期待すると、送信側と受信側の同期を維持するのに役立ちます。
非同期ストリームがキーボードを使用したキー押下からエンコードされると考えると、文字フレーム間の任意の塗りつぶしを許可することの重要性がわかります。次にどのフレームを送信するかがわかると、少なくとも 1 ビット分の先行ストップ/フィルがあった後、合意されたビット レートで開始ビットを使用して直ちに挿入できます。
また、典型的な低速非同期伝送では、2 種類のビット/レベルしかないことに注意してください。そのため、フィルではなくデータの存在を区別できる唯一の方法は、フレームの開始は一意に検出可能であり、フレームの終了は事前に決定されています (一般に非同期シリアル通信で使用されない、より洗練された可変長フレーム構造がない限り)。受信機が送信機のビットレートを追加の合意なしに発見することは、実際にはかなり困難です。たとえば、ビットレートを推定できる認識可能なデータシーケンスを探すなど、誤った形式で到着した場合に正しく到着することになります。
現在、高速モデムは 2 つの単純な信号レベルで説明されていない複雑なアナログ信号を送信していますが、コンピュータの UART とモデムのデータ結合の間の RS232C (およびそれ以降のモード) デジタル通信は、ほぼ説明どおりです。 .
高速モデムには、接続の開始時に信号オーディオを聞くことでわかるように、離れたエンドポイントと同期するための追加機能もあります。さらに、コンピューターとモデムの間のペーシングに使用されるコンピューターへのシリアル ケーブルには別個の信号線があり、送信側が新しいデータ フレームを受信側 (コンピューターまたはモデム) が受け入れるよりも速く送信しないようにします。彼ら。ただし、フレームが開始されると、常に合意された同期速度で開始されます。
ウィキペディアには、コンピューターのシリアルポートが使用する 非同期シリアル通信の詳細な説明があります。
ストップ ビットがデータの長さを決定することを示唆する一般的な過度の単純化があります。そうではありません。ストップ ビットは、別のデータ ビットのレベルのように見えます。ストップ ビットと次のスタート ビットまでの期間を認識する方法は、フレーム内データとスタート/ストップ ビットが送信されるビット レートと、フレームに含まれるビット数を知ることです。そうしないと、データ フレームの一部としてストップ ビットをその極性の別のビットと区別する方法がありません。