TX çıkış sinyalinden RS232 iletişiminin baud hızını hesaplayabilir miyiz?


10

X çıkış sinyalinden RS232 iletişiminin baud hızını veya iletişim hızını hesaplayabilir miyiz ?

Aşağıdaki görüntü bir RS232 iletişim çıkış sinyalinden alınmıştır. Bu resmi 0xaa ile çektim ve yüksekler arasındaki süre 100.us.

Harici osilatörün frekansının 8MHz olduğunu duydum. Bundan baud hızını hesaplayabilir miyiz?

RS232 sinyalini gösteren osiloskop izi


9
Bence bir enerji verimliliği bunu bilmeli F=1/T.
Eugene Sh.

2
Ben bu yapılandırma kolaylaştırmak için veri bilgisi olmadan baud hızı tespit hakkında bir soru bekliyordum, ama bu? @EugeneSh. doğru olmaktan daha fazlasıdır - elektronikle çalışırken frekans tanımının temel bilgidir.
NieDzejkob

1
İpucu: Eğer böyle bir şey ile karışık ise, geliştirme makine size gördüğünüzü düşündüğünüz için en iyi tahmininizi göndermek ve bakın ne yapmak o karşılaştırıldığında kapsamına gibi görünüyor. Eğer yanlışsa, onları daha da yaklaştırmak için tahmininizi geliştirin.
Chris Stratton

Sigrok açık kaynak, değil mi? İnsanlar "tahmin sıklığı" nın nasıl çalıştığını düşünüyor?
mckenzm

Yanıtlar:


21

250 µs olan bölünme başına yaklaşık 2,4 bit süreniz var gibi görünüyor. Bu her bit zamanını 104 µs'ye getirir. 9.6 kBaud veren ters çevirme. Bu standart baud hızlarından biri, bu yüzden oldukça makul görünüyor.


12

Kapsamınız zamanlamayı gösterir100μs


8MHz

Başka düşünceler:

  1. 100μs±2%
  2. 3.5V
  3. Bu sinyal MARK için bir HI kullanır (RS-232'de, bir MARK negatif bir voltajdır), bu yüzden bu RS-232 sinyali değil mikrodan mantık seviyesi çıkışı olmalıdır.

Gerekli BAŞLAT bitini ve minimum bir bitlik DURDURMAYI götürürseniz, bu , veriler için muhtemelen en az yedi kalan bit süresi olduğu anlamına gelir :

resim açıklamasını buraya girin

Yukarıda dikkat edersem, endianness ne olursa olsun 0x2A olarak yorumlanır.

Ancak, bu sekiz veri biti için grafik olacaktır:

resim açıklamasını buraya girin

Bu durumda yorum, akışın endian doğasına bağlı olarak 0xAA veya başka bir 0x55 olacaktır. Yani bu 0xAA'nızı temsil edebilir (daha yaygın olduğuna inandığım küçük endian).

Gördüğünüz gibi, verici ve alıcı, veri bitlerinin sayısı ve bunların endian doğası hakkında önceden görüş birliğine varmalıdır.

Kapsam sonuçları daha uzun seri kelime boyutları olarak yorumlanabilir. Onları daha önce görmüştüm (9, en yaygın olarak, bazı IC'lerin desteklediği gibi, ancak daha önce 10 tane kullanıldığını bile gördüm.)

Anlaşma olmadan, emin olmak zor.


Kenar çubuğu olarak:

Babamın evde bir ev ofisinde böyle bir teletipe sahip olduğu için, teletiplerin RS-232'nin 1960'da oluşturulduğu anda 5 bitten 6 bite (1960'ların başında DTE) hareket ettiği günleri hatırlıyorum. Bir süredir altı bit RS-232 iletişimi mevcuttu.

ASCII kodlaması 1960'ların sonunda ve 1970'lerin başında yaygın olarak kullanıldı ve 7 bitlik bir kodlama. RS-232 veri iletişiminde 7 bit veri kullanılması çok yaygındı.

Daha sonra, iletişim IC'leri ve mikrodenetleyiciler yaygın olarak kullanıldıkça ve 8 bitlik kayıt boyutları bol miktarda bulunduğundan, RS-232 genellikle bir seferde 8 bit iletmek / almak için genişletildi.

Bence günümüzde çoğu insan 8-bit iletişim için kullanılmasını bekliyor. Ancak durum her zaman böyle değildi.


Verilerin s20011001Ss01100111S [s = start S = stop] olarak ayrılmış 19.200'de iki bayt 0x98 0xE6 olabileceğini düşünüyorum. "A" [0x41] gibi bazı karakterler, başka bir baud hızı tarafından oluşturulamayan bit kalıpları oluşturur (muhtemelen Hayes'in otomatik baud-eğitim sırası için ilk karakter olarak "A" yı seçmesi gerekir), ancak yukarıdaki kalıp geçerli bir 19.200 baud'da bayt dizisi.
supercat

Mekanik bir teletype yazıcı makinesinin gururlu sahibiydim. Tamamen mekanikti ve 60baud'da koştu. Solenoidleri ve senkron bir motoru saymazsanız tamamen mekanik. Başlangıç ​​biti bir debriyaj bıraktı ve bir seçici tekerlek dönmeye başladı ve baskı kafasını konumlandırıp çekiç ateşledikten sonra sırayla bir şeyler oldu. İzlemek çok güzeldi. Ben Kanada'ya geldiğimde İngiltere'de geride bırakmak zorunda kaldı. Göndermek için çok ağırdı.
Trevor_G

Oldukça emin rs232 böyle aşırı sürücü gerilimleri ve akımları olsa ana nedenlerinden biridir. Arada hiçbir şey yoktu, sadece RS232 kablosu -> solenoid.
Trevor_G

@supercat Evet. Zaman içinde de bölünebilir. Ancak bu varyasyonlar bir kitabın gerekli olduğu noktaya gelmeye başlıyor. Ama kesinlikle bu konuda bir fikriniz var.
jonk

1
@Trevor Hiç birine sahip olmadım, ancak KSR-35'i (çok etkileyici bir mekanik kam tabanlı makine) ve daha sonra çok daha ucuz ASR-33 / KSR-33 ünitelerini sık sık kullanıyordum. Babamın evimizde geçirdiği (trafik kazasında ölmeden önce) bunlardan herhangi biri değildi, ancak ASR-33'e benzer büyüklükte 6 bitlik bir kod cihazıydı.
jonk

0

Bu bir mikrodenetleyici içinse, baud hızını osilatöründen belirlemek mümkün değildir, ancak 8MHz bir kristal kesinlikle 9600 baud oluşturabilir.

İlk alçaktan son yüksekliğe kadar olan tam zamanı ölçebilir ve söyleyebilir misiniz? - İlk alan bana biraz bakýyor. Bana göre bir tetikleyici kullanıyorsunuz, biraz daha yükseğe hareket ettirebilir misiniz, çünkü bir kenar tetikleyici ise ve zirvelerin üzerinde oturuyorsanız, osiloskop muhtemelen tetikleme konusunda sorun yaşayacaktır.


Sinyali örnekliyor ve karşılaşılan en küçük genişliği ölçüyorsanız, hızı hesaplamak önemsizdir. Er ya da geç bir başlangıç ​​bitini bir '1' izlemelidir.
mckenzm

0

Bir kapsam izinden baud hızının belirlenmesi bazen ancak her zaman mümkün olmayabilir.

Baud hızı, bit periyodunun tersidir, ancak sinyal birçok bit periyodu için aynı durumda kalabilir, böylece bit izini kapsam izinden her zaman kesin olarak belirleyemezsiniz.

8 bit veri ve parite olmadığı varsayıldığında, dalga formunuz ~ 100ns bit periyoduna sahip tek bir baytı temsil edebilir, ancak yaklaşık 50ns bit periyoduna sahip iki baytı da temsil edebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.