Jaki MCU do TCP/IP?

Tak z czystej ciekawości zapytam, jak mikrokontroler to absolutne minimum, gdy chcemy się bawić w transmisję danych przez Ethernet/Internet bez zaprzęgania do pracy układów w rodzaju W5100? Chodzi mi o coś w rodzaju ENC28J60, gdzie mamy załatwioną obsługę ramek ethernetowych, ale bez sprzętowego TCP/IP.

Coś w rodzaju Atmegi64/128 wystarczy? A może jednak potrzebna będzie jakaś większa Xmega albo nawet nie powinno się do tego podchodzić bez

32-bitowego ARM-a? Może wskazane jest zastosowanie jakiejś zewnętrznej kostki RAM na przychodzące/wysyłane pakiety?
Reply to
Atlantis
Loading thread data ...

W dniu 2013-10-07 21:49, Atlantis pisze:

tylko po co rzeźbic w gównie jak mamy fajne STM32 ?

Reply to
LeonKame

PICki dobrze sobie z tym dają radę, mikrocip udostępnia nawet gotowe stosy tcp/ip - było to dobrze opisane w którymś z numerów EP.

Tu zobacz:

formatting link

Reply to
Jakub Rakus

Sprawdz wymagania stosu uIP. zdaje sie ze w 4kB RAMu sie zmiescisz. Osobiscie uwazam ze 32bit CPU, OS i 128kB to minimum, wtedy tez jest wiekszy wybor stosow TCP/IP. Latwiej sie tez pisze aplikacje sieciowe. Nie da sie ukryc ze uIP ma ograniczenia sprawdzi sie do trasferu danych z czujnikow, ale webservera to bym nie stawial.

Pozdrawiam

Marek

Reply to
Marek Borowski

Dnia Mon, 07 Oct 2013 21:49:11 +0200, Atlantis napisał(a):

sugeruje jednak uzyc wiekszego - bedzie latwiej przeniesc program, niz babrac sie na 8/16-bitowcu - co nie znaczy ze sie nie da.

Kilkanascie KB na bufory to jest rozsadne minimum. No chyba ze to ma byc np zdalna klawiatura - to mozna sie ograniczyc do kilku malych ramek.

Plus kawalek programu na protokoly, plus coraz wiecej protokolow i wymagania rosna :-)

J.

Reply to
J.F.

W dniu 2013-10-07 22:50, Marek Borowski pisze:

Chodzi mi oczywiście o coś relatywnie prostego. Czynność w rodzaju: wywołujemy na zdalnym serwerze skrypt PHP, podsyłając mu parę zmiennych. Skrypt zwraca wynik swojej pracy w formie prostej, nieformatowanej strony www. MCU wyciąga z niej potrzebne dane i w oparciu o nie wykonuje jakąś "fizyczną" czynność (załączenie przekaźnika, wygenerowanie dźwięku, zapalenie diody).

Tudzież ewentualnie wystarczyłoby mocy obliczeniowej na coś takiego, jak budowane przez ludzi sprzętowe "tickery" do Twittera, potrafiące odbierać najnowsze wiadomości i wyświetlać je na LCD?

Reply to
Atlantis

Odpalilem microchipowy stos na 18f25k20 (64Mhz, 32kb flash 1500 bajtow ram) z enc28j60. W tych zasobach zmieścił się tcp, udp,icmp, dhcpd, dns (resolver) , httpd (własny, nie microchipa) i karta sd na doc root. Musiałem zwiekszyc stos do 512 bajtów bo domyślny 256 był za mały i się czasami "przekrecal". Działalo, transfery na poziomie

30 kB/s.Jeśli to Ci wystarczy to ok. Później przekompilowalem ten sam kod na 48Mhz pic32mx250f128 (te śmieszne małe w dip28) i transfery skoczyły do poziomu 300 kB/s. Działa (tzn. działało dopóki kot nie postanowil zapolować na czujnik zostawiony na parapecie i stlukl fotoogniwo) to jako serwer dla bezprzewodowego czujnika temperatury. Żądania typu włącz/włącz sa obslugiwane jako cgi, prezentacja wykresów temperatury jest przez highcharts, ktore pobierają generowany plik csv z karty sd itp... Do picka32 upchnalem jeszcze telnetd z imitacją shella w chrootcie (kilka podstawowych komend ) i logowaniem na root bez hasła (a jakże!). Całość wystawiona na publicznym IP, średnio dwa razy dziennie coś się loguje i próbuje pobrać wgetem explojta myśląc że to jakiś ruter wifi :-)... Podsumowując na 8bit można ale widać że się męczy, na 32bit śmiga.
Reply to
Marek

Te bufory zapewnia encj, stos tcp (włączone tcp+ip+udp+dhcpd+dns) microchipa wymaga raptem kilkuset bajtow (ok 200) w mcu. Oczywiście można włączyć dodatkowe bufory w w pamieci mcu (lub innej, zewnętrznej np spi) ale tylko jeśli chce się szybszy transfer.

Reply to
Marek

W dniu 2013-10-07 23:25, Atlantis pisze:

Użyj czegoś klasy rasberryPI, bo jak zaczniesz na 8bit coś takiego rzeźbić w guano, to tylko nogi z szambiarki ci będą wystawać. Albo zrazisz się całkowicie, nigdy nie skończysz projektu i tylko zmarnujesz siły i czas, bo zmiany w twitterze czy pejsbuku szybciej zachodzą niż będziesz w stanie dostosować swój projekt

Reply to
BartekK

tylko ze cenowo to nie wychodzi zbyt optymistycznie

Reply to
LeonKame

Użytkownik "Atlantis" napisał w wiadomości W dniu 2013-10-07 22:50, Marek Borowski pisze:

Hm, a nie odwrotnie - mamy na MCU serwer, z prosta strona, ktora przy okazji wykonuje pare akcji ?

A tu juz moze byc gorzej, bo trzeba sie dodatkowo przez protokol Twittera przedrzec. Nie prosciej postawic stary telefon ? Niektore twittera juz maja.

J.

Reply to
J.F

W dniu 2013-10-08 13:14, J.F pisze:

To też zależy. Gdyby serwer miał być węzłem, do którego odwołuje się kilka urządzeń wbudowanych, to wolałbym taki węzeł postawić na jakimś Raspberry Pi, a końcówki zrobić na MCU. Tak poza tym jakoś nieszczególnie przekonuje mnie idea serwera www na ośmiobitowym MCU, taktowanym zegarem o częstotliwości kilku-kilkunastu MHz...

Można, ale akurat z Twitterem można robić całkiem fajne rzeczy na takim Arduino. Pamiętam kilka projektów, niektóre były bardziej, inne mniej użyteczne. Na przykład:

  1. Klucz telegraficzny do publikowania wiadomości.
  2. Urządzenie drukujące nowe wiadomości za pomocą (bodajże) drukarki termicznej.
  3. Lampka RGB dostosowująca swój kolor do nastrojów panujących na świecie, określanych na podstawie analizy hashtagów,

Jestem ciekaw jak łatwo byłoby uzyskać podobny efekt na zwykłym MCU i ENC. Jakoś nie przekonuje mnie idea budowania urządzeń w oparciu o Arduino. Ta płyta to jak dla mnie narzędzie edukacyjne/deweloperskie, dobre do sprawdzania koncepcji. Budując końcowy układ dobrze jest jednak zaprojektować, wytrawić i zlutować płytkę. ;)

Reply to
Atlantis

W dniu 08.10.2013 20:30, Atlantis pisze:

A co Arduino odró¿nia od "zwyk³ego" MCU? Przecie¿ to nazwyklejszy AVR z mas± bibliotek. Kumpel na AVR postawi³ serwer www robi±cy za bramê do domowej automatyki i jako¶ to chodzi³o (w czasie przesz³ym, bo w tej chwili widzê, ¿e jest wy³±czone). Tym bardziej da siê zrobiæ prostego klienta http, który bêdzie wysy³a³, czy pobiera³ z serwera dane przez GET/POST. Schody mog± siê zacz±æ jak bêdziesz potrzebowa³ SSLa.

Na stronie microchipa masz gotowe przyk³ady na 8-bitowce z serwerem www pokazuj±cym stan urz±dzenia:

formatting link

A tutaj radyjko internetowe:

formatting link

Reply to
Zbych

U¿ytkownik "Atlantis" napisa³ w wiadomo¶ci news:l2v37l$l0m$ snipped-for-privacy@portraits.wsisiz.edu.pl...

rodzaju W5100?

za³atwion± obs³ugê ramek

potrzebna bêdzie

podchodziæ bez

zewnêtrznej

Ja swego czasu pope³ni³em mini stacyjkê meteo z transmisj± po ethernecie. Chodzi³o toto na ATMega32 + ENC28J60 (jeszcze z pocz±tkowej serii produkcji - z b³êdami). Wystarczy³o to do obs³ugi ARP, TCP, UDP. Pisane przy wykorzystaniu której¶ wersji uIP (chyba w wersji 0.8).

Reply to
Zgredzik

Użytkownik "Atlantis" napisał w wiadomości grup W dniu 2013-10-08 13:14, J.F pisze:

Owszem. Ale wtedy moga byc i inne rozwiazania - np MCU wysyla dane UDP, cos na serwerku odbiera, zapisuje na dysk, a potem serwer www podaje z dysku ..

Szumna nazwa, Serwer, a tak naprawde jakas drobnostke robi, i musi pare linijek tekstu odeslac.

No chyba ze chcesz ze ambitna strone :-)

To ta bardziej uzyteczna ? :-)

sa drukarki z bluetooth, byly komorki z Irda :-)

Telefon ma kolorowy ekran :-)

J.

Reply to
J.F

W dniu 2013-10-09 09:03, Zbych pisze:

No właśnie ta masa bibliotek, które w dodatku są tak zrobione, że jakoś ze sobą współgrają, nie musisz się za bardzo zastanawiać, czy aby dwie użyte biblioteki nie pokłócą się np o użycie któregoś timera do czegoś. Możesz to sam zrobić, ale po co - skoro już jest zrobione (napisane). Chyba że chcesz napisać lepiej.

Reply to
BartekK

BartekK snipped-for-privacy@drut.org napisał(a):

Ale MCU jest to samo i nikt nie broni używać tych bibliotek. Od strony sprzętowej Arduino to goły procek z programatorem.

Reply to
Grzegorz Niemirowski

W dniu 2013-10-09 17:31, Grzegorz Niemirowski pisze:

Owszem. Tylko że arduino (soft/biblioteki) wymusza użycie jednego z kilku avrów, które są supportowane. Ja np na razie nie znalazłem sprawnie działającego rozwiązania arduino+atmega 16

Reply to
BartekK

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.