Jaki jest dobry mikrokontroler do wykonywania aplikacji Ethernet? A może potrzebuję dobrej biblioteki Ethernet, aby połączyć się z Ethernetem MAC / PHY?
Jaki jest dobry mikrokontroler do wykonywania aplikacji Ethernet? A może potrzebuję dobrej biblioteki Ethernet, aby połączyć się z Ethernetem MAC / PHY?
Odpowiedzi:
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.
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.
Znacznie szybciej niż uIP, ale trudniej zacząć
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 .
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 .
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.
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.
Wiele mikrokontrolerów TI Luminary (ARM Cortex-M3) ma wbudowany ethernet MAC. Potrzebuje zewnętrznego kryształu i ethernetowego PHY (złącze + magnes).
GCC i openOCD (flashowanie / debugowanie JTAG) wspierają je dobrze i są dość tanie.
Mają też tanie zestawy sprzętowe ...
http://uk.farnell.com/luminary-micro/ekt-lm3s811/kit-eval-lm3s811-code-red/dp/1712254
Netduino plus jest dobrym mikrokontrolerem o wartości 60 $ do aplikacji ethernetowych. W razie potrzeby może również przyjmować większość tarcz Arduino.
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.
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
Zamówienie tuxgraphics za miły rozwiązania.
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.
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:
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 .
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:
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:
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:
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.
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.