UARTのキャラクタタイミング
UARTは共通クロックなしでどのように受信するのか?
受信側は有効なスタートイベントでタイミングを確立し、その後、自身のローカルクロックでキャラクタの各ビットをサンプリングして、ストップ位置を確認します。両端の設定には互換性が必要です。新しいキャラクタでタイミングを再調整できますが、フレーミングの確認だけではデータの完全性やアプリケーション処理の成功は証明できません。これらの簡略化した論理図は、コネクタの電圧や製品の測定結果を示すものではありません。
スタート
有効なスタートイベントがローカルのタイミング基準を確立します。
サンプリング
安定したビット区間内でサンプリングすることで、信号の遷移を避けやすくなります。
ストップ
想定されるストップ位置でLowが検出されると、フレーミングエラーが示される場合があります。
両端のボーレート、データビット、パリティ、ストップビットを記録します。
許可された試験で、論理信号のタイミングと受信エラーを比較します。
実際のアプリケーションのバイト列とメッセージの解釈を確認します。
選定・検証チェックリスト — 展開
| 確認項目 | 確認する内容 | 検証方法 |
|---|---|---|
| インターフェース | 電気的互換性 | 機種別のドキュメントを確認 |
| キャラクタ | タイミングとフォーマットの一致 | 両端の設定を比較 |
| 用途 | バイト列とメッセージが正しいこと | 既知パターンによる試験記録を保存 |
シリアル通信の両端は独立したクロック線を共有しません。それでは、変化する信号の中から受信側はどのように1バイトを識別するのでしょうか。その答えは、スタートビット、ストップビット、そして両端それぞれのタイミングにあります。この仕組みを理解すると、わずかな設定の違いで文字化けやフレーミングエラーが生じる理由や、Ethernet接続が成立していてもシリアル受信の正しさを証明できない理由が分かります。

電気的インターフェースとキャラクタフォーマットを分けて考える
産業機器は、RS232またはRS485を介してシリアルデバイスサーバーやデータ用光トランシーバーに接続される場合があります。インターフェーストランシーバーは、回線信号をチップが処理できる論理信号に変換します。UARTは、選択されたキャラクタフォーマットに従って個々のビットを処理します。UARTは汎用非同期送受信器を意味し、非同期動作では通常、共通の同期クロック線を使用しません。
これらの図のHighとLowはUARTの論理状態を表しており、実際のRS232コネクタの電圧や、RS485の各導体の対地電圧を表すものではありません。インターフェースの種類、基準グランド、差動配線、機器の制限値は別途確認する必要があります。論理図は配線ガイドではなく、TTLピンを互換性のないインターフェースに直接接続してはいけません。
受信経路は、回線トランシーバー、UART受信ロジック、バイトバッファ、アプリケーションに単純化できます。各段階の間で信号が渡されたことだけでは、アプリケーションが正しい業務レコードを受信したとはいえません。データがネットワークに入る前に、キャラクタ受信が正常に機能している必要があります。
フレームのどの部分がアプリケーションデータではないのか?
一般的な8N1フォーマットでは、8は8データビット、Nはパリティなし、1は1ストップビットを指定します。キャラクタにはスタートビットも含まれるため、8ビットのアプリケーションデータだけが回線上の伝送全体ではありません。スタートビットとストップビットはキャラクタを構成するためのものであり、追加の値としてアプリケーションデータに付加してはいけません。
一般的な非反転の論理表現では、アイドルはHigh、スタートビットはLow、ストップビットはHighに戻ります。データは通常、最下位ビットから送信されますが、周辺回路によって選択肢が異なるため、両端のドキュメントで整合性を確認する必要があります。D0からD7はビット位置を示すものであり、固定のバイト値や、隣接ビット間で必須となる遷移を示すものではありません。
同じ値のデータビットが連続すると、回線は同じ状態を維持することがあります。受信側は、遷移の数を数えて8ビットを数えることはできません。スタートイベント後のタイミングに基づいて、連続するビット区間を判断します。そのため、ボーレート設定を一致させることが重要です。
アイドル状態からどのように受信を開始するのか?
UARTは入力を監視します。スタートの可能性がある遷移を検出すると、Low状態がその実装の開始条件を満たすかを確認し、データサンプリングのタイミングを設定します。短いグリッチが自動的に完全なスタートビットと見なされるわけではありません。フィルタリングやスタートの有効性確認は周辺回路によって異なるため、各機器が同じ内部ロジックを使用していると想定してはいけません。
スタートビットは、各キャラクタの前に置かれる開始の合図と考えると分かりやすくなります。両端でおおよそのペースを合わせたうえで、受信側が自身のローカルタイマーに従って順番にサンプリングします。この例えは、実際に音声の合図が送信されることや、通常のUARTがあらゆるボーレートを自動認識することを意味しません。互換性のある設定が引き続き必要です。
多くのUARTはオーバーサンプリングを使用します。内部サンプリングクロックが1ビット区間内で複数回動作し、有効なスタートやサンプリング位置の確立を助けます。複数のサンプルによって判定するものもあります。これはエッジ位置の特定や外乱への対処に役立ちますが、無制限の誤差を許容するわけではありません。あるチップのサンプリング倍率が、すべてのFCTELE製品に共通する仕様というわけではありません。

なぜビットの中央付近でサンプリングするのか?
ビット境界付近では、信号が遷移中である可能性があります。伝搬、エッジの変化速度、入力しきい値は、受信側がHighまたはLowと判断するタイミングに影響します。エッジの近くよりも、安定した区間内でサンプリングする方が判別しやすくなります。中央の点は概念を説明するものであり、実際のチップが1回だけサンプリングする、または常に幾何学的な中心で正確にサンプリングすると主張するものではありません。
送信側と受信側は、それぞれ独立したローカルクロックを使用します。ビット時間にずれがあると、スタートでタイミングを合わせた後でも、予測されるサンプリング位置は徐々にずれていく可能性があります。タイミングの差はキャラクタの終わりに近づくほど顕著になり、最後のデータビットやストップビットの付近で、誤った区間をサンプリングする可能性があります。
短いメッセージが時々正しく受信できても、設定の信頼性が証明されたことにはなりません。ビットパターンによっては問題が隠れ、別のパターンでは表面化することがあります。受入試験では、端末に表示された数文字が読めるだけで十分な証拠とせず、実際のアプリケーション内容と継続的な伝送を対象にする必要があります。
ストップビットの確認で何が分かるのか?
設定されたデータビットと、使用する場合はパリティビットの後で、受信側は自身の実装に従ってストップ位置を確認します。ストップ状態が期待される位置でLowを検出すると、フレーミングエラー状態を設定する場合があります。フレーミングエラーは受信フォーマットの確認に失敗したことを示しますが、どの配線に不具合があるかを特定するものではありません。
ボーレートやキャラクタフォーマットの不一致、干渉、異常に長く続くLow状態は、関連する症状を引き起こすことがあります。一方、フレーミングエラーがないことは、データの正しさを証明しません。誤ったサンプリングでも、ストップ位置で偶然Highを検出する場合があるためです。データには引き続き完全性の確認やアプリケーション側での確認が必要です。また、ストップビットは、完全な業務メッセージの終端を示すものではありません。
エラーフラグがキャラクタにどのように付随するか、ドライバーがそれらを破棄するか、ソフトウェアからカウンターにアクセスできるかは、ハードウェアとソフトウェアに依存します。アプリケーションに何も表示されなくても、直ちに回線入力がないとはいえません。途中の段階でエラーのあるキャラクタが除去された可能性があります。バイト内容とともに状態情報も保存してください。

次のフレームはどのようにタイミングを合わせ直すのか?
キャラクタの受信後、受信側は自身の規則に従って次のスタートイベントの検出に戻ります。新たな有効なスタートは、受信タイミングを再調整する機会になります。連続伝送では、キャラクタ間に長い無信号期間を設ける必要はありませんが、設定されたキャラクタフォーマットとストップ期間の要件を満たす必要があります。
キャラクタごとの同期によって、通信のやり取り全体が自動的に修正されるわけではありません。キャラクタを誤って受信した場合、欠落、重複、破損したバイトへの対処は引き続きアプリケーションプロトコルに必要です。UARTのキャラクタ境界、シリアルサーバーのネットワークパケット境界、アプリケーションのメッセージ境界は、それぞれ異なります。ストップビットを増やしても、正しいメッセージ解析の代わりにはなりません。
調査では、両端のボーレート、データビット、パリティ、ストップビット、インターフェースの種類を記録し、許可された条件下で波形とエラーカウンターを観測します。一度に変更する変数は1つとし、変更前後で既知のデータを比較します。重要な生産用通信回線のパラメーターを変更する場合は、無管理な試行錯誤ではなく、保守の手配が必要です。
各段階の証拠を結び付ける
入力波形がすでに異常であれば、電気的インターフェース、配線、干渉を調査します。波形は識別できるのにバイトが破損する場合は、キャラクタフォーマット、タイミング、サンプリングを確認します。バイトが正しいのにアプリケーションが正常に動作しない場合は、バッファリング、ネットワークのカプセル化、アプリケーションでの解釈を調べます。各段階の証拠は、Ethernetスイッチの交換を繰り返すよりも、有用な調査の方向性を示します。
FCTELEのシリアルデバイスサーバーとデータ伝送製品は、産業機器を接続します。実際のインターフェースと設定機能は、該当機種のドキュメントに依存します。このガイドは一般的なUART受信を説明するものであり、特定製品の内部回路や実測された許容誤差を説明するものではなく、未検証の最高速度も示していません。納入時の検証資料には、設定、試験条件、元の波形、アプリケーションの検証結果を含める必要があります。
参考資料
TI:UARTプロトコルとエラーの概要; Microchip:非同期受信器の例; FCTELEシリアルゲートウェイ製品情報。一般的な説明図であり、製品回路や許容誤差の測定結果ではありません。
以下の中国語技術記事から翻訳: 中国語の原文記事を読む.
よくある質問
UARTの論理状態はRS232の電圧と同じか?
いいえ。回線トランシーバーが電気信号を変換します。実際のインターフェース電圧と配線は別途確認してください。
フレーミングエラーがなければデータが正しいといえるか?
いいえ。データが誤っていても、ストップ位置のサンプルが偶然Highになる場合があります。完全性の確認とアプリケーション側での確認は引き続き必要です。
ストップビットはアプリケーションメッセージを終了させるか?
いいえ。ストップビットはキャラクタフォーマットの一部です。メッセージ境界はアプリケーションプロトコルが定義します。
適用範囲と参考資料
一般的なUARTのタイミングであり、特定機器の回路や実測された許容誤差ではありません。


