Czy możemy obliczyć szybkość transmisji komunikacji RS232 z sygnału wyjściowego TX?


10

Czy możemy obliczyć szybkość transmisji lub prędkość komunikacji RS232 na podstawie sygnału wyjściowego X?

Poniższy obraz pochodzi z wyjściowego sygnału komunikacyjnego RS232. Zrobiłem to zdjęcie z 0xaa, a okres między wzlotami wynosi 100.us.

Słyszałem, że częstotliwość zewnętrznego oscylatora wynosi 8 MHz. Czy możemy z tego obliczyć szybkość transmisji?

Ślad oscyloskopu pokazujący sygnał RS232


9
Myślę, że EE powinna to wiedzieć F=1/T.
Eugene Sh.

2
Spodziewałem się, że będzie to pytanie o wykrycie prędkości transmisji bez znajomości danych, aby ułatwić konfigurację, ale to? @EugeneSh. jest więcej niż słuszne - znajomość definicji częstotliwości jest podstawową wiedzą podczas pracy z elektroniką.
NieDzejkob

1
Wskazówka: jeśli coś Cię tak pomyli, spraw, aby twoja maszyna deweloperska wysłała jak najlepsze przypuszczenia, co widzisz, i zobacz, jak to wygląda w porównaniu z lunetą. Jeśli nie, popraw swoje przypuszczenia, aby zbliżyć je do siebie.
Chris Stratton,

Sigrok jest open source, prawda? Jak ludzie myślą, że działa funkcja „zgaduj częstotliwość”?
mckenzm

Odpowiedzi:


21

Wygląda na to, że masz około 2,4 bitów razy na podziałkę, czyli 250 µs. To oznacza, że ​​za każdym razem bit wynosi 104 µs. Odwracanie daje 9,6 kBaud. To jedna ze standardowych szybkości transmisji, więc brzmi to całkiem prawdopodobne.


12

100μs


8MHz

Kilka innych myśli:

  1. 100μs±2)%
  2. 3.5V.
  3. Ten sygnał wykorzystuje HI dla MARK (w RS-232, MARK jest napięciem ujemnym), więc musi to być poziom wyjściowy na poziomie logicznym z sygnalizacji mikro, a nie RS-232.

Jeśli zabierzesz wymagany bit START i minimalny STOP jednok bitowy STOP, oznacza to, że prawdopodobnie jest co najmniej pozostało siedem bitów dla danych:

wprowadź opis zdjęcia tutaj

Powyższe byłoby interpretowane jako 0x2A niezależnie od endianizmu, jeśli zwracam uwagę.

Byłby to jednak wykres dla ośmiu bitów danych:

wprowadź opis zdjęcia tutaj

W takim przypadku interpretacja będzie wynosić 0xAA lub 0x55, w zależności od endianowej natury strumienia. To może reprezentować twój 0xAA (mały endian, który moim zdaniem jest bardziej powszechny).

Jak widać, nadajnik i odbiornik muszą z góry uzgodnić liczbę bitów danych i ich charakter endianowy.

Wyniki zakresu można interpretować jako jeszcze dłuższe rozmiary słów seryjnych. Widziałem je wcześniej (9, najczęściej, ponieważ niektóre układy scalone używały go do obsługi, ale widziałem nawet 10 używanych wcześniej).

Bez porozumienia trudno być pewnym.


Jako pasek boczny:

Pamiętam czasy, w których teletypy przesuwały się z 5 bitów na 6 bitów (DTE na początku lat 60.) w momencie tworzenia RS-232 w 1960 r., Ponieważ mój tata miał taki typ teletechniczny siedząc w domu w domowym biurze. Przez pewien czas istniała sześciobitowa komunikacja RS-232.

Kodowanie ASCII było szeroko stosowane na przełomie lat 60. i 70. i jest kodowaniem 7-bitowym. W komunikacji danych RS-232 bardzo często wykorzystywano 7 bitów danych.

Później, gdy układy scalone i mikrokontrolery komunikacyjne stały się powszechnie używane, a rozmiary rejestrów 8-bitowych były szeroko dostępne, RS-232 często rozszerzano tak, aby nadawał / odbierał 8 bitów na raz.

Myślę, że większość ludzi dzisiaj oczekuje, że będzie on używany do komunikacji 8-bitowej. Ale nie zawsze tak było.


Myślę, że dane mogą być również dwoma bajtami 0x98 0xE6 przy 19,200, w podziale na s00011001Ss01100111S [s = start S = stop]. Niektóre znaki, takie jak „A” [0x41], generują wzorce bitów, których nie można utworzyć za pomocą innej prędkości transmisji (prawdopodobnie dlatego, że Hayes wybrał „A” jako pierwszy znak w sekwencji treningu autoobaud), ale powyższy wzorzec reprezentowałby prawidłowe dwa- sekwencja bajtów przy 19 200 bodów.
supercat

Byłem dumnym posiadaczem mechanicznej maszyny do drukowania teletype. Był całkowicie mechaniczny i pracował z prędkością 60 bodów. Cóż całkowicie mechaniczny, jeśli nie liczymy elektromagnesów i silnika synchronicznego. Bit startowy zwolnił sprzęgło, a koło zmiany biegów zaczęło się obracać, po czym nastąpiły sekwencje, aby ustawić głowicę drukującą i wystrzelić młotek. Tak fajnie było oglądać. Musiałem zostawić to w Wielkiej Brytanii, kiedy przybyłem do Kanady. To było zbyt ciężkie do wysłania.
Trevor_G,

Jestem pewien, że to jeden z głównych powodów, dla których RS232 miał tak ekstremalne napięcia i prądy napędowe. Pomiędzy nie było nic, tylko kabel RS232 -> elektromagnes.
Trevor_G

@supercat Tak. Można go również podzielić na czas. Te odmiany zaczynają jednak dochodzić do punktu, w którym wymagana jest książka. Ale z pewnością masz rację.
jonk

1
@ Trevor Nigdy go nie posiadałem, ale często używałem KSR-35 (bardzo imponująca mechaniczna maszyna na bazie krzywki) i późniejszych, znacznie tańszych jednostek ASR-33 / KSR-33. Ten, który mój tata miał w naszym domu (przed śmiercią w wypadku drogowym), nie był żadnym z nich, ale był wcześniejszym 6-bitowym urządzeniem kodowym podobnym rozmiarem do ASR-33.
jonk

0

Jeśli dotyczy to mikrokontrolera, nie jest możliwe określenie szybkości transmisji z jego oscylatora, ale kryształ 8 MHz z pewnością jest w stanie wytworzyć 9600 bodów.

Czy możesz zmierzyć i powiedzieć mi dokładny czas od pierwszego do najniższego dołka? - Pierwsza przestrzeń wydaje mi się nieco nieprzyjemna. Wydaje mi się, że używasz wyzwalacza, czy możesz przesunąć go nieco wyżej, ponieważ jeśli jest to wyzwalacz krawędziowy i siedzisz na szczytach, oscyloskop prawdopodobnie będzie miał problem z uruchomieniem.


Jeśli próbkujesz sygnał i mierzysz najmniejszą napotkaną szerokość, obliczenie stawki jest banalne. Wcześniej czy później za bitem początkowym musi pojawić się „1”.
mckenzm

0

Określenie szybkości transmisji na podstawie śledzenia zasięgu jest czasem, ale nie zawsze możliwe.

Szybkość transmisji jest odwrotnością okresu bitowego, ale sygnał może pozostać w tym samym stanie przez wiele okresów bitowych, więc nie zawsze można jednoznacznie określić okres bitowy na podstawie śledzenia zasięgu.

Zakładając, że dane 8-bitowe i brak parzystości, przebieg może reprezentować pojedynczy bajt z okresem bitów ~ 100ns, ale może również reprezentować dwa bajty z okresem bitów około 50ns.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.