Az enc28j60 webkiszolgáló és az avr mikrokontroller az eszközkezeléshez TCP-n keresztül
Modern információs technológiák / Számítástechnika
Khmelnytsky Nemzeti Egyetem, Ukrajna
Webkiszolgáló az ENC28J60 és az AVR mikrokontrolleren
az eszközök TCP / IP hálózaton keresztüli vezérléséhez
Az eszközök távolról történő vezérléséhez távolítsa el a paramétereket az érzékelőktől az AVR mikrokontrollerrel. Csatlakoztatni őket a hálózathoz a legnépszerűbb chipek W5100 és ENC28J60. Az első chip hardveres TCP / IP és Ethernet protokollokkal van felszerelve, valamint a második Ethernetben. Ennek ellenére az ENC28J60 vezérlő jelenleg a legnépszerűbb. Számos könyvtár is működik a hálózaton, különböző szolgáltatásokkal. Van javasolt bekötési rajz ENC28J60 például ATmega128L, és egy program, amely lehetővé teszi az eszköz ahhoz, hogy a mód legegyszerűbb web - server irányító eszközök 3. és leolvasás a hőmérsékletérzékelő DS18B20. Azonban a mai napig a megvalósíthatóságát egy független áramkör tervezés kétséges, mert a olcsóság kész modulok, néha azonban egy külön modul elfogadhatatlan, és az eszköz célja, hogy olcsóbb, mint összeállítani modulokat. Való csatlakozáshoz Ethernet csavart érpár úgy, például, HR911105A csatlakozó, amely a leginkább optimális egyet együtt használható ENC28J60. Ez olcsó és megfizethető. Az 1. ábrán alapul. A vezérlőként az ENC28J60 chip a DIP28 csomagban kerül kiválasztásra. Az ábrán az R13 ellenállás figyelmet érdemel, például az ENC28J60 leírásában, 2kΩ-ként. Néhány ENC28J60 felülvizsgálatnak azonban jobb ellenállási értékei vannak. Tehát az 1. és 4. változat esetében az ellenállásnak 2.7 kΩ értékűnek kell lennie, és az 5. és 7. változatnál 2.32 kΩ-nak. A revíziót csak a megfelelő regiszter olvasásával ismerheti meg. Ebből a célból az ENC28J60 először az áramköri kártyára van telepítve, majd a revízió olvasható, és csak az ellenállás névleges értékre van beállítva. Azonban, beállítás névleges érték vagy a 2K Ohm ellenállás 2,32kOm biztosít áramköri funkciókat az 1. ábrán, de csökkentheti működési tartományban. Az irodai környezet számára azonban a megjelenítési osztály elfogadható.

1. ábra. Az ENC28J60 szabályozó áramköre a HR911105A csatlakozóval
Az ENC28J60 csip működéséhez a Docel L1 nem szükséges, szűrőként használják. Ha az eszköz nem tartalmaz interferenciát okozó alkatrészeket, például rádiómodulokat, pontos ADC-ket és hasonlókat, előfordulhat, hogy nincs jelen. Fojtószerként 5 mm átmérőjű ferritgyűrűt használhat a vezetéken több fordulattal vagy 0 Ohm ellenállással.
A sárga LED bekapcsolásának polaritása (HR911105A csatlakozó 9. és 10. kivezetései) határozza meg az ENC28J60 chip - fél-duplex vagy teljes duplex működését. A chip dokumentációjában a felvétel a 2. ábrán látható.

2. ábra. A sárga LED bekapcsolásának polaritása
A bemutatott rendszer korszerűsítése azonban lehetséges a rendelkezésre álló alkatrészek egyszerűsítése vagy használata érdekében. A HR911105A csatlakozó hiányában olyan transzformátorokat használhat, amelyek számítógépes kártyákra vannak telepítve. Például a 3. ábra a 20F001N YCL szűrő transzformátor bekapcsolási sémáját mutatja. Az A B C D pont 3. ábráján látható szimbólumok megfelelnek az 1. ábrán látható ábrának. Ezek a pontok a HR911105A csatlakozó helyett a transzformátorhoz vannak csatlakoztatva. A HR911105A csatlakozóban lévő LED-ek külön vannak felszerelve, amikor a transzformátor csatlakoztatva van.

3. ábra. Csatlakozó transzformátor 20F001N YCL.
Bizonyos esetekben hiánya miatt Ethernet - transzformátorok, HR911105A típusú csatlakozóval vagy épület költségvetési eszköz végezhet változat ENC28J60 vezérlő kapcsolatot a beztransformatornoy rendszer, feltéve, hogy a router a közelben a létrehozott eszköz. Ebben az esetben a bekötési rajz a 4. ábrán látható.

4. ábra. Transzformátor nélküli kapcsolatrendszer.
Ezzel a kapcsolódási sémával az IEEE 802.3 szabvány nem működik, de a készülék működik.

4. ábra. ATmega128L kapcsolási rajz
Annak ellenére, hogy egymás utáni programozási ATmega128 SPI ugyanazt a készüléket, mint a normális működését a mikrokontroller, van egy fontos különbség: a következtetések MOSI / MISO input-output modul SPI, amelyek összhangban vannak a PB2 és BP3, nem programozáshoz használt. Ehelyett a szekvenciális programozás során a PE0 és PE1 adatokat az adatok bevitelére és kiadására használják. Ezért a programozó busz (Soros programozás) külön-külön látható a 3. ábrán. Az 1. ábrán bemutatott SPI ENC28J60 típusú busz az ENC28J60 chiphez csatlakozik a modulhoz, amelynek áramköre az 1. ábrán látható.
Az 5. ábra az összeszerelt eszköz fényképét mutatja az áramköri lapon. Jelzi a fő funkcionális elemeket is.
A készülék az Arduino IDE program segítségével lett programozva. Előnye, hogy sok hasznos könyvtárat tartalmaz, különösen az OneWire busz és az ENC28J60 chip használatához.

Ábra. 5. A webszerver fotója az áramköri lapon
Az Arduino szoftverkörnyezet korlátozott számú mikrokontroller I / O portjait írja le. Ezért a probléma az ATmega128 vezérlőnek a fejlesztési környezetben és az ENC28J60 chipen található könyvtárban való leírása. Ehhez javítsa ki a d: \ arduino-1.0.3 \ hardware \ arduino \ variants \ standard \ pins_arduino.h fájlt.
statikus const uint8_t SS = 10;
statikus const uint8_t MOSI = 11;
statikus const uint8_t MISO = 12;
statikus const uint8_t SCK = 13;
statikus const uint8_t SS = 8;
statikus const uint8_t MOSI = 10;
statikus const uint8_t MISO = 11;
statikus const uint8_t SCK = 9;
Az ENC28J60 könyvtár d: \ arduino-1.0.3 \ könyvtárai \ etherShield \ enc28j60.c fájljában javításokat is végzünk.
#define ENC28J60_CONTROL_CS 10
#define SPI_MOSI 11
#define SPI_MISO 12
#define SPI_SCK 13
#define ENC28J60_CONTROL_CS 8
#define SPI_MOSI 10
#define SPI_MISO 11
#define SPI_SCK 9
Az alábbiakban egy program három LED (működtetés) vezérlésére és a hőmérséklet lekérdezésére szolgál a DS18B20 érzékelőtől. Meg kell jegyezni, hogy az oldal elején lévő feladathoz képest a program 3 LED-re bővül. Ezek a mikrokontroller 28, 30, 32 érintkezőihez csatlakoznak.
statikus uint8_t ip [4] =; statikus uint16_t port = 80;
ETHER_28J60 e; OneWire ds (6); char buf [30];
e.setup (mac, ip, port);
pinMode (3, OUTPUT); pinMode (5, OUTPUT); pinMode (7, OUTPUT);
int freeRam () visszatérés (int) v - (__brkval == 0. (int) __heap_start. (int) __brkval); ds.search (addr); ds.reset (); ds.select (addr); ds.write (0x44.1); Indítsa el a konverziót, parazita ereje a végén ds.write (0xBE); // Olvassa le a Scratchpadot A 6. ábra bemutatja a program kimenetét egy webböngészőben
6. ábra. Webszerver felület
Az adatok eltávolítása a hőmérsékletérzékelőről a OneWire könyvtárat is használják. A könyvtár tapasztalatai szerint az etherShield és az ETHER_28J60 csak egy csomagot küldhet az ügyfél kérésére. Ezért egy olyan oldal létrehozása, amely nem illeszkedik egyetlen Ethernet csomagba (kb. 1500 bájt), további nehézségeket okozhat a program írásakor. A mikrokontroller memóriájában egy további 1500 bájtnyi pufferre van szükség. Ahhoz, hogy a program az ETHER_28J60 könyvtár ETHER_28J60.cpp fájljában a 3 LED-et működtethesse, a következő változást hajtja végre:
#define BUFFER_SIZE 1500
Ellenkező esetben a webszerver lógott.
A W5100 chipen és az Arduino Ethernet könyvtáron alapuló Ethernet modul lehetővé teszi, hogy korlátlan számú csomagot cseréljen, így alapul egy egyszerű univerzális webszervert hozhat létre.
Kapcsolódó dokumentumok:
900 másodperc A DDNS kiszolgáló elküldi az ügyfélinformációkat. Referenciák 1. Myasischev AA Az ENC28J60 webszerver és az AVR mikrokontroller a TCP / IP hálózati eszközkezeléshez. [Elektronikus.