今朝の気温は8℃です。
雨の日が続いて2日間畑に行っていません。
アイコム機でJTDXのCATテストがうまくいかないという問い合わせがあり、最終的に無線機のCI/Vのボーレート設定をAutoから19200bpsに変更したらうまくいったそうです。(どうも、JTDX側の設定で最初、ボーレ-トを38400にされたせいらしいです。)
アイコム機にはCI/Vボーレート設定に Auto がありますが、自動ボーレート検出をどうやっているのか気になったので検討して見ました。 昨日は雨で暇だったので。(笑)
結論から言うと良く分かりませんでしたが、せっかくなので記事を残しておきます。(^^;
自動ボーレート検出は大昔、開発を担当した装置に組み込んだことがあります。
最初にCRキー(0x0D)を押すとボーレートを自動検出してプロンプトを返す仕組みでした。
ルネサスの古い資料を見つけました。

9600bpsで受信待受けすると、9600/4800/2400/1200bpsの場合にそれぞれ、0x0D、0xE6、0x78、0x80を受信するので、UARTの速度設定を変更するというものです。
CI/Vでは最初にプリアンプルコード(0xFE)が2個送信されます。

19200bpsで待ち受けていて、特定のコードが受信できるのかなと思って検討してみました。

9600/4800/2400bpsがそれぞれ、0xF8、0x80、0x00になります。
ただし、アイコム機のオート設定では、1200bps、300bpsにも対応しているので、この方法だけではうまくいきませんね。
フレーミングエラーが起きたら2400bpsに設定して、2番目のプリアンプルコード(0xFE)を受信して判定するとかでしょうかね。
結局、良く分かりませんでした。(^^;
(おまけの昔話し)
当時はCPUがZ80(NECなのでuPD780)でアセンブラでプログラムを書いていました。
UARTは8051や16550でした。
こういう型番を聞くと懐かしいと思う方も多いのではないでしょうか。(笑)
自動ボーレート機能はモニタープログラムの機能として実装していましたが、8bit CPUなのでモニタープログラムを入れると、プログラム本体が64kバイト空間に入らなくなってバンクを切換えたり姑息な事をやってました。
モニタープログラムが組み込んであると、ICE(in-circuit emulator)を使わなくてもデバック出来て便利でしたが、モニタープログラムを動かすためには、プログラムはブートローダーでROMからRAMにロードして動かす必要がありました。
OSはITRONでした。
後に16bit CPUを使うようになってからは、pSOSなどのOSにモニター機能が含まれるのが一般的になりました。
雨の日が続いて2日間畑に行っていません。
アイコム機でJTDXのCATテストがうまくいかないという問い合わせがあり、最終的に無線機のCI/Vのボーレート設定をAutoから19200bpsに変更したらうまくいったそうです。(どうも、JTDX側の設定で最初、ボーレ-トを38400にされたせいらしいです。)
アイコム機にはCI/Vボーレート設定に Auto がありますが、自動ボーレート検出をどうやっているのか気になったので検討して見ました。 昨日は雨で暇だったので。(笑)
結論から言うと良く分かりませんでしたが、せっかくなので記事を残しておきます。(^^;
自動ボーレート検出は大昔、開発を担当した装置に組み込んだことがあります。
最初にCRキー(0x0D)を押すとボーレートを自動検出してプロンプトを返す仕組みでした。
ルネサスの古い資料を見つけました。

9600bpsで受信待受けすると、9600/4800/2400/1200bpsの場合にそれぞれ、0x0D、0xE6、0x78、0x80を受信するので、UARTの速度設定を変更するというものです。
CI/Vでは最初にプリアンプルコード(0xFE)が2個送信されます。

19200bpsで待ち受けていて、特定のコードが受信できるのかなと思って検討してみました。

9600/4800/2400bpsがそれぞれ、0xF8、0x80、0x00になります。
ただし、アイコム機のオート設定では、1200bps、300bpsにも対応しているので、この方法だけではうまくいきませんね。
フレーミングエラーが起きたら2400bpsに設定して、2番目のプリアンプルコード(0xFE)を受信して判定するとかでしょうかね。
結局、良く分かりませんでした。(^^;
(おまけの昔話し)
当時はCPUがZ80(NECなのでuPD780)でアセンブラでプログラムを書いていました。
UARTは8051や16550でした。
こういう型番を聞くと懐かしいと思う方も多いのではないでしょうか。(笑)
自動ボーレート機能はモニタープログラムの機能として実装していましたが、8bit CPUなのでモニタープログラムを入れると、プログラム本体が64kバイト空間に入らなくなってバンクを切換えたり姑息な事をやってました。
モニタープログラムが組み込んであると、ICE(in-circuit emulator)を使わなくてもデバック出来て便利でしたが、モニタープログラムを動かすためには、プログラムはブートローダーでROMからRAMにロードして動かす必要がありました。
OSはITRONでした。
後に16bit CPUを使うようになってからは、pSOSなどのOSにモニター機能が含まれるのが一般的になりました。
コメント
(お願い)質問はメールではなく、コメントでお願いします。