PMK_2015_9 (1).pptx
-
Upload
marko-vlasic -
Category
Documents
-
view
222 -
download
0
Transcript of PMK_2015_9 (1).pptx
PRIMENA MIKROKONTROLERA- MS1PMK9. deo
2015Nenad Jovičić
Ethernet
• Nastao sredinom 70-tih u okviru kompanije Xerox Palo Alto Research
• 1985 standardizovan kao IEEE 802.3 standard
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
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
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.
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
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
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.
LPC1768 ethernet
MBED - “sirovi” ethernet
Ethernet u službi viših protokola
Ethernet u službi viših protokola
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.
UDP
UDP - Endpoint
http://mbed.org/handbook/Socket
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.
TCP
http://mbed.org/handbook/Socket
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.
VEŽBA
• Implementirati komunikaciju izmedju Client i Server aplikacije, kako za UDP tako i za TCP protokol.
Viši protokoli
• http://mbed.org/handbook/TCP-IP-protocols-and-APIs
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.
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.
Eksterni Offline Toolchain
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.
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
mbed.h
platform.h
• Device.h• U ovom fajlu
se definišu resursi konkretnog target-a
• Primer za LPC1768
• Device.h fajl za STM32F401RE
Ako je u Device.h definisano postojanje objekta isti se uključuje u projekat
PinNames.h
• Ovde se definišu simboličke oznake pinova koje odgovaraju odgovarajućem target-u.
• Originalne oznake su u fajlu cmsis.h
PeripheralNames.h
Primer jednog MBED objekta
• DigitalOut.h• Spada u
MBED API
• Svaki target ima svoje implementacije ovih istih funkcija
• C fajl u kome se nalazi specifična impšlementacija ovih funkcija je u folderu \targets\hal\TARGET_.....
Gpio_api.h
Gpio_api.c
DigitalOut.h
mbed sdk
STM cmsis sdk
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
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.