SPI-Speicher gezielt per Software zurücksetzen

| Autor / Redakteur: Paul Hill * / Michael Eckstein

Speicher-Fernsteuerung: Der SPI-Standard wurde mehrmals erweitert, mittlerweile ist auch ein Soft-Reset über die Schnittstelle möglich.
Speicher-Fernsteuerung: Der SPI-Standard wurde mehrmals erweitert, mittlerweile ist auch ein Soft-Reset über die Schnittstelle möglich. (Bild: Adesto Technologies)

Fehlerhafte Systemzustände sind ein Problem, besonders bei IoT-Knoten. Ein serielles, von der JEDEC definiertes Reset-Protokoll ermöglicht das Zurücksetzen von SPI-Speicher per Soft-Reset.

Heutige Embedded-Systeme wie intelligente Geräte und Endpunkte im Internet der Dinge (IoT) müssen bei Bedarf unmittelbar Rechenleistung bereitstellen und dürfen dabei nur wenig Strom verbrauchen. Zudem sollten Elektroniksysteme in der Lage sein, sich von Betriebsbedingungen zu erholen, die durch vorübergehende Fehler verursacht werden. Häufig hängen diese mit der Signalintegrität zusammen und sind bei heutigen Hochgeschwindigkeits-Designs immer schwerer zu handhaben.

Die Wiederherstellung nach einem Laufzeitfehler erfordert – unter extremen Umständen und wenn kein Soft-Reset vorgesehen ist – einen kontrollierten Reset für das gesamte System oder Teile des Systems, also das Aus- und Wiedereinschalten eines Geräts. Für IoT-Endpunkte an entfernten Orten ist das problematisch, denn der Einsatz von Servicekräften ist teuer. Dies ist nur ein Beispiel dafür, wie wichtig Reset-Funktionen für Embedded-Designs geworden sind.

Das Serial Peripheral Interface (SPI) verbindet Peripherie und Speicher in Embedded-Systemen mit einem Mikrocontroller oder Prozessor. Ein Reset des seriellen Flash-Speichers ist ein wichtiger Teil der Initialisierung beziehungsweise Wiederherstellung. Um das Zurücksetzen von SPI-Speicher durch den Host-Prozessor zu vereinfachen, hat das Industriestandardisierungsgremium JEDEC ein serielles Reset-Protokoll definiert, das einen speziellen Reset-Pin überflüssig macht. Dieser Beitrag beschreibt dieses Protokoll und seine Verwendung, insbesondere in Bezug auf die erweiterte SPI-Schnittstelle (xSPI) und das Ausführen von Code aus dem seriellen nichtflüchtigen Speicher.

Der wesentliche Vorteil einer seriellen Schnittstelle gegenüber einem parallelen Bus ist die reduzierte Anzahl der erforderlichen Signale. Weniger Signale und I/O-Pins reduzieren die Bauteilkosten und den Stromverbrauch, da der Strom, der zur chipexternen Ansteuerung von Signalen erforderlich ist, einen wesentlichen Beitrag zum Gesamtstromverbrauch leistet.

SPI-Flash-Speicher in Embedded-Systemen

Die ursprüngliche SPI-Spezifikation hatte vier Signale: einen seriellen Takt zum Synchronisieren von Datenübertragungen; ein oder mehrere Chip-Select-Signale, um die Adressierung mehrerer Ziele zu ermöglichen; und zwei Datensignale zur Datenübertragung in jede Richtung. Der Standard wurde mehrmals erweitert, um leistungsfähiger zu werden, was nun auch den Reset über die SPI-Schnittstelle beinhaltet. Um die Bandbreite zu erhöhen, wurde die SPI-Schnittstelle weiterentwickelt. Zu den Varianten zählen nun Dual-SPI, die beide Datenpins in einer Halbduplex-Konfiguration zum Senden verwendet, um zwei Bits pro Taktzyklus zu senden. Hinzu kommen Quad- und Oktal-SPI, die weitere Datenleitungen hinzufügen, um mehr Bits pro Taktzyklus zu übertragen. Beide Varianten unterstützen den DDR-Modus (Double Data Rate), der Daten an beiden Taktflanken überträgt.

Quad- und Oktal-SPI-Schnittstellen werden durch den erweiterten JEDEC-SPI-Standard (xSPI) JESD251 definiert, der Hardware-Richtlinien für die problemlose Integration von xSPI-Bausteinen mit hohem Durchsatz in Systeme enthält. In jüngerer Zeit hat die JEDEC auch einen Standard definiert und veröffentlicht, der den Reset über die serielle Schnittstelle vorsieht. Dieses im JEDEC-Standard JESD252 definierte Reset-Protokoll erübrigt einen speziellen Reset-Pin am seriellen Flash.

Hardware-Reset per Software-Befehl

Der Standard definiert die spezifische Reihenfolge, in der die Chip-Select-, Takt- und Eingangsdaten-Signale folgen müssen, damit das System einen Hardware-Reset ausführt. Dieses Muster wird verwendet, damit störende Übergänge, die durch Rauschen auf der seriellen Datenleitung verursacht werden, nicht zu einem versehentlichen Reset führen. Während eines Resets wird das Taktsignal niedrig gehalten, um sicherzustellen, dass die Pin-Übergänge nicht als Datenübertragung interpretiert werden. Der Chip-Select-Pin stellt dabei sicher, dass nur ein bestimmter Baustein zurückgesetzt wird. SPI-Flash-Speicher werden häufig in Embedded-Systemen verwendet, insbesondere für Code. Dies ist für die Gesamtfunktion von entscheidender Bedeutung. Daher ist es unerlässlich, einen zuverlässigen Betrieb aufrechtzuerhalten, einschließlich der Möglichkeit, bei Bedarf einen Reset durchzuführen.

Schaltwerk: Das Reset-Protokoll definiert die spezifische Reihenfolge, in der die Chip-Select-, Takt- und Eingangsdaten-Signale aufeinander folgen müssen, damit das System einen Hardware-Reset ausführt.
Schaltwerk: Das Reset-Protokoll definiert die spezifische Reihenfolge, in der die Chip-Select-, Takt- und Eingangsdaten-Signale aufeinander folgen müssen, damit das System einen Hardware-Reset ausführt. (Bild: Adesto Technologies)

Beim Einschalten führen Embedded-Systeme generell einen Reset durch, um sicherzustellen, dass sich alle enthaltenen Schaltungsteile in einem bekannten Zustand befinden. Ein Reset kann auch zur Wiederherstellung nach schwerwiegenden Fehlern erfolgen, die durch Hardwareprobleme während der Laufzeit verursacht werden. Dazu zählen heute Probleme rund um die Signalintegrität und das Timing, elektromagnetische Störungen oder Beschädigungen des Speichers durch Hintergrundstrahlung. Softwarefehler können auch dazu führen, dass ein Programm abstürzt und nicht mehr reagiert.

Reset für Initialisierung und Wiederherstellung

Diese gelegentlichen Fehler können für Anwender unangenehm sein. Für das IoT sind sie in der Regel ein ernstes Problem. Zum Beispiel dann, wenn Tausende von Knoten ein hohes Maß an Verfügbarkeit erfordern. In zunehmendem Maße sind diese Geräte für einen manuellen Reset oder ein Aus- und Wiedereinschalten nicht ohne weiteres zugänglich. Embedded-Systeme nutzen meist Watchdog-Timer und andere Selbsttest-Mechanismen, um Fehler zu erkennen und Korrekturmaßnahmen zu ergreifen. Dies kann bedeuten, dass ein Soft-Reset durchgeführt wird, bei dem nur die notwendigen Subsysteme unter der Kontrolle des Prozessors zurückgesetzt werden.

Die SPI-Schnittstelle ist zustandsbehaftet, sodass der Flash-Speicher nach Empfang eines Befehls eine bestimmte Anzahl von Adress- oder Datenübertragungen erwartet. Alle Fehler, die zu einem Verlust der Synchronisation zwischen Host und Speicher führen, führen zu einem unvorhersehbaren Verhalten. Um dies zu beheben, muss der Host in der Lage sein, den seriellen Speicher durch einen Soft-Reset in einen bekannten Zustand zurückzusetzen. Solche Resets tragen dazu bei, ein stabiles System aufrechtzuerhalten und werden ohne äußere Anzeichen von Fehlern durchgeführt. Daher werden sie heute als Standardmerkmal des Betriebs von Embedded-Systemen angesehen.

Während einige serielle Flash-Speicher über einen speziellen Reset-Pin verfügen, nutzen andere Multiplexing, um die Anzahl der Pins zu verringern. In diesem Fall ist der Reset-Pin auch ein I/O-Pin, und in einigen Fällen bietet der Hersteller überhaupt keinen Reset. Selbst wenn ein Reset-Pin bereitsteht, macht es keinen Sinn, einen Ausgang des Mikrocontrollers zur Steuerung zuzuweisen. Aus diesem Grund wurde die JESD252-Spezifikation entwickelt, sodass das serielle Flash-Speicher weiterhin einen Reset unterstützt, ohne dass ein spezieller/physischer Pin erforderlich ist. Neben der Fehlerbehebung stellt der serielle Reset-Mechanismus beim Start sicher, dass der serielle Speicher nach der Stabilisierung der Stromversorgung ordnungsgemäß initiiert wird.

Execute-in-Place vermindert Bedarf an SRAM

Herkömmlicher serieller Flash-Speicher wird über eine langsame SPI angebunden. Wird dieser für Programmspeicher verwendet, muss der Prozessor den Code vor der Ausführung zunächst in das On-Chip-SRAM kopieren. Execute-in-Place (XiP) ist ein serieller Flash-Speicher, der diese Anforderung durch eine schnellere und breitere Schnittstelle bedient. Dies verringert den Bedarf an On-Chip-SRAM und ermöglicht folglich kostengünstigere Host-Mikrocontroller oder Prozessoren. EcoXiP von Adesto verfügt über eine Oktal-SPI-Schnittstelle, die hohe Leistungsfähigkeit bei einem deutlich geringeren Stromverbrauch im Vergleich zu anderen Oktal-SPIs und eine wesentlich höhere Leistungsfähigkeit als Quad-SPI-Speicher bietet.

Für moderne Embedded-Systeme ist XiP eine wichtige Neuerung – nicht zuletzt, weil On-Chip-Flash-Speicher teuer und in der Größe begrenzt ist. Mikrocontroller verfügen normalerweise über maximal 1 MB internen Flash-Speicher. Moderne IoT-Knoten benötigen jedoch häufig viel mehr Code für Funktionen wie Kommunikations-Stacks, Funkschnittstellen, Audio-/Bildverarbeitung und Anwendungssoftware. XiP mit externem Flash ermöglicht einen viel größeren Codespeicher. Damit verbessert sich auch die Startzeit, da die Codeübertragungsstufe entfällt.

Mehr Tempo: Die EcoXiP-Schnittstelle stellt für jede Leseanforderung sequentielle Bytes bereit, bis ein Befehl mit einer neuen Adresse gesendet wird. Dies kann den Bus-Durchsatz verdoppeln.
Mehr Tempo: Die EcoXiP-Schnittstelle stellt für jede Leseanforderung sequentielle Bytes bereit, bis ein Befehl mit einer neuen Adresse gesendet wird. Dies kann den Bus-Durchsatz verdoppeln. (Bild: Adesto Technologies)

Mit XiP bleibt das SRAM frei für die Datenspeicherung und nicht für den Code, was die Menge an erforderlichem SRAM verringert. Dies verringert die Systemkosten, da kein externes SRAM erforderlich ist oder ein Mikrocontroller mit weniger On-Chip-SRAM ausreicht. Während NOR Flash einen zufälligen Zugriff ermöglicht, muss der Mikrocontroller die serielle Schnittstelle in seinem eigenen Speicherbereich abbilden, sodass sie nur als weiterer Speicherbereich betrachtet wird und daher XiP unterstützt.

Standard-SPI-Schnittstellen sind für Zufallszugriffe ausgelegt

Um die Leistungsfähigkeit weiter zu erhöhen, wurde EcoXiP für die Codeausführung optimiert. Standard-SPI-Schnittstellen sind für Zufallszugriffe ausgelegt. Jeder Lesevorgang besteht aus einem Befehl, einer Adresse und den zurückgegebenen Daten. Nach der Rückgabe der Daten lässt sich eine weitere Anfrage stellen. Anweisungen werden jedoch häufig von aufeinanderfolgenden Adressen abgerufen. Die EcoXiP-Schnittstelle nutzt dies aus, indem sie für jede Leseanforderung sequentielle Bytes bereitstellt, bis ein Befehl mit einer neuen Adresse gesendet wird. Dies kann den Busdurchsatz verdoppeln, da die Latenz für das Senden einer neuen Adresse für jeden Abruf entfällt. EcoXiP kann Anweisungen mit einer Dauerdatenrate von 156 MByte/s (266 MByte/s Spitze) liefern.

Ein weiteres Problem bei herkömmlichem NOR-Flash ist, dass Schreibvorgänge um Größenordnungen langsamer sind als Lesevorgänge. Damit können Daten nicht in das Flash geschrieben werden, während Code von dort ausgeführt wird. EcoXiP unterstützt gleichzeitiges Lesen und Schreiben, indem der Speicher flexibel in unabhängige Bänke aufgeteilt wird. XiP kann somit zum Ausführen von Code verwendet werden, während gleichzeitig Daten im Speicher abgelegt und über Funk (OTA; Over The Air Updates) aktualisiert werden. Die Unterstützung der JEDEC-Standards inklusive Remote-Reset macht es damit einfacher, seriellen Flash-Speicher mit XiP zu verwenden.

Gezielter Reset ohne dedizierten Reset-Pin

Die Möglichkeit, seriellen Flash unter der Kontrolle des Host-Prozessors zurückzusetzen ist besonders für Embedded Systeme essenziell. Das serielle Reset-Protokoll JEDEC JESD252 ermöglicht genau das, ohne dass ein Reset-Pin am Speicher oder ein spezielles Signal vom Mikrocontroller oder Host-Prozessor erforderlich ist. Obwohl sich ein serieller Reset und XiP sowohl auf den Host als auch auf den Speicher auswirken, unterstützen immer mehr Mikrocontroller diese Standards.

Adesto war der erste Anbieter, der einen seriellen NOR-Flash-Speicher auf den Markt brachte, der das serielle Flash-Reset-Signalisierungsprotokoll und die xSPI-Standards unterstützt hat. EcoXiP liefert von Embedded Systemen geforderte Ausführungsleistung und verringert den Stromverbrauch sowie die Systemkosten. Die Technik unterstützt auch den Standard für die serielle Flash-Erkennung und verfügt über weitere Funktionen für eine verbesserte Energieeffizienz und Sicherheit. Damit sind die Entwickler von Embedded-Systemen besser auf die Herausforderungen bei der Entwicklung von IoT-Lösungen vorbereitet.

Das müssen moderne Flash-Speicher für Autos können

Das müssen moderne Flash-Speicher für Autos können

04.04.19 - Neue Funktionen und Analysemöglichkeiten machen Flash-Speicher fit für die Anforderungen automotiver Sicherheitsstandards. lesen

Flash-Flitzer: Neuer Speicher ist 5x schneller und benötigt 70% weniger Energie

Flash-Flitzer: Neuer Speicher ist 5x schneller und benötigt 70% weniger Energie

05.03.19 - Mit patentierter Low-Power-Technologie, neuen Security-Funktionen und einer Speicherkapazität von bis zu 32 MBit erweitert Adesto seine auf IoT-Anwendungen zielende Fusion-Flash-Baureihe. Intelligente Detaillösungen lassen FusionHD aus der Masse herkömmlicher nichtflüchtiger NOR-Flash-Speicherlösungen herausragen. lesen

Welterster FOC-Motorcontroller mit RISC-V als Single-Chip-Lösung

Welterster FOC-Motorcontroller mit RISC-V als Single-Chip-Lösung

17.01.19 - Die Integration leistungsstarker Prozessoren in den Motorcontroller für Schrittmotoren, BLDC-Motoren, bürstenbehaftete DC-Motoren, Voice-Coil-Motoren erlaubt ein Mehr an Design-Freiheit und Motion-Funktionen, die künftig geboten sind. lesen

* Paul Hill ist Director of Product Marketing von Adesto Technologies in Santa Clara, Kalifornien

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46017140 / Speicher)