ボーレートは通常、9600、56k などの指定された値のいずれかに設定されます。123456 ボーなど、別の値を選択することはできますか? それは数値パラメータなので、なぜですか?
3 に答える
通信モジュールのクロックは通常、システムクロックから取得されます。このシステム時計は、2、4、8などの特定の数値で割ることができます。そのため、特定のボーレートにしか到達できません。
非同期プロトコルで話しているため、クロックは回線で送信されません。
上記のすべてにより、業界は許容可能なボーレートのリストを決定します
ただし、2つの通信モジュールが17800のような特別なボーレートをサポートしている場合は、それを使用できます。
一般に、シリアルアダプタは特定の「標準」ビットレート(50、110、150、300、600、1200、2400、4800、9600、14400、19200、28800など)でのみ動作するように設計されています。実際には、多くのアダプタが実装されています。部分的にソフトウェアで実行でき、(カウンターの範囲内で)任意のレートを実行できますが、(デファクト)標準では、このような任意のレートを指定できる必要はありません。
Windows では、デバイス制御ブロック構造をパラメーターとして受け取る SetCommState を使用して、シリアル ポートのボー レートを設定します。この構造体の BaudRate 要素は、ボーレートを設定するために使用され、CBR_4800 などの定数値、または 4801 などの独自の指定値のいずれかになります。値が機能するかどうかは、ハードウェアに依存します。つまり、UART または SIO がuse は、特定のボーレートを許可します。これらの作業を行ってからしばらく経ちましたが、ボーレートが他のハードウェアによって提供される入力クロックレートの倍数である必要があり、特定のレートが機能しない可能性があります。私の経験は RS485 ではなく RS232 に関連していることに注意してください。ただし、同じ SDK が使用されていると思います。