Mikrokontrolery STM32. i Ethernet. w przykładach. Marcin Peczarski

Podobne dokumenty
ISBN Copyright by Wydawnictwo BTC Legionowo 2008

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

ISBN. Copyright by Wydawnictwo BTC Legionowo 2010

STM32. Ethernet. I i s Marcin Peczarski. w p v z y k Z a à a c k

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Centrum Szkoleo w Sochaczewie. Grzegorz Domaoski. grzegorz.domanski@wszim-sochaczew.edu.pl. MS Access 2010

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Protokoły sieciowe - TCP/IP

Konfiguracja przeglądarek do pracy z aplikacjami Asix.Evo Instalacja i konfiguracja dodatku IE Tab

Przesyłania danych przez protokół TCP/IP

Centrum Szkoleo w Sochaczewie. Grzegorz Domaoski. MS Access 2010

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi. nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Asix. Konfiguracja serwera MS SQL dla potrzeb systemu Asix. Pomoc techniczna NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

asix4 Podręcznik użytkownika NetLink - drajwer protokołu MPI/Profibus dla SIMATIC S7 przy wykorzystaniu modułu NetLink Lite SYSTEME HELMHOLZ

asix4 Podręcznik użytkownika CtMus04 - drajwer do wymiany danych z urządzeniami sterującymi MUS-04 firmy ELEKTORMETAL S.A.

Moduł Ethernetowy. instrukcja obsługi. Spis treści

ISBN Copyright by Wydawnictwo BTC Warszawa Redaktor techniczny: Delfina Korabiewska Redaktor merytoryczny: mgr Anna Kubacka

Asix.Evo - Uruchomienie aplikacji WWW

asix4 Podręcznik użytkownika SRTP - drajwer protokołu SRTP Podręcznik użytkownika

Sieci Komputerowe Modele warstwowe sieci

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Instrukcja do zajęć laboratoryjnych. Numer ćwiczenia: 5

Serwer Sieci Web (IIS)

asix4 Podręcznik użytkownika Drajwer protokołu ADAM Podręcznik użytkownika

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna

asix4 Podręcznik użytkownika FP drajwer protokołu mierników firmy METRONIC Kraków Podręcznik użytkownika

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

asix4 Podręcznik użytkownika OMRON drajwer protokołu HOSTLINK dla sterowników OMRON Podręcznik użytkownika

Spis treści. 1. Konfiguracja systemu ewuś Logowanie się do systemu ewuś Korzystanie z systemu ewuś Weryfikacja cykliczna...

asix4 Podręcznik użytkownika AS511 - drajwer protokołu AS511 dla SIMATIC Podręcznik użytkownika

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Instrukcja użytkownika KRISTECH, 2016

Asix Konfiguracja systemu Asix dla usługi Pulpitu zdalnego Remote Desktop Services, (Terminal Services)

asix4 Podręcznik użytkownika DXF351 - drajwer protokołu urządzeń Compart DXF351 Podręcznik użytkownika

asix4 Podręcznik użytkownika PROTRONICPS - drajwer protokołu regulatorów PROTRONICPS Podręcznik użytkownika

asix4 Podręcznik użytkownika FESTO - drajwer protokołu interfejsu diagnostycznego sterowników FESTO Podręcznik użytkownika

asix4 Podręcznik użytkownika S7_TCPIP - drajwer do wymiany danych ze sterownikami SIMATIC poprzez Ethernet

asix4 Podręcznik użytkownika CAN_AC_PCI - drajwer protokołu CANBUS dla karty CAN_ACx_PCI Podręcznik użytkownika

Serwer Sieci Web (IIS)

V4R3. SEE Electrical Expert V4R3 Sposoby zabezpieczenia programu

Zadania z sieci Rozwiązanie

Sieci komputerowe - administracja

Serwer Sieci Web (IIS)

asix4 Podręcznik użytkownika CANOPEN drajwer protokołu CANBUS dla karty PCI_712 NT Podręcznik użytkownika

Sieci komputerowe Computer networks. Informatyka I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

asix4 Podręcznik użytkownika BUFOR - drajwer protokołu uniwersalnego Podręcznik użytkownika

Comarch BI Point Standalone ulotka. Wersja: 6.2

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

>>> Techniki rozbudowy systemów wbudowanych >>> Biblioteki wspomagające rozbudowę systemów wbudowanych. Name: Mariusz Naumowicz Date: 29 maja 2019

ZiMSK dr inż. Łukasz Sturgulewski, DHCP

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

SYSTEMY WIZUALIZACJI. ASIX wspólna platforma wizualizacji paneli operatorskich (HMI) i systemów nadrzędnych (SCADA)

Sieci komputerowe - opis przedmiotu

asix4 Podręcznik użytkownika SAPIS7 - drajwer protokołu SAPIS7 Podręcznik użytkownika

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

asix4 Podręcznik użytkownika Drajwer DDE Podręcznik użytkownika

Comarch B2B Ulotka. Comarch ERP XL / Comarch ERP Altum. Zmiany w wersji

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

asix4 Podręcznik użytkownika MUPASZ - drajwer protokołu sterownika MUPASZ Podręcznik użytkownika

Programowanie współbieżne i rozproszone

System operacyjny UNIX Internet. mgr Michał Popławski, WFAiIS

asix4 Podręcznik użytkownika Drajwer OPC Podręcznik użytkownika

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

Centrum Szkoleo w Sochaczewie. Grzegorz Domaoski. MS Access 2010

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1

asix4 Podręcznik użytkownika DSC - drajwer protokołu sterownika DSC Podręcznik użytkownika

Instrukcja konfiguracji Comarch ERP Altum z komponentem Crystal Reports w wersji

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

Kod produktu: MP-W7100A-RS232

asix4 Podręcznik użytkownika CtTwinCAT - drajwer protokołu ADS systemu TwinCAT Podręcznik użytkownika

asix Autoryzacja dostępu do zasobów WWW systemu asix (na przykładzie systemu operacyjnego Windows 2008)

Comarch BI Point Standalone ulotka. Wersja: 6.2

Dr Michał Tanaś(

iqportal abonencki panel zarządzania

asix4 Podręcznik użytkownika COMLI - drajwer protokołu COMLI Podręcznik użytkownika

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. Asix.Evo. Przeglądarkowa wersja aplikacji Asix.Evo znane problemy. Pomoc techniczna

Zespół Szkół Ponadgimnazjalnych nr 1 im. ks. Stanisława Konarskiego w Jędrzejowie

Instrukcja użytkownika KRISTECH,

Wyższa Szkoła Zarządzania i Marketingu w Sochaczewie. Grzegorz Domaoski. grzegorz.domanski@wszim-sochaczew.edu.pl. MS SQL Server

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

asix4 Podręcznik użytkownika MELSECA - drajwer dedykowanego protokołu sterowników MITSUBISHI Podręcznik użytkownika

Sieci komputerowe Warstwa transportowa

asix4 Podręcznik użytkownika AS512 - drajwer protokołu AS512 dla SIMATIC S5 Podręcznik użytkownika

DHCP + udostępnienie Internetu

asix4 Podręcznik użytkownika MicroSmart - drajwer do wymiany danych ze sterownikami MicroSmart firmy IDEC

PROGRAM PRAKTYKI ZAWODOWEJ. Technikum Zawód: technik informatyk

Rok akademicki: 2012/2013 Kod: ITE s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

E.13.1 Projektowanie i wykonywanie lokalnej sieci komputerowej / Piotr Malak, Michał Szymczak. Warszawa, Spis treści

Migracja Business Intelligence do wersji

Transkrypt:

Mikrokontrolery STM32 i Ethernet w przykładach Marcin Peczarski

Książka jest przewodnikiem-poradnikiem poświęconym praktycznym aspektom implementowania protokołów sieciowych na mikrokontrolery STM32 z rodziny Connectivity Line. Autor przedstawia także przykładowe aplikacje tworzone na bazie dostępnego bezpłatnie protokołu sieciowego TCP/IP o nazwie lwip (light-weight Internet Protocol). Przykłady przedstawione w książce napisano w języku C (ARM-GCC) w taki sposób, aby mogły być łatwo przeniesione na inne typy mikrokontrolerów, co zwiększa uniwersalność prezentowanych treści. Książka jest przeznaczona dla osób, które mają doświadczenie w programowaniu mikrokontrolerów języku C oraz elementarną wiedzę na temat podzespołów elektronicznych: elektroników-konstruktorów, informatyków, studentów kierunków technicznych, a także uczniów i hobbystów aktywnie uprawiających elektronikę lub informatykę. Nie jest konieczne posiadanie wiedzy na temat sieci komputerowych lub protokołów sieciowych wszystkie niezbędne zagadnienia autor wyjaśnia w książce od podstaw. Sekretarz redakcji: mgr Katarzyna Kempista Redaktor merytoryczny: mgr inż. Mariola Mańkowska Redaktor techniczny: mgr Delfina Korabiewska ISBN 978-83-60233-68-9 Copyright by Wydawnictwo BTC Legionowo 2011 Wydawnictwo BTC ul. Lwowska 5 05-120 Legionowo fax: (22) 767-36-33 http://www.btc.pl e-mail: redakcja@btc.pl Wydanie I Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz wydawnictwo BTC dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz wydawnictwo BTC nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentów niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Druk i oprawa: Drukarnia Narodowa S.A.

Spis treści 3 Przedmowa...7 1. Podstawy...11 1.1. Mikrokontroler STM32F107...12 1.2. Struktura przykładów...13 1.3. Przykład 1a miganie diodami świecącymi...15 1.3.1. Plik ex_led.c... 16 1.3.2. Pliki util_delay.h i util_delay.c... 17 1.3.3. Pliki board_led.h i board_led.c... 17 1.3.4. Pliki stm32f10x_gpio.h i stm32f10x_rcc.h... 18 1.3.5. Pliki stm32f10x.h, system_stm32f10x.h i core_cm3.h... 19 1.3.6. Plik libstm32f10x.a... 19 1.3.7. Plik stm32f10_conf.h... 20 1.3.8. Pliki board_def.h i board_defs.h... 21 1.3.9. Plik stdint.h... 22 1.3.10. Plik startup_stm32_cld.c... 22 1.4. Kompilowanie przykładów...23 1.5. Wejścia i wyjścia binarne...26 1.6. Wyświetlacz ciekłokrystaliczny...30 1.7. Przykład 1b test wyświetlacza ciekłokrystalicznego...33 1.7.1. Pliki board_lcd.h i board_lcd_ks0108.c... 34 1.7.2. Pliki font5x8.h i font5x8.c... 37 1.7.3. Pliki util_lcd.h i util_lcd.c... 37 1.7.4. Plik ex_lcd.c... 38 1.8. Organizacja pamięci programu...38 1.8.1. Sekcje... 38 1.8.2. Procedura startowa... 42 1.8.3. Skrypt konsolidatora... 45 1.9. Styl pisania i komentowania tekstu źródłowego...49 2. Intersieci... 51 2.1. Model warstwowy...52 2.2. Ethernet...54 2.3. IP protokół intersieci...60 2.4. ARP tłumaczenie adresów sieciowych na adresy sprzętowe...66 2.5. Sieć testowa...67 2.6. Przykład 2 monitor sieci...69 2.6.1. Pliki board_init.h i board_init.c... 70 2.6.2. Pliki util_led.h i util_led.c... 79 2.6.3. Plik ex_eth.c... 80

4 Spis treści 3. Stos TCP/IP... 83 3.1. Przegląd implementacji...84 3.2. Biblioteka lwip...86 3.2.1. Dopasowanie do architektury mikrokontrolera plik cortex-m3.h... 86 3.2.2. Parametry konfiguracyjne plik lwipopts.h... 93 3.2.3. Kompilowanie plik liblwip4.a... 100 3.2.4. Kody błędów... 101 3.2.5. Struktura pbuf... 101 3.2.6. Struktura netif... 104 3.3. DMA... 106 3.4. Przykład 3a pierwsza wersja sterownika Ethernetu... 109 3.4.1. Pliki util_time.h i util_time.c... 109 3.4.2. Pliki util_eth.h i util_eth.c inicjowanie interfejsu sieciowego... 112 3.4.3. Plik util_eth.c wysyłanie ramek ethernetowych... 117 3.4.4. Plik util_eth.c odbieranie ramek ethernetowych... 118 3.4.5. Pliki util_lwip.h i util_lwip.c inicjowanie interfejsu sieciowego... 120 3.4.6. Pliki util_lwip.h i util_lwip.c budziki... 122 3.4.7. Pliki board_conf.h i board_conf.c... 124 3.4.8. Pliki util_lcd_ex.h i util_lcd_ex.c... 125 3.4.9. Plik ex_ip.c... 125 3.5. Przykład 3b sterownik Ethernetu bez kopiowania... 127 3.5.1. Plik util_eth_nc.c inicjowanie interfejsu sieciowego... 127 3.5.2. Plik util_eth_nc.c wysyłanie ramek ethernetowych... 130 3.5.3. Plik util_eth_nc.c odbieranie ramek ethernetowych... 130 3.6. Przykład 3c eksperymentalny sterownik Ethernetu bez kopiowania... 132 3.6.1. Plik util_eth_zc.c inicjowanie interfejsu sieciowego... 133 3.6.2. Plik util_eth_zc.c wysyłanie ramek ethernetowych... 134 3.7. Testy sterowników... 136 3.8. ICMP komunikaty kontrolne i komunikaty o błędach... 137 3.8.1. Sprawdzanie osiągalności odbiorcy... 138 3.8.2. Powiadamianie o nieosiągalności odbiorcy... 139 3.8.3. Kontrola przepływu... 139 3.8.4. Przekroczenie czasu... 140 3.8.5. Problem z parametrem... 140 3.9. DHCP konfigurowanie ustawień sieciowych węzła... 141 4. Programowanie w modelu klient-serwer...143 4.1. Numer portu... 145 4.2. TCP... 146 4.2.1. Podstawowe własności... 146 4.2.2. Nagłówek... 147

Spis treści 5 4.2.3. Otwieranie połączenia... 149 4.2.4. Przesyłanie danych... 152 4.2.5. Zamykanie połączenia... 153 4.2.6. Funkcje biblioteczne... 154 4.2.7. Funkcje zwrotne... 160 4.3. UDP... 162 4.3.1. Podstawowe własności... 162 4.3.2. Nagłówek... 162 4.3.3. Inicjowanie klienta i serwera... 163 4.3.4. Przesyłanie danych... 163 4.3.5. Funkcje biblioteczne... 164 4.3.6. Funkcja zwrotna... 166 4.4. Uwagi końcowe... 166 5. Serwer TCP...169 5.1. Protokół warstwy aplikacji... 170 5.1.1. Projekt protokołu... 170 5.1.2. Projekt implementacji protokołu... 172 5.2. Przykład 5a pierwsza wersja serwera TCP... 178 5.2.1. Pliki tcp_server.h i tcp_server.c... 178 5.2.2. Plik ex_tcpd.c... 185 5.2.3. Testowanie przykładu... 186 5.3. Przykład 5b serwer TCP z nadzorcą... 188 5.3.1. Pliki util_wdg.h i util_wdg.c... 189 5.3.2. Plik ex_tcpd_wdg.c... 190 5.3.3. Testowanie przykładu... 191 6. Klient TCP...193 6.1. Projekt protokołu... 194 6.2. Przykład 6a pierwsza wersja klienta TCP... 197 6.2.1. Tryby o obniżonym poborze mocy... 198 6.2.2. Pliki util_rtc.h i util_rtc.c... 198 6.2.3. Pliki tcp_client.h i tcp_client.c... 202 6.2.4. Plik util_error.h... 210 6.2.5. Plik ex_tcp_client.c... 211 6.2.6. Testowanie przykładu... 212 6.3. Przykład 6b klient TCP z obsługą rejestrów zapasowych... 214 6.3.1. Pliki util_bkp.h i util_bkp.c... 214 6.3.2. Plik tcp_client_bkp.c... 216 6.3.3. Plik ex_tcp_clnt_bkp.c... 217 6.3.4. Testowanie przykładu... 217

6 Spis treści 7. Serwer UDP...219 7.1. Projekt protokołu... 220 7.2. Przykład 7 prosty serwer UDP... 221 7.2.1. Pliki udp_server.h i udp_server.c... 221 7.2.2. Plik ex_udpd.c... 224 7.2.3. Testowanie przykładu... 225 8. Klient UDP...227 8.1. DNS... 228 8.2. SNTP... 229 8.3. Przykład 8 automatyczna synchronizacja zegara czasu rzeczywistego... 232 8.3.1. Pliki sntp_client.h i sntp_client.c... 232 8.3.2. Plik ex_sntp.c... 238 8.3.3. Testowanie przykładu... 240 8.3.4. Uwagi końcowe... 241 9. Rozgłaszanie UDP...243 9.1. Przykład 9a rozgłaszanie datagramów UDP... 244 9.1.1. Plik ex_send_bcast.c... 244 9.1.2. Testowanie przykładu... 247 9.2. Przykład 9b odbieranie datagramów UDP... 247 9.2.1. Plik ex_recv_bcast.c... 248 9.2.2. Testowanie przykładu... 249 10. Serwis WWW...251 10.1. Komunikacja między klientem a serwerem WWW... 252 10.1.1. URI... 252 10.1.2. HTTP... 253 10.1.3. HTML... 256 10.2. Przykład 10 prosty serwis WWW... 259 10.2.1. Pliki http_parser.h i http_parser.c... 259 10.2.2. Pliki http_server.h, http.h i http_application.h... 265 10.2.3. Plik http_server.c obsługa HTTP... 266 10.2.4. Plik http_server.c obsługa połączenia TCP... 271 10.2.5. Plik http_application.c... 273 10.2.6. Plik stm32_logo.h... 277 10.2.7. Plik ex_httpd.c... 278 10.2.8. Testowanie przykładu... 278 Dodatek. Narzędzia GNU...281 Literatura...286