ボーレート計算機の使い方
ボーレート計算機は、UARTのボーレート(baud)をもとに、ビット時間、UARTフレームのビット数、データ伝送率に相当する実効スループット(bps)、転送時間、分周値、実際のボーレート、誤差率を計算します。UARTの通信速度計算やマイコンのシリアル設定の確認に使えます。
- 目標値を入力:目標ボーレートを入力します。9600、115200、921600などのプリセットは、UART設定の確認に便利です。
- クロックと分周条件を入力:UART周辺機器のクロック周波数を入力し、Hz、kHz、MHzから単位を選びます。オーバーサンプリング倍率も入力してください。クロックは内部でHzに換算され、目標値に近づける分周値が求められます。
- 1フレームの構成を設定:データビット(5~9)、パリティビット(0~1)、ストップビット(1~2、0.5刻み)を設定し、整数の転送バイト数を入力します。この計算機では、転送バイト1件を1 UARTフレームとして扱い、フレーム長と転送時間を見積もります。
- 結果を確認:実際のボーレートと誤差率を確認します。誤差が大きい場合は、クロック、オーバーサンプリング、分周レジスタの設定を見直してください。
baud(ボー)は1秒あたりのシンボル数を表すシンボルレートです。bps(bit/s)は1秒あたりのビット数を表すデータ伝送率で、両者は厳密には同じ単位ではありません。1シンボルが1ビットを表す単純なUARTでは、物理層のボーレートと生ビットレート(raw bit rate)が数値上ほぼ一致しますが、UARTフレームの制御ビットが入るため、実際に運べるペイロードのスループットは低くなります。
このページは、変調方式や1シンボルあたりのビット数を入力する一般的な「bps baud 換算」ツールではありません。UARTの1シンボル=1ビットという前提で、目標baudを入力し、フレーム構成を考慮した有効bpsを計算します。変調方式で1シンボルが複数ビットを表す場合は、別途「ビットレート = シンボルレート × 1シンボルあたりのビット数」と考えます。
公式と計算モデル
このボーレート計算機では、次の式を使います。
ビット時間 = 1 / 目標baud
UARTフレームビット数 = 1(スタート)+ データビット数 + パリティビット数 + ストップビット数
実効スループット = 目標baud × データビット数 / UARTフレームビット数
分周値 = クロック周波数 /(オーバーサンプリング倍率 × 目標baud)
丸め後の分周値 = max(1, round(分周値))
実際のbaud = クロック周波数 /(オーバーサンプリング倍率 × 丸め後の分周値)
誤差率 =(実際のbaud - 目標baud)/ 目標baud × 100%
転送時間 = 転送バイト数 × UARTフレームビット数 / 目標baud
例えばデータ8ビット、パリティなし、ストップ1ビットなら、転送バイト1件はスタート1 + データ8 + ストップ1の計10ビットです。そのため、115200 baudでもペイロードの実効スループットは115200 bpsではなく、115200 × 8 / 10 = 92160 bpsになります。入力する転送バイト数は、このフレーム数を使った転送時間の見積もりに使われます。
分周値はクロックをオーバーサンプリング倍率と目標baudで割って求め、実装上の整数値に丸めます。丸め後の分周値から実際のbaudを再計算するため、目標値との差が誤差として表示されます。なお、転送時間はこのページのモデルでは目標baudを使って算出し、実際のbaudによる再計算は行いません。
ボーレート計算機の利用例
ボーレート計算機は、次のような場面で役立ちます。
- ファームウェアのテスト前に、マイコンのUARTレジスタ設定を確認する。
- シリアルブートローダー、センサーのデータストリーム、ログ出力の転送時間を見積もる。
- ボーレート、ビットレート、フレームのオーバーヘッド、ペイロードのデータ伝送率の違いを学ぶ。
- 周辺クロックで高速ボーレートを生成したとき、誤差が許容範囲に収まるか確認する。