-
Die
vorliegende Erfindung betrifft einen Seriell-Parallel-Interface-Baustein
(SPI-Baustein) und ein Verfahren zum Auslesen von Daten aus einem
solchen Baustein.
-
Derartige
SPI-Bausteine sind allgemein bekannt und finden beispielsweise Anwendung
in Insassenschutzsystemen von Kraftfahrzeugen, wie anhand von 1 erläutert wird.
-
An
den SPI-Baustein 10 sind bei solchen Systemen mehrere Sensoren
an parallele Eingänge angeschlossen,
die in regelmäßigen Zeitabständen Sensordaten
zur Verfügung
stellen, die in dem SPI-Baustein abgespeichert werden. Diese gespeicherten
Sensordaten werden durch einen an den SPI-Baustein angeschlossenen
Mikrocontroller 20 ausgelesen, der die Sensordaten auswertet
und im Falle eines anhand der Sensordaten erkannten Unfallereignisses
das Insassenschutzsystem, beispielsweise einen Airbag oder einen
Gurtstraffer, auslöst. Die
Sensordaten sind beispielsweise Druck- oder Beschleunigungsdaten,
anhand derer ein Unfallereignis erkennbar ist.
-
Das
Auslesen der in dem SPI-Baustein gespeicherten Daten erfolgt seriell über einen
Datenausgang DO des SPI-Bausteins 10, der an einen Dateneingang
DI des Mikrocontrollers 20 angeschlossen ist. Der SPI-Baustein 10 weist
ferner einen Chip-Select-Eingang
CSI, der an einen Chip-Select-Ausgang CSO des Mikrocontrollers 20 angeschlossen
ist, einen Befehlseingang DI, der an einen Datenausgang DO des Mikrocontrollers 20 angeschlossen
ist, und einen Takteingang CLK_SPI, der an einen entsprechenden
Taktausgang CLK_MC des Mikrocontroller 20 angeschlossen
ist, auf.
-
Bezugnehmend
auf 2 sendet der Mikrocontroller 20 zum
Auslesen der Sensordaten aus dem SPI-Baustein 10 eine Anfrage
(Request) an den Dateneingang DI des SPI-Bausteins, wobei die Anfrage
den Sensor, dessen Daten ausgelesen werden sollen, spezifiziert.
Der SPI-Baustein wird sowohl zum Empfang einer Anfrage als auch
zum Ausgeben der Daten über
seinen Datenausgang DO über
ein Chip-Select-Signal an seinem Chip-Select-Eingang CSI aktiviert, das in dem dargestellten
Beispiel zur Aktivierung des Bausteins 10 einen Low-Pegel
annimmt. Zum Auslesen von Daten wird während einer ersten Aktivierungsdauer
ta, die auch als Frame Time bezeichnet wird, eine Anfrage an den
SPI-Baustein 10 gesendet, und die ausgelesenen Daten werden während einer
nächsten
Rktivierungsperiode ta an den Mikrocontroller 20 ausgegeben.
Die Aktivierungsdauer ta ist dabei konstant und beispielsweise so
gewählt,
dass während
der Aktivierungsdauer je nach konkreter Implementierung Datenblöcke der Länge 8, 10
oder 16 bit übertragbar
sind.
-
Zwischen
den einzelnen Aktivierungen des SPI-Bausteins ist eine Aktivierungspauee
tp, die auch als Inter-Frame Time bezeichnet wird, einzuhalten,
wodurch die ausgelesenen Daten zeitlich nicht unmittelbar im Anschluss
an die Anfrage an den Mikrocontroller 20 ausgegeben werden
können.
Diese Aktivierungspausen tragen in erheblichem Maß zur Gesamtübertragungsdauer
bei, wie nachfolgend anhand von 3 erläutert wird.
In diesem Beispiel wird jeweils von Aktivierungsdauern ta der Länge 3μs und Aktivierungspausen
tp der Länge
1,5μs ausgegangen.
Zum Auslesen eines SPI-Bausteins mit vier Datenregistern, die durch
angeschlossene Sensoren beschrieben werden, und einem Statusregister,
das Statusinformationen des SPI-Bausteins
enthält,
werden in diesem Fall 25,5μs
benötigt,
wenn während des
Auslesens eines Datenblocks bzw. eines Registers gleichzeitig die
Anfrage zum Auslesen des nächsten
Registers an den SPI-Baustein gesendet wird. 7,5μs, und damit 29,4% der Gesamtauslesedauer
entfallen dabei auf die Aktivierungspausen des SPI-Bausteins.
-
Mit
zunehmender Komplexität
von Insassenschutzsystemen erhöht
sich die Anzahl der eingesetzten Sensoren, und damit auch die Anzahl
der regelmäßig aus
dem SPI-Baustein auszulesenden, Sensordaten enthaltenden Speicher
oder Register. Die Verarbeitungsdauer der Daten, die auch das Auslesen
der Sensordaten aus dem SPI-Register umfasst, sollte trotz des zunehmenden
Datenumfangs jedoch möglichst
kurz sein.
-
Ziel
der vorliegenden Erfindung ist es, einen SPI-Baustein, der ein zeitlich
optimiertes Auslesen von darin gespeicherten Daten ermöglicht,
und ein Verfahren zum optimierten Auslesen eines SPI-Bausteins zur
Verfügung
zu stellen.
-
Dieses
Ziel wird durch einen SPI-Baustein gemäß der Merkmale des Anspruchs
1 erreicht. Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand
der Unteransprüche.
-
Der
SPI-Baustein umfasst mehrere parallele Eingänge zum Zuführen von Daten, eine Speicheranordnung
zum Abspeichern zugeführter
Daten in Datenblöcken,
einen seriellen Befehlseingang und einen seriellen Datenausgang.
Der SPI-Baustein ist dazu ausgebildet, bei Erhalt eines Lesesignals
eines ersten Typs mehrere Datenblöcke unmittelbar aufeinanderfolgend
an dem seriellen Ausgang zur Verfügung zu stellen.
-
Anstelle
eines separaten Lesebefehls pro Datenblock genügt bei dem erfindungsgemäßen SPI-Baustein
eine Lesebefehl des ersten Typs, um mehrere Datenblöcke unmittelbar
aufeinanderfolgend auszugeben. Ein derartiger SPI-Baustein ist insbesondere
für Insassenschutzsysteme
in Kraftfahrzeugen geeignet, die eine Vielzahl von Sensoren aufweisen,
deren Daten in regelmäßigen Zeitabständen einer
Auswerteschaltung bzw. einem Mikrocontroller zur Auswertung zugeführt werden.
Die Daten dieser Sensoren werden in herkömmlicher Weise in dem SPI-Baustein in dafür vorgesehenen
Registern gespeichert, wobei im Gegensatz zu herkömmlichen SPI-Bausteine
die Register nicht einzelnen sondern gemeinsam ausgelesen werden,
so dass am Ausgang des SPI-Bausteins eine Datenfolge zur Verfügung steht,
deren Länge
der Länge
eines Datenblocks multipliziert mit der Anzahl der ausgelesenen Datenblöcke entspricht.
-
Vorzugsweise
ist der SPI-Baustein dazu ausgebildet bei Erhalt eines Lesesignals
eines zweiten Typs in herkömmlicher
Weise einen einzelnen Datenblock an seinem Ausgang zur Verfügung zu
stellen.
-
Bei
dem erfindungsgemäßen Baustein
tritt während
des Auslesevorgangs nach Erhalt des Lesesignals des ersten Typs
nur eine Aktivierungspause auf, wodurch die Gesamtauslesedauer gegenüber herkömmlichen
SPI-Bausteinen erheblich reduziert ist.
-
Bei
einer Ausführungsform
ist vorgesehen, dass der SPI-Baustein
einen separaten Eingang zur Zuführung
des Lesesignals des ersten Typs aufweist und dazu ausgebildet ist,
bei Erhalt eines solchen Lesesignals die aufeinanderfolgenden Datenblöcke unmittelbar
an dem seriellen Ausgang zur Verfügung zu stellen. Hierdurch
kann eine weitere Reduktion der Auslesedauer erzielt werden.
-
Vorzugsweise
ist bei dem SPI-Baustein die Anzahl der unmittelbar aufeinanderfolgend
ausgegebenen Datenblöcke
durch das Lesesignal des ersten Typs einstellbar.
-
Die
vorliegende Erfindung wird nachfolgend anhand von Figuren näher erläutert.
-
1 zeigt
eine Schaltungsanordnung mit einem SPI-Baustein und einem Mikrocontroller.
-
2 und 3 veranschaulichen
den zeitlichen Verlauf von Auslesevorgängen bei einem SPI-Baustein
nach dem Stand der Technik.
-
4 veranschaulicht
den zeitlichen Verlauf eines Auslesevorgangs bei einem erfindungsgemäßen SPI-Baustein.
-
5 zeigt
schematisch den Aufbau eines SPI-Bausteins
zur Erläuterung
eines Auslesevorgangs.
-
6 zeigt
eine Schaltungsanordnung mit einem SPI-Baustein gemäß einer
weiteren Ausführungsform
der Erfindung, der einen separaten Eingang zur Zuführung eines
Lesesignals des ersten Typs aufweist, und mit einem Mikrocontroller.
-
7 veranschaulicht
einen Auslesevorgang bei einem SPI-Baustein gemäß dem weiteren Ausführungsbeispiel.
-
In
den Figuren bezeichnen, sofern nicht anders angegeben gleiche Bezugszeichen
gleiche Teile mit gleicher Bedeutung.
-
4 veranschaulicht
einen Auslesevorgang bei einem erfindungsgemäßen SPI-Baustein, der dazu
ausgebildet ist, bei Erhalt eines Lesesignals eines ersten Typs
mehrere Datenblöcke
unmittelbar aufeinanderfolgend an dem seriellen Ausgang zur Verfügung zu
stellen. Die vorhandenen Anschlüsse eines
solchen SPI-Bausteins entsprechen denen des in 1 dargestellten
Bausteins. Auch die äußere Beschaltung
dieses Bausteins mit Sensoren und einem Mikrocontroller entspricht
der in 1 dargestellten.
-
Der
SPI-Baustein erhält
bezugnehmend auf 4 während einer ersten Aktivierungsperiode
ta ein Lesesignal des ersten Typs, das nachfolgend als Burst-Lesesignal
(Burst Read) bezeichnet ist. Nach einer Aktivierungspause tp gibt
der SPI-Baustein
n Datenblöcke
unmittelbar aufeinanderfolgend an sei nem Datenausgang DO aus, wobei
ein Datenblock die von einer Quelle, beispielsweise einem Sensor, erhaltenen
Daten entspricht.
-
Hierbei
besteht die Möglichkeit,
auf das Burst-Lesesignal hin, alle in dem SPI-Baustein gespeicherten
Datenblöcke
aufeinanderfolgend auszugeben, was insbesondere dann sinnvoll ist,
wenn alle in dem SPI-Baustein gespeicherten Daten in periodischen
Zeitabständen
mindestens einmal ausgelesen werden müssen. Es besteht jedoch auch
die Möglichkeit,
das Burst-Lesesignal
so zu gestalten, dass es Informationen bezüglich der aufeinanderfolgend
auszugebenen Datenblöcke
umfasst, wodurch auf ein Burst-Lesesignal hin, nur die ausgewählten Datenblöcke unmittelbar
aufeinanderfolgend an dem Datenausgang DO zur Verfügung gestellt
werden.
-
Während bei
herkömmlichen
SPI-Bausteinen vor dem Auslesen eines jeden Datenblockes eine Aktivierungspause
einzuhalten ist, tritt bei dem erfindungsgemäßen SPI-Baustein bei einem Burst-Lesevorgang,
bei dem n Datenblöcke
ausgelesen werden, nur eine Aktivierungspause zwischen dem Erhalt
des Burst-Lesesignals
und dem Auslesebeginn auf, wodurch die Auslesedauer erheblich reduziert
werden kann. Im Vergleich zu dem in 3 dargestellten
Beispiel beträgt
bei einer Datenblocklänge
von 3μs
und einer Aktivierungspause von 1,5μs die Gesamtauslesedauer, die
das Übertragen
des Burst-Lesesignals, die Aktivierungspause und das Übertragen
von fünf
Datenblöcken
(die Inhalte von vier Datenregistern und einem Statusregister) umfasst,
nur 19,5μs,
im Vergleich zu 25,5μs
bei dem herkömmlichen
System.
-
Zum
besseren Verständnis
zeigt 5 schematisch den internen Aufbau eines SPI-Bausteins, der
einen Speicher 11 und eine an den Speicher 11 angeschlossene
Auswerteschaltung 12 aufweist. Der Speicher 11 umfasst
mehrere Register, die mit 1 bis n bezeichnet sind, und die jeweils
Sensoren zugeordnet sind, die an Eingängen 111–11n des
SPI-Bausteins anschließbar sind. Über diese
Eingänge 111–11n werden
den einzelnen Registern 1-n Sensordaten SD1-SDn zugeführt und
in dem jeweiligen Register 1-n gespeichert. Die Sensordaten SD1-SDn werden
dem SPI-Baustein 10 üblicherweise
in regelmäßigen Zeitabständen von
den Sensoren zugeführt,
wobei sicherzustellen ist, dass die in den Registern 1-n gespeicherten
Sensordaten zur Weiterverarbeitung in einem Mikrocontroller 20 ausgelesen
werden, bevor die in den Registern 1-n gespeicherten Daten durch
neue Sensordaten überschrieben
werden.
-
Die
Ausleseschaltung 12 ist an den Dateneingang DI des SPI-Bausteins zum Empfang
von Auslesebefehlen angeschlossen. Bei Empfang eines Burst-Lesesignals über den
Dateneingang DI liest die Ausleseschaltung 12 die daran
angeschlossenen Register 1-n unmittelbar aufeinanderfolgend aus
und stellt die ausgelesenen Daten an den Datenausgang DO zur Weiterverarbeitung
in einem Mikrocontroller zur Verfügung.
-
Vorzugsweise
ist der SPI-Baustein 10 auch dazu ausgebildet, herkömmliche
Lesebefehle zu verarbeiten, die je eines der Datenregister 1-n spezifizieren,
um nur den Inhalt eines der Datenregister auszulesen und an dem
Datenausgang DO zur Verfügung zu
stellen.
-
Der
SPI-Baustein 10 kann so ausgebildet sind, dass bei Erhalt
des Burst-Lesesignals alle Datenregister 1-n, einschließlich gegebenenfalls
eines Statusregisters 0, ausgelesen werden. Vorzugsweise ist die
Ausleseschaltung 12 dazu ausgebildet, Burst-Lesesignale
zu interpretieren, die ausgewählte Datenregister
angeben, deren Inhalt unmittelbar aufeinanderfolgend an dem Datenausgang
DO zur Verfügung
gestellt werden sollen. So besteht die Möglichkeit, einen Burst-Lesebefehl
vorzusehen, der die Adresse eines Anfangsregisters und eine Anzahl
der ausgehend von diesem Anfangsregister auszulesenden Datenregister
angibt. Weiterhin besteht die Möglichkeit,
einen Burst-Lesebefehl vorzusehen, der die Adressen einzelner un mittelbar
aufeinanderfolgend auszulesender Datenregister angibt.
-
Der
Burst-Lesebefehl wird in der erläuterten Weise
beispielsweise durch einen Mikrocontroller an den SPI-Baustein geliefert,
wobei die auf den Burst-Befehl von dem SPI-Baustein ausgegebenen Daten
von dem Mikrocontroller weiterverarbeitet werden. Bezugnehmend auf 4 muss
dieser Mikrocontroller 20 dazu ausgebildet sein, auf einen Burst-Lesebefehl
hin, den SPI-Baustein 10 für eine verlängerte Aktivierungsperiode
zu aktivieren, wobei diese verlängerte
Aktivierungsperiode zum Auslesen von n Datenblöcken dem n-fachen einer Aktivierungsperiode
ta entspricht.
-
Bei
einer weiteren Ausführungsform
des erfindungsgemäßen SPI-Bausteins ist vorgesehen, das
Burst-Lesesignal dem SPI-Baustein über einen separaten
Eingang zuzuführen,
wie nachfolgend in 6 erläutert ist. 6 zeigt
einen solchen SPI-Baustein in einer Schaltungsanordnung mit einem
Mikrocontroller 20, der den SPI-Baustein 10 ansteuert.
Der SPI-Baustein 10 weist
eine Anzahl paralleler Eingänge 111–11n auf, über die
dem SPI-Baustein Sensordaten SD1n, SDn zuführbar sind.
-
Der
SPI-Baustein 10 weist neben einem Datenausgang DO einen
Takteingang CLK_SPI sowie einem Befehlseingang DI einen ersten Chip-Select-Eingang
CSI1 und einen zweiten Chip-Select-Eingang CSI2 auf. Der erste Chip-Select-Eingang
CSI1 entspricht dabei dem Chip-Select-Eingang eines herkömmlichen
SPI-Bausteins 10 und dient zur Aktivierung des SPI-Bausteins 10 bei
herkömmlichen
Lesebefehlen, die im Zusammenhang mit der vorliegenden Erläuterung
den Lesebefehlen des zweiten Typs entsprechen.
-
Der
zweite Chip-Select-Eingang CSI2 dient als Signaleingang für den Lesebefehl
des ersten Typs, also den Burst-Lesebefehl.
-
Die
Funktionsweise dieses SPI-Bausteins wird nachfolgend anhand von 7 erläutert.
-
7 zeigt
im linken Teil die Signalverläufe bei
herkömmlichen
Lesevorgängen,
wobei der zweite Chip-Select-Eingang CSI2 während dieser herkömmlichen
Lesebefehle über
ein geeignetes, von dem Mikrocontroller 20 zur Verfügung gestelltes
Signal auf einem High-Pegel gehalten wird, um diesen zweiten Chip-Select-Eingang
CSI2 zu deaktivieren. Der erste Chip-Select-Eingang CSI1 wird in bereits erläuterter
Weise zur Zuführung
eines Lesebefehls oder zur Ausgabe eines Datenblocks jeweils für eine Aktivierungsperiode
ta aktiviert, wozu an diesen ersten Chip-Select-Eingang während dieser
Aktivierungsperiode ta ein Low-Pegel angelegt wird.
-
Ein
Low-Pegel an dem zweiten Chip-Select-Eingang CSI2 wird von dem SPI-Baustein 10 als Burst-Lesebefehl
interpretiert, auf den der SPI-Baustein 10 n Datenblöcke unmittelbar
aufeinanderfolgend an dem Datenausgang DO zur Verfügung stellt.
-
Unabhängig von
der konkreten Implementierung des Burst-Lesebefehls ermöglicht der erfindungsgemäße SPI-Baustein
ein schnelleres Auslesen der in dem Baustein gespeicherten, von
Sensoren gelieferten Daten.
-
Neben
einem schnelleren Auslesen der in dem SPI-Baustein gespeicherten
Daten reduziert der erläuterte
Auslesevorgang bei dem auf den Burst-Lesebefehl hin, mehrere Datenblöcke unmittelbar
aufeinanderfolgend ausgegeben werden, auch den Rechenaufwand in
einem an den SPI-Baustein angeschlossenen Mikrocontroller beziehungsweise
ermöglicht
eine verbesserte Ausnutzung der Rechenleistung des Mikrocontrollers.
-
Hierzu
sei zunächst
das herkömmliche Übertragungsverfahren
gemäß der 2 und 3 betrachtet.
Während
der eigentlichen Datenübertragung,
also während
der Übertragung
der Be fehle an den SPI-Baustein 10 beziehungsweise während des Empfangs
von Daten von dem SPI-Baustein 10 kann der Mikrocontroller 20 parallele
Rechenaufgaben erfüllen.
Während
der Aktivierungspausen tp bereitet der Mikrocontroller 20 die
Kommunikation mit dem SPI-Baustein 10 vor und steht somit
nicht für
parallele Rechenaufgaben zur Verfügung. Zu berücksichtigen
ist hierbei zusätzlich
eine Wechseldauer, die in dem Mikrocontroller 20 benötigt wird,
um von den parallelen Rechenaufgaben auf die Kommunikation mit dem
SPI-Baustein 10 umzuschalten. Betrachtet sei das Beispiel
in 3, bei dem während
einer Auslesedauer von 25,5μs
sechs Datenblöcke übertragen werden.
Davon ausgehend, dass die Zeitdauer, die der Mikrocontroller benötigt, um
von der Kommunikation mit dem SPI-Baustein auf parallele Rechenaufgaben
umzuschalten, 400mn beträgt,
steht der Mikrocontroller während
jedes ausgelesenen Datenblocks 2,2μs (=3μs – 2·0,4μs) für parallele Rechenaufgaben – während der
Gesamtdauer vom 25,5μs also
nur für
13,2μs – für parallele
Rechenaufgaben zur Verfügung,
während
die übrigen
12,3μs für die Kommunikation
mit dem SPI-Baustein oder die Aufgabenwechsel (Task Wechsel) benötigt werden.
-
Betrachtet
man einen erfindungsgemäßen Lesevorgang
gemäß 4 für n = 5
und unter der Annahme, dass die Dauer zur Übertragung eines Datenblocks
3μs und
die Aktivierungspause 1,5μs
beträgt,
so beträgt
die Gesamtübertragungsdauer
dieses Auslesevorgangs wie erläutert,
19,5μs.
Unter Berücksichtigung
einer Task-Wechsel-Dauer von 400ns steht der Mikrocontroller während der Übertragung des
burst-Lesebefehls für
2,2ns für
parallele Aufgaben und während
der anschließenden Übertragung des
Datenblocks für
14,2μs (=5·3μs-2·0,4μs) für parallele
Rechenaufgaben zur Verfügung.
Insgesamt steht Mikrocontroller somit während der kürzeren Übertragungsdauer von 19,5μs für 16,4μs für parallele
Rechenaufgaben zur Verfügung.
Die Kommunikation mit dem SPI-Baustein einschließlich der Wechseldauer beträgt in diesem
Fall lediglich 3,1μs,
was einer Reduktion gegenüber
dem zuvor erläuterten Fall
etwa 75% entspricht.
-
Neben
einer Verkürzung
der Auslesedauer ermöglicht
der erfindungsgemäße SPI-Baustein
somit auch eine effizientere Nutzung der Rechenleistung in einem
den SPI-Baustein während
des Betriebs ansteuernden Mikrocontroller.
-
- 10
- SPI-Baustein
- 20
- Mikrocontroller
- ta
- Aktivierungsperiode
- tp
- Aktivierungspause
- DI
- Befehlseingang
- DO
- serieller
Datenausgang
- 111–11n
- Dateneingänge
- SD1-SDN
- Daten
- CS1
- erster
Chip-Select-Eingang
- CS2
- zweiter
Chip-Select-Eingang
- CS
- Chip-Select-Eingang
- CLK_SPI
- Takteingang