自動ボーレート検出( ABR、autobaud ) とは、受信デバイス (モデムなど) が、UART 接続の最初の文字(通常は事前に選択されたサインオン文字 ( syncword ))を調べることによって、受信データの速度、コード レベル、スタート ビット、ストップ ビットを決定するプロセスを指します。ABR を使用すると、受信デバイスは、事前にデータ レートを確立しなくても、さまざまな速度で動作するさまざまな送信デバイスからデータを受け入れることができます。
プロセス
自動ボーレート処理では、受信したパターンとそのタイミング、およびスタートビットの長さを調べることで、受信した文字ストリームのボーレートが決定されます。このタイプのボーレート検出メカニズムは、STM32 [1] MPC8280、MPC8360などのプロセッサを含む多くのハードウェアチップでサポートされています。
スタートビットの長さを使用してボーレートを決定する場合、UARTはLSBビットを最初に送信するため、文字が奇数である必要があります。この特定のビット順序方式は、リトルエンディアンと呼ばれます。 [2]多くの場合、シンボル「a」または「A」(0x61または0x41)が使用されます。たとえば、MPC8270 SCCは、自動ボーのUARTスタートビットの長さを検出しようとします。
多くのプロトコルは、自動ボーレート検出に使用できる 1 と 0 のビットが交互に並ぶプリアンブルで各フレームを開始します。たとえば、TI PGA460 は、自動ボーレート検出とフレーム同期に 'U' (0x55) 同期バイトを使用します[3] 。LIN ヘッダー ( Local Interconnect Network#Header ) も同様です。たとえば、UART ベースの FlexWire プロトコルは、各フレームを 'U' (0x55) 同期バイトで開始します。FlexWireレシーバーは、同期バイトを使用して、高精度発振器なしで UART ビットクロック周波数を正確に設定します[4] 。 たとえば、イーサネットのプリアンブルには、ビットクロックを同期するための 1 と 0 のビットが交互に並ぶ 56 ビットが含まれています。
サポート
現在市販されているモデムのほとんどは、自動ボーをサポートしています。ほとんどのモデムは、入力データを受信する前に、出力にデフォルトのボー レート 9600 を使用します。たとえば、次のモデムは自動ボーとデフォルトの出力ボー レート 9600 について検証されています。
- USRobotics USR5686G 56K シリアル コントローラ FAX モデム
- Hayes V92 外付けモデム
- マイクロコム デスクポート 28.8P
モデムのボーレートは、自動ボープロセスによって入力データを受信した後に自動的に調整されます。
参照
参考文献
- ^ STM32 USART 自動ボーレート検出
- ^ 「MIT — 6.111 入門デジタルシステムラボ」(PDF) . MIT 6.111 2019年秋. 2023年7月15日閲覧。
- ^ 「PGA460 超音波信号プロセッサおよびトランスデューサ ドライバ」の「同期フィールド」セクション。2017 年、35 ページ。
- ^ Texas Instruments. 「TPS929121-Q1 12チャンネル車載用40VハイサイドLEDドライバー(FlexWire搭載)」。2021年。37ページおよび39ページ。
- 「17.2 MPC8280 PowerQUICC™ II ファミリーの UART での自動ボー操作リファレンス マニュアル」 http://www.nxp.com/files/netcomm/doc/ref_manual/MPC8280RM.pdf
- 「MSP430 での自動ボーレート検出」 https://web.archive.org/web/20161026080239/http://www.ti.com/lit/an/slaa215/slaa215.pdf
- 「Cortex-M3 で「自動ボーレート検出」機能を実装する方法」 https://stackoverflow.com/q/38979647
- 「mpc8270 SCC2 UART の問題」 https://community.nxp.com/message/906833
