UARTマスター: 汎用非同期受信送信機の完全解説
UART(Universal Asynchronous Receiver-Transmitter)は、ポイントツーポイント通信で最も広く採用されているハードウェアプロトコルです。本ガイドでは、UARTの設定、パケットフォーマットの理解、製品開発に不可欠なセキュアフレームプロトコルの実装を解説します。
正しく設定されたUARTは、わずか2本のワイヤで多様なシリアルデータストリームをサポートできます。この最小配線はコストと複雑さを削減し、組み込みシステム、マイクロコントローラ、PCにUARTを最適化します。
UARTの基礎(パケット送信、標準フレームフォーマット、セキュリティとコンプライアンス価値を加えるカスタムフレーム)、データシート解釈とUARTペリフェラル設定の実践的ステップをカバーします。
読了時には、UART標準と、それらを新製品機能強化に活用する方法を確実に理解できるでしょう。
「コミュニケーションにおける最大の問題は、それが行われたという錯覚である。」
—George Bernard Shaw
通信プロトコルはデバイス間の相互作用を構造化します。データが確実に交換される共通言語を定義します。組み込み世界では、UARTがデバイス間ハードウェア通信のデファクトスタンダードです。
バスベースプロトコルと異なり、UARTは送信(Tx)と受信(Rx)ラインのみを必要とし、基板設計を簡素化し消費電力を低減します。
人気にもかかわらず、多くの実装が適切なフレーム設計を軽視し、性能とセキュリティを損なう可能性があります。適切に定義されたフレームプロトコルが、エラーフリーで保護されたデータ交換の鍵です。
非同期シリアル通信とは、共有クロックラインを持たず、送信側と受信側が一致したボーレートで同期を維持する方式です。
インターフェース
図1. 直接通信する2つのUART。
各UARTは2つの専用ピンを公開します:
- 送信側 (Tx)
- 受信側 (Rx)
図2. データバスとインターフェースされたUART。
この構成では、送信側UARTがバスからの並列データをTxライン上のシリアルビットストリームに変換。受信側UARTがこのストリームをサンプリングし、ビットを並列データに再構成してローカルバスに渡します。
両側は同じボーレート(ビット/秒)で動作しなければなりません。ミスマッチはフレーミングエラーを引き起こし、典型的なUARTは最大10%のボーレート偏差まで許容します。
表1に主要UART属性をまとめます。
表1. UART概要
| ワイヤ数 | 2 |
|---|---|
| サポートボーレート | 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1000000, 1500000 |
| 伝送方式 | 非同期 |
| 最大マスタ数 | 1 |
| 最大スレーブ数 | 1 |
UARTは非同期であるため、送信側は自分のクロックに基づきビットストリームを駆動し、受信側は内部クロックで着信ビットをサンプリングします。スタートビット、データフレーム、オプションのパリティ、ストップビットがパケットを構成します。
データ送信
各UARTパケットには以下が含まれます:
- スタートビット: ハイからローへの遷移でフレーム開始を通知。
- データフレーム: 5~8ビットのペイロード、LSBファースト。パリティ使用時は9ビットになる場合あり。
- パリティビット (オプション): 偶数または奇数パリティで1ビットエラーを検出。
- ストップビット: フレーム終了を示す1~2ビットのハイレベル。
図3. UARTパケット構造。
図4. スタートビットの図解。
図5. データフレーム例。
図6. パリティビット使用例。
図7. ストップビットの図解。
送信フロー
1. 並列入力: 送信側がバスから並列データを受信。
図8. 送信側にデータを供給するバス。
2. フレーム組み立て: 送信側がスタートビットを前置き、パリティとストップビットを付加し、完全なパケットを形成。
図9. 送信側でのUARTパケット。
3. シリアル送信: 設定ボーレートでパケットをビット単位で送信。
図10. 連続UART送信。
4. 受信: 受信側がフレーミングビットを除去し、元のデータを再構成。
図11. 受信側でのパケット。
5. 並列出力: 受信側がシリアルデータを並列に戻し、ローカルバスに転送。
図12. 受信側バスへのデータフロー。
カスタムフレームプロトコル
標準UARTフレームは多くのユースケースで十分ですが、カスタムフレーム層を追加することでセキュリティを強化し、意図したデバイス間のみが通信することを保証できます。
ユニークなヘッダ、トレーラ、CRCを埋め込むことで、各デバイスがパケットの信頼できる送信元からのものかを検証可能になります。これは安全クリティカルまたはセキュアな環境で特に価値があります。
図13は典型的なカスタムフレームを示します:
図13. UARTフレームプロトコル例。
フレームは通常以下を含みます:
- ヘッダ1 (0xAB) と ヘッダ2 (0xCD) - ユニーク識別子。
- コマンド (CMD) - 実行アクションを指定。
- データ長 (DL) - ペイロードバイト数。
- ペイロード (Data n) - 実際のデータ。
- トレーラ1 (0xE1) と トレーラ2 (0xE2) - 終了マーカー。
- CRC - 両端で計算される誤り検査値。
両側で同一のフレーミングルールを使用しなければ、パケットは拒否されます。
UART設定手順
1. データシートを見る - UARTインターフェースとピン割り当てを理解。
図14. マイコンデータシート抜粋。
2. メモリマップを確認 - UARTレジスタとアドレスを把握。
図15. マイコンメモリマップ。
3. UARTポートパラメータを定義 - データビット、パリティ、ストップビット、動作モード。例:
• 5~8データビット
• 1、1.5、または2ストップビット
• なし、偶数、または奇数パリティ
• 全二重、DMA対応、非同期転送
4. ボーレート計算 - ペリフェラルクロック(PCLK)とMCUのオーバーサンプリング/分周レジスタを使用。一般式:
ボーレート = PCLK / ((M + N/2048) × 2OSR + 2 × DIV)
ここで:
OSR - オーバーサンプルレート (0~3)
DIV - ボーレート分周器 (1~65535)
M - 小数分周器MSB (1~3)
N - 小数分周器LSB (0~2047)
以下の例示テーブルは、26 MHzと16 MHz PCLKでのボーレート設定を示します。
表2. 26 MHz PCLKベースのボーレート例
| ボーレート | OSR | DIV | DIVM | DIVN |
|---|---|---|---|---|
| 9600 | 3 | 24 | 3 | 1078 |
| 115200 | 3 | 4 | 1 | 1563 |
表3. 16 MHz PCLKベースのボーレート例
| ボーレート | OSR | DIV | DIVM | DIVN |
|---|---|---|---|---|
| 9600 | 3 | 17 | 3 | 1078 |
| 115200 | 3 | 2 | 2 | 348 |
5. UARTレジスタを設定 - データシートに従ってプログラム。主要レジスタ:
表4. UARTレジスタ説明
| 名前 | 説明 |
|---|---|
| UART_DIV | ボーレート分周器 |
| UART_FIBR | 小数ボーレート制御 |
| UART_LCR2 | ライン制御レジスタ (OSR、ストップビット、パリティ) |
レジスタプログラミング完了後、UARTは信頼性高くデータ送受信可能になります。
UARTが重要な理由
UART理解は、堅牢で低コスト、高スループットなシリアルリンクを設計するエンジニアに不可欠です。フレーミング、ボーレート計算、レジスタ設定の習得がデータ完全性とシステム信頼性を保証します。
一般的なユースケース
- デバッグ - ファームウェア開発中のログメッセージ。
- 製造 - リアルタイム診断とトレースログ。
- オーバーザエアアップデート - 組み込みデバイスへのファームウェア変更配信。
- 検証 - 出荷前のデバイス機能検証。
参考文献
"Basics of UART Communication." Electronics Hub, July 2017.
Campbell, Scott. "Basics of UART Communication." Circuit Basics. Keim, Robert.
"Back to Basics: The Universal Asynchronous Receiver/Transmitter." All About Circuits, December 2016.
"What Is UART Protocol? UART Communication Explained." Arrow.
埋め込み
- 予知保全が効率を高めダウンタイムを削減する仕組み
- エキスパートシャフト製造:精密プロセスとカスタムソリューション
- カット・トゥ・レングスライン完全マスター:キーコンセプトと用途
- 残留応力の基礎:種類・原因・測定法・制御技術を徹底解説
- ショックアブソーバーの仕組みと種類:車両の乗り心地と安定性を支える技術
- 流体の流れの分類と特徴:層流・乱流、定常・非定常などを解説
- カップリングとは:産業機械における機能、種類、選定基準
- 材料の柔軟性を探る:弾性が性能を決める理由
- ディーゼルエンジンの用途:乗用車から産業用発電機まで
- フライス盤入門:機能、コンポーネント、用途の包括的ガイド
- クラウドカルチャーがビジネス成功を導く理由:実践ガイド