eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaJak zacząć ENC28J60 i STM32F103RBT6 ? › Re: Jak zacząć ENC28J60 i STM32F103RBT6 ?
  • Data: 2014-11-01 09:15:32
    Temat: Re: Jak zacząć ENC28J60 i STM32F103RBT6 ?
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 2014-10-30 13:05, pytajacy pisze:

    > Ale chciałem podłączyć jeszcze jakiś interfejs ETHERNET i pomyślałem
    > że układ z ENC28J60 będzie dobry bo łatwo podłącze do tej płytki.

    W gruncie rzeczy od strony programowej potrzebujesz dwóch rzeczy, żeby
    komunikować się ze światem za pomocą ENC28J60:
    1) Drivera, czyli zbioru niskopoziomowych procedur, które są
    odpowiedzialne za odczytywanie/zapisywanie informacji z/do rejestrów i
    buforów układu za pośrednictwem magistrali SPI. Kod drivera jest rzecz
    jasna specyficzny dla konkretnej rodziny procesorów (a w pewnym zakresie
    także do konkretnego modelu). Musisz znaleźć driver przygotowany dla
    twojego procesora, bądź też przygotować go samodzielnie, np. modyfikując
    kod napisany pod jakąś inną rodzinę.
    2) Stosu TCP/IP. Ta część odpowiada za przetwarzanie informacji
    pobranych z lub wysyłanych do bufora ENC28J60. Kod sprawdza z jakim
    typem pakietu mamy do czynienia (ARP, ICMP, TCP, UDP) i podejmuje
    odpowiednie akcje - ustawia odpowiedni adres IP, odpowiada na ping, albo
    udostępnia nam otrzymaną wiadomość. To samo w drugą stronę. Ta część
    jest bardziej uniwersalna i mniej zależna od platformy, co nie znaczy
    wcale, że z miejsca się skompiluje - być może trzeba będzie się pozbyć
    elementów typowych dla określonej rodziny, jak np. PROGMEM w AVR-ach.

    Generalnie masz kilka różnych stosów do wyboru, miedzy innymi:
    1) Tuxgraphics.org - przygotowany pod AVR-y, ale pewnie bez problemu
    będzie się dało go przeportować pod STM-y (może ktoś już to zresztą
    zrobił). Gdy idzie o przesyłanie małych ilości danych, jest bardzo
    prosty w obsłudze, nie zużywa dużych zasobów, dlatego też świetnie
    sprawdza się na małych MCU. Te zalety mają jednak swoją cenę - cały
    komunikat musi się mieścić w jednej ramce Ethernetowej, nie można też
    utrzymać trwającej sesji TCP, więc nie da się na tym zrealizować np.
    obsługi telnetu.
    2) uIP - wciąż lekki stos, o nieco większych możliwościach. Istnieją
    wersje pod różne platformy, więc nie powinno być problemów z STM-ami.
    3) lwIP - cięższy stos, wymagający większych zasobów sprzętowych. Z tego
    powodu nie bardzo nadaje się do stosowania z ośmiobitowymi MCU, ale
    doskonale pasuje do STM32. Z tego co czytałem, to trzeba poświęcić
    dłuższą chwilę na jego opanowanie. Od strony programistycznej obsługa
    zbliżona do połączeń sieciowych na "dużych" komputerach.

    Jest też całkiem rozbudowany i funkcjonalny stos od Mircochipa, ale on
    działa tylko na PIC-ach, a licencja z tego co wiem zakazuje portowania
    na inne platformy.


    > Ale wyczytałem że jest jeszcze coś takiego jak W5100/W5500 - tylko
    > że droższy.

    W5500 jest w praktycznie tej samej cenie co ENC28J60 (mam tu na myśli
    oczywiście sam układ, a nie całe moduły, bo tu faktycznie może być różnie).

    Układy Wiznetu to trochę inna szkoła niż to, co opisałem powyżej. Tam
    układ zajmuje się całą komunikacją, więc twój MCU nie musi dźwigać
    ciężaru przetwarzania poszczególnych warstw stosu. Rejestry i bufory
    wewnątrz zorganizowane są w sposób przypominający typowe sockety POSIX,
    a ty jedynie musisz zapisywać i odczytywać z nich/do nich dane i
    metadane. W paru miejscach trzeba też podejmować odpowiednie decyzje, w
    zależności np. od statusu połączenia.
    To chyba najprostszy sposób realizacji komunikacji sieciowej. Zwłaszcza,
    jeśli znajdziesz dobrą i dopracowaną bibliotekę.

    Oczywiście są jeszcze inne rozwiązania. Ostatnio coraz większą
    popularnością cieszą się moduły WiFi, ze śmiesznie tanim ESP8266 na
    czele. Dane przez Internet możesz też przesyłać za pośrednictwem modułów
    GSM, np. SIM900 - dobre rozwiązanie, gdy w pobliżu nie masz żadnej
    końcówki sieci lokalnej. Sam myślę o zrobieniu na tym systemu nadzoru
    nad działką. ;)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: