Ins Netz gegangen

Bei höherwertigen Mikrocontrollern gehört heutzutage eine umfangreiche Auswahl an Kommunikationsschnittstellen dazu, besonders die Ethernet-Anbindung ist für viele Anwendungen unverzichtbar. Doch wie bekommt man nun die Daten in den und aus dem Chip?

Bei höherwertigen Mikrocontrollern gehört heutzutage eine umfangreiche Auswahl an Kommunikationsschnittstellen dazu, besonders die Ethernet-Anbindung ist für viele Anwendungen unverzichtbar. Doch wie bekommt man nun die Daten in den und aus dem Chip?

Der Umgang mit integrierten Kommunikationsschnittstellen lässt sich am besten anhand eines konkreten Bausteins betrachten, hier am Beispiel der Mikrocontrollerfamilie »LPC2300« von NXP (Vertrieb: Spoerle). Im Herzen der Bausteine gibt ein 72 MHz schneller ARM7- Kern den Takt an. Auf dem LPC2378 stehen serielle Schnittstellen, also vier UARTs, drei SPI- und drei I2C-Interfaces zur Verfügung, außerdem USB, USBHost und USB-OTG, zwei CAN-Schnittstellen, eine I2SVerbindung und nicht zuletzt Ethernet. Bild 1 zeigt ein Blockdiagramm der Ethernet- Schnittstelle, wie sie auf dem Evaluationboard implementiert ist. Der integrierte Ethernet-MAC des LPC2378 ist dabei mit dem PHYTransceiver »DP83848C« von National Semiconductor verbunden. Um mehr Pins für andere Funktionen freizuhalten, benützt die LPC2300-Familie das RMIIInterface. »R« steht für »reduziert «, RMII kommt im Vergleich mit MII mit der Hälfte der Pins zurecht. Im Gegenzug muss es allerdings doppelt so schnell getaktet werden. Der PHY von National unterstützt beide Modi, MII und RMII, und wird als MII mit 25 MHz, als RMII mit 50 MHz getaktet.

Der TCP/IP Stack

Erst über das TCP/IP-Protokoll kann ein Computer oder Embedded-Mikrocontroller im Internet arbeiten. Oftmals wird auch synonym vom TCP/IP-Stack (Bild 2) gesprochen, weil die Protokolle in verschiedene Layers (Schichten) unterteilt sind, die übereinander gestapelt werden. Jeder Layer dient einer anderen Funktion. Der so genannte »Physical Layer« ist die erste Ebene des Stacks und beschreibt die Hardware, die den Mikrocontroller mit dem Netzwerk verbindet. Über diese Übertragungsschicht können Bits in Form elektrischer Impulse über das Netzwerk übertragen werden. Diese Schnittstelle wird über den PHY-Chip implementiert.

Die nächste Ebene, »Data Link Layer«, nimmt einen Bitstrom auf und macht daraus einen Ethernet-Frame. Ein solcher Frame hat einen Header, welcher eine Beschreibung der Daten enthält, die in dem Frame transportiert werden. Darin wird beschrieben, von welcher Adresse die Daten gekommen sind, wohin sie gehen sollen, um was für Daten es sich handelt, und wie lange der Datenblock ist. Dann kommen die Daten selbst und schließlich eine Checksumme am Ende der Daten, um zu überprüfen, ob sie auch korrekt empfangen worden sind. Die Senderadresse und die Empfängeradresse setzen sich jeweils aus sechs Byte zusammen. In unserem Beispiel stellt der Ethernet-MAC die Funktionen des Data-Link-Layers bereit. Dann reicht diese Schicht die »Nettodaten« an den nächsten, den »Network Layer«, weiter.

Diese Netzwerkschicht kontrolliert das Versenden der Datenpakete innerhalb des Netzwerks. Es gibt verschiedene Netzwerk-Layers, am häufigsten kommt das IP (Internet Protocol) zum Einsatz. Auch die Netzwerkschicht beinhaltet eine Senderadresse und eine Empfängeradresse, die sich jedoch von den Adressen im Ethernet-Frame unterscheiden. Diese IP-Adressen werden von Routern und anderen Geräten im Netzwerk benützt, um die Verbindung zwischen Sender und Empfänger zu optimieren.