TX出力信号からRS232通信のボーレートを計算できますか?


10

X出力信号からRS232通信のボーレート通信速度を計算できますか?

以下の画像は、RS232通信出力信号からのものです。私は0xaaでこの写真を撮りました、そして最高の間の期間は100.usです。

外部発振器の周波数は8Mhzと聞きました。それからボーレートを計算できますか?

RS232信号を示すオシロスコープのトレース


9
EEはそれを知ってF=1/Tいるべきだと思います。
Eugene Sh。

2
これは、データを認識せずに構成を容易にするためのボーレートの検出についての質問であると期待していましたが、これはどうでしょうか。@EugeneSh。正しいというよりは-周波数の定義を知ることは、電子機器を扱うときの基本的な知識です。
NieDzejkob 2017

1
ヒント:このようなことに混乱した場合は、開発マシンに、自分が見ていると思うものを推測させ、スコープでどのように見えるか比較してください。間違っている場合は、推測を調整してそれらを近づけます。
Chris Stratton

Sigrokはオープンソースですよね?「推測周波数」がうまくいくと人々はどう思いますか?
mckenzm

回答:


21

除算ごとに約2.4ビット時間、つまり250 µsがあるようです。これにより、各ビット時間は104 µsになります。反転すると9.6 kBaudになります。これは標準のボーレートの1つなので、これはかなり妥当に聞こえます。


12

スコープはでのタイミングを示しています。これは、カーソルを設定するか、スコープのメジャー機能を自動的に使用するかのいずれかです。あなたは言わない。どちらにしても、これはRS-232通信の一般的なビットレートである9600 bpsに近いというOlinのコメントに同意します。100μs


ただし、外部クロックレートについてのあなた自身のコメントは、真の場合、正確な9600 bpsはありそうもないと主張します。は9600 bpsに均等に分割されません。8MHz

他のいくつかの考え:

  1. それが本当にビット幅である場合、9600 bpsの一般的なレートで許容される許容精度のばらつきを超えています。(この図の背後にある計算と考えを確認する必要がある場合は、このマキシムのページを参照してください。)私たちが受け入れるスコープの精度が概算のみの場合は、精度の要件を超えない場合があります。とにかく、それらが存在することを知っていることは良い考えです。 ± 2 100μs±2%
  2. この信号は明らかにRS-232電圧を使用していませんが、おそらく信号を使用しています。3.5V
  3. この信号はMARKにHIを使用するため(RS-232ではMARKは負の電圧です)、これはRS-232シグナリングではなく、マイクロからのロジックレベル出力である必要があります。

必要なSTARTビットと最小の1ビット時間のSTOPを取り除くと、これは、データに対して少なくとも 7つのビット時間が残っていることを意味します。

ここに画像の説明を入力してください

上記に注目すると、エンディアンに関係なく0x2Aと解釈されます。

ただし、これは8つのデータビットのチャートになります。

ここに画像の説明を入力してください

この場合、ストリームのエンディアンの性質に応じて、解釈は0xAAまたは0x55になります。したがって、これは0xAAを表す可能性があります(リトルエンディアン。

ご覧のとおり、送信機と受信機はデータビット数とそれらのエンディアンの性質について事前に合意する必要があります。

スコープの結果は、さらに長いシリアルワードサイズとして解釈できます。私は以前にそれらを見たことがあります(一部のICがそれをサポートするために使用していたので、9が最も一般的ですが、以前に10が使用されたことさえあります。)

合意がなければ、確認することは困難です。


サイドバーとして:

私の父がホームオフィススペースの自宅にそのようなテレタイプを置いていたため、RS-232が1960年に作成されたとき、テレタイプが5ビットから6ビット(1960年代初頭のDTE)に移行した時代を覚えています。6ビットのRS-232通信は実際には一定期間存在していました。

ASCIIコーディングは、1960年代後半から1970年代初頭にかけて広く使用され、7ビットコーディングです。RS-232データ通信が7ビットのデータを使用することは非常に一般的でした。

その後、通信ICとマイクロコントローラが一般的になり、8ビットのレジスタサイズが豊富に利用できるようになったため、RS-232はしばしば一度に8ビットを送受信するように拡張されました。

今日のほとんどの人は、8ビット通信に使用されることを期待していると思います。しかし、常にそうであるとは限りませんでした。


データは、19,200の2バイト0x98 0xE6である可能性もあり、s00011001Ss01100111S [s = start S = stop]に分解されます。"A" [0x41]などの一部の文字は、他のボーレートでは作成できないビットパターンを生成します(ヘイズが自動ボートレーニングシーケンスの最初の文字として "A"を選択した理由と思われます)が、上記のパターンは有効な2つの19,200ボーでのバイトシーケンス。
スーパーキャット2017

私は以前、機械式テレタイププリンターの誇り高きオーナーでした。それは完全に機械的であり、60ボーで実行されました。ソレノイドと同期モーターを数えなければ、完全に機械的です。スタートビットがクラッチを解放し、セレクターホイールが回転を始め、その後、プリントヘッドを配置してハンマーを発射するために、次々と事態が発生しました。見るのがとてもクールでした。私がカナダに来たとき、それを英国に残さなければなりませんでした。出荷するには重すぎました。
Trevor_G 2017

これが、rs232に非常に大きな駆動電圧と電流があった主な理由の1つであると確信しています。間には何もありませんでした。RS232ケーブル->ソレノイドのみです。
Trevor_G 2017

@supercatうん。時間で分割することもできます。しかし、これらのバリエーションは、本が必要になるところまで達し始めています。しかし、あなたの主張は確かに理解されています。
jonk

1
@Trevor私はこれを所有したことはありませんが、KSR-35(非常に印象的なメカニカルカムベースのマシン)とその後のはるかに安価なASR-33 / KSR-33ユニットを頻繁に使用していました。私の父が私たちの家に(彼が交通事故で亡くなる前に)持っていたのはこれらのどれでもありませんでしたが、ASR-33と同じサイズの以前の6ビットコードデバイスでした。
jonk

0

これがマイクロコントローラ用である場合、その発振器からボーレートを決定することはできませんが、8MHzクリスタルは確実に9600ボーを作成できます。

最初の最低値から最後の最高値までの正確な時間を測定して教えてもらえますか?-最初のスペースは私にはわずかに見えません。トリガーを使用しているようですが、エッジトリガーでピークに座っていると、オシロスコープのトリガーに問題が発生する可能性があるため、トリガーを少し高くできますか?


信号をサンプリングして最小の幅を測定すると、レートを計算するのは簡単です。遅かれ早かれ、開始ビットの後に「1」が続く必要があります。
mckenzm

0

スコープトレースからボーレートを特定することは、常にではありませんが可能です。

ボーレートはビット周期の逆数ですが、信号は多くのビット周期で同じ状態を維持できるため、スコープトレースから常に明確にビット周期を決定できるわけではありません。

8ビットのデータとパリティがないと仮定すると、波形はビット周期が〜100nsの1バイトを表すことができますが、ビット周期が約50nsの2バイトを表すこともできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.