Co to jest dobry mikrokontroler do aplikacji Ethernet?

47

Jaki jest dobry mikrokontroler do wykonywania aplikacji Ethernet? A może potrzebuję dobrej biblioteki Ethernet, aby połączyć się z Ethernetem MAC / PHY?

Robert
źródło
Czy możesz nam powiedzieć, z jakiego rozwiązania korzystałeś i jakie masz doświadczenie w tym zakresie?
thom_nic
1
Obecnie używam serii PIC18F97J60 i PIC32 z ENCxxx. Działa OK. Największym problemem jest to, że ma tylko SSLv3.0, które Firefox i Chrome właśnie upuściły. Microchip obsługuje wiele innych protokołów, których używam: FTP, TFTP, SNTP, SNMP.
Robert
Dobrze słyszeć - dobrze jest też znać ograniczenie SSL, ale wydaje się, że wszystkie „solidne” implementacje TLS są ogólnie niewolne. Dzięki za udostępnienie!
thom_nic

Odpowiedzi:

29

PIC18 firmy Microchip z wbudowanym eterem są do tego doskonałe, wystarczy dodać magjack (lub inne złącze z wbudowaną magnetycznością) i pobrać stos TCP / IP. Będziesz pingować rzeczy w mgnieniu oka. Aby uzyskać więcej informacji, PIC24 i PIC32 mają także stosy TCP / IP zaprojektowane do pracy z jedną z oferowanych przez nich części SPI Ethernet MAC / PHY (ENC624J600 lub ENC628J60).

ST ostatnio również ulepszył swoją linię STM32 opartą na ARM Cortex, aby uwzględnić wbudowany ethernet, ale będziesz potrzebować zewnętrznego PHY i magnesów. Jest to opcja, jeśli już patrzysz na PIC32.

rozdrażniony
źródło
16
Mam problemy ze stosem sieciowym Microchip, więc napisałem własny i udostępniam go bezpłatnie za pomocą kodu źródłowego na embedinc.com/pic/dload.htm w wersji PIC Development Tools. Musisz zaakceptować koncepcję naszego środowiska programistycznego PIC (również darmowego), ale i tak to dobry pomysł. Po instalacji wyszukaj pliki z nazwą „net” w katalogu SOURCE> PIC.
Olin Lathrop,
20

Jeśli chodzi o stos TCP / IP, powinieneś przyjrzeć się trzem projektom:

Contiki jest otwartym, wysoce przenośnym, wielozadaniowym systemem operacyjnym dla wydajnych pamięciowych systemów sieciowych i bezprzewodowych sieci czujników. Wykorzystano Contiki do różnych projektów, takich jak monitorowanie pożaru w tunelu drogowym, wykrywanie wtargnięcia, monitorowanie wody na Morzu Bałtyckim oraz sieci nadzoru.

Contiki jest przeznaczony dla mikrokontrolerów z niewielką ilością pamięci. Typowa konfiguracja Contiki to 2 kilobajty pamięci RAM i 40 kilobajtów pamięci ROM.

Stos uIP TCP / IP typu open source zapewnia łączność TCP / IP z niewielkimi, wbudowanymi 8-bitowymi mikrokontrolerami, przy zachowanej interoperacyjności i zgodności ze standardami RFC.

Clinton Blackmore
źródło
17

Zasadniczo Ethernet nie jest wbudowany w mikrokontrolery. Najpierw potrzebujesz gniazda, które może przetwarzać sygnały Ethernet na sygnały odczytywane przez mikrokontroler (nazywa się to ogólnie „magnetycznością”). Następnie potrzebujesz stosu TCP / IP, a ponadto DHCP, DNS i innych protokołów, których chcesz użyć. Tak więc rzeczywisty mikrokontroler, którego używasz, nie ma większego znaczenia. Jeśli dostaniesz coś bardzo potężnego, jak ARM z uruchomionym na nim Linuksem, opracowanie go byłoby bardzo proste, prawie tak samo jak napisanie aplikacji sieciowej działającej na komputerze stacjonarnym z systemem Linux. Lub możesz wybrać coś mniej wydajnego i tańszego, jak AVR lub PIC.

Ethernet i TCP / IP mogą być dość złożone, jeśli chcesz zaimplementować cały stos TCP / IP w oprogramowaniu. Jednym z powszechnych rozwiązań jest użycie czegoś takiego jak układ W5100 firmy Wiznet, który obsługuje wszystkie elementy protokołu TCP / IP niskiego poziomu. Możesz go kupić w gotowym module, który zawiera złącze Ethernet i wszystko za całkiem tanio, około 20 USD za moduł WIZ812MJ . Możesz się z nim komunikować za pomocą tylko SPI, więc nie zajmie to dużo pinów I / O twojego mikrokontrolera.

Lantronix zapewnia również bardziej wydajne moduły, które wyglądają jeszcze prostsze w użyciu, ale są nieco droższe (50-100 USD w zależności od modelu). Zobacz na przykład ich XPort .

davr
źródło
1
Ja uwielbiam widzieć renomowanego odniesienie do terminu „magnetyzmu”, ponieważ nigdy nie słyszał.
Andrew
@Andrew Nie znam żadnego słownika technicznego, który go ma. Google znajdzie różne referencje. Właśnie o tym mówiłem. Zasadniczo chodzi o to, aby odizolować obwód od innych urządzeń podłączonych do niego za pośrednictwem sieci Ethernet. Podobne do sposobu, w jaki MIDI wykorzystuje izolację optyczną.
davr
Dostaję około pół miliona wyników więcej dla „izolatora ethernetowego” niż „magnetycznego Ethernetu”, ale rozumiem, co masz na myśli.
Andrew
Dyskusja na temat pochodzenia i zastosowania tego terminu znajduje się w tym wpisie Hack A Day na temat pojemnościowego łączenia .
Andrew
Właśnie patrzyłem na arkusz danych nadajnika-odbiornika Ethernet (LAN8720A z Microchip), a ta sekcja jest różnie nazywana „Mag” i „Transformator”.
Dan Ellis,
11

ARM to mikrokontrolery tego dnia, a NXP ma ich szeroką ofertę. Na tej stronie wymieniono dosłownie zbyt wiele kontrolerów Ethernet, aby wymienić wszystkie tutaj, od tej daty (2011-07-13):

17 urządzeń ARM7
2 urządzeń ARM9
16 urządzeń Cortex-M3

edytuj
Przeniosłem dyskusję na temat zalet ARM do tej odpowiedzi .

stevenvh
źródło
jakie zalety daje linia ramion. Widzę wiele innych odpowiedzi, które wymagają bardziej szczegółowych informacji. Ważną częścią jest to, że podajesz powód, dla którego linia jest czymś więcej niż tylko linkiem do linii kontrolerów. Przekazuję ci tę opinię, ponieważ jesteś zbyt płodny, aby użytkownik nie udzielał najlepszych możliwych odpowiedzi!
Kortuk
6
@Kortuk - Och, to świetnie! Nie tylko chcą wielu odpowiedzi, ale teraz muszą być najlepsi! ;-)
stevenvh
6

Zestaw XMOS XC-2 to ciekawy sposób na zrobienie tego. Wszystko odbywa się w oprogramowaniu, oprócz PHY. Oprogramowanie powinno działać na układzie XS1-L1 o wartości 7,50 USD.

Leon Heller
źródło
człowieku, interesujesz mnie produktami XMOS. Będę musiał naprawdę bardzo się starać, aby nie opierać się zakupowi tego zestawu programistycznego. Czy wiesz, czy jest dostępny RTOS?
Dave
Tak naprawdę nie potrzebuje RTOS z powodu wątków sprzętowych. To powiedziawszy, jedna lub dwie osoby pracują nad jedną.
Leon Heller
XMOS tworzy również wersję z dwoma gniazdami Ethernet. Jest przeznaczony do bitowych znaków LED, ale nie rozumiem, dlaczego nie mogłeś robić innych rzeczy. Rzuć swój router! xmos.com/products/development-kits/xc-3-led-tile-kit
Connor Wolf
5

Microchip ma szereg mikrokontrolerów PIC z wbudowanym możliwości ethernet, istnieje lista tutaj . Mają też szereg stron dotyczących rozwiązań projektowych dla sieci Ethernet oraz produkty ich tutaj , który zawiera również szczegóły dotyczące ich stosu pełny TCP / IP (ze zintegrowanym MAC i PHY).

Mam nadzieję że to pomoże.

Amos
źródło
4

Netduino plus jest dobrym mikrokontrolerem o wartości 60 $ do aplikacji ethernetowych. W razie potrzeby może również przyjmować większość tarcz Arduino.

avra
źródło
4

W zależności od tego, jak łatwo chcesz uczynić swoje życie, zaleciłbym użycie MBED i zakup karty magjack i Ethernet Breakout Board (patrz SparkFun) do podłączenia kabla i radzenia sobie z kondycjonowaniem sygnału. Model pomocniczy to mbed NXP LPC1768.

Udało mi się dostać mbed wysyłający dane do mojego zdalnego serwera (tj. Przez Internet) w około 2 godziny od startu na stałe.

SimonBarker
źródło
4

To zależy, co chcesz z tym zrobić. Najważniejszą rzeczą, na którą należy zwrócić uwagę, jest ilość pamięci RAM (może ograniczyć rozmiar pojedynczej wiadomości), a jeśli chcesz obsługiwać strony internetowe, ilość dostępnego miejsca na to. Używam Arduino Duemilanova http://www.arduino.cc/ - mikrokontroler ATMega328, 2 KB pamięci RAM. Możesz podłączyć kartę SD, jeśli chcesz mieć dużo miejsca. Tarcza Ethernet będzie obsługiwać do 4 równoczesnych sesji. Nie oczekuj, że będziesz w stanie wyświetlać złożone strony, ale działa dobrze, przesyłanie do Pachube, Twittera itp.

Aby uzyskać bardziej wydajne rozwiązanie, spójrz na Marvell Plug

JohnC
źródło
3

Sugerowałbym użycie ENC28J60 razem z jednym z mikrokontrolerów z pic 18, ponieważ mikroprocesor oferuje stos TCP / IP dla tej kombinacji, a Google powinien udostępnić mnóstwo informacji na ten temat.

Erik
źródło
3

Zamówienie tuxgraphics za miły rozwiązania.

CH2048
źródło
4
Korzystasz z AVR micro z Microchip MAC / PHY? Co dalej? Koty i psy mieszkają razem? :)
Robert,
Mam jeden z nich - działa dobrze. Dostarczany jako zestaw ze wszystkimi lutowanymi powierzchniami do montażu powierzchniowego. Wraz z nim pochodzą źródła uIP i sterownik Ethernet.
Toby Jaffey
3

Istnieje wiele projektów wykorzystujących ENC28J60 i ATMEL Cips. Większość z nich jest dobrze udokumentowana i używa C lub BASCOM. Możesz też kupić kompletne zestawy na początek. Sam mam taki zestaw i wiele się nauczyłem o programowaniu z forów.

Achim
źródło
3

Nanode jest open source i tylko £ 22/40 $ wysłane. Właśnie kupiłem dwa do monitorowania zużycia energii / środowiska w domu za pośrednictwem pachube.

30 sekundowy skok od strony:

Nanode jest płytą typu Arduino typu open source, która ma wbudowaną łączność z Internetem. Łączy się z szeregiem interfejsów bezprzewodowych, przewodowych i Ethernet. Umożliwia tworzenie internetowych czujników i systemów sterowania - daje dostęp do sieci sześciu analogowych linii czujników i sześciu cyfrowych linii we / wy. Jest to prosty zestaw do samodzielnego zbudowania. Nanodę zaprojektowano z myślą o hakowaniu.

Heavy Sixer
źródło
3

Wypróbowałem stos mikroczipów za pomocą karty rozwojowej picdem.net 2 i wcale nie byłem zadowolony, nie jest zoptymalizowany i nie jest dobrze udokumentowany.

Myślę, że najlepszym obecnie dostępnym na rynku rozwiązaniem jest Wiznet, który ma pierwszy układ sprzętowy TCP / IP oparty na sieci Ethernet, który oszczędza dużo czasu i zapewnia większą wydajność

Ten link zawiera wszystkie dostępne rozwiązania i porównuje je:

http://retired.beyondlogic.org/etherip/ip.htm

MBA7
źródło
Co za doskonały przegląd.
Amos,
1
Miałem również złe doświadczenia ze stosem sieci Microchip, więc napisałem własny. Jest on zawarty w wydaniu PIC Development Tools pod adresem [url] embedinc.com/pic/dload.htm[/url] . Działa na PIC 18, może obsługiwać zewnętrzny ENC28J60 lub wewnętrzny MAC / PHY, jest dobrze komentowany, łatwo konfigurowalny i został zaprojektowany z myślą o małej powierzchni.
Olin Lathrop,
3

Spóźniłem się na przyjęcie tutaj, ale polecam TI Stellaris EK-LM3S6965. Jest to część ARM Cortex M3 z wbudowanym kontrolerem Ethernet, w tym PHY. Do prototypowania wykorzystałem ich zestaw ewaluacyjny, który ma gniazdo Ethernet, mały wyświetlacz OLED (doskonały do ​​debugowania i interfejsu użytkownika na boso), gniazdo karty SD, głośnik, przyciski, diody LED i przerywniki do okablowania urządzeń peryferyjnych mikro. Nie opisałeś swojej aplikacji (tj. Chcesz wyprodukować dziesiątki tysięcy czegoś lub jednorazowego projektu hobbystycznego), ale cena jest rozsądna (~ 70 USD za płytę programistyczną, 12-15 USD w małych ilościach za same żetony) , są one wyposażone w OK zestaw bibliotek programistycznych, jeśli chcesz tworzyć własne oprogramowanie układowe lub może on uruchamiać FreeRTOS (wymagało niewielkiego przeniesienia z powodu drobnych poprawek sprzętowych między wersją mojej płyty a materiałami w dystrybucji FreeRTOS) i eLua. Możesz użyć albo uIP albo lwIP dla TCP / IP.

W porównaniu z popularnymi ofertami hobbystów, takimi jak AVR / Arduino i PIC, Cortex M3 jest częścią 32-bitową, działa z częstotliwością 50 MHz, 6965 ma wiele funkcji I / O, IMO za pieniądze to po prostu niesamowite, ile mocy obliczeniowej i jak wiele funkcji, które możesz wydobyć z czegoś tak małego i taniego. Jest to jednak dość surowe po stronie programistycznej i musisz znać C (no chyba, że ​​używasz eLua). Jestem programistą z zawodu i zajmuję się tworzeniem ARM na Macu, więc nie boję się przerażających / niewygodnych konfiguracji łańcucha narzędzi i użyłem Make + arm-eabi-gcc + OpenOCD do debugowania, ale jeśli jesteś facetem Windows może pakiet Code Composer Studio byłby dobrym wyborem. Użyłem TI Code Composer IDE do zabawnego eksperymentalnego projektu MSP430 i było to dla mnie w porządku i miałem łatwiejszy przepływ pracy niż moja konfiguracja OSX / ARM.

Według pełnego ujawnienia, tak naprawdę nie zaprojektowałem płytki drukowanej wokół tego układu, która używała kontrolera Ethernet, ale zrobiłem płytkę, która nie korzystała z Ethernetu i miałem z tym dobre doświadczenia, i zbudowałem projekty wykorzystujące Ethernet, używając komisja oceniająca.

Sprawdź tutaj zestaw ewaluacyjny / pakiety narzędzi

AKTUALIZACJA wrzesień 2013

Te części wydają się nie być już zalecane w nowych projektach. Wydaje się, że nie ma żadnych oczywistych zastępstw.

AKTUALIZACJA Listopad 2013

Jest teraz TM4C129XNCZAD, który jest nominalnie zamiennikiem powyższej części - ma wbudowany MAC + PHY, choć nie jest kompatybilny z pinami - jednak wiele osób niechętnie używa go po problemach / zamieszaniu w związku z przerwaniem / dostępnością LM3S wczesnego życia .

Suboptimus
źródło
2

To pytanie może nie być w 100% zadane, ale w przypadku projektów, w których produkcja jest dość niewielka, zacząłem widzieć ludzi osadzających gotowe płyty, takie jak Raspberry Pi. Ma to wiele zalet:

  1. Cena to niewiele więcej niż jeden z wyższej klasy procesorów z ethernetem (przynajmniej dla małych woluminów), a ty pomijasz całe mnóstwo problemów związanych z projektowaniem / testowaniem / wywoływaniem.
  2. Malinowy PI jest już przetestowany CE / EMC, więc wycina cały ładunek niepewności (w przeciwnym razie ethernet i szybkie zegary mogą spowodować wiele problemów EMC). Nadal musisz przetestować swój produkt końcowy, ale przynajmniej jest cały obszar, który naprawdę nie powinien powodować awarii.
  3. Jeśli używasz linuksa itp., Dostajesz o wiele więcej pomruków i odpowiedniego stosu TCP / IP klasy serwerowej - żadne z tych „tylko jednego aktywnego połączenia dozwolonego” nie wpisuje!

Jak mówię, nie jest to dla wszystkich, ale w przypadku niektórych projektów może być dobrze dopasowane.

Istnieje kilka opcji, jeśli chodzi o dokładną tablicę używaną dookoła:

  1. Raspberry PI
  2. Beaglebone czarny - ma wbudowaną lampę błyskową
  3. STM32F4DISCOVERY z kartami rozszerzeń
JosephH
źródło
2

Możesz używać prawie dowolnego MCU z wbudowanym kontrolerem MAC + PHY Wiznet W5500 , jest on sterowany przez SPI. Zalety: ma wbudowany stos sieciowy, bufory Tx / Rx, wymaga minimum pinów MCU, uproszczone programowanie.

Właśnie znalazłem kolejną interesującą opcję - AX88796C od ASIX, ma ona także zarówno MAC + PHY , Ethernet 10 \ 100 Mb / s, jak i opcję interfejsu SPI do 40 MHz, więc ładnie pasuje do każdego MCU opartego na ARM.

AKTUALIZACJA: Netduino 3 już używa tego układu, oto interesujące szczegóły:

http://forums.netduino.com/index.php?/topic/12117-deep-dive-on-asix-ax88796c-netduino-3-ethernets-fancy-new-networking-chip/

Flanker
źródło
1

Jeśli masz jakiekolwiek doświadczenie z oprogramowaniem, polecam płytę STM32F4Discovery z płytą STM32F4DIS-EXT. Ostatnio wykorzystałem to do stworzenia strony konfiguracji dla mojego urządzenia i było to dość łatwe. Istnieje przykładowy projekt lwIP dostępny online, a jeśli przejdziesz do „makefsdata” w Google, znajdziesz wiele informacji na temat generowania niezbędnych plików dla własnych plików HTML. Wyślij wiadomość, jeśli potrzebujesz więcej informacji.

PacEE
źródło
1

W tym celu podoba mi się moduł ethernetowy Openpicus FlyportPro (25 EUR). Po prostu dodaj gniazdo Ethernet z magnetycznością i utwórz oprogramowanie układowe za pomocą stosu TCP / IP. Mają także implementację TLS:

http://blog.openpicus.com/2014/12/idepro-2-9-0-bye-ssl-welcome-tls.html

Zrobiłem projekt przy użyciu „klasycznego” Ethernetu Flyport i do tej pory był niesamowicie solidny.

Xen
źródło