eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPoczątki z STM32 - Ethernet i kilka innych kwestiiRe: Początki z STM32 - Ethernet i kilka innych kwestii
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed2.plix.pl!goblin1!gobli
    n.stu.neva.ru!news.glorb.com!peer02.iad.highwinds-media.com!news.highwinds-medi
    a.com!feed-me.highwinds-media.com!nx02.iad01.newshosting.com!newshosting.com!ne
    wsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl
    !news.neostrada.pl.POSTED!not-for-mail
    Date: Sat, 17 May 2014 18:37:05 +0200
    From: mk <reverse_lp.pw@myzskm>
    User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Thunderbird/24.5.0
    MIME-Version: 1.0
    Newsgroups: pl.misc.elektronika
    Subject: Re: Początki z STM32 - Ethernet i kilka innych kwestii
    References: <5375e320$0$2378$65785112@news.neostrada.pl>
    In-Reply-To: <5375e320$0$2378$65785112@news.neostrada.pl>
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Lines: 96
    Message-ID: <53779033$0$2357$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: apn-5-60-157-173.dynamic.gprs.plus.pl
    X-Trace: 1400344628 unt-rea-a-01.news.neostrada.pl 2357 5.60.157.173:2122
    X-Complaints-To: a...@n...neostrada.pl
    X-Received-Bytes: 6171
    X-Received-Body-CRC: 2995880977
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:665024
    [ ukryj nagłówki ]

    W dniu 2014-05-16 12:06, Atlantis pisze:
    > Przymierzam się powoli do zrobienia kolejnego kroku w nauce
    > programowania MCU (do tej pory tylko AVR-y) i wypróbowania 32-bitowych
    > układów STM.
    >
    > Mam jednak kilka pytań:
    >
    > 1) Ponieważ w wielu swoich projektach wykorzystuję interfejs Ethernet,
    > chciałbym się dowiedzieć jak to jest realizowane na tej platformie.
    > Przeważnie korzysta się z ENC28J60, tak samo jak na ATmegach, czy może
    > warto zainteresować się układami z wbudowanym kontrolerem? Pytam,
    > ponieważ te które widziałem nie posiadały wbudowanego transceivera i
    > trzeba było dołączyć do nich zewnętrzny układ PHY. Które rozwiązanie
    > zapewnia większą wygodę i wydajność?

    Jeśli krytyczna jest wydajność to nie ma co się zastanawiać:
    mikrokontroler z wbudowanym Ethernetem.
    Wygoda? Rzecz względna, ale faktycznie ENC28J60 pod pewnymi względami
    może być wygodniejsze (np. design PCB).

    > 2) Jaki stos powinienem zastosować? Coś w rodzaju uIP, czy też z uwagi
    > na większe zasoby sprzętowe warto od razu zainteresować się lwIP?

    uIP tylko do najprostszych aplikacji typu wysłanie lub odbieranie
    pojedynczych pakietów UDP, czy też najprostsze połączenia TCP (ale
    naprawdę najprostsze typu po połączeniu wysyłam parę bajtów i rozłączamy
    się).
    Na sensowną wydajność z uIP nie licz przy przesyłaniu danych strumieniem
    TCP. Stos ten nie wyśle żadnego kolejnego pakietu dopóki poprzednik nie
    odbierze ACK poprzedniego pakietu. A druga strona będzie zwlekać z
    wysłaniem pakietu potwierdzenia, ze względu na algorytm Nagle'a.

    lwIP -- jakiś czas temu trenowałem go trochę zarówno na STM32 jak i
    Luminary Micro.
    Wrażenia mieszane: z jednej strony widać że w ten projekt włożono dużo
    pracy, wiele parametrów podlega konfiguracji, możliwość wyrzucania
    komunikatów diagnostycznych, widać że ma potencjał co do wydajności i
    wierzę, że w odpowiednich rękach ten stos może dawać stabilne rozwiązania.
    Z drugiej strony skąpa dokumentacja, kod źródłowy ze względu na mnogość
    opcji nie jest łatwy w analizie, a miejscami po prostu paskudny i trudny
    do debugowania (zwłaszcza realizacja generyczności kodu przez "#define,
    #include, #undefine, #define, #include, #undefine, ...").

    lwIP to taka machina z wieloma gałkami, pokrętłami i z modułami które
    można podmieniać, ale nie w każdej konfiguracji stabilnie działa. Raczej
    dla bardzo cierpliwego użytkownika, który nie boi się, a wręcz lubi
    pogrzebać w bebechach swojej maszyny.

    lwIP również warto ożenić z jakimś RTOS, np. z FreeRTOS. Bez
    wielowątkowości tworzenie aplikacji sieciowych, poza tymi najprostszymi,
    szybko stanie się koszmarem.

    > 3) Jakich transferów mogę się spodziewać? Podejrzewam, że będzie lepiej
    > niż na duecie Mega328 + ENC28J60. Jak bardzo lepiej? ;)

    Testowo z lwIP i STM32F107 (64kB RAM, 72 MHz, gdy to testowałem ST nic
    lepszego jeszcze nie miało w ofercie) byłem w stanie (ledwo, ledwo ale
    jednak) zapchać rurę 100 Mbit/s przy transmisji w sieci lokalnej --
    serwer TCP, który po podłączeniu generował pseudolosowy strumień danych,
    klient (aplikacja na PC) odbierał dane i weryfikował. Testowałem aż mi
    się nie znudziło, dziesiątki GB danych szły bez problemów.

    Po ożenieniu lwIP+FreeRTOS wydajność spadła ale wciąż było to
    kilkadziesiąt Mbit/s. A w praktycznej aplikacji wąskim gardłem i tak
    okazała się magistrala SPI (18 MHz) na której wisiała pamięć Flash z
    której czerpałem dane.

    > 4) Warto zainwestować w jakąś płytkę ewaluacyjną? Gdy zaczynałem naukę
    > programowania AVR-ów skleciłem sobie prostą płytkę z Megą8 i łącząc z
    > płytką stykową budowałem proste układy. Potem eksperymentując z
    > Ethernetem również skleciłem PCB z Megą328 i ENC28J60. Prawie z niej nie
    > korzystałem... Podobnie zakupione jakiś czas temu Arduino od paru
    > miesięcy leży w szufladzie. Po prostu gdy chcę zbudować jakiś układ ze
    > znanych sobie i/lub dobrze opisanych części, po prostu robię projekt
    > płytki, wytrawiam ją i buduję co mam zbudować. Nie tworzę tego samego
    > dwa razy, za pierwszym razem na pająku/płytce stykowej. Czy takie
    > podejście sprawdzi się również w przypadku STM32, czy tutaj jednak
    > powinienem zainwestować w jakieś płytkę prototypową?

    Moim zdaniem warto, bo Ethernet to już szybkie przebiegi i łatwo
    popełnić jakiś błąd w projekcie. Układ może mieć nawet pozory działania,
    ale będą gęsto i często np. ginąć pakiety, transmisja będzie się
    zacinać. Nie będziesz wiedzieć czy soft Ci szwankuje czy może jednak
    hardware. Lepiej oprzeć się na czymś sprawdzonym.

    > 5) Jak taki MCU radzi sobie z szyfrowaniem AES? Powinienem się
    > spodziewać zauważalnych przestojów?

    Co prawda, dla PIC32, ale dla wyrobienia poglądu wystarczy:
    http://www.microchip.com/stellent/idcplg?IdcService=
    SS_GET_PAGE&nodeId=2680&dDocName=en537998

    Jeśli zależy Ci na wyższej wydajności wybierz MCU z hardwarowym
    wsparciem AES.

    pzdr
    mk

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: