-
Die
Erfindung betrifft ein Verfahren zum Betreiben eines an ein Bus-,
insbesondere LIN-Bus-System anschliessbaren System-Moduls. Des weiteren
betrifft die Erfindung ein elektronisches Modul, insbesondere Mikroprozessor-
bzw. Mikrocontroller-Modul, z.B. ein an ein Bus-, insbesondere LIN-Bus-System
anschliessbares elektronisches 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.
-
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.
-
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.
-
Zum
Laden eines Programms in den Programmspeicher eines Mikrocontroller-
bzw. Mikroprozessor-Systems, und/oder zum Ändern eines dort abgespeicherten
Programms kann das entsprechende Mikrocontroller- bzw. Mikroprozessor-System
von einem Normalbetriebsmodus in ein Programmiermodus gebracht werden,
z.B. indem an einem vorbestimmten System-Pin ein entsprechendes
Signal angelegt wird.
-
Bei
vielen Anwendungen – insbesondere z.B.
bei LIN-Bus-Mikrocontroller-
bzw. Mikroprozessor-Systemen – ist
der o.g. Pin nach dem Einbau des Mikrocontroller- bzw. Mikroprozessor-Systems, bzw. dem
Anschluss des Mikrocontroller- bzw. Mikroprozessor-Systems an ein
entsprechendes Bus-System von aussen her nicht mehr zugänglich.
-
Deshalb
muss bei herkömmlichen LIN-Bus-Mikroprozessor-Systemen – solange
der o.g. Pin noch zugänglich
ist – zunächst ein
Grundprogramm in den Programmspeicher geladen werden; erst dann
kann das Mikroprozessor-System eingebaut, bzw. an das LIN-Bus-System
angeschlossen werden.
-
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.
-
Die
Erfindung hat zur Aufgabe, ein neuartiges Verfahren zum Betreiben
eines an ein Bus-, insbesondere LIN-Bus-System anschliessbaren System-Moduls,
sowie ein neuartiges elektronisches Modul, insbesondere Mikroprozessor-
bzw. Mikrocontroller-Modul zur Verfügung zu stellen.
-
Sie
erreicht dieses und weitere Ziele durch die Gegenstände der
Ansprüche
1 und 12.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
-
Gemäß einem
ersten Aspekt der Erfindung wird ein Verfahren zum Betreiben eines
an ein Bus-, insbesondere LIN-Bus-System anschliessbaren System-Moduls
zur Verfügung
gestellt, welches die Schritte aufweist:
- – Betreiben
des System-Moduls in einem ersten Betriebsmodus; und
- – Betreiben
des System-Moduls in einem zweiten Betriebsmodus, wenn innerhalb
einer vorbestimmten Zeitdauer (t1) nach Beginn des ersten Betriebsmodus über das
Bus-System ein – vom Bus-System-Protokoll
nicht vorgesehenes – Modus-Start- bzw. Modus-Wechsel-Signal
empfangen wird.
-
Bei
einer bevorzugten Ausgestaltung der Erfindung weist das Verfahren
zusätzlich
den Schritt auf:
- – Betreiben des System-Moduls
in einem dritten Betriebsmodus, wenn innerhalb der vorbestimmten
Zeitdauer (t1) nach Beginn des ersten Betriebsmodus über das
Bus-System kein Modus-Start- bzw. Modus-Wechsel-Signal empfangen
wird.
-
Vorteilhaft
ist der dritte Betriebsmodus ein Normalbetriebsmodus.
-
Besonders
bevorzugt ist der zweite Betriebsmodus ein Programmierbetriebsmodus,
und der erste Betriebsmodus ein Pre-Programmierbetriebsmodus.
-
Gemäß einem
weiteren Aspekt der Erfindung wird ein elektronisches Modul, insbesondere Mikroprozessor-
bzw. Mikrocontroller-Modul zur Verfügung gestellt, welches an ein
Bus-, insbesondere LIN-Bus-System anschliessbar ist, und welches
eine Einrichtung aufweist zum Ermitteln, ob innerhalb einer vorbestimmten
Zeitdauer (t1) nach Beginn eines ersten Modul-Betriebsmodus über das
Bus-System ein Modus-Start- bzw. Modus-Wechsel-Signal empfangen
wird, insbesondere ein – vom
Bus-System-Protokoll nicht vorgesehenes – Modus-Start- bzw. Modus-Wechsel-Signal.
-
Vorteilhaft
ist die Einrichtung so ausgestaltet und eingerichtet, dass dann,
wenn innerhalb der vorbestimmten Zeitdauer (t1) nach Beginn des
ersten Modul-Betriebsmodus über
das Bus-System ein Modus-Start- bzw. Modus-Wechsel-Signal empfangen wird,
ein Wechsel in einen zweiten Modul-Betriebsmodus veranlasst wird, und dass
dann, wenn innerhalb der vorbestimmten Zeitdauer (t1) nach Beginn des
ersten Modul-Betriebsmodus über
das Bus-System kein Modus-Start- bzw.
Modus-Wechsel-Signal empfangen wird, ein Wechsel in einen dritten
Modul-Betriebsmodus veranlasst wird.
-
Im
folgenden wird die Erfindung anhand mehrerer Ausführungsbeispiele
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, 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
bzw. Daten-Signalen;
-
2b eine
schematische, beispielhafte Darstellung von bei einem Ausführungsbeispiel
der Erfindung als Modus-Start- bzw.
Modus-Wechsel-Befehl über
das in 1 gezeigte LIN-Bus-System übertragenen
Daten bzw. Daten-Signalen; und
-
3 eine
schematische, beispielhafte Darstellung von bei einem weiteren Ausführungsbeispiel der
Erfindung als Modus-Start- bzw. Modus-Wechsel-Befehl über das
in 1 gezeigte LIN-Bus-System übertragenen Daten-Signalen,
im Vergleich zum gemäß dem Stand
der Technik, und gemäß dem LIN-Bus-Protokoll übertragenen,
herkömmlichen
Daten-Signalen.
-
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 102a, 202a (die
z.B. mit einer Versorgungs-Spannungs-Leitung, und einer Masse-Leitung
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.).
-
Beispielsweise
kann es sich bei einem oder mehreren der an das in 1 gezeigte
LIN-Bus-System 1 angeschlossenen System-Module 2, 3, 4, 5 um entsprechende
mechatronische Motor-Systeme handeln, bei denen in einem entsprechenden
Motorgehäuse – außer einem
oder mehreren Motoren – auch entsprechende
elektronische Komponenten untergebracht sind, 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.
-
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,
bzw. vor dem Einbau der o.g. elektronischen Komponenten eines entsprechenden
System-Moduls (z.B. des System-Moduls 2) in ein entsprechendes
Gehäuse,
insbesondere Motor-Gehäuse – zunächst ein
Grundprogramm in die Programmspeichereinrichtung eines entsprechenden
Mikrocontroller-Systems (z.B. in die Programmspeichereinrichtung 7 des
Mikrocontroller-Systems 9) geladen werden.
-
Der
Grund ist, dass auf einen – zum
Veranlassen eines Wechsels vom Normalbetriebsmodus in den Programmiermodus
vorgesehenen – Pin
des Mikrocontroller-Systems nach dem Einbau in das o.g. Gehäuse, bzw.
den Anschluss an das LIN-Bus-System
von aussen her nicht mehr zugegriffen werden kann.
-
Demgegenüber kann – wie im
folgenden noch genauer erläutert
wird – bei
den vorliegenden Ausführungsbeispielen
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, bzw. können
die o.g. elektronischen Komponenten z.B. des System-Moduls 2 in
ein entsprechendes Gehäuse, insbesondere
Motor-Gehäuse
eingebaut 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, bzw. nach dem Einbau der o.g. elektronischen
Komponenten z.B. des System-Moduls 2 in ein entsprechendes
Gehäuse,
insbesondere Motor-Gehäuse – ü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, oder einem Vor-Programmiermodus
in einen Programmiermodus gebracht:
Von einer auf dem System-Modul 2 vorgesehenen Einrichtung,
insbesondere z.B. der o.g. Spannungsregulierungs-Einrichtung wird überwacht,
ob an den Spannungs-Versorgungs-Eingängen 102a, 202a (insbesondere
an dem mit der o.g. Versorgungs-Spannungs-Leitung
verbundenen Spannungs-Versorgungs-Eingang 102a) eine entsprechende
Versorgungs-Spannung anliegt, oder nicht. Hierzu kann z.B. überwacht
werden, ob die an den Spannungs-Versorgungs-Eingängen 102a, 202a (insbesondere
die an dem Spannungs-Versorgungs-Eingang 102a) anliegende
Spannung einen vorbestimmten Schwellwert überschreitet.
-
Ist
dies der Fall, kann eine auf dem System-Modul 2 vorgesehene
Zeit-Mess-Einrichtung 101 („Timer") aktiviert werden, und kann ein internes Rücksetz-Signal
(RESET-Signal) des System-Moduls 2 deaktiviert, und ein
interner System-Modul-Taktsignal-Geber
aktiviert werden (sodass durch die Zeit-Mess-Einrichtung 101 die
ab der Ermittlung einer am Spannungs-Versorgungs-Eingang 102a anliegenden
Versorgungs-Spannung,
bzw. die ab dem Deaktivieren des RESET-Signals vergangene Zeit t gemessen
wird (z.B. durch Ermitteln der Anzahl an seitdem vergangenen Takten))
(„Vor-Programmiermodus").
-
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
(oder alternativ – falls
vorhanden – unter
Steuerung durch ein in der Programmspeichereinrichtung 7 des
Mikrocontroller-Systems 9 bzw. des System-Moduls 2 gespeichertes
Programm, insbesondere Grundprogramm, oder – stets, und unabhängig hiervon – durch
das in dem Start-ROM gespeicherte Programm) ermittelt, ob – innerhalb
einer vorbestimmten Zeitdauer t1 nach der
Ermittlung einer am Spannungs-Versorgungs-Eingang 102a anliegenden
Versorgungs-Spannung, bzw. nach dem Deaktivieren des RESET-Signals
(d.h. solange gilt t < t1) – an
dem LIN-Bus-Eingang 2a über das
LIN-Bus-System 1 ein spezieller Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl
(„Change
Mode Signal"), bzw. Programmierbetriebs-Modus-Start-Befehl („Start Bootmode
Signal") übertragen
wird.
-
Als
Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl („Change
Mode Signal"), bzw.
Programmierbetriebs-Modus-Start-Befehl („Start
Bootmode Signal")
kann z.B. ein ausserhalb des LIN-Bus-Protokolls liegendes (bzw.
ein gemäß LIN-Bus-Protokoll nicht erlaubtes
bzw. vorgesehenes) Signal verwendet werden, z.B. – wie in 3 veranschaulicht
ist – ein
Signal (bzw. eine Impuls-Folge), welches einen niedrigeren „logisch
hohen" Spannungspegel
V2 aufweist, als der gemäß LIN-Bus-Protokoll
als für
LIN-Bus-Signale vorgesehene „logisch
hohe" Spannungspegel
V1 (insbesondere einen „logisch
hohen" Spannungspegel
V2, der unter dem vom LIN-Bus-Protokoll definierten Mindest-Spannungs-Pegel
V1, min für „logisch
hohe" Signale liegt);
und/oder ein Signal mit kürzerer
Impuls-Dauer T2, als die gemäß LIN-Bus-Protokoll
für LIN-Bus-Signale
vorgesehene Impuls-Dauer T1 (insbesondere mit einer Impuls-Dauer T2, die kleiner
als die gemäß LIN-Bus-Protokoll
definierte Mindest-Impuls-Dauer T1, min ist), und/oder ein auf beliebig
andere Weise anders als im LIN-Bus-Protokoll definiert geformtes
Signal, usw., usw.
-
Beispielsweise
können – als Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl („Change
Mode Signal"), bzw.
Programmierbetriebs-Modus-Start-Befehl („Start Bootmode Signal") – Signale
bzw. Impuls-Folgen verwendet werden, welche statt einem minimalen „logisch
hohen" Spannungspegel
V1, min von mindestens z.B. 6 V einen mindestens z.B. 5%–20% darunter
liegenden „logisch
hohen" Spannungspegel
V2 von z.B. 5 V aufweisen, und/oder Signale/Impulsfolgen, welche
nicht mit einer maximalen LIN-Bus-Datenrate von z.B. 20 kbit/s übertragen
werden (d.h. entsprechende minimale Impuls-Dauern T1 min aufweisen), sondern
mit einer mindestens z.B. 20%–100%
darüber
liegenden Datenrate (d.h. Signale/Impulsfolgen, welche entsprechend
unter der minimalen Impuls-Dauer T1min liegende Impuls-Dauern aufweisen),
etc.
-
Besonders
vorteilhaft können
alternativ (oder zusätzlich)
zu den auf die o.g. Weise vom LIN-Bus-Protokoll abweichenden Signalen
die weiter unten unter Bezug auf 2b genauer
erläuterten Signale
als Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl, bzw. Programmierbetriebs-Modus-Start-Befehl verwendet
werden.
-
Wird – gesteuert
durch das auf dem Start-ROM 10 (bzw. alternativ: auf der
Programmspeichereinrichtung 7) abgespeicherte Programm – ermittelt,
dass – innerhalb
der o.g. Zeitdauer t1 (die z.B. größer als 1 ms, und z.B. kleiner
als 50 ms, insbesondere kleiner als 20 ms sein kann) – über das LIN-Bus-System 1 ein
Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl („Change
Mode Signal"), bzw.
Programmierbetriebs-Modus-Start-Befehl („Start Bootmode Signal") übertragen
worden ist, wird das System-Modul 2, insbesondere das Mikrocontroller-System 9 vom
Normalbetriebsmodus, bzw. Vor-Programmiermodus in den Programmiermodus gebracht,
insbesondere von einem „prebootmode" – erstmalig – in einen
Programmiermodus, insbesondere in einen „boot"-Modus bzw. „bootstraploader"-Modus.
-
Nach
dem Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl („Change
Mode Signal"), bzw.
dem Programmierbetriebs-Modus-Start-Befehl
(„Start
Bootmode Signal")
(insbesondere unter Verwendung eines entsprechenden Handshake-Verfahrens
von einem an das LIN-Bus-System 1 angeschlossenen Rechner,
insbesondere PC) an das System-Modul 2 übertragene Daten werden vom
System-Modul 2, insbesondere dem Mikrocontroller-System 9 nicht
mehr als gewöhnliche
Nutz- bzw. Applikationsdaten angesehen, sondern als Programmierdaten.
-
Die über das
LIN-Bus-System 1 übertragenen,
an das System-Modul 2 gerichteten
Daten können
dann LIN-Bus-Spezifikationskonform sein; allerdings kann diesen
Daten jeweils eine andere Bedeutung zugewiesen sein, als den entsprechenden
Daten im LIN-Bus-Protokoll, bzw. im Normalbetriebsmodus.
-
Die
auf die o.g. Weise im Programmiermodus über das LIN-Bus-System 1 übertragenen,
an das System-Modul 2 gerichteten (Programmier-)Daten können in
der Programmspeichereinrichtung 7 des System-Moduls 2 bzw.
des Mikrocontroller-Systems 9 abgespeichert werden (ggf.
nach vorheriger Zwischenspeicherung in der Datenspeichereinrichtung 6),
d.h. z.B. dazu verwendet werden, nach dem Einbau bzw. 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.
-
Vorteilhaft
werden, um das Mikrocontroller-System 9 (zurück) vom
Programmiermodus in den Normalbetriebsmodus zu bringen an das System-Modul 2 entsprechende
LIN-Bus-Spezifikationskonforme Daten ausgesendet, 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.
-
Wird
durch das System-Modul 2 – anders als vorher beispielhaft
erläutert – innerhalb
der o.g., vorbestimmten Zeitdauer t1 nach der Ermittlung einer am
Spannungs- Versorgungs-Eingang 102a anliegenden
Versorgungs-Spannung, bzw. nach dem Deaktivieren des RESET-Signals
kein spezieller, am LIN-Bus-Eingang 1a anliegender Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl („Change
Mode Signal"), bzw.
Programmierbetriebs-Modus-Start-Befehl („Start Bootmode Signal") ermittelt, wird
das System-Modul 2 automatisch in den Normalbetriebs-Modus
gebracht.
-
Die über das
LIN-Bus-System 1 an das System-Modul 2 übertragenen
Daten werden dann als gewöhnlich
Nutz- bzw. Applikations-Daten verwendet, und 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.
-
Herkömmliche,
den o.g. Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl („Change
Mode Signal"), bzw.
den Programmierbetriebs-Modus-Start-Befehl („Start Bootmode 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-
bzw. Programmierbetriebs-Modus-Start-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 in einen Programmierbetriebs-Modus
gebracht werden, und ignorieren ein entsprechendes auf dem LIN-Bus-System 1 übertragenes „Change
Mode Signal" bzw. „Start
Bootmode Signal").
-
Im
folgenden wird – anhand
von 2a und 2b – die bereits
oben kurz erwähnte,
alternative Möglichkeit
zur Bildung von als Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl,
bzw. Programmierbetriebs-Modus-Start-Befehl verwendbaren Daten bzw.
Daten-Signalen näher
erläutert.
-
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 (oder z.B. zwischen
verschiedenen Slaves)) ü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 z.B. 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 o.g. alternativen
Ausführungsbeispiel
der Erfindung als Normalbetriebs-/Programmierbetriebs-Modus-Wechsel-Befehl
bzw. Programmierbetriebs-Modus-Start-Befehl über das in 1 gezeigte
LIN-Bus-System übertragbaren
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. „Programmierbetriebs-Modus-Start-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" bzw. „Programmierbetriebs-Modus-Start-Befehls" gemäß dem vorliegenden,
alternativen 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" bzw. „Programmierbetriebs-Modus-Start-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 kann – 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.
-
- 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
- 101
- Zeit-Mess-Einrichtung
- 102a
- Spannungs-Versorgungs-Eingang
- 202a
- Spannungs-Versorgungs-Eingang