ESP8266 WLan Modul die Hardware im Detail
Der ESP8266 ist in einfachen Worten ein Miniatur Rechner mit verschiedenen Schnittstellen. Bei üblichen Computern und mobilen Endgeräten werden verschiedene Prozesse auf unterschiedliche Hardware und Komponenten verteilt. Ein Smartphone beispielsweise verfügt über eine GPU / Grafik Prozessor Unit die massgeblich Daten zur Darstellung auf ein Display berechnet. Bei einem ESP8266 WLan Modul hingegen wird auf derartige Bauteile gänzlich verzichtet. Etwaige grafische Darstellungen erfolgen gänzlich durch mit dem WLAN Modul verbundenem Endgeräte. Im Eigentlichen basiert ein ESP8266 WLan Modul auf der gleichen Technologie wie typische Router.
Ein embedded System spezialisiert Daten über das typische TCP / IP Protokoll zu vermitteln und zu übertragen.
Embedded deshalb da nicht nur die Hardware, sondern auch die Firmware / Betriebssystem gänzlich eingebettet ist. Bei einem ESP8266 WLan Modul reduziert sich die massgebliche Hardware auf
- den ESP8266EX Microcontroller
- den Flash Speicher
Der ESP8266EX Mikrocontroller
Ganz gleich welches ESP8266 WLan Modul, alle Module basieren auf dem gleichen ESP8266EX Mikrocontroller. Das wohl massgeblichste Bauteil im ESP8266EX Mikrocontroller findet sich in dem Prozessor, dem eigentlichen Rechner. Im ESP8266EX wird ausnahmslos der Xtensa LX106 von Tensilica eingesetzt. Der Xtensa LX106 basiert auf einem energiesparenden 32-bit Prozessorkern. Typischerweise wird der LX106 Prozessorkern seitens des ESP8266EX mit einer Taktfrequenz von 80 MHz betrieben. Für umfassende Rechenprozess, beispielsweise ein MP3 Modul mit Musik versorgen, kann die Taktfrequenz auf 160 MHz. erhöht werden. Zusätzlich zum Xtensa LX106 Prozessorkern bedarf es zusätzlich noch weiterer Peripherie um den ESP8266EX seine umfassende Funktionalität zu verleihen:
- einen Instruction Ram, dem Befehlsspeicher
- Schnittstellen um Datensätze zu übertragen
- Signalverstärker
- Schaltungen zur Spannungsversorgung
All diese Komponenten werden seitens Espressif auf nur rund 5 x 5 mm gepackt. Der ESP8266EX zählt damit zu den kleinsten WLan Mikrocontrollern weltweit.
Der ESP8266 SPI Flash
Bei dem Flash Speicher handelt es sich mit einfachen Worten um den Hauptspeicher eines ESP8266 WLan Modul. Ähnlich einer Festplatte dient der SPI Flash zum bevorraten von Datensätzen als auch als Speicher für das Betriebssystem. Bei eingebetteten Betriebssystemen, wie beim ESP8266 spricht man jedoch von einer Firmware. Im Vergleich zu Computer Betriebssystemen ist eine Firmware auf die Hardware exakt zugeschnitten. Dies geschieht nicht nur um die optimale Funktionalität der Hardware zu gewährleisten, sondern insbesondere um die Flash Größe möglichst gering zu halten. Hier spiegelt sich auch die Notwendigkeit des umfassenden SDK Software Development Kit, dem Werkzeug um die jeweilige Firmware exakt auf die Bedürfnisse zuzuschneiden.
In der Größe des Flash Speicher findet sich auch ein signifikanter Unterschied zwischen den einzelnen ESP8266 WLan Modulen. Die Spannbreite der Flash Größe reicht hier von 512 KB bis hin zu 4 MB.
Wer sich nun wundern mag da es ESP Module mit 32 Mb Flash gibt.
Der Unterschied liegt in der Groß – und Kleinschreibung. Das große B steht bezeichnend für Byte, das kleine b hingegen für bit. Da sich aber 1 Byte aus 8 bit zusammensetzt ergibt sich daraus ein Divisor von 8, bzw. aus der bit Ebene betrachtet ein Multiplikator von 8.
Daraus resultiert das beispielsweise ein ESP8266 ESP-12E mit 32 Mb (Mbit) Flash Größe über 4 MB (MByte) verfügt.
Die Kommunikation zwischen SPI Flash dual SPI Flash und quad SPI Flash
Bei üblichen Computern fällt das Augenmerk oft auf die Taktfrequenz des Prozessor was schlussendlich auch ein Indiz über die Geschwindigkeit ist. Übliche Computer, selbst mobile Endgeräte hingegen verfügen über weitaus mehr Helfer in Form von Arbeitsspeicher und sogar weiteren Prozessoren wie beispielsweise Grafikkarten bei Computer und Mac, bzw. GPU bei mobilen Endgeräten.
Ein ESP8266 WLan Modul hingegen muss zunächst mit seinem Kernprozessor und dessen Befehlsspeicher (Arbeitsspeicher) zurecht kommen. Jedoch hat man auch im SPI Flash eines jeden ESP8266 WLan Modul einen kleinen Helfer in Form eines weiteren Prozessor. Im praktischen Ablauf reicht der Befehlsspeicher an den Prozessor des SPI Flash durch, damit ist auch zunächst für den Xtensa LX106 bzw. dessen Befehlsspeicher der erste Teil erledigt. Der Prozessor des SPI Flash bereitet nun den Request, die Datenanfrage entsprechend ab und gibt den Response, der vorherigen Anfrage zurück an den ESP8266EX. Dabei wird offensichtlich das der ESP8266EX in der Zwischenzeit durchaus weitere Aufgaben erledigen könnte. Der ESP8266EX kann zur gleichen Zeit Benutzereingaben, Signale von Sensoren, Schaltprozesse aber auch weitere Anfragen an den SPI Flash stellen oder gar Daten über den SPI Flash ziehen.
Das Prinzip dahinter ist denkbar einfach. Typischerweise kommuniziert ein ESP8266 Modul im Dual Mode mit seinem SPI Flash, beispielsweise werden über einen Kanal Daten geschickt und simultan den anderen Kanal Daten empfangen. Beim dual Mode verwendet der ESP8266EX lediglich 2 Pins (SDIO_DATA_0 und SDIO_DATA_1). Addiert man hier nun eine weitere Schnittstelle (SDIO_DATA_2 und SDIO_DATA_3) hinzu erhält man einen Multiplikator, das heisst man arbeitet im quad Modus mit dem SPI Flash.
Gerade im Bezug des Beschreiben / Flashen eines ESP8266 Modul ist es sehr hilfreich Kenntnis über
- die Taktfrequenz des SPI Flash
- sowie den Flash Modus
zu haben. Als Standardwert bei dem Schreiben der Firmware auf ein ESP8266 Modul können gleichwohl als Flashfrequenz 40 MHz und als Flashmode dio bezeichnend für double input output (dual mode) angegeben werden.
Sicherlich mag man angesichts der Speichergrößen von typischen Speicherkarten zunächst meinen mit 4 MByte sei nicht viel geboten. Jedoch sollte man sich hier die grundlegende Funktion eines ESP8266 in Erinnerung rufen Daten, Signale und Benutzereingaben erfassen, sowie zu interagieren und zu steuern. Ganz anders als bei einer Digitalkamera oder einem MP3 Player geht es hier nicht um die Datenbevorratung sondern um das Erfassen und das Verteilen von Signalen.
Für das Erfassen und auch das Verarbeiten sind die Schnittstellen des ESP8266 die massgeblichen Akteure. Über welche Schnittstellen der ESP8266 verfügt, sowie deren grundlegende Funktionsweise verfügt wird hier gezeigt.