PMK_2015_9 (1).pptx

43
PRIMENA MIKROKONTROLERA- MS1PMK 9. deo 2015 Nenad Jovičić

Transcript of PMK_2015_9 (1).pptx

Page 1: PMK_2015_9 (1).pptx

PRIMENA MIKROKONTROLERA- MS1PMK9. deo

2015Nenad Jovičić

Page 2: PMK_2015_9 (1).pptx

Ethernet

• Nastao sredinom 70-tih u okviru kompanije Xerox Palo Alto Research

• 1985 standardizovan kao IEEE 802.3 standard

Page 3: PMK_2015_9 (1).pptx

Ethernet

• Komunikacioni protokoli se koriste za implementaciju različitih funkcija u mrežnoj komunikaciji.

• Drajver mrežnog adaptera obezbeđuje spregu između softvera koji se izvršava na uređaju i mrežnog adaptera. Drajver može vršiti osnovno formatiranje i upravljati HW mrežnog adaptera.

• Mrežni adapter obezbeđuje hardversku vezu sa komunikacionim medijumom, obavlja slanje i prijem podataka u odgovarajućem formatu na osnovu definisanog seta pravila.

• Fizički pristup medijumu podrazumeva kabliranje, konektore, generisanje linijskih signala/kodova.

Aplikacija

Komunikacioni protokoli

Drajver mrežnog adaptera

Mrežni adapter

Fizički pristup medijumu H

AR

DV

ER

SOF

TV

ER

FIZIČKI SIGNALI

SIGNALNE LINIJE

Page 4: PMK_2015_9 (1).pptx

Model mrežne komunikacije

• Model komunikacije je dat u modularnoj (slojevitoj) formi. Referentni modeli su TCP/IP i OSI model.

• Na svakom od slojeva modela postoji više protokola.

Aplikacija

Komunikacioni protokoli

Drajver mrežnog adaptera

Mrežni adapter

Fizički pristup medijumu H

AR

DV

ER

S

OF

TV

ER

FIZIČKI SIGNALI

SIGNALNE LINIJE

PHY sloj

Data link sloj

Mrežni sloj

Transportni sloj

Sesioni sloj

Prezentacioni sloj

Aplikativni sloj

Media Access Control

Logical Link Control

Page 5: PMK_2015_9 (1).pptx

Ethernet MAC IP core

Sistemska magistrala

Ethernet PHY

Interfejs magistrale

Interfejs prema PHY ET

HE

RN

ET

B

LO

K

MIK

RO

KO

NT

RO

LE

R

Transformator

Konektor

Embedded ethernet HW Interfejs magistrale obezbeđuje povezivanje modula

na sistemsku magistralu. Modul može imati i druge interfejse prema sistemskim magistralama za npr. DMA transfer.

Ethernet blok (periferijski modul) je integrisan u okviru C i implementira funkcije definisane na MAC sloju data link sloja, što podrazumeva prijem/slanje frejmova, detekciju grešaka u prenosu, mehanizam pristupa medijumu.

Interfejs prema ethernet PHY omogućava eksterno povezivanje ethernet PHY.

Ethernet PHY ili ethernet primopredajnik implementira generisanje signala i linijsko kodovanje. Na izlazu primopredajnika se vezuje terminaciona impedansa na linijama.

Transformator – magnetics obezbeđuje potiskivanje signala srednje vrednosti i izolacionu barijeru.

Page 6: PMK_2015_9 (1).pptx

Ethernet frejm

• Preambula i SFD imaju zajedničku funkciju da obezbede predvidivu sekvencu bita za namene sinhronizacije.

• Polje sa MAC izvorišnom/odredišnom adresom sadrži fizičku adresu pošiljaoca/primaoca frejma. Primaoc frejma može biti individualni intefejs, grupa interfejsa ili svi interfejsi na mreži.

• Lenght/Type polje može ukazivati na broj bajta validnih podataka u polju sa podacima ili na protokol koji je korišćen prilikom formatiranja polja sa podacima.

• Polje sa podacima sadrži izvornu informaciju dobijenu od strane protokola višeg nivoa i mora imati između 46 i 1500 bajta.

• FCS polje ili 32-bitni CRC omogućava prijemnom interfejsu da detektuje greške u primljenom frejmu

Page 7: PMK_2015_9 (1).pptx

LPC17xx Ethernet

Media Independent Interface Management (MIIM) je 2 linijska serijska magistrala za pristup konfiguracionionim i statusnim registrima PHY

Reduced Media Independent Interface (RMII) je standard za povezivanje ethernet MAC i PHY koji podržava 10 i 100 Mbit/s

Ethernet periferijski modul

Integrisani DMA kontroler za prenos podataka bez intervencije CPU

Baferisanje podataka

Page 8: PMK_2015_9 (1).pptx

LPC17xx Ethernet blok• Ethernet blok sadrži 10 Mbps/100 Mbps Ethernet MAC kontroler sa DMA

hardverskim ubrzanjem.– Pulu dupleks/pun dupleks prenos prema IEEE 802.3 std.– Kontrola protoka– Hardversko ubrzanje pokušaja retransmisije– Filtriranje primljenih paketa– Wake-up on LAN activity– Automatsko slanje/prijem frejmova preko DMA bez podrške CPU.

• Osnovne karakteristike Ethernet bloka– Ethernet blok je AHB master koji ima pristup RAM memoriji na čipu.– Veza prema ethernet PHY je obezbeđena preko RMII i MIIM (MDIO) interfejsa– Nezavisni predajni/prijemni baferi u SRAM– Podržava multicast i broadcast frejmove i proizvoljnu dužinu frejma– Opciono automatsko generisanje FCS polja (CRC32 kod).– Automatski backoff mehanizam i retransmisija frejma.

Page 9: PMK_2015_9 (1).pptx

LPC1768 ethernet

Page 10: PMK_2015_9 (1).pptx

MBED - “sirovi” ethernet

Page 11: PMK_2015_9 (1).pptx

Ethernet u službi viših protokola

Page 12: PMK_2015_9 (1).pptx

Ethernet u službi viših protokola

Page 13: PMK_2015_9 (1).pptx

UDP protokol

• UDP- user datagram protokol – je protokol koji omogućava brzu razmenu poruka između uređaja na mreži.

• Kao i svi internet protokoli paketski je orjentisan.• Osnovni nedostatak UDP protokola je nesigurnost prenosa

podataka. • Protokol ne daje informaciju pošiljaocu da je poruka stigla na

odredište.• Pošiljalac šalje poruku a primalac je dužan da se postara da je

primi.• Gubitak poruke nastaje najčešće usled loše tj.

neblagovremene reakcije primaoca.

Page 14: PMK_2015_9 (1).pptx

UDP

Page 15: PMK_2015_9 (1).pptx

UDP - Endpoint

Page 16: PMK_2015_9 (1).pptx

http://mbed.org/handbook/Socket

Page 17: PMK_2015_9 (1).pptx
Page 18: PMK_2015_9 (1).pptx
Page 19: PMK_2015_9 (1).pptx

TCP protokol

• Napredniji i komplikovaniji protokol od UDP protokola.• Osnovna prednost u odnosu na UDP protokol je sigurnost u

prenosu informacija.• U samom protokolu je inherentno ugrađena kontrola

prenosa podataka. • Pošiljalac može da šalje podatke jedino ako postoji sigurna

veza sa primaocem.• Prekid veze se jasno vidi i signalizira tako da se ne može

desiti da pošiljalac šalje podatke u “prazno”.• Cena koja se plaća za ovo je sporiji protokol jer se u

pozadini prenosi znatno više informacija i to u oba smera.

Page 20: PMK_2015_9 (1).pptx

TCP

Page 21: PMK_2015_9 (1).pptx

http://mbed.org/handbook/Socket

Page 22: PMK_2015_9 (1).pptx
Page 23: PMK_2015_9 (1).pptx
Page 24: PMK_2015_9 (1).pptx

UDP ili TCP

• Dobar primer za prednosti UDP nad TCP protokolom je situacija kada je komunikacija pretežno jednosmerna i sa velikom količinom podataka.

• Kod UDP protokola primalac jednostavno šalje podatke jedan za drugim. Ako je arhitektura sistema dobro osmišljena i poznata i ako je primalac provereno sposoban da primi veliki protok podataka od pošiljaoca onda neće biti problema. UDP protokol se na primer koristi pri prenosu video signala.

Page 25: PMK_2015_9 (1).pptx

VEŽBA

• Implementirati komunikaciju izmedju Client i Server aplikacije, kako za UDP tako i za TCP protokol.

Page 26: PMK_2015_9 (1).pptx

Viši protokoli

• http://mbed.org/handbook/TCP-IP-protocols-and-APIs

Page 27: PMK_2015_9 (1).pptx

HTTP• HTTP je dobro poznat protokol za koji se uglavnom koristi za

nesimetričan prenos podataka u sistemu sa tačno definisanom client-server arhitekturom.

• HTTP protokol je zgodan za prenos fajlova, tekstualnih informacija i html dokumenata.

• Primer upotrebe HTTP protokola u embedded aplikacijama su web senzori.

• Web senzori su po svojoj prirodi male serverske alikacije koje odgovaraju na client upite i daju im sentorske informacije.

• Odatle izlezi i dobra osobina HTTP protokola je to što svaki računar bilo poslovni ili kućni ima neku od client aplikacija kojom je moguć pristup. Na primer GoogleChrome, IE, Mozila, Opera...itd.

• Primer web senzora – kamere po Beogradu.

Page 28: PMK_2015_9 (1).pptx

UMTShttp://mbed.org/cookbook/VodafoneUSBModem

• UMTS je fizički nivo baziran na upotrebi naprednih tehnika prenosa u GSM tehnologiji.• Danas se koristi kao osnova za mobilni internet, pa samim tim podržava sve

rasprostranjene internet protokole.• Kada se jednom uspostavi veza UMTS prenosni put se ne razlikuje od ethernet

prenosnog puta.• UMTS je zgodan za razne vrste bežičnih senzora.

Page 29: PMK_2015_9 (1).pptx

Eksterni Offline Toolchain

Page 30: PMK_2015_9 (1).pptx

MBED - source code• MBED SDK – kompletan source kode je free

i može da se download-uje.• U api folderu se nalaze heder fajlovi

u kojima su definisani svi MBED objekti. Na primer DigitalOut.h, BusOut.h...Osnovni fajl je mbed.h i on kao hijerarhijski najviši uključuje sve ostale heder fajlove.

• U hal folderu se nalaze heder fajlovi u kojima su definisani svi osnovni objekti kojima se predstavljaju fizičke hardverske komponente. Primer gpio_api.h

• Neki objekti, kao što je BusOut.h, nemaju fizički ekvivalent u hardveru već se dobijaju kombinovanjem funkcionalnosti osnovnih objekata. Definicije ovih funkcija su nezavisne od platforme i nalaze se u folderi common.

• U folderu targets se nalaze svi fajlovi koji definišu specifične implementacije osnovnih hardverskih objekata deklarisanih u folderu hal.

Page 31: PMK_2015_9 (1).pptx

Folder targets

Subfolder cmsis sadrži definicije funkcija koje pristupaju resursima samog procesora.Na primer heder cmsis_nvic.Tu se takođe nalazi i heder LPC17xx.h u kome se nalaze simboličke oznake svih registara.

Subfolder hal sadrži definicije funkcija koje pristupaju specifičnim hardverskim resursima tog konkretnom mikrokontrolera.Funkcije definisane u tim fajlovima su deklarisane u folderu hal

.h

.c

Page 32: PMK_2015_9 (1).pptx

mbed.h

platform.h

Page 33: PMK_2015_9 (1).pptx

• Device.h• U ovom fajlu

se definišu resursi konkretnog target-a

• Primer za LPC1768

Page 34: PMK_2015_9 (1).pptx

• Device.h fajl za STM32F401RE

Ako je u Device.h definisano postojanje objekta isti se uključuje u projekat

Page 35: PMK_2015_9 (1).pptx

PinNames.h

• Ovde se definišu simboličke oznake pinova koje odgovaraju odgovarajućem target-u.

• Originalne oznake su u fajlu cmsis.h

Page 36: PMK_2015_9 (1).pptx

PeripheralNames.h

Page 37: PMK_2015_9 (1).pptx

Primer jednog MBED objekta

• DigitalOut.h• Spada u

MBED API

Page 38: PMK_2015_9 (1).pptx

• Svaki target ima svoje implementacije ovih istih funkcija

Page 39: PMK_2015_9 (1).pptx

• C fajl u kome se nalazi specifična impšlementacija ovih funkcija je u folderu \targets\hal\TARGET_.....

Page 40: PMK_2015_9 (1).pptx

Gpio_api.h

Gpio_api.c

DigitalOut.h

Page 41: PMK_2015_9 (1).pptx

mbed sdk

STM cmsis sdk

Page 42: PMK_2015_9 (1).pptx

Offline Toolchain

• Preferirani Toolchain je KEIL uVision 5.1.• KEIL je ARM-ova kompanija i ima najbolju

podršku.• Napomena: Instalirati MDK5 Software Packs za

LPC1700 LPC1100 I STM32F4xx kontrolere

Page 43: PMK_2015_9 (1).pptx

Primer pristupa “skrivenim” sistemskim iz online kompjalera

• http://mbed.org/forum/mbed/topic/229/?page=1#comment-1215

#include "mbed.h" int main() {

int Fin = 12000000; // 12MHz XTAL printf("PLL Registers:\n"); printf(" - PLL0CFG = 0x%08X\n", LPC_SC->PLL0CFG); printf(" - CLKCFG = 0x%08X\n", LPC_SC->CCLKCFG); int M = (LPC_SC->PLL0CFG & 0xFFFF) + 1; int N = (LPC_SC->PLL0CFG >> 16) + 1; int CCLKDIV = LPC_SC->CCLKCFG + 1; printf("Clock Variables:\n"); printf(" - Fin = %d\n", Fin); printf(" - M = %d\n", M); printf(" - N = %d\n", N); printf(" - CCLKDIV = %d\n", CCLKDIV); int Fcco = (2 * M * 12000000) / N; int CCLK = Fcco / CCLKDIV; printf("Clock Results:\n"); printf(" - Fcco = %d\n", Fcco); printf(" - CCLK = %d\n", CCLK);

}

Imena registara definisana u LPC17xx.h ili sličnom fajlu nekog drugog proizvođača su dostupna i na online kompajleru.