Bisakah kita menghitung baud rate komunikasi RS232 dari sinyal output TX?

10

Bisakah kita menghitung baud rate atau kecepatan komunikasi komunikasi RS232 dari sinyal output X?

Gambar di bawah ini dari sinyal output komunikasi RS232. Saya mengambil gambar ini dengan 0xaa, dan periode waktu antara tertinggi adalah 100.us.

Saya mendengar bahwa frekuensi osilator eksternal adalah 8Mhz. Bisakah kita menghitung baud rate dari itu?

Jejak osiloskop menunjukkan sinyal RS232

chiper
sumber
9
Saya pikir seorang EE harus tahu itu F=1/T.
Eugene Sh.
2
Saya mengharapkan ini menjadi pertanyaan tentang mendeteksi baud rate tanpa sepengetahuan data untuk memudahkan konfigurasi, tapi ini? @EugeneSh. lebih dari benar - mengetahui definisi frekuensi adalah pengetahuan dasar ketika bekerja dengan elektronik.
NieDzejkob
1
Petunjuk: jika Anda bingung dengan hal seperti ini, buat mesin pengembangan Anda mengirimkan tebakan terbaik Anda tentang apa yang Anda pikir Anda lihat dan lihat apa yang tampak pada ruang lingkup perbandingan. Jika salah, perbaiki tebakan Anda untuk mendekatkan mereka.
Chris Stratton
Sigrok adalah open source, bukan? Bagaimana orang berpikir "frekuensi tebakan" berfungsi?
mckenzm

Jawaban:

21

Sepertinya Anda memiliki sekitar 2,4 bit kali per divisi, yaitu 250 μs. Itu menempatkan setiap bit pada 104 μs. Menghindari yang menghasilkan 9,6 kBaud. Itu salah satu baud rate standar, jadi ini terdengar cukup masuk akal.

Olin Lathrop
sumber
12

100μs


8MHz

Beberapa pemikiran lain:

  1. 100μs±2%
  2. 3.5V
  3. Sinyal ini menggunakan HI untuk MARK (di RS-232, MARK adalah tegangan negatif), jadi ini harus berupa output level logika dari mikro dan bukan pensinyalan RS-232.

Jika Anda mengambil bit START yang diperlukan dan STOP satu-bit-waktu minimum, ini berarti mungkin ada setidaknya tujuh kali bit tersisa untuk data:

masukkan deskripsi gambar di sini

Di atas akan ditafsirkan 0x2A terlepas dari endianness, jika saya memperhatikan.

Namun, ini akan menjadi bagan untuk delapan bit data:

masukkan deskripsi gambar di sini

Dalam hal ini, interpretasinya adalah 0xAA atau 0x55, tergantung pada sifat endian dari aliran. Jadi ini bisa mewakili 0xAA Anda (little endian, yang saya percaya lebih umum.)

Seperti yang Anda lihat, pemancar dan penerima harus secara apriori menyetujui jumlah bit data dan sifat endiannya.

Hasil lingkup dapat ditafsirkan sebagai ukuran kata serial yang lebih panjang. Saya telah melihat mereka sebelumnya (9, paling umum, karena beberapa IC digunakan untuk mendukungnya tetapi saya bahkan melihat 10 digunakan sebelumnya.)

Tanpa persetujuan, sulit dipastikan.


Sebagai bilah sisi:

Saya ingat hari-hari ketika teletype bergerak dari 5 bit ke 6 bit (DTE awal 1960-an) tepat pada saat RS-232 dibuat pada tahun 1960, karena ayah saya memiliki teletype yang duduk di rumah di ruang kantor rumah. Komunikasi enam bit RS-232 benar-benar ada untuk jangka waktu tertentu.

Pengkodean ASCII secara luas digunakan pada akhir 1960-an dan awal 1970-an dan merupakan pengkodean 7-bit. Itu sangat umum untuk komunikasi data RS-232 untuk menggunakan 7 bit data.

Kemudian, ketika IC komunikasi dan mikrokontroler mulai digunakan secara umum dan ukuran register 8-bit banyak tersedia, RS-232 sering diperluas untuk mengirim / menerima 8 bit sekaligus.

Saya pikir kebanyakan orang saat ini hanya mengharapkannya digunakan untuk komunikasi 8-bit. Tapi itu tidak selalu terjadi.

jonk
sumber
Saya pikir data juga bisa dua byte 0x98 0xE6 pada 19.200, dipecah menjadi s00011001Ss01100111S [s = start S = stop]. Beberapa karakter seperti "A" [0x41] menghasilkan pola bit yang tidak dapat dibuat oleh baud rate lainnya (kemungkinan mengapa Hayes memilih "A" sebagai karakter pertama untuk urutan pelatihan autobaud) tetapi pola di atas akan mewakili dua- yang valid. urutan byte pada 19.200 baud.
supercat
Saya dulu bangga menjadi pemilik mesin printer teletype mekanis. Itu sepenuhnya mekanis dan berlari pada 60baud. Yah sepenuhnya mekanik jika Anda tidak menghitung solenoida dan motor sinkron. Bit mulai melepaskan kopling dan roda pemilih mulai berputar dan hal-hal terjadi secara berurutan di sana setelah memposisikan print head dan menembakkan palu. Itu sangat keren untuk ditonton. Harus meninggalkannya di Inggris ketika saya datang ke Kanada. Itu agak terlalu berat untuk dikirim.
Trevor_G
Cukup yakin itulah salah satu alasan utama rs232 memiliki voltase dan arus drive yang ekstrem. Tidak ada di antara keduanya, hanya kabel RS232 -> solenoid.
Trevor_G
@supercat Ya. Itu bisa dibagi dalam waktu, juga. Variasi ini mulai sampai pada titik di mana buku diperlukan. Tapi poin Anda tentu diambil.
Jonk
1
@ Trevor Saya tidak pernah memiliki satu, tetapi saya sering menggunakan KSR-35 (mesin berbasis cam mekanis yang sangat mengesankan) dan kemudian, ASR-33 / KSR-33 unit yang jauh lebih murah. Yang ayah saya miliki di rumah kami (sebelum dia meninggal dalam kecelakaan lalu lintas) bukan salah satunya, tetapi merupakan perangkat kode 6-bit sebelumnya yang ukurannya serupa dengan ASR-33.
jonk
0

Jika ini untuk mikrokontroler, tidak mungkin untuk menentukan baud rate dari osilatornya tetapi kristal 8MHz pasti dapat membuat 9600 baud.

Dapatkah Anda mengukur dan memberi tahu saya waktu yang tepat dari rendah pertama ke tinggi terakhir? - Ruang pertama terlihat sedikit aneh bagi saya. Menurut saya Anda menggunakan pemicu, dapatkah Anda memindahkannya sedikit lebih tinggi karena jika itu adalah pemicu tepi dan duduk di puncak, osiloskop mungkin akan mengalami kesulitan memicu.

Bilal
sumber
Jika Anda mengambil sampel sinyal dan mengukur lebar terkecil yang ditemui, itu sepele untuk menghitung laju. Cepat atau lambat bit awal harus diikuti oleh '1'.
mckenzm
0

Menentukan baud rate dari jejak lingkup kadang-kadang tetapi tidak selalu memungkinkan.

Baud rate adalah kebalikan dari periode bit tetapi sinyal dapat tetap dalam keadaan yang sama untuk banyak periode bit sehingga Anda tidak dapat selalu menentukan periode bit dari jejak lingkup.

Dengan asumsi data 8 bit dan tanpa paritas bentuk gelombang Anda dapat mewakili satu byte dengan periode bit ~ 100ns tetapi juga bisa mewakili dua byte dengan periode bit sekitar 50ns.

Peter Green
sumber