Teilnehmerschnittstelle zwischen einem FlexRay- Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
Stand der Technik
Die Erfindung betrifft eine Teilnehmerschnittstelle zwischen einem FlexRay- Kommunikationsbaustein und einem dem FlexRay- Kommunikationsbaustein zugeordneten FlexRay-Teilnehmer. Der FlexRay- Kommunikationsbaustein ist an eine FlexRay- Kommunikationsverbindung angeschlossen, über welche Bot- schatten übertragen werden. Der FlexRay- Kommunikationsbaustein umfasst einen Botschaftsspeicher zum Zwischenspeichern von Botschaften von der FlexRay-Kommunikationsverbindung oder für die FlexRay- Kommunikationsverbindung.
Die Erfindung betrifft außerdem ein Verfahren zur Übertragung von Botschaften zwischen einem FlexRay- Kommunikationsbaustein und einem dem FlexRay- Kommunikationsbaustein zugeordneten FlexRay-Teilnehmer über eine Teilnehmerschnittstelle. Der FlexRay- Kommunikationsbaustein ist an eine FlexRay- Kommunikationsverbindung angeschlossen, über welche Botschaften übertra- gen werden. Außerdem umfasst der FlexRay- Kommunikationsbaustein einen
Botschaftsspeicher zum Zwischenspeichern von Botschaften von der FlexRay- Kommunikationsverbindung oder für die FlexRay-Kommunikationsverbindung.
Die Vernetzung von Steuergeräten, Sensorik und Aktuatorik mit Hilfe eines Kommunikationssystems und einer als Bussystem ausgebildeten Kommunikationsverbindung hat in den letzten Jahren bei modernen Kraftfahrzeugen aber auch im Maschinenbau, insbesondere im Werkzeugmaschinenbereich, und im Bereich der Automatisierung, drastisch zugenommen. Synergieeffekte durch Verteilung von Funktionen auf mehrere Steuergeräte können dabei erzielt wer- den. Man spricht hierbei von verteilten Systemen. Die Kommunikation zwischen verschiedenen Teilnehmern findet mehr und mehr über ein als Bussystem ausgebildetes Kommunikationssystem statt. Der Kommunikationsverkehr auf dem Bussystem, Zugriffs- und Empfangsmechanismen sowie Fehlerbehandlung werden über ein Protokoll geregelt.
Ein bekanntes Protokoll hierzu ist das FlexRay- Protokoll, wobei im Augenblick die FlexRay- Protokollspezifikation v2.0 zugrunde liegt. Das FlexRay- Protokoll definiert ein schnelles, deterministisches und fehlertolerantes Bussystem, insbesondere für den Einsatz in einem Kraftfahrzeug. Die Datenübertragung gemäß dem FlexRay- Protokoll erfolgt nach einem Time Division Multiple Access
(TDMA)-Verfahren. Die Datenübertragung über die Kommunikationsverbindung erfolgt in sich regelmäßig wiederholenden Übertragungszyklen, die jeweils in mehrere Datenrahmen, die auch als Zeitschlitze bezeichnet werden, unterteilt ist. Den Teilnehmern bzw. den zu übertragenden Botschaften sind feste Zeitschlitze zugewiesen, in denen sie einen exklusiven Zugriff auf die Kommunikationsverbindung haben. Die Zeitschlitze wiederholen sich in den festgelegten Übertragungszyklen, so dass der Zeitpunkt, zu dem eine Botschaft über den Bus übertragen wird, exakt vorausgesagt werden kann und der Buszugriff deterministisch erfolgt.
Um die Bandbreite für die Botschaftsübertragung auf dem Bussystem optimal zu nutzen, unterteilt FlexRay den Übertragungszyklus, der auch als Zyklus oder Buszyklus bezeichnet werden kann, in einen statischen und einen dynamischen Teil. Die festen Zeitschlitze befinden sich dabei im statischen Teil am Anfang eines Buszyklusses. Im dynamischen Teil werden die Zeitschlitze dynamisch vergeben. Darin wird nun der exklusive Buszugriff jeweils nur für eine kurze Zeit, für einen oder mehrere so genannte Minislots, ermöglicht. Nur wenn innerhalb eines Minislots ein Buszugriff erfolgt, wird der Zeitschlitz um die benötigte Zeit verlängert. Damit wird Bandbreite also nur verbraucht, wenn sie auch tatsächlich benötigt wird.
FlexRay kommuniziert über zwei physikalisch getrennte Leitungen der Kommunikationsverbindung mit einer Datenrate von je maximal 10 MBiVs (10 MBaud). Dabei ist alle 5 ms, bei manchen Kommunikationssystemen sogar alle 2,5 ms ein Buszyklus abgeschlossen. Die beiden Kanäle entsprechen dabei der physikalischen Schicht, insbesondere des OSI (Open System Architecture) Schichtenmodells. Die beiden Kanäle dienen hauptsächlich der redundanten und damit fehlertoleranten Übertragung von Botschaften, können jedoch auch unterschiedliche Botschaften übertragen, wodurch sich dann die Datenrate verdoppeln wür- de. FlexRay kann aber auch mit niedrigeren Datenraten betrieben werden.
Um synchrone Funktionen zu realisieren und die Bandbreite durch kleine Abstände zwischen zwei Botschaften zu optimieren benötigen die Teilnehmer bzw. die verteilten Komponenten im Kommunikationsnetzwerk eine gemeinsame Zeit- basis, die so genannte globale Zeit. Für die Uhrsynchronisation werden Synchronisationsnachrichten im statischen Teil des Zyklus übertragen, wobei mit Hilfe eines speziellen Algorithmus entsprechend der FlexRay-Spezifikation die lokale Uhrzeit eines Teilnehmers so korrigiert wird, dass alle lokalen Uhren zu einer globalen Uhr synchron laufen.
Ein FlexRay-Teilnehmer, der auch als FlexRay- Netzknoten oder Host bezeichnet werden kann, enthält einen Teilnehmer- oder Host- Prozessor, einen FlexRay- oder Kommunikations-Controller sowie bei einer Busüberwachung einen so genannten Busguardian. Dabei liefert und verarbeitet der Teilnehmerprozessor die Daten, die über den FlexRay- Kommunikationscontroller und die FlexRay- Kommunikationsverbindung übertragen werden. Für die Kommunikation in einem FlexRay- Netzwerk können Botschaften bzw. Botschaftsobjekte mit z.B. bis zu 254 Datenbytes konfiguriert werden.
Zur Kopplung einer FlexRay-Kommunikationsverbindung, über die Botschaften übertragen werden, mit einem FlexRay-Teilnehmer wird in der DE 10 2005 034 744, die zum Anmeldetag der vorliegenden Erfindung noch nicht veröffentlich war, ein FlexRay- Kommunikationsbaustein eingesetzt, der über eine Teilnehmerschnittstelle an dem Teilnehmer und über eine andere Verbindung an der Kommunikationsverbindung angeschlossen ist. Dabei ist zur Übertragung der Botschaften zwischen dem Teilnehmer und der Kommunikationsverbindung in dem Kommunikationsbaustein eine Anordnung zur Speicherung der Botschaften vorgesehen. Die Übertragung wird durch eine Zustandsmaschine gesteuert.
In dem Kommunikationsbaustein ist ein Schnittstellenbaustein bestehend aus zwei Teilen vorgesehen, wobei der eine Teilbaustein teilnehmerunabhängig und der andere Teilbaustein teilnehmerspezifisch ist. Der teilnehmerspezifische Teilbaustein, der auch als Customer CPU Interface (CIF) bezeichnet wird, verbindet einen kundenspezifischen Teilnehmer in Form einer teilnehmerspezifischen Host-CPU mit dem FlexRay- Kommunikationsbaustein. Der teilnehmerunabhängige Teilbaustein, der auch als Generic CPU Interface (GIF) bezeichnet wird, stellt ein generisches, also allgemeines, CPU-Interface dar, über das sich mittels entsprechender teilnehmerspezifischer Teilbausteine, also Customer CPU Interfaces (CIFs), unterschiedliche kundenspezifische Host-CPUs an den FlexRay- Kommunikationsbaustein anschließen lassen. Dadurch ist eine problemlose
Anpassung des Kommunikationsbausteins an unterschiedliche Teilnehmer möglich, da abhängig vom Teilnehmer nur der teilnehmerspezifische Teilbaustein variiert werden muss, während der teilnehmerunabhängige Teilbaustein und der restliche Kommunikationsbaustein stets gleich ausgebildet werden kann. Mit Hilfe des Kommunikationsbausteins ergibt sich also eine Standard-Schnittstelle zum Anschluss beliebiger FlexRay-Teilnehmer an eine FlexRay- Kommunikationsverbindung, wobei sich die Schnittstelle durch einfache Variation des teilnehmerspezifischen Teilbausteins an beliebig ausgebildete oder geartete Teilnehmer flexibel anpassen lässt. Dabei können die Teilbausteine auch innerhalb des einen Schnittstellenbausteins jeweils in Software, also jeder Teilbaustein als Softwarefunktion, realisiert werden.
Die Zustandsmaschine in dem FlexRay- Kommunikationsbaustein kann fest in Hardware verdrahtet sein. Die Sequenzen können ebenfalls fest in Hardware verdrahtet sein. Alternativ kann die Zustandsmaschine im Kommunikationsbaustein über die Teilnehmerschnittstelle durch den Teilnehmer auch frei programmierbar sein.
Die Informationen enthalten vorzugsweise den Zugriffstyp und/oder die Zugriffs- art und/oder die Zugriffsadresse und/oder die Datengröße und/oder Steuerinformationen zu den Daten und/oder wenigstens eine Information zur Datenabsicherung.
Nach dem Stand der Technik ist der Botschaftsspeicher des FlexRay- Kommunikationsbausteins vorzugsweise als single-ported RAM (Random Access Memory) ausgeführt. Dieser RAM-Speicher speichert die Botschaften bzw. Botschaftsobjekte, also die eigentlichen Nutzdaten, zusammen mit Konfigurati- ons- und Statusdaten. Die genaue Struktur des Botschaftsspeichers des bekannten Kommunikationsbausteins kann der genannten Druckschrift DE 10 2005 034 744 entnommen werden.
Es hat sich gezeigt, dass die Übertragung der Botschaften zwischen dem Botschaftsspeicher des FlexRay- Kommunikationsbausteins und dem FlexRay- Teilnehmer nur relativ langsam und unter Beanspruchung großer Ressourcen seitens des Teilnehmers erfolgt, insbesondere hinsichtlich der erforderlichen Rechleistung der Host-CPU und des benötigten Speicherplatzes. Bei der bekannten Teilnehmerschnittstelle zwischen FlexRay- Kommunikationsbaustein und FlexRay-Teilnehmer ist eine ständige Aktivität der Host-CPU (evtl. DMA, Direct Memory Access) gefordert, um neu eingegangene Bufferinhalte des Bot- Schaftsspeichers des Kommunikationsbausteins in den Speicher der Host-CPU zu überführen. Mit dem so genannten Polling kann die Host-CPU regelmäßig prüfen, ob neue Botschaften im Botschaftsspeicher der Teilnehmerschnittstelle abgelegt worden sind. Ein direkter Zugriff der Host-CPU auf den Botschaftsspeicher des Kommunikationsbausteins ist nicht möglich. Insbesondere wenn die Datenrate der FlexRay-Kommunikationsverbindung voll ausgeschöpft wird, erweist sich dies als nachteilig. Zudem müssen Wartezeiten der Host-CPU für das Setzen von Registern etc. in Kauf genommen werden.
Der vorliegenden Erfindung liegt deshalb die Aufgabe zugrunde, einen FlexRay- Kommunikationsbaustein zur Verfügung zu stellen, der in optimaler Weise die
Kommunikation in einem FlexRay- Netzwerk unterstützt, wobei eine für den Teilnehmer bzw. den Teilnehmerprozessor besonders ressourcensparende und ressourcenschonende Anbindung des Teilnehmers an den FlexRay- Kommunikationsbaustein ermöglicht werden soll.
Zur Lösung dieser Aufgabe wird ausgehend von der Teilnehmerschnittstelle der eingangs genannten Art vorgeschlagen, dass die Teilnehmerschnittstelle eine Anordnung zur Zwischenspeicherung der zwischen dem FlexRay- Kommunikationsbaustein und dem FlexRay-Teilnehmer zu übertragenden Bot- Schäften aufweist, wobei die Anordnung mindestens einen Botschaftsspeicher
umfasst, der eine erste Verbindung zu dem FlexRay- Kommunikationsbaustein und eine zweite Verbindung zu dem Teilnehmer aufweist.
Vorteile der Erfindung
Erfindungsgemäß wird im Bereich der Teilnehmerschnittstelle ein weiterer Botschaftsspeicher vorgesehen, in den ohne bzw. mit minimaler Belastung der Host-CPU der Inhalt des Botschaftsspeichers des FlexRay- Kommunikationsbausteins übertragen werden kann. Die Host-CPU des Flex- Ray-Teilnehmers kann mit maximaler Geschwindigkeit direkt auf die gespiegelten Daten im Botschaftsspeicher der Teilnehmerschnittstelle zugreifen. Bei geeigneter Auslegung des Botschaftsspeichers der Teilnehmerschnittstelle ist es sogar denkbar, dass die Host-CPU auch während eines Übertragungszyklus an geeigneter Stelle Botschaften oder Datenpakete empfangen und zur Versendung freigeben kann. Das gesamte Vorgehen erfordert keine Wartezeiten bezüglich der Übertragungen in den Botschaftsspeicher des FlexRay- Kommunikationsbausteins und wird lediglich begrenzt durch die Leistung der Schnittstelle des Botschaftsspeichers des FlexRay- Kommunikationsbausteins.
Es wäre denkbar, die erfindungsgemäße Teilnehmerschnittstelle in den existierenden FlexRay- Kommunikationsbaustein zu integrieren. Falls jedoch der FlexRay- Kommunikationsbaustein bereits für den FlexRay-Standard bzw. anderweitig zertifiziert wurde, müsste mit der Integration einer neuen Teilnehmerschnittstelle der gesamte Zertifizierungsprozess von neuem durchlaufen werden. In einem solchen Fall ist es empfehlenswert, die Teilnehmerschnittstelle als gesondertes Bauteil auszugestalten bzw. in den FlexRay-Teilnehmer zu integrieren.
Erfindungsgemäß wird also vorgeschlagen, die Daten transparent in einen Zwischenspeicher zu übertragen, wobei die Host-CPU des Teilnehmers ohne bzw. nur mit geringer Verzögerung Zugriff auf den Zwischenspeicher hat.
Gemäß einer vorteilhaften Weiterbildung der Erfindung wird vorgeschlagen, dass der Botschaftsspeicher der Teilnehmerschnittstelle derart ausgebildet ist, dass über eine der Verbindungen schreibend oder lesend und gleichzeitig über die andere Verbindung lesend bzw. schreibend auf den Botschaftsspeicher zugegriffen werden kann. Vorteilhafterweise ist der Botschaftsspeicher der Teilnehmerschnittstelle als ein Dual- Port- RAM (Random Access Memory mit zwei Anschlüssen) ausgebildet. Bei einem Dual- Port- RAM sind von zwei Seiten gleichzeitig Lesezugriffe möglich. Mögliche DP-RAM-Arten, die bei der vorliegenden Erfindung zum Einsatz kommen können, sind: die eine Seite des DP-RAM kann schreiben, die andere Seite kann lesen, die eine Seite des DP-RAM kann lesen und schreiben und die andere Seite kann lesen, die eine Seite des DP-RAM kann lesen und schreiben und die andere Seite kann schreiben, und die eine Seite des DP-RAM kann lesen und schreiben und die andere Seite kann lesen und schreiben.
Die erste oben genannte DP-RAM-Art hat den niedrigsten Hardware- Aufwand (Gate Count) und die vierte genannte Art hat den höchsten Hardware- Aufwand. Ohne Beachtung der Testbarkeit wären alle vorgeschlagenen RAMs mit der ersten genannten DP-RAM-Art realisierbar. Eventuelle Testbarkeitsanf orderungen könnten den Einsatz einer der oben genannten zweiten bis vierten DP-RAM- Arten erforderlich machen.
Derartige Speicher besitzen üblicherweise getrennte Adress- und Daten- Bussysteme sowie eine Arbitrationslogik, die im Fall gleichzeitiger Schreiboperationen entsprechende Maßnahmen zur Kollisionslösung einleitet. Durch den gleichzeitigen Zugriff können zwei ansonsten getrennte Systeme, nämlich der FlexRay- Kommunikationsbaustein einerseits und die Host-CPU des FlexRay-
Teilnehmers andererseits, mit gemeinsamen Daten arbeiten ohne sich gegenseitig in der Zugriffsgeschwindigkeit einzuschränken.
Gemäß einer bevorzugten Ausführungsform der Erfindung wird vorgeschlagen, dass die Teilnehmerschnittstelle eine Zustandsmaschine aufweist, welche eine Übertragung von Botschaften zwischen dem Botschaftsspeicher des FlexRay- Kommunikationsbausteins und dem Botschaftsspeicher der Teilnehmerschnittstelle in beide Richtungen steuert. Die Zustandsmaschine, die auch als State- Machine oder als Finite-State- Machine bezeichnet werden kann, sorgt dafür, dass der Inhalt des Botschaftsspeichers des Kommunikationsbausteins für die Host-CPU unsichtbar bzw. ohne Zutun der Host-CPU in den Botschaftsspeicher (z.B. Dual- Port- RAM) der Teilnehmerschnittstelle übertragen wird.
Des weiteren wird vorgeschlagen, dass der Botschaftsspeicher der Teilnehmer- schnittsteile einen Schreibbereich, in dem über die FlexRay-
Kommunikationsverbindung zu übertragende Botschaften abgelegt sind, und einen Lesebereich aufweist, in dem von der FlexRay- Kommunikationsverbindung empfangene Botschaften abgelegt sind. Die Bezeichnungen Schreibbereich und Lesebereich wurden aus Sicht der Host-CPU des Teilnehmers gewählt. Auf den FlexRay- Datenbus zu schreibende und über diesen zu übertragende Daten werden in dem Schreibbereich des Zwischenspeichers abgelegt, und vom FlexRay-Datenbus empfangene Daten werden in den Lesespeicher geschrieben und von dort in den Teilnehmer eingelesen.
Vorteilhafterweise sind dem Botschaftsspeicher der Teilnehmerschnittstelle Register zugeordnet, wobei vorzugsweise dem Schreibbereich des Botschaftsspeichers ein Schreibregister und dem Lesebereich des Botschaftsspeichers ein Leseregister zugeordnet ist. Der Status des Botschaftsspeichers (z.B. Dual- Port- RAM) der Teilnehmerschnittstelle wird über die Register von der Zu- Standsmaschine an den FlexRay- Kommunikationsbaustein übermittelt. Beim
Lesen des Statusregisters werden die gelesenen Bits zurückgesetzt. Das Übertragen der vom FlexRay- Kommunikationsbaustein empfangenen Buffer erfolgt durch die Zustandsmaschine. Dabei signalisiert der FlexRay- Kommunikationsbaustein das Vorliegen eines neu über die Teilnehmerschnitt- stelle empfangenen Bufferinhalts an die Zustandsmaschine. Die Zustandsmaschine übernimmt dann die Übertragung des Bufferinhalts von dem FlexRay- Kommunikationsbaustein in den Botschaftsspeicher (z.B. Dual- Port- RAM). Am Ende der Übertragung wird von der Zustandsmaschine die erfolgte Übertragung im Lesestatusregister angezeigt und eventuell ein Interrupt ausgelöst. Die Host- CPU kann durch Auslesen des Lesestatusregister dann feststellen, welche Lese-Buffer von der Zustandsmaschine neu beschrieben wurden. Die Kennung, bspw. die Nummer, des zuletzt von der Zustandsmaschine erfolgreich übertragenen Buffers (jeweils getrennt nach Lese- und Schreibspeicher) wird von der Zustandsmaschine in einem weiteren Register, einem so genannten Schreib- Lese- Positionsregister, der Teilnehmerschnittstelle abgelegt.
Das Übertragen der von der Host-CPU in den Botschaftsspeicher, bspw. das Dual- Port- RAM, der Teilnehmerschnittstelle geschriebenen Buffer erfolgt auf die gleiche Art und Weise wie das Lesen. Im Unterschied zum Lesen wird der zu sendende Buffer durch das Auswerten des Schreibregisters bestimmt. Die Bitnummer im Register entspricht der Priorität bei der Übertragung. Die Zustandsmaschine scannt die Bits des Registers von unten nach oben. Der korrespondierende Buffer des ersten zu "1" gesetzten Bits wird vom Botschaftsspeicher (z.B. Dual- Port- RAM) in den Botschaftsspeicher des Kommunikationsbausteins über- tragen. Nach erfolgter Übertragung wird das zugehörige Bit im Schreibregister und die Buffernummer in das Schreib- Lese- Positionsregister der Teilnehmerschnittstelle geschrieben. Dieser Vorgang wird kontinuierlich ausgeführt. Alle mit "1" markierten Buffer werden nach ihrer Priorität vom Botschaftsspeicher (z.B. Dual- Port- RAM) in den Botschaftsspeicher des Kommunikationsbausteins über- tragen.
Gemäß einer weiteren bevorzugten Ausführungsform der Erfindung weist der Botschaftsspeicher der Teilnehmerschnittstelle ausreichend Speicherplatz auf, um darin zumindest die Daten eines Übertragungszyklus über die FlexRay- Kommunikationsverbindung abzulegen. Ein Übertragungszyklus über die Flex- Ray- Kommunikationsverbindung ist in mehrere Datenrahmen unterteilt, wobei der Botschaftsspeicher der Teilnehmerschnittstelle vorteilhafterweise ausreichend Speicherplatz aufweist, um darin zumindest die Datenrahmen in ihrer Maximalgröße, die so genannten Buffer, eines Übertragungszyklus abzulegen. Vorzugsweise weist der Botschaftsspeicher der Teilnehmerschnittstelle ausreichend Speicherplatz auf, um darin 128 Datenrahmen in ihrer Maximalgröße (sog. Buffer) abzulegen. In diesem Falls weisen dann die dem Botschaftsspeicher der Teilnehmerschnittstelle zugeordneten Register eine Größe von 1 bit pro Datenrahmen, vorzugsweise 128 bit, auf. Durch Setzen eines Bits in dem Schreib- bzw. Leseregister wird der Zustandsmaschine bzw. der Host-CPU des Teilnehmers mitgeteilt, wann neu Daten zum Abtransport in Richtung Botschaftsspeicher des Kommunikationsbausteins bzw. in Richtung Speicher der Host-CPU zur Verfügung steht. Für jeden Buffer des Botschaftsspeichers (z.B. Dual- Port- RAM) der Teilnehmerschnittstelle steht ein Bit im Schreib- bzw. Lese- register zur Verfügung.
Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung wird ausgehend von dem Verfahren der eingangs genannten Art vorgeschlagen, dass die zwischen dem FlexRay- Kommunikationsbaustein und dem Teilnehmer zu über- tragenden Botschaften in einer Anordnung der Teilnehmerschnittstelle zur Zwi- schenspeicherung der Botschaften zwischengespeichert werden, wobei die Anordnung mindestens einen Botschaftsspeicher umfasst, auf den gleichzeitig von dem FlexRay- Kommunikationsbaustein und dem Teilnehmer zugegriffen werden kann. Der synchrone Zugriff auf den Botschaftsspeicher bzw. die Register wird von einem Arbiter der Teilnehmerschnittstelle geregelt. Dieser kann auch das
Konfigurieren der Zustandsmaschine durch die Host-CPU des Teilnehmers ermöglichen.
Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merk- malen der Ansprüche ebenso wie aus der Beschreibung.
Zeichnung
Die Erfindung wird anhand der nachfolgenden Figuren der Zeichnung näher erläutert. Dabei zeigen:
Figur 1 einen Kommunikationsbaustein und dessen Anbindung an eine
Kommunikationsverbindung und einen Kommunikations- oder Host-Teilnehmer eines FlexRay- Kommunikationssystems in sche- matischer Darstellung;
Figur 2 eine spezielle Ausführungsform des Kommunikationsbausteins aus
Figur 1 sowie dessen Anbindung im Detail;
Figur 3 die Struktur eines Botschaftsspeichers des Kommunikationsbausteins aus Figur 2;
Figur 4 bis 6 die Architektur und den Prozess eines Datenzugriffs in Richtung vom Teilnehmer zum Botschaftsspeicher in schematischer Darstel- lung;
Figur 7 bis 9 die Architektur und den Prozess eines Datenzugriffs in Richtung vom Botschaftsspeicher zum Teilnehmer;
Figur 10 die Struktur eines Botschaftsverwalters und von darin enthaltenen Finite-State- Machinen in schematischer Darstellung;
Figur 11 Bauteile des Kommunikationsbausteins aus Figur 1 und 2 sowie den Teilnehmer und die entsprechenden, durch den Botschaftsverwalter gesteuerten Datenpfade in schematischer Darstellung;
Figur 12 die Zugriffsverteilung auf den Botschaftsspeicher bezogen auf die
Datenpfade in Figur 11;
Figur 13 eine erfindungsgemäße Teilnehmerschnittstelle gemäß einer ersten bevorzugten Ausführungsform der Erfindung;
Figur 14 eine erfindungsgemäße Teilnehmerschnittstelle gemäß einer zwei- ten bevorzugten Ausführungsform der Erfindung;
Figur 15 ein Sequenzdiagramm eines erfindungsgemäßen Verfahrens zur Übertragung von Botschaften aus einem Eingangsspeicher; und
Figur 16 ein Sequenzdiagramm eines erfindungsgemäßen Verfahrens zur Übertragung von Botschaften aus einem Sendespeicher.
Beschreibung der Ausführungsbeispiele
Figur 1 zeigt schematisch einen FlexRay- Kommunikationsbaustein 100 zur Anbindung eines Teilnehmers oder Hosts 102 an eine FlexRay- Kommunikationsverbindung 101, also die physikalische Schicht des FlexRay. Dazu ist der FlexRay- Kommunikationsbaustein 100 über eine Verbindung 107 mit dem Teilnehmer bzw. Teilnehmerprozessor 102 und über eine Verbindung
106 mit der Kommunikationsverbindung 101 verbunden. Zur problemlosen Anbindung zum einen bezogen auf Übertragungszeiten und zum anderen bezogen auf die Datenintegrität sind schematisch im Wesentlichen drei Anordnungen im FlexRay- Kommunikationsbaustein unterschieden. Dabei dient eine erste Anord- nung 105 zur Speicherung, insbesondere Zwischenablage, wenigstens eines Teils der zu übertragenden Botschaften. Zwischen dem Teilnehmer 102 und dieser ersten Anordnung 105 ist über die Verbindungen 107 und 108 eine zweite Anordnung 104 geschaltet. Ebenso ist zwischen Kommunikationsverbindung 101 und die erste Anordnung 105 eine dritte Anordnung 103 über die Verbin- düngen 106 und 109 geschaltet, wodurch ein sehr flexibles Eingeben und Ausgeben von Daten als Teil von Botschaften, insbesondere FlexRay- Botschaften in bzw. aus der ersten Anordnung 105 mit Gewährleistung der Datenintegrität bei optimaler Geschwindigkeit erzielbar ist.
In Figur 2 ist dieser Kommunikationsbaustein 100 in einer bevorzugten Ausführungsform noch einmal detaillierter dargestellt. Ebenso detaillierter dargestellt sind die jeweiligen Verbindungen 106 bis 109. Zur Anbindung des FlexRay- Kommunikationsbausteins 100 an den FlexRay-Teilnehmer 102 bzw. den Host- Prozessor enthält die zweite Anordnung 104 einen Eingangspufferspeicher oder Eingabepufferspeicher 201 (Input Buffer IBF), einen Ausgangspufferspeicher oder Ausgabepufferspeicher 202 (Output Buffer OBF) sowie einen Schnittstellenbaustein bestehend aus zwei Teilen 203 und 204, wobei der eine Teilbaustein 203 teilnehmerunabhängig und der zweite Teilbaustein 204 teilnehmerspezifisch ist. Der teilnehmerspezifische Teilbaustein 204 (Customer CPU Interface CIF) verbindet eine teilnehmerspezifische Host-CPU 102, also einen kundenspezifischen Teilnehmer mit dem FlexRay- Kommunikationsbaustein. Dazu ist eine bidirektionale Datenleitung 216, eine Adressleitung 217 sowie ein Steuereingang 218 vorgesehen. Ebenso vorgesehen ist mit 219 ein Interrupt- oder Unterbrechungs-Ausgang. Der teilnehmerspezifische Teilbaustein 204 steht in Verbin- düng mit einem teilnehmerunabhängigen Teilbaustein 203 (Generic CPU Inter-
face, GIF), d. h. der FlexRay- Kommunikationsbaustein oder das FlexRay-IP- Modul verfügt über ein generisches, also allgemeines, CPU-Interface 203, an das sich über entsprechende teilnehmerspezifische Teilbausteine 204, also Customer CPU Interfaces CIF eine große Anzahl von unterschiedlichen kunden- spezifischen Host CPUs 102 anschließen lassen. Dadurch muss abhängig vom Teilnehmer 102 nur der Teilbaustein 204 variiert werden, was einen deutlich geringeren Aufwand bedeutet. Das CPU-Interface 203 und der restliche Kommunikationsbaustein 100 kann unverändert übernommen werden.
Der Eingabepufferspeicher oder Eingangspufferspeicher 201 und der Ausgangspufferspeicher oder Ausgabepufferspeicher 202 können in einem gemeinsamen Speicherbaustein oder aber in getrennten Speicherbausteinen ausgebildet sein. Dabei dient der Eingabepufferspeicher 201 für die Zwischenspeicherung von Botschaften für die Übertragung zu einem Botschaftsspeicher 300. Dabei ist der Eingabepufferbaustein 201 vorzugsweise so ausgebildet, dass er zwei vollständige Botschaften bestehend aus jeweils einem Kopfsegment oder Headersegment, insbesondere mit Konfigurationsdaten und ein Datensegment oder Paylo- ad Segment speichern kann. Dabei ist der Eingabepufferspeicher 201 zweiteilig (Teilpufferspeicher und Schattenspeicher) ausgebildet, wodurch sich durch wechselweises Schreiben der beiden Teile des Eingabepufferspeichers bzw. durch Zugriffswechsel die Übertragung zwischen Teilnehmer-CPU 102 und Botschaftsspeicher 300 beschleunigen lässt. Ebenso dient der Ausgabepufferspeicher oder Ausgangspufferspeicher 202 (Output- Buffer OBF) für die Zwischenspeicherung von Botschaften für die Übertragung vom Botschaftsspeicher 300 zur Teilnehmer-CPU 102. Dabei ist auch der Ausgabepuffer 202 so gestaltet, dass zwei komplette Botschaften bestehend aus Kopfsegment, insbesondere mit Konfigurationsdaten und Datensegment, also Payload Segment, gespeichert werden können. Auch hier ist der Ausgabepufferspeicher 202 in zwei Teile, einen Teilpufferspeicher und einen Schattenspeicher aufgeteilt, wodurch sich auch hier durch wechselweises Lesen der beiden Teile die Übertragung bzw. durch
Zugriffswechsel die Übertragung zwischen Teilnehmer- bzw. Host-CPU 102 und Botschaftsspeicher 300 beschleunigen lässt. Diese zweite Anordnung 104 bestehend aus den Blöcken 201 bis 204 ist mit der ersten Anordnung 105 wie dargestellt verbunden.
Die Anordnung 105 besteht aus einem Botschaftsverwalter 200 (Message Handler MHD) und einem Botschaftsspeicher 300 (Message RAM). Der Botschaftsverwalter 200 kontrolliert bzw. steuert den Datentransfer zwischen dem Eingabepufferspeicher 201 sowie Ausgabepufferspeicher 202 und dem Botschafts- Speicher 300. Gleichermaßen kontrolliert bzw. steuert er die Datenübertragung in der anderen Richtung über die dritte Anordnung 103. Der Botschaftsspeicher 300 ist vorzugsweise als single-ported RAM ausgeführt. Dieser RAM-Speicher speichert die Botschaften bzw. Botschaftsobjekte, also die eigentlichen Daten, zusammen mit Konfigurations- und Statusdaten. Die genaue Struktur des Bot- Schaftsspeichers 300 ist in Figur 3 näher dargestellt.
Die dritte Anordnung 103 besteht aus den Blöcken 205 bis 208. Entsprechend den beiden Kanälen des FlexRay Physical Layer ist diese Anordnung 103 in zwei Datenpfade mit je zwei Datenrichtungen aufgeteilt. Dies wird durch die Verbin- düngen 213 und 214 deutlich, worin die beiden Datenrichtungen für den Kanal A mit RxA und TxA für Empfangen (RxA) und Senden (TxA) sowie für Kanal B mit RxB und TxB dargestellt sind. Mit Verbindung 215 ist ein optionaler bidirektionaler Steuereingang bezeichnet. Die Anbindung der dritten Anordnung 103 erfolgt über einen ersten Pufferspeicher 205 für Kanal B und einen zweiten Pufferspei- eher 206 für Kanal A. Diese beiden Pufferspeicher (Transient Buffer RAMs:
RAM A und RAM B) dienen als Zwischenspeicher für die Datenübertragung von bzw. zu der ersten Anordnung 105. Entsprechend der beiden Kanäle sind diese beiden Pufferspeicher 205 und 206 mit jeweils einem Schnittstellenbaustein 207 und 208 verbunden, die die FlexRay- Protokoll-Controller oder Busprotokoll- Controller bestehend aus einem Sende-/Empfangs-Schieberegister und der
FlexRay Protokoll Finite State Maschine, enthalten. Die beiden Pufferspeicher 205 und 206 dienen somit als Zwischenspeicher für die Datenübertragung zwischen den Schieberegistern der Schnittstellenbausteine oder FlexRay Protokoll Controller 207 und 208 und dem Botschaftsspeicher 300. Auch hier werden vorteilhafter Weise durch jeden Pufferspeicher 205 oder 206 die Datenfelder, also das Payload Segment oder Datensegment zweier FlexRay- Botschaften gespeichert.
Weiterhin dargestellt im Kommunikationsbaustein 100 ist mit 209 die globale Zeiteinheit (Global Time Unit GTU), welche für die Darstellung der globalen Zeitraster im FlexRay, also den Mikrotick μT und den Makrotick MT, zuständig ist. Ebenso wird über die globale Zeiteinheit 209 die fehlertolerante Uhrensynchronisation der Zykluszähler (Cycle Counter) und die Kontrolle der zeitlichen Abläufe im statischen und dynamischen Segment des FlexRay geregelt. Mit Block 210 ist die allgemeine Systemsteuerung (System Universal Control SUC) dargestellt, durch welche die Operationsmodi des FlexRay- Kommunikationscontrollers kontrolliert und gesteuert werden. Dazu gehören der Wakeup, der Startup, die Reintegration bzw. Integration, Normaloperation (normal Operation) und passive Operation (passive Operation).
Block 211 zeigt das Netzwerk und Fehlermanagement (Network- und Error Management NEM), wie in der FlexRay- Protokollspezifikation v2.0 beschrieben. Block 212 schließlich zeigt die Unterbrechungssteuerung (Interrupt Control INT), welche die Status- und Fehlerunterbrechungsflaggen (status and error interrupt flags) verwaltet und die Unterbrechungsausgänge 219 zur Teilnehmer-CPU 102 kontrolliert bzw. steuert. Der Block 212 enthält außerdem einen absoluten und einen relativen Timer bzw. Zeitgeber zur Erzeugung der Zeitunterbrechungen oder Timerinterrupts.
Für die Kommunikation in einem FlexRay- Netzwerk können Botschaftsobjekte bzw. Botschaften (Message Buffer) mit bis zu 254 Datenbytes konfiguriert werden. Der Botschaftsspeicher 300 ist insbesondere ein Botschafts- RAM-Speicher (Message RAM), welcher z. B. bis zu maximal 128 Botschaftsobjekten spei- ehern kann. Alle Funktionen, die die Behandlung bzw. Verwaltung der Botschaften selbst betreffen, sind dem Botschaftsverwalter oder Message Handler 200 implementiert. Dies sind z.B. die Akzeptanzfilterung, Transfer der Botschaften zwischen den beiden FlexRay- Protokoll-Controller- Blöcken 207 und 208 und dem Botschaftsspeicher 300, also dem Message RAM sowie die Kontrolle der Sendereihenfolge und das Bereitstellen von Konfigurationsdaten bzw. Statusdaten.
Eine externe CPU, also ein externer Prozessor der Teilnehmerprozessor 102, kann über die Teilnehmerschnittstelle 204 mit dem teilnehmerspezifischen Teil 204 direkt auf die Register des FlexRay- Kommunikationsbausteins 100 zugreifen. Dabei wird eine Vielzahl von Registern verwendet. Diese Register werden eingesetzt, um die FlexRay Protokoll Controller, also die Schnittstellenbausteine 207 und 208, den Botschaftsverwalter (Message Handler MHD) 200, die globale Zeiteinheit (Global Time Unit GTU) 209, den allgemeinen Systemcontroller (Sys- tem Universal Controller SUC) 210, die Netzwerk- und Fehlermanagementeinheit (Network und Error Management Unit NEM) 211, den Unterbrechungscontroller (Interrupt Controller INT) 212 sowie den Zugriff auf das Message RAM, also den Botschaftsspeicher 300 zu konfigurieren und zu steuern und ebenso den entsprechenden Status anzuzeigen. Zumindest auf Teile dieser Register wird noch in den Figuren 4 bis 6 und 7 bis 9 näher eingegangen. Ein solch beschriebener FlexRay- Kommunikationsbaustein 100 ermöglicht die einfache Umsetzung der FlexRay-Spezifikation v2.0, wodurch einfach ein ASIC oder ein Mikrocontroller mit entsprechender FlexRay- Funktionalität generiert werden kann.
Durch den beschriebenen FlexRay- Kommunikationsbaustein 100 kann die Flex- Ray- Protokollspezifikation, insbesondere v2.0, vollständig unterstützt werden und es sind damit z.B. bis zu 128 Botschaften bzw. Botschaftsobjekte konfigurierbar. Dabei ergibt sich ein flexibel konfigurierbarer Botschaftsspeicher für die Speicherung einer unterschiedlichen Anzahl von Botschaftsobjekten abhängig von der Größe des jeweiligen Datenfeldes bzw. Datenbereiches der Botschaft. Somit sind also vorteilhafterweise Botschaften- oder Botschaftsobjekte zu konfigurieren, die unterschiedlich lange Datenfelder besitzen. Der Botschaftsspeicher 300 ist dabei vorteilhafter Weise als FIFO (first in-first out) ausgebildet, so dass sich ein konfigurierbarer Empfangs-FIFO ergibt. Jede Botschaft bzw. jedes Botschaftsobjekt im Speicher kann als Empfangsspeicherobjekt (Receive- Buffer), Sendespeicherobjekt (Transmit- Buffer) oder als Teil des konfigurierbaren Empfangs- Fl FOs konfiguriert werden. Ebenso ist eine Akzeptanzfilterung auf Frame- ID, Channel-ID und Cycle-Counter im FlexRay- Netzwerk möglich. Zweckmäßi- ger Weise wird somit das Netzwerkmanagement unterstützt. Vorteilhafterweise sind außerdem maskierbare Modulinterrupts vorgesehen.
In Figur 3 ist detailliert die Aufteilung des Botschaftsspeichers 300 beschrieben. Für die nach der FlexRay- Protokollspezifikation geforderte Funktionalität eines FlexRay-Kommunikationscontrollers wird ein Botschaftsspeicher für das Bereitstellen von zu sendenden Botschaften (Transmit Buffer Tx) sowie das Abspeichern von fehlerfrei empfangenen Botschaften (Receive Buffer Rx) benötigt. Ein FlexRay- Protokoll erlaubt Botschaften mit einem Datenbereich, also einem Pay- load- Bereich von 0 bis 254 Bytes. Wie in Figur 2 dargestellt ist der Botschafts - Speicher 300 Teil des FlexRay- Kommunikationsbausteins 100. Das nachfolgend beschriebene Verfahren sowie der entsprechende Botschaftsspeicher 300 beschreiben die Speicherung von zu sendenden Botschaften sowie von empfangenen Botschaften, insbesondere unter Verwendung eines Random Access Memory (RAM), wobei es durch den beschriebenen Mechanismus möglich ist in einem Botschaftsspeicher vorgegebener Größe eine variable Anzahl von Bot-
schatten zu speichern. Dabei ist die Anzahl der speicherbaren Botschaften abhängig von der Größe der Datenbereiche der einzelnen Botschaften, wodurch zum einen die Größe des benötigten Speichers minimiert werden kann ohne die Größe der Datenbereiche der Botschaften einzuschränken und zum anderen eine optimale Ausnutzung des Speichers erfolgt. Im Folgenden nun soll diese variable Aufteilung eines insbesondere RAM-basierten Botschaftsspeichers 300 für einen FlexRay Communication Controller näher beschrieben werden.
Zur Implementierung wird nun beispielhaft ein Botschaftsspeicher mit einer fest- gelegten Wortbreite von n Bit, beispielsweise 8, 16, 32 usw., sowie einer vorgegebenen Speichertiefe von m Worten vorgegeben (m, n als natürliche Zahlen). Dabei wird der Botschaftsspeicher 300 in zwei Segmente aufgeteilt, ein Header Segment oder Kopfsegment HS und ein Datensegment DS (Payload Section, Payload Segment). Pro Botschaft wird somit ein Headerbereich HB und ein Da- tenbereich DB angelegt. Für Botschaften 0, 1 bis k (k als natürliche Zahl) werden somit Headerbereiche oder Kopfbereiche HBO, HBl bis HBk und Datenbereiche DBO, DBl bis DBk angelegt. In einer Botschaft wird also zwischen ersten und zweiten Daten unterschieden, wobei die ersten Daten Konfigurationsdaten und/oder Statusdaten bezüglich der FlexRay Botschaft entsprechen und jeweils in einem Headerbereich HB (HBO, HBl, ..., HBk) abgelegt werden. Die zweiten Daten, die den eigentlichen Nutzdaten entsprechen, die übertragen werden sollen, werden entsprechend in Datenbereichen DB (DBO, DBl, ... , DBk) abgelegt. Somit entsteht für die ersten Daten pro Botschaft ein erster Datenumfang (in Bit, Byte oder Speicherworten gemessen) und für die zweiten Daten einer Botschaft ein zweiter Datenumfang (ebenfalls in Bit, Byte oder Speicherworten gemessen), wobei der zweite Datenumfang pro Botschaft unterschiedlich sein kann. Die Aufteilung zwischen Kopfsegment HS und Datensegment DS ist nun im Botschaftsspeicher 300 variabel, d. h. es existiert keine vorgegebene Grenze zwischen den Bereichen. Die Aufteilung zwischen Kopfsegment HS und Datenseg- ment DS ist abhängig von der Anzahl k der Botschaften sowie dem zweiten Da-
tenumfang, also dem Umfang der eigentlichen Nutzdaten, einer Botschaft bzw. aller k Botschaften zusammen. Den Konfigurationsdaten KDO, KDl bis KDk der jeweiligen Botschaft wird nun ein Zeigerelement oder Datapointer DPO, DPI bis DPk jeweils direkt zugeordnet. In der speziellen Ausgestaltung wird jedem Kopf- bereich HBO, HB 1 bis HBk eine feste Anzahl von Speicherworten, hier zwei, zugeordnet, so dass immer ein Konfigurationsdatum KD (KDO, KD 1, ..., KDk) und ein Zeigerelement DP (DPO, DPI, ..., DPk) zusammen in einem Headerbereich HB abgelegt sind. An diesem Kopfsegment HS mit den Headerbereichen HB, dessen Größe bzw. erster Datenumfang abhängig von der Anzahl k der zu speichernden Botschaften ist, schließt das Datensegment DS zur Speicherung der eigentlichen Botschaftsdaten DO, Dl bis Dk an. Dieses Datensegment (oder Datensection) DS hängt in seinem Datenumfang vom jeweiligen Datenumfang der abgelegten Botschaftsdaten ab, hier z.B. in DBO sechs Worte, DBl ein Wort und DBk zwei Worte. Die jeweiligen Zeigerelemente DPO, DPI bis DPk zeigen somit immer zum Beginn, also auf die Anfangsadresse des jeweiligen Datenbereichs DBO, DBl bis DBk, in denen die Daten DO, Dl bis Dk der jeweiligen Botschaften 0, 1, bis k abgelegt sind. Damit ist die Aufteilung des Botschaftsspeichers 300 zwischen Kopfsegment HS und Datensegment DS variabel und hängt von der Anzahl k der Botschaften selbst sowie dem jeweiligen Datenumfang einer Botschaft und damit dem gesamten zweiten Datenumfang ab. Werden weniger Botschaften konfiguriert, wird das Kopfsegment HS kleiner und der frei werdende Bereich im Botschaftsspeicher 300 kann als Zusatz zum Datensegment DS für die Speicherung von Daten verwendet werden. Durch diese Variabilität kann eine optimale Speicherausnutzung gewährleistet werden, womit auch die Verwendung kleinerer Speicher möglich ist. Das freie Datensegment FDS .insbesondere dessen Größe, ebenfalls abhängig von der Kombination aus Anzahl k der gespeicherten Botschaften und dem jeweiligen zweiten Datenumfang der Botschaften ist somit minimal und kann sogar 0 werden.
Neben der Verwendung von Zeigerelementen ist es auch möglich, die ersten und zweiten Daten, also die Konfigurationsdaten KD (KDO, KDl, ..., KDk) und die eigentlichen Daten D (DO, Dl, ... , Dk) in einer vorgebbaren Reihenfolge abzulegen, so dass die Reihenfolge der Kopfbereiche HBO bis HBk im Kopfsegment HS und die Reihenfolge der Datenbereiche DBO bis DBk im Datensegment DS jeweils identisch ist. Dann könnte unter Umständen sogar auf ein Zeigerelement verzichtet werden.
In einer besonderen Ausgestaltung ist dem Botschaftsspeicher ein Fehlerken- nungserzeuger, insbesondere ein Parity- Bit- Generator- Element und ein Fehlerkennungsprüfer, insbesondere ein Parity- Bit- Prüf- Element zugeordnet, um die Korrektheit der gespeicherten Daten in HS und DS zu gewährleisten, indem pro Speicherwort oder pro Bereich (HB und/oder DB) eine Prüfsumme eben insbesondere als Parity- Bit mit abgelegt werden kann. Andere Kontrollkennungen, z.B. ein CRC (Cyclic Redundancy Check) oder auch Kennungen höherer Mächtigkeit wie ECC ( Error Code Correction) sind denkbar. Damit sind gegenüber einer festgelegten Aufteilung des Botschaftsspeichers folgende Vorteile gegeben:
Der Anwender kann bei der Programmierung entscheiden, ob er eine größere Anzahl von Botschaften mit kleinem Datenfeld oder ob er eine kleinere Anzahl von Botschaften mit großem Datenfeld verwenden möchte. Bei der Konfiguration von Botschaften mit unterschiedlich großem Datenbereich DB wird der vorhandene Speicherplatz optimal ausgenutzt. Der Anwender hat die Möglichkeit einen Datenspeicherbereich gemeinsam für unterschiedliche Botschaften zu nutzen.
Bei der Implementierung des Communication Controllers auf einer integrierten Schaltung kann die Größe des Botschaftsspeichers 300 durch Anpassung der Speichertiefe (Anzahl m der Worte) des verwendeten Speichers an die Bedürf-
nisse der Applikation angepasst werden, ohne die sonstigen Funktionen des Communication Controllers zu ändern.
Im Weiteren wird nun anhand der Figuren 4 bis 6 sowie 7 bis 9 der Host-CPU- Zugriff, also Schreiben und Lesen von Konfigurationsdaten bzw. Statusdaten und der eigentlichen Daten über die Pufferspeicheranordnung 201 und 202, näher beschrieben. Dabei ist es das Ziel, eine Entkopplung bezüglich der Datenübertragung derart herzustellen, dass die Datenintegrität sichergestellt werden kann und gleichzeitig eine hohe Übertragungsgeschwindigkeit gewährleistet ist. Die Steuerung dieser Vorgänge erfolgt über den Botschaftsverwalter 200, was später noch näher in den Figuren 10, 11 und 12 beschrieben wird.
In den Figuren 4, 5 und 6 werden zunächst die Schreibzugriffe auf den Botschaftsspeicher 300 durch die Host-CPU der Teilnehmer-CPU 102 über den Eingangspufferspeicher 201 näher erläutert. Dazu zeigt Figur 4 noch einmal den Kommunikationsbaustein 100, wobei aus Gründen der Übersichtlichkeit nur die hier relevanten Teile des Kommunikationsbausteins 100 gezeigt sind. Dies ist zum einen der für die Steuerung der Abläufe verantwortliche Botschaftsverwalter 200 sowie zwei Kontrollregister 403 und 404, die wie dargestellt außerhalb des Botschaftsverwalters 200 im Kommunikationsbaustein 100 untergebracht sein können, aber auch im Botschaftsverwalter 200 selbst enthalten sein können. 403 stellt dabei das Eingangs-Anforderungsregister (Input Buffer Command Request Register) dar und 404 das Eingangs-Maskierungsregister (Input Buffer Command Mask Register). Schreibzugriffe der Host-CPU 102 auf den Botschafts- Speicher 300 (Message RAM) erfolgen also über einen zwischengeschalteten
Eingangspufferspeicher 201 (Input Buffer). Dieser Eingangspufferspeicher 201 ist nun geteilt bzw. gedoppelt ausgelegt, und zwar als Teilpufferspeicher 400 und einem zu dem Teilpufferspeicher zugehörigen Schattenspeicher 401. Damit kann wie nachfolgend beschrieben ein kontinuierlicher Zugriff der Host-CPU 102 auf die Botschaften bzw. Botschaftsobjekte respektive Daten des Botschafts-
Speichers 300 erfolgen und damit Datenintegrität und beschleunigte Übertragung gewährleistet werden.
Die Steuerung der Zugriffe erfolgt über das Eingangs-Anforderungsregister 403 und über das Eingangs- Maskierungsregister 404. Im Register 403 sind in Figur 5 mit den Zahlen von 0 bis 31 die jeweiligen Bitstellen in 403 hier beispielhaft für eine Breite von 32 Bit dargestellt. Gleiches gilt für das Register 404 und die Bitstellen 0 bis 31 in dem Maskierungsregister 404 aus Figur 6.
Es erhalten nun beispielhaft die Bitstellen 0 bis 5, 15, 16 bis 21 und 31 des Registers 403 bezüglich der Ablaufsteuerung eine besondere Funktion. So ist in die Bitstellen 0 bis 5 des Registers 403 eine Kennung IBRH (Input Buffer Request Host) als Botschaftskennung eintragbar. Ebenso ist in die Bitstellen 16 bis 21 des Registers 403 eine Kennung IBRS (Input Buffer Request Shadow) eintrag- bar. Ebenso sind in Registerstelle 15 von 403 IBSYH und in Registerstelle 31 von 403 IBSYS als Zugriffskennungen eingetragen. Ausgezeichnet sind auch die Stellen 0 bis 2 des Registers 404, wobei in 0 und 1 mit LHSH (Load Header Section Host) und LDSH (Load Data Section Host) weitere Kennungen als Da- tenkennungen eingetragen sind. Diese Datenkennungen sind hier in einfachster Form, nämlich jeweils als ein Bit ausgebildet. In Bitstelle 2 von Register 404 ist mit STXRH (Set Transmission X Request Host) eine Startkennung eingeschrieben. Im Weiteren wird nun der Ablauf des Schreibzugriffs auf den Botschaftsspeicher 300 über den Eingangspuffer 201 beschrieben.
Die Host-CPU 102 schreibt die Daten der zu transferierenden Botschaft in den
Eingangspufferspeicher 201. Dabei kann die Host-CPU 102 nur die Konfigurati- ons- und Headerdaten KD einer Botschaft für das Headersegment HS des Botschaftsspeichers 300 oder nur die eigentlichen, zu übertragenden Daten D einer Botschaft für das Datensegment DS des Botschaftsspeichers 300 oder beide schreiben. Welcher Teil einer Botschaft, also Konfigurationsdaten und/oder die
eigentlichen Daten, übertragen werden soll, wird durch die speziellen Datenken- nungen LHSH und LDSH im Eingangs- Markierungsregister 404 festgelegt. Dabei wird durch LHSH (Load Header Section Host) festgelegt ob die Headerdaten, also die Konfigurationsdaten KD, übertragen werden und durch LDSH (Load Data Section Host) festgelegt, ob die Daten D übertragen werden sollen. Dadurch, dass der Eingangspufferspeicher 201 zweiteilig mit einem Teilpufferspeicher 400 und einem dazugehörigen Schattenspeicher 401 ausgebildet ist und ein wechselseitiger Zugriff erfolgen soll sind als Gegenstück zu LHSH und LDSH zwei weitere Datenkennungsbereiche vorgesehen, die nun auf den Schatten- Speicher 401 bezogen sind. Diese Datenkennungen in den Bitstellen 16 und 17 des Registers 404 sind mit LHSS (Load Header Section Shadow) und LDSS (Load Data Section Shadow) bezeichnet. Durch diese wird somit der Übertragungsvorgang bezüglich des Schattenspeichers 401 gesteuert.
Ist nun das Startbit bzw. die Startkennung STXRH (Set Transmission X Request Host) in Bitstelle 2 des Eingangs- Maskierungsregisters 404 gesetzt, so wird nach erfolgtem Transfer der jeweils zu übertragenden Konfigurationsdaten und/oder eigentlichen Daten in den Botschaftsspeicher 300 automatisch eine Sendeanforderung (Transmission Request) für das entsprechende Botschafts- objekt gesetzt. D. h. durch diese Startkennung STXRH wird das automatische Senden eines übertragenden Botschaftsobjekts gesteuert, insbesondere gestartet.
Das Gegenstück hierzu entsprechend für den Schattenspeicher 401 ist die Start- kennung STXRS (Set Transmission X Request Shadow) welches beispielhaft in Bitstelle 18 des Eingangs- Markierungsregisters 404 enthalten ist und auch hier im einfachsten Fall eben als ein Bit ausgebildet ist. Die Funktion von STXRS ist analog der Funktion von STXRH, lediglich bezogen auf den Schattenspeicher 401.
Wenn die Host-CPU 102 die Botschaftskennung, insbesondere die Nummer des Botschaftsobjekts im Botschaftsspeicher 300, in welches die Daten des Eingangspufferspeichers 201 transferiert werden sollen, in die Bitstellen 0 bis 5 des Eingangsanforderungsregisters 403, also nach IBRH, schreibt, werden der TeN- Pufferspeicher 400 des Eingangspufferspeichers 201 und der zugehörige Schattenspeicher 401 vertauscht bzw. es wird der jeweilige Zugriff von Host-CPU 102 und Botschaftsspeicher 300 auf die beiden Teilspeicher 400 und 401 vertauscht, wie durch die halbkreisförmigen Pfeile angedeutet. Dabei wird z.B. auch der Datentransfer, also die Datenübertragung zum Botschaftsspeicher 300 gestartet. Die Datenübertragung zum Botschaftsspeicher 300 selbst erfolgt aus dem
Schattenspeicher 401. Gleichzeitig werden die Registerbereiche IBRH und IBRS getauscht. Ebenso getauscht werden LHSH und LDSH gegen LHSS und LDSS. Gleichermaßen getauscht wird STXRH mit STXRS. IBRS zeigt somit die Kennung der Botschaft, also die Nummer des Botschaftsobjektes für das eine Über- tragung, also ein Transfer aus dem Schattenspeicher 401 im Gange ist bzw. welches Botschaftsobjekt, also welcher Bereich im Botschaftsspeicher 300 als letztes Daten (KD und/oder D) aus dem Schattenspeicher 401 erhalten hat. Durch die Kennung (hier wieder beispielsweise 1 Bit) IBSYS (Input Buffer Busy Shadow) in Bitstelle 31 des Eingangs- Anforderungsregisters 403 wird angezeigt ob gerade eine Übertragung mit Beteiligung des Schattenspeichers 401 erfolgt. So wird beispielsweise bei IBSYS=I gerade aus dem Schattenspeicher 401 übertragen und bei IBSYS=O eben nicht. Dieses Bit IBSYS wird beispielsweise durch das Schreiben von IBRH, also Bitstellen 0 bis 5, in Register 403 gesetzt, um anzuzeigen, dass ein Transfer zwischen dem Schattenspeicher 401 und dem Botschaftsspeicher 300 im Gange ist. Nach Beendigung dieser Datenübertragung zum Botschaftsspeicher 300 wird IBSYS wieder zurückgesetzt.
Während der Datentransfer aus dem Schattenspeicher 401 gerade läuft kann die Host-CPU 102 die nächste zu transferierende Botschaft in den Eingangspuffer- Speicher 201 bzw. in den Teilpufferspeicher 400 schreiben. Mit Hilfe einer weite-
ren Zugriffskennung IBSYH (Input Buffer Busy Host) beispielsweise in Bitstelle 15 von Register 403 kann die Kennung noch weiter verfeinert werden. Schreibt die Host-CPU 102 gerade IBRH, also die Bitstellen 0 bis 5 von Register 403, während eine Übertragung zwischen dem Schattenspeicher 401 und dem Bot- Schaftsspeicher 300 läuft, also IBSYS=I ist, so wird IBSYH im Eingangsanforderungsregister 403 gesetzt. Sobald der laufende Transfer, also die laufende Übertragung, abgeschlossen ist, wird der angeforderte Transfer (Anforderung durch STXRH siehe oben) gestartet und das Bit IBSYH zurückgesetzt. Das Bit IBSYS bleibt während der ganzen Zeit gesetzt, um anzuzeigen, dass Daten zum Botschaftsspeicher 300 transferiert werden. Alle verwendeten Bits aller Ausführungsbeispiele können dabei auch als Kennungen mit mehr als einem Bit ausgebildet sein. Vorteilhaft ist die Ein- Bit Lösung aus Speicher- und verarbeitungsökonomischen Gründen.
Der so beschriebene Mechanismus erlaubt es der Host-CPU 102 kontinuierlich Daten in die im Botschaftsspeicher 300 befindlichen Botschaftsobjekte bestehend aus Headerbereich HB und Datenbereich DB zu transferieren, vorausgesetzt die Zugriffsgeschwindigkeit der Host-CPU 102 auf den Eingangspufferspeicher 201 ist kleiner oder gleich der internen Datentransferrate des FlexRay- IP-Moduls, also des Kommunikationsbausteins 100.
In den Figuren 7, 8 und 9 werden nun die Lesezugriffe auf den Botschaftsspeicher 300 durch die Host-CPU oder Teilnehmer-CPU 102 über den Ausgangspufferspeicher oder Ausgabepufferspeicher 202 näher erläutert. Dazu zeigt Figur 7 noch einmal den Kommunikationsbaustein 100, wobei aus Gründen der Übersichtlichkeit auch hier nur die relevanten Teile des Kommunikationsbausteins 100 gezeigt sind. Dies ist zum einen der für die Steuerung der Abläufe verantwortliche Botschaftsverwalter 200 sowie zwei Kontrollregister 703 und 704, die wie dargestellt außerhalb des Botschaftsverwalter 200 im Kommunikationsbau- stein 100 untergebracht sein können, aber auch im Botschaftsverwalter 200
selbst enthalten sein können. 703 stellt dabei das Ausgangs- Anforderungsregister (Output Buffer Command Request Register) dar und 704 das Ausgangs-Maskierungsregister (Output Buffer Command Mask Register). Lesezugriffe der Host-CPU 102 auf den Botschaftsspeicher 300 erfolgen also über den zwischengeschalteten Ausgangspufferspeicher 202 (Output Buffer). Dieser Ausgangspufferspeicher 202 ist nun ebenfalls geteilt bzw. gedoppelt ausgelegt, und zwar als Teilpufferspeicher 701 und einem zu dem Teilpufferspeicher zugehörigen Schattenspeicher 700. Damit kann auch hier wie nachfolgend beschrieben ein kontinuierlicher Zugriff der Host-CPU 102 auf die Bot- schatten bzw. Botschaftsobjekte respektive Daten des Botschaftsspeichers 300 erfolgen und damit Datenintegrität und beschleunigte Übertragung nun in der Gegenrichtung vom Botschaftsspeicher 300 zum Host 102 gewährleistet werden. Die Steuerung der Zugriffe erfolgt über das Ausgangs-Anforderungsregister
703 und über das Ausgangs-Maskierungsregister 704. Auch im Register 703 sind mit den Zahlen von 0 bis 31 die jeweiligen Bitstellen in 703 hier beispielhaft für eine Breite von 32 Bit dargestellt (vgl. Figur 8). Gleiches gilt für das Register
704 und die Bitstellen 0 bis 31 in 704 (vgl. Figur 9).
Es erhalten nun beispielhaft die Bitstellen 0 bis 5, 8 und 9, 15 und 16 bis 21 des Registers 703 bezüglich der Ablaufsteuerung des Lesezugriffs eine besondere Funktion. So ist in die Bitstellen 0 bis 5 des Registers 703 eine Kennung OBRS (Output Buffer Request Shadow) als Botschaftskennung eintragbar. Ebenso ist in die Bitstellen 16 bis 21 des Registers 703 eine Kennung OBRH (Output Buffer Request Host) eintragbar. Als Zugriffskennung ist in Bitstelle 15 von Register 703 eine Kennung OBSYS (Output Buffer Busy Shadow) eintragbar. Ausgezeichnet sind auch die Stellen 0 und 1 des Ausgabe- Maskierungsregisters 704, wobei in den Bitstellen 0 und 1 mit RDSS (Read Data Section Shadow) und RHSS (Read Header Section Shadow) weitere Kennungen als Datenkennungen eingetragen sind. Weitere Datenkennungen sind beispielsweise in den Bitstellen 16 und 17 mit RDSH (Read Data Section Host) und RHSH (Read Header Secti-
on Host) vorgesehen. Diese Datenkennungen sind auch hier beispielhaft in einfachster Form, nämlich jeweils als ein Bit ausgebildet. In Bitstelle 9 des Registers 703 ist eine Startkennung REQ eingetragen. Weiterhin ist eine Umschalt- kennung VIEW vorgesehen die beispielhaft in Bitstelle 8 von Register 703 einge- tragen ist.
Die Host-CPU 102 fordert die Daten eines Botschaftsobjekts aus dem Botschaftsspeicher 300 an, indem sie die Kennung der gewünschten Botschaft, also insbesondere die Nummer des gewünschten Botschaftsobjektes, nach OBRS also in die Bitstellen 0 bis 5 des Registers 703 schreibt. Auch hierbei kann die Host-CPU 102 wie in der Gegenrichtung entweder nur die Status- bzw. Konfigu- rations- und Headerdaten KD einer Botschaft also aus einem Headerbereich oder nur die eigentlich zu übertragenden Daten D einer Botschaft also aus dem Datenbereich oder auch beide lesen. Welcher Teil der Daten also aus Headerbereich und/oder Datenbereich übertragen werden soll wird hierbei vergleichbar mit der Gegenrichtung durch RHSS und RDSS festgelegt. Das heißt RHSS gibt an, ob die Headerdaten gelesen werden sollen und RDSS gibt an, ob die eigentlichen Daten gelesen werden sollen.
Eine Startkennung dient dazu die Übertragung vom Botschaftsspeicher 300 zum Schattenspeicher 700 zu starten. D.h. wird als Kennung wie im einfachsten Fall ein Bit verwendet, wird durch Setzen von Bit REQ in Bitstelle 9 im Ausgabe- Anforderungsregister 703 die Übertragung vom Botschaftsspeicher 300 zum Schattenspeicher 700 gestartet. Die laufende Übertragung wird wieder durch eine Zugriffskennung, hier wieder im einfachsten Fall durch ein Bit OBSYS im Register 703, angezeigt. Um Kollisionen zu vermeiden ist es vorteilhaft, wenn das Bit REQ nur dann gesetzt werden kann, wenn OBSYS nicht gesetzt ist, also gerade keine laufende Übertragung erfolgt. Hier erfolgt dann auch der Botschaftstransfer zwischen dem Botschaftsspeicher 300 und dem Schattenspeicher 700. Der eigentliche Ablauf könnte nun einerseits vergleichbar zur Gegen- richtung wie unter den Figuren 4, 5 und 6 beschrieben gesteuert werden (kom-
plementäre Registerbelegung) und erfolgen oder aber in einer Variation durch eine zusätzliche Kennung, nämlich eine Umschaltkennung VIEW in Bitstelle 8 des Registers 703. D.h. nach Abschluss der Übertragung wird das Bit OBSYS zurückgesetzt und durch Setzen des Bits VIEW im Ausgabe- Anforderungsregister 703 werden der Teilpufferspeicher 701 und der zugehörige Schattenspeicher 700 getauscht bzw. es werden die Zugriffe darauf getauscht und die Host-CPU 102 kann nun das vom Botschaftsspeicher 300 angeforderte Botschaftsobjekt, also die entsprechende Botschaft, aus dem Teilpufferspeicher 701 auslesen. Dabei werden auch hier vergleichbar mit der Gegenübertragungs- richtung in den Figuren 4 bist 6 die Registerzellen OBRS und OBRH getauscht. Gleichermaßen werden RHSS und RDSS gegen RHSH und RDSH getauscht. Als Schutzmechanismus kann auch hier vorgesehen werden, dass das Bit VIEW nur dann gesetzt werden kann, wenn OBSYS nicht gesetzt ist, also keine laufende Übertragung stattfindet.
Somit erfolgen Lesezugriffe der Host-CPU 102 auf den Botschaftsspeicher 300 über den zwischengeschalteten Ausgangspufferspeicher 202. Dieser Ausgangspufferspeicher 202 ist ebenso wie der Eingangspufferspeicher 201 doppelt bzw. zweiteilig ausgelegt, um einen kontinuierlichen Zugriff der Host-CPU 102 auf die Botschaftsobjekte, die im Botschaftsspeicher 300 abgelegt sind, zu gewährleisten. Auch hier werden die Vorteile der hohen Datenintegrität und der beschleunigten Übertragung erzielt.
Durch die Verwendung der beschriebenen Eingangs- und Ausgangspuffer 201, 202 wird sichergestellt, dass eine Host-CPU 102 trotz der modulinternen Latenzzeiten unterbrechungsfrei auf den Botschaftsspeicher 300 zugreifen kann.
Zur Sicherstellung dieser Datenintegrität wird die Datenübertragung, insbesondere die Weiterleitung im Kommunikationsbaustein 100, durch den Botschafts- Verwalter 200 (Message Handler MHD) vorgenommen. Dazu ist in Figur 10 der
Botschaftsverwalter 200 dargestellt. Der Botschaftsverwalter 200 ist in seiner Funktionalität durch mehrere Zustandsmaschinen oder Zustandsautomaten, also endliche Automaten, so genannte Finite-State- Machinen (FSM) darstellbar. Dabei sind wenigstens drei Zustandsmaschinen und in einer besonderen Aus- führungsform vier Finite-State- Machinen vorgesehen. Eine erste Finite-State- Machine ist die IOBF-FSM und mit 501 bezeichnet (Input/Output Buffer State Machine). Diese IOBF-FSM könnte auch je Übertragungsrichtung bezüglich des Eingangspufferspeichers 201 oder des Ausgangspufferspeichers 202 in zwei Finite-State-Machinen aufgeteilt sein IBF-FSM (Input Buffer FSM) und OBF- FSM (Output Buffer FSM), womit maximal fünf Zustandsautomaten (IBF-FSM, OBF-FSM, TBFl-FSM, TBF2-FSM, AFSM) denkbar wären. Bevorzugt ist aber eine gemeinsame IOBF-FSM vorzusehen. Eine zweite Finite-State- Machine ist hier im Zuge des bevorzugten Ausführungsbeispiels in zwei Blöcke 502 und 503 aufgeteilt und bedient die beiden Kanäle A und B bezüglich der Speicher 205 und 206, wie zu Fig. 2 beschrieben. Dabei kann eine Finite-State- Machine vorgesehen sein, um beide Kanäle A und B zu bedienen, oder aber wie in der bevorzugten Form eine Finite-State- Machine TBFl-FSM mit 502 bezeichnet (Transient Buffer 1 (206, RAM A) State Machine) für Kanal A und für Kanal B eine TBF2-FSM mit 503 bezeichnet (Transient Buffer 2 (205, RAM B) State Machine).
Zur Steuerung des Zugriffs der drei Finite-State-Machinen 501-503 im bevorzugten Ausführungsbeispiel dient eine Arbiter- Finite-State- Machine, die so genannte AFSM, die mit 500 bezeichnet ist. Die Daten (KD und/oder D) werden in einem durch ein Taktmittel, wie z.B. ein VCO (Voltage Controlled Oszillator), einen
Schwingquarz usw., generierten oder aus diesem angepassten Takt im Kommunikationsbaustein 100 übertragen. Der Takt T kann dabei im Baustein generiert werden oder von außen, z.B. als Bustakt, vorgegeben sein. Diese Arbiter- Finite- State- Machine AFSM 500 gibt abwechselnd einer der drei Finite-State-Machinen 501-503, insbesondere jeweils für eine Taktperiode T Zugriff auf den Bot-
Schaftsspeicher 300. D.h. die zur Verfügung stehende Zeit wird entsprechend den Zugriffsanforderungen der einzelnen Zustandsautomaten 501, 502, 503 auf diese anfordernden Zustandsautomaten aufgeteilt. Erfolgt eine Zugriffsanforderung von nur einer Finite-State- Machine, so erhält diese 100% der Zugriffszeit, also alle Takte T. Erfolgt eine Zugriffsanforderung von zwei Zustandsautomaten, erhält jede Finite-State- Machine 50% der Zugriffszeit. Erfolgt schließlich eine Zugriffsanforderung von drei Zustandsautomaten so erhält jede der Finite-State- Machinen 1/3 der Zugriffszeit. Dadurch wird die jeweils zur Verfügung stehende Bandbreite optimal genutzt.
Die erste Finite-State- Machine 501, also IOBF-FSM, führt bei Bedarf folgende Aktionen aus:
- Datentransfer vom Eingangspufferspeicher 201 zum ausgewählten Botschaftsobjekt im Botschaftsspeicher 300. - Datentransfer vom ausgewählten Botschaftsobjekt im Botschaftsspeicher 300 zum Ausgangspufferspeicher 202.
Die Zustandsmaschine 502 für Kanal A, also TBFl-FSM, führt folgende Aktionen aus: - Datentransfer vom ausgewählten Botschaftsobjekt im Botschaftsspeicher 300 zum Pufferspeicher 206 von Kanal A.
- Datentransfer vom Pufferspeicher 206 zum ausgewählten Botschaftsobjekt im Botschaftsspeicher 300.
- Suche nach dem passenden Botschaftsobjekt im Botschaftsspeicher 300, wo- bei bei Empfang das Botschaftsobjekt (Receive Buffer) zum Abspeichern einer auf Kanal A empfangenen Botschaft im Rahmen einer Akzeptanzfilterung gesucht wird und beim Senden das nächste auf Kanal A zu sendende Botschaftsobjekt (Transmit Buffer).
Analog dazu ist die Aktion von TBF2-FSM, also der Finite-State- Machine für Kanal B in Block 503. Diese führt den Datentransfer vom ausgewählten Botschaftsobjekt im Botschaftsspeicher 300 zum Pufferspeicher 205 von Kanal B aus und den Datentransfer vom Pufferspeicher 205 zum ausgewählten Bot- schaftsobjekt im Botschaftsspeicher 300. Auch die Suchfunktion ist analog zu TBFl-FSM nach einem passenden Botschaftsobjekt im Botschaftsspeicher 300, wobei bei Empfang das Botschaftsobjekt (Receive Buffer) zum Abspeichern einer auf Kanal B empfangenen Botschaft im Rahmen einer Akzeptanzfilterung gesucht wird und beim Senden die nächste auf Kanal B zu sendende Botschaft oder Botschaftsobjekt (Transmit Buffer).
In Figur 11 sind nun noch einmal die Abläufe und die Übertragungswege dargestellt. Die drei Zustandsmaschinen 501-503 steuern die jeweiligen Datenübertragungen zwischen den einzelnen Teilen. Dabei ist mit 102 wieder die Host-CPU dargestellt, mit 201 der Eingangspufferspeicher und mit 202 der Ausgangspufferspeicher. Mit 300 ist der Botschaftsspeicher dargestellt und die beiden Pufferspeicher für Kanal A und Kanal B mit 206 und 205. Die Schnittstellenelemente 207 und 208 sind ebenfalls dargestellt. Der erste Zustandsautomat IOBF-FSM, mit 501 bezeichnet steuert den Datentransfer ZlA und ZlB, also vom Ein- gangspufferspeicher 201 zum Botschaftsspeicher 300 und vom Botschaftsspeicher 300 zum Ausgangspufferspeicher 202. Die Datenübertragung erfolgt dabei über Datenbusse mit einer Wortbreite von beispielsweise 32 Bit wobei auch jede andere Bitzahl möglich ist. Gleiches gilt für die Übertragung Z2 zwischen dem Botschaftsspeicher und dem Pufferspeicher 206. Diese Datenübertragung wird durch TBFI-FSM, also die Zustandsmaschine 502 für Kanal A, gesteuert. Die
Übertragung Z3 zwischen Botschaftsspeicher 300 und Pufferspeicher 205 wird durch den Zustandsautomaten TBF2-FSM, also 503 gesteuert. Auch hier erfolgt der Datentransfer Ober Datenbusse mit einer beispielhaften Wordbreite von 32 Bit, wobei auch hier jede andere Bitzahl möglich ist. Normalerweise benötigt der Transfer eines kompletten Botschaftsobjektes über die genannten Übertra-
gungswege mehrere Taktperioden T. Daher erfolgt eine Aufteilung der Übertragungszeit bezogen auf die Taktperioden T durch den Arbiter, also die AFSM 500. In Figur 11 sind also die Datenpfade zwischen denen vom Message Handler 200 kontrollierten Speicherkomponenten dargestellt. Um die Datenintegrität der im Botschaftsspeicher 300 gespeicherten Botschaftsobjekte sicherzustellen, sollten vorteilhafterweise zur gleichen Zeit nur auf einem der dargestellten Pfade also ZlA und ZlB sowie Z2 und Z3 gleichzeitig Daten ausgetauscht werden.
In Figur 12 ist an einem Beispiel gezeigt, wie die zur Verfügung stehenden Sys- temtakte T vom Arbiter, also der AFSM 500, auf die drei anfordernden Zustandsautomaten aufgeteilt werden. In Phase 1 (I) erfolgen Zugriffsanforderungen von Zustandsautomat 501 und Zustandsautomat 502, d.h., dass die gesamte Zeit jeweils zur Hälfte auf die beiden anfordernden Zustandautomaten aufgeteilt wird. Bezogen auf die Taktperioden in Phase 1 (I) bedeutet dies, dass Zustandsautomat 501 in den Taktperioden Tl und T3 Zugriff erhält und Zustandsautomat 502 in den Taktperioden T2 und T4. In Phase 2 (II) erfolgt der Zugriff nur durch die Zustandsmaschine 501, sodass alle drei Taktperioden, also 100% der Zugriffszeit von T5 bis T7 auf IOBF-FSM entfällt. In Phase 3 (III) erfolgen Zugriffsanforderungen aller drei Zustandsautomaten 501 bis 503, sodass eine Drittelung der Gesamtzugriffszeit erfolgt. Der Arbiter AFSM 500 verteilt dann die Zugriffszeit beispielsweise so, dass in den Taktperioden T8 und TIl die Finit-State-Machine 501, in den Taktperioden T9 und T12 die Finite-State- Machine 502 und in den Taktperioden TlO und T13 die Finite-State- Machine 503 Zugriff erhält. In Phase 4 (IV) schließlich erfolgt der Zugriff durch zwei Zu- Standsautomaten, 502 und 503 auf den beiden Kanälen A und B des Kommunikationsbausteins 100, sodass eine Zugriffsverteilung der Taktperioden T14 und T16 an Finite-State- Machine 502 und in T15 und T17 an Finite-State- Machine 503 erfolgt.
Der Arbiterzustandsautomat AFSM 500 sorgt also dafür, dass falls mehr als eine der drei Zustandsmaschinen 501-503 eine Anforderung für einen Zugriff auf den Botschaftsspeicher 300 stellt, der Zugriff taktweise und abwechselnd auf die anfordernden Zustandsmaschinen 501-503 aufgeteilt wird. Diese Vorgehenswei- se stellt die Integrität der im Botschaftsspeicher 300 abgelegten Botschaftsobjekte, also die Datenintegrität, sicher. Will zum Beispiel die Host-CPU 102 über den Ausgangspufferspeicher 202 ein Botschaftsobjekt auslesen während gerade eine empfangene Botschaft in dieses Botschaftsobjekt geschrieben wird, so wird abhängig davon welche Anforderung zuerst gestartet wurde entweder der alte Stand oder der neue Stand ausgelesen, ohne dass die Zugriffe im Botschaftsobjekt im Botschaftsspeicher 300 selbst kollidieren.
Das beschriebene Verfahren ermöglicht der Host-CPU 102 im laufenden Betrieb jedes beliebige Botschaftsobjekt im Botschaftsspeicher 300 zu lesen oder zu schreiben, ohne dass das ausgewählte Botschaftsobjekt für die Dauer des Zugriffs der Host-CPU 102 von der Teilnahme am Datenaustausch auf beiden Kanälen des FlexRay Busses 101 gesperrt wäre (Buffer Locking). Gleichzeitig wird durch die taktweise Verschachtelung der Zugriffe die Integrität der im Botschaftsspeicher 300 abgelegten Daten sichergestellt und die Übertragungsge- schwindigkeit, auch durch Ausnutzung der vollen Bandbreite erhöht.
Damit der FlexRay- Kommunikationsbaustein 100 die Kommunikation in dem FlexRay- Netzwerk in optimaler Weise unterstützt, und um den FlexRay- Kommunikationsbaustein 100 auf eine für den Teilnehmer 102 bzw. die Host- CPU besonders ressourcensparende und ressourcenschonende Art und Weise an den Teilnehmer anbinden zu können, wird erfindungsgemäß eine besonders ausgestaltete Teilnehmerschnittstelle 204 vorgeschlagen, die im Detail in Figur 13 dargestellt ist. Die Schnittstelle 204 weist eine Anordnung 800 zur Zwischen- speicherung der zwischen dem FlexRay- Kommunikationsbaustein 100 und dem FlexRay-Teilnehmer 102 zu übertragenden Botschaften auf. Die Anordnung 800
umfasst mindestens einen Botschaftsspeicher 802, der eine erste Verbindung 804 zu dem FlexRay- Kommunikationsbaustein 100 und eine zweite Verbindung 806 zu dem Teilnehmer 102 aufweist. Der Botschaftsspeicher 802 der Speicher- Anordnung 800 ist vorzugsweise als ein dual-ported RAM ausgeführt. Er um- fasst einen Schreibbereich (W), in dem über die FlexRay-
Kommunikationsverbindung 101 zu übertragende Botschaften abgelegt sind, und einen Lesebereich (R), in dem von der FlexRay-Kommunikationsverbindung 101 empfangene Botschaften abgelegt sind. Der Botschaftsspeicher 802 ist mindestens so groß ausgebildet, dass der genug Speicherplatz zum Abspei- ehern sämtlicher Botschaften eines Buszyklus aufweist. Vorzugsweise hat der Speicher 802 genug Speicherplatz für 128 Buffer (maximale Größe eines Datenrahmens (sog. Frames)).
Außerdem weist die Teilnehmerschnittstelle 204 eine zweite Anordnung 808 auf, welche eine Instanz 810 (Arbiter ARB) zur Sicherstellung der Datenintegrität die Zugriffsreihenfolge auf den Botschaftsspeicher 802 der Teilnehmerschnittstelle 204 regelt und mindestens eine Zustandsmaschine 812 (State- Machine SM) umfasst. Mittels der State-Machine 812 werden für den Teilnehmer 102 bzw. die Host-CPU unsichtbar der Inhalt des Botschaftsspeichers 300 des FlexRay- Kommunikationsbausteins 100 in den DP RAM- Botschaftsspeicher 802 der Schnittstelle 204 übertragen. Die Host-CPU kann mit maximaler Geschwindigkeit direkt auf die gespiegelten Daten im DPRAM 802 zugreifen.
Über eine Verbindung 824, die bspw. als ein Bussystem ausgebildet ist, werden Daten, Adressen und Steuerungsdaten zwischen dem Kommunikationsbaustein
100 und dem Busarbiter 810 der Teilnehmerschnittstelle 204 ausgetauscht. Über eine Verbindung 826, die bspw. als ein Bussystem ausgebildet ist, werden Daten, Adressen und Steuerungsdaten zwischen dem Busarbiter 810 der Teilnehmerschnittstelle 204 und dem Teilnehmer 102 bzw. der Host-CPU ausgetauscht. Über die Verbindung 806, die bspw. als ein Bussystem ausgebildet ist, werden
Daten, Adressen und Steuerungsdaten zwischen der Speicheranordnung 800 der Teilnehmerschnittstelle 204 und dem Teilnehmer 102 bzw. der Host-CPU ausgetauscht. Zwischen dem Arbiter 810 und der State- Machine 812 werden Daten, Adressen und Steuerungsdaten über eine Verbindung 834 ausgetauscht, die als eine Bussystem ausgebildet sein kann. Über eine Verbindung 828 kann ein Interrupt an den Teilnehmer 102 bzw. die Host-CPU übertragen werden, sobald in dem Speicher 802 ein Buffer aus dem Botschaftsspeicher 300 des Kommunikationsbausteins 100 empfangen wurde (DPBuffer_received_lnt- Signal). Über die Verbindung 830 wird der Zustandsmaschine 812 der Schnitt- stelle 204 der Beginn eines neuen Buszyklus mitgeteilt (new_cycle-Signal). Über eine Verbindung 820 wird der Zustandsmaschine 812 der Schnittstelle 204 mitgeteilt, dass in dem Botschaftsspeicher 300 des Kommunikationsbausteins 100 ein neuer Buffer empfangen wurde (Buffer_received-Signal), und die Zustandsmaschine 812 veranlasst, diesen neuen Buffer in den Botschaftsspeicher 802 der Schnittstelle 204 zu übertragen. Schließlich erhält die Zustandsmaschine 812 über eine Verbindung 832 ein Taktsignal von dem Kommunikationsbaustein 100 zur Steuerung und Koordination ihrer Tätigkeit mit den übrigen Abläufen in dem Gesamtsystem 100, 101, 102, 204.
Dem Botschaftsspeicher 802 der Teilnehmerschnittstelle 204 sind Register zugeordnet, wobei vorzugsweise dem Schreibbereich W des Botschaftsspeichers 802 ein Schreibregister (DP/Statusregister W) 814 und dem Lesebereich R des Botschaftsspeichers 802 ein Leseregister (DP/Statusregister R) 816 zugeordnet ist. Der Status des Botschaftsspeichers 802 der Teilnehmerschnittstelle 204 wird über die Register 814, 816 von der Zustandsmaschine 812 an den FlexRay-
Kommunikationsbaustein 100 übermittelt. Die Größe der Statusregister 814, 816 richtet sich vorzugsweise nach der Größe des Botschaftsspeichers 802 bzw. nach der Anzahl der Botschaften, die darin zwischengespeichert werden können. Bei einer Größe des Speichers 802 von 128 Buffern haben die Register 814, 816 vorzugsweise eine Größe von 128 Bit, wobei jedem Bit der Register 814,
816 jeweils einem Buffer des Speichers 802 zugeordnet ist. Beim Lesen des Statusregisters werden die gelesenen Bits zurückgesetzt. Die Kennung, bspw. die Nummer, des zuletzt von der Zustandsmaschine 812 erfolgreich übertragenen Buffers (jeweils getrennt nach Lese- und Schreibspeicher) wird von der Zu- Standsmaschine 812 in einem weiteren Register 818, einem so genannten Schreib- Lese- Positionsregister der Teilnehmerschnittstelle 204, abgelegt.
Gesteuert von den beiden Dual- Port-Status- Registern (DP-Status) 814, 816 kann die Host-CPU 102 auch während eines Buszyklus an geeigneter Stelle Datenpakete empfangen und zur Versendung freigeben. Das heißt mit Hilfe der State- Machine 812 kann eine Optimierung bzw. beschränkte Vorverarbeitung der in dem Zwischenspeicher 802 abzulegenden Botschaften innerhalb eines Buszyklus vorgenommen werden, um den Zugriff auf die abgelegten Botschaften weiter zu beschleunigen. Die Vorverarbeitung der Botschaften ist vorzugs- weise auf Formalitäten und das Äußere der Botschaften, bspw. die Position, in der die Botschaften in dem Botschaftsspeicher 802 abgelegt werden, beschränkt. Eine Analyse des Inhalts der Botschaften und eine entsprechende inhaltsabhängige Vorverarbeitung findet vorzugsweise nicht statt. Die Host-CPU hat über die erfindungsgemäße Teilnehmerschnittstelle 204 einen wahlfreien Zugriff auf den Inhalt des Botschaftsspeichers 300 des FlexRay- Kommunikationsbausteins 100.
Das gesamte Vorgehen um das Ablegen von Botschaften in dem Botschaftsspeicher 802 und das Aufrufen von Botschaften aus dem Botschaftsspeicher 802 herum erfordert keine Wartezeiten bezüglich der Datenübertragung. Die Übertragungsgeschwindigkeit oder Übertragungsrate wird lediglich begrenzt durch die Leistung der DPRAM-Schnittstelle des Botschaftsspeichers 802. Eine zeitnahe Manipulation von Buffern ist möglich.
Zum Initiieren einer Datenübertragung von dem Botschaftsspeicher 802 (z.B. DP-RAM) der Teilnehmerschnittstelle 204 an den Botschaftsspeicher 300 (z.B. MRAM) des Kommunikationsbausteins 100 wird von der Host-CPU 102 ein Bit in dem Schreibregister (D P/Statusregister W) 814 gesetzt.
Für die von der Zustandsmaschine 812 an den Kommunikationsbaustein 100 zu übertragenden Buffer werden von der Host-CPU 102 entsprechende Kennungen in das Schreibregister (D P/Status/W- Register) 814 geschrieben, bspw. indem für die zu übertragenden Buffer entsprechende Bits gesetzt werden. Die Zustands- maschine 812 transferiert alle in den Schreibregistern 814 (z.B. durch Setzen eines Bits) markierten Buffer in den Botschaftsspeicher 300 des Kommunikationsbausteins 100.
Eine Datenübertragung von dem Botschaftsspeicher 300 (z.B. MRAM) des Kommunikationsbausteins 100 an den Botschaftsspeicher 802 (z.B. DP-RAM) der Teilnehmerschnittstelle 204 wird von dem Kommunikationsbaustein 100 durch ein Buffer/ received-Signal initiiert. Nachdem die Zustandsmaschine 812 dann den zu übertragenden Buffer von dem Kommunikationsbaustein 100 erfragt hat, überträgt sie ihn von dem Botschaftsspeicher 300 (z.B. MRAM) an den Botschaftsspeicher 802 (z.B. DP-RAM). Am Ende der Übertragung wird von der Zustandsmaschine 812 das entsprechende Bit im Leseregister 816 (D P/Statusregister R) gesetzt. Zusätzlich kann die Zustandsmaschine 812 am Ende der Übertragung noch ein Interrupt an die Host-CPU 102 auslösen.
Das Übertragen der von der Host-CPU 102 in den Botschaftsspeicher 802 der
Teilnehmerschnittstelle 204 geschriebenen Buffer erfolgt auf die gleiche Art und Weise wie das Lesen. Im Unterschied zum Lesen wird der zu sendende Buffer durch das Auswerten des Leseregisters 816 (D P/Status/R- Register) bestimmt. Die Bitnummer im Register 816 entspricht der Priorität bei der Übertragung. Die Zustandsmaschine 812 scannt die Bits des Registers 816 von unten nach oben.
Der korrespondierende Buffer des ersten zu "1" gesetzten Bits wird vom Botschaftsspeicher 802 der Teilnehmerschnittstelle 204 in den Botschaftsspeicher 300 des Kommunikationsbausteins 100 übertragen. Nach erfolgter Übertragung wird das zugehörige Bit im Leseregister 816 und die Buffernummer in das Schreib- Lese- Positionsregister (D P/R-pos- Register) 818 geschrieben. Dieser Vorgang wird kontinuierlich ausgeführt. Alle mit "1" markierten Buffer werden nach ihrer Priorität vom Botschaftsspeicher 802 in den Botschaftsspeicher 300 des Kommunikationsbausteins 100 übertragen.
Beim dem Ausführungsbeispiel aus Figur 13 sind der FlexRay-
Kommunikationsbaustein 100 und die erfindungsgemäße Teilnehmerschnittstelle 204 zwei separate Bauteile. Die State- Machine 812 für den Datentransfer zwischen dem Botschaftsspeicher 300 des Kommunikationsbausteins 100 und dem Botschaftsspeicher 802 der Teilnehmerschnittstelle 204 transferiert ohne Zutun der Host-CPU 102 die Buffer des Botschaftsspeichers 300 des Kommunikationsbausteins 100 in den Botschaftsspeicher 802 der Teilnehmerschnittstelle 204. Das DPRAM 802 ist auf der einen Seite direkt an die State- Machine 812 und auf der anderen Seite an die Host-CPU 102 angeschlossen. Beide Seiten können ohne Verzögerung auf das DPRAM 802 zugreifen. Der Status des DPRAM 802 wird über das D P/Status/R- Register 816 von der State-Machine 812 an die Host-CPU 102 übermittelt. Die von der State-Machine 812 an den Kommunikationsbaustein 100 zu übertragenden Buffer werden von der Host- CPU 102 in das D P/Status/W- Register 814 geschrieben. Nach dem Host-CPU- Schreibzugriff enthält das Register 814 das binäre Oder seines vorherigen In- halts und der geschriebenen Daten. Die State-Machine 812 transferiert alle im
D P/Status/W- Register 814 markierten Buffer in den Botschaftsspeicher 300 des FlexRay- Kommunikationsbausteins 100. Die Nummer des von der State- Machine 812 zuletzt erfolgreich übertragenen Buffers (jeweils getrennt nach R- und W- Buffer) wird von der State-Machine 812 im R/W-pos- Register 818 abge- legt. Der Busarbiter 810 erlaubt den synchronen Zugriff sowohl der State-
Machine 812 als auch der Host-CPU 102 auf die Register 814, 816 der Schnittstelle 204.
Die State- Machine 812 greift direkt (über den Arbiter 810) auf dem Botschafts- Speicher 300 zugeordnete Register des Kommunikationsbausteins 100 zu.
Nachdem der Kommunikationsbausteins 100 über ein Buffer/received Signal 820 einen von der Kommunikationsverbindung 101 neu empfangenen Buffer anzeigt, erfragt die State Machine 812 aktiv durch Zugriff auf die Register des Kommunikationsbausteins 100 die Buffernummer. Anschließend ermittelt die State- Machine 812 die Buffer- Attribute (Bufferadresse im Bufferspeicher 300 des Kommunikationsbausteins 100, Länge des Buffers, etc.) durch Auslesen der entsprechenden Register des Kommunikationsbausteins 100. Nachdem die notwendigen Transferdaten in der State-Machine 812 vorliegen, wird der Kommunikationsbaustein zum Sichtbarschalten (VI EW- Befehl) des Buffers im Trans- ferfenster des Kommunikationsbausteins 100 aufgefordert. Im letzten Schritt überträgt die State-Machine 812 automatisch den Bufferinhalt des Speichers 300 in den Botschaftsspeicher 802. Nach Abschluss der Bufferübertragung wird das entsprechende R-Bit im D P-Status- Register 816 gesetzt und die Buffernummer in das D P/R-pos- Register 818 geschrieben. Das Setzen des DP-Status- Register R-Bits kann abhängig von der Interruptmaske (DP-Status-l-Register 822 mit 128 Bit) einen Interrupt an die Host-CPU 102 auslösen, das über die Interrupt- Verbindung 828 an die Host-CPU 102 übermittelt wird. Dieser Vorgang wiederholt sich für jeden übertragenen Buffer. Selbstverständlich arbeitet das erfindungsgemäße Verfahren auch ohne Interrupt, so dass das I nterrup- Register 822 und die Interrupt- Verbindung 828 weggelassen werden können. Die Reihenfolge, in der die Buffer - unabhängig von der Reihenfolge, in der Buffer in dem Botschaftsspeicher 300 des Kommuniktionsbausteins 100 abgelegt sind - in dem Botschaftsspeicher 802 abgelegt werden, wird von dem Arbiter 810 bestimmt. Die Reihenfolge, in der die Buffer - unabhängig von der Reihenfolge, in der Buf- fer in dem Botschaftsspeicher 300 des Kommunikationsbausteins 100 abgelegt
sind - in dem Botschaftsspeicher 802 abgelegt werden, wird von der State- Machine 812 bestimmt und könnte bspw. durch die Host-CPU 102 konfiguriert werden.
Das Übertragen der von der Host-CPU 102 in das DPRAM 802 geschriebenen Buffer erfolgt auf die gleich Art und Weise wie das Lesen. Im Unterschied zum Lesen wird der zu sendende Buffer durch das Auswerten des DP/Status/W- Registers 814 bestimmt. Die Bitnummer im Register 814 entspricht der Priorität der Übertragung. Die State- Machine 812 scannt die Bits des Registers 814 von unten nach oben. Der korrespondierende Buffer des ersten zu "1" gesetzten Bits wird vom DPRAM 802 in den Botschaftsspeicher 300 des Kommunikationsbausteins 100 übertragen. Nach erfolgter Übertragung wird das zugehörige Bit im D P/Status/W- Register 814 und die Buffernummer in das D P/R-pos- Register 818 geschrieben. Dieser Vorgang wird kontinuierlich ausgeführt. Alle mit "1" markier- ten Buffer werden nach ihrer Priorität vom DPRAM 802 in den Botschaftsspeicher 300 des FlexRay- Kommunikationsbaustein 100 übertragen. Die Konfiguration und der Start und Stop der State-Machine erfolgt über das MDTSN-config- Register
In Figur 14 ist ein zweites Ausführungsbeispiel der erfindungsgemäßen Teilnehmerschnittstelle 204 dargestellt, die sich von der Ausführungsform aus Figur 13 insbesondere dadurch unterscheidet, dass die Schnittstelle 204 in den FlexRay- Kommunikationsbaustein 100 integriert ist. Beide Ausführungsbeispiele nutzen jedoch den Dual-Port-basierten Ansatz der Erfindung zur Zwischenspei- cherung der zwischen dem FlexRay- Kommunikationsbaustein 100 und FlexRay-
Teilnehmer 102 zu übertragenden Daten. Bei der Ausführungsform aus Figur 14 kann die Datenübertragung statt durch die eigene State-Machine 808 und den eigenen Arbiter 810 der Schnittstelle 204 (vgl. Figur 13) durch eine oder mehrere der State- Machines 500-503 des FlexRay- Kommunikationsbausteins und/oder den Botschaftsverwalter 200 koordiniert und gesteuert werden. Die erfindungs-
gemäße Schnittstelle 204 muss also nicht komplett autark ausgestaltet werden, sondern kann Teile des Kommunikationsbausteins 100 mit benutzen.
In Figur 15 ist ein Sequenzdiagramm für einen Datentransfer zwischen dem Botschaftsspeicher 300 des FlexRay- Kommunikationsbausteins 100 und dem Botschaftsspeicher 802 (z.B. DPRAM) der Teilnehmer-Schnittstelle 204 dargestellt. Die Steuerung des Botschaftsspeichers 300 des FlexRay- Kommunikationsbausteins 100 durch eine oder mehrere der State- Machines 500-503 ist mit 900 bezeichnet. Die Steuerung des Botschaftsspeichers 802 der Teilnehmer-Schnittstelle 204 durch eine oder mehrere der State- Machines 500- 503 und/oder die State-Machine 808 ist mit 902 bezeichnet. Die Steuerung des Status des Botschaftsspeichers 802 der Teilnehmer-Schnittstelle 204 durch eine oder mehrere der State- Machines 500-503 und/oder die State-Machine 808 ist mit 904 bezeichnet. Zunächst übermittelt die Steuerung 900 des Botschaftsspei- chers 300 ein Signal 906 an die Steuerung 902 des Botschaftsspeichers 802, wonach ein Buffer[x] von der Kommunikationsverbindung 101 in dem Botschaftsspeicher 300 empfangen wurde. Dann wird in dem Schritt 908 der Buf- fer[x] des Botschaftsspeichers 802 mit dem Inhalt des Buffers[x] aus dem Botschaftsspeicher 300 aktualisiert. Danach wird in einem Schritt 910 das DPRAM- Status- R- Bit[x] in Register 816 gesetzt und ein Interrupt generiert, falls DPRAM- Status-I-Bit[x]==l. Dann wird das Register DPRAM-Status-R-pos 818 mit x aktualisiert. Schließlich wird das Ende der Buffer- Übertragung mit einem Signal 912 an die Steuerung 902 gemeldet. Anschließend übermittelt die Steuerung 900 ein Signal 914 an die Steuerung 902, wonach ein neuer Buffer[y] in dem Botschaftsspeicher 300 empfangen wurde, und die Schritt, die für den Buffer[x] ausgeführt wurden, werden für den Buffer[y] ausgeführt. Dies wiederholt sich so lange bis alle Buffer eines Datenzyklus übertragen wurden.
In Figur 16 ist ein Sequenzdiagramm für einen Datentransfer zwischen dem Botschaftsspeicher 802 (z.B. DPRAM) der Teilnehmer-Schnittstelle 204 und
dem Botschaftsspeicher 300 des FlexRay- Kommunikationsbausteins 100 dargestellt. Das Schreib- Register W 814 des Botschaftsspeichers 802 der Teilnehmer-Schnittstelle 204 ist mit 920 bezeichnet. Die Steuerung des Botschaftsspeichers 802 der Teilnehmer-Schnittstelle 204 durch eine oder mehrere der State- Machines 500-503 und/oder die State- Machine 808 ist mit 922 bezeichnet. Zunächst wird in einem Schritt 924 geprüft, ob eines oder mehrere der Bits[0...127] des DPRAM-Status-W-Registers 814 ungleich Null ist. Anschließend wird in einem Schritt 926 das höchstpriore DPRAM-Status-W- Bit[z] ermittelt, bei dem das entsprechende Bit DPRAM-Status-W-Register[z] im Register 814 gesetzt ist, d.h. ungleich Null ist. Anschließend wird der Buffer[z] des Botschaftsspeichers 300 des FlexRay- Kommunikationsbausteins 100 mit dem Inhalt des Buffers[z] des Botschaftsspeichers 802 der Teilnehmerschnittstelle 204 aktualisiert. Außerdem wird das Register DPRAM- Status-W-pos 818 mit y aktualisiert. Schließlich wird die Position DPRAM- Status-W[z] im Register 814 zurückgesetzt, d.h. auf Null gesetzt.