-
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
Następne wpisy z tego wątku
- 17.05.14 18:58 Marek
- 17.05.14 20:51 mk
- 19.05.14 08:15 Atlantis
- 19.05.14 08:32 Atlantis
- 19.05.14 11:26 Waldemar Krzok
- 19.05.14 16:56 j...@g...com
- 19.05.14 20:37 mk
- 20.05.14 18:12 tusk, donald tusk
- 20.05.14 19:49 Andrzej
- 20.05.14 20:06 tusk, donald tusk
- 20.05.14 20:25 Andrzej
- 20.05.14 20:45 tusk, donald tusk
- 20.05.14 20:48 tusk, donald tusk
- 20.05.14 20:50 tusk, donald tusk
- 20.05.14 21:07 Andrzej
Najnowsze wątki z tej grupy
- karta parkingowa
- Wl/Wyl (On/Off) bialy/niebieski
- I3C
- Pytanie o transformator do dzwonka
- międzymordzie USB 3.2 jako 2.0
- elektronicy powinni pomysleć o karierze elektryka
- jak szybko plynie prad
- Płytki Milkv-Duo
- Światłowód między budynkami
- POtrzebny bufor 3.3<>5V, jedonkieruowy, trójstanowy, wąski
- retro
- Bezprzewodowe polączenie Windows z projektorem
- rozklejanie obudowy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
Najnowsze wątki
- 2024-11-14 Dobra zmiana
- 2024-11-14 Czy prezydent może ułaskawić od zadośćuczynienia? [A. Lepper odszkodowania]
- 2024-11-14 Gliwice => Network Systems Administrator (IT Expert) <=
- 2024-11-14 Gliwice => Administrator Systemów Sieciowych (Ekspert IT) <=
- 2024-11-13 Filtr do pompy ruskiej
- 2024-11-12 Gdzie kosz?
- 2024-11-13 elektrycznie
- 2024-11-12 Jebane kurwa, kurwy.
- 2024-11-13 karta parkingowa
- 2024-11-13 Wl/Wyl (On/Off) bialy/niebieski
- 2024-11-12 I3C
- 2024-11-13 Kraków => DevOps Engineer (Junior or Regular level) <=
- 2024-11-13 Łódź => Senior SAP HANA Developer <=
- 2024-11-13 Zabrze => Senior PHP Symfony Developer <=
- 2024-11-13 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=