接続する機器の通信仕様や、利用するケーブルの品質、さらには、利用するパソコンの処理能力(動作スピード)および、負荷 (他のプログラムとの同時実行など)によって、ボーレートの上限は左右されます。
また、RS-422A/485通信の場合、ケーブル長は1200mまで延長できますが、通信距離を長くするとボーレートは下げる必要があります。
このため、利用デバイス仕様表に記載されているボーレート内であっても、この上限を超えたスピードで通信を行うと、通信エラー(オーバーラン、パリティ、フレーミング)の原因となります。
診断プログラムなどで実際に通信を行い、設定可能なボーレートを確認してください。
設定可能なボーレートは、デバイス上に搭載されている通信用LSI仕様に依存します。
以下に概略を示しますが、設定できるボーレートの詳細は、各デバイスの解説書を参照ください。
下表のデバイスは、設定できるボーレートが決まっています。
表内に記載されていないボーレートは設定できませんので、ご注意願います。
対象デバイス |
設定可能ボーレート |
COM-1(USB)H
|
300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 |
下表のデバイスは、算出用の基準クロックに準じて柔軟にボーレート設定ができます。
表内に代表的なボーレート設定例を示しますが、そのほかにも設定できるボーレートがあります。
対象デバイス |
ボーレート bps (ビット/秒) |
算出用の基準クロック |
||
最小値 |
最大値 |
設定例 |
|
|
COM-4CN-USB
|
300 |
921600 |
300, 600, 1200, 2400, 4800, 9600, 19200 設定誤差 0.1603% |
48,000,000 |
COM-1C-LPE COM-2PC-PE COM-1(LPCI)H
|
50 |
921600 |
50, 75, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 |
921,600 |
COM-1PDH-LPE
|
50 |
921600 |
50, 75, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 |
921,600 |
COM-2CL-PCI
|
50 |
230400 |
50, 75, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400 |
921,600 |
※CPS-BXC200と併用時のみ対応 CPS-COM-1PC
|
50 |
921600 |
50, 75, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 |
921,600 |
(BX-M210 GPIOモデル上のEXT-A、EXT-B) COM-1C |
50 |
115200 |
50, 75, 150, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200 |
115,200 |
デバイスに搭載されているLSIの分周レジスタは整数値で設定します。
指定するボーレートが、算出用の基準クロックの整数倍でない場合、小数点は四捨五入され、LSIの分周レジスタ(Clock
Divisor)へセットされます。
このため、指定するボーレートによっては、デバイスのボーレート設定時に設定誤差が発生します。
一般的に、ボーレート誤差が1%未満であれば、エラーは発生せずシリアル通信できます。
しかしながら、機器と実際に通信を行い設定可能なボーレートであることをご確認ください。
なお、分周レジスタへの設定値算出結果が整数であっても、利用するデバイスの最大ボーレートを超えて設定できません。
<分周レジスタへの設定値算出式>
分周レジスタ(Clock Divisor) = 算出用の基準クロック ÷ 指定ボーレート
算出用の基準クロック=48,000,000Hz(48MHz)、指定ボーレート 9,600[bps]
算出結果は5,000となるため、分周レジスタへの設定は5,000となり、設定誤差は発生しません。
(内訳)
分周レジスタ(Clock Divisor)= 算出用の基準クロック ÷ 指定ボーレート
= 48,000,000Hz ÷ 9,600bps
= 5,000
動作ボーレート[bps] = 算出用の基準クロック ÷ 設定した分周レジスタ値
= 48,000,000Hz ÷ 5,000
= 9,600bps
設定誤差[%] = ((動作ボーレート ー 指定ボーレート) ÷ 指定ボーレート)
x100
= ((9,600bps ー 9,600bps) ÷ 9,600bps) x100
= 0%
算出用の内部クロック=48,000,000Hz(48MHz)、指定ボーレート 115,200[bps]
算出結果は416.66666となるため、分周レジスタへの設定は416となり、設定誤差 0.1603%が発生します。
(内訳)
分周レジスタ(Clock Divisor)= 算出用の基準クロック ÷ 指定ボーレート
= 48,000,000Hz ÷ 115,200bps
= 416.66666 ※分周レジスタへは、416が設定される
動作ボーレート[bps] = 算出用の基準クロック ÷ 設定した分周レジスタ値
= 48,000,000Hz ÷ 416
= 115,384.6153bps
設定誤差[%] = ((動作ボーレート ー 指定ボーレート) ÷ 指定ボーレート)
x100
= ((115,384.6153bps ー 115,200bps) ÷ 115,200bps) x100
= 0.1603%