This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:examples:communication:ethernet [2015/03/02 08:00] – raivo.sell | et:examples:communication:ethernet [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ~~PB~~ | + | < |
| ====== Ethernet ====== | ====== Ethernet ====== | ||
| Line 9: | Line 9: | ||
| [{{ : | [{{ : | ||
| - | Ethernet on põhiline juhtmetega kohtvõrgu (inglise keeles //Local Area Network//, lühend LAN) tehnoloogia, | + | Ethernet on põhiline juhtmetega kohtvõrgu (inglise keeles //Local Area Network//, lühend LAN) tehnoloogia, |
| - | Etherneti standard määrab juhtmete ja pistikute tüübid, kirjeldab füüsilise signaali ülekande ning määrab andmevahetuse formaadi. Selle standardid on tihedalt seotud OSI füüsilise kihiga, täites mudeli kahe alumise kihi (füüsiline kiht ja lülikiht) funktsioone. Algusaegadel kasutati Etherneti ülesehitamiseks koksiaalkaableid, | + | Etherneti standard määrab juhtmete ja pistikute tüübid, kirjeldab füüsilise signaali ülekande ning määrab andmevahetuse formaadi. Selle standardid on tihedalt seotud OSI füüsilise kihiga, täites mudeli kahe alumise kihi (füüsiline kiht ja lülikiht) funktsioone. Algusaegadel kasutati Etherneti ülesehitamiseks koksiaalkaableid, |
| Ethernetil baseeruvas lokaalvõrgus jagatakse andmevood väiksemateks kaadriteks (inglise keeles //frame//). Iga kaader peab sisaldama saatja ja vastuvõtja MAC aadressi ja andmeid veakontrolliks. MAC aadress on unikaalne 48-bitine võrguseadmele tootja poolt antud number. Etherneti kaadri keskosas on piirkond ülekantavate andmete jaoks. Andmed võivad sisaldada teiste protokollide kaadreid, nagu näiteks IP protokolli (inglise keeles //Internet Protocol// | Ethernetil baseeruvas lokaalvõrgus jagatakse andmevood väiksemateks kaadriteks (inglise keeles //frame//). Iga kaader peab sisaldama saatja ja vastuvõtja MAC aadressi ja andmeid veakontrolliks. MAC aadress on unikaalne 48-bitine võrguseadmele tootja poolt antud number. Etherneti kaadri keskosas on piirkond ülekantavate andmete jaoks. Andmed võivad sisaldada teiste protokollide kaadreid, nagu näiteks IP protokolli (inglise keeles //Internet Protocol// | ||
| - | Nagu öeldud baseerub Ethernetil | + | IP ehk võrgukihi protokollil põhineb internet. Täpsemalt |
| - | TCP protokoll loob omakorda võimaluse erinevate andmete jaoks erinevaid porte (kanaleid) kasutada. Üks port, mis kannab nime HTTP ja numbrit 80, paneb aluse //World Wide Web//'ile (WWW) kuna selle kaudu edastatakse | + | IP paketi saatmisel puudub kontroll, kas see ikka jõudis kohale. Probleemi lahendamiseks arendati välja TCP protokoll, mille transpordikihiks on IP pakett. TCP pakett paikneb seega IP paketi sees. TCP on kui ühendus otspunktide vahel (näiteks kliendi ja serveri vahel). Andmevahetuse alguses saadab klient serverile ühenduse loomise soovi. Sellele vastab server paketiga ja saadab omakorda kliendile paketi sooviga luua ühendus. Kui klient selle soovi kinnitab, siis on ühendus kahe otspunkti vahel loodud ja saab alustada andmete vahetamisega. |
| + | |||
| + | TCP protokoll loob omakorda võimaluse erinevate andmete jaoks erinevaid porte (kanaleid) kasutada. Üks port, mis kannab nime HTTP ja numbrit 80, paneb aluse //World Wide Web//-ile (WWW). HTTP pordi kaudu edastatakse hüperteksti markeerimiskeelt (inglise keeles //HyperText Markup Language//, lühend HTML), mida kuvavad veebibrauserid. HTTP klient, ehk veebibrauser peab HTTP serverile edastama tekstikujul päringu " | ||
| <code html> | <code html> | ||
| Line 31: | Line 33: | ||
| </ | </ | ||
| - | Hoolimata hulgast | + | Hoolimata hulgast |
| ===== Praktika ===== | ===== Praktika ===== | ||
| Line 51: | Line 53: | ||
| // ENC28J60 seadistamine | // ENC28J60 seadistamine | ||
| enc28j60Init(mac); | enc28j60Init(mac); | ||
| - | | + | // Vaikimisi clkout 6,25 MHz muutmine 12,5 MHz |
| - | hw_delay_ms(12); | + | enc28j60clkout(2); |
| + | hw_delay_ms(12); | ||
| | | ||
| // Magjack LED-ide seadistamine (vaata enc28j60 andmelehte, lehekülg 11) | // Magjack LED-ide seadistamine (vaata enc28j60 andmelehte, lehekülg 11) | ||
| // LEDB = kollane, LEDA = roheline | // LEDB = kollane, LEDA = roheline | ||
| // 0x476 on PHLCON LEDA = ühenduse staatus, LEDB = vastuvõtmine või edastamine | // 0x476 on PHLCON LEDA = ühenduse staatus, LEDB = vastuvõtmine või edastamine | ||
| - | // enc28j60PhyWrite(PHLCON, | ||
| enc28j60PhyWrite(PHLCON, | enc28j60PhyWrite(PHLCON, | ||
| hw_delay_ms(12); | hw_delay_ms(12); | ||
| - | // Etherneti/ip kihtide seadistamine: | + | // Etherneti/IP kihtide seadistamine |
| init_ip_arp_udp_tcp(mac, | init_ip_arp_udp_tcp(mac, | ||
| } | } | ||
| Line 83: | Line 85: | ||
| } | } | ||
| - | // Vastuvõetud andmepaketist URL-i tuvastamine | + | // Vastuvõetud andmepaketist URL-i tuvastamine |
| - | // Pingile | + | |
| uint16_t ethernet_analyse_packet(uint8_t *buf, | uint16_t ethernet_analyse_packet(uint8_t *buf, | ||
| { | { | ||
| Line 96: | Line 97: | ||
| Näide on mõeldud lihtsa veebiserveri loomiseks. Allpool toodud näiteprogramm loob IP aadressile 192.168.1.100 veebilehe, millel oleva lingi kaudu on võimalik lülitada sisse ja välja Kontrollermoodulil olevat LED-i. Selleks töödeldakse URL-is olevat informatsiooni, | Näide on mõeldud lihtsa veebiserveri loomiseks. Allpool toodud näiteprogramm loob IP aadressile 192.168.1.100 veebilehe, millel oleva lingi kaudu on võimalik lülitada sisse ja välja Kontrollermoodulil olevat LED-i. Selleks töödeldakse URL-is olevat informatsiooni, | ||
| - | ~~PB~~ | + | < |
| <code c> | <code c> | ||
| // Kodulabori Etherneti kasutamise näidisprogramm | // Kodulabori Etherneti kasutamise näidisprogramm | ||
| - | // Kodulabor | + | // Kodulabor |
| #include < | #include < | ||
| #include < | #include < | ||
| Line 134: | Line 135: | ||
| // Lõputu tsükkel | // Lõputu tsükkel | ||
| - | while(1) | + | while (1) |
| { | { | ||
| // Pakettide muutmine, kuni endale määratud andmetega paketi saamiseni | // Pakettide muutmine, kuni endale määratud andmetega paketi saamiseni | ||
| Line 191: | Line 192: | ||
| else | else | ||
| | | ||
| + | |||
| // " | // " | ||
| plen=ethernet_load_data(buf, | plen=ethernet_load_data(buf, | ||