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/03 11:55] – heikopikner | et:examples:communication:ethernet [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ~~PB~~ | + | < |
| ====== Ethernet ====== | ====== Ethernet ====== | ||
| Line 15: | Line 15: | ||
| 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// | ||
| - | IP ehk võrgukihi protokollil põhineb internet. Täpsemalt on see reeglistik, mida järgitakse pakettide saatmisel võrguseadmete vahel. IP paketti päises paikneb lisaks muudele andmetele ka 32-bitine IP aadress mille järgi toimub kõigi internetti püsivalt ühendatud seadmete identifitseerimine. Tänasel päeval on IP protokolli 32-bitisest aadressiruumist (~4 miljardit | + | IP ehk võrgukihi protokollil põhineb internet. Täpsemalt on see reeglistik, mida järgitakse pakettide saatmisel võrguseadmete vahel. IP paketti päises paikneb lisaks muudele andmetele ka 32-bitine IP aadress mille järgi toimub kõigi internetti püsivalt ühendatud seadmete identifitseerimine. Tänasel päeval on IP protokolli 32-bitisest aadressiruumist (~4 miljardit |
| - | IP paketi saatmisel puudub kontroll, kas see ikka jõudis kohale. | + | IP paketi saatmisel puudub kontroll, kas see ikka jõudis kohale. Probleemi lahendamiseks arendati |
| - | 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 | + | 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 33: | Line 33: | ||
| </ | </ | ||
| - | Hoolimata hulgast | + | Hoolimata hulgast |
| ===== Praktika ===== | ===== Praktika ===== | ||
| Line 53: | 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 85: | 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 98: | 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 193: | Line 192: | ||
| else | else | ||
| | | ||
| + | |||
| // " | // " | ||
| plen=ethernet_load_data(buf, | plen=ethernet_load_data(buf, | ||