-
Die
Erfindung bezieht sich auf elektronische Vorrichtungen und insbesondere
auf elektronische Vorrichtungen, welche mit Systemen, welche dem
LIN-Bus-Standard entsprechen, benutzt werden.
-
LIN-Bus
ist ein Name, welcher einem offenen Protokoll gegeben wurde, welches
für die
Benutzung beim Kommunizieren zwischen einer Anzahl verteilter Module
festgelegt wurde. Viele Anwendungen des LIN-Bus sind speziell auf
die Automobilindustrie gerichtet.
-
Bei
LIN-Bus-Anwendungen enthält
jedes Modul einen Interface-Schaltkreis, üblicherweise
als ein einzelner integrierter Schaltkreis ausgeführt, welcher
zu dem gemeinsamen Signalleiter oder BUS verbindet und die Protokolle
handhabt, welche mit den Meldungen und den erforderlichen Antworten
verbunden sind.
-
Jedes
Modul in einem System hat eine einmalige Identität, ID, innerhalb des Systems,
welches einen Bus-Master in die Lage versetzt, mit einem ausgewählten Modul
oder einer Gruppe von Modulen innerhalb des Systems zu kommunizieren.
-
Wie
am Anfang definiert, sind alle Module innerhalb eines LIN-Bus-Systems parallel
geschaltet. Dies bedeutet, dass sie sich einen BUS teilen, welcher
alle Nachrichten und Mitteilungen sendet und empfängt. Jedes
Modul hat einen pull-up-Widerstand und einen aktiven pull-down-Transistor.
Eine Mitteilungsinitiierung ist asynchron und Mitteilungskollisionen
werden durch eine Arbitration-Einrichtung gelöst. Da ein pull-down- oder ein
Aktiv-Status einen Vorrang gegenüber
einem pull-up- oder Rezessiv-Status einnimmt, weiß jedes übertragende
Modul, welches einen Aktiv-Status sieht, wenn ein Rezessiv-Status übertragen
wird, d. h., dass ein anderes Modul überträgt. Unter solchen Umständen übernimmt
das Modul, welches den Aktiv-Status überträgt, Vorrang und alle anderen
Module müssen
den Bus überlassen
und später
wieder versuchen.
-
Es
wird davon ausgegangen, dass jedes Modul vor einer Installation
mit einem eigenen, einmaligen ID vorkonfiguriert ist.
-
Eine
solche Annahme legt den Herstellern, Installateuren und ganz besonders
solchen, welche ein System reparieren, Anforderungen auf, jedes
Modul vor einer Installation richtig zu konfigurieren. Eine Erweiterung
zu dem Systemprotokoll, welches ein Verfahren zum Konfigurieren
eines Moduls mit einem ID nach einer Installation liefert, wurde
von Bosch und Philips u. a. eingeführt und wurde wohlwollend aufgenommen.
-
In
einem solchen System wird das elektronische Interface zwischen dem
BUS und den Modulen verändert.
Insbesondere umfasst das System erweiterte Leistungsmodule, welche
in der Lage sind, konfiguriert zu werden, wobei jedes erweiterte
Leistungsmodul zwei Anschlüsse
zu dem BUS hat, während
die normalen Module nur einen Anschluss zu dem BUS haben.
-
Der
BUS ist an jedem erweiterten Leistungsmodul unterbrochen und eine
Verbindung ist zu jeder Seite der Unterbrechung gemacht. Erweiterte
Leistungsmodule sind so in einer Reihenkettenkonfiguration miteinander
verbunden, während
normale Module wie bisher mit dem BUS verbunden sind. Die erweiterten
Leistungsmodule erhalten eine Signalkontinuität längs des BUS, aber führen einen
(annähernd
1 Ohm großen)
Reihenwiderstand pro erweitertem Leistungsmodul ein.
-
Erweiterte
Leistungsmodule werden in einem nicht-konfigurierten Status hergestellt,
können
aber nach einer Installation konfiguriert werden. In einem nicht-konfigurierten
Status hat das Modul keine Identifikation (ID) und mit ihm kann
nicht selektiv kommuniziert werden. Um diese Einschränkung zu überwinden,
reagieren alle nicht-konfigurierten erweiterten Leistungsmodule
auf eine Konfigurationsanfrage-Mitteilung, welche auf dem BUS durch
einen Bus-Master übertragen
wird, dadurch, dass sie ihre pull-down-Transistoren abschalten und
einen Strom durch ihren pull-up-Transistor auf dem gemeinsamen Signalleiter
erzwingen. Diese erzwungenen Ströme
fließen
entlang des gemeinsamen Signalleiters zu dem Bus-Master, welcher
seinen pull-down-Transistor angeschaltet hat. Auf diese Weise sieht
jedes nicht-konfigurierte erweiterte Leistungsmodul, ausgenommen
eines, eine Spannung über
dem nominalen (1 Ohm) Reihenwiderstand an jedem erweiterten Leistungsmodul
aufgebracht. Die Ausnahme ist das Modul, welches am weitesten weg
von dem Master ist, wie durch die Reihenkettenverbindung festgelegt.
Dieses nicht-konfigurierte erweiterte Leistungsmodul wird so eindeutig
identifiziert und befähigt
es selbst zum Programmieren eines ID innerhalb des Systems. Diese
Arbeitsweise kann wiederholt werden, bis alle nicht-konfigurierten
erweiterten Leistungsmodule mit einem ID konfiguriert sind.
-
Dieses
Schema hat eine Anzahl von Einschränkungen. Die normale Ausführung des
Bus wird durch die Einführung
der Reihenwiderstände
degradiert. Der Reihenwiderstand innerhalb eines erweiterten Leistungsmoduls
ist normalerweise innerhalb eines integrierten Schaltkreises implementiert
und die Toleranz solcher Widerstände
ist breit. Die erzwungenen Ströme
werden alle über
den Bus-Master versenkt, welcher maximale Stromleistungen und eine
Strombegrenzungsfähigkeit
hat, welche in der Beschreibung definiert wird. Der Wert des erzwungenen
Stroms, welcher benutzt wird, einen Modul zu identifizieren und
zur Konfiguration zu befähigen,
muss klein und sorgfältig
ausgewählt
und kontrolliert sein. Die Spannungen, welche über der Reihenrückstellung
oder innerhalb eines Moduls entwickelt werden, sind ebenfalls klein
und müssen
mit hoher Genauigkeit gemessen werden. Ein solches System kann in
der
GB 2 353 448 gefunden
werden.
-
Eine
bessere Lösung
würden
die Vorteile einer einfachen Auswahl eines Moduls aus einer Anzahl nicht-konfigurierter
erweiterter Leistungsmodule zur Konfiguration liefern, während geringere
Hemmnisse bezüglich
der Toleranzen einzelner Elemente innerhalb des Systems auferlegt
und eine Kompatibilität
mit den LIN-Bus-Spezifikationen erhalten werden.
-
Es
ist somit Gegenstand der Erfindung, ein verbessertes Schema zum
Konfigurieren von Modulen vorzusehen, das mit dem LIN-Bus-Standard
kompatibel ist.
-
Nach
einem ersten Aspekt der vorliegenden Erfindung ist ein konfigurierbares
Modul vorgesehen, welches Mittel aufweist, mit einem ID konfiguriert
zu werden, und auch bei der Herstellungsstufe einen feststehenden,
einmaligen Chip-Identification-Code (CIN) für eine Benutzung während eines
Konfiguriervorganges in sich eingebettet hat.
-
Vorzugsweise
ist das genannte Modul ein mit dem LIN-Bus-Standard kompatibles
Modul. Vorzugsweise hat das genannte Modul zwei LIN-Bus-Interfacestifte,
welche über
einen Serienwiderstand miteinander verbunden sind. Vorzugsweise
ist der Serienwiderstand ein Widerstand mit 1 Ohm oder einem ähnlichen
Wert. In dieser Weise können
die Module als eine Reihenkette von Slave-Nodes an dem LIN-Bus verbunden
sein.
-
Vorzugsweise
enthält
das genannte Modul weiterhin einen pull-up-Widerstand und eine pull-up-Stromquelle,
um einen pull-up-Strom durch den pull-up-Widerstand zu zwingen.
-
Wenn
eine Anzahl der genannten Module in einer Reihenkettenweise verbunden
sind, werden LIN-Bus-Arbitration-Regeln zum Auswählen eines Moduls aus der Reihenkette
angewendet. Vorzugsweise fließt
der pull-up-Strom nur, wenn das genannte Modul ausgewählt ist.
-
Vorzugsweise
enthält
das genannte Modul weiterhin einen Positionszähler, welcher inkrementiert
werden kann, um die Position des Moduls in einer Reihenkette anzuzeigen.
-
In
einer alternativen Ausführungsart
enthält
das genannte Modul weiterhin einen Zufallcode-Generator zum Erzeugen
eines Zufallcodes aus einer Mehrzahl von Bits in der Länge, um
das Modul als Alternative zu dem CIN-Code zu identifizieren. Die
Zahl der Bits in dem Code ist so gewählt, dass die Möglichkeit,
dass zwei Module den gleichen Zufallscode haben, minimiert ist.
-
Entsprechend
einem zweiten Aspekt der vorliegenden Erfindung ist ein LIN-Bus-System
vorgesehen, welches eine Mehrzahl von Modulen aufweist, welche zu
einem LIN-Bus miteinander verknüpft
sind, entlang dessen elektronische Daten oder Anweisungen zu oder
von jedem genannten Modul gesendet werden können, wobei wenigstens eines
der genannten Module nicht-konfiguriert
ist und keine einmalige, ihm zugeordnete Identifikationsadresse
hat, wobei das wenigstens eine Modul einen einmaligen, ihm zugeordneten
Code hat, wobei das genannte System weiterhin Konfigurationsmittel
einschließt,
welche die genannten Module abfragt und den einmaligen Code des
genannten, wenigstens einen nicht-konfigurierten Moduls ermittelt
und ein Konfigurationssignal an das Modul überträgt, um das Modul zu konfigurieren,
wobei jedes der nicht genannten nicht-konfigurierten Module eine
Zähleinrichtung
einschließt,
welche jedes Mal inkrementiert wird, wenn ein nicht-konfiguriertes
Modul konfiguriert wird, wobei der genannte Zähler jedes nicht-konfigurierten
Moduls, wenn es einmal konfiguriert ist, einen einmaligen Code vorsieht,
welcher für
die Position des Moduls in dem System kennzeichnend ist.
-
Vorzugsweise
ist das wenigstens eine Modul, welches einen einmaligen, ihm zugeordneten
Code hat, ein wieder konfigurierbares Modul entsprechend dem ersten
Aspekt der Erfindung und der genannte einmalige Code kann entweder
ein CIN oder ein zufällig
erzeugter Code oder irgendein anderer geeigneter einmaliger Code
sein.
-
Wenn
ein solches LIN-Bus-System eine Mehrzahl von nicht-konfigurierten, wieder
konfigurierbaren Modulen aufweist, sind vorzugsweise die genannten
nicht-konfigurierten, wieder konfigurierbaren Module in einer Reihenkettenweise
miteinander verbunden. Darüber
hinaus und vorzugsweise wird eine Konfigurationssequenz ausgeführt, um
jedes der Mehrzahl von nicht-konfigurierten,
wieder konfigurierbaren Module zu konfigurieren. Während einer
Konfigurationssequenz überträgt der Bus-Master
eine Konfigurationsanfrage und alle nicht-konfigurierten, wieder
konfigurierbaren antworten durch Übertragen einer Antwort, welche
aus ihrem einmaligen Code besteht. Vorzugsweise werden Standard-LIN-Bus-Arbitration-Regeln
angewendet, wobei Aktiv-Status über
Rezessiv-Status gewinnen und ein nicht-konfiguriertes, wieder konfigurierbares
Modul wird so die Arbitration gewinnen und das "ausgewählte Modul" werden.
-
Vorzugsweise
zwingt dann das ausgewählte
Modul einen Strom durch seinen pull-up-Widerstand. Nicht-ausgewählte, nicht-konfigurierte,
wieder konfigurierbare Module können
diesen Strom über
ihre Reihenwiderstände überwachen
und dadurch ermitteln, dass ein ausgewähltes Modul antwortet.
-
Vorzugsweise
enthält
jedes nicht-konfigurierte wieder konfigurierbare Modul einen Positionszähler, welcher
bei jeder Gelegenheit inkrementiert wird, zu der ein ausgewähltes Modul
mit einem erzwungenen Strom antwortet. Der Positionszähler an
einem besonderen nicht-konfigurierten wieder konfigurierbaren Modul wird
jedoch nicht inkrementiert, wenn das besondere nicht-konfigurierte wieder
konfigurierbare Modul selbst ausgewählt ist. Darüber hinaus
wird der Positionszähler
an einem besonderen nicht-konfigurierten wieder konfigurierbaren
Modul nicht inkrementiert, nachdem das besondere Modul ausgewählt worden
ist. Auf diese Weise hat, da jedes Modul in der Reihenkette der
Reihe nach ausgewählt
wird, jedes Modul seinen feststehenden Positionszähler, welcher
seine Position in der Reihenkette zeigt. Wenn einmal alle nicht-konfigurierten erweiterten
Leistungsmodule ausgewählt
worden sind, hat jedes einen Positionszähler, welcher eine einmalige
Position für
dieses Modul innerhalb der Reihenkette zeigt. Dieser einmalige Positionszählerwert
kann dann benutzt werden, um ein Modul auszuwählen und für die Benutzung in dem System
zu konfigurieren.
-
Die
Vorteile eines solchen verbesserten Systems bestehen darin, dass
jedes Mal nur ein Modul Strom erzwingt, wodurch so die Aufgabe vereinfacht
wird, zu bestimmen, dass ein Strom fliegt, in dem die Genauigkeit,
welche für
die Messung erforderlich ist, reduziert wird. Die Toleranzen der
Komponenten sind auch weniger beschwerlich.
-
Nach
einem dritten Aspekt der vorliegenden Erfindung ist ein Verfahren
zum Konfigurieren eines LIN-Bus-Systems nach dem zweiten Aspekt
der vorliegenden Erfindung vorzuziehen, welches eine Mehrzahl von
genannten nicht-konfigurierten wieder konfigurierbaren Modulen aufweist,
welche in einer Reihenkettenweise miteinander verbunden sind, welches
die folgenden Schritte enthält: Übertragen
einer Konfigurationsanfrage von einem Bus-Master; auswählen eines
Moduls aus der Reihenkette durch Standard-LIN-Bus-Arbitration-Regeln; Erzwingen
eines Stromes durch den pull-up-Widerstand des ausgewählten Moduls;
Inkrementieren des Positionszählers
jedes Moduls innerhalb der Reihenkette, welches gerade oder vorher
ausgewählt worden
ist; wiederholen der zuvor erwähnten
Schritte bis jedes Modul in der Reihenkette ausgewählt worden ist,
wobei die Positionszähler
für jedes
Modul somit eine einmalige Position in der Kette zeigen; und benutzen des
einmaligen Positionszählerwertes,
um ein gewünschtes
Modul oder eine Mehrzahl von gewünschten
Modulen auszuwählen
und zu konfigurieren.
-
Damit
die Erfindung noch deutlicher verstanden wird, wird hier und mit
Bezug auf die beiliegenden Zeichnungen ein Ausführungsbeispiel weiter beschrieben,
bei welchen:
-
1 ein
Blockdiagramm eines wieder konfigurierbaren Moduls nach der vorliegenden
Erfindung ist, welches seine Schnittstelle mit einem Reihenwiderstand
zeigt;
-
2 eine
Mehrzahl solcher wieder konfigurierbarer Module zeigt, welche an
eine gemeinsame Signalleitung angeschlossen sind; und
-
3 veranschaulicht,
wie die Position jedes Moduls innerhalb der Reihenkette bestimmt
wird.
-
Nunmehr
bezugnehmend auf 1 enthält das Modul einen normalen
LIN-Bus-Interface-Stift, welcher in einen LIN_H-Stift, 101,
und einen LIN_L-Stift, 102,
aufgeteilt ist, welcher mit einem Widerstand Rac, 103,
von typischerweise 1 Ohm verbunden ist. Dies setzt die Module in
die Lage, als eine Reihenkette von Slave Nodes an dem LIN-Bus verbunden
zu sein. Das Modul enthält
ferner einen pull-up-Widerstand, 104, und eine pull-up-Stromquelle
lac, 105, welche während
einer Auto-Konfiguration aktiviert werden kann. Während einer
normalen Kommunikation ist diese Stromquelle immer abgeschaltet
und hat deswegen keinen Einfluss. Diese Stromquelle hat einen typischen
Wert von 8 mA.
-
Während des
Auto-Konfigurations-Vorganges wird die Spannung über den Widerstand Rac durch
Verstärkermittel, 107, überwacht.
Der LIN-pull-up-Widerstand, 104,
kann ebenfalls während
des Auto-Konfigurations-Vorganges abgeschaltet sein.
-
2 zeigt
ein Beispiel eines Reihenketten-LIN-Bus zur Auto-Konfiguration. Das Master-Modul, 201, ist
an einem Ende des Bus angeordnet. Die Module 1 bis n, 211,
..., 21n, sind Slave Nodes mit Auto-Konfigurationsfähigkeit.
Die Module sind reihenverkettet durch Verbinden des LIN_H-Stiftes,101,
an ein Modul zu dem LIN_L-Stift, 102, an ein benachbartes
Modul, in dem in 2 gezeigten Fall das Modul benachbart
und zur Rechten.
-
Die
Module n + 1, ... sind Standard-Slave-Module, welche nach der Erfindung
nicht wieder konfigurierbare Module sind und als solche können sie
irgendwo an dem LIN-Bus angeschlossen sein. Es mag irgendeine gewünschte Kombination
von wieder konfigurierbaren Slave-Modulen und Standard-Slaves geben,
welche mit dem Bus verbunden sind, einschließlich Slaves, welche in einer
Baum-Struktur miteinander verbunden sind, so lange wieder konfigurierbare
Slave-Module in einer Reihenkette miteinander verbunden sind.
-
Die
wieder konfigurierbaren Module können
folgende Auto-Konfigurations-Zustände haben:
- – Nicht-adressiert:
der Node ist nicht identifiziert (d. h. dem Node ist keine ID zugeordnet
und kann so für normale
Mitteilungen, welche die ID eines Node benötigen, nicht adressiert werden).
- – Ausgewählt: Der
Node ist während
der fortlaufenden Auto-Konfigurations-Abfrage-Nachricht ausgewählt worden.
Er wird am Ende der Nachricht in den adressierten Zustand umschalten.
- – Adressiert:
Der Node ist während
des Auto-Konfigurations-Vorganges adressiert worden. Er wartet das Ende
des Auto-Konfigurations-Vorganges ab, um seine Node-ID zugeteilt
zu bekommen.
- – Identifziert:
Der Node hat seine richtige ID erhalten (welche in einen EEPROM
geschrieben ist) und kann für
alle Anwendungsnachrichten angesteuert werden.
-
Ein
Modul, welches niemals identifiziert worden ist, hat ID = 0, geschrieben
in einem NVM (None-Volatile-Memory), wobei ein solches Modul den
Nicht-Adressiert-Zustand nach einer Strom-An-/Rückstellung einnimmt. Darüber hinaus
wird ein Modul, das sich nicht in dem identifizierten Zustand befindet,
den Nicht-Adressiert-Zustand nach einem Strom-An-/Abschalten einnehmen.
-
Ein
Modul hat einen einmaligen Chip-Identification-Number (CIN)-Code, welcher bei
der Herstellung eingebaut wurde. Dieser Code kann jeder beliebige
Code sein, ausgenommen ein Code, welcher nur aus Nullen besteht.
In der Praxis besteht dieser Code aus Daten, welche eine Batch-Nummer,
Wafer-Nummer und Prägeposition
auf dem Wafer definiert. Typischerweise hat die CIN eine Gesamtmenge
von 48 bit (6 Byte) des einmaligen Code.
-
Für den Master
ist keine spezielle Hardware erforderlich. Jeder beliebige Mikro-Prozessor,
welcher mit einem regulären
Voll-Duplex-UART ausgestattet ist, verbunden mit einer Standard-LIN-Physical-Interface-Schaltung
(wie etwa TH 8082, welche bei Melexis erhältlich ist), kann benutzt werden.
Die Software, welche auf dem Master läuft, muss in der Lage sein,
die Frame-Items (UART-Byte) in einer anderen Weise zu senden als
für reguläre Frames.
-
Das
Auto-Konfigurations-System macht Gebrauch von der benutzerdefinierten
erweiterten Frame-Message (Id 0x3E). Vorteile dieser Benutzung der
erweiterten Frame-Message bestehen darin, dass sie den regulären LIN-Identifyer unberührt und
zugänglich
belassen, die Anzahl von Byte frei ist und kann so für jede Nachricht
optimiert werden, und das Byte, welches die Fehlerkennzeichnung
enthält,
kann am Ende des Frame lokalisiert werden nach der Prüfsumme (um
ein Signalisieren von Prüfsummenfehlern,
durch den Master wie durch die Slaves, zu gestatten).
-
Das
erste Byte von der erweiterten Frame-Message wird von dem Master
gesendet und identifiziert einen der Konfigurations-Frames, welche
in der folgenden Tabelle gezeigt sind (die folgenden Bytes hängen von
der Funktion ab).
-
-
Einige
Aspekte der Tabelle werden unten in größerer Einzelheit erörtert.
-
UAD:
Nicht-adressieren aller Auto-Konfigurations-Slaves, die UAD ist
eine reguläre
Nachricht, bei welcher Daten durch den Master gesendet werden.
-
Wenn
der Master den UAD-Befehl auslöst,
setzen alle Auto-Konfigurations-Slaves
ihre Node-Kennung ID auf 0 zurück
und ihre inneren Positionszähler
auf 1. Das Ergebnis ist, dass alle Slaves sich nun in dem nicht-adressierten
Zustand befinden und der Bus dementsprechend bereit ist, den Auto-Konfigurations-Vorgang
zu starten.
-
INT:
Fragt alle Auto-Konfigurations-Slaves, die INT-Nachricht ist eine
erweiterte Nachricht mit 8 Byte an Daten. Wenn der Master diesen
Befehl auslöst,
wird er von allen Auto-Konfigurations-Slaves verarbeitet, welches
sich in dem nicht-adressierten oder adressierten Zustand befinden.
Während
der ersten 6 Byte (Daten 0-5) senden alle nicht-adressierten Slaves
ihren CIN-Code in einer Ordnung, welche von einer Arbitration definiert
ist: Wenn ein Slave einen dominanten Pegel feststellt, während er
versucht, einen rezessiven Pegel zu übertragen, verliert er die
Arbitration und schaltet für
den Rest der CIN-Code-Übertragung
auf einen rezessiven Pegel. Während
dieser Bytes muss der Master ein Daten-Byte 0xFF (alle rezessiv)
senden, um die Arbitration auszulösen.
-
Am
Ende der CIN-Code-Übertragung
wird nur ein Slave bei der Übertragung
seines vollen CIN-Code gewonnen haben und betrachtet sich selbst
als ausgewählt.
Der Slave sendet die Prüfsumme,
um zu einer korrekten Nachricht für alle Standard-Slaves zu gelangen.
Dieser ausgewählte
Slave schaltet auf den Adressiert-Status am Ende der Nachricht um
(wenn die Prüfsummenübertragung
und die Fehlerkennzeichnung korrekt sind).
-
Während des
nächsten
Byte (Data 6) sendet der Master 8 dominante bit, während alle
Auto-Konfigurations-Slaves ihren LIN-pull-up-Widerstand ausschalten: – Während der
ersten bits kalibrieren alle Auto-Konfigurations-Slaves in dem nicht-adressierten
Zustand auf den Bus. Dies bedeutet, dass die Spannung über den Widerstand
Rac durch einen ADC verstärkt
und gemessen wird. Diese wird als eine Bezugsspannung während der
nächsten
4 bits benutzt.
-
Während der
zweiten 4 bits aktiviert der ausgewählte Slave seine Stromquelle
lac und alle adressierten und nicht-adressierten Slaves stellen
den Spannungsabfall über
ihrem Widerstand Rac fest. Wenn die Spannungsschwelle überschritten
wird (d. h. der Chip einen Strom lac feststellt), inkrementiert
der Slave seinen Positionszähler.
-
Während des
letzten Byte (Data 7) senden alle nicht-adressierten Slaves ein
dominantes bit gefolgt von einem rezessiven bit (die adressierten
Slaves und der selektierte Slave tun nichts). Der Master sendet ebenfalls
ein 0xFF Byte, um die Antwort von den Slaves zu initiieren. Dies
ist die "More"-Kennzeichnung. Sie zeigt an, dass wenigstens
ein Slave sich noch in dem nicht-adressierten
Zustand befindet. Die restlichen 6 bit können benutzt werden, um eine
Fehlerkennzeichnung zu signalisieren (ein Slave, der mit der Konfigurationssequenz
nicht übereinstimmt,
sendet einen dominanten bit gefolgt von fünf rezessiven bits).
-
Die
Nachricht wird durch den ausgewählten
Slave kompletiert, welcher die Prüfsumme sendet. Im Falle, dass
kein Slave antwortet (CIN ist voll rezessiv), muss der Master die
entsprechende Prüfsumme
senden, um noch eine korrekte Nachricht zu haben. Am Ende der Nachricht
schaltet der ausgewählte
Slave in den adressierten Zustand, wenn kein Fehler angezeigt worden
ist. Wenn ein Fehler angezeigt wurde, schaltet der Slave zurück in den
nicht-adressierten
Zustand.
-
Der
Master wiederholt die Abfrage-Nachricht bis alle wieder konfigurierbaren
Slaves in dem adressierten Zustand sind, d. h. bis die "More"-Kennzeichnung nicht wiederkehrt. Der
Master bestimmt, dass dies vorschriftsmäßig kompletiert ist, wenn:
alle Prüfsummen
korrekt waren; kein "rezessiv-CIN-Code" erhalten wurde; keine
Fehlerkennung erhalten wurde; und die "More"-Kennzeichnung
vorschriftsmäßig übertragen
wurde (für alle
Nachrichten außer
der letzten).
-
3 veranschaulicht,
wie die INT-Sequenz arbeitet. Der Bus verbindet einen Master-Node
mit fünf wieder
konfigurierbaren Slave-Nodes 1-3, 6, 7 und drei Standard-Slave-Nodes
4, 5, 8. Jeder der wieder konfigurierbaren Slave-Nodes wird der
Reihe nach ausgewählt.
In dem Beispiel ist die Ordnung 2, 3, 7, 1, 6. Die Nodes werden
in der Reihenfolge ihrer CIN-Codes ausgewählt. Die resultierenden Werte,
welche in einem Positionszähler
nach jedem Zyklus der INT-Sequenz, wird angezeigt. Wenn der Konfigurationsvorgang
vollständig
ist, enthält
der interne Positionszähler
(PosCnt) jedes Slave seine Position in der Reihenkette. Dieser Wert, die
ECU-Adresse, wird zum Konfigurieren der Module verwendet, um für die Anwendung
zu passen.
-
IDS:
Identifiziert einen Auto-Konfigurations-Slave, welcher benutzt wird,
den Node entsprechend der Funktion auf dem Bus zu konfigurieren,
es überführt ein
Modul von dem adressierten Zustand in den identifizierten Zustand.
Während
dieser Nachricht greift der Master auf einen Slave entsprechend
dem in dem Positionszähler
gespeicherten Wert (ECU-Adresse), um dem Node einen ID-Wert zu geben,
welcher üblicherweise in
einem EEPROM gespeichert wird. Damit mehr als ein Identifizierungszeichen
für jeden
Slave spezifiziert werden kann, wird ein Funktionscode benutzt,
um ein Identifzierungszeichen, welches festgelegt werden soll, auszuwählen.
-
FRQ:
Funktionsanfrage, erlaubt die Abfrage eines Slave basierend auf
seiner ECU-Adresse. Sie kann nach der INT-Sequenz, aber vor der
IDS-Nachricht eingesetzt
werden, um die Funktion des bestimmten Moduls zu verifizieren oder
zu identifzieren.
-
Bei
einer alternativen Ausführungsart
kann der CIN-Code (welcher in dem EEPROM gespeichert ist) auch durch
einen zufällig
erzeugten Code von x bits ersetzt werden. Bei solchen Ausführungsarten
ist ein Zufallscode-Generator in das Modul inkorporiert. Der richtige
Wert für
x wird so ausgerechnet, dass das Risiko, dass unterschiedliche Module
innerhalb der Reihenkette identische Codes haben, minimiert wird.
-
Wenn
jedoch die Situation auftreten sollte, dass zwei Module identische
Codes haben, so kann dies überwunden
werden. Wenn zwei Slaves identische Codes haben, werden beide simultan
ausgewählt
und beide werden ihre Stromquelle aktivieren. Es gibt dabei zwei
Alternativen, unter welchen dies behandelt werden kann. Erstens
kann der ausgewählte
Slave, welcher dem Master am nächsten
liegt, einen Strom feststellen, welcher durch seinen Widerstand
fließt,
und deswegen erkennen, dass er nicht der einzige Slave ist, welcher ausgewählt worden
ist, und folglich reagieren, als ob er nicht ausgewählt worden
ist. Zweitens und alternativ kann ein Fehlererkennungszeichen entweder
durch den Master oder durch den ausgewählten Slave, welcher dem Master
am nächsten
liegt, erzeugt werden, was folglich den Vorgang neu startet. Der
Vorteil dieser Ausführungsart
besteht darin, dass kein Volatile-Memory in dem Modul eingebaut
sein muss und so bei jeder Strom-An-/Rückstellung laufen kann.
-
Es
ist natürlich
einzusehen, dass die Erfindung nicht auf die Details der obigen
Ausführungsart
beschränkt
anzusehen ist, welches nur beispielsweise beschrieben worden ist.