Entgegen dem SPI-Standard erfolgt die Adressierung der Teilnehmer nicht über eine separate Datenleitung, sondern durch einen Address Header im Data Frame. Um den Address Header im kontinuierlichen Datenstrom zu detektieren, wird ein Interframe-Symbol, das im herkömmlichen Sinne einem Start of Package sowie End of Package entspricht, eingefügt. Das Interframe-Symbol (IFS) stellt somit eine Preamble zur Rahmensynchronisation dar. Neben der Synchronisation dient das IFS gleichzeitig zur Polaritätserkennung. Dies erlaubt beliebig viele Inverter und Leitungskreuzungen im Verlauf des Rings.
Die Kommunikation mit den Ringteilnehmern erfolgt mit Hilfe einer indirekten Adressierung. Der Interrupt-Frame weist die lokale Adresse zu. Der Master versendet einen Interrupt-Frame mit der Adresse 0. Jeder Teilnehmer im Ring speichert die empfangene Adresse als seine eigene Adresse. Vor dem Weitersenden der Adresse addiert er 1 zur empfangenen Adresse hinzu. Dies ist die Adresse für den nachfolgenden Teilnehmer im Ring. Die Realisierung der Addition erfolgt durch einen 1-Bit-Addierer, indem die Adresse LSB-First übertragen wird. Die Addition um den Wert 1 entspricht einer Invertierung des LSBs. Entsprechend dem Übertrag werden die nachfolgenden Bits des Adressfelds modifiziert.
Das Serial-WireRing-Protokoll sieht drei Frame-Formate vor, wie die Bilder 2, 3 und 4 verdeutlichen. Eine Frame-ID direkt nach dem Inter-Frame-Symbol bestimmt den Typ des Frames. Einerseits gibt es Unicast- und Multicast-Frames zur Übertragung von Daten und Instruktionen zwischen Master und Slave. Die Schnittstelle ermöglicht es, unterschiedlich Rahmenlängen zu nutzen, weil für einen Teilnehmer irrelevante Rahmen nur durchgereicht oder durchgeschoben werden. Andererseits verfügt Serial WireRing über Interrupt Frames, über die jeder Slave Interrupts an den Master übermitteln kann und über die die Adresszuweisung erfolgt.
Keine Einbahnstraße
Um in seinem Ruhezustand Informationen von den Slaves empfangen zu können, schickt der Master kontinuierlich Interrupt Frames. Jeder Slave kann in diesem Paket eine Anforderung, einen sogenannten Soft Interrupt, an den Master übertragen. Durch den Interrupt Frame kann der Slave einen Soft Interrupt an den Master senden und darauf warten, dass dieser mit einem passenden Datenpaket in einem nächsten Umlauf den Slave bedient. Ein Interrupt Frame enthält nach dem IFS und dem Rahmenindikator eine Anzahl an Bits entsprechend der Anzahl an Interrupt-fähigen Teilnehmern im Ring. Die Kenntnis über das jedem Slave zugeordnete Interrupt-Bit bezieht der Slave aus seiner Ringadresse.
Im Protokoll wird dafür Sorge getragen, dass ein Soft Interrupt eines Slaves bei überschneidender Adressierung durch den Master - Master spricht den Slave an, noch bevor der Soft Interrupt des Slaves verarbeitet oder rückgesetzt wurde - korrekt bearbeitet wird. Zum Beispiel ließe sich nach erfolgreicher Abarbeitung des Interrupts durch den Master ein Reset-Befehl an den Slave absetzen. Dieser muss jedoch durch die Latenzen des Kommunikationssystems erst zu einem Zeitpunkt im Slave ausgeführt werden, nachdem bereits ein neuer Interrupt vorliegt. Somit würde ein im Zeitraum nach dem Empfang des letzten Interrupt Frames bis zur Ausführung des Interrupt-Rücksetz-Befehls auftretender Interrupt im Slave versehentlich gelöscht werden. Um diesen Zustand zu verhindern, wurde im Rahmen von Serial WireRing eine unidirektionale Übertragung der Interrupt-Information vorgesehen. Darin verfügt jeder Slave über ein Interrupt-Register. Der Wert des Interrupt-Registers im Slave wird mit dem Auftritt eines Interrupts inkrementiert. Der aktuelle Status des Interrupt-Registers wird von jedem Teilnehmer in den Interrupt-Frame eingefügt und an den Master übertragen. Der Master enthält bereits ein Abbild der Statusinformation aus dem vorigen Umlauf. Nun kann er durch einen Vergleich des aktuellen mit dem vorigen Status des Interrupts-Registers entscheiden, welche Teilnehmer im Rahmen einer Soft-Interrupt-Service-Routine entsprechend der ihm zugeordneten Priorität abgearbeitet werden soll.
Neben Vorteilen wie besserer EMV und reduzierte Kosten für die Aufbau- und Verbindungstechnik durch weniger Pins hat Serial WireRing auch funktionale Pluspunkte gegenüber SPI. So ist es möglich, mehrere Slaves innerhalb eines Bausteins zu integrieren. Ein Beispiel ist in Bild 5 dargestellt. Alle Slaves innerhalb des Bausteins teilen sich die im Vergleich zur Protokoll-Logik flächenintensive Schaltung zur Taktrückgewinnung und den I/O Buffer. Den unterschiedlichen Slaves innerhalb des Bausteins lassen sich so verschiedene Funktionen, sprich Peripheriemodule, zuordnen. So kann jeder Funktion eine dedizierte Interrupt-Leitung bereitgestellt werden. Im Unterschied zu SPI entfällt das Polling beim Einlesen von asynchronen Daten. Vielmehr kann der Slave durch einen Interrupt das Vorliegen neuer Daten anzeigen, die der Master nach dem Empfang eines Interrupts automatisiert mit Data Frame abholt und im Speicher des Masters ablegt.