-
Die Erfindung betrifft eine Kommunikationsanordnung zur Konfiguration bzw. zur Programmierung einer programmierbaren Hardware sowie ein entsprechendes Verfahren.
-
Stand der Technik
-
Serielle Schnittstellen werden in vielen Netzwerken statt paralleler Schnittstellen verwendet. Gründe hierfür sind die Reduktion der Kosten für die Aufbau- und Verbindungstechnik, bspw. Anzahl der Pins, eine Vereinfachung des Systemdesigns und eine Skalierbarkeit der Bandbreite von Übertragungsdaten durch parallele Nutzung mehrerer serieller Schnittstellen.
-
Dieser Trend zeichnet sich insbesondere im Bereich der Unterhaltungselektronik (Consumer Electronics) mit einer Vielzahl an seriellen Schnittstellen-Standards ab. Diese werden meist zur Kommunikation mit Peripheriegeräten, z. B. Festplatte oder Display, eingesetzt. Abgesehen von der geringen Anzahl der Pins nutzen diese Schnittstellen jedoch komplexe Protokolle, die einen hohen Implementierungsaufwand erfordern. Zur Datenübertragung zwischen Logikbausteinen (ICs), bspw. auf dem Mainboard eines PCs oder innerhalb eines Handheld-Geräts, bündeln heutige Schnittstellen mehrere serielle Datenströme, bspw. PCI-Express oder Quickpath, und ermöglichen dadurch dem Systemdesigner eine Skalierbarkeit der Bandbreite.
-
Im Bereich der Kraftfahrzeugtechnik kommen zur Datenübertragung zwischen logischen Bausteinen, die als integrierte Schaltkreise (IC, Integrated Circuit) ausgebildet sein können, in Steuergeräten serielle Schnittstellen (SPI, Serial Peripheral Interface) zum Einsatz. Dieser Standard beschreibt eine bidirektionale, synchrone und serielle Datenübertragung zwischen einem als Master ausgebildeten Baustein und verschiedenen als Slaves ausgebildeten Bausteinen. Dabei umfasst eine Schnittstelle mindestens drei Leitungen zwischen dem Master und einem Slave, in der Regel sind dies zwei Datenleitungen und eine Taktleitung. Bei mehreren Slaves benötigt jeder dieser Bausteine eine zusätzliche Auswahl- bzw. Selektleitung vom Master. Die SPI-Schnittstelle ermöglicht die Umsetzung einer Daisy-Chain- oder Bustopologie.
-
In einigen Fällen ist die SPI-Schnittstelle nicht für die Übertragung zeitkritischer Ansteuersignale geeignet, um den Echtzeitanforderungen heutiger sicherheitskritischer Applikationen, z. B. ESP, gerecht zu werden. Häufig erfolgt mit einer SPI-Schnittstelle nur noch ein Austausch von Diagnose- und Statusinformationen. Zeitkritische Ansteuersignale werden in der Regel unter der Nutzung von Timer-Einheiten und/oder proprietären Schnittstellen mit hohem Aufwand an die Ansteuerbausteine der Aktoren und/oder von den Auswerteschaltungen der Sensoren übertragen.
-
In der Anwendung der SPI-Schnittstelle in Form einer Bustopologie ergeben sich bei höheren Datenraten zunehmend schlechtere Signalintegritäten und hohe Störbeeinflussungen aufgrund schlechter EMV-Eigenschaften. Weiter wird nur das Sendesignal mit dem Taktsignal synchron übertragen, während sich die phasensynchrone Übertragung des Empfangssignals durch die internen Verzögerungszeiten im Slave bei hohen Datenraten zunehmend schwieriger gestalten und Fehler in der Datenübertragung hervorrufen können.
-
In der Anwendung der SPI-Schnittstelle in einer Daisy-Chain-Topologie, d. h. Ringtopologie, entstehen sehr hohe Latenzzeiten, weswegen diese Form heutzutage nicht effizient in Kfz-Steuergeräten genutzt werden kann.
-
Aus der
DE 10 2010 041427 ist eine Kommunikationsanordnung bekannt, welche deutliche Vorteile gegenüber den bekannten aufweist. Diese Kommunikationsanordnung ist ringförmig (vorzugsweise in Daisy-Chain-Topologie) ausgebildet ist und mindestens zwei Teilnehmer aufweist, die miteinander seriell (vorzugsweise über Punkt-zu-Punkt-Verbindungen) verbunden sind. Unter den Teilnehmern befinden sich ein Master sowie ein oder mehrere Slaves. Jeder der Slaves weist ein Schieberegister auf, vorzugsweise ein 1-Bit-Schieberegister. Hierdurch ist es möglich Daten über die Kommunikationsanordnung, also über den Ring, von Teilnehmer zu Teilnehmer mit einer minimalen Verzögerung von einem Bit zu übertragen.
-
Seit Jahrzehnten werden programmierbare Logik-Bausteine (z.B. Field Programmable Gate Array, FPGA) für Prototypenbau bis mittelgroße Serienprodukte eingesetzt. Dabei wird die programmierbare Logik mittels Konfiguration, d.h. Veränderung von Inhalten in Speicherelementen steuert die Funktion der Hardware, funktional gestaltet. Die Daten für die Konfiguration werden aus Speicherbausteinen (z.B. Flash-Speicher) ausgelesen und dem FPGA zur Verfügung gestellt. Diesen Vorgang steuert der FPGA selber (Master-Mode) oder wird durch einen externen Kontroller (z.B. Mikrokontroller, weiterer programmierbarer Baustein) initiiert und durchgeführt (Slave-Mode).
-
Nach Stand der Technik werden die Konfigurationsdaten (Bitstrom) über eine serielle Schnittstelle (Serial Peripheral Interface, SPI) oder mittels paralleler Datenübertragung aus dem Speicher gelesen. Im Falle eines externen Kontrollers werden die Daten anschließend über eine FPGA-Herstellerspezifische Schnittstelle in den FPGA geschrieben. Dabei sind mindestens eine Taktleitung (Clock), eine Datenleitung (Data) und eine Bestätigungsleitung (Acknowledge oder Ready) nötig. Kommen nun weiter Komponenten in diese Übertragungsstrecke (z.B. ein zweiter Speicher oder mehrere FPGAs), müssen die Leitungen vervielfacht werden.
-
Aus der
US 7,265,578 B1 ist beispielsweise ein Verfahren für eine Im-System-Programmierung über SPI und JTAG bekannt. In der
US 7,554,357 B2 ist eine effiziente Konfiguration von programmierbaren Logikbausteinen in Daisy-Chain-Anordnung offenbart.
-
Offenbarung der Erfindung
-
Die vorliegende Erfindung geht aus von einer Kommunikationsanordnung gemäß dem unabhängigen Anspruch 1. Eine solche Kommunikationsanordnung ist vorrangig ringförmig (vorzugsweise in Daisy-Chain-Topologie) ausgebildet und weist mindestens zwei Teilnehmer auf, die miteinander seriell (vorzugsweise über Punkt-zu-Punkt-Verbindungen) verbunden sind. Dabei ist ein Teilnehmer vorzugsweise als Master ausgebildet und die übrigen Teilnehmer sind als Slaves ausgebildet. Als Master sind insbesondere Mikrocontroller, Logikbausteine und FPGAs denkbar, Slaves können vorzugsweise als funktionale Endstufen ausgebildet sein. Der Master ist zudem dazu ausgebildet, ein Datenpaket an einen oder mehrere Slaves zu übermitteln, und jeder Slave verfügt über ein Schieberegister, über welches das Datenpaket geschoben wird. Eine solche Anordnung ermöglicht eine Übertragungsart, die nur zwei Pins/Signale pro Teilnehmer benötigt, und ermöglicht es zudem, weitere Bausteine in der Übertragungsstrecke einzubringen. Erfindungsgemäß ist mindestens ein Teilnehmer in der Kommunikationsanordnung ein programmierbarer Hardware-Baustein (z.B. ein FPGA) und mindestens ein Teilnehmer in der Kommunikationsanordnung ein Speicherbaustein. Dabei ist der programmierbare Hardwarebaustein so ausgestaltet, dass er über ein Auslesen von Daten des Speicherbausteins konfigurierbar ist.
-
Die Erfindung geht weiterhin aus von einem Verfahren gemäß dem unabhängigen Verfahrensanspruch. Zur Konfiguration eines programmierbaren Hardwarebausteins können mehrere Teilnehmer in einer ringförmigen Kommunikationsanordnung angeordnet werden und seriell miteinander verbunden werden. Vorzugsweise wird ein Teilnehmer als Master und die übrigen Teilnehmer werden als Slaves eingerichtet. Der Master übermittelt Datenpakete an einen oder mehrere der Slaves, wobei die Datenpakete in den Slaves über ein Schieberegister laufen. Der programmierbare Hardwarebaustein eines Teilnehmers der Kommunikationsanordnung wird dann über ein Auslesen von Daten eines Speichermittels eines Teilnehmers der Kommunikationsanordnung konfiguriert.
-
Aus einer solchen Kommunikationsanordnung bzw. aus in einer solchen Kommunikationsanordnung durchgeführten Konfigurationsverfahren ergeben sich viele Vorteile gegenüber bekannten Anordnungen zur Konfiguration programmierbarer Hardwarebausteine. Zum Beispiel weist die Anordnung eine sehr geringe Anzahl von Leitungen (bereits ab zwei möglich) für die Konfiguration solcher Bausteine auf, was insbesondere bei komplexeren Systemen zu einer erheblichen Aufwands- und Kostenreduktion führen kann. Jeder weitere Baustein in der Konfigurationskette erzeugt zudem nur eine Leitung mehr. Die Erfindung ermöglicht auch den Ausbau einer variablen Konfigurationskette für FPGAs. Im Vergleich zu einer Konfiguration über SPI ist eine höhere Datenrate bei mehr als zwei Teilnehmern erreichbar, außerdem sind längere Leitungswege bei gleicher Datenrate und gleichen EMV-Eigenschaften möglich. Die Konfigurationsdatenleitungen können hier zudem im Betrieb für weitere Zwecke der Datenübertragung weiterverwendet werden. Auch eine Anordnung mit einem schwebenden Konfigurationskontroller (Config-Master), der keine feste Position im Datenring aufweist, ist mit der vorgeschlagenen Anordnung möglich.
-
Weitere Vorteile ergeben sich für die untergeordneten Ansprüche.
-
Die Steuerung der Konfiguration bzw. Programmierung ist in der vorgeschlagenen Kommunikationsanordnung sehr flexibel einrichtbar und kann z.B. einem speziellen Konfigurationsmaster übertragen werden, aber auch dem Teilnehmer, welcher den zu konfigurierenden bzw. programmierenden Hardwarebaustein aufweist.
-
Besondere Effizienzvorteile aufgrund einer sehr geringen Leitungsanzahl im Vergleich zu bekannten Systemen ergeben sich für die ringförmige Kommunikationsanordnung, wenn sie zu einer Konfiguration eingesetzt werden, bei der entweder mehrere Speichermittel, insbesondere verteilt auf mehrere Teilnehmer, oder mehrere programmierbare Hardwarebausteine, insbesondere verteilt auf mehrere Teilnehmer, vorgesehen sind. Entsprechend sind die Effizienzgewinne besonders groß in Systemen mit sowohl mehreren Speichermitteln als auch mehreren zu konfigurierenden bzw. programmierenden Hardwarebausteinen.
-
Der die Konfiguration bzw. Programmierung steuernde Master kann entweder permanent im System verbleiben (und nach einer Konfiguration z.B. andere Funktionen übernehmen) oder nur in einer Konfigurationsphase im System eingesetzt werden und nach einer Konfigurationsphase aus dem Ring genommen werden, welcher dann wieder geschlossen wird. Dadurch ist ein flexibler Einsatz des Konfigurationsmaster möglich, so dass z.B. ein Konfigurationsmaster für die Konfiguration verschiedener Hardwarebausteine in verschiedenen Ringanordnungen immer wieder verwendet werden kann.
-
Ausführungsformen der Erfindung und Beschreibung der Zeichnungen
-
1 zeigt eine ringförmige, serielle Kommunikationsanordnung.
-
2 zeigt eine zur Konfiguration eines programmierbaren Hardwarebausteins ausgelegte Kommunikationsanordnung mit einem Master mit programmierbarem Hardwarebaustein und einem Slave mit Speichermitteln.
-
3 zeigt eine zur Konfiguration eines programmierbaren Hardwarebausteins ausgelegte Kommunikationsanordnung mit einem Konfigurationsmaster.
-
4 zeigt eine zur Konfiguration eines programmierbaren Hardwarebausteins ausgelegte Kommunikationsanordnung mit mehreren Teilnehmern, welche programmierbare Hardwarebausteine aufweisen.
-
5 zeigt eine zur Konfiguration eines programmierbaren Hardwarebausteins ausgelegte Kommunikationsanordnung mit zwei Teilnehmern, welche Speichermittel aufweisen.
-
6 zeigt eine zur Konfiguration eines programmierbaren Hardwarebausteins ausgelegte Kommunikationsanordnung in einer Konfigurationsphase.
-
7 zeigt eine zur Konfiguration eines programmierbaren Hardwarebausteins ausgelegte Kommunikationsanordnung nach einer Konfigurationsphase.
-
Zunächst soll die zugrundeliegende, serielle sowie ringförmige Kommunikationsanordnung beschrieben werden. Als Teilnehmer der Anordnung sind mindestens ein Slave, insbesondere ein diskreter Logikbaustein (ASIC), sowie ein Master, insbesondere ein Logikbaustein wie ein Mikrocontroller, zur Kontrolle bzw. Steuerung und/oder Regelung des mindestens einen Slaves vorgesehen. Dabei wird eine einfache und kostengünstige Implementierung auf Logikbausteinen, d. h. Mikrocontrollern und/oder ASICs, mit hohen Datenraten ermöglicht, wobei eine derartige Implementierung mit wenigen Verbindungsleitungen auf einer Leiterplatte und wenigen Pins des Logikbausteins, d. h. geringen Kosten der Aufbau- und Verbindungstechnik, realisierbar ist.
-
Die Teilnehmer sind in der Kommunikationsanordnung in Form einer Ring-Topologie angeordnet, wodurch die Teilnehmer durch Punkt-zu-Punkt-Verbindungen mit einer minimalen Anzahl an Pins verbunden sein können. In der Ring-Topologie bestimmt der langsamste Teilnehmer die Busgeschwindigkeit. Gegebenenfalls kann eine Zusammenfassung bzw. Gruppierung von Teilnehmern in unterschiedlichen Ringen erfolgen, wobei in jedem dieser Ringe als eine für sich abgeschlossene Ausführungsform einer erfindungsgemäßen Kommunikationsanordnung eine Ausführungsform des erfindungsgemäßen Verfahrens durchgeführt werden kann. Sind mehrere Funktionsgruppen in einem Steuergerät integriert, bspw. ein Mikrocontroller kommuniziert mit mindestens einem ASIC unterschiedlicher Funktionseinheiten, so nutzen die jeweiligen Funktionsgruppen typischerweise jeweils eine separate Ringanordnung.
-
Ein Mikrocontroller agiert in der Regel als Master, wodurch keine Busarbitrierung erforderlich wird. Somit kann der Master entsprechend des heutigen SPI-Protokolls, das ebenfalls ein Master-Slave-Konzept ist, die Slaves über ein sog. Polling zyklisch abfragen.
-
Entsprechend dem SPI-Standard kann eine synchrone Datenübertragung erfolgen. Allerdings sind für Daten und Takt keine separaten Leitungen erforderlich. Die vorgesehene Schnittstelle sieht eine kodierte Übertragung des Takts innerhalb des Datensignals vor, bspw. eine 8B/10B-Kodierung, Manchestercodierung oder Millercodierung bzw. Modified Frequency Modulation. Folglich sind für niedrige Datenraten nur zwei Pins pro Teilnehmer mit je einer Leitung zum vorgehenden und nachfolgenden Teilnehmer vorgesehen. Hohe Datenraten sehen eine differentielle Übertragung mit vier Pins pro Teilnehmer mit je zwei Leitungen zum vorgehenden und nachfolgenden Teilnehmer vor. Durch die kodierte Übertragung der Taktinformation kann neben der Reduktion der Kosten auch ermöglicht werden, dass es zu keinen Verzögerungen zwischen Takt und Daten auf einer Übertragungsstrecke zwischen den Teilnehmern kommt. Ein Systemtakt wird durch den Master vorgegeben und alle Slaves synchronisieren sich mittels eigener, lokaler Taktrückgewinnungsmodule, bspw. durch eine Phasenregelschleife oder mittels einer Überabtastung mit entsprechender Synchronisation auf das Nachrichtensignal.
-
Während der Initialisierung zu Beginn einer Übertragung sendet der Master ausgehend von einer ersten Schnittstelle, von der aus Datenpakete versendet werden, ein Synchronisationssignal bspw. das Zwischenrahmensymbol an den ersten Slave in der bspw. als Ring ausgebildeten Kommunikationsanordnung. Sobald der Systemtakt des ersten Slave, d. h. Empfänger, in Phase mit dem Master ist, beginnt die Weiterleitung des Synchronisationssignals an den nächsten Slave. Dieses Vorgehen setzt sich durch die gesamte Kommunikationsanordnung fort. Nachdem die Synchronisation aller Slaves in der bspw. als Ring ausgebildeten Kommunikationsanordnung erfolgt ist, kann auch ein Empfänger im Master, üblicherweise eine zweite Schnittstelle, mit der Datenpakte empfangen werden, adaptiert werden. Aufgrund der im Master unbekannten Verzögerung bei der Übertragung von Datenrahmen oder Leerrahmen durch den Ring und des damit verbundenen Phasenoffsets zum eignen Systemtakt wird in einem letzten Schritt der Initialisierung auch im Master eine Phasennachführung vorgenommen. Nachdem auch die Phase im Empfänger des Masters nachgeführt ist, sind alle Teilnehmer in Phase und können nun Datenpakete synchron übertragen.
-
Um Frequenzschwankungen der Taktrückgewinnungsmodule in den Slaves durch ständiges Neu-Synchronisieren zu vermeiden, kann eine kontinuierliche Übertragung von Daten und somit von Datenpaketen bei einem sog. Dauerbetrieb zum Einsatz kommen. Hierdurch entfällt zunächst der Überhang für Synchronisationsmuster zu Beginn eines Datenpakets, der bei einer paketorientierten Übertragung (sog. Burst Transmission Mode) im Gegensatz zur kontinuierlichen Übertragung (sog. Continuous Transmission Mode) erforderlich ist. Durch die Möglichkeit der kontinuierlichen Synchronisation benötigen die Slaves auch keinen weiteren Systemtakt, der bei bekannten Systemen in der Regel neben der Kommunikationsschnittstelle zusätzlich zugeführt werden muss. Folglich können weitere Leitungen und Pins eingespart werden. Optional sieht der Dauerbetrieb den Einsatz eines Spread-Spectrum-Verfahrens bzw. eine spektrale Spreizung zur Verbesserung der EMV-Eigenschaften vor. Ferner ist auch die Anwendung einer paketorientierten Übertragung (sog. Burst Transmission Mode) möglich, wenngleich hierdurch möglicherweise eine zusätzliche Leitung für die Übertragung des Systemtakts vom Master an die Slaves erforderlich wird.
-
In weiterer Ausgestaltung weisen die an der Kommunikation beteiligten Teilnehmer Schieberegister auf. Dabei erfolgt eine automatische Taktung der Schieberegister, wobei mittels eines Taktrückgewinnungsmoduls ein Takt zur Zeitbasis des Masters, der als Mikrocontroller ausgebildet ist, zurückgewonnen wird. Das Schieberegister überträgt mit einem Taktsignal dieses Takts automatisch die Daten. Da die Bits einzeln verarbeitet werden können, kann die minimale Latenzzeit von einer Bitdauer je Teilnehmer erreicht werden. Latenzzeiten, die sich ergeben, bis ein Datenpaket mit einer Nachricht durch den Ring übertragen ist, sind somit gering, wodurch die Echtzeitfähigkeit der Kommunikationsanordnung sichergestellt werden kann. Durch die minimale Verzögerung der Nachricht um mindestens einen Takt erfolgt in jedem Teilnehmer zudem eine Signalaufbereitung, d. h. ein sog. Bit-Reshaping, das pegel- und/oder zeitbezogen wirken kann.
-
In der Kommunikationsanordnung erfolgt die Adressierung der Teilnehmer vorzugsweise nicht über ein separates Auswahl-Signal, sondern durch eine Adressierung innerhalb eines als Datenrahmen oder Leerrahmen ausgebildeten Datenpakets. Um das Adressfeld im kontinuierlichen Datenstrom zu detektieren, wird das Zwischenrahmensymbol, das in Ausgestaltung einem Anfangssymbol sowie einem Endsymbol eines Datenpakets entspricht, eingefügt.
-
Das Zwischenrahmensymbol kann auch als Präambel eines Datenrahmens betrachtet werden, womit sich die Slaves auf die bevorstehenden Daten synchronisieren können. Hierüber erfolgt eine Synchronisation des Rahmens, da jedem Teilnehmer bekannt ist, dass nach dem Zwischenrahmensymbol stets Daten übertragen werden. Das Zwischenrahmensymbol kann auch zur Umsetzung variabler Datenlängen verwendet werden.
-
Der Master kann die Slaves über die Adressierung ansprechen und über entsprechende Befehle Daten schreiben oder lesen.
-
Mit der beschriebenen Schnittstelle kann eine Umschaltung zwischen unterschiedlichen Rahmenlängen durchgeführt werden. Sofern eine feste Rahmenlänge gewählt wird, können unter Umständen kleine Datenpakete in einem großen Rahmen übertragen werden. Hierbei ist ein Auffüllen des Datenrahmens mit Blinddaten erforderlich. Ebenso ist eine variable Rahmenlänge umsetzbar, wobei die Länge der Datenregister in den Slaves unabhängig voneinander sein kann, da die irrelevanten Datenrahmen jeweils nur durchgereicht werden.
-
Im Fall von variablen Rahmenlängen können die Slaves über einen Leerrahmen dem Master mit einer Anforderung signalisieren, dass von dem Slave Nutzdaten zu übertragen sind, wonach diese anschließend von dem Master durch Versenden eines Datenrahmens passender Länge abgeholt werden.
-
Ein Slave bezieht seine Adresse entsprechend der Position im Ring über den Leerrahmen. Der Leerrahmen wird vom Master mit dem Adresswert 0 × 00 versendet, wobei jeder Slave den Adresswert um den Wert 0 × 01 erhöht und den empfangenen Wert in seinem Adressregister ablegt. Damit erfolgt mit dem Versenden eines Leerrahmens eine indirekte Adressvergabe. Entsprechend der Position im Ring kann der Slave das ihm im Leerrahmen zugeordnete Interruptbit modifizieren und somit dem Master eine Unterbrechungsanfrage übermitteln.
-
Über einen Leerrahmen kann der Slave einen Interrupt bzw. eine Unterbrechung, bspw. einen Soft-Interrupt, an den Master senden und darauf warten, dass der Master einen passenden Datenrahmen in einem nächsten Umlauf an den Slave schickt. Dieser Datenrahmen ist mit einem gesetzten Reservierungszeichen und der Adresse des Slaves versehen. Im Inhalt des Datenrahmens kann nun bspw. nochmals der Befehl zum Auslesen eines Register stehen, wonach der Slave im Anschluss die vorhandene Information in den Datenrahmen kopiert.
-
Um bei dieser Variante der Kommunikation eine Signalisierung auszulösen, erfolgt eine Priorisierung eines Slaves anhand der Position des Slaves in der Kommunikationsanordnung. Dabei kann in einer Ausgestaltung der Schnittstelle ein Slave über das Setzen eines ihm zugeordneten Bits eine Signalisierung an den Master übermitteln. Nach dem Zwischenrahmensymbol und dem Reservierungszeichen folgt entsprechend der Anzahl an Slaves als Teilnehmer in der Kommunikationsanordnung eine Anzahl an Bits, die mindestens so groß wie die Anzahl der Teilnehmer, in der Regel der Anzahl der Slaves, in der Kommunikationsanordnung ist, welche einen Interrupt auslösen können. Teilnehmer, welche nur Daten vom Master empfangen und keine Botschaften an diesen liefern, besitzen demnach keine Interrupt-Fähigkeit und ignorieren folglich die Leerrahmen. Somit braucht für diese Art von Teilnehmern auch kein Interrupt-Bit im Leerrahmen vorgehalten werden. Sofern durch einen interruptfähigen Teilnehmer ein Interrupt ausgelöst werden soll, setzt dieser Teilnehmer das ihm zugeordnete Bit. Die Priorisierung der Abarbeitung der Interrupts kann nun im Master (Mikrocontroller) erfolgen.
-
Eine Fehlerkorrektur kann in einer weiteren Ausgestaltung ebenfalls hinzugefügt werden. Falls eine Kommunikationsanordnung ringförmig ausgebildet ist, kann diese aufgrund der Ring-Topologie so ausgelegt werden, dass der Master nach der Übertragung durch den Ring die empfangene Botschaft mit der von ihm ursprünglich gesendeten Botschaft vergleicht und somit auf eine fehlerfreie bzw. fehlerhafte Übertragung schließen kann. In der Regel wird die Antwort auf eine Anfrage von den Slaves direkt an den Master geschickt, um eine bessere Auslastung des Systems zu gewährleisten. Alternativ kann die Antwort des Slaves auch erst mit dem nächstfolgenden an ihn adressierten Datenpaket erfolgen, entsprechend heutiger Ausgestaltungen einer SPI-Kommunikation. Optional kann eine zyklische Redundanzprüfung (Cyclic Redundancy Check, CRC) als Prüfsummenverfahren durchgeführt oder eine Paritätsprüfung im Datenrahmen hinzugefügt werden und der empfangende Teilnehmer am Ende seiner Antwort einen Empfang quittieren (Acknowledge).
-
Wahlweise kann die Übertragung der Daten derart erfolgen, dass eine Botschaft mit Daten, die üblicherweise in einem Datenrahmen bereitgestellt und ausgehend vom Sender, d. h. dem Master, komplett durch den Ring übertragen wird, im Master wieder dekodiert wird, bevor das Senden des nächsten Datenrahmens erfolgt. Alternativ kann auch ein kontinuierlicher Bitstrom an Daten gewählt werden, d. h. das Senden des nächsten Datenrahmens erfolgt direkt im Anschluss und nicht erst nach Empfang der vorherigen Botschaft. In diesem Fall wird im Protokoll durch Arbitrierung sichergestellt, dass ein Soft-Interrupt eines Slaves bei überschneidender Adressierung durch den Master, d. h. der Master spricht den Slave an, noch bevor der Soft-Interrupt des Slaves verarbeitet wurde, korrekt bearbeitet wird. Dieses Szenario ist zulässig und hat keinen Einfluss auf die Ausgestaltung der beschriebenen Bitübertragungsschicht.
-
Optional erfolgt eine Implementierung eines zusätzlichen Logikmoduls im Master, um die empfangenen Daten, z. B. Sensordaten, direkt in einen Speicher zu schreiben. Desweiteren kann das Polling der Slaves automatisiert werden. Hierdurch erfolgt eine Reduktion der Software-Interaktion, was zu einer Entlastung der zentralen Recheneinheit (CPU) führt. Weiter können die Register der ASICs (Slaves) im Speicher des Mikrocontrollers (Master) transparent abgelegt werden. Mögliche HW-Module sind aus dem Stand der Technik als DMA, Transfer Units oder auch Message Boxen bekannt.
-
Eine im Rahmen der Erfindung vorgesehene Schnittstelle für einen Teilnehmer kann für Anwendungen im Kfz-Bereich eingesetzt werden. Entsprechend den bekannten Standards wie IIC (Inter-Integrated Circuit) und SPI (Serial Peripheral Interface) ist die genannte Schnittstelle ebenfalls universell einsetzbar und demnach nicht auf einen Einsatz im automotiven Bereich oder gar in Steuergeräten (ECUs) beschränkt.
-
Die erfindungsgemäße Kommunikationsanordnung ist dazu ausgebildet, sämtliche Schritte des vorgestellten Verfahrens durchzuführen. Dabei können einzelne Schritte dieses Verfahrens auch von einzelnen Komponenten, üblicherweise von Teilnehmern, der Kommunikationsanordnung durchgeführt werden. Weiterhin können Funktionen der Kommunikationsanordnung oder Funktionen von einzelnen Komponenten der Kommunikationsanordnung als Schritte des Verfahrens umgesetzt werden. Außerdem ist es möglich, dass Schritte des Verfahrens als Funktionen wenigstens einer Komponente der Kommunikationsanordnung oder der gesamten Kommunikationsanordnung realisiert werden.
-
Für die Konfiguration der programmierbaren Hardwarebausteine, insbesondere der FPGAs, wird eine serielle Übertragungsart gewählt. Die Übertragungsstrecke wird als Ringstruktur ausgelegt (wie sie oben beschrieben ist). Der Takt wird wie oben beschrieben nicht separat übertragen, sondern ist im Datensignal enthalten. Die Daten werden mit dem Takt zusammen nacheinander an alle Teilnehmer gesendet. Die Teilnehmer reichen die Daten im Ring von Teilnehmer zu Teilnehmer weiter. Durch die Ringstruktur der Datenübertragung entfällt hier insbesondere auch eine explizite Bestätigungsleitung. Die Datenübertragung im Ring ist vorwärts oder rückwärts, duplex oder halbduplex möglich.
-
In 1 ist eine entsprechende ringförmige Kommunikationsanordnung in einer einfachen Ausführung gezeigt. Diese weist einen Master 1 sowie Slaves 2–4 auf. Der Master 1 verfügt über ein Register 11 sowie ein Taktmittel 12. Die Slaves 2, 3, 4 verfügen über Schieberegister 21, 31, bzw. 41. Stellvertretend auch für die übrigens Slaves 2 und 3 ist für den in größerem Detail gezeigten Slave 4 zudem Taktrückgewinnungsmittel 42 angedeutet, über welche ein Takt der Taktmittel 12 des Masters 1 rückgewonnen werden kann. Ein Datenstrom 5, welcher Datenpakete umfasst, die in der Kommunikationsanordnung übertragen werden ist durch Pfeile dargestellt. Wie in 1 angedeutet, läuft der Datenstrom in den Slaves 2, 3, 4 über die Schieberegister 21, 31, 41. Hierbei handelt es sich vorzugsweise um 1-Bit-Schieberegister, so dass sich für den Datenstrom 5 jeweils eine sehr geringe Verzögerung von einem Bit ergibt.
-
2 zeigt eine erste Ausführung einer Kommunikationsanordnung zur Konfiguration bzw. Programmierung eines programmierbaren Hardwarebausteins mit nur zwei Leitungen. Hierbei weist die Kommunikationsanordnung lediglich zwei Teilnehmer 201 und 202 auf. Teilnehmer 201 ist der Master der Anordnung mit Taktmitteln 12 und einem Register 11. In dieser Ausführung umfasst der Master 201 ebenfalls einen (nicht explizit dargestellten) programmierbaren Hardwarebaustein, insbesondere ein FPGA. Der zweite Teilnehmer 202 ist ein Slave und umfasst in dieser Ausführung (nicht explizit dargestellte) Speichermittel. Der programmierbare Hardwarebaustein des Teilnehmers 201 ist so ausgestaltet, dass er durch Auslesen von Daten der Speichermittel des Teilnehmers 202 konfiguriert werden kann. In dieser Ausgestaltung ist der Teilnehmer 201 der Master und steuert somit die Konfiguration. Der Datenstrom 5 ist wiederum durch Pfeile dargestellt.
-
In 3 ist eine weitere mögliche Ausgestaltung einer Kommunikationsanordnung zur Konfiguration bzw. Programmierung eines programmierbaren Hardwarebausteins mit in diesem Fall drei Leitungen gezeigt. Der Teilnehmer 301 ist der Master der Anordnung und weist Taktmittel 12 sowie ein Register 11 auf. Die beiden Slaves 302 und 303 weisen Schieberegister 21 und 31 auf. In dieser Ausgestaltung weist der Slave 302 einen (nicht explizit gezeigten) programmierbaren Hardwarebaustein auf. Der Slave 303 weist (nicht explizit gezeigte) Speichermittel auf. Der Master 301 ist als Konfigurationsmaster ausgestaltet, welcher Mittel umfasst durch Auslesen von Daten des Speichermittels des Slaves 303 den programmierbaren Hardwarebaustein des Teilnehmers 302 zu konfigurieren bzw. programmieren. In dieser Ausgestaltung ist also weder der Teilnehmer mit dem programmierbaren Hardwarebaustein 302 noch der Teilnehmer mit den Speichermitteln 303 als Master vorgesehen, sondern ein separater Konfigurationsmaster. Der Datenstrom 5 ist wiederum durch Pfeile dargestellt.
-
Müssen mehrere programmierbare Hardwarebausteine in verschiedenen Teilnehmern konfiguriert werden (z.B. bei einer Werkskonfiguration in der Produktion oder bei mehreren FPGA in einem System), ist dies in der vorgeschlagenen Anordnung besonders effizient mit nur einer Mehrleitung pro neuem Teilnehmer zu realisieren. 4 zeigt einen Teilnehmer 401 mit Register 11 und Taktmitteln 12, der als Master fungiert, sowie Teilnehmer 402–406 mit Schieberegistern 21–61, welche als Slaves eingerichtet sind. Der Datenstrom 5 ist wiederum durch Pfeile dargestellt. In dieser Ausführungsform weisen die Slaves 403–405 (nicht explizit dargestellte) programmierbare Hardwarebausteine auf. Der Slave 402 weist (nicht explizit gezeigte) Speichermittel auf. In dieser Ausführung ist der Teilnehmer 401 vergleichbar mit Teilnehmer 301 der 3 als Konfigurationsmaster ausgestaltet. Dieser umfasst nun Mittel, einen, mehrere oder alle programmierbaren Hardwarebausteine der Teilnehmer 403–406 durch Auslesen von Daten des Speichermittels des Teilnehmers 402 zu konfigurieren bzw. zu programmieren.
-
Ebenso kann die Anordnung auch besonders vorteilhaft mit mehreren Teilnehmern realisiert werden, die Speichermittel aufweisen mit Daten zur Konfiguration bzw. Programmierung eines oder mehrere programmierbarer Hardwarebausteine eines oder mehrerer weiterer Teilnehmer der ringförmigen Kommunikationsanordnung. Dies kann zum Beispiel aus Zuverlässigkeits- oder Sicherheitsgründen vorteilhaft sein, z.B. durch redundanten Speicherung der zur Konfiguration benötigten Daten in mehreren der Speichermittel. Eine solche Ausführung ist in 5 gezeigt. Hierbei ist der Teilnehmer 501 als Master mit Register 11 und Taktmitteln 12 ausgestaltet und weist zudem einen (nicht explizit gezeigten) programmierbaren Hardwarebaustein auf. Die beiden übrigen Teilnehmer 502 und 503 weisen Schieberegister 21 und 31 auf und umfassen zudem jeweils (nicht explizit dargestellte) Speichermittel. Der Datenstrom 5 ist wiederum durch Pfeile dargestellt. In dieser Ausführung steuert der Teilnehmer 501 mit dem programmierbaren Hardwarebaustein wiederum dessen Konfiguration durch Auslesen von Daten aus dem Speichermittel des Teilnehmers 502 und / oder des Teilnehmers 503. Alternativ zur dargestellten Ausführung können auch mehrere Teilnehmer, die jeweils Speichermitteln aufweisen, auf einem gemeinsamen IC (Schaltkreis) realisiert sein, also ein IC somit mehrere Speichermittel aufweisen. Es kann auch ein Teilnehmer mehrere Speichermittel aufweisen.
-
Generell sind zu den beiden in 4 und 5 gezeigten Varianten alle mögliche Varianten mit sowohl mehreren Teilnehmern mit Speichermitteln als auch mehreren Teilnehmern mit programmierbaren Hardwarebausteinen in der beschriebenen ringförmigen Anordnung möglich. Gerade für solche komplexeren Systeme ist die beschriebene Anordnung besonders ressourceneffizient (aufgrund sehr weniger Datenleitungen) im Vergleich zu bekannten Systemen.
-
In den bisherigen Figuren waren Ausgestaltungen gezeigt, bei welchen ein Teilnehmer mit programmierbarem Hardwarebaustein als Master fungiert oder bei welchen ein speziellen Teilnehmer als Konfigurationsmaster ausgestaltet ist. Es ist bei der vorgeschlagenen Kommunikationsanordnung auch möglich, dass die Masterfunktion sich ändert. Eine entsprechende Anordnung ist in den 6 und 7 gezeigt.
-
In 6 ist die Anordnung in einer Konfigurationsphase dargestellt, in welcher Teilnehmer 601 als spezieller Konfigurationsmaster ausgestaltet ist. Dieser umfasst ein Register 11 und Taktmittel 12. Der weitere Teilnehmer 602 umfasst ein Schieberegister 31 und (nicht explizit gezeigte) Speichermittel, der Teilnehmer 603 ein Schieberegister 41, Taktmittel 612 und einen (nicht explizit gezeigten) programmierbaren Hardwarebaustein. Es können weitere Teilnehmer in dem Ring vorhanden sein, in 6 ist allerdings nur ein Ausschnitt mit den beschriebenen drei Teilnehmern gezeigt. Die Teilnehmer sind über eine Kommunikationsverbindung 605 miteinander verbunden, über welche ein Datenstrom laufen kann. Der gestrichelt dargestellte Abschnitt kennzeichnet eine nicht geschlossene bzw. in dieser Phase nicht vorhandene Verbindung. In der gezeigten Konfigurationsphase fungieren Teilnehmer 602 und 603 als Slaves, der Konfigurationsmaster 601 steuert die Konfiguration bzw. Programmierung des programmierbaren Hardwarebausteins des Teilnehmers 603 durch Auslesen von Daten der Speichermittel des Teilnehmers 602.
-
In 7 ist der entsprechende Ausschnitt der ringförmigen Kommunikationsanordnung der 6 in einer späteren Phase nach der Konfigurationsphase gezeigt. Die Teilnehmer 701–703 entsprechen den Teilnehmern 601–603 der 6, die Register 11, 21, 31 und das Taktmittel 12 den entsprechenden der 6, ebenso die Kommunikationsverbindung 705 der 605 der 6. Im Gegensatz zur 6 ist der Teilnehmer 701 nicht mehr in der ringförmigen Kommunikationsanordnung angeordnet (durch die gestrichelten Linien dargestellt) und fungiert somit auch nicht als deren Master. Die Masterfunktion wird in dieser Phase durch den Teilnehmer 703 übernommen, welcher den (nicht explizit gezeigten) programmierbaren Hardwarebaustein aufweist. Auch in dieser Phase ist somit eine Konfiguration möglich, nur eben nicht über den speziellen Konfigurationsmaster (701) gesteuert, sondern über den Teilnehmer 703. Die Konfiguration bzw. Programmierung kann wieder durch Auslesen von Daten der Speichermittel des Teilnehmers 703 erfolgen. Es können wiederum weitere in diesem Ausschnitt nicht gezeigte Teilnehmer in der ringförmigen Anordnung vorgesehen sein.
-
Möchte man den Konfigurationscontroller bzw. Konfigurationsmaster also nicht dauerhaft im System behalten, kann man den programmierbaren Hardwarebaustein, insbesondere FPGA, durch einen im Datenring enthalten Kontroller konfigurieren und nach der Konfiguration den Kontroller entfernen. Der Ring kann unproblematisch wieder geschlossen werden (z.B. durch eine Lötbrücke oder durch Weiterleitung des Datenringes. Der Master für die Konfiguration muss also auch nicht fest definiert werden, er kann sich im Betrieb verändern. Auch die Position des Masters im Ring kann entsprechend verändert werden.
-
Alternativ zum Entfernen des Kontrollers kann dieser auch nach der Konfigurationsphase im Ring verbleiben und dort z.B. auch eine andere Aufgabe übernehmen (Multifunktionsadapter). Als Master und damit Konfigurationskontroller kann grundsätzlich jeder hierzu ausgestaltete Teilnehmer fungieren, unabhängig von seiner Position im Datenring.
-
Die in den 1–7 gezeigten Kommunikationsanordnungen sind entsprechend er oben beschrieben ringförmigen, seriellen Kommunikationsanordnung ausgeführt. Die Kommunikation der Daten, die Adressierung der Teilnehmer etc. erfolgen ebenso entsprechend obigen Ausführungen. Für alle Ausführungsbeispiele können die Teilnehmer dabei wie in den Figuren dargestellt jeweils durch einen einzelnen IC realisiert sein oder alternativ mehrere oder auch alle Teilnehmer der Kommunikationsanordnung in einem gemeinsamen IC realisiert sein.
-
In allen gezeigten Ausführungsformen ist es möglich, den programmierbaren Hardwarebaustein bzw. den diesen umfassenden Teilnehmer über eine Nachricht in Standby oder einen Schlafmodus zu versetzen und durch eine weitere Nachricht an diesen Empfänger wieder zu reaktivieren.
-
Die vorgeschlagene Schnittstelle kann sowohl eine frei programmierte Schnittstelle des Konfigurationscontroller und / oder des programmierbaren Hardwarebausteins sein. Die Schnittstelle kann aber auch fest als Halbleiter-Schaltung implementiert sein und im Konfigurationscontroller und / oder dem programmierbaren Hardwarebaustein enthalten sein. Die Konfigurationsschnittstelle kann im normalen Betrieb als normale Datenschnittstelle verwendet werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- DE 102010041427 [0008]
- US 7265578 B1 [0011]
- US 7554357 B2 [0011]