-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft im allgemeinen serielle Schnittstellen
zur Datenübertragung zwischen
einer Steuereinheit und externen Peripheriegeräten und insbesondere eine SPI-Schnittstelle und
ein entsprechendes Verfahren zu ihrer Verwaltung.
-
Hintergrund der Erfindung
-
Serielle
Schnittstellen zur Datenübertragung zwischen
einer Steuereinheit und Peripheriegeräten sind verbreitet verwendete
Vorrichtungen. Serielle Schnittstellen oder kurz SPI (serielle Peripherieschnittstelle)
sind für
gewöhnlich
mit Mikroprozessoren und Peripheriegeräten verbunden.
-
Eine
typisches Blockdiagramm einer SPI-Schnittstelle wird in 1 dargestellt.
-
Eine
Steuerschaltung PIN_CONTROL_LOGIC weist einen Stift SCK, um abhängig davon,
ob sich die SPI in einer Neben- bzw. in einer Hauptvorrichtung befindet,
entweder ein Taktsignal zu empfangen oder auszugeben, und ein Paar
Eingangs-/Ausgangsstifte MISO (Haupt Ein/Neben Aus) und MOSI (Haupt
Aus/Neben Ein) und einen weiteren Stift SS auf, der als „Nebenauswahl" arbeitet, um von
außerhalb
die SPI-Schnittstelle als Nebenvorrichtung zu konfigurieren, oder
um ein externes Peripheriegerät
auszuwählen.
Wenn sich die Schnittstelle in einer Hauptvorrichtung befindet,
dann ist der Stift MISO der Eingang von Signalen, die von der Nebenvorrichtung
kommen, und die Stifte MOSI und SS sind Ausgangsstifte der Signale
für die
Nebenvorrichtung, während
das Gegenteil passiert, wenn sich die SPI-Schnittstelle in einer
Nebenvorrichtung befindet.
-
Ein
Paar von FIFO-Speicherpuffern, TRANSMIT_BUFFER und RECEIVE_BUFFER,
in denen Daten, die übertragen
werden sollen, und die empfangenen Daten gespeichert werden, sind
an einen Bus DATA_IN für
Daten, die zu den Peripheriegeräten übertragen
werden sollen, für
Adressen ADDR von Speicherstellen, in denen Durchgangsdaten gespeichert
werden, und für
Daten angeschlossen, die von den angeschlossenen Peripheriegeräten DATA_OUT
empfangen werden. Schieberegister, RECEIVE SHIFT REGISTER und TRANSMIT
SHIFT REGISTER, empfangen bzw. übertragen
zur Schaltung PIN CONTROL CIRCUIT empfangene Daten oder Daten, die übertragen
werden sollen.
-
Die
Puffer sind an die Schaltungsblöcke
angeschlossen: POINTER, CURRENT POINTER, die einen Zeiger auf die
einzelnen Bits der Speicherstelle erzeugen, die gelesen werden soll.
Genauer gesagt erhöht
der Zähler
POINTER den gegenwärtigen
Wert des Zeigers, der im Register CURRENT POINTER gespeichert ist.
Der Komparator COMP vergleicht den gegenwärtigen Wert des Zeigers mit
einem vorher festgelegten Maximalwert, der durch den Block END POINTER
erzeugt wird, der schließlich
signalisiert, daß alle
Bits des Wortes gelesen worden sind, wenn der Maximalwert erreicht
worden ist.
-
Das
Steuerregister CTRL tauscht mit der Steuerschaltung PIN CONTROL
LOGIC Informationen aus, die zum Konfigurieren der SPI-Schnittstelle benötigt werden.
Es kann außerdem
einen bestimmten Vorgabewert in die Schaltung CURRENT POINTER laden.
-
Eine
andere Art der SPI-Schnittstelle ist die sogenannte „Warteschlangen-SPI" (QSPI), die in
US 4,816,996 und
US 4,958,277 von S.C. Hill
u.a. offenbart und schematisch in
2 dargestellt
wird. Sie unterscheidet sich von der Schnittstelle der
1,
da die Daten, die übertragen
und empfangen werden sollen, nicht in einem Paar FIFO-Puffern, sondern
in ei nem RAM-Speicher zusammen mit Befehlen gespeichert werden,
die ausgeführt
werden sollen.
-
Im
wesentlichen wird der RAM-Speicher verwendet, um Durchgangsdaten
zwischen Schnittstellen und Peripheriegeräten zu speichern und Befehle zu
steuern, die benötigt
werden, um die Länge
und das Ziel von Daten zusammen mit anderen Parametern anzugeben,
die mit jeder Übertragung
verbunden sind. Die Steuerschaltung weist „Chip-Auswahl"-Stifte CS[0-n] zum
Auswählen
eines Peripheriegeräts
auf, mit dem kommuniziert werden soll, wenn sich die Schnittstelle
in einer Hauptvorrichtung befindet; während die Stifte CS nicht verwendet
werden, wenn sich die Schnittstelle in einer Nebenvorrichtung befindet.
Die Information, die zur Festlegung des gewünschten „Chip-Auswahl"-Werts an dem relativen
Stift benötigt
wird, wird an die Steuerschaltung durch den RAM-Speicher geliefert.
-
Der
RAM-Speicher ist in drei Speicherabschnitten RECEIVE RAM, TRANSMIT
RAM und COMMAND RAM organisiert, die empfangene Daten, zu übertragende
Daten bzw. Befehle zum Konfigurieren der Schnittstelle in der erwünschten
Betriebsart enthalten. Der Zeiger, der an den Block CURRENT POINTER
geliefert wird, wird verwendet, um gleichzeitig auf ein bestimmtes
Wort im Speicherabschnitt RECEIVE RAM, ein bestimmtes Wort im Speicherabschnitt
TRANSMIT RAM und ein Byte im Speicherabschnitt COMMAND RAM zu zeigen,
die durch die Adresse identifiziert werden, die auf dem Bus ADDR
angegeben wird. Die auszuführenden Konfigurationsbefehle
werden durch einen externen Kontroller jedesmal an die Schnittstelle
geliefert, wenn ein Datenwert durch die Schnittstelle geht.
-
Diese
Architektur ist vorteilhafter als jene der 1, da jedesmal,
wenn zu übertragende
Daten und ein Konfigurationsbefehl in den RAM-Speicher geschrieben
worden sind, die Schnittstelle die programmierten Übertragungen
ausführen
kann, indem einfach der Zeiger, der durch den CURRENT POINTER erzeugt
wird, ohne den Eingriff eines externen Kontrollers erhöht wird.
Wenn der zu übertragende Datenwert
in den Speicher geschrieben worden ist, kann er außerdem viele
Male ohne jegliche weitere Schreiboperationen im Speicher erneut
zu unterschiedlichen Peripheriegeräten übertragen werden, indem einfach
die Bits des Konfigurationsbefehls ausgetauscht werden, die die
unterschiedlichen Ziele identifizieren.
-
Jedoch
erfordern QSPI-Schnittstellen das Schreiben eines Befehls in den
Speicherabschnitt COMMAND des RAM-Speichers durch einen externen
Kontrollen, jedesmal wenn ein Datenwert ausgetauscht wird, der zu
einem Peripheriegerät übertragen
oder von ihm empfangen wird. Dies stellt aufgrund der Last, die
dem externen Kontrollen auferlegt wird, dessen Architektur mit einem
spezifischen Schaltungskomplex belastet werden muß, einen Nachteil
dar.
-
Aufgabe und Zusammenfassung
der Erfindung
-
Es
ist gefunden worden und ist der Gegenstand dieser Erfindung eine
serielle Schnittstelle zur Kommunikation mit Peripheriegeräten, die
es nicht benötigt,
daß ein
externer Kontrollen bei jedem Datenaustausch mit den angeschlossen
Peripheriegeräten
Befehle liefert.
-
Im
wesentlichen weist die Schnittstelle dieser Erfindung einen RAM-Speicher
auf, der mit mindestens einem externen Datenbus zur Übertragung von
Daten, die von einem Peripheriegerät übertragen oder durch es empfangen
werden sollen, und mit einem externen Adreßbus gekoppelt ist, auf dem Adressen
empfangen werden, an denen Daten gespeichert werden sollen, die übertragen
oder empfangen werden sollen, mit
- – einem
Speicherabschnitt zur Speicherung von zu übertragenden Daten,
- – einem
Speicherabschnitt zur Speicherung empfangener Daten und
- – einem
Speicherabschnitt zur Speicherung von Konfigurationsbefehlen der
Schnittstelle.
-
Wie
eine bekannte Warteschlangen-SPI-Schnittstelle weist die Schnittstelle
der Erfindung ferner auf: Schaltungseinrichtungen zur Erzeugung
von Zeigern auf die einzelnen Bits der Worte, die in den Speicherabschnitten
adressiert werden, Schaltungseinrichtungen zur seriellen Übertragung von
Daten aus oder zu mindestens einem Peripheriegerät, das an die Schnittstelle
anschließbar
ist, die an den Speicher gekoppelt sind und den Konfigurationsbefehl
ausführen,
auf den im Speicherabschnitt zur Speicherung von Befehlen gezeigt
wird, und ein relatives Steuerregister, das an den Speicher und
an die Schaltungseinrichtungen zur seriellen Übertragung gekoppelt ist, das
die Übertragung
der Daten steuert, die übertragen
oder empfangen werden sollen.
-
Im
Unterschied zu Warteschlangen-SPI-Schnittstellen benötigt die
Schnittstelle dieser Erfindung es nicht, daß ein externer Kontroller Konfigurationsbefehle
für jeden
Datenwert liefert, der übertragen
oder empfangen werden soll. Erfindungsgemäß sind die Speicherabschnitte
zur Speicherung von Daten in unterschiedliche Speicherplätze unterteilt,
und jeder Speicherplatz ist dazu bestimmt, Daten zu speichern, die
ein jeweiliges Peripheriegerät betreffen,
das an die Schnittstelle angeschlossen ist, der Speicherabschnitt,
der dazu bestimmt ist, Befehle zu speichern, enthält alle
Konfigurationsbefehle der Schnittstelle zur Kommunikation mit Peripheriegeräten, die
an sie angeschlossen sind, und die Schnittstelle weist ferner eine
zusätzliche
Schaltung zur Erzeugung von Adressen für den Speicherabschnitt auf,
der die Konfigurationsbefehle speichert. Diese Schaltung wird mit
Adressen versorgt, die auf dem externen Adreßbus bereitgestellt werden,
und erzeugt als Funktion von ihnen entsprechende Adressen, an denen
die passenden Konfigurationsbefehle gespeichert werden, die ausgeführt werden sollen.
-
Eine
weitere Aufgabe der Erfindung ist ein Verfahren zur Verwaltung einer
seriellen Peripherieschnittstelle der Erfin dung, das aufweist.
- – Initialisieren
der Schnittstelle durch Laden in den Speicherabschnitt, der dazu
bestimmt ist, Befehle zu speichern, aller Konfigurationsbefehle
der Schnittstelle zur Kommunikation mit den an sie angeschlossenen
Peripheriegeräten;
- – Zuordnen
zu jedem angeschlossenen Peripheriegerät jeweiliger Speicherplätze der
Speicherabschnitte zur Speicherung von Daten, in die Daten gespeichert
werden sollen, die sich von oder zu ihm unterwegs befinden;
- – für jede Adresse
auf dem Adreßbus,
Erzeugen einer entsprechenden Adresse des Speicherabschnitts, der
die Konfigurationsbefehle enthält;
- – zum Übertragen
eines Datenwerts zu einem bestimmten Peripheriegerät, Senden
auf dem Adreßbus
einer Adresse des Speicherabschnitts zur Speicherung von zu übertragenden
Daten, der dem Peripheriegerät
zugeordnet ist, und Konfigurieren der Schnittstelle gemäß der Befehle,
die an den entsprechenden Adressen des Speicherabschnitts gespeichert
sind, der die Konfigurationsbefehle enthält;
- – zum
Empfangen eines Datenwerts von einem bestimmten Peripheriegerät, Senden
auf dem Adreßbus
einer Adresse des Speicherabschnitts zur Speicherung empfangener
Daten, der dem Peripheriegerät
zugeordnet ist, und Konfigurieren der Schnittstelle gemäß der Befehle,
die an den entsprechenden Adressen des Speicherabschnitts gespeichert
sind, der die Konfigurationsbefehle enthält.
-
Praktisch
werden Daten, die durch die Schnittstelle übermittelt werden, abhängig vom
Peripheriegerät,
das sie betreffen, an unterschiedliche Adressen geschrieben. Daher
ist es ausreichend, die Speicheradresse anzugeben, an der der zu übertragende
Datenwert gespeichert wird oder an der ein empfangener Datenwert
gespeichert werden soll, um das Peripheriegerät, zu dem der Datenwert gehört, und
daher die passenden Konfigurationsbefehle der Schnittstelle zu identifizieren,
die ausgeführt
werden sollen, da der Konfigurationsspeicher vorbereitend mit allen
Konfigurationsbefehlen beschrieben worden ist, die zur Kommunikation
mit den angeschlossenen Peripheriegeräten verwendet werden können.
-
Auf
diese Weise ist der externe Kontroller nicht mehr mit irgendeiner
Schnittstellen-Konfigurationsaufgabe während des Datenaustauschs beschäftigt.
-
Diese
Erfindung wird in den beigefügten
Ansprüchen
präziser
festgelegt.
-
Kurze Beschreibung der
Zeichnungen
-
Die
unterschiedlichen Aspekte und Vorteile der Erfindung werden aus
einer detaillierten Beschreibung noch deutlicher hervorgehen, wobei
auf die beigefügten
Zeichnungen Bezug genommen wird. Es zeigen:
-
1 ein
Blockdiagramm der Architektur einer bekannten SPI-Schnittstelle;
-
2 die
Architektur einer bekannten Warteschlangen-SPI-Schnittstelle;
-
3 ein
Blockdiagramm der Schnittstelle der Erfindung, die einen Speicherabschnitt
aufweist, der alle Konfigurationsbefehle der Schnittstelle für alle angeschlossenen
Peripheriegeräte
enthält.
-
Beschreibung der Ausführungsform
der Erfindung
-
Ein
Blockdiagramm der SPI-Schnittstelle der Erfindung wird in 3 dargestellt.
-
Wie
bemerkt werden kann, ist ihre allgemeine Architektur ähnlich zu
jener einer Warteschlangen-SPI, jedoch gibt es anstelle des Blocks
COMMAND RAM einen Konfigurationsspeicher, MODE RAM, und einen Generator
von Zeigern darauf, POINTER RAM. Die Größe des Konfigurationsspeichers
wird durch die Anzahl der Befehle bestimmt, deren Ausführung erforderlich
sein kann und folglich durch die Anzahl der externen Peripheriegeräte, die durch
die Schnittstelle gekoppelt werden können, wobei jedes durch die
Aktivierung einer jeweiligen „Chip-Auswahl" CS[0-n] ausgewählt wird.
-
Die
Schnittstelle dieser Erfindung wird gemäß eines Verfahrens verwaltet,
das eine Initialisierungsphase beabsichtigt, in der der Speicher
MODE RAM mit allen erforderlichen Konfigurationsbefehlen programmiert
wird. Dies muß geschehen,
da die Peripheriegeräte,
die an die Vorrichtung angeschlossen sind, die die Schnittstelle
enthält,
nur nach der Initialisierung der Schnittstelle erkannt werden.
-
Danach
werden unterschiedliche Speicherplätze der Speicherabschnitte,
die dazu bestimmt sind, zu übertragende
Daten, TRANSMIT RAM, und empfangene Daten, RECEIVE RAM, zu speichern, jedem
angeschlossenen Peripheriegerät
zugeordnet. Diese Anordnung des Speicherplatzes erlaubt es zu wissen,
indem einfach eine bestimmte Adresse auf dem Bus ADDR angegeben
wird, ob entweder ein zu übertragender
oder zu empfangender Datenwert gespeichert werden muß und welches
das betroffene Peripheriegerät
ist.
-
Nehmen
wir zum Beispiel an, daß sich
die Schnittstelle in einer Hauptvorrichtung befindet und daß ein Datenwert übertragen
werden muß,
der mit dem Peripheriegerät
verbunden ist, das durch die Chip-Auswahl „X" identifiziert wird. Im Fall einer Warteschlangen-SPI
des Stands der Technik muß ein
externer Kontroller jeweilige Konfigurationsbefehle für jeden
zu übertragenden
Datenwert bereitstellen, während
es im Fall einer SPI-Schnittstelle
dieser Erfindung ausreicht, den Datenwert und eine relative Adresse
ADDR bereitzustellen, die einer bestimmten Adresse „X" des Speicherabschnitts
TRANSMIT. RAM entsprechen wird.
-
Tatsächlich übermittelt
die Adresse ADDR, an der der Datenwert gespeichert werden muß, an die
Schnittstelle auch die Tatsache, daß es notwendig ist, einen Datenwert
zum Peripheriegerät
X zu übertragen,
wobei sie darüber
hinaus festlegt, daß der
Datenwert im Speicherabschnitt TRANSMIT RAM an der Adresse X gespeichert
werden muß.
Außerdem
empfängt
der Block POINTER RAM die Adresse auf dem Bus ADDR und leitet aus
ihr die Adressen des Speichers MODE RAM ab, in dem die Befehle der
Konfiguration der Schnittstelle zum Übertragen des Datenwerts zum
Peripheriegerät,
die durch die Chip-Auswahl „X" identifiziert wird,
gespeichert sind.
-
Wenn
sich die Schnittstelle dieser Erfindung in einer Nebenvorrichtung
befindet, dann betrifft die Adresse auf dem Bus ADDR den Speicherabschnitt RECEIVE
RAM und wird einer Adresse des Speichers MODE RAM zugeordnet, an
der der geeignete Konfigurationsbefehl gespeichert ist, der in der
Empfangsbetriebsart ausgeführt
werden soll.
-
Die
Schnittstelle dieser Erfindung läßt es zu, Datenübertragungs-
und -Empfangsoperationen auszuführen,
ohne daß es
notwendig ist, daß ein
externer Kontroller jedesmal einen geeigneten Konfigurationsbefehl
zu der Schnittstelle sendet. Auf diese Weise kann, während die
Möglichkeit
bewahrt wird, die Anzahl und den Typ der Peripheriegeräte, die
an der Schnittstelle angeschlossen sind, gemäß der Bedürfnisse des Benutzers zu variieren,
die Struktur des externen Kontrollers beträchtlich vereinfacht werden.