RTV forum PL | NewsGroups PL

Jak rozpocząć wysyłanie danych przez Ethernet z ENC28J60 i STM32F103RBT6?

Jak zacząć ENC28J60 i STM32F103RBT6 ?

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak rozpocząć wysyłanie danych przez Ethernet z ENC28J60 i STM32F103RBT6?

Goto page 1, 2, 3  Next

pytajacy
Guest

Thu Oct 30, 2014 12:31 pm   



Witam,
chciałbym zacząć zabawę z wysyłaniem
danych przez internet.
To znaczy chciałbym wysyłać dane pomiarowe
z procesora na serwer (przez internet).
Czy w takim zastosowaniu takie zestawienie
tych układów będzie działać?
Chciałbym dodać że o magistrali CAN i protokole
MODBUS mam jakieś pojęcie, natomiast komunikacja
po ETHERNECIE to dla mnie wielka niewiadoma.

Czy można prosić o jakieś wskazówki na początek?

Czy jest jakiś program na PC pod windows, którym
będę mógł obejrzeć dane przychodzące po ETHERNECIE
(coś jak REALTERM czy TeraTerm)?

pytajacy

platformowe głupki
Guest

Thu Oct 30, 2014 12:31 pm   



tak przy okazji to może wireshark się przyda...

Marek
Guest

Thu Oct 30, 2014 12:35 pm   



On Thu, 30 Oct 2014 03:31:40 -0700 (PDT), pytajacy <rora1@poczta.fm>
wrote:
Quote:
MODBUS mam jakieś pojęcie, natomiast komunikacja
po ETHERNECIE to dla mnie wielka niewiadoma.

Źle podchodzisz do tematu. Współcześnie nie trzeba się znać.
Wystarczy mieć pojęcie jak korzystać z zasobów bibliotek, które daje
Ci producent mcu (na którym się znasz) lub społeczność wokół tego
mcu, która udostępnia biblioteki. Ty masz jedynie połączyć to do
kupy. Ewentualnie w zamian możesz dać społeczności patche lub
uwagi/doświadczenia. Z reguły tajemna wiedza jak "działa ethernet"
nie jest potrzebna aby uzyskać cel, o którym pisałeś. No chyba, że
chcesz się doktoryzować w tym temacie.

--
Marek

Jarosław Sokołowski
Guest

Thu Oct 30, 2014 1:06 pm   



Pan Marek napisał:

Quote:
MODBUS mam jakieś pojęcie, natomiast komunikacja
po ETHERNECIE to dla mnie wielka niewiadoma.

Źle podchodzisz do tematu. Współcześnie nie trzeba się znać.
Wystarczy mieć pojęcie jak korzystać z zasobów bibliotek, które
daje Ci producent mcu (na którym się znasz) lub społeczność wokół
tego mcu, która udostępnia biblioteki. Ty masz jedynie połączyć
to do kupy. Ewentualnie w zamian możesz dać społeczności patche lub
uwagi/doświadczenia. Z reguły tajemna wiedza jak "działa ethernet"
nie jest potrzebna aby uzyskać cel, o którym pisałeś. No chyba, że
chcesz się doktoryzować w tym temacie.

Na temat tego, jak się dzisiaj pisze doktoraty, też by wiele mozna.

Jarek (z zasobów bibliotek, to się korzystało kiedyś)

--
Czasem ktoś się spyta | Wariackie papiery
gdy zajrzy do wora | i dyplom doktora
czy to jest na zupę | który nie pomoże
czy to na doktorat | kiedy będziesz chora

pytajacy
Guest

Thu Oct 30, 2014 2:05 pm   



Quote:
Źle podchodzisz do tematu. Współcześnie nie trzeba się znać.
Wystarczy mieć pojęcie jak korzystać z zasobów bibliotek, które daje
Ci producent mcu (na którym się znasz) lub społeczność wokół tego
mcu, która udostępnia biblioteki. Ty masz jedynie połączyć to do
kupy. Ewentualnie w zamian możesz dać społeczności patche lub
uwagi/doświadczenia. Z reguły tajemna wiedza jak "działa ethernet"
nie jest potrzebna aby uzyskać cel, o którym pisałeś. No chyba, że
chcesz się doktoryzować w tym temacie.

Nie chcę się doktoryzować. Zależy mi aby w miarę łatwo to uruchomić i
cieszyć się z uruchomionego połączenia.
Dopiero rozkminiam kwestię bibliotek dostępnych do modułów ethernetowych.

Mam taką płytkę:
https://elty.pl/pl/p/Plyta-prototypowa-z-STM32F103RBT6-/509

Do tego środowisko CooCox.
Do tej płytki podłączyłem wyświetlacz graficzny 4,3 cala i
działa mi to.

Ale chciałem podłączyć jeszcze jakiś interfejs ETHERNET i pomyślałem
że układ z ENC28J60 będzie dobry bo łatwo podłącze do tej płytki.
Ale wyczytałem że jest jeszcze coś takiego jak W5100/W5500 - tylko
że droższy.
Co polecacie na początek żebym nie poległ na trudności na początku.

pytajacy

platformowe głupki
Guest

Fri Oct 31, 2014 12:48 pm   



Quote:
Na temat tego, jak się dzisiaj pisze doktoraty, też by wiele mozna.

a to dobry przykład - koles zapytał jak to odpalic, a wy mu
proeuropejskie wnioski...

dziwne, ze roman jeszcze nie strzelił w tym watku...

przykłady ze stron sa napisane pod ewb lub keil mdk a nie pod coocoxa...

platformowe głupki
Guest

Fri Oct 31, 2014 1:07 pm   



musisz wleźć ;o)))

http://usbdp.org/forum/viewtopic.php?f=171&t=403

LeonKame
Guest

Fri Oct 31, 2014 1:49 pm   



Dlaczego nie STM32F107 ???? Masz zintegrowany MAC podlaczasz tylko PHY
i juz.

Marek Borowski
Guest

Fri Oct 31, 2014 2:50 pm   



On 2014-10-30 12:35, Marek wrote:
Quote:
On Thu, 30 Oct 2014 03:31:40 -0700 (PDT), pytajacy <rora1@poczta.fm> wrote:
MODBUS mam jakieś pojęcie, natomiast komunikacja
po ETHERNECIE to dla mnie wielka niewiadoma.

Źle podchodzisz do tematu. Współcześnie nie trzeba się znać. Wystarczy
mieć pojęcie jak korzystać z zasobów bibliotek, które daje Ci producent
mcu (na którym się znasz) lub społeczność wokół tego mcu, która
Podejscie typowe dla 90% ludzi z ktorymi sie spotykam - rzemieslnicy

niemajacy pojecia o tym co wlasciwie robia.

Quote:
udostępnia biblioteki. Ty masz jedynie połączyć to do kupy. Ewentualnie
w zamian możesz dać społeczności patche lub uwagi/doświadczenia. Z
reguły tajemna wiedza jak "działa ethernet" nie jest potrzebna aby
uzyskać cel, o którym pisałeś. No chyba, że chcesz się doktoryzować w
tym temacie.

Jasne..... Dlatego jest pelno ludzi z dyplomami studiow wyzszych, ale

malo specjalistow.


Pozdrawiam

Marek

platformowe głupki
Guest

Fri Oct 31, 2014 3:34 pm   



jako, że temat interesujący, a grupa nie może jakoś wyleźć z jedynie
słusznych wniosków po/eu/pw, to ja zacznę:

1. skąd zassać bibliotekę do ENC dla stma
2. jak ją dołączyć do programu w cocoxie, a może raczej jak podpiąć swój
program pod sheudlera (czy jakoś tak) biblioteki?
3. co zmienić, żeby zaczęła działać i dała się skompilować pod cocoxem?
4. co jeśli chodzi o program na PC, jakieś gotowe źródła pod Windę, a
pewnie lepiej Linux?

platformowe głupki
Guest

Fri Oct 31, 2014 4:43 pm   



zakładam odrębną gałąź, żeby nie przeszkadzać w jedynie słusznej
wymianie b...

pierwsza strona z google wskazuje na:
coś tam
a to z kolei na:
http://tuxgraphics.org/electronics/200905/embedded-tcp-ip-stack.shtml

Ktoś coś napisze na ten temat?

platformowe głupki
Guest

Fri Oct 31, 2014 4:48 pm   



drugi link z google to:
http://www.mikroe.com/download/eng/documents/compilers/mikroc/pro/arm/help/ethernet_library.htm

ale to się da jakoś ściągnąć? tu przynajmniej jest jakiś opis...

platformowe głupki
Guest

Fri Oct 31, 2014 4:58 pm   



no właśnie dużo jest ale nie na temat... jakieś avr pic i inne, ale nie
do stm... więc pytanie jest jak najbardziej na miejscu...

Atlantis
Guest

Fri Oct 31, 2014 7:17 pm   



W dniu 2014-10-31 14:50, Marek Borowski pisze:

Quote:
Podejscie typowe dla 90% ludzi z ktorymi sie spotykam - rzemieslnicy
niemajacy pojecia o tym co wlasciwie robia.

Czyli co? Każdy powinien w celach edukacyjnych nauczyć się sterować
każdym układem za pomocą machania pinami i wypisania heksadecymalnych
wartości do poszczególnych rejestrów? Tylko po co? Po co robić od nowa
pracę, którą ktoś już wykonał? Po co marnować czas na pisania już
istniejącej biblioteki?

Dla mnie jest to trochę tak absurdalne, jak twierdzenie, że początkujący
powinien móc sobie ten układ najpierw zaprojektować z bramek (a
najlepiej tranzystorów) a potem oprogramować go w assemblerze
określonego procesora.

Najważniejsze jest to, żeby zacząć i uruchomić układ. Jeśli początkujący
będzie zaczynał podejście od najbardziej stromego zbocza, to w końcu
spadnie, potłucze się i zniechęci. Nie ma nic złego w korzystaniu z
wydeptanej ścieżki. A pozostałą wiedzę kiedyś trzeba będzie opanować -
przy okazji portowania albo modyfikacjo biblioteki. Jednak wszystko w
swoim czasie.

Atlantis
Guest

Sat Nov 01, 2014 9:15 am   



W dniu 2014-10-30 13:05, pytajacy pisze:

Quote:
Ale chciałem podłączyć jeszcze jakiś interfejs ETHERNET i pomyślałem
że układ z ENC28J60 będzie dobry bo łatwo podłącze do tej płytki.

W gruncie rzeczy od strony programowej potrzebujesz dwóch rzeczy, żeby
komunikować się ze światem za pomocą ENC28J60:
1) Drivera, czyli zbioru niskopoziomowych procedur, które są
odpowiedzialne za odczytywanie/zapisywanie informacji z/do rejestrów i
buforów układu za pośrednictwem magistrali SPI. Kod drivera jest rzecz
jasna specyficzny dla konkretnej rodziny procesorów (a w pewnym zakresie
także do konkretnego modelu). Musisz znaleźć driver przygotowany dla
twojego procesora, bądź też przygotować go samodzielnie, np. modyfikując
kod napisany pod jakąś inną rodzinę.
2) Stosu TCP/IP. Ta część odpowiada za przetwarzanie informacji
pobranych z lub wysyłanych do bufora ENC28J60. Kod sprawdza z jakim
typem pakietu mamy do czynienia (ARP, ICMP, TCP, UDP) i podejmuje
odpowiednie akcje - ustawia odpowiedni adres IP, odpowiada na ping, albo
udostępnia nam otrzymaną wiadomość. To samo w drugą stronę. Ta część
jest bardziej uniwersalna i mniej zależna od platformy, co nie znaczy
wcale, że z miejsca się skompiluje - być może trzeba będzie się pozbyć
elementów typowych dla określonej rodziny, jak np. PROGMEM w AVR-ach.

Generalnie masz kilka różnych stosów do wyboru, miedzy innymi:
1) Tuxgraphics.org - przygotowany pod AVR-y, ale pewnie bez problemu
będzie się dało go przeportować pod STM-y (może ktoś już to zresztą
zrobił). Gdy idzie o przesyłanie małych ilości danych, jest bardzo
prosty w obsłudze, nie zużywa dużych zasobów, dlatego też świetnie
sprawdza się na małych MCU. Te zalety mają jednak swoją cenę - cały
komunikat musi się mieścić w jednej ramce Ethernetowej, nie można też
utrzymać trwającej sesji TCP, więc nie da się na tym zrealizować np.
obsługi telnetu.
2) uIP - wciąż lekki stos, o nieco większych możliwościach. Istnieją
wersje pod różne platformy, więc nie powinno być problemów z STM-ami.
3) lwIP - cięższy stos, wymagający większych zasobów sprzętowych. Z tego
powodu nie bardzo nadaje się do stosowania z ośmiobitowymi MCU, ale
doskonale pasuje do STM32. Z tego co czytałem, to trzeba poświęcić
dłuższą chwilę na jego opanowanie. Od strony programistycznej obsługa
zbliżona do połączeń sieciowych na "dużych" komputerach.

Jest też całkiem rozbudowany i funkcjonalny stos od Mircochipa, ale on
działa tylko na PIC-ach, a licencja z tego co wiem zakazuje portowania
na inne platformy.


Quote:
Ale wyczytałem że jest jeszcze coś takiego jak W5100/W5500 - tylko
że droższy.

W5500 jest w praktycznie tej samej cenie co ENC28J60 (mam tu na myśli
oczywiście sam układ, a nie całe moduły, bo tu faktycznie może być różnie).

Układy Wiznetu to trochę inna szkoła niż to, co opisałem powyżej. Tam
układ zajmuje się całą komunikacją, więc twój MCU nie musi dźwigać
ciężaru przetwarzania poszczególnych warstw stosu. Rejestry i bufory
wewnątrz zorganizowane są w sposób przypominający typowe sockety POSIX,
a ty jedynie musisz zapisywać i odczytywać z nich/do nich dane i
metadane. W paru miejscach trzeba też podejmować odpowiednie decyzje, w
zależności np. od statusu połączenia.
To chyba najprostszy sposób realizacji komunikacji sieciowej. Zwłaszcza,
jeśli znajdziesz dobrą i dopracowaną bibliotekę.

Oczywiście są jeszcze inne rozwiązania. Ostatnio coraz większą
popularnością cieszą się moduły WiFi, ze śmiesznie tanim ESP8266 na
czele. Dane przez Internet możesz też przesyłać za pośrednictwem modułów
GSM, np. SIM900 - dobre rozwiązanie, gdy w pobliżu nie masz żadnej
końcówki sieci lokalnej. Sam myślę o zrobieniu na tym systemu nadzoru
nad działką. Wink

Goto page 1, 2, 3  Next

elektroda NewsGroups Forum Index - Elektronika Polska - Jak rozpocząć wysyłanie danych przez Ethernet z ENC28J60 i STM32F103RBT6?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map