Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Transmisja szeregowa rx/tx przez tcp/ip: Moduły i metody dla Arduino/Raspberry

28 Sep 2021 18:26 1560 16
  • #1
    Anonymous
    Level 1  
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • #4
    stachu_l
    Level 35  
    Erbit wrote:
    w jaki sposób można by przesłać komunikację szeregową tx/rx

    A co to to jest transmisja rx/tx? Czy podejście do lasera 1GbEthernet to jest rx/tx? - faktycznie ma dwie pary różnicowe nadające i odbierające 1.25G symboli na sekundę. Symbole powstają przez pewne kodowanie ze strumienia 1G bitów/s.
    Czy chodzi o cos standardowego jak RS232/UART?
    Sam scoket jest pojęciem typowo programistycznym - to generalnie UNIX'o pochodny (więc także Linux) sposób obsługi połączeń TCP/IP.
    Jak masz w danym systemie wsparcie socket'ow to otwierasz np sesje TCP (podając adresy IP i porty) i możesz normalnie pisać i czytać taki socket podobnie jak pliki czy inne strumienie. Od konfiguracji połączenia zależy czy każdy zapis wysyła ramkę czy czeka na więcej danych przez pewien czas.
    Jeżeli od strony rx/tx jest UART to w najprostszym wypadku główna część programu to będzie pętla która czyta z UART i pisze na socket a następnie czyta z socket i pisze na UART. Można zrobić dwa watki (ładniejsze rozwiązanie) - jeden z UART do socket a drugi z socket do UART.
    Spróbuj poszukać czegoś takiego jak UART extender, UART over TCP/IP, remote UART.
    Kiedyś były takie konsole po IP - miałeś wiele urządzeń z RS232 podłączone do skrzynki która miała ethernet i własny adres IP. Na ten adres z komputera otwierałeś sesje TCP na port odpowiadający kabelkowi RS232 i miałeś zdalna konsole urządzenia.

    Jeżeli to rx/tx to nie jest UART to pewno trudniej cos takiego zlokalizować.
  • Helpful post
    #5
    khoam
    Level 42  
    Erbit wrote:
    Docelowo: chciałbym "przeciąć kable" rx/tx, podłączy je do "mostu tcp/ip" podłączonego np. poprzez switcha i uruchomić komunikację.

    TCP/IP po kablu czy WiFi? ;)
  • Helpful post
    #7
    ex-or
    Level 28  
    Dwa linux boxy (np. na Rpi albo innej słabiźnie) na końcach "przeciętego kabla rx/tx" + socat + ewentulanie opcjonalnie ser2net. Jedno z rozwiązań, niekoniecznie optymalne.
  • #9
    Anonymous
    Level 1  
  • #10
    khoam
    Level 42  
    Erbit wrote:
    sądzę, że Arduino (a dokładniej Atmega lub inny mikrokontroler) jest w zasięgu mojego pojmowania materii

    Jest takie jedno (bardzo) proste rozwiązanie arduinowe dla AVR, ArduinoSerialToEthernet - Link. Trzeba byłoby trochę poprzerabiać ten soft dla konkretnego zastosowania, które Cię interesuje.
    Moim zdaniem osadzanie takiego softu na AVR jest nieco słabe: jest problem z buforowaniem pakietów sieciowych ze względu na małe RAM.

    Są też gotowe moduły konwerterów Serial-Ethernet (z wbudowaną obsługą stosu TCP/IP) na ali w cenie ok. 12-15$ :)
  • #12
    excray
    Level 40  
    To zależy jakie masz oczekiwania. Poszukujesz jakiegoś bardziej profesjonalnego modułu, czy cokolwiek aby wysłać dane? Jeśli coś bardziej gotowego i sprawdzonego, to np. WIZ110SR:
    https://www.tme.eu/pl/details/wiz110sr/moduly-ethernet/wiznet/
    Tani, sprawdzony, niezawodny, prosty w konfiguracji. U chińczyków znajdziesz jeszcze tańsze gotowe moduły. Jeśli to ma być częścią jakiegoś własnego modułu, to też mogę polecić: Moxę MiiNe:
    https://www.moxa.com/en/products/industrial-edge-connectivity/serial-device-servers/serial-embedded-modules/miineport-e1-series
    Prosta, przyjemna, ale już nie najtańsza. Sam obu modułów używam. Jeśli zaś chcesz mieć coś "taniej niż najtaniej", niekoniecznie 100% niezawodne, to już koledzy podrzucili takie koncepcje.
  • #13
    JacekCz
    Level 40  
    stachu_l wrote:
    A co to to jest transmisja rx/tx? Czy podejście do lasera 1GbEthernet to jest rx/tx? - faktycznie ma dwie pary różnicowe nadające i odbierające 1.25G symboli na sekundę. Symbole powstają przez pewne kodowanie ze strumienia 1G bitów/s.
    Czy chodzi o cos standardowego jak RS232/UART?
    Sam scoket jest pojęciem typowo programistycznym - to generalnie UNIX'o pochodny (więc także Linux) sposób obsługi połączeń TCP/IP.


    Dobrze mówi, nalać wódki.

    Zdecydowanie w wątku brakuje skierowania myślenia na warstwy.
    Powszechnie uznawanym teoretycznym podkładem jest Model OSI/ISO, choć nie jest idealny (np realne sieci maja zwykle w praktyce mniej warstw), ale jakoś tzreba sobie w głowie porządkować.
    https://pl.wikipedia.org/wiki/Model_OSI

    I nagle BUM, się okazuje, że rozmowa się zaczyna od bardzo wysokiej wartswty (nie jest to jasno w watku powiedziane, aplikacji ???), a kończy się na drugiej i chipie-driverze
  • #14
    viayner
    Level 43  
    Witam,
    Używamy w firmie wiele produktów z serii Moxa Nport 5xxx. Oferują one różne produkty zależne od potrzeb i spełniające twoje wymagania. Od prostych do bardzo zaawansowanych. Każdy można programować/konfigurować.
    Pozdrawiam
  • Helpful post
    #16
    adam74m
    Level 12  
    Program socat, rozwiązanie dla linuksa:
    Klinet:
    sudo socat pty,link=/dev/ttyO1,raw tcp:192.168.1.100:4161
    Serwer:
    socat TCP-LISTEN:4161,fork,reuseaddr FILE:/dev/ttyO1,raw
    Port przykładowy, serwer uruchomiony na 192.168.1.100.
  • #17
    Anonymous
    Level 1