ESP8266 er en mikrocontroller fra den kinesiske producent Espressif Systems med et Wi-Fi- interface . Ud over Wi-Fi er mikrocontrolleren kendetegnet ved fraværet [1] af flashhukommelse i SoC, brugerprogrammer udføres fra en ekstern flashhukommelse med et SPI -interface .
Mikrocontrolleren tiltrak sig opmærksomhed i 2014 på grund af udgivelsen af de første produkter baseret på den til en usædvanlig lav pris.
I foråret 2016 begyndte produktionen af ESP8285, der kombinerede ESP8266 og 1 MB flashhukommelse. I efteråret 2015 introducerede Espressif udviklingen af linjen - ESP32- chippen og moduler baseret på den [2] .
Mikrocontrolleren har ikke on-chip brugeren ikke-flygtig hukommelse. Programmet udføres fra en ekstern SPI ROM ved dynamisk at indlæse de nødvendige sektioner af programmet i instruktionscachen. Indlæsning er hardwarebaseret, gennemsigtig for programmøren. Op til 16 MB ekstern programhukommelse understøttes. Standard, Dual eller Quad SPI interface tilgængelig.
Producenten leverer ikke dokumentation for mikrocontrollerens interne periferiudstyr. I stedet giver det et sæt biblioteker, gennem hvis API programmøren får adgang til periferiudstyr. Da disse biblioteker intensivt bruger controllerens RAM, angiver producenten ikke i dokumenterne den nøjagtige mængde RAM på chippen, men kun et groft skøn over mængden af RAM, der vil være tilbage for brugeren efter at have samlet alle bibliotekerne - omkring 50 kB. Entusiaster, der har undersøgt ESP8266-bibliotekerne, foreslår, at det indeholder 32 KB instruktionscache og 80 KB data-RAM.
Elektriske parametre, pinouts, ledningsdiagrammer kan findes i dokumenterne "0A-ESP8266EX_Datasheet" og "0B-ESP8266__System_Description" fra Espressif SDK [4] .
Kilden til det eksekverbare program ESP8266 er indstillet af tilstanden for GPIO0-, GPIO2- og GPIO15-portene i slutningen af nulstillingssignalet (det vil sige tændt). To tilstande er mest interessante: kodeudførelse fra UART (GPIO0 = 0, GPIO2 = 1 og GPIO15 = 0) og fra ekstern ROM (GPIO0 = 1, GPIO2 = 1 og GPIO15 = 0). Kodeudførelsestilstanden fra UART bruges til at flashe den tilsluttede flashhukommelse, og den anden tilstand er en almindelig arbejder.
I foråret 2016 lancerede Espressif masseproduktionen af ESP8285-chippen. Nu indeholder den samme chip både ESP8266 SoC og 1 MB flashhukommelse [5] . Dokumentation for chippen kan findes i dokumentet "0A-ESP8285__Datasheet".
I efteråret 2015 introducerede Espressif udviklingen af linjen - ESP32-chippen. I begyndelsen af 2016 blev tekniske prøver af den nye chip tilgængelige for virksomhedens partnere til test, i september 2016 blev ESP32 tilgængelig som et fuldgyldigt produkt [6] [7] .
Softwareudviklingsværktøjer (softwareudviklingskit, SDK) består af:
Espressif distribuerer frit sit udviklersæt. Denne pakke inkluderer GCC-kompileren, Espressif-bibliotekerne og XTCOM-startværktøjet. Biblioteker leveres som kompilerede biblioteker uden kildekode. Espressif understøtter to versioner af SDK, en baseret på RTOS og en baseret på tilbagekald [4] .
Udover det officielle SDK findes der en række alternative SDK-projekter [8] . Disse SDK'er bruger Espressif-bibliotekerne eller tilbyder deres egen omvendt manipulerede ækvivalent til Espressif-bibliotekerne.
For at forenkle brugen af mikrocontrolleren i typiske projekter er det muligt at bruge færdige binære filer, der er egnede til direkte upload til ROM'en af moduler (den såkaldte firmware ). Færdiglavet firmware kan opdeles i flere grupper i henhold til konceptet for deres brug:
Kilden til det eksekverbare program ESP8266 er indstillet af tilstanden for GPIO0-, GPIO2- og GPIO15-portene i slutningen af nulstillingssignalet (det vil sige tændt). To tilstande er mest interessante: kodeudførelse fra UART (GPIO0 = 0, GPIO2 = 1, GPIO15 = 0) og fra ekstern ROM (GPIO0 = 1, GPIO2 = 1, GPIO15 = 0). Kodeudførelsestilstanden fra UART bruges til at flashe flashhukommelsen, og den anden tilstand er en almindelig arbejder.
Der er mange værktøjer til at styre firmwareopdateringsprocessen:
En ekstern SPI-flash skal have en specifik header for korrekt kodeudførelse. Overskriftsstrukturen er angivet i dokumentationen til XTCOM-værktøjet. På russisk er her . Boot-værktøjer ved normalt, hvordan man tilføjer det til firmwaren.
Opdater via Wi-FiDet er muligt at opdatere firmwaren på en fungerende enhed via Wi-Fi. For at gøre dette er programmernes flashhukommelse opdelt i flere dele. Den ene er tildelt firmwaremanageren, de to andre er til brugerprogrammet. Når de vil opdatere firmwaren, indlæses det nye billede i en ledig del af flashhukommelsen. Efter en grundig kontrol af integriteten af det nyligt downloadede billede skifter firmwaremanageren flaget, hvorefter hukommelsesområdet med den gamle firmware frigøres, og koden eksekveres fra det nye område. Følgelig vil opdateringen næste gang blive indlæst i et ledigt hukommelsesområde. Se dokumentet "99C-ESP8266__OTA_Upgrade" fra Espressif SDK [4] for detaljer .
En typisk anvendelse af ESP8266 som hardwaregrundlaget for Internet of Things involverer oftest installation i hjem eller kontorer. I dette tilfælde oprettes netværksforbindelsen til et lokalt hjemme-/kontornetværk med internetadgang via en router . Brugeren af enheden kan styre den ved hjælp af en tablet eller computer via sit lokale netværk eller eksternt via internettet.
ESP8266 kan fungere som både et adgangspunkt og en slutstation. Under normal LAN-drift er ESP8266 konfigureret som en slutstation. For at gøre dette skal enheden indstille SSID'et for Wi-Fi-netværket og, i lukkede netværk, adgangskoden. Til indledende konfiguration af disse parametre er adgangspunktstilstand praktisk. I adgangspunkttilstand er enheden synlig under en standard netværkssøgning på tablets og computere. Det er tilbage at oprette forbindelse til enheden, åbne HTML-konfigurationssiden og indstille netværksparametrene, hvorefter enheden normalt vil oprette forbindelse til det lokale netværk i slutstationstilstand.
Ved rent lokal brug er det muligt altid at lade enheden være i adgangspunkttilstand, hvilket reducerer brugerens indsats for at konfigurere den.
Efter at have oprettet forbindelse til et Wi-Fi-netværk, bør enheden modtage IP-parametrene for det lokale netværk. Disse parametre kan indstilles manuelt sammen med Wi-Fi-indstillingerne, eller du kan aktivere alle tjenester til automatisk konfiguration af IP-parametre (f.eks. DHCP ).
Efter konfiguration af IP-parametrene, er enhedsserveren i det lokale netværk normalt tilgået af dens IP-adresse, netværksnavn (hvis navnene understøttes af en hvilken som helst teknologi, f.eks. NBNS ) eller tjeneste (hvis automatisk tjenestesøgning er understøttet , f.eks. via SSDP -protokollen ).
Ofte kræves adgang til enheden fra internettet. For eksempel fjernkontrollerer en bruger status for sit " smarte hjem " fra en mobiltelefon ved at få direkte adgang til enheden. I dette tilfælde fungerer enheden i servertilstand, som en ekstern klient har adgang til.
Som regel er en ESP8266-baseret enhed placeret på det lokale netværk på et kontor eller et hjem. Internetadgang leveres af en router , der er forbundet på den ene side til det lokale netværk, og på den anden side - til internetudbyderens netværk. Udbyderen tildeler sin statiske eller dynamiske IP-adresse til routeren, og routeren oversætter de lokale netværksadresser til udbyderens netværk. Som standard giver reglerne for denne oversættelse fri synlighed af internetadresser fra det lokale netværk, men tillader ikke adgang til lokale adresser fra internettet. Der er flere måder at omgå denne begrænsning på.
Konfigurerer NATDe fleste moderne routere giver dig mulighed for at angive yderligere regler for oversættelse af netværksadresser mellem de lokale og globale netværk. Som regel bruges Virtual server eller DMZ -teknologier til dette . Begge teknologier giver dig adgang til en server på det lokale netværk fra det globale netværk, idet du kun kender den IP-adresse, der er tildelt routeren af udbyderen. Hvis der er tale om en statisk router IP-adresse, kan dette ofte være en tilfredsstillende løsning for en begrænset kreds af systembrugere. Denne tilgang er dog ikke altid praktisk: du skal manuelt konfigurere routeren og finde ud af routerens IP-adresse, som kan ændres regelmæssigt. Det er relativt nemt at løse problemet med en ukendt IP-adresse ved hjælp af DDNS -mekanismen .
DDNSFor at få adgang til enhedsserveren skal slutbrugeren kende IP-adressen, hvor enheden er placeret. Det er dog ikke altid muligt at få en statisk IP-adresse til en enhed fra en internetudbyder, og det er upraktisk at bruge en sådan adresse. For at løse dette problem blev der oprettet specielle internettjenester under det generelle navn dynamisk DNS . Disse tjenester fungerer som specielle servere med faste navne på internettet. Udvikleren opretter sin egen konto med et unikt navn på en sådan tjeneste. Han foreskriver parametrene for denne konto i enheden. En enhed i klienttilstand kontakter med jævne mellemrum serviceserveren og fortæller den navnet på dens konto og dens aktuelle IP-adresse. Slutbrugeren på internettet får adgang til den samme tjeneste og modtager de aktuelle IP-parametre for enheden fra den. I dette tilfælde er enheden synlig på netværket med et domænenavn på tredje niveau, såsom esp8266.ddns.org.
Hovedproblemet med DDNS-tjenester er at garantere eksistensen af en bestemt tjeneste. Generelt er det kun en kommerciel tjeneste, der er garanteret, når der opkræves et gebyr for dens brug.
Eksterne IoT-tjenesterFor at afhjælpe problemet med at gøre enheden tilgængelig på internettet og for at gøre installationen af enheden let for brugeren, er der udviklet en række løsninger. Mekanismen i disse løsninger er baseret på, at der findes en speciel server på internettet, som både en IoT-enhed og en brugers tablet/computer kan forbinde til. Samtidig fungerer enheden i klienttilstand, ingen specielle routerindstillinger eller specielle færdigheder kræves af installatøren og enhedsbrugeren. Dataudveksling med enheden udføres gennem denne specielle tjeneste, hvis parametre skal indtastes i enheden af udvikleren. Udbredelsen af brugen af sådanne tjenester er begrænset af behovet for at opretholde din tjeneste på internettet i lang tid eller bruge andres tjenester med uklare udsigter til den fortsatte eksistens af gratis funktioner eller regelmæssig betaling for kommercielle muligheder.
Hovedanvendelsen af ESP8266 er at styre en række husholdningsapparater via trådløse netværk. Konceptet med en sådan kontrol omtales ofte som " tingenes internet" (IoT, "tingenes internet"). Det øverste niveau af IoT er repræsenteret af en række applikationer til populære platforme (Android, iOS, Windows, ...). Disse applikationer giver instrumentudvikleren mulighed for at skræddersy applikationen til at styre sit instrument og give brugeren en komplet løsning. Der er flere populære implementeringer af IoT-konceptet med hensyn til netværkskommunikation:
Interessante softwareprojekter på topniveau med løsninger baseret på ESP8266:
De første og mest populære indlejrede moduler [21] baseret på ESP8266 var produkter fra det kinesiske firma AI-Thinker [22] . Som regel sælges disse moduler med firmware, der understøtter AT-kommandoer . Virksomheden har dog sin egen firmware til IoT-applikationen, nogle moduler kan komme med. Desværre understøtter virksomheden kun kinesisk, hvilket gør det svært at bruge sin IoT-firmware og Android-apps til amatørautomatisering.
I første omgang blev modulerne leveret med 512 kB Flash-hukommelse. Senere voksede officiel firmware op og passede ikke længere i en halv megabyte. Derfor kommer de fleste moduler i dag med 4 MB Flash-hukommelse.
AI-Thinker modulerNavn | Tilgængelige porte | Pindestigning, mm | stik | Tegn | Antenne | Skærm | Mål, mm | Noter |
---|---|---|---|---|---|---|---|---|
ESP-01 | 6 | 2,54 | 2×4 DIL | Ja | PCB spor | Ikke | 14,3×24,8 | GPIO15 (RTS) kortsluttet til fælles, kan ikke konfigureres til output- eller flowstyring. |
ESP-02 | 6 | 2,54 | 2×4 castellated | Ikke | U-FL stik | Ikke | 14,2×14,2 | |
ESP-03 | ti | 2.0 | 2×7 castellated | Ikke | Keramisk | Ikke | 17,3×12,1 | |
ESP-04 | ti | 2.0 | 2×4 castellated | Ikke | Ingen | Ikke | 14,7×12,1 | |
ESP-05 | 3 | 2,54 | 1×5 SIL | Ikke | U-FL stik | Ikke | 14,2×14,2 | |
ESP-06 | elleve | - | 4×3 terninger | Ikke | Ingen | Ja | 14,2×14,7 | Ikke FCC godkendt |
ESP-07 | fjorten | 2.0 | 2×8 castellated | Ja | Keramik + U-FL stik | Ja | 20,0×16,0 | Ikke FCC godkendt |
ESP-08 | ti | 2.0 | 2×7 castellated | Ikke | Ingen | Ja | 17,0×16,0 | Ikke FCC godkendt |
ESP-09 | ti | - | 4×3 terninger | Ikke | Ingen | Ikke | 10,0 × 10,0 | |
ESP-10 | 3 | 2,54 | 1×5 castellated | Ikke | Ingen | Ikke | 14,2×10,0 | |
ESP-11 | 6 | 1,27 | 1×8 castellated | Ikke | Keramisk | Ikke | 17,3×12,1 | |
ESP-12 | fjorten | 2.0 | 2×8 castellated | Ja | PCB spor | Ja | 24,0×16,0 | FCC og CE godkendt [23] |
ESP-12-E | tyve | 2.0 | 2×8 castellated | Ja | PCB spor | Ja | 24,0×16,0 | |
ESP-12-F | tyve | 2.0 | 2×8 castellated | Ja | PCB spor | Ja | 24,0×16,0 | FCC og CE godkendt. Forbedret antenneydelse. 4 MB flash |
ESP-13 | 16 | 0,8 | 2×9 castellated | Ikke | PCB spor | Ja | B18,0 x L20,0 | Markeret som ″FCC″. Afskærmet modul er placeret sideværts sammenlignet med ESP-12 modulerne. |
I tabellen angiver SIL og DIL monterede stiftlister. Castellated - metallisering langs kanten af brættet til overflademontering af modulet. Terninger - puder under modulet, montering i stil med BGA tilfælde.
Moduler fra andre producenterNavn | Tilgængelige porte | Pindestigning, mm | stik | Tegn | Antenne | Skærm | Mål, mm | Noter |
---|---|---|---|---|---|---|---|---|
Olimex MOD-WIFI-ESP8266 [24] | 2 | 2,54 | UEXT modul | Ja | PCB spor | Ikke | ukendt | |
Olimex MOD-WIFI-ESP8266-DEV [25] | tyve | 2,54 | 2×11 DIL + castellated | Ja | PCB spor | Ikke | ukendt | |
Espressif Espressif WROOM-02 [26] | atten | 2,54 | 2×9 DIL | Ikke | PCB spor | Ja | 18×29 | FCC-godkendt |
SparkFun ESP8266 Thing [27] WRL-13231 | 12 | 2,54 | 2×10 DIL | Ja | PCB sporing + U.FL fatning | Ikke | 58x26 | USB Li-ion batterioplader |
In-Circuit ESP-ADC [28] | atten | 2,54 | 2x9 DIL | Ikke | U.FL fatning | Ikke | 22,9 x 14,9 | ESP8266EX |
Næsten samtidig med ESP8266 dukkede en hel linje af lignende løsninger fra andre producenter op. De bruger alle en dual-chip-arkitektur med programhukommelse i SPI Flash.
Entusiaster lavede en tv-sender med en modulator til den tredje tv-kanal på I2S-grænsefladen på ESP8266-chippen . Dette krævede ikke yderligere hardwarerør udover sendeantennen. Samtidig er Wi-Fi-funktionaliteten fuldstændig bevaret.
Mikrocontrollere | ||||||||
---|---|---|---|---|---|---|---|---|
Arkitektur |
| |||||||
Producenter |
| |||||||
Komponenter | ||||||||
Periferi |
| |||||||
Grænseflader | ||||||||
OS | ||||||||
Programmering |
|
RISC- teknologier | Processorarkitekturer baseret på|
---|---|