-
Die
Erfindung betrifft ein Verfahren zum Betreiben eines an ein Bus-,
insbesondere LIN-Bus-System anschliessbaren System-Moduls. Des weiteren
betrifft die Erfindung ein System-Modul, insbesondere ein an ein
Bus-, insbesondere LIN-Bus-System anschliessbares System-Modul.
-
In
elektrischen oder elektronischen Systemen kommunizieren einzelne
System-Module, z.B. verschiedene elektronische Baugruppen, verschiedene,
jeweils auf einer einzelnen Baugruppe angeordnete, elektronische
Bauelemente (z.B. verschiedene, auf einer einzelnen Baugruppe angeordnete Halbleiter-Bauelemente),
verschiedene, in ein- und demselbem Bauelement vorgesehene Bauelement-Sub-Komponenten
(insbesondere verschiedene Komponenten eines Halbleiter-Bauelements, z.B. eines
Speicher- und/oder Rechenschaltkreises, z.B. eines Mikrocontrollers
oder Mikroprozessors, usw.), etc. über ein – aus einer oder aus mehreren Übertragungs-Leitungen
bestehendes – Übertragungsmedium,
beispielsweise ein Bus-System.
-
Bus-Systeme
können
von mehreren, insbesondere von zwei oder mehr als zwei Modulen/Bauelementen/Komponenten
gemeinsam genutzt werden.
-
Viele
herkömmliche
Bus-Systeme bestehen aus mehreren Teilsystemen, beispielsweise aus
einem – aus
einer oder mehreren Datenleitungen bestehenden – Daten-Bus zur Übertragung
der eigentlichen Nutz-Daten, und/oder einem – aus einer oder mehreren Adressleitungen
bestehenden – Adress-Bus
zum Übertragen
von Adress-Daten, und/oder einem – aus einer oder mehreren Steuerleitungen
bestehenden – Steuer-Bus
zum Übertragen von
Steuer-Daten, etc.
-
Im
Vergleich hierzu ist ein sog. LIN-Bus-System wesentlich einfacher
aufgebaut (LIN = Local Interconnect Network). Ein LIN-Bus-System
besteht i.A. nur aus einer einzigen Übertragungsleitung, an welche
eine Vielzahl verschiedener Baugruppen/Bauelemente/Komponenten angeschlossen sein
können. Über die
LIN-Bus-Übertragungsleitung müssen also
sowohl Nutz- als auch Adress- und/oder Steuer-Daten übertragen
werden.
-
Die
an ein LIN-Bus-System angeschlossenen Baugruppen/Bauelemente/Komponenten
verfügen
in der Regel über
lediglich drei Eingänge;
einen Eingang für
die LIN-Bus-Übertragungsleitung,
und zwei Spannungs-Versorgungs-Eingänge.
-
LIN-Bus-Systeme
können
mit Datenraten von z.B. bis zu 20 Kbit/s betrieben werden; sie basieren
auf einer Master/Slave-Architektur mit einem einzigen Master, und
einem oder mehreren Slaves.
-
Aufgrund
des relativ einfachen und kostengünstigen Aufbaus von LIN-Bus-Systemen
werden diese häufig
zur Steuerung verteilter elektrischer Systeme in zeit- und/oder
sicherheitsunkritischen Umgebungen eingesetzt, z.B. zur Steuerung
zeit- und/oder sicherheitsunkritischer Automotive-Anwendungen.
-
Mögliche Einsatzgebiete
sind z.B. die Mikrocontroller- bzw. Mikroprozessor-basierte Steuerung von
Gleichstrom- und Schrittmotoren für elektrische Fensterheber
und Außenspiegel,
die Einstellung des Abblendlichts, das Management von Sensor-Informationen zur
Steuerung der Klimaanlage oder der Sitzposition, etc., etc.
-
Herkömmliche
Mikrocontroller- bzw. Mikroprozessor-Systeme weisen eine oder mehrere
(zentrale) Steuer- bzw. Recheneinheiten auf (Central Processing
Units (CPUs), bzw. CPU „Cores"), die mit einer
oder mehreren Speicher-Einrichtungen
verbunden sind, z.B. einer Programm- und einer Datenspeichereinrichtung
(„Programmspeicher", und „Datenspeicher").
-
Die
Speichereinrichtungen können
auf ein- und demselben Chip vorgesehen sein, wie der entsprechende
Mikrocontroller bzw. Mikroprozessor (sog. „embedded" Mikrocontroller- bzw. Mikroprozessor-System),
oder alternativ auch separat hiervon.
-
Der „Programmspeicher" enthält insbesondere
die Folge der von dem bzw. den CPU Cores abzuarbeitenden Befehle,
also das Programm (und ggf. zusätzlich
entsprechende – von
dem bzw. den CPU Cores zu verwendende – Daten-Konstanten).
-
Im „Datenspeicher" können z.B.
die – insbesondere
von dem bzw. den CPU Cores beim Abarbeiten des Programms ggf. abzuändernden – Variablen gespeichert
sein.
-
Gemäß LIN-Bus-Protokoll
sind im Prinzip beliebige Kombinationen an Daten-Längen und
-Inhalten zugelassen; es sind keine protokollmäßig vor-definierten Kontroll-Worte
spezifiziert. Stattdessen müssen
entsprechende Kontroll-Worte – für jede Anwendung
individuell – festgelegt
werden.
-
Bei
herkömmlichen
LIN-Bus-Mikroprozessor-Systemen wird zunächst ein Grundprogramm in den
Programmspeicher geladen, und erst dann das Mikroprozessor-System
an das LIN-Bus-System angeschlossen.
-
Durch Übertragen
eines – dem
Grundprogramm „bekannten" (anwendungsspezifisch
ggf. jeweils unterschiedlichen) – speziellen Kontroll-Worts über die
LIN-Bus-Übertragungsleitung
kann der entsprechende Mikroprozessor von einem Normalbetriebsmodus
in einen Programmiermodus gebracht werden; erst dann kann das eigentliche
bzw. kundenspezifische Programm über
die LIN-Bus-Übertragungsleitung
an den Mikroprozessor übertragen,
und in dem o.g. Programmspeicher abgespeichert werden.
-
Nachteilig
ist aber u.a., dass vor dem Anschluss des Mikroprozessor-Systems
an das LIN-Bus-System erst das Grundprogramm in den Programmspeicher
geladen werden muss, damit der Mikroprozessor eine über die
LIN-Bus-Übertragungsleitung übertragene
Datensequenz als Kontroll-Wort zum
Wechsel in den Programmiermodus erkennen kann.
-
In
der
DE 100 55 163
A1 ist ein Datenbus beschrieben, an den mehrere Slave-Busteilnehmer
angeschlossen sind, die aufgrund von adressierten Befehlstelegrammen
einer ebenfalls am Datenbus angeschlossenen Steuereinheit Funktionen
ausführen.
-
Jeder
Slave-Busteilnehmer weist einen ersten, nichtflüchtigen Speicherbereich auf,
auf dem die Funktionsnummern der Funktionen fest abgespeichert sind,
und einen weiteren Speicherbereich, in dem durch ein Sonderbefehlstelegramm
der Steuereinheit zu jeder im ersten Speicherbereich abgespeicherten
Funktionsnummer dynamisch eine Kennungsinformation abgespeichert
werden kann.
-
In
der
US 6 529 486 B1 ist
ein Kommunikationssystem beschrieben, bei welchem zur Datenübertragung
ein LTR- (Logic Trunked Radio-) Protokoll, und ein weiteres Protokoll
verwendet wird.
-
Um
Fehlinterpretationen zu vermeiden, wird bei gemäß dem weiteren Protokoll übertragenen
Daten gegenüber
gemäß dem LTR-Protokoll übertragenen
Daten eine auf invertierte Weise gebildete Prüfsumme verwendet.
-
Die
Erfindung hat zur Aufgabe, ein neuartiges Verfahren zum Betreiben
eines an ein Bus-, insbesondere LIN-Bus-System anschliessbaren System-Moduls,
sowie ein neuartiges, insbesondere an ein LIN-Bus-System anschliessbares
System-Modul zur
Verfügung
zu stellen.
-
Sie
erreicht dieses und weitere Ziele durch die Gegenstände der
Ansprüche
1 und 10.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
-
Vorteilhaft
kann der erste Betriebsmodus z.B. ein Normalbetriebsmodus sein,
und der zweite Betriebsmodus ein Programmierbetriebsmodus.
-
Bevorzugt
werden die im zweiten Betriebsmodus vom System-Modul empfangenen Daten als Programmierdaten
verwendet, insbesondere zum Laden und/oder Verändern und/oder Löschen eines Modul-Software-Programms,
und die im ersten Betriebsmodus vom System-Modul empfangenen Daten
als normale Nutz- bzw. Applikationsdaten.
-
Im
folgenden wird die Erfindung anhand eines Ausführungsbeispiels und der beigefügten Zeichnung
näher erläutert. In
der Zeichnung zeigt:
-
1 eine
schematische, beispielhafte Darstellung eines Abschnitts eines LIN-Bus-Systems, und
daran angeschlossener, gemäß einem
Ausführungsbeispiel
der Erfindung miteinander kommunizierender System-Module;
-
2a eine
schematische, beispielhafte Darstellung von gemäß dem Stand der Technik über das
in 1 gezeigte LIN-Bus-System übertragenen Daten;
und
-
2b eine
schematische, beispielhafte Darstellung von beim Ausführungsbeispiel
der Erfindung als Normalbetriebs/Programmierbetriebs-Modus-Wechsel-Befehl über das
in 1 gezeigte LIN-Bus-System übertragenen Daten.
-
In 1 ist
eine schematische, beispielhafte Darstellung eines Abschnitts eines
Bus-Systems 1, und daran angeschlossener, gemäß einem
Ausführungsbeispiel
der Erfindung über
das Bus-System 1 miteinander kommunizierender System-Module 2, 3, 4, 5 gezeigt.
-
Bei
dem Bus-System 1 kann es sich im Prinzip um ein beliebiges
Bus-System 1 handeln, über welches
die System-Module 2, 3, 4, 5 – z.B. verschiedene
elektronische Baugruppen, verschiedene, jeweils auf einer einzelnen
Baugruppe angeordnete, elektronische Bauelemente (z.B. verschiedene,
auf einer einzelnen Baugruppe angeordnete Halbleiter-Bauelemente),
verschiedene, in ein- und demselbem Bauelement vorgesehene Bauelement-Sub-Komponenten
(insbesondere verschiedene Komponenten eines Halbleiter-Bauelements, z.B. eines
Speicher- und/oder Rechenschaltkreises, z.B. eines Mikrocontrollers
oder Mikroprozessors, usw.), etc. – miteinander kommunizieren
können.
-
Besonders
vorteilhaft kann als Bus-System 1 ein LIN-Bus-System (LIN = Local
Interconnect Network) verwendet werden.
-
Das
Bus-System 1 kann einen – aus einer oder mehreren Datenleitungen
bestehenden – Daten-Bus
zur Übertragung
der eigentlichen Nutz-Daten aufweisen, und/oder einen – aus einer
oder mehreren Adressleitungen bestehenden – Adress-Bus zum Übertragen
von Adress-Daten, und/oder einen – aus einer oder mehreren Steuerleitungen
bestehenden – Steuer-Bus
zum Übertragen
von Steuer-Daten, etc., besonders vorteilhaft – z.B. dann, wenn als Bus-System
ein LIN-Bus-System verwendet wird, und wie in 1 gezeigt
ist – lediglich
eine einzige Übertragungsleitung 1a,
an welche als System-Module 2, 3, 4, 5 eine
Vielzahl verschiedener Baugruppen/Bauelemente/Komponenten angeschlossen sein
können.
-
Weist
das Bus-System 1 – wie
das in 1 gezeigte LIN-Bus-System 1 – lediglich eine einzige Übertragungsleitung 1a auf,
müssen über diese
sowohl Nutz- als auch Adress- und/oder Steuer-Daten übertragen
werden.
-
Die
an das LIN-Bus-System 1 angeschlossenen System-Module 2, 3, 4, 5 können z.B.
jeweils über
(lediglich) drei Eingänge
verfügen,
z.B. jeweils einen Eingang 2a, 3a, 4a, 5a für die LIN-Bus-Übertragungsleitung 1a,
und zwei Spannungs-Versorgungs-Eingänge (die
z.B. mit einer Versorgungs-Spannungs-Leitung,
und einer Masse-Leitung (nicht dargestellt) verbunden sein können).
-
Das
LIN-Bus-System 1 kann – entsprechend der
LIN-Bus-Spezifikation – z.B. mit
Datenraten von z.B. bis zu 20 Kbit/s, etc. betrieben werden.
-
Das
LIN-Bus-System 1 basiert auf einer Master-/Slave-Architektur, genauer:
auf einer Single-Master-/Slave-Architektur,
wobei jeweils nur ein einziges der an das LIN-Bus-System 1 angeschlossenen
System-Module (z.B. das System-Modul 5, oder
das System-Modul 2 (oder ein beliebiges anderes System-Modul))
als Master, und die übrigen
an das LIN-Bus-System 1 angeschlossenen
System-Module als Slave fungieren.
-
Das
in 1 gezeigte Bus-System 1, und die daran
angeschlossenen System-Module 2, 3, 4, 5 können vorteilhaft
zur Steuerung verteilter elektrischer Systeme in zeit- und/oder sicherheitsunkritischen
Umgebungen eingesetzt werden, z.B. zur Steuerung zeit- und/oder
sicherheitsunkritischer Automotive-Anwendungen (z.B. zur Steuerung
von Gleichstrom- und/oder Schrittmotoren für elektrische Fensterheber
und Außenspiegel,
die Einstellung des Abblendlichts, das Management von Sensor-Informationen
zur Steuerung der Klimaanlage und/oder der Sitzposition, etc., etc.).
-
Die
an das in 1 gezeigte LIN-Bus-System 1 angeschlossenen
System-Module 2, 3, 4, 5 können – insbesondere
z.B. bei der Verwendung als Slave-System-Modul – z.B. entsprechende LIN-Bus-Transceiver,
und/oder entsprechende Spannungsregulierungs-Einrichtungen, und/oder
entsprechende Aktuator-Steuerungs-Einrichtungen, und/oder entsprechenden
Sensor-Schnittstellen, und/oder entsprechende Speicher-Einrichtungen, und/oder
entsprechende Mikrocontroller- bzw. Mikroprozessor-Systeme, etc.,
etc. aufweisen.
-
Beispielsweise
weist das in 1 gezeigte System-Modul 2 (und/oder
das System-Modul 3, und/oder das System-Modul 4,
etc.) – ggf.
zusätzlich zu
einem LIN-Bus-Transceiver, und/oder einer Spannungsregulierungs-Einrichtung,
usw., usw. – ein
Mikrocontroller- bzw. Mikroprozessor-System 9 mit einer
oder mehreren (zentralen) Steuer- bzw. Recheneinheiten 8 auf
(Central Processing Unit 8 (CPU), bzw. CPU „Core"), die mit einer
oder mehreren Speicher-Einrichtungen verbunden sind, z.B. einer
Programmspeichereinrichtung 7, und einer Datenspeichereinrichtung 6.
-
Die
Programm- und die Datenspeichereinrichtung 6, 7 können beim
vorliegenden Ausführungsbeispiel
z.B. auf ein- und demselben Chip vorgesehen sein, wie der entsprechende
Mikrocontroller bzw. Mikroprozessor (bzw. die CPU 8) (sog. „embedded" Mikrocontroller-
bzw. Mikroprozessor-System), oder alternativ auch separat hiervon.
-
Die
Programmspeichereinrichtung 7 enthält insbesondere die Folge der
von der bzw. den CPUs 8 abzuarbeitenden Befehle, also das
Programm (und ggf. zusätzlich
entsprechende – von
der bzw. den CPUs 8 zu verwendende – Daten-Konstanten) (d.h. sog.
Programmdaten).
-
Demgegenüber können in
der Datenspeichereinrichtung 6 z.B. die – insbesondere
von der bzw. den CPUs 8 beim Abarbeiten des Programms ggf.
abzuändernden – Variablen
gespeichert sein (bzw. entsprechende Applikationsdaten).
-
Die
Datenspeichereinrichtung 6 kann z.B. von einem oder mehreren
RAMs (RAM = Random Access Memory bzw. Schreib-Lese-Speicher), insbesondere
z.B. DRAMs (DRAM = Dynamic Random Access Memory), oder SRAMs (SRAM
= Static Random Access Memory) gebildet werden.
-
Als
Programmspeichereinrichtung 7 kann z.B. ein entsprechendes,
nicht-flüchtiges
Speicherbauelement verwendet werden, z.B. ein EPROM (Erasable PROM
bzw. Löschbarer
Festwertspeicher) oder EEPROM (Electrically Erasable PROM bzw. Elektrisch
Löschbarer
Festwertspeicher), insbesondere z.B. ein Flash-EEPROM.
-
Alternativ
kann als Programmspeichereinrichtung 7 z.B. auch ein RAM
eingesetzt werden, insbesondere z.B. ein DRAM.
-
Bei
herkömmlichen
LIN-Bus-Mikroprozessor-Systemen muss – vor dem Anschluss eines entsprechenden
System-Moduls (z.B. des System-Moduls 2) an das LIN-Bus-System 1 – zunächst ein Grundprogramm
in die Programmspeichereinrichtung eines entsprechenden Mikrocontroller-Systems (z.B.
in die Programmspeichereinrichtung 7 des Mikrocontroller-Systems 9)
geladen werden; erst dann kann das entsprechende System-Modul bzw.
Mikroprozessor-System an das LIN-Bus-System 1 angeschlossen
werden.
-
Wie
im folgenden noch genauer erläutert wird,
ist dies beim vorliegenden Ausführungsbeispiel nicht
zwingend der Fall; mit anderen Worten kann also z.B. das Mikroprozessor-System 9 bzw.
das System-Modul 2 (und/oder ein oder mehrere weitere System-Module 3, 4, 5)
an das LIN-Bus-System 1 angeschlossen werden, ohne dass
ein Programm, insbesondere Grundprogramm in die Programmspeichereinrichtung 7 des
entsprechenden Mikrocontroller-Systems 9 geladen ist (und – alternativ – beliebig wählbar auch
mit in die Programmspeichereinrichtung 7 geladenem Programm,
insbesondere Grundprogramm).
-
Um – nach dem
Anschluss des Mikroprozessor-Systems 9 bzw. des System-Moduls 2 an
das LIN-Bus-System 1 – über das
LIN-Bus-System 1 ein Programm,
insbesondere Grundprogramm in die Programmspeichereinrichtung 7 des
Mikroprozessor-Systems 9 zu laden, und/oder ein dort abgespeichertes
Programm, insbesondere Grundprogramm abzuändern, etc., wird das Mikroprozessor-System 9 bzw.
des System-Modul 2 – auf
die im folgenden genauer erläuterte,
spezielle Art und Weise – von
einem Arbeits- bzw. Normalbetriebsmodus in einen Programmiermodus
gebracht.
-
In 2a ist
eine schematische, beispielhafte Darstellung von – während des
Normalbetriebsmodus – gemäß dem Stand
der Technik gemäß LIN-Bus-Protokoll über das
in 1 gezeigte LIN-Bus-System 1 übertragenen
Daten gezeigt.
-
Wie
aus 2a hervorgeht, können – nachdem zu Beginn einer zwischen
dem Master, und einem der Slaves durchgeführten Übertragung ggf. entsprechende
in entsprechenden, hier nicht dargestellten Header-Daten-Blöcken enthaltene
Header-Daten übertragen
worden sind (hier nicht dargestellt) – die eigentlichen, zu übertragenden
Nutz- bzw. Applikations-Daten enthaltende Nutz-Daten-Blöcke 21, 22 über die Übertragungsleitung 1a des LIN-Bus-Systems 1 vom
Master an den jeweiligen Slave (oder umgekehrt) übertragen werden (z.B. nacheinander
jeweils ein Byte an Nutz-Daten enthaltende Nutz-Daten-Blöcke 21, 22,
etc. z.B. vom System-Modul 5 and das System-Modul 2).
-
Die
in den Nutz-Daten-Blöcken 21, 22 enthaltenen
Nutz- bzw. Applikations-Daten können
z.B. auf herkömmliche
Weise unter Steuerung des auf der Programmspeichereinrichtung 7 abgespeicherten Programms
durch die CPU 8 entsprechend verarbeitet, und/oder (vorher
und/oder nachher) auf der Datenspeichereinrichtung 6 abgespeichert
werden, usw.
-
Gemäß LIN-Bus-Protokoll
können
am Ende einer zwischen dem Master, und dem jeweiligen Slave durchgeführten Übertragung
(bzw. am Ende eines entsprechenden Übertragungs-Abschnitts) ein
oder mehrere Prüfbits
versendet werden, z.B. in einem vom Master an den jeweiligen Slave
(oder umgekehrt) übertragenen,
die zu übertragenden
Prüfbits enthaltenden
Prüfsummen-Block 23 (welcher
z.B. ein Byte an Prüfbits
enthalten kann).
-
Die
Prüfbits
können
z.B. vom jeweils sendenden Master bzw. Slave aus der Quersumme bzw. dem
Gewicht (d.h. der Anzahl der jeweiligen Einsen) der jeweils übertragenen
Nutz- und/oder Header-Daten-Blöcke
errechnet werden. Beispielsweise kann – falls ein Nutz-Daten-Block 21, 22 eine
ungerade Anzahl an Einsen enthält – als Prüfbit eine
Null verwendet werden, und – falls
ein Nutz-Daten-Block eine gerade Anzahl an Einsen enthält – als Prüfbit eine
Eins (mit anderen Worten können
als Prüfbits
also z.B. sog. Paritätsbits
verwendet werden).
-
In 2b ist
eine schematische, beispielhafte Darstellung von beim Ausführungsbeispiel
der Erfindung als Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl über das
in 1 gezeigte LIN-Bus-System übertragenen Daten gezeigt.
-
Wie
aus 2b hervorgeht, werden – nachdem zu Beginn einer zwischen
dem Master (z.B. dem System-Modul 5), und einem der Slaves
(z.B. dem System-Modul 2) durchgeführten Übertragung ggf. entsprechende
in entsprechenden, hier nicht dargestellten Header-Daten-Blöcken enthaltene
Header-Daten übertragen
worden sind (hier nicht dargestellt) – entsprechend ähnlich wie
herkömmlich
z.B. entsprechende Nutz- bzw.
Applikations-Daten, bzw. vorteilhaft entsprechende Programmierdaten
enthaltende – den
in 2a gezeigten Nutz-Daten-Blöcken 21, 22 entsprechende – Daten-Blöcke 21', 22' über die Übertragungsleitung 1a des
LIN-Bus-Systems 1 vom Master an den jeweiligen Slave (oder
umgekehrt) übertragen
(bzw. entsprechende „Pseudo"-Nutz-Daten-Blöcke 21', 22' mit nicht zur
Verwendung als Nutz- bzw. Applikations-Daten bestimmten, sondern
als (erster) Teil eines „Normalbetriebs/Programmierbetriebs-Modus-Wechsel-Befehls", bzw. insbesondere
als Programmierdaten verwendeten „Pseudo"-Nutz- bzw. „Pseudo"-Applikations-Daten).
-
Wie
bereits oben unter Bezug auf 2a erläutert, können gemäß LIN-Bus-Protokoll
am Ende einer zwischen dem Master, und dem jeweiligen Slave durchgeführten Übertragung
(bzw. am Ende eines entsprechenden Übertragungs-Abschnitts) ein
oder mehrere Prüfbits
versendet werden, z.B. in einem vom Master an den jeweiligen Slave
(oder umgekehrt) übertragenen,
die zu übertragenden
Prüfbits enthaltenden
Prüfsummen-Block 23' (welcher z.B. ein
Byte an Prüfbits
enthalten kann).
-
Zur Übertragung
eines „Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehls" gemäß dem vorliegenden
Ausführungsbeispiel werden – wie in 2b veranschaulicht
ist – nicht z.B.
entsprechend wie oben erläutert
errechnete bzw. gebildete Prüfbits
versendet, sondern auf vorbestimmte, andersartige Weise errechnete
bzw. gebildete Prüfbits
(d.h. – insgesamt – ein auf
vorbestimmte, andersartige Weise errechneter bzw. gebildeter, bzw.
ein bewusst modifizierter Prüfsummen-Block 23').
-
Beispielsweise
kann (als weiterer Teil eines „Normalbetriebs/Programmierbetriebs-Modus-Wechsel-Befehls") – statt
einem auf herkömmliche
bzw. die oben erläuterte
Weise errechneten bzw. gebildeten Prüfsummen-Block 23 ein
im Vergleich zu diesem inverser Prüfsummen-Block 23' verwendet werden.
-
Zur
Errechnung der in dem – inversen – Prüfsummen-Block 23' enthaltenen
Prüfbits
kann z.B. zunächst
entsprechend wie oben beschrieben z.B. vom jeweils sendenden Master
bzw. Slave die Quersumme bzw. das Gewicht der jeweils übertragenen (Pseudo)Nutz-
bzw. Programmier- und/oder (Pseudo-)Header-Daten-Blöcke
gebildet werden (bzw. es können
entsprechende Paritätsbits
berechnet werden); als nächsten
werden – anders
als oben beschrieben – die
jeweils ermittelten Bits invertiert, und anschließend als
zu übertragende
Prüfbits
verwendet.
-
Beispielsweise
kann – falls
ein (Pseudo-)Nutz- bzw. Programmier- bzw. (Pseudo-)Header-Daten-Daten-Block 21', 22' eine ungerade
Anzahl an Einsen enthält – als Prüfbit statt
einer Null eine Eins verwendet werden, und – falls ein (Pseudo-)Nutz-
bzw. Programmier- bzw. (Pseudo-)Header-Daten-Block 21', 22' eine gerade Anzahl an Einsen enthält – als Prüfbit statt
einer Eins eine Null verwendet werden (mit anderen Worten können als
Prüfbits
also z.B. entsprechend invertierte Paritätsbits verwendet werden, sodass – wie in 2a und 2b gezeigt
ist – statt
einem Prüfsummen-Block 23 mit
z.B, den Bits „11010010" ein hierzu inverser Prüfsummen-Block 23' mit z.B. den
Bits „00101101" über die Übertragungsleitung 1a des
LIN-Bus-Systems 1 vom Master an den Slave (oder umgekehrt) übertragen
wird).
-
Alternativ
oder zusätzlich
kann zur Ermittlung der in einem bewusst modifizierten Prüfsummen-Block 23' enthaltenen
Binärzahl
zu der in einem auf herkömmliche
Weise gebildeten Prüfsummen-Block
enthaltenen (z.B. eine bestimmte Prüfsumme darstellenden) Binärzahl ein
vorbestimmter Offset-Wert (z.B. „00001111", etc.) dazuaddiert werden, etc., etc.
(sodass statt einem – z.B.
eine entsprechende Prüfsumme
enthaltendem – Prüfsummen-Block 23 mit
z.B. den Bits „11010010" ein Prüfsummen-Block 23' mit z.B. den
Bits „1100001" über die Übertragungsleitung 1a des
LIN-Bus-Systems 1 vom Master an den Slave (oder umgekehrt) übertragen
wird).
-
Vorteilhaft
sollte ein bewusst modifizierter Prüfsummen-Block 23' eine gleich
oder ähnlich
gute Prüfabdeckung
bzw. Prüfqualität gewährleisten,
wie ein auf herkömmliche
Weise gebildeter Prüfsummen-Block 23.
-
Zusätzlich sollten
auf herkömmliche
Weise gebildete, und entsprechende, zugehörige, bewusst modifizierte
Prüfsummen-Blöcke 23, 23' jeweils möglichst
weit voneinander distanzierte (insbesondere eine möglichst
große
Hamming-Distanz
aufweisende) Binärzahlen
enthalten.
-
Insbesondere
dann, wenn in der Programmspeichereinrichtung 7 des Mikrocontroller-Systems 9 bzw.
des System-Moduls 2 noch kein Programm, insbesondere Grundprogramm
abgespeichert ist, wird unter Steuerung eines – in einem Start-ROM 10 des Mikrocontroller-Systems 9 bzw.
des System-Moduls 2 fest abgespeicherten – Programms
ermittelt, ob über
das LIN-Bus-System 1 entsprechend
wie oben erläutert
ein „Normalbetriebs/Programmierbetriebs-Modus-Wechsel-Befehl" übertragen worden ist (d.h. – wie in 2b dargestellt – entsprechende
Daten-Blöcke 21', 22', gefolgt von
einem auf vorbestimmte Weise bewusst modifizierten, z.B. inversen Prüfsummen-Block 23'). Bei bereits
vorhandenem, auf der Programmspeichereinrichtung 7 abgespeicherten
(Grund)Programm kann diese Funktion alternativ auch von dem auf
der Programmspeichereinrichtung 7 abgespeicherten Programm übernommen werden.
-
Wird – gesteuert
durch das auf dem Start-ROM 10 (bzw. alternativ: auf der
Programmspeichereinrichtung 7) abgespeicherte Programm – ermittelt,
dass über
das LIN-Bus-System 1 ein
Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl („Change Mode Signal") übertragen
worden ist (d.h. – wie
in 2b dargestellt – entsprechende Daten-Blöcke 21', 22', gefolgt von
einem auf vorbestimmte Weise bewusst modifizierten, z.B. inversen
Prüfsummen-Block 23'), wird das
System-Modul 2, insbesondere das Mikrocontroller-System 9 vom
Normalbetriebsmodus in den Programmiermodus gebracht.
-
Nach
(bzw. unmittelbar vor) dem bewusst modifizierten, z.B. inversen
Prüfsummen-Block 23' übertragene
Daten (insbesondere die in den Daten-Blöcken 21', 22' enthaltenen, dem Prüfsummen-Block 23' zugeordneten
Daten) werden vom System-Modul 2,
insbesondere dem Mikrocontroller-System 9 nicht mehr als
gewöhnliche
Nutz- bzw. Applikationsdaten angesehen, sondern als Programmierdaten
(die in entsprechenden Daten-Blöcken enthaltenen
(z.B. entsprechend wie in 2a bzw. 2b gezeigt über das
LIN-Bus-System 1 übertragenen)
Daten sind somit durch den auf die o.g. Weise bewusst modifizierten,
z.B, inversen Prüfsummen-Block 23' eindeutig als
Programmierdaten gekennzeichnet).
-
Alternativ
können
sämtliche
von dem – auf die
o.g. Weise – in
den Programmiermodus gebrachten System-Modul 2 empfangene,
für dieses
bestimmte Daten im Programmiermodus als Programmierdaten angesehen
bzw. interpretiert werden.
-
Die über das
LIN-Bus-System 1 übertragenen,
an das System-Modul 2 gerichteten
Daten können
dann LIN-Bus-Spezifikationskonform (alternativ jedoch z.B. stets
einem auf modifizierte Weise gebildeten Prüfsummen-Block 23' zugeordnet)
sein, allerdings kann diesen Daten jeweils eine andere Bedeutung
zugewiesen sein, als den entsprechenden Daten im LIN-Bus-Protokoll, bzw. im
Normalbetriebsmodus (z.B. eine „Change Mode Back"-Funktion (s.u.)).
-
Die
auf die o.g. Weise über
das LIN-Bus-System 1 übertragenen,
jeweils eindeutig als Programmierdaten gekennzeichneten (bzw. alternativ
im Programmiermodus wie erläutert
als solche interpretierten) Daten können in der Programmspeichereinrichtung 7 des
System-Moduls 2 bzw. des Mikrocontroller-Systems 9 abgespeichert
werden, d.h. z.B. dazu verwendet werden, nach dem Anschluss des
System-Moduls 2 bzw. des Mikrocontroller-Systems 9 an
das LIN-Bus-System 1 (erstmalig) ein Grundprogramm in die
Programmspeichereinrichtung 7 des System-Moduls 2 bzw.
des Mikrocontroller-Systems 9 zu laden, und/oder ein dort
vorhandenes Grundprogramm abzuändern,
und/oder das eigentliche bzw. kundenspezifische Programm in die Programmspeichereinrichtung 7 des
System-Moduls 2 bzw. des Mikrocontroller-Systems 9 zu
laden, und/oder ein entsprechendes kundenspezifisches Programm entsprechend
abzuändern,
etc.
-
Um
das System-Modul 2, insbesondere das Mikrocontroller-System 9 (zurück) vom
Programmiermodus in den Normalbetriebsmodus zu bringen, kann – statt
dem in 2b gezeigten – auf die
o.g. Weise bewusst modifizierten, z.B. inversen Prüfsummen-Block 23' erneut ein – herkömmlicher,
in 2a gezeigter – (nicht-invertierter)
Prüfsummen-Block 23 verwendet
werden (wodurch die über
das LIN-Bus-System 1 übertragenen
Daten eindeutig als gewöhnliche
Nutz- bzw. Applikationsdaten gekennzeichnet werden können).
-
Vorteilhaft
werden, um das Mikrocontroller-System 9 (zurück) vom
Programmiermodus in den Normalbetriebsmodus zu bringen stattdessen LIN-Bus-Spezifikations-konforme
Daten ausgesendet (ggf. zusammen mit einem entsprechenden z.B. inversen Prüfsummen-Block 23'), wobei diesen
Daten im Programmiermodus (nicht jedoch im Normalbetriebsmodus)
die Bedeutung eines Programmierbetriebs-/Normalbetriebs-Modus-(Rück-)Wechsel-Befehl („Change
Mode Back Signal")
zugewiesen ist.
-
Herkömmliche,
den o.g. Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl („Change
Mode Signal") (und
den o.g. Programmierbetriebs-/Normalbetriebs-Modus-(Rück-)Wechsel-Befehl („Change
Mode Back Signal"))
nicht unterstützende
(LIN-Bus-)System-Module (insbesondere kein entsprechendes Start-ROM 10 bzw.
kein auf die o.g. Weise arbeitendes Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Steuer-Programm aufweisende
System-Module) können
auf übliche
Weise (zusätzlich)
an das LIN-Bus-System 1 angeschlossen, und betrieben werden
(können
jedoch nicht auf die o.g., spezielle Weise von einem Normalbetriebs-Modus
in einen Programmierbetriebs-Modus gebracht werden, und ignorieren
ein entsprechendes auf dem LIN-Bus-System 1 übertragenes „Change Mode
Signal" bzw. „Change
Mode Back Signal").
-
- 1
- LIN-Bus-System
- 1a
- Übertragungsleitung
- 2
- System-Modul
- 2a
- LIN-Bus-Eingang
- 3
- System-Modul
- 3a
- LIN-Bus-Eingang
- 4
- System-Modul
- 4a
- LIN-Bus-Eingang
- 5
- System-Modul
- 5a
- LIN-Bus-Eingang
- 6
- Datenspeichereinrichtung
- 7
- Programmspeichereinrichtung
- 8
- CPU
- 9
- Mikrocontroller-System
- 10
- Start-ROM
- 21
- Nutz-Daten-Block
- 21'
- Programmier-Daten-Block
- 22
- Nutz-Daten-Block
- 22'
- Programmier-Daten-Block
- 23
- Prüfsummen-Block
- 23'
- inverser
Prüfsummen-Block