eGospodarka.pl
eGospodarka.pl poleca

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

  • 11. Data: 2014-08-07 11:54:08
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Marek Borowski <m...@n...com>

    On 8/6/2014 10:10 PM, Atlantis wrote:
    > Wracając do tematu obsługi TCP/IP na małych mikrokontrolerach...
    >
    Jak dla mnie TCP/IP sie zaczyna od ARMa i 128kB+ pamieci RAM.
    Ponizej to jest rzezba w g*. A tak naprawde aby to mialo sens (czyli np.
    implentowalo calosc protokolu aplikacyjnego wraz z obsluga bledow
    a nie tylko czesc) i bylo bezpieczne to rozwiaznia Pi podobne.

    Pozdrawiam

    Marek


    BTW: Oczywiscie aby wyslac jeden pakiet UDP z informacja o temperaturze
    to mozna uzywac czegos malego ale zdaje sie ze chodzi implementacje
    serwerow aplikacyjnych.



  • 12. Data: 2014-08-07 12:03:26
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Zbych <a...@o...pl>

    W dniu 07.08.2014 o 11:31, Atlantis pisze:
    > 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?

    Po prostu trzyma bufory w MACu, ma to sens skoro np. pic18f67j60 ma
    ~3,8kB RAMu a wbudowany MAC ma bufor 8kB.



  • 13. Data: 2014-08-07 12:32:19
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: jacek pozniak <j...@f...pl>

    Atlantis wrote:

    > 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.
    Ot choćby te UDP; ja na przykład nie wiedziałbym jak przez UDP połączyć się
    z tym serwerem wykorzystując ogólnie dostępne narzędzia typu przegladarka
    www (lub wget czy też curl, choć te to chyba potrafią). Do tego chyba
    potrzebne jest TCP więc funkcjonalność polegająca na UDP jest co najmiej
    mało użyteczna.
    Kolejna rzecz to DHCP; wierz mi lub nie, ale jeśli będziesz chciał z tym
    wyjść poza swój stół warsztatowy to nie ma opcji.
    A to dopiero warstwa dość niska; na tym jeszcze trzeba zrobić jakiś
    interfejs do konfiguracji ustrojstwa, najlepiej aby był czytelny dla
    człowieka i nie polegał jedynie na przesyłaniu jednobajtowych instrukcji bo
    po miesiącu się zapomina co jaka znaczy.

    No i program użytkowy, który pewnie się będzie rozwijał.
    >
    > 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.
    Przed laty ktoś napisał jakiś serwer na 512 słowach(!) flasha i kilkunastu
    bajtach RAM, interfejs na RS232, ot taka ciekawostka.
    >
    > 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?
    chyba coś koło 20 bajtów (piszę z głowy RemoteIP remote_port, local_port,
    seq1, seq2 i coś tam jeszcze.)

    jp


  • 14. Data: 2014-08-07 13:25:02
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Atlantis <m...@w...pl>

    W dniu 2014-08-07 12:03, Zbych pisze:

    > Po prostu trzyma bufory w MACu, ma to sens skoro np. pic18f67j60 ma
    > ~3,8kB RAMu a wbudowany MAC ma bufor 8kB.

    A co z układami zawierającymi ENC28J60? One w końcu też korzystają z
    stosu Microchipa. Wtedy już trzeba buforować kolejne pakiety po stronie
    MCU, czy też dane są na bieżąco przesyłane przez SPI?

    Czy w podobny sposób można by to zrobić z RTL8019AS? Układ jest
    podłączany do magistrali równoległej i jest widoczny w przestrzeni
    adresowej MCU.


  • 15. Data: 2014-08-07 13:35:50
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Atlantis <m...@w...pl>

    W dniu 2014-08-07 12:32, jacek pozniak pisze:

    > Ot choćby te UDP; ja na przykład nie wiedziałbym jak przez UDP połączyć się
    > z tym serwerem wykorzystując ogólnie dostępne narzędzia typu przegladarka
    > www (lub wget czy też curl, choć te to chyba potrafią). Do tego chyba
    > potrzebne jest TCP więc funkcjonalność polegająca na UDP jest co najmiej
    > mało użyteczna.

    Żadne z powyższych narzędzi do tego nie służą. Zresztą przesyłanie
    danych pakietami UDP nie jest rozwiązaniem dla końcowego użytkownika, za
    to w ten sposób można fajnie zrealizować komunikację M2M. Stawianie
    serwera WWW na mikrokontrolerze celem generowania jakiegoś prostego GUI
    mija się z cele, przynajmniej takie jest moje zdanie. Lepiej wykorzystać
    do tego jakiś istniejący serwer, a jeśli go nie ma - postawić (chociażby
    na Raspberry Pi) i to jego skomunikować z czujką czy sterownikiem na MCU.


    > Kolejna rzecz to DHCP; wierz mi lub nie, ale jeśli będziesz chciał z tym
    > wyjść poza swój stół warsztatowy to nie ma opcji.

    A po co mi DHCP, jeśli chcę, żeby urządzenie było łatwo identyfikowalne
    w okolicznej sieci? Ok - można co chwilę prosić wszystko dookoła, żeby
    łaskawie się przedstawiło, bo właśnie pozmieniała się konfiguracja
    numerów IP. W mojej lokalnej sieci z DHCP korzystają praktycznie tylko
    mobilne urządzenia WiFi. Wszystko inne pracuje na swoich własnych, na
    stałe przypisanych numerach.


    > A to dopiero warstwa dość niska; na tym jeszcze trzeba zrobić jakiś
    > interfejs do konfiguracji ustrojstwa, najlepiej aby był czytelny dla
    > człowieka i nie polegał jedynie na przesyłaniu jednobajtowych instrukcji bo
    > po miesiącu się zapomina co jaka znaczy.

    Telnet i konsola w zupełności wystarczą.


    > chyba coś koło 20 bajtów (piszę z głowy RemoteIP remote_port, local_port,
    > seq1, seq2 i coś tam jeszcze.)

    Hmm... A tak z ciekawości, to jak buforowana jest sama wiadomość, na
    wypadek, gdyby pakiety ją zawierające dotarły w niewłaściwej kolejności?
    No chyba, że stos odrzuca "późniejsze" pakiety, zanim nie przetrawi
    tego, na który czeka?


  • 16. Data: 2014-08-07 14:54:18
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: jacek pozniak <j...@f...pl>

    >
    >
    >> chyba coś koło 20 bajtów (piszę z głowy RemoteIP remote_port, local_port,
    >> seq1, seq2 i coś tam jeszcze.)
    >
    > Hmm... A tak z ciekawości, to jak buforowana jest sama wiadomość, na
    > wypadek, gdyby pakiety ją zawierające dotarły w niewłaściwej kolejności?
    > No chyba, że stos odrzuca "późniejsze" pakiety, zanim nie przetrawi
    > tego, na który czeka?
    uIP nie implementuje wszystkich mechanizmów bo był projektowany na małe
    urządzenia.
    Poczytaj sobie pdf; tam jest opisany sposób realizacji i ograniczenia.

    jp


  • 17. Data: 2014-08-07 14:56:30
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Marek <f...@f...com>

    On Thu, 07 Aug 2014 11:31:33 +0200, Atlantis <m...@w...pl>
    wrote:
    > 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?

    Licząc. Bufory rx/tx gniazd (każde gniazdo ma bufor rx i bufor tx) są
    statyczne i definiowane na etapie kompilacji. Liczba buforów gniazd
    tcp określa liczbę jednocześnie możliwych otwartych połączeń, a
    jeden pojedynczy bufor może być nawet wielkości 1 bajta, jeśli
    chcemy. Ale oczywiście maleńki bufor będzie mocno ograniczał
    transfer. Rozsądna wielkość bufora to 20-100 bajtów. Jeśli chcemy
    mieć dwa gniazda przy buforze 20 bajtów mamy (20rx+20tx)*2 gniazda
    daje to 80 bajtów. Sam stos (w zależności jakie moduły wkompilujemy)
    potrzebuje nie więcej niż 100 bajtów. Jeśli chcemy szybsze osiągi z
    większymi buforami gniazd to można je umieścic w ramie encj (8KB)
    zwalniając tym ram mcu. Jeśli wiemy, że nasze urządzenie więcej
    wysyła niż odbiera, możemy dla danego gniazda zwiększyć bufor tx
    kosztem rozmiaru rx. Stos mhcp jest nieźle zoptymalizowany pod kątem
    potrzebnego mu ram.
    Zdefiniowane bufory są pogrupowane (co determinuje ich
    przeznaczenie), każda grupa ma swój identyfikator, który jest
    wykorzystywany w wywołaniu funkcji inicjujacej połączenie, to
    determinuje jaki bufor zostanie przypisany temu połączeniu i jakie
    osiągi ono będzie miało.

    To tak w skrócie, bo o stosie mchp to książkę można napisać....

    --
    Marek


  • 18. Data: 2014-08-07 15:16:22
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Marek <f...@f...com>

    On Thu, 07 Aug 2014 13:25:02 +0200, Atlantis <m...@w...pl>
    wrote:
    > A co z układami zawierającymi ENC28J60? One w końcu też korzystają z
    > stosu Microchipa. Wtedy już trzeba buforować kolejne pakiety po
    stronie
    > MCU, czy też dane są na bieżąco przesyłane przez SPI?

    To jest bardziej skomplikowane, w stosie mchp buforowany jest payload
    a nie cały pakiet. O ile mi wiadomo (z luźnej analizy źródeł, proszę
    mnie poprawić, jeśli się mylę) pakiet jest odbierany za pośrednictwem
    enc28j60, ale payload jest "wyciągany" w mcu i (jeśli wybierzemy ram
    encj jako bufor payloadu) jest zapisywany z powrotem do ram encj, z
    którego znowu (kolejny transfer spi) jest kopiowany do "warstwy
    aplikacji" przez funkcje api TCPGet* (gdy chcemy pobrać odebrane
    bajty payloadu).

    --
    Marek


  • 19. Data: 2014-08-07 21:15:40
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Michał Baszyński <m...@g...ze.ta.pl>

    W dniu 2014-08-07 08:56, Atlantis pisze:

    > 2) Procki STM i PIC w wersji 32bit posiadają często zintegrowane moduły
    > Ethernet, ale tylko MAC. PHY trzeba podpiąć

    świat się nie kończy na STM i PIC

    --
    Pozdr.
    Michał


  • 20. Data: 2014-08-08 09:27:39
    Temat: Re: uIP - zapotrzebowanie na zasoby
    Od: Atlantis <m...@w...pl>

    W dniu 2014-08-07 21:15, Michał Baszyński pisze:

    > świat się nie kończy na STM i PIC

    Co nie zmienia faktu, że są one (razem z AVR-ami) jednymi z
    najpopularniejszych rodzin. Oczywiście można kombinować z jakimiś
    alternatywami, szukając układu, który będzie miał wszystkie potrzebne
    peryferia. Jednak podejrzewam, że ostatecznie na naukę nowej platformy
    poświęcę więcej czasu, niż na zaprojektowanie płytki zawierającej
    zewnętrzny kontroler.

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: