Strony

wtorek, 11 kwietnia 2017

RS232 od podstaw - hardware


Witam,

Nadszedł czas w którym przyszło mi rozprawić się z podstawami, z teorią działania RS232. Muszę opowiedzieć swoimi słowami jak to działa tak na najniższym poziomie. Co to jest ramka rs232, z czego ona się składa, jak wygląda, co zawiera itd. W końcu jak ona jest przesyłana a także w jaki sposób są przesyłane dane za pomocą tychże ramek. Niestety nie udało mi się zawrzeć tych informacji w mojej niebieskiej książce, ale uznałem że dobrym miejscem aby coś na ten temat opowiedzieć będzie poradnik wideo. Pomyślałem, że stworzę dwa takie poradniki na temat PODSTAW. Jeden dotyczyć będzie teorii czyli zasady działania, ramek, bitów itp, to właśnie ta część. W drugiej zaś precyzyjnie omówię w jaki sposób można sobie testować takie połączenia w absolutnie podstawowy sposób od strony programowej i za pomocą mikrokonbtrolerów AVR w języku C. W takim razie zaczynamy ;)




oto film:


;)

25 komentarzy:

  1. No i super, na pewno niejedna osoba na tym skorzysta!

    OdpowiedzUsuń
  2. Nie mogę zrozumieć tego przypadku gdy układ FT232RL działa jako programator. Skoro programator AVR, przykładowo USBASP musi być zaprogramowany. To w takim razie jak ten układ działa jak programator skoro nie jest programowany. Czy wtedy kod programatora jest wykonywany po stronie komputera, a dalej przechodzą tylko sygnały? Odchodząc od pytania, świetnie opisany standard dla początkujących oraz filmik wykonany jakościowo.

    OdpowiedzUsuń
    Odpowiedzi
    1. Ale w tym wypadku nie ma żadnego wgrywania wsadu bo tu nie ma mikrokontrolera jak w USBASP. Pomimo to ten przyjemny scalaczek może być wykorzystywany jako programator dla procków AVR (poza maluchami ATTiny z magistralą TPI) ... i ślicznie obsługuje to MkAvrCalculator.

      Usuń
  3. Czyli wtedy AVRDUDE pełni rolę programatora?

    OdpowiedzUsuń
    Odpowiedzi
    1. hmmm no ale zobacz avrdude zawsze występuje - trudno powiedzieć, że pełni ono rolę programatora. Bo w przypadku USBASP to jaką rolę pełni wg ciebie? ;) ... W przypadku FT232R wykorzystywany jest tzw mechanizm "bit-bang" za pomocą którego to właśnie linie tego scalaka potrafią robić to samo co procek ATmega wbudowany w USBASP. Aczkolwiek jak dobrze się spodziewasz sam program AVRDUDE musi też ten proces jakoś dodatkowo wspomagać i tak się dzieje. Nadmienię, że to żadna nowość i tego typu programatory używane były już od bardzo dawna w naszych nawet najstarszych zestawach ATB - jako wbudowane programatory.

      Usuń
  4. Tutaj kolega trochę miał rację, bo przy FT232R avrdude to tak na prawdę robi trochę za "programator" :).
    Przy USBasp cała logika i timing ISP zrzucony jest na procesor i on dba o wszystko. A przy FT232R to wszystko odbywa się programowo w module w avrdude a FT232 to tylko fizyczne wystawianie odpowiednich sygnałów na żądanie avrdude.
    Nie wiem czy pamiętacie, ale dawniej takie programatory robiło się na złączu LPT (drukarkowe). Miało ono dużo linii i można było nimi sobie łatwo sterować. Teraz korzystając z FT232R w trybie bit-bang mamy taką małą namiastkę sterowania po LPT.

    OdpowiedzUsuń
    Odpowiedzi
    1. Ale jakie to ma znaczenie ? ;) dla mnie żadne i nawet nie będę polemizował na ten temat .... bo bez urazy ale nie ma sensu. Co to zmienia ? ;)

      Usuń
    2. Co to zmienia?
      Stan wiedzy u odbiorcy.

      Usuń
  5. Bez obrazy. Coś co ma znaczenie dla kogoś nie koniecznie będzie miało dla Pana. Często właśnie takie "drobiazki" są najważniejsze dla zrozumienia. Musi Pan wziąć pod uwagę że niektórzy zwracają uwagę na szczegóły.

    OdpowiedzUsuń
    Odpowiedzi
    1. ale ja się ani nie obrażam ani mam nadzieję nie obrażam nikogo ;) najlepiej jak umiem i najspokojniej wyjaśniam. Ot wszystko. A dyskusję czy avrdude jest programatorem czy nie jest o tyle uważam za bezcelową bo jeszcze raz powiem z technicznego punktu widzenia - nie ma to KOMPLETNIE żadnego znaczenia. AVRDUDE w przypadku wielu programatorów sprzętowych zachowywać się musi bardzo różnie ;) i próba dowodzenia że jakimś przypadku bardziej jest programatorem a w innym mniej .... ? No jaki sens? Takie jest moje zdanie i ja go nie zmienię. Ale jeśli ktoś woli to oczywiście może sobie to tłumaczyć na swój sposób i dobrze - jeśli tak mu wygodniej? czemu nie ? ... po co się zaraz kłócić kto ma rację a kto nie przy takim drobiazgu no panie kochany - pomyśl pan sam ;)

      Usuń
  6. Tak zgadzam się z Panem całkowicie. Fajnie jednak wiedzieć takie ciekawostki.

    OdpowiedzUsuń
    Odpowiedzi
    1. Ja też się z kolegą zgodzę. Może nie ma to technicznego znaczenia, ale jest taką informacją dla dociekliwych. Dzięki czemu można w przyszłości łatwiej zrozumieć różne rzeczy i łatwiej samemu znaleźć rozwiązanie problemu.

      Choć mimo że przytaknąłem że avrdude jest częściowo programatorem na przekór odpowiedzi Mirka, to moja pierwsza nasuwająca się mi odpowiedź była że nie ;) Bo przecież programator to hardware a nie software.
      Tak już kończąc ten temat. Moduł w avrdude do FT232R ma zaimplementowany w pełni protokół ISP, włącznie z zachowaniem timingu, dzięki czemu wystarczy "głupi" układ przenoszący tylko stany linii. Za to moduł do usbasp komunikuje się własnym protokołem z usbasp a programator już dba o zgodność z wymaganiami ISP.

      Usuń
  7. Jak to jest z niektórymi konwerterami USB RS232 które pracują na napięciu 5V, z wtyczką DB9.

    OdpowiedzUsuń
    Odpowiedzi
    1. Właśnie zapomniałem o tym wspomnieć, chociaż .... po części to mówiłem .... otóż TYLKO CHIŃSCY ludzie z ChRL potrafią wpadać na takie pomysły, że robią takie przejściówki USB/RS232, które mają złącze DB9 a tymczasem na pinach jest standard napięciowy TTL !!! Już TYLE osób i firm się na tym przejechało że aż strach. Nie dość , że jak widzisz taką przejściówkę gdzieś do kupienia np na allegro - to teraz masz prawdziwego TOTO-LOTKA. Albo jak kupisz to będzie standard napięciowy RS232 albo TTL albo .... !!! (o zgrozo bo i takie widziałem) ... albo 3.3V a na opakowaniu masz napisane USB/RS232 !!! Masakra. I to jedni Chińczycy robią tak inni inaczej - zupełna wolna chińska amerykanka. A co jeszcze lepiej - najczęściej biedny sprzedawca na allegro też nawet nie ma pojęcia w jakim standardzie będzie ta przejściówka którą sprzedaje bo on się na tym nie zna. I dlatego na końcu mówiłem o zainwestowaniu w PORZĄDNĄ przejściówkę bo warto ;)

      Usuń
  8. Może w Chinach mają inne standardy hahahaha

    OdpowiedzUsuń
    Odpowiedzi
    1. hahaha no mają mają i zapewniam, że nie tylko w tej dziedzinie ... co prowincja Chin to własny standard :D

      Usuń
  9. Na szczęście takie przejściówki poprawnie trawią na wejściu pełne napięcia standardu RS232 i się nie palą :). A większość wejść RS232 poprawnie pracuje już przy logice 0-5V.
    Dlatego można długo nie wiedzieć, że ma się trafną przejściówkę.
    Też tak jakiś czas temu miałem. Co się na kląłem na urządzenie które wysłało poprawnie dane a nie odbierało. Dopiero jak wszystko zawiodło miernik powiedział prawdę o przejściówce.Ale co chcieć od przejściówki za poniżej 5 złotych.

    OdpowiedzUsuń
    Odpowiedzi
    1. No a o czym ja niby mówiłem w poradniku ? ;) gdy mówiłem o tym, że napięcie ujemne ściągane jest diodami w procku do GND zaś napięcie powyżej 5V ściągane jest do 5V. To nadal nie oznacza że pracują z taką logiką, a szczególnie jak mówisz że poprawnie pracują ;) ... Panie kochany NIEPOPRAWNIE wtedy pracują bo to że się "nie palą" nie oznacza że mają odwróconą logikę i brak poprawnej transmisji - ale o tym DOKŁADNIE mówiłem przecież w poradniku ;)

      Usuń
  10. To jak jest z tymi bodami, bo jakoś nie jest to jasno dla mnie wytłumaczone. Może coś wiesz na temat podawania prędkości Internetu przez ISP, czy podając prędkość np. 1 Mbit/s oznacza, że w tej prędkości są uwzględnione wszystkie bity (start, stop) czy tylko 8 bitów danych?

    OdpowiedzUsuń
    Odpowiedzi
    1. ;) to nie ma NIC panie kochany wspólnego z RS232 ;) 1 Mbit/s oznacza tak jak mówią jednostki - nic innego - czyli 1 Megabit na sekundę

      Usuń
  11. 1Mbit/s to jest 1 Miroko bit na sekundę

    OdpowiedzUsuń
    Odpowiedzi
    1. tak taki miroko - to pewnie jakaś chińska jednostka albo może kosmiczna co ? ;) Napisałem wyżej co to jest więc proszę nie wymyślaj i to aż takich dziwolągów ok ? ;)

      Usuń
  12. Kiedy 2 część?

    OdpowiedzUsuń
  13. raczej 1 Mirek na sekundę

    OdpowiedzUsuń