-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft eine Teilnehmerstation für ein serielles Bussystem und ein Verfahren zur Kommunikation in einem seriellen Bussystem, bei dem jede Teilnehmerstation des Bussystems alle über einen Bus des Bussystems gesendeten Nachrichten empfängt.
-
Stand der Technik
-
Bussysteme für die Kommunikation zwischen Sensoren und Steuergeräten, beispielsweise in Fahrzeugen, sollen je nach der Anzahl an Funktionen einer technischen Anlage bzw. eines Fahrzeugs, die Übertragung einer großen Datenmenge ermöglichen. Beispiele für derartige Bussysteme sind ein CANbasiertes Bussystem, FlexRay, oder dergleichen.
-
Beispielsweise ist bei Fahrzeugen derzeit ein Bussystem in der Einführungsphase, in welchem Daten als Nachrichten im Standard ISO11898-1:2015 als CAN Protokoll-Spezifikation mit CAN FD übertragen werden. Die Nachrichten werden zwischen den Busteilnehmern des Bussystems, wie Sensor, Steuergerät, Geber, usw., übertragen. Hierfür wird die Nachricht auf den Bus in einem Rahmen gesendet, in dem zwischen zwei Kommunikationsphasen umgeschaltet wird. In der ersten Kommunikationsphase (Arbitration) wird ausgehandelt, welche der Teilnehmerstationen des Bussystems in der nachfolgenden zweiten Kommunikationsphase (Datenphase bzw. Senden der Nutzdaten) ihren Rahmen auf den Bus senden darf. CAN FD wird von den meisten Herstellern im ersten Schritt mit 500kbit/s Arbitrationsbitrate und 2 Mbit/s Datenbitrate im Fahrzeug eingesetzt. Es ist also bei der Übertragung auf dem Bus zwischen einer langsamen Betriebsart und einer schnellen Betriebsart hin und her zu schalten.
-
Um noch größere Datenraten in der zweiten Kommunikationsphase zu ermöglichen, wird derzeit ein Nachfolgebussystem für CAN FD entwickelt, das CAN XL genannt wird und derzeit bei der Organisation CAN in Automation (CiA) standardisiert wird. CAN XL soll neben dem reinen Datentransport über den CAN-Bus auch andere Funktionen unterstützen, wie funktionale Sicherheit (Safety), Datensicherheit (Security) und Dienstgüte (QoS = Quality of Service). Dies sind elementare Eigenschaften, die in einem autonom fahrenden Fahrzeug benötigt werden.
-
Unabhängig von der Art des Bussystems, muss in jedem Bussystem jede gesendete Nachricht über einen Bus an die Teilnehmerstation(en) gelangen, für welche die Nachricht bestimmt ist bzw. welche die in der Nachricht enthaltenen Daten verwendet. Jedoch benötigen manche Applikationen, welche die Teilnehmerstation ausführt, nicht die Daten aller Nachrichten.
-
Daher können die Teilnehmerstation(en) ein Kommunikationsmodul verwenden, welches an eine Applikation der Teilnehmerstation nur die vom Bus empfangenen Nachrichten bzw. deren Daten weitergibt, die auch in der Applikation verwendet werden. Das Kommunikationsmodul kann anhand eines numerischen Identifizierers der Nachrichten unterscheiden, welche Nachricht weiterzugeben ist und welche nicht. Dadurch führt das Kommunikationsmodul eine Akzeptanz-Filterung für die Nachrichten aus.
-
Bei einer derartigen Akzeptanz-Filterung kann das Kommunikationsmodul Listen mit Identifizierern verwenden, die bestimmen, welche Nachrichten das Kommunikationsmodul an die Applikation akzeptieren und daher durchlassen soll. Dabei ist es möglich, dass das Kommunikationsmodul Teile der Identifizierer für die Filterung ausblendet, so dass jeder Listeneintrag für eine Gruppe von Identifizierern stehen kann. Alternativ kann die Filterung Listen von Identifizierern verwenden, die nicht akzeptiert, also gesperrt werden sollen. Diese Akzeptanz- und/oder Sperr-Listen sind per Software konfigurierbar.
-
Problematisch ist, wenn eine Applikation Nachrichten aus einem breiten Spektrum von Identifizierern verwendet. Insbesondere in diesem Fall ist es möglich, dass die Filter-Möglichkeiten des Hardware-Kommunikations-Moduls nicht ausreichen, alle notwendigen Nachrichten durchzulassen und gleichzeitig alle überflüssigen Nachrichten zu sperren. In einem solchen Fall muss die Applikations-Software für die restliche Akzeptanz-Filterung Rechenleistung aufwenden. Dadurch kann die Applikation gegebenenfalls nicht mehr die Schnelligkeit sicherstellen, die für einen Betrieb der Applikation gefordert ist.
-
Offenbarung der Erfindung
-
Daher ist es Aufgabe der vorliegenden Erfindung, eine Teilnehmerstation für ein serielles Bussystem und ein Verfahren zur Kommunikation in einem seriellen Bussystem bereitzustellen, welche die zuvor genannten Probleme lösen. Insbesondere sollen eine Teilnehmerstation für ein serielles Bussystem und ein Verfahren zur Kommunikation in einem seriellen Bussystem bereitgestellt werden, bei welchen auch eine größere Anzahl von unterschiedlichen Nachrichten ausschließlich in einem Kommunikationsmodul der Teilnehmerstation in Bezug auf Akzeptanz filterbar sind, ohne dass eine Applikations-Software der Teilnehmerstation Rechenleistung für die Akzeptanz-Filterung aufwenden muss.
-
Die Aufgabe wird durch eine Teilnehmerstation für ein serielles Bussystem mit den Merkmalen von Anspruch 1 gelöst. Die Teilnehmerstation hat eine Applikation zur Ausführung einer Aufgabe, eine Sende-/Empfangseinrichtung zum seriellen Empfangen einer Nachricht in Form eines Rahmens von einem Bus des Bussystems, über den Teilnehmerstationen des Bussystem miteinander Nachrichten austauschen, und ein Filtermodul zum Filtern des empfangenen Rahmens, wobei das Filtermodul zum Filtern ausgestaltet ist, mindestens zwei verschiedene Segmente des Rahmens separat zu prüfen, um zu bestimmen, ob der empfangene Rahmen an die Applikation weiterzuleiten ist oder nicht.
-
Die Ausgestaltung der Teilnehmerstation ermöglicht, dass ein Kommunikationsmodul mehr als nur einen einzelnen numerischen Identifizierer einer vom Bus empfangenen Nachricht prüfen kann.
-
Außerdem stellt die Teilnehmerstation durch die Trennung von Filteranweisungen und Referenzwerten sicher, dass die Referenzwerte für mehr als eine Filteranweisung wiederverwendet werden. Dadurch kann Speicherplatz eingespart werden. In Folge dessen sinken die Kosten für die Hardware der Teilnehmerstation.
-
Mit der Teilnehmerstation ist es insbesondere in einem CAN-basierten Bussystem möglich, in einer ersten Kommunikationsphase eine von CAN bekannte Arbitration beizubehalten und dennoch die Übertragungsrate gegenüber CAN oder CAN FD nochmals beträchtlich zu steigern.
-
Das von der Teilnehmerstation durchgeführte Verfahren kann auch zum Einsatz kommen, wenn in dem Bussystem auch mindestens eine CAN-Teilnehmerstation und/oder mindestens eine CAN FD Teilnehmerstation vorhanden ist, die Nachrichten nach dem CAN-Protokoll und/oder CAN FD Protokoll senden.
-
Vorteilhafte weitere Ausgestaltungen der Teilnehmerstation sind in den abhängigen Ansprüchen angegeben.
-
Möglicherweise ist das Filtermodul ausgestaltet, die mindestens zwei verschiedenen Segmente des Rahmens anhand von Filteranweisungen im Vergleich zu Referenzdaten zu prüfen, wobei das Filtermodul ausgestaltet ist, die Referenzdaten für mehr als eine Filteranweisung wiederzuverwenden.
-
In einer speziellen Ausgestaltung hat das Filtermodul einen ersten Speicherblock zum Speichern von Filteranweisungen zum Filtern der mindestens zwei verschiedenen Segmente des empfangenen Rahmens, einen zweiten Speicherblock zum Speichern von Referenzdaten zum Vergleich mit mindestens einem der zwei verschiedenen Segmente des empfangenen Rahmens, und einen Prüfblock zum Prüfen der Filteranweisungen im Hinblick auf die Referenzdaten, um zu bestimmen, ob der empfangene Rahmen an die Applikation weiterzuleiten ist oder nicht.
-
Die Filteranweisungen können definieren, welches Segment des empfangenen Rahmens mit welchen Referenzdaten zu vergleichen ist.
-
Die Filteranweisungen können definieren, wie das Vergleichsergebnis logisch zu einem Gesamtergebnis zu verknüpfen ist.
-
Denkbar ist, dass eine der Filteranweisungen mindestens eine erste Anweisung aufweist, die angibt, welcher empfangene Rahmen zu akzeptieren ist, und mindestens eine zweite Anweisung aufweist, die angibt, was mit einem akzeptierten Rahmen auszuführen ist. Hierbei kann die mindestens eine zweite Anweisung angeben, in welchem Speicherbereich der empfangene und akzeptierte Rahmen zu speichern ist. Zusätzlich oder alternativ kann die mindestens eine zweite Anweisung angeben, dass und wie der empfangene Rahmen zu markieren ist.
-
Optional kann das Filtermodul zudem ausgestaltet sein, zu einem empfangenen und akzeptierten Rahmen vorbestimmte Informationen mit Angaben zu der erfolgten Filterung hinzuzufügen.
-
Denkbar ist, dass die Referenzdaten einen Referenzwert aufweisen, der zum Vergleich mit mindestens einem der Segmente vorgesehen ist, und eine Maske aufweisen, mit welcher nach einem bitweisen Vergleich zwischen Referenzwert und dem Segment das Vergleichsergebnis bitweise maskiert, wobei der Referenzwert und die Maske jeweils dieselbe Bitbreite wie das Segment haben.
-
Möglicherweise haben alle Segmente dieselbe Bitbreite.
-
In einer Ausgestaltung kann mindestens eines der Segmente eine andere Bitbreite als mindestens ein anderes Segment haben.
-
Möglich ist, dass der für die Nachricht gebildete Rahmen kompatibel zu CAN FD aufgebaut ist, wobei in der ersten Kommunikationsphase ausgehandelt wird, welche der Teilnehmerstationen des Bussystems in der nachfolgenden zweiten Kommunikationsphase einen zumindest zeitweise exklusiven, kollisionsfreien Zugriff auf den Bus bekommt.
-
Die zuvor beschriebene Teilnehmerstation kann Teil eines Bussystems sein, das zudem einen Bus und mindestens zwei Teilnehmerstationen umfasst, welche über den Bus derart miteinander verbunden sind, dass sie seriell miteinander kommunizieren können. Hierbei ist mindestens eine der mindestens zwei Teilnehmerstationen eine zuvor beschriebene Teilnehmerstation.
-
Die zuvor genannte Aufgabe wird zudem durch ein Verfahren zur Kommunikation in einem seriellen Bussystem nach Anspruch 14 gelöst. Das Verfahren wird mit einer Teilnehmerstation des Bussystems ausgeführt, die eine Applikation zur Ausführung einer Steueraufgabe und eine Sende-/Empfangseinrichtung aufweist, wobei das Verfahren die Schritte aufweist, seriell Empfangen, mit der Sende-/Empfangseinrichtung, einer Nachricht in Form eines Rahmens von einem Bus des Bussystems, über den Teilnehmerstationen des Bussystem miteinander Nachrichten austauschen, Filtern, mit einem Filtermodul, des empfangenen Rahmens, wobei das Filtermodul bei dem Schritt des Filterns mindestens zwei verschiedene Segmente des Rahmens separat prüft, um zu bestimmen, ob der empfangene Rahmen an die Applikation weiterzuleiten ist oder nicht.
-
Das Verfahren bietet dieselben Vorteile, wie sie zuvor in Bezug auf die Teilnehmerstation genannt sind.
-
Weitere mögliche Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Merkmale oder Ausführungsformen. Dabei wird der Fachmann auch Einzelaspekte als Verbesserungen oder Ergänzungen zu der jeweiligen Grundform der Erfindung hinzufügen.
-
Figurenliste
-
Nachfolgend ist die Erfindung unter Bezugnahme auf die beiliegende Zeichnung und anhand von Ausführungsbeispielen näher beschrieben. Es zeigen:
- 1 ein Blockschaltbild eines Bussystems gemäß einem ersten Ausführungsbeispiel;
- 2 ein Schaubild zur Veranschaulichung des Aufbaus einer Nachricht, die von einer Teilnehmerstation des Bussystems gemäß dem ersten Ausführungsbeispiel gesendet werden kann;
- 3 ein Blockschaltbild eines Filtermoduls der Teilnehmerstation des Bussystems gemäß dem ersten Ausführungsbeispiel; und
- 4 ein Flussdiagramm eines Verfahrens, das von dem Filtermodul beim Empfang einer Nachricht von einem Bus des Bussystems gemäß einem ersten Ausführungsbeispiel ausgeführt wird.
-
In den Figuren sind gleiche oder funktionsgleiche Elemente, sofern nichts anderes angegeben ist, mit denselben Bezugszeichen versehen.
-
Beschreibung der Ausführungsbeispiele
-
1 zeigt als Beispiel ein Bussystem 1, das insbesondere grundlegend für ein CAN-Bussystem, ein CAN FD-Bussystem, ein CAN XL-Bussystem, und/oder Abwandlungen davon ausgestaltet ist, wie nachfolgend beschrieben. Das Bussystem kann jedoch alternativ für FlexRay oder ein beliebiges anderes serielles Bussystem ausgestaltet sein.
-
In 1 hat das Bussystem 1 eine Vielzahl von Teilnehmerstationen 10, 20, 30, die jeweils an einen Bus 40 mit einer ersten Busader 41 und einer zweiten Busader 42 angeschlossen sind. Die Busadern 41, 42 können bei einem CAN-basierten Bussystem auch CAN_H und CAN_L oder CAN-XL_H und CAN-XL_L genannt werden und dienen zur elektrischen Signalübertragung nach Einkopplung der jeweiligen Pegel für ein Signal im Sendezustand. Bei einem CAN-basierten Bussystem werden zumindest zeitweise dominante Pegel eingekoppelt bzw. rezessive Pegel erzeugt, um ein Signal im Sendezustand über den Bus 40 zu senden.
-
Über den Bus 40 sind Nachrichten 45, 46 in der Form von Signalen zwischen den einzelnen Teilnehmerstationen 10, 20, 30 seriell übertragbar. Tritt bei der Kommunikation auf dem Bus 40 ein Fehler auf, wie durch den gezackten schwarzen Blockpfeil in 1 dargestellt, kann optional ein Fehlerrahmen 47 (Error Flag) gesendet werden.
-
Das Bussystem 1 kann in einem Fahrzeug, insbesondere einem Kraftfahrzeug, einem Flugzeug, usw., oder im Krankenhaus usw. Verwendung finden. Die Teilnehmerstationen 10, 20, 30 sind beispielsweise Steuergeräte, Sensoren, Anzeigevorrichtungen, usw. eines Kraftfahrzeugs.
-
Wie in 1 gezeigt, hat die Teilnehmerstation 10 eine Applikation 11 und ein Kommunikationsmodul 15. Das Kommunikationsmodul 15 hat eine Kommunikationssteuereinrichtung 16, eine Sende-/Empfangseinrichtung 17 und ein Filtermodul 18. Das Filtermodul 18 ist in der Kommunikationssteuereinrichtung 16 vorgesehen.
-
Die Teilnehmerstation 20 hat eine Applikation 21 und ein Kommunikationsmodul 25. Das Kommunikationsmodul 25 hat eine Kommunikationssteuereinrichtung 26, eine Sende-/Empfangseinrichtung 27 und optional ein Filtermodul 28. Das Filtermodul 28 ist in der Sende-/Empfangseinrichtung 27 vorgesehen.
-
Die Teilnehmerstation 30 hat eine Applikation 31 und ein Kommunikationsmodul 35. Das Kommunikationsmodul 35 hat eine Kommunikationssteuereinrichtung 36, eine Sende-/Empfangseinrichtung 37 und ein Filtermodul 38. Das Filtermodul 28 ist separat von der Kommunikationssteuereinrichtung 36 und der Sende-/Empfangseinrichtung 27 in dem Kommunikationsmodul 35 vorgesehen.
-
Die Sende-/Empfangseinrichtungen 17, 27, 37 der Teilnehmerstationen 10, 20, 30 sind jeweils direkt an den Bus 40 angeschlossen, auch wenn dies in 1 nicht veranschaulicht ist.
-
Die Applikation 11 kann eine Software sein, die von einem Mikrocontroller der Teilnehmerstation 10 ausführbar ist. Die Applikation 11 kann mindestens ein Computerprogramm aufweisen. Ist die Teilnehmerstation 10 beispielsweise eine Steuereinrichtung für einen Scheibenwischer, so kann die Applikation 11 eine Software zum Steuern der Bewegung des Scheibenwischers sein. Die Software kann beispielsweise die Daten eines Regensensors und/oder eines Geschwindigkeitssensors verwenden, um die Bewegung des Scheibenwischers automatisch zu steuern. Der Regensensor und/oder der Geschwindigkeitssensor können Teilnehmerstationen des Bussystems 1 sein und ihre Daten über den Bus 40 senden. Ganz allgemein führt die Applikation 11 eine Aufgabe 13, insbesondere Steueraufgabe, aus, die von der Teilnehmerstation 10 auszuführen ist. Die Aufgabe 13 kann eine Bewegung mindestens eines Teils hervorrufen, die mechanisch und/oder elektrisch und/oder pneumatisch und/oder hydraulisch angetrieben sein kann. Alternativ oder zusätzlich kann die Aufgabe 13 eine Berechnung und/oder Vergleich und/oder eine Erfassung von Daten umfassen.
-
Zudem kann die Applikation 21 eine Software sein, die von einem Mikrocontroller der Teilnehmerstation 20 ausführbar ist. Die Applikation 11 führt eine Aufgabe 23 aus, die von der Teilnehmerstation 20 auszuführen ist. Zudem kann die Applikation 31 eine Software sein, die von einem Mikrocontroller der Teilnehmerstation 20 ausführbar ist. Die Applikation 31 führt eine Aufgabe 33 aus, die von der Teilnehmerstation 30 auszuführen ist. Für die Applikationen 23, 33 gilt dasselbe, wie zuvor für die Applikation 11 beschrieben.
-
Die Kommunikationssteuereinrichtungen 16, 26, 36 dienen jeweils zur Steuerung einer Kommunikation der jeweiligen Teilnehmerstation 10, 20, 30 über den Bus 40 mit mindestens einer anderen Teilnehmerstation der Teilnehmerstationen 10, 20, 30, die an den Bus 40 angeschlossen sind. Dabei werden die Nachrichten 45, 46 zwischen den Teilnehmerstation 10, 20, 30, insbesondere ihren Applikationen 11, 21, 31, über den Bus 40 ausgetauscht.
-
Die Kommunikationssteuereinrichtungen 16, 36 erstellen und lesen erste Nachrichten 45, die beispielsweise modifizierte CAN Nachrichten 45 sind. Hierbei sind die modifizierten CAN Nachrichten 45 auf der Grundlage eines CAN XL-Formats aufgebaut, das in Bezug auf 2 detaillierter beschrieben ist. Die Kommunikationssteuereinrichtungen 16, 36 können zudem ausgeführt sein, um je nach Bedarf eine CAN XL-Nachricht 45 oder eine CAN FD-Nachricht 46 für die Sende-/Empfangseinrichtung 37 bereitzustellen oder von dieser zu empfangen. Die Kommunikationssteuereinrichtungen 16, 36 erstellen und lesen also eine erste Nachricht 45 oder zweite Nachricht 46, wobei sich die erste und zweite Nachricht 45, 46 durch ihren Datenübertragungsstandard unterscheiden, nämlich in diesem Fall CAN XL oder CAN FD.
-
Die Kommunikationssteuereinrichtung 26 kann wie ein herkömmlicher CAN-Controller nach ISO 11898-1:2015 ausgeführt sein, d.h. wie ein CAN FD toleranter Classical CAN-Controller oder ein CAN FD Controller. Die Kommunikationssteuereinrichtung 26 erstellt und liest zweite Nachrichten 46, beispielsweise CAN FD-Nachrichten 46. Bei den CAN FD-Nachrichten 46 kann eine Anzahl von 0 bis zu 64 Datenbytes umfasst sein, die noch dazu mit einer deutlich schnelleren Datenrate als bei einer Classical CAN-Nachricht übertragen werden. Insbesondere ist die Kommunikationssteuereinrichtung 26 wie ein herkömmlicher CAN FD-Controller ausgeführt.
-
Die Sende-/Empfangseinrichtung 27 kann wie ein herkömmlicher CAN Transceiver nach ISO 11898-1:2015 oder CAN FD Transceiver ausgeführt sein. Die Sende-/Empfangseinrichtungen 17, 37 können ausgeführt sein, um je nach Bedarf Nachrichten 45 gemäß dem CAN XL-Format oder Nachrichten 46 gemäß dem derzeitigen CAN FD-Format für die zugehörige Kommunikationssteuereinrichtung 16, 36 bereitzustellen oder von dieser zu empfangen.
-
Mit den beiden Teilnehmerstationen 10, 30 ist eine Bildung und dann Übertragung von Nachrichten 45 mit dem CAN XL Format sowie der Empfang solcher Nachrichten 45 realisierbar.
-
2 zeigt für die Nachricht 45 einen Rahmen 450, wie er von der Sende-/Empfangseinrichtung 17 über der Zeit t seriell von dem Bus 40 empfangen wird und an die Kommunikationssteuereinrichtung 16 bereitgestellt werden kann.
-
Der Rahmen 450 kann bei einem CAN basierten Bussystem ein CAN oder CAN FD-Rahmen oder ein CAN XL-Rahmen sein. Der CAN XL-Rahmen kann in dem Bussystem mit im Vergleich zu CAN oder CAN FD gesteigerter Netto-Datenübertragungsrate, insbesondere auf etwa 10 Megabit pro Sekunde, übertragen werden. Zudem kann die Größe der Nutzdaten pro CAN XL Rahmen insbesondere etwa 2kbyte oder einen beliebigen anderen Wert haben, beispielsweise zwischen 1 Byte und 2 kbyte haben. Hierbei erstellt die Kommunikationssteuereinrichtung 16 einen CAN XL Rahmen bei dem vorliegenden Ausführungsbeispiel beispielsweise als kompatibel mit CAN FD. Dasselbe gilt analog für die Kommunikationssteuereinrichtung 36 und die Sende-/Empfangseinrichtung 37 der Teilnehmerstation 30.
-
Gemäß 2 ist der seriell empfangene Rahmen 450 über der Zeit t in unterschiedliche Segmente SG1, SG2, SG3, SG4 bis SGn-1, SGn unterteilt. Die Segmente SG1 bis SGn können unterschiedlichen Kommunikationsphasen 451, 452 zugeordnet sein, nämlich bei CAN einer Arbitrationsphase 451 und einer darauf folgenden Datenphase 452. Das Segment SG1 wird zuerst empfangen, dann das Segment SG2 und so weiter.
-
Bei dem Beispiel von 2 bildet das Segment SG1 ein Arbitrationsfeld mit einem Identifizierer (ID). Das Segment SG2 ist ein Steuerfeld des Rahmens 450. Die Segmente SG3, SG4 bilden jeweils einen Teil des Datenfelds des Rahmens 450. Das Datenfeld endet im Segment SGn-1.
-
Alternativ bilden beispielsweise die Segmente SG1, SG2 ein Arbitrationsfeld mit einem Identifizierer (ID). Die Segmente SG3, SG4 bilden ein Steuerfeld. Ein Datenfeld des Rahmens 450 beginnt anschließend, also mit einem Segment SG5, und endet im Segment SGn-1. Es sind beliebige andere Einteilungen der Segmente SG1 bis SGn möglich.
-
In dem Segment SGn kann ein Prüfsummenfeld sowie ein Rahmenabschlussfeld einschließlich einem Feld für eine Umschaltung zwischen den Kommunikationsphasen 452, 451 und ein Rahmenendefeld vorhanden sein. Die Segmente SG1 bis SGn sind bei dem vorliegenden Ausführungsbeispiel jeweils gleich lang, wie bei dem Beispiel von 2 gezeigt.
-
In der Arbitrationsphase 451 wird mit Hilfe des Identifizierers (ID) bitweise zwischen den Teilnehmerstationen 10, 20, 30 ausgehandelt, welche Teilnehmerstation 10, 20, 30 die Nachricht 45, 46 mit der höchsten Priorität senden möchte und daher für die nächste Zeit zum Senden in der anschließenden Datenphase 452 einen exklusiven Zugriff auf den Bus 40 des Bussystems 1 bekommt. In der Arbitrationsphase 451 wird ein Physical Layer wie bei CAN und CAN-FD verwendet. Der Physical Layer entspricht der Bitübertragungsschicht oder Schicht 1 des bekannten OSl-Modells (Open Systems Interconnection Modell).
-
Ein wichtiger Punkt während der Phase 451 in einem CAN-basierten Bussystem ist, dass das bekannte CSMA/CR-Verfahren Verwendung findet, welches gleichzeitigen Zugriff der Teilnehmerstationen 10, 20, 30 auf den Bus 40 erlaubt, ohne dass die höher priorisierte Nachricht 45, 46 zerstört wird. Dadurch können dem Bussystem 1 relativ einfach weitere Bus-Teilnehmerstationen 10, 20, 30 hinzugefügt werden, was sehr vorteilhaft ist.
-
Das CSMA/CR-Verfahren hat zur Folge, dass es sogenannte rezessive Zustände auf dem Bus 40 geben muss, welche von anderen Teilnehmerstationen 10, 20, 30 mit dominanten Zuständen auf dem Bus 40 überschrieben werden können. Im rezessiven Zustand herrschen an der einzelnen Teilnehmerstation 10, 20, 30 hochohmige Verhältnisse, was in Kombination mit den Parasiten der Busbeschaltung längere Zeitkonstanten zur Folge hat.
-
Sind CAN XL und CAN FD kompatibel, sind die Rahmenformate von CAN FD und CAN XL bis zum res-Bit bzw. XLF-Bit gleich. Hierbei wird das von CAN FD bekannte res-Bit, das nachfolgend XLF-Bit genannt ist, für die Umschaltung von dem CAN FD Format zu dem CAN XL Format genutzt. Ein Empfänger erkennt erst bei dem res-Bit, in welchem Format der Rahmen 450 gesendet wird. Eine CAN XL Teilnehmerstation, also hier die Teilnehmerstationen 10, 30, unterstützt auch CAN FD.
-
In der Datenphase 452 werden neben einem Teil des Steuerfelds die Nutzdaten des CAN-XL-Rahmens 450 bzw. der Nachricht 45 aus dem Datenfeld sowie ein Prüfsummenfeld gesendet. Danach folgt ein Feld, das zur Umschaltung von der Datenphase 452 zurück zur Arbitrationsphase 451 dient, wie bereits zuvor erwähnt.
-
Ein Sender der Nachricht 45 beginnt ein Senden von Bits der Datenphase 452 auf den Bus 40 erst, wenn die Teilnehmerstation 10 als der Sender die Arbitration gewonnen hat und die Teilnehmerstation 10 als Sender damit zum Senden einen exklusiven Zugriff auf den Bus 40 des Bussystems 1 hat.
-
Wie in 3 dargestellt, wertet das Filtermodul 18 der Teilnehmerstation 10 den Rahmen 450 aus. Dabei verwendet das Filtermodul 18 die zuvor beschriebenen Segmente SG1 bis SGn des Rahmens 450. Das Filtermodul 18 kann die Länge der einzelnen Segmente SG1 bis SGn festlegen. Zudem kann das Filtermodul 18 festlegen, wie viele der Segmente SG1 bis SGn gemeinsam ausgewertet werden. Zudem kann das Filtermodul 18 festlegen, welche der Segmente SG1 bis SGn gemeinsam ausgewertet werden. Dabei ist es möglich, dass die gemeinsam ausgewerteten Segmente der Segmente SG1 bis SGn in dem Rahmen 450 direkt aufeinander folgen oder dass zwischen den gemeinsam ausgewerteten Segmenten SG1 bis SGn mindestens ein anderes Segment der Segmente SG1 bis SGn vorhanden ist. Außerdem ist es möglich, dass mindestens ein Segment der Segmente SG1 bis SGn mehrfach ausgewertet wird, um Segment zu verifizieren. In einem solchen Fall wird ein Segment nacheinander mit mehr als einem Referenzwert verglichen und ausgewertet. Somit könnte insbesondere ein Segment mit vier Referenzwerten zum Verifizieren ausgewertet werden. Alternativ oder zusätzlich werden vier Segmente mit je einem Referenzwert zum Verifizieren ausgewertet. Bei beiden genannten speziellen Beispielen werden insgesamt bis zu vier Verifikationen durchgeführt. Selbstverständlich sind andere Beispiele für eine mehrfache Auswertung mindestens eines Segments möglich, um das Segment zu verifizieren.
-
Dem Filtermodul 18 stehen für die Filterung die ersten Segmente SG1 bis SGn des Rahmens 450 zur Verfügung. Wie zuvor beschrieben, sind dies beispielsweise bei einem CAN-Rahmen 450 der Rahmenkopf (Header), der den Identifizierer und das Nachrichtenformat enthält, sowie der Anfang des Datenfeldes.
-
Gemäß 3 hat das Filtermodul 18 einen ersten Speicherblock 181, einen zweiten Speicherblock 182, einen Prüfblock 183, einen Auswahlblock 184 und einen Ergebnisblock 185. In dem ersten Speicherblock 181 ist eine Vielzahl von Filteranweisungen 1811 bis 1815 gespeichert. In dem zweiten Speicherblock 182 ist eine Vielzahl von Referenzdaten 1821 bis 1822 gespeichert.
-
Die Referenzdaten 1821 bis 1822 sind in separaten Listen vorgesehen. Jede dieser Listen kann von jeder Filteranweisung 1811 bis 1815 verwendet werden. Die Referenzdaten 1821 bis 1822 können jeweils beispielsweise einen 32-Bit Referenzwert und eine 32-Bit Maske haben. Somit können die Referenzdaten 1821 bis 1822 jeweils zweiteilig sein, wie in 3 mit gestrichelten Linien dargestellt. Der Referenzwert hat die gleiche Bitanzahl wie die Maske.
-
Filteranweisungen 1811 bis 1815 definieren, welche Informationen einer Nachricht 45 bzw. dessen Rahmen 450 der Prüfblock 183 mit welchen Referenzdaten 1821 bis 1822 zu vergleichen hat. Zusätzlich oder alternativ definieren die Filteranweisungen 1811 bis 1815, wie die von dem Prüfblock 183 ermittelten Vergleichsergebnisse von dem Ergebnisblock 185 logisch zu einem Gesamtergebnis verknüpft werden oder zu verknüpfen sind. Der Auswahlblock 184 wählt die Vielzahl von Referenzdaten 1821 bis 1822 für den Prüfblock anhand der Filteranweisungen 1811 bis 1815 aus.
-
Das Filterverfahren des Filtermoduls 18 trennt Filteranweisungen 1811 bis 1815 von den Referenzdaten 1821 bis 1822, insbesondere ihren Referenzwerten.
-
Wie in 3 gezeigt, hat jede der Filteranweisungen 1811 bis 1815 zwei Anweisungsteile, wie in 3 mit gestrichelten Linien dargestellt. Ein erster Anweisungsteil der jeweiligen Filteranweisung 1811 bis 1815 enthält Angaben zu der Akzeptanzprüfung des Rahmens 450, der von dem Prüfblock durchzuführen ist. Ein zweiter Anweisungsteil der jeweiligen Filteranweisung 1811 bis 1815 enthält Angaben für die Verarbeitung eines akzeptierten Rahmens 450. Generell gilt:
- Eine Filteranweisung, beispielsweise die Filteranweisung 1811, kann in ihrem ersten Teil den Prüfblock 183 anweisen, mehrere Segmente SG1 bis SGn des Rahmens 450 bzw. der Nachricht 45 zu prüfen.
-
Eine Filteranweisung, beispielsweise die Filteranweisung 1812, definiert in ihrem ersten Teil, welche Segmente der Segmente SG1 bis SGn in dem Prüfblock 183 mit welchen der Referenzdaten 1821, 1822 zu vergleichen sind und dabei verifiziert werden.
-
Eine Filteranweisung, beispielsweise die Filteranweisung 1813, kann in ihrem ersten Teil anweisen, dass mehrere solcher Vergleiche, welche der Prüfblock 183 ausgeführt hat, logisch miteinander kombiniert werden. Die Kombination kann ebenfalls in dem Prüfblock 183 ausgeführt werden.
-
Eine Filteranweisung enthält in ihrem zweiten Teil Anweisungen, die ausgeführt werden, wenn der Rahmen 450 bzw. die Nachricht 45 akzeptiert wurde. Beispielsweise kann die Filteranweisung 1811 in ihrem zweiten Teil eine Anweisung enthalten, dass der geprüfte Rahmen 450 bzw. die Nachricht 45 in einen vorbestimmten Speicherbereich 1851 oder 1852 in dem Ergebnisblock 185 zu speichern ist. Diese Anweisung kann für einen akzeptierten und/oder einen nicht-akzeptierten Rahmen 450 bzw. Nachricht 45 gelten. Gemäß einem anderen Beispiel kann die Filteranweisung 1812 in ihrem zweiten Teil eine Anweisung zum Markieren des geprüften Rahmens 450 bzw. der Nachricht 45 haben. Die Markierung kann insbesondere eine hohe Priorität des geprüften Rahmens 450 bzw. der Nachricht 45 angeben oder bedeuten. Die Markierung kann insbesondere angeben, dass der geprüfte Rahmen 450 bzw. die Nachricht 45 ein Rahmen 450 bzw. eine Nachricht 45 ist, die auf einer Sperrliste gelistet ist, die auch schwarze Liste (Black List) genannt wird.
-
Somit definieren die Filteranweisungen 1811 bis 1815 auch, was mit einem akzeptierten Rahmen 450 bzw. Nachricht 45 geschehen soll. Möglichkeiten für eine Bearbeitung von akzeptieren Rahmen 450 sind beispielsweise das Speichern und/oder Markieren des Rahmens 450.
-
4 zeigt ein von dem Filtermodul 18 durchgeführtes Filterverfahren. Nach Beginn des Verfahrens prüft das Prüfmodul 183 in einem ersten Schritt S1, ob ein Rahmen 450 bzw. eine Nachricht 45 empfangen wird. Lautet die Antwort bei dem Schritt S1 JA, geht der Fluss zu einem Schritt S2 weiter.
-
Bei dem Schritt S2 prüft das Prüfmodul 183, ob während des Empfangs eines Rahmens 450 beispielsweise die ersten 4 Segmente SG1 bis SG4 empfangen wurden. Allgemein kann das Prüfmodul 183 mindestens zwei Segmente SG1, SG2 prüfen. Lautet die Antwort bei dem Schritt S2 JA, geht der Fluss zu einem Schritt S3 weiter.
-
Bei dem Schritt S3 führt der Prüfblock 183 unter Verwendung der Speicherblöcke 181, 182 und des Auswahlblocks 184 eine Akzeptanzfilterung durch. Hierfür prüft der Prüfblock 183 die Liste von Filteranweisungen 1811 bis 1815 in dem Speicherblock 181 eine nach der anderen, bis unter den Filteranweisungen 1811 bis 1815 eine Filteranweisung gefunden ist, welche die Segmente SG1 bis SG4 akzeptiert. Hat der Prüfblock 183 nach Abarbeitung der vollständigen Liste keine passende Filteranweisung 1811 bis 1815 gefunden, so kann der Prüfblock 183 optional eine alternative Anweisung prüfen und ausführen.
-
Für die Prüfung der Segmente SG1 bis SG4 bei dem Schritt S3 wird auf jeweilige Referenzdaten 1821, 1822 verwiesen, die in den separaten Listen für die Referenzdaten 1821, 1822 des Speicherblocks 182 bereitgestellt sind. Dabei hat jedes Referenzdatum der Referenzdaten 1821, 1822 einen Referenzwert, der auch Sollwert genannt werden kann, und eine Maske, wobei beide dieselbe Bitbreite aufweisen wie die Bitbreite eines der Segmente SG1 bis SGn. Hierbei umfasst der Begriff „Bitbreite“, dass alle Segmente SG1 bis SGn dieselbe Anzahl von Bits haben und die Länge der einzelnen Segmente SG1 bis SGn gleich ist.. Jedes der Segmente SG1 bis SGn hat mindestens zwei Bits. Beispielsweise hat jedes der Segmente SG1 bis SGn eine Anzahl von 32 Bits.
-
Bei der Prüfung jeden Segments der Segmente SG1 bis SGn führt der Prüfblock 183 zuerst einen bitweisen Vergleich zwischen dem jeweiligen Segment SG1 bis SGn und dem Referenzwert bzw. Sollwert durch. Danach maskiert der Prüfblock 183 das Ergebnis bitweise in dem Ergebnisblock 185. Beispielsweise führt der Prüfblock 183 zuerst einen bitweisen Vergleich zwischen dem ersten Bit des Segments SG1 und dem zugehörigen Referenzwert aus. Anschließend führt der Prüfblock 183 einen bitweisen Vergleich zwischen dem zweiten Bit des Segments SG1 und dem zugehörigen Referenzwert aus. Ein solcher Vergleich wird auch für alle anderen Bits des Segments SG1 ausgeführt bis zu einem Vergleich zwischen dem letzten Bit des Segments SG1 und dem zugehörigen Referenzwert.
-
Die Einzelergebnisse, insbesondere Übereinstimmung ü oder nicht, werden bei dem Schritt S3 in der Filteranweisung 1811 bis 1815 logisch interpretiert, dies ist zum Beispiel:
- * Einzelergebnis ist akzeptiert, wenn Übereinstimmung zwischen Segment und Referenzwert bzw. Sollwert
- * Einzelergebnis ist akzeptiert, wenn keine Übereinstimmung zwischen Segment und Referenzwert bzw. Sollwert
- * Einzelergebnis ist akzeptiert, wenn Prüfung nicht gefordert ist.
-
Eine vom Prüfblock 183 geprüfte Filteranweisung 1811 bis 1815 akzeptiert einen Rahmen 450 bzw. eine Nachricht 45, wenn alle Einzelergebnisse akzeptiert sind. Dann ist auch der Filtervorgang abgeschlossen. Demzufolge wird für den aktuellen Rahmen 450 bzw. eine Nachricht 45 keine weitere Filteranweisung 1811 bis 1815 verarbeitet. Danach geht der Fluss zu einem Schritt S4 weiter.
-
Als pseudo-Code kann die Filterung des Filtermoduls 18 bei dem Schritt S3 wie folgt ausgedrückt werden.
-
Bei dem Schritt S4 wird geprüft, ob der Rahmen 450 bzw. Nachricht 45 akzeptiert ist. Optional kann eine Unterbrechung (Interrupt), insbesondere der Kommunikation auf dem Bus 40 und/oder der Ausführung der Applikation 11, ausgelöst werden, wenn die Filteranweisung 1811 bis 1815 dies fordert. Ist der Rahmen 450 bzw. Nachricht 45 akzeptiert, so geht der Fluss zu einem Schritt S5 weiter. Ist der Rahmen 450 bzw. Nachricht 45 nicht akzeptiert, so geht der Fluss zu einem Schritt S7 weiter.
-
Bei dem Schritt S5 wird der akzeptierte Rahmen 450 bzw. Nachricht 45 gespeichert, insbesondere in dem Ergebnisblock 185. Hierbei wird der Rahmen 450 bzw. Nachricht 45 in dem Ergebnisblock 185 um weitere Informationen 455 ergänzt, nämlich beispielsweise
455_1) Wohin soll der Rahmen 450 bzw. Nachricht 45 gespeichert werden, wobei eine Auswahl von mehreren Speichern bereitstehen kann. Zumindest einer der Speicher kann eine Speicherschlange nach dem Speicherprinzip sein, bei welchem diejenigen Elemente, die zuerst gespeichert wurden, auch zuerst wieder aus dem Speicher entnommen werden (First in First Out (FIFO)).
455_2) Welche Filteranweisung 1811 bis 1815 hat der Rahmen 450 bzw. Nachricht 45 erfüllt oder hat gepasst. Mit anderen Worten, es wird ein Filter-Index erstellt.
455_3) Markierung der Rahmen 450 bzw. Nachricht 45 gesteuert durch die erfüllte Filteranweisung 1811 bis 1815, insbesondere Priorität (hoch oder mittel oder niedrig) oder Gefährlich (Schwarze Liste (Black List)).
-
Danach geht der Fluss zu einem Schritt S6 weiter.
-
Bei dem Schritt S6 gibt der Ergebnisblock 185 den Rahmen 450 bzw. Nachricht 45 an die Applikation 11 weiter. Die Applikation 11 kann somit, optional ohne zeitliche Verzögerung bzw. unmittelbar, die in dem Rahmen 450 bzw. Nachricht 45 enthaltenen Nutzdaten verwenden. Danach geht der Fluss zu dem Schritt S1 zurück.
-
Bei dem Schritt S7 wird der nicht akzeptierte Rahmen 450 bzw. Nachricht 45 verworfen. Der Ergebnisblock 185 gibt also den Rahmen 450 bzw. Nachricht 45 nicht an die Applikation 11 weiter. Danach geht der Fluss zu dem Schritt S1 zurück.
-
Das Verfahren ist beendet, wenn die Teilnehmerstation 10 oder das Filtermodul 18 ausgeschaltet wird.
-
Das zuvor beschriebene Verfahren kann mit einem Pseudocode beispielsweise ausgestaltet sein, wie folgt:
-
Gemäß einem zweiten Ausführungsbeispiel sind die Segmente SG1 bis SGn nicht alle gleich lang, wie bei dem Beispiel von 2 gezeigt. Stattdessen hat bei dem vorliegenden Ausführungsbeispiel mindestens ein Segment der Segmente SG1 bis SGn eine andere Länge als die anderen Segmente der Segmente SG1 bis SGn.
-
Hierbei kann beispielsweise nur ein bestimmter Abschnitt eines Segments mit dem gesamten anderen Segment, oder insbesondere einem Referenzwert, verglichen werden. Alternativ kann nur ein vorbestimmter Abschnitt eines Segments mit einem vorbestimmten Abschnitt eines anderen Segments, oder insbesondere einem Referenzwert, verglichen werden. Insbesondere kann der Anfang des Segments SG1 im Arbitrationsfeld mit dem Segment SG3 des Datenfelds verglichen werden und/oder das Ende des Segments SG1 wird mit dem Segment SG4 des Datenfelds verglichen. Beliebige andere Varianten für einen Vergleich von Abschnitten der Segmente SG1 bis SGn sind möglich.
-
Im Übrigen ist die Funktionsweise des Bussystems 1 bei dem zweiten Ausführungsbeispiel gleich der Funktionsweise, wie zuvor für das erste Ausführungsbeispiel beschrieben.
-
Alle zuvor beschriebenen Ausgestaltungen der Teilnehmerstationen 10, 20, 30, des Bussystems 1 und des darin ausgeführten Verfahrens können einzeln oder in allen möglichen Kombinationen Verwendung finden. Insbesondere können alle Merkmale der zuvor beschriebenen Ausführungsbeispiele und/oder deren Modifikationen beliebig kombiniert werden. Zusätzlich oder alternativ sind insbesondere folgende Modifikationen denkbar.
-
Auch wenn die Erfindung zuvor am Beispiel des CAN-Bussystems beschrieben ist, kann die Erfindung bei jedem Kommunikationsnetzwerk und/oder Kommunikationsverfahren eingesetzt werden, bei welchem eine Akzeptanzfilterung für Daten vom Bus 40 durchgeführt wird. Insbesondere ist die Erfindung bei Entwicklungen von sonstigen seriellen Kommunikationsnetzwerken, wie Ethernet und/oder 100 Base-Tl Ethernet, Feldbussystemen, usw. einsetzbar.
-
Insbesondere kann das Bussystem 1 gemäß den Ausführungsbeispielen ein Kommunikationsnetzwerk sein, bei welchem Daten seriell mit zwei verschiedenen Bitraten übertragbar sind. Es ist vorteilhaft, jedoch nicht zwangsläufige Voraussetzung, dass bei dem Bussystem 1 zumindest für bestimmte Zeitspannen ein exklusiver, kollisionsfreier Zugriff einer Teilnehmerstation 10, 20, 30 auf einen gemeinsamen Kanal gewährleistet ist.
-
Die Anzahl und Anordnung der Teilnehmerstationen 10, 20, 30 in dem Bussystem 1 der Ausführungsbeispiele ist beliebig. Insbesondere kann die Teilnehmerstation 20 in dem Bussystem 1 entfallen. Es ist möglich, dass eine oder mehrere der Teilnehmerstationen 10 oder 30 in dem Bussystem 1 vorhanden sind. Denkbar ist, dass alle Teilnehmerstationen in dem Bussystem 1 gleich ausgestaltet sind, also nur Teilnehmerstation 10 oder nur Teilnehmerstation 30 vorhanden sind.