どのような標準UARTレートがありますか?

9600、19200、38400、57600、115200、1.8432ボーを知っていますが、他には知りません。これらの値が使用されるのはなぜですか。毎回単純に2倍になるのでしょうか、それとももっと複雑なことが起こっているのでしょうか(たとえば、38400の4倍は115200ボーではありません)。

この質問をする理由は私です。さまざまな異なるボーレートと相互作用する必要がある可能性のあるものを設計します。9600で初期化され、特定のボーレートに切り替わります。ただし、使用しているdsPIC33Fは任意のレートをサポートしていないため、任意のレートをサポートできません。 16ビットBRGダウンカウンタに制限されています。この点では、他の多くのプロセッサでも同様です。

コメント

  • 実際には、16ビットカウンタとプリ/ポストスケーラーで十分です。 "を任意のボーレートに十分に近づける"。UARTシリアルはわずかなボーレートの不一致を許容できます。
  • uartは、STARTビットの途中で開始し、7〜10ビットをシリアル化した後、STOPビットの中央近くに留まる必要があります。これにより、最小クロック精度が約2〜3%になり、ノイズ、ジッタ、偏差の処理に適しています。ソース周波数…

回答

それはずっと前にテレタイプで始まりました—75ボーだと思います。それ以来、それはほとんど倍増しており、いくつかの分数(x1.5)の倍数、たとえば28,800で、電話回線のモデム技術に制約があり、倍増することはできませんでした。

標準の結晶値は、これらの初期のボーレートとその可用性に由来します。 yは先物レートを決定します。例:

\ $ \ begin {align} {7.3728 \、\ mathrm {MHz} \ over 16} & = 460,800 \; \ text {baud} \\\\ {7.3728 \、\ mathrm {MHz} \ over 64} & = 115,200 \、\ text {baud}。\ end {align} \ $

ほとんどのUARTは、ボーレートの \ $ 2 ^ n \ times 16 \ $ のクロックを使用します。最近の部品(NXP LPCなど)には、非バイナリ倍数を使用してより広い範囲を取得するための分周器があります。

その他の一般的な標準は31,250(MIDI)と250K(DMX)で、どちらも優れた倍数として選択される可能性があります1MHzなどの「ラウンド」クロックの数。

コメント

  • フラクショナルディバイダーは考えていません'非標準のビットレートを取得するためのものですが、非標準のMCUクロック周波数から標準のビットレートを取得するためのものです。
  • 1926年の2年間のテレタイプを大学に戻って(1976年)改装しましたが、約75ボーで動作しました。それらは、baudotテレタイプとラベル付けされました。 110vacに接続し、モーターがタイミングを提供し、それらの間を電気的に接続しました。私はそれらをガソリンに浸して掃除した。 (私に休憩を与えてください-私は18歳でしたが、うまくいきました!)Ctrl-Gは、もう一方に正直に善良なベルを鳴らしました。残念ながら、私は'誰に渡したのかさえ覚えていません。 :-(そうですね、'メカニカルキーボードで入力すると、キーストロークが機械的にシリアル化され、反対側が読み取った連絡先が作成および切断されます。
  • うん、とどろく' 20 ' s!50年間続く、ジョン・シルバにたどり着く高品質のテクノロジー'カリフォルニア州ヘイワードにある小屋。
  • @DougNullバンプでごめんなさい-115200bpsの質問。それで、ICクロック(7.3728MHz)を取り、それを何で割ったか?64を取得した経緯ボーメニュー:

    110、150、300、1200、2400、4800、9600、19200、38400、57600、115200、230400、460800、921600

    ただし、これらは実際にはボーではなく、ビット/秒(bps)-以下を参照してください。

    110ボーは、ASR-33などの8レベルテレタイプで使用されていました。150ボーが使用された場所はわかりませんが、 75ボーの倍増、一般的に私たち5レベルTTY用に(60ボーと共に)ed。

    300 bpsは、1960年代に最初に広く使用された電話モデムの標準でした。同時に30文字/秒の端末が登場しました。

    300bps / 300ボーを超えると、単純な周波数偏移変調(FSK)、bpsとボーの数値(記号またはトーン/秒)が使用されます。 )は同じではありません。たとえば、1200 bpsモデムは実際には600ボーで動作し、4800bpsモデムは1600ボーで動作します。この記事の帯域幅の下の表を参照してください。違いは、1秒あたり特定の数のトーンパルスを使用することに加えて、位相偏移変調と他の方法を使用して、同じボーから追加の帯域幅を抽出するためです。ますます高いbpsを取得するレート。 (したがって、56Kモデムは実際には8000ボーでのみ実行されます。)

    ご覧のとおり、UARTレートのリストは基本的に75から始まり、38400に達するまで継続的に2倍(600をスキップ)しました。 1.5を掛けて57600を得ました。56K bpsは、アナログ電話回線の制限です。有線接続には、115200以上のより高いレート(57600から再び2倍)が使用されます。

    mikeselectricstuffが述べたように、モデムの速度が不可能な場合、14400および28800bpsが1.5x9600および1.5x19200として導入されました。 「その時点で2倍になることはありませんが、もうほとんど使用されていません。

    コメント

    • 衒学的ではありませんが、プログラムはどの速度しかサポートできません。ハードウェアで許可されています。わざわざ標準速度をリストアップすることすらできない場合があります。ハードウェアにzip(*serial.Serial('COM10').getSupportedBaudrates())と尋ねると、次のように応答します:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
    • 80年代に600ビット/秒の半二重音響カプラを使用しました。ドイツのBTXシステムではアップロード方向に75ビット/秒が長い間使用されていました。ダウンロードは1200ビット/秒でした。
    • 'も62.5kbaudを見ました。実際には、メインクロックにも依存します。どのボーレートが、十分に低いエラーにつながるかを計算できます。

回答

長い間、通信には115,200の約数を使用するのが一般的でした。38,400の2の倍数の累乗、または57,600または115,200のいずれかです。ほとんどのPCハードウェアはこれらのレートをサポートしています。一部のPCハードウェアは230,400または460,800をサポートできます。独自のクロック速度の約倍であるデータレートのような多くの組み込みコントローラー、および一部のUSB-シリアルチップは3,000,000bpsの整数の約数をサポートできるため、1,000,000bpsや1,500,000bpsなどの速度がおそらくより一般的になることに注意してください。 USBチップを介してPCに接続するデバイス。

BTW、言及する価値のあるもう1つのレート:31,250bpsは標準MIDIに使用されるレートです。

回答

元のIBMPCには8250UARTが搭載されていました。これは1.8432MHZクロックを取り、それを整数で割って内部クロックを生成し、そのクロックはビットに対して16サイクルで実行されます。

除数レジスタに1を設定すると、115,200、2は57,600、 3は38,400を取得し、6は19,200を取得します。

最善の策は、DSPICで1.8432MHzの倍数で動作するクロックを使用することです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です