eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikauIP - zapotrzebowanie na zasoby
Ilość wypowiedzi w tym wątku: 20

  • 1. Data: 2014-08-06 22:10:44
    Temat: uIP - zapotrzebowanie na zasoby
    Od: Atlantis <m...@w...pl>

    Wracając do tematu obsługi TCP/IP na małych mikrokontrolerach...

    Jak już wspominałem, od jakiegoś czasu bawię się łącznością sieciową na
    ośmiobitowych MCU (głównie Atmegi). Zacząłem od ENC28J60 i
    minimalistycznego stosu Tuxgraphics. Używałem go głównie do przesyłania
    informacji za pośrednictwem pakietów UDP. Nie korzystałem z bardziej
    zaawansowanych funkcji, jak np. przydzielanie numeru IP z DHCP albo
    zapytania DNS. Nie realizowałem także obsługi WWW - tego zresztą w ogóle
    nie mam zamiaru robić na tak małych MCU. Nawet najprostsze strony
    zabierają sporo flasha.

    Oczywiście przy takim podejściu stos zajmował stosunkowo niewielką ilość
    pamięci. Oczywiście jeszcze lepiej wyglądała sytuacja w przypadku
    układów Wiznetu, wyposażonych w sprzętową obsługę stosu.

    Teraz zastanawiam się jak bardzo zwiększy się zużycie zasobów po
    przejściu na bardziej zaawansowany stos (np. uIP albo ten od
    Microchipa). Migracja będzie konieczna, bo Tuxgraphics niestety nie
    nadaje się do postawienia serwera telnetu.

    Załóżmy, że urządzenie ma się komunikować ze światem za pośrednictwem
    UDP, udostępniając także konsolę konfiguracyjną przez telnet. W
    przyszłości w grę może wchodzić także dodanie innych funkcji (NTP, DNS).
    Musi też oczywiście pozostać odpowiednia ilość zasobów na realizację
    normalnych zadań (parsowanie poleceń, wykonywanie pomiarów, załączanie
    wyjść).

    Czy powinienem się spodziewać, że stos zajmie mi momentalne cały MCU?
    Powinienem zapobiegawczo zastosowań większy procek (np. Atmega128/1284)
    czy nie jest tak źle i coś w stylu Mega32/328/644 spokojnie wystarczy?

    A może powinienem już od razu postawić na układy Wiznet i nie przejmować
    się zużyciem zasobów przez stos?


  • 2. Data: 2014-08-06 22:40:13
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: jacek pozniak <j...@f...pl>


    Atlantis wrote:

    > Czy powinienem się spodziewać, że stos zajmie mi momentalne cały MCU?
    > Powinienem zapobiegawczo zastosowań większy procek (np. Atmega128/1284)
    > czy nie jest tak źle i coś w stylu Mega32/328/644 spokojnie wystarczy?
    >
    > A może powinienem już od razu postawić na układy Wiznet i nie przejmować
    > się zużyciem zasobów przez stos?
    Atmega128 to absolutne minimum, jeśli coś chcesz aby to robiło jakieś
    użytkowe rzeczy.
    Chodzi zwłaszcza o RAM; minimum 1kbajt RAM i 10 kbajtów ROM zajmie Ci
    tcp/ip.
    Z doświadczenia wiem, że 2 kbajty zwykle nie starcza aby mieś tcp/ip i do
    tego jakieś bufory na UARTy i komfortowo napisać funkcje realizujące
    zasadniczą część użytkową; po prostu zbyt szybko dochodzi się do ściany.

    jp


  • 3. Data: 2014-08-06 22:51:15
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Marek <f...@f...com>

    On Wed, 06 Aug 2014 22:10:44 +0200, Atlantis <m...@w...pl>
    wrote:
    > Czy powinienem się spodziewać, że stos zajmie mi momentalne cały
    MCU?

    Stos mchp na 8bit mcu z tcp+udp+dhcp+dns+ntp+httpd+kilka prywatnych
    funkcji zajelo ok 60KB flash + ok 100-200 bajtów ram
    ten sam stos na 32bit mcu
    tcp+udp+dhcp+dns+ntp+httpd+telnetd+usbhost(pendrive dla statycznych
    plikow httpd) 130KB flash +20 KB ram, tutaj użyłem wiersze bufory dla
    gniazd i bardziej wypasiony serwer http, stąd większe użycie ram niż
    w przypadku 8bit.

    --
    Marek


  • 4. Data: 2014-08-06 23:59:45
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: butek <email.is@invalid>

    W dniu 06.08.2014 o 22:10, Atlantis pisze:
    > /ciach/
    >

    Sorry, że się wtrące, ale od kilku wątków przeglądam te Twoje boje z
    8-bitowym AVR w połączeniu z ethernetem itp. i no, nie rozumiem.

    Nie prościej wziąc skrojonego na miarę STM'a albo nawet mocniejszego
    PIC'a zamiast próbować wynajdywać kwadratowe koło?

    Przecież uC do takich zastosowań w tej chwili są dime-a-dozen, pewnie
    taniej wyjdzie niż ten 8-bit AVR + cała reszta peryferiów typu ENC28x. A
    przy okazji czegoś nowego można się nauczyć, skoro to projekt one-off
    tylko dla siebie.

    --
    butek
    Safety note: Don't put all your enriched uranium hexafluoride in one
    bucket. Use at least two or three buckets and keep them in separate
    corners of the room. This will prevent the premature build-up of a
    critical mass.


  • 5. Data: 2014-08-07 00:31:59
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: jacek pozniak <j...@f...pl>

    butek wrote:

    > W dniu 06.08.2014 o 22:10, Atlantis pisze:
    >> /ciach/
    >>
    >
    > Sorry, że się wtrące, ale od kilku wątków przeglądam te Twoje boje z
    > 8-bitowym AVR w połączeniu z ethernetem itp. i no, nie rozumiem.
    Co tu rozumieć, hobby.
    >
    > Nie prościej wziąc skrojonego na miarę STM'a albo nawet mocniejszego
    > PIC'a zamiast próbować wynajdywać kwadratowe koło?
    Pewnie wątkotwórca kombinuje na tym co się zna.
    >
    > Przecież uC do takich zastosowań w tej chwili są dime-a-dozen, pewnie
    > taniej wyjdzie niż ten 8-bit AVR + cała reszta peryferiów typu ENC28x. A
    > przy okazji czegoś nowego można się nauczyć, skoro to projekt one-off
    > tylko dla siebie.
    Taniej to wyjdzie to co jest proste i tanie.
    Osobiście się nie dziwię tym kombinacjom, pewnie STM jest nowocześniejszy
    ale kryterium 'lepszości' już nie jest takie oczywiste.

    jp
    >


  • 6. Data: 2014-08-07 01:33:17
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: butek <email.is@invalid>

    W dniu 07.08.2014 o 00:31, jacek pozniak pisze:
    > Co tu rozumieć, hobby.

    No oczywiście, że hobby, ale hobby już od dawna ma dostępne w ręcznie
    lutowalnych obudowach coś więcej niż 8-bitowy AVR praktycznie bez
    sprzętowych peryferiów oprócz dwóch/trzech timerów i gównianego ADC z
    równie gównianym wbudowanym REF do tegoż :) Nie jestem zwolennikiem
    migania LED od razu za pomocą ARMa, ale sorry, zaprzęganie 8-bitowca do
    software'owej obsługi interfejsów typu USB/Ethernet i innych mocno
    wymagających jest po prostu rzeźbieniem w gównie, wartość edukacyjna
    zero. W podobnej cenie można użyć uC trochę bardziej powyżej lat 90-tych
    zeszłego wieku, który ma wymagane interfejsy obsługiwane sprzętowo,
    support w sieci świetny, wartość edukacyjna nie do przecenienia, a i
    pozostaje więcej czasu na część hobby pod tytułem: moje urządzenie.

    --
    butek
    Safety note: Don't put all your enriched uranium hexafluoride in one
    bucket. Use at least two or three buckets and keep them in separate
    corners of the room. This will prevent the premature build-up of a
    critical mass.


  • 7. Data: 2014-08-07 08:56:03
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Atlantis <m...@w...pl>

    W dniu 2014-08-06 23:59, butek pisze:

    > Nie prościej wziąc skrojonego na miarę STM'a albo nawet mocniejszego
    > PIC'a zamiast próbować wynajdywać kwadratowe koło?

    Jasna, że lepiej. Jednak trzeba wziąć pod uwagę kilka kwestii:
    1) Taki STM32 w pełni pokaże swoje możliwości dopiero z większym stosem,
    np. lwIP. Z tego co czytałem dokładne zapoznanie się z nim wymaga jednak
    trochę czasu. Zabawę z takim tuxgraphics z kolei można było zacząć
    praktycznie "z marszu". Podejrzewam, że w przypadku uIP wygląda to podobnie.
    2) Procki STM i PIC w wersji 32bit posiadają często zintegrowane moduły
    Ethernet, ale tylko MAC. PHY trzeba podpiąć, a to ładnych kilkanaście
    linii. Trochę to komplikuje projekt płytki, a przecież chodzi i tak o
    przesyłanie niewielkich ilości danych. Można też wykorzystać zewnętrzny
    sterownik na SPI, ale to przecież dokładnie takie rozwiązanie, jakie
    stosuję teraz.
    3) AVR-y znam w miarę dobrze, zarówno od strony programowej, jak i
    sprzętowej (zaprojektowałem kilka płytek pod własne urządzenia, w tym te
    działające w sieci). Z STM-ami jestem na etapie zrobienia paru
    "edukacyjnych" przykładów. Będę musiał się jeszcze trochę podszkolić,
    zanim zdecyduję się na jakiś większy projekt.


    > Przecież uC do takich zastosowań w tej chwili są dime-a-dozen, pewnie
    > taniej wyjdzie niż ten 8-bit AVR + cała reszta peryferiów typu ENC28x. A
    > przy okazji czegoś nowego można się nauczyć, skoro to projekt one-off
    > tylko dla siebie.

    Z tą różnicą, że kilka sztuk Atmegi 328 i 644 już leży w szufladzie.
    Atmega 128 chyba też się znajdzie. Układ ENC28J60 został mi po
    poprzednim projekcie, a jakiś czas temu przy okazji innego zamówienia w
    kupiłem w TME sztukę albo dwie W5500.
    Taniej jednak wykorzystać to co się ma, niż robić nowe zakupy. Pod
    warunkiem oczywiście, że posiadane elementy wystarczą. Tutaj jednak nie
    ma wielkich wymagań - układ ma sterować kilkoma wyjściami (załączanie
    światła przez triaki, może jakiś przekaźnik) oraz mierzyć kilka wartości
    (napięcie i częstotliwość sieci, temperatura) oraz komunikować się z
    otoczeniem przez UDP (sterowanie) i telnet (konfiguracja).


  • 8. Data: 2014-08-07 09:55:04
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: JDX <j...@o...pl>

    On 2014-08-07 01:33, butek wrote:
    [...]
    > migania LED od razu za pomocą ARMa, ale sorry, zaprzęganie 8-bitowca do
    > software'owej obsługi interfejsów typu USB/Ethernet i innych mocno
    > wymagających jest po prostu rzeźbieniem w gównie, wartość edukacyjna
    > zero.
    Tu nie o szerokość słowa chodzi tylko o ilość RAM. Współczesny 8-bitowy
    uC spokojnie wystarczy do obsługi jakiegoś lekkiego stosu TCP/IP o ile
    będzie miał wystarczającą ilość RAM-u. Problemem jest to, że typowe
    8-bitowce nie mają wystarczającej ilości... Z drugiej strony, programowa
    realizacja USB/Ethernet może być problemem nawet dla "dużego" uC. :-D


  • 9. Data: 2014-08-07 11:29:43
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Atlantis <m...@w...pl>

    W dniu 2014-08-06 22:40, jacek pozniak pisze:

    > Atmega128 to absolutne minimum, jeśli coś chcesz aby to robiło jakieś
    > użytkowe rzeczy.
    > Chodzi zwłaszcza o RAM; minimum 1kbajt RAM i 10 kbajtów ROM zajmie Ci
    > tcp/ip.

    Zdefiniuj "użytkowe rzeczy". W przypadku Tuxgraphics prosty serwerek UDP
    można odpalić na Atmedze88, miejsca wystarczy na postawienie jakiegoś
    nieskomplikowanego parsera i sterowanie wyjściami albo odczytywanie
    jakiejś wartości. Mam wrażenie, że od biedy dałoby się coś takiego
    zrobić nawet na Atmedze8.

    Oczywiście ja chciałbym teraz pójść trochę dalej, odpalając stos, który
    potrafi utrzymać otwartą sesję i przesyłać dane w obydwie strony
    (Tugraphics pozwala jedynie na przesyłanie "wiadomości" o objętości
    nieprzekraczającej jednego pakietu Ethernet). Na pewno zajmie to aż tyle
    flasha? A nawet jeśli, to w przypadku Atmegi644 pozostanie jeszcze sporo
    miejsca na resztę kodu.

    Co do RAM-u to zrozumiałe. Każdy stos potrzebuje miejsca na bufor. Tak
    BTW jak bardzo zapotrzebowanie na RAM zwiększa się wraz z każdym
    otwartym połączeniem na uIP?


  • 10. Data: 2014-08-07 11:31:33
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Atlantis <m...@w...pl>

    W dniu 2014-08-06 22:51, Marek pisze:

    > Stos mchp na 8bit mcu z tcp+udp+dhcp+dns+ntp+httpd+kilka prywatnych
    > funkcji zajelo ok 60KB flash + ok 100-200 bajtów ram ten sam stos na

    Sto do dwustu bajtów!? To chyba nie licząc bufora na pakiety?
    Czy może w stosie Microchipa jest to w jakiś sprytny sposób rozwiązane?

strony : [ 1 ] . 2


Szukaj w grupach

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: