Der
vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die programmgesteuerte
Einheit gemäß dem Oberbegriff
des Patentanspruchs 1 derart weiterzubilden, daß sich innerhalb der programmgesteuerten
Einheit auftretende Datenverluste, die durch zu kleine Sendepuffer
oder Empfangspuffer entstehen können,
mit geringem Aufwand vermeiden lassen.
Diese
Aufgabe wird erfindungsgemäß durch die
in Patentanspruch 1 beanspruchte programmgesteuerte Einheit gelöst.
Die
erfindungsgemäße programmgesteuerte Einheit
zeichnet sich dadurch aus, daß die Übertragung
von Daten von und/oder zu einer ersten Einrichtung über eine
außerhalb
der ersten Einrichtung vorgesehene und ebenfalls zu den mit über den
wenigstens einen Bus miteinander verbundenen Einrichtungen gehörende zweite
Einrichtung erfolgt, und daß diese
zweite Einrichtung als vollständiger
oder teilweiser Ersatz für
die ansonsten in den ersten Einrichtungen vorzusehenden Pufferspeicher
verwendet wird, so daß die
ersten Einrichtungen ohne oder mit kleineren internen Pufferspeichern
auskommen als es ohne die zweite Einrichtung der Fall wäre.
Diese
zweite Einrichtung kann gleichzeitig oder abwechselnd von verschiedenen
ersten Einrichtungen als Sendepuffer und/oder als Empfangspuffer verwendet
werden. Dabei kann die Speicherkapazität der zweiten Einrichtung erheblich
geringer sein als die Summe der Speicherkapazitäten der durch die zweite Einrichtung
ersetzten Pufferspeicher, denn es ist höchst unwahrscheinlich, daß sämtliche
Pufferspeicher, die in den ersten Einrichtungen vorzusehen wären, wenn
keine zweite Einrichtung vorgesehen wäre, voll belegt sind. Dadurch
lassen sich solche Mikrocontroller kleiner und billiger herstellen
als herkömmliche
Mikrocontroller mit vergleichbarer Leistungsfähigkeit. Wählt man die Speicherkapazität der zweiten
Einrichtung größer als
die Speicherkapazität des
größten ersetzten
Sendepuffers oder Empfangspuffers, so sinkt trotz des geringeren
Hardware-Aufwandes sogar die Wahrscheinlichkeit von Datenverlusten.
Vorteilhafte
Weiterbildungen der Erfindung sind der folgenden Beschreibung, den
Figuren und den Unteransprüchen
entnehmbar.
Die
Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Bezugnahme
auf die Figuren näher
erläutert.
Es zeigen
1 einen
die Besonderheiten der hier vorgestellten programmgesteuerten Einheit
veranschaulichenden Teil derselben,
2 eine
alternative Ausführungsform
des in der 1 gezeigten Teils der programmgesteuerten
Einheit,
3 eine
weitere alternative Ausführungsform
des in der 1 gezeigten Teils der programmgesteuerten
Einheit,
4 den
prinzipiellen Aufbau einer programmgesteuerten Einheit, und
5 den
Aufbau eines herkömmlichen I/O-Controllers
und eines herkömmlichen
Analog/Digital-Wandlers.
Bei
den im folgenden beschriebenen programmgesteuerten Einheiten handelt
es sich um Mikrocontroller. Es könnte
sich jedoch auch um beliebige andere programmgesteuerte Einheiten
wie Mikroprozessoren oder Signalprozessoren handeln.
Die
im folgenden beschriebenen Mikrocontroller entsprechen weitgehend
dem eingangs unter Bezugnahme auf die 4 und 5 gezeigten
und unter Bezugnahme darauf beschriebenen Mikrocontroller. Insbesondere
weisen auch die im folgenden beschriebenen Mikrocontroller wenigstens
einen Bus und über
den wenigstens einen Bus miteinander verbundene Einrichtungen auf,
wobei die über
den wenigstens einen Bus miteinander verbundenen Einrichtungen erste
Einrichtungen umfassen,
- – die an eine der jeweils anderen
Einrichtungen, die über
den wenigstens einen Bus miteinander verbunden sind, Daten übertragen,
und/oder
- – an
die von einer der jeweils anderen Einrichtungen, die über den
wenigstens einen Bus miteinander verbunden sind, Daten übertragen
werden.
Darüber hinaus
sind auch in den im folgenden beschriebenen Mikrocontrollern Pufferspeicher zur
Zwischenspeicherung von zu übertragenden oder übertragenen
Daten vorgesehen.
Allerdings
unterscheiden sich der Aufbau und das Verhalten der ersten Einrichtungen
der im folgenden beschriebenen Mikrocontroller vom Aufbau und vom
Verhalten der entsprechenden Einrichtungen des Mikrocontrollers
gemäß den 4 und 5.
Insbesondere weisen die ersten Einrichtungen der im folgenden beschriebenen
Mikrocontroller keine oder zumindest erheblich kleinere Sendepuffer und/oder
Empfangspuffer zur Zwischenspeicherung der von den ersten Einrichtungen
auszugebenden oder empfangenen Daten auf. Statt dessen erfolgt die Übertragung
von Daten von und/oder zu einer ersten Einrichtung über eine
außerhalb
der ersten Einrichtung vorgesehene und ebenfalls zu den mit über den
wenigstens einen Bus miteinander verbundenen Einrichtungen gehörende zweite
Einrichtung, und wird diese zweite Einrichtung als vollständiger oder
teilweiser Ersatz für
die ansonsten in den ersten Einrichtungen vorzusehenden Pufferspeicher
verwendet, so daß die
ersten Einrichtungen ohne oder mit kleineren internen Pufferspeichern
auskommen als es ohne die zweite Einrichtung der Fall wäre.
Es
sei bereits an dieser Stelle erwähnt,
daß von
den im folgenden vorgestellten Mikrocontrollern nur die vorliegend
besonders interessierenden Komponenten gezeigt und beschrieben sind.
Der
in der 1 gezeigte Mikrocontroller enthält einen
Bus 101 und über
den Bus 101 miteinander verbundene Einrichtungen 102-1 bis 102-n, wobei
die Einrichtung 102-1 eine CPU sei, die Einrichtung 102-2 ein
I/O-Controller sei, die Einrichtung 102-4 ein Analog/Digital-Wandler
sei, die Einrichtung 102-n ein Pufferspeicher sei, und
die restlichen der am Bus 101 angeschlossenen Einrichtungen
beliebige andere Mikrocontroller-Komponenten
seien, und beispielsweise einen DMA-Controller, eine oder mehrere
Speichereinrichtungen, einen oder mehrere Timer, Digital/Analog-Wandler,
etc. umfassen. Der Vollständigkeit
halber sei darauf hingewiesen, daß über den Bus 101 auch
mehr Einrichtungen, oder weniger Einrichtungen, und/oder andere
Einrichtungen miteinander verbunden sein können. Insbesondere besteht
auch keine Einschränkung
darauf, daß die
Einrichtung 102-2 ein I/O-Controller ist, und daß die Einrichtung 102-4 ein
Analog/Digital-Wandler ist. Diese Einrichtungen können auch
beliebige andere Einrichtungen sein, die an eine der jeweils anderen
Einrichtungen, die über
den Bus 101 miteinander verbunden sind, Daten übertragen,
und/oder an die von einer der jeweils anderen Einrichtungen, die über den
Bus 101 miteinander verbunden sind, Daten übertragen
werden.
Die
Einrichtungen 102-4 bis 102-4 sind Einrichtungen,
die nicht Bus-Master werden können, also
Bus-Slaves sind. Im betrachteten Beispiel sei angenommen, daß nur die
CPU 102-1 des Mikrocontrollers Bus-Master ist. Beim Bus 101 könnte es
sich aber auch um einen Multi-Master-Bus handeln, bei welchem beispielsweise
zusätzlich
ein DMA-Controller Bus-Master werden könnte.
Zumindest
ein Teil der Einrichtungen, die an eine der jeweils anderen Einrichtungen,
die über
den Bus 101 miteinander verbunden sind, Daten übertragen
können,
und/oder an die von einer der jeweils anderen Einrichtungen, die über den
Bus 101 miteinander verbunden sind, Daten zugeführt bekommen können, im
betrachteten Beispiel der I/O-Controller 102-2 und der
A/D-Wandler 102-4, sind über zusätzliche Leitungen oder Busse
ein zweites Mal mit dem Pufferspeicher 102-n verbunden.
Genauer gesagt ist der I/O-Controller 102-2 über eine
zusätzliche
Leitung oder einen zweiten Bus 103 und eine beispielsweise
durch einen Multiplexer gebildete Umschalteinrichtung 104 ein
zweites Mal mit dem Pufferspeicher 102-n verbunden, und
ist der Analog/Digital-Wandler 102-4 über eine zusätzliche
Leitung oder einen dritten Bus 105 und die Umschalteinrichtung 104 ein
zweites Mal mit dem Pufferspeicher 102-n verbunden. Im
folgenden sei angenommen, daß es sich
bei den mit den Bezugszeichen 103 und 105 bezeichneten
Mikrocontroller-Bestandteile um Busse handelt.
Der
Pufferspeicher 102-n wird im betrachteten Beispiel durch
ein oder mehrere FIFOs oder durch eine sich wie ein oder mehrere
FIFOs verhaltende Einrichtung gebildet.
Der
Pufferspeicher 102-n dient im betrachteten Beispiel als
Ersatz für
die bisher in den Einrichtungen 102-2 und 102-4 vorgesehenen
Sendepuffer und/oder Empfangspuffer. Dadurch können die in herkömmlichen
I/O-Controllern vorgesehenen Sende- und/oder Empfangspuffer (Bezugszeichen 404 und 406 in 5),
und die in herkömmlichen
Analog/Digital-Wandlern vorgesehenen Sendepuffer (Bezugszeichen 419 in 5)
entfallen. Im betrachteten Beispiel weisen der I/O-Controller 102-2 und
der Analog/Digital-Wandler 102-4 auch keine Eingangs- und
Ausgangsregister (Bezugszeichen 403, 405, 409,
und 411 in 5) auf. Der I/O-Controller 102-2 besteht
nur aus einer Steuereinrichtung, die weitgehend der Steuereinrichtung 407 (5)
entspricht, und der Analog/Digital-Wandler 102-4 besteht nur aus
einer Wandler-Einheit, die weitgehend der Wandler-Einheit 412 (5)
entspricht. Es sei jedoch darauf hingewiesen, daß es sich als vorteilhaft erweisen kann,
wenn der I/O-Controller 102-2 und der Analog/Digital-Wandler 102-4 den
Eingangs- und Ausgangsregistern 403, 405, 409,
und 411 (5) entsprechende Eingangs- und
Ausgangsregister aufweisen. Darüber
hinaus kann es sich als vorteilhaft erweisen, wenn der I/O-Controller 102-2 und
der Analog/Digital-Wandler 102-4 auch noch kleine Sende- und
Empfangspuffer aufweisen, wobei diese Sende- und Empfangspuffer
jedoch sehr viel kleiner sein können
als die Sende- und
Empfangspuffer 404, 406, und 410 (5)
von herkömmlichen
I/O-Controllern und Analog/Digital-Wandlern, und beispielsweise
zur Speicherung von nur einem einzigen Datenwort ausgelegt sind.
Es
sei nun zunächst
angenommen,
- – der I/O-Controller 102-2 von
außerhalb
des Mikrocontrollers empfangene Daten an die CPU 102-1 weiterleiten
muß,
- – daß der I/O-Controller 102-2 von
der CPU 102-1 aus dem Mikrocontroller auszugebende Daten
zugeführt
bekommt, und
- – daß der Pufferspeicher 102-n den
Sendepuffer und den Empfangspuffer des I/O-Controllers 102-2 ersetzt.
Der
Vollständigkeit
halber sei angemerkt, daß es
nicht die CPU 102-1 sein muß, an welche der I/O-Controller 102-2 die
empfangenen Daten weiterleitet, und von welcher der I/O-Controller 102-2 die aus
dem Mikrocontroller auszugebenden Daten zugeführt bekommt. Hierbei kann es
sich auch um eine beliebige andere der über den Bus 101 miteinander verbundenen
Einrichtungen handeln. Die Einrichtung, an welche der I/O-Controller 102-2 die
empfangenen Daten weiterleitet, und die Einrichtung, von welcher
der I/O-Controller 102-2 die auszugebenden Daten zugeführt bekommt,
können
auch verschiedene Einrichtungen sein.
Wenn
der Pufferspeicher 102-n den Sendepuffer und den Empfangspuffer
des I/O-Controllers 102-2 ersetzen soll, stellt die CPU 102-1 oder
eine sonstige Mikrocontroller-Komponente
die Umschalteinrichtung 104 so ein, daß der I/O-Controller 102-2 über den
zweiten Bus 103 mit dem Pufferspeicher 102-n verbunden
ist.
Wenn
der I/O-Controller 102-2 von außerhalb des Mikrocontrollers
an die CPU 102-1 weiterzuleitende Daten empfangen hat,
leitet er diese Daten über
den zweiten Bus 103 und die Umschalteinrichtung 104 an
den Pufferspeicher 102-n weiter. Der Pufferspeicher 102-n speichert
diese Daten zwischen, bis sie an die CPU 102-1 weitergeleitet
werden können.
Für die Weiterleitung
der Daten zur CPU 102-1 existieren mehrere Möglichkeiten.
Allen Möglichkeiten
ist gemeinsam, daß die
Daten vom Pufferspeicher 102-n über den Bus 101 zur
CPU übertragen
werden, und daß die
Daten in der Reihenfolge zur CPU 102-1 übertragen werden, in welcher
sie vom I/O-Controller 102-2 zum Pufferspeicher übertragen
wurden. Darüber hinaus
ist es bei allen nachfolgend beschriebenen Möglichkeiten so, daß die im Pufferspeicher 102-n zwischengespeicherten
und an die CPU 102-1 weiterzuleitenden Daten nach der Übertragung
der Daten an die CPU 102-1 aus dem Pufferspeicher 102-n gelöscht oder
zum Überschreiben
durch neue Daten freigegeben werden.
Die
erste Möglichkeit
zur Weiterleitung der im Pufferspeicher 102-n zwischengespeicherten
Daten zur CPU 102-1 besteht darin, daß der Pufferspeicher 102-n zunächst wartet
bis die CPU 102-1 einen Lesezugriff auf den Pufferspeicher 102-n durchführt, und
daß der
Pufferspeicher 102-n daraufhin die an die CPU 102-1 weiterzuleitenden
Daten auf den Bus 101 ausgibt. Hierbei kann, muß aber nicht
vorgesehen werden, daß der
Pufferspeicher 102-n der CPU 102-1 beispielsweise
durch die Ausgabe eines entsprechenden Interrupt-Request-Signals
an die CPU signalisiert, wenn in ihm für die CPU 102-1 bestimmte Daten
zur Abholung bereitstehen. Die CPU 102-1 könnte aber
auch von sich aus in mehr oder weniger großen zeitlichen Abständen Lesezugriffe
auf den Pufferspeicher 102-n durchführen und gegebenenfalls vorhandene
Daten abholen (Polling).
Die
zweite Möglichkeit
zur Weiterleitung der im Pufferspeicher 102-n zwischengespeicherten
Daten zur CPU 102-1 besteht darin, daß der Pufferspeicher 102-2 dann,
wenn in ihm für
die CPU 102-1 bestimmte Daten zur Abholung bereitstehen,
einen ebenfalls am Bus 101 angeschlossenen DMA-Controller
dazu veranlaßt,
die im Pufferspeicher 102-n zur Abholung bereitstehenden
Daten abzuholen und über
den Bus 101 zur CPU 102-1 zu übertragen. Voraussetzung hierfür ist natürlich, daß der Mikrocontroller
einen DMA-Controller enthält,
beispielsweise daß die
Einrichtung 102-3 ein DMA-Controller ist.
Eine
weitere Möglichkeit
zur Weiterleitung der im Pufferspeicher 102-n zwischengespeicherten Daten
zur CPU 102-1 besteht darin, daß der Pufferspeicher 102-2 die
für die
CPU 102-1 bestimmten Daten selbständig, d.h. ohne vorhergehende
Anforde rung durch die CPU 102-1, den DMA-Controller 102-3 oder
eine sonstige Mikrocontroller-Komponente über den Bus 101 zur
CPU 102-1 überträgt. Voraussetzung
hierfür
ist natürlich,
daß der
Pufferspeicher 102-n Master am Bus 101 werden
kann.
Der
Pufferspeicher 102-n enthält vorzugsweise eine Füllstandslogik,
durch welche der Umfang der im Pufferspeicher 102-n zwischengespeicherten Daten
ermittelbar ist. Das Ergebnis dieser Ermittlung kann zur Ablaufsteuerung
verwendet werden. Insbesondere kann vorgesehen werden,
- – daß durch
die Füllstandslogik überprüft wird,
ob im Pufferspeicher 102-n mindestens eine vorgegebene
Menge von für
die CPU 102-1 bestimmten Daten gespeichert ist, und daß der Pufferspeicher 102-n eine Übertragung
von Daten an die CPU 102-1 nur dann durchführt oder
veranlaßt,
wenn im Pufferspeicher 102-n mindestens die vorgegebene
Menge von für
die CPU 102-1 bestimmten Daten gespeichert ist, und/oder
- – daß durch
die Füllstandslogik überprüft wird,
ob im Pufferspeicher 102-n mehr als eine vorgegebene Menge
von für
die CPU 102-1 bestimmten Daten gespeichert ist, und daß der Pufferspeicher 102-n dann,
wenn in ihm mehr als die vorgegebene Menge von für die CPU 102-1 bestimmten
Daten gespeichert ist, dem I/O-Controller signalisiert, daß der Pufferspeicher 102-n nicht
mehr zur Aufnahme weiterer Daten vom I/O-Controller 102-2 bereit
ist, und/oder
- – daß durch
die Füllstandslogik überprüft wird,
ob im Pufferspeicher 102-n weniger als eine vorgegebene
Menge von für
die CPU 102-1 bestimmten Daten gespeichert ist, und daß der Pufferspeicher 102-n dann,
wenn im Pufferspeicher 102-n weniger als die vorgegebene
Menge von für
die CPU 102-1 bestimmten Daten gespeichert ist, dem I/O-Controller 102-2 signalisiert,
daß der
Pufferspeicher 102-n zur Aufnahme weiterer Daten vom I/O-Controller 102-2 bereit
ist.
Wenn
die CPU 102-1 an den I/O-Controller 102-2 durch
diesen aus dem Mikrocontroller auszugebende Daten zu übertragen
hat, überträgt sie diese Daten über den
Bus 101 an den Pufferspei cher 102-n. Der Pufferspeicher 102-n speichert
diese Daten zwischen, bis sie an den I/O-Controller 102-2 weitergeleitet
werden können.
Für die Weiterleitung
der Daten zum I/O-Controller 102-2 gibt es mehrere Möglichkeiten.
Eine
dieser Möglichkeiten
besteht darin, daß die
für den
I/O-Controller 102-2 bestimmten
Daten durch den I/O-Controller 102-2 aus dem Pufferspeicher 102-n ausgelesen
werden. Wenn der I/O-Controller 102-2 einen Lesezugriff
auf den Pufferspeicher 102-n ausführt, gibt der Pufferspeicher 102-n die
in ihm zwischengespeicherten und für den I/O-Controller bestimmten
Daten über
die Umschalteinrichtung 104 und den zweiten Bus 1O3 an
den I/O-Controller 102-2 aus. Hierbei kann vorgesehen werden,
daß der Pufferspeicher 102-n dem
I/O-Controller 102-2 durch Übermittlung eines entsprechenden
Signals an den I/O-Ccntroller signalisiert, daß im Pufferspeicher 102-n für den I/O-Controller 102-2 bestimmte
Daten zur Abholung bereitstehen. Der I/O-Controller könnte aber
auch von sich aus in mehr oder weniger großen zeitlichen Abständen Lesezugriffe
auf den Pufferspeicher 102-n durchführen und gegebenenfalls vorhandene
Daten abholen (Polling).
Eine
weitere Möglichkeit
für die
Weiterleitung der im Pufferspeicher 102-n gespeicherten
Daten zum I/O-Controller 102-2 besteht darin, daß der I/O-Controller 102-2 dem
Pufferspeicher 102-n signalisiert, ob er zur Entgegennahme
von Daten bereit ist, und daß der
Pufferspeicher 102-n dann, wenn der I/O-Controller 102-2 Daten
entgegennehmen kann, die im Pufferspeicher 102-n zwischengespeicherten und
für den
I/O-Controller bestimmten
Daten über den
zweiten Bus 103 zum I/O-Controller überträgt.
Die
vom Pufferspeicher 102-n zum I/O-Controller 102-2 übertragenen
Daten werden in der Reihenfolge zum I/O-Controller übertragen,
in welcher sie dem Pufferspeicher 102-n von der CPU 102-1 zugeführt wurden.
Die im Pufferspeicher 102-n zwischengespeicherten und an
den I/O-Controller 102-2 weiterzuleitenden Daten werden
nach der Übertragung
der Daten an den I/O-Controller 102-2 aus dem Pufferspeicher 102-n gelöscht oder
zum Überschreiben
durch neue Daten freigegeben.
Die
Abläufe
die der Übertragung
von Daten von der CPU 102-1 zum I/O-Controller können abhängig vom
Ermittlungsergebnis der vorstehend bereits erwähnten Füllstandslogik gesteuert werden. Insbesondere
kann vorgesehen werden,
- – daß durch die Füllstandslogik überprüft wird,
ob im Pufferspeicher 102-n mindestens eine vorgegebene
Menge von für
den I/O-Controller bestimmten Daten gespeichert ist, und daß die Signalisierung,
daß Daten
zur Abholung bereitstehen nur dann erfolgt, wenn im Pufferspeicher 102-n mindestens
die vorgegebene Menge von für
den I/O-Controller bestimmten Daten gespeichert ist, und/oder
- – daß durch
die Füllstandslogik überprüft wird,
ob im Pufferspeicher 102-n mehr als eine vorgegebene Menge
von für
den I/O-Controller bestimmten Daten gespeichert ist, und daß der Pufferspeicher 102-n dann,
wenn im Pufferspeicher mehr als die vorgegebene Menge von für den I/O-Controller 102-n bestimmten
Daten gespeichert ist, der CPU 102-1 signalisiert, daß der Pufferspeicher 102-n nicht
mehr zur Aufnahme weiterer Daten bereit ist.
Wenn
- – der
Analog/Digital-Wandler 102-4 von ihm erzeugte digitale
Daten an die CPU 102-1 oder eine sonstige der am Bus 101 angeschlossenen
Mikrocontroller-Komponenten weiterleiten muß, und
- – der
Analog/Digital-Wandler 102-4 von der CPU 102-1 oder
einer sonstigen der am Bus 101 angeschlossenen Mikrocontroller-Komponenten
(Steuer-)Daten zugeführt
bekommt, und
- – der
Pufferspeicher 102-n den Sendepuffer und den Empfangspuffer
des Analog/Digital-Wandlers 102-4 ersetzt,
wird
entsprechend vorgegangen. Unterschiedlich ist lediglich, daß die CPU 102-1 die
Umschalteinrichtung 104 so ansteuert, daß der Analog/Digital-Wandler 102-4 über den
dritten Bus 105 mit dem Pufferspeicher 102-n verbunden
ist.
Die
Ansteuerung der Umschalteinrichtung 104 kann während des
Betriebes des Mikrocontrollers dynamisch verändert werden, so daß der Pufferspeicher 102-n abwechselnd
als Ersatz für
den Sendespeicher und den Empfangsspeicher des I/O-Controllers 102-2 und
den Sendespeicher und den Empfangsspeicher des Analog/Digital-Wandlers 102-4 verwendet
werden kann. Es dürfte
einleuchten und bedarf keiner näheren
Erläuterung,
daß nicht
nur der I/O-Controller 102-2 und der Analog/Digital-Wandler 102-4 den
Pufferspeicher als Sende- und/oder Empfangsspeicher benutzen können, sondern
auch beliebige andere der über
den Bus 101 miteinander verbundenen Einrichtungen. Darüber hinaus
können auch
mehr als zwei der über
den Bus 101 miteinander verbundenen Einrichtungen über separate
(vierte, fünfte
...) Busse und die Umschalteinrichtung 104 mit dem Pufferspeicher 102-n verbunden
sein und diesen als Ersatz für
deren Sende- und/oder Empfangspuffer verwenden.
Darüber hinaus
ist es auch möglich,
daß der I/O-Controller 102-2 und
der Analog/Digital-Wandler 102-4 oder andere und/oder weitere
der über
den Bus 101 miteinander verbundenen Einrichtungen den Pufferspeicher 102-n gleichzeitig
als Ersatz für deren
Sende- und/oder Empfangspuffer benutzen. Dies ist beispielsweise
dadurch möglich,
daß man
die Umschalteinrichtung 104 wegläßt und Pufferspeicher 102-n direkt
mit diese benutzenden Einrichtungen verbindet.
Damit
der Pufferspeicher 102-n in diesem Fall zuordnen kann,
von welcher Einrichtung die jeweiligen Lese- oder Schreibzugriffe
auf den Pufferspeicher stammen, kann vorgesehen werden,
- – daß die zweiten,
dritten,... Busse über
verschiedene Anschlüsse
des Pufferspeichers 102-n mit diesem verbunden sind, oder
- – daß die dem
Pufferspeicher 102-n zugeführten Daten und Leseanforderungen
zusammen mit einem Identifier übertragen
werden, anhand dessen der Pufferspeicher 102-n die auf
diesen zugreifende Einrichtung identifizieren kann.
Ferner
müßte in diesem
Fall vorgesehen werden, daß der
Pufferspeicher 102-n über
den Bus 101 durch verschiedene Adressen ansprechbar ist, wobei
für jede
der über
den zweiten, dritten,... Bus mit dem Pufferspeicher verbundenen
Einrichtungen eine eigene Adresse oder ein eigener Adreßbereich reserviert
ist. Dann kann die CPU 102-1 dem Pufferspeicher 102-n mittels
der Adresse, unter Verwendung welcher sie auf den Pufferspeicher 102-n zugreift,
signalisieren, welche Daten sie auslesen möchte bzw. für welche Einrichtung die dem
Pufferspeicher 102-n zugeführten Daten bestimmt sind.
Unabhängig von
alledem ist es auch möglich,
daß Pufferspeicher 102-n nicht
sowohl den Sendepuffer als auch den Empfangspuffer der den Pufferspeicher
verwendenden Einrichtungen ersetzt, sondern nur den Sendepuffer
oder nur den Empfangspuffer. Beispielsweise könnte vorgesehen werden, daß der Pufferspeicher 102-n vom
Analog/Digital-Wandler 102-4 nur den Sendepuffer ersetzt,
nicht aber auch den Empfangspuffer des Analog/Digital-Wandlers.
In diesem Fall müßte der
Analog/Digital-Wandler 102-4 einen wie in herkömmlichen
Analog/Digital-Wandlern dimensionierten internen Empfangspuffer
aufweisen, und würden
an den Analog/Digital-Wandler 102-4 zu übertragende Daten nicht über den
Pufferspeicher 102-n, sondern direkt zum Analog/Digital-Wandler übertragen
werden.
Aus
den vorstehenden Erläuterungen
ist ersichtlich, daß der
Pufferspeicher 102-n gleichzeitig oder abwechselnd die
Sendepuffer und/oder die Empfangspuffer von einer Vielzahl von über den
Bus 101 miteinander verbundenen Einrichtungen er setzen
kann. Da die durch den Pufferspeicher 102-n ersetzten Sende-
und/oder Empfangsspeicher eines herkömmlichen Mikrocontrollers in
der Praxis nie gleichzeitig voll belegt sein werden, kann die Speicherkapazität des Pufferspeichers
kleiner sein als die Summe der Speicherkapazitäten der durch den Puffer gleichzeitig
ersetzbaren Sende- und/oder Empfangspuffer. Wählt man die Speicherkapazität des Pufferspeichers 102-n größer als
die Speicherkapazität
des größten ersetzten
Sendepuffers oder Empfangspuffers, so sinkt trotz des geringeren
Hardware-Aufwandes sogar die Wahrscheinlichkeit von Datenverlusten.
Exakt
die selben Vorteile lassen sich durch den in der 2 ausschnittsweise
dargestellten Mikrocontroller erzielen.
Der
in der 2 gezeigte Mikrocontroller enthält einen
Bus 201 und über
den Bus 201 miteinander verbundene Einrichtungen 202-1 bis 202-n, wobei
die Einrichtung 202-1 eine CPU sei, die Einrichtung 202-2 ein
I/O-Controller sei, die Einrichtung 202-3 ein DMA-Controller
sei, die Einrichtung 202-4 ein Analog/Digital-Wandler sei,
die Einrichtung 202-n ein Pufferspeicher sei, und die restlichen
der am Bus 201 angeschlossenen Einrichtungen beliebige
andere Mikrocontroller-Komponenten seien, und beispielsweise eine
oder mehrere Speichereinrichtungen, einen oder mehrere Timer, Digital-Analog-Wandler,
etc. umfassen. Der Vollständigkeit
halber sei darauf hingewiesen, daß über den Bus 201 auch
mehr Einrichtungen, oder weniger Einrichtungen, und/oder andere
Einrichtungen miteinander verbunden sein können. Insbesondere besteht
auch keine Einschränkung
darauf, daß die
Einrichtung 202-2 ein I/O-Controller ist, und daß die Einrichtung 202-4 ein
Analog/Digital-Wandler ist. Diese Einrichtungen können auch
beliebige andere Einrichtungen sein, die an eine der jeweils anderen
Einrichtungen, die über
den Bus 201 miteinander verbunden sind, Daten übertragen,
und/oder an die von einer der jeweils anderen Einrichtungen, die über den
Bus 201 miteinander verbunden sind, Daten übertragen
werden.
Die
Einrichtungen 202-2 und 202-4 sind im betrachteten
Beispiel Einrichtungen, die nicht Bus-Master werden können, also
Bus-Slaves sind. Im betrachteten Beispiel sei angenommen, daß nur die
CPU 202-1 und der DMA-Controller 202-3 des Mikrocontrollers
Bus-Master werden können.
Beim Bus 201 könnte
es sich aber prinzipiell auch um einen Single-Master-Bus handeln.
Der
Bus 201 und die daran angeschlossenen Einrichtungen 202-1 bis 202-n entsprechen,
soweit im folgenden nichts Gegenteiliges erwähnt wird, dem Bus 101 und
den daran angeschlossenen Einrichtungen 102-1 bis 102-n.
Der
I/O-Controller 202-2 weist ein Ausgangsregister 203,
ein Eingangsregister 205, und eine Steuereinrichtung 207 auf,
welche dem Ausgangsregister 403, dem Eingangsregister 405,
und der Steuereinrichtung 407 des in der 5 gezeigten
herkömmlichen
I/O-Controllers 402-2 entsprechen. Wie der I/O-Controller 102-2 des
in der 1 gezeigten Mikrocontrollers weist aber auch der
I/O-Controller 202-2 keine oder allenfalls sehr kleine
Sende- und Empfangspuffer auf.
Der
Analog/Digital-Wandler 202-4 weist ein Ausgangsregister 209,
ein Eingangsregister 211, und eine Wandler-Einheit 212 auf,
welche dem Ausgangsregister 409, dem Eingangsregister 411,
und der Wandler-Einheit 412 des in der 5 gezeigten herkömmlichen
Analog/Digital-Wandlers 402-4 entsprechen. Wie der Analog/Digital-Wandler 102-4 des in
der 1 gezeigten Mikrocontrollers weist aber auch der
I/O-Controller 202-4 keine oder allenfalls sehr kleine
Sende- und Empfangspuffer auf.
Der
Pufferspeicher 202-n besteht aus einem Ausgangsregister 214,
einem Eingangsregister 215, und einer Speichereinrichtung 216,
wobei die Speichereinrichtung 216 durch ein oder mehreren
FIFOs, oder durch eine sich wie ein oder mehrere FIFOs verhaltende
Einrichtung gebildet wird.
Der
I/O-Controller 202-2 und der Analog/Digital-Wandler 202-4 sind
nur über
den Bus 201 mit dem Pufferspeicher 202-n verbunden.
Anders als beim Mikrocontroller gemäß 1 sind kein
zweiter Bus 103, kein dritter Bus 105, und keine
Umschalteinrichtung 104 vorgesehen.
Der
in der 2 gezeigte Mikrocontroller arbeitet weitestgehend
wie der zuvor beschriebene Mikrocontroller gemäß 1. Insbesondere
erfolgt die Übertragung
von Daten zwischen dem I/O-Controller 202-2 bzw. dem Analog/Digital-Wandler 202-4 und der CPU 202-1 oder
einer sonstigen der über
den Bus 201 miteinander verbundenen Einrichtung über den
Pufferspeicher 202-n, und benutzen der I/O-Controller 202-2 und
der Analog/Digital-Wandler 202-4 den Pufferspeicher 202-n als
Ersatz für
die bisher innerhalb des I/O-Controllers 202-2 und des
Analog/Digital-Wandlers 202-4 vorgesehenen Sende- und/oder
Empfangspuffer.
Unterschiedlich
ist aber die Art und Weise, wie die zwischen dem I/O-Controller 202-2 und
dem Pufferspeicher 202-n und die zwischen dem Analog/Digital-Wandler 202-4 und
dem Pufferspeicher 202-n zu übertragenden Daten übertragen
werden.
Diese
Daten werden bei dem in der 2 gezeigten
Mikrocontroller über
den Bus 201 übertragen.
Genauer
gesagt ist es so, daß der
I/O-Controller 202-2 dann, wenn er an die CPU 202-1 Daten zu übertragen
hat, den DMA-Controller 202-3 dazu veranlaßt, diese
Daten vom I/O-Controller 202-2 abzuholen und über den
Bus 201 an den Pufferspeicher 202-n zu übertragen.
Der Pufferspeicher 202-n speichert diese Daten zwischen
und leitet diese sofort oder später über den
Bus 201 an die CPU 202-1 weiter, wobei bei der Übertragung
der Daten vom Pufferspeicher 202-n zur CPU 202-1 genau
so vorgegangen wird wie es bei dem in der 1 gezeigten
Mikrocontroller der Fall ist.
Wenn
die CPU 202-1 an den I/O-Controller 202-2 Daten
zu übertragen
hat, überträgt sie diese über den
Bus 201 an den Pufferspeicher 202-n, wobei auch
hierbei genau so vorgegangen werden kann wie es bei dem in der 1 gezeigten
Mikrocontroller der Fall ist. Der Pufferspeicher 202-n speichert
die ihm von der CPU 202-1 zugeführten Daten zwischen und leitet
diese sofort oder später über den
Bus 201 an den I/O-Controller 202-2 weiter.
Für die Weiterleitung
der Daten zum I/O-Controller 202-2 gibt es mehrere Möglichkeiten.
Eine
dieser Möglichkeiten
besteht darin, daß der
I/O-Controller 202-2 den DMA-Controller 202-3 dazu
veranlaßt,
die für
den I/O-Controller 102-2 bestimmten Daten aus dem Pufferspeicher 102-n auszulesen
und über
den Bus 201 zum I/O-Controller 202-2 zu übertragen.
Hierbei kann vorgesehen werden, daß der Pufferspeicher 202-n dem
I/O-Controller 202-2 durch Übermittlung eines entsprechenden Signals
an den I/O-Controller signalisiert, daß im Pufferspeicher 202-n für den I/O-Controller 202-2 bestimmte
Daten zur Abholung bereitstehen. Der I/O-Controller könnte aber
auch von sich aus in mehr oder weniger großen zeitlichen Abständen den DMA-Controller 202-3 dazu
veranlassen, daß dieser gegebenenfalls
vorhandene Daten abholt (Polling).
Eine
weitere Möglichkeit
für die
Weiterleitung der im Pufferspeicher 202-n gespeicherten
Daten zum I/O-Controller 202-2 besteht darin, daß der I/O-Controller 202-2 dem
Pufferspeicher 202-n signalisiert, ob er zur Entgegennahme
von Daten bereit ist, und daß der
Pufferspeicher 202-n dann, wenn der I/O-Controller 202-2 Daten
entgegennehmen kann, die im Pufferspeicher 102-n zwischengespeicherten und
für den
I/O-Controller bestimmten
Daten über den
Bus 201 zum I/O-Con troller überträgt, oder den DMA-Controller
veranlaßt,
dies zu tun.
Die
Abläufe
bei der Übertragung
von Daten zwischen der CPU 202-1 und dem I/O-Controller 202-2 können abhängig vom
Ermittlungsergebnis der vorstehend bereits erwähnten Füllstandslogik gesteuert werden.
Diesbezüglich
wird auf die entsprechenden Ausführungen
in der sich auf die 1 beziehenden Beschreibung verwiesen;
die dortigen Ausführungen
gelten für
den in der 2 gezeigten Mikrocontroller
entsprechend.
Wenn
- – der
Analog/Digital-Wandler 202-4 von ihm erzeugte digitale
Daten an die CPU 202-1 oder eine sonstige der am Bus 201 angeschlossenen
Mikrocontroller-Komponenten weiterleiten muß, und
- – der
Analog/Digital-Wandler 202-4 von der CPU 202-1 oder
einer sonstige der am Bus 201 angeschlossenen Mikrocontroller-Komponenten
(Steuer-)Daten zugeführt
bekommt, und
- – der
Pufferspeicher 102-n den Sendepuffer und den Empfangspuffer
des Analog/Digital-Wandlers 102-4 ersetzt,
wird
vorgegangen wie bei den vorstehend beschriebenen Datentransfers
zwischen dem I/O-Controller 202-2 und der CPU 202-1. Unterschiedlich
sind lediglich die Adressen, unter Verwendung welcher über den
Bus 201 auf den Pufferspeicher zugegriffen wird; der Pufferspeicher 202-n ist über verschiedene Adressen
ansprechbar, wobei die zu verwendenden Adressen davon abhängen, von
welcher Einrichtung die durch den Pufferspeicher 202-n weiterzuleitenden
Daten stammen und/oder für
welche Einrichtung die durch den Pufferspeicher 202-n weiterzuleitenden
Daten bestimmt sind.
Die 3 zeigt
eine modifizierte Ausführungsform
des in der 2 gezeigten Mikrocontrollers.
Der
in der 3 gezeigte Mikrocontroller enthält einen
Bus 301 und über
den Bus 301 miteinander verbundene Einrichtungen 302-1 bis 302-n, wobei
die Einrichtung 302-1 eine CPU sei, die Einrichtung 302-2 ein
I/O-Controller sei, die Einrichtung 302-3 ein DMA-Controller
sei, die Einrichtung 302-4 ein Analog/Digital-Wandler sei,
die Einrichtung 302-n eine beispielsweise durch ein RAM
gebildete Speichereinrichtung mit wahlfreiem Zugriff sei, und die restlichen
der am Bus 301 angeschlossenen Einrichtungen beliebige
andere Mikrocontroller-Komponenten seien, und beispielsweise eine
oder mehrere weitere Speichereinrichtungen, einen oder mehrere Timer,
Digital-Analog-Wandler, etc. umfassen. Der Vollständigkeit
halber sei darauf hingewiesen, daß über den Bus 301 auch
mehr Einrichtungen, oder weniger Einrichtungen, und/oder andere
Einrichtungen miteinander verbunden sein können. Insbesondere besteht
auch keine Einschränkung
darauf, daß die
Einrichtung 302-2 ein I/O-Controller ist, und daß die Einrichtung 302-4 ein
Analog/Digital-Wandler ist. Diese Einrichtungen können auch
beliebige andere Einrichtungen sein, die an eine der jeweils anderen
Einrichtungen, die über
den Bus 301 miteinander verbunden sind, Daten übertragen,
und/oder an die von einer der jeweils anderen Einrichtungen, die über den
Bus 301 miteinander verbunden sind, Daten übertragen
werden.
Die
Einrichtungen 302-2 und 302-4 sind im betrachteten
Beispiel Einrichtungen, die nicht Bus-Master werden können, also
Bus-Slaves sind. Im betrachteten Beispiel sei angenommen, daß nur die
CPU 302-1 und der DMA-Controller 302-3 des Mikrocontrollers
Bus-Master werden können.
Beim Bus 201 könnte
es sich aber prinzipiell auch um einen Single-Master-Bus handeln.
Der
I/O-Controller 302-2 weist ein Ausgangsregister 303,
einen dem Ausgangsregister 303 vorgeschalteten Sendepuffer 304,
ein Eingangsregister 305, einen dem Eingangsregister 305 nachgeschalteten
Empfangspuffer 306, und eine Steuereinrichtung 307 auf.
Von den genannten Komponenten des I/O-Con trollers 302-2 entsprechen
das Ausgangsregister 303, das Eingangsregister 305,
und die Steuereinrichtung 307 dem Ausgangsregister 203,
dem Eingangsregister 205, und der Steuereinrichtung 207 des
in der 2 gezeigten I/O-Controllers 202-2. Der Sendepuffer 304 und
der Empfangspuffer 306 entsprechen dem Sendepuffer 404 und
dem Empfangspuffer 406 des in der 5 veranschaulichten
herkömmlichen
I/O-Controllers 402-2, wobei jedoch der Sendepuffer 304 und
der Empfangspuffer 306 sehr viel kleiner sind als der Sendepuffer 404 und
der Empfangspuffer 406, und beispielsweise nur zur Speicherung
eines einzigen oder einiger weniger Datenworte ausgelegt sind.
Der
Analog/Digital-Wandler 302-4 weist ein Ausgangsregister 309,
einen dem Ausgangsregister 309 vorgeschalteten Sendepuffer 310,
ein Eingangsregister 311, einen dem Eingangsregister 311 nachgeschalteten
Empfangspuffer 313, und eine Wandler-Einheit 312 auf.
Von den genannten Komponenten des Analog/Digital-Wandlers 302-4 entsprechen das
Ausgangsregister 309, das Eingangsregister 311,
und die Wandler-Einheit 312 dem
Ausgangsregister 209, dem Eingangsregister 211,
und der Wandler-Einheit 212 des in der 2 gezeigten
Analog/Digital-Wandlers 202-4. Der Sendepuffer 310 entspricht
dem Sendepuffer 410 des in der 5 veranschaulichten
herkömmlichen
Analog/Digital-Wandlers 402-4, wobei jedoch der Sendepuffer 310 sehr viel
kleiner als der Sendepuffer 410 sein kann, und beispielsweise
nur zur Speicherung eines einzigen oder einiger weniger Datenworte
ausgelegt sind. Der Empfangspuffer 313 ist ebenfalls sehr
viel kleiner als herkömmliche
Sendepuffer und ist ebenfalls zur Speicherung von nur einem einzigen
oder einiger weniger Datenworten ausgelegt.
Die
Speichereinrichtung 302-n ist im betrachteten Beispiel
ein frei adressierbarer Arbeitsspeicher, der prinzipiell von beliebigen
Einrichtungen 302-1 bis 302-n-1 für beliebige
Zwecke benutzt werden kann. Die Speichereinrichtung 302-n oder
ein bestimmter Teil davon wird zur Zwischenspeicherung der Daten
verwendet, die über
den Bus 301 von und/oder zum I/O-Controller 302-2 und/oder
vom und/oder zum Analog/Digital-Wandler 302-4 übertragen
werden, kann also wie auch die Pufferspeicher 102-n und 202-n der
in den 1 und 2 gezeigten Mikrocontroller
als vollständiger
oder teilweiser Ersatz für
die in herkömmlichen
I/O-Controllern und Analog/Digital-Wandlern oder sonstigen Einrichtungen
vorgesehenen Sende- und/oder Empfangspuffer verwendet werden. Zumindest
der Teil der Speichereinrichtung 302-n, der als Ersatz
für die
Sende- und/oder Empfangspuffer des I/O-Controllers 302-2 und/oder
des Analog/Digital-Wandlers 302-4 verwendet wird, wird
so betrieben, daß er
sich wie ein oder mehrere FIFOs verhält. Hierzu wird dieser Teil
Speichereinrichtung 302-n so verwaltet, daß dieser
Speicherteil wie ein oder mehrere zyklische Puffer arbeitet, auf
welche mittels Schreibzeiger und Lesezeiger schreibend und lesend
zugegriffen werden kann. Hierzu ist eine Einrichtung zur Schreibzeiger-Verwaltung
und zur Lesezeiger-Verwaltung erforderlich, und diese Zeigerverwaltungseinrichtung
ist im betrachteten Beispiel Bestandteil des DMA-Controllers 302-3.
Zumindest
auf den Teil der Speichereinrichtung 302-n, der als Ersatz
für die
Sende- und/oder Empfangspuffer des I/O-Controllers 302-2 und/oder des
Analog/Digital-Wandlers 302-4 verwendet wird, wird ausschließlich über den
DMA-Controller 302-3 zugegriffen. Wenn der DMA-Controller 302-2 dazu veranlaßt wird,
einen Schreibzugriff oder einen Lesezugriff auf die Speichereinrichtung 302-n auszuführen, ermittelt
der DMA-Controller
anhand der von ihm verwalteten Schreibzeiger und Lesezeiger auf
welche Stelle innerhalb der Speichereinrichtung zugegriffen werden
muß.
Die
Speichereinrichtung 302-n und die Zeigerverwaltungseinrichtung
des DMA-Controllers 302-3 verhalten sich zusammen genau
so wie der Pufferspeicher 202-n des in der 2 veranschaulichten
Mikrocontrollers. Allerdings ist die Kombina tion aus Speichereinrichtung 302-n und
Zeigerverwaltungseinrichtung des DMA-Controllers 302-3 erheblich
flexibler einsetzbar. Insbesondere können durch die Speichereinrichtung 302-n auf
sehr einfache Art und Weise die Sende- und/oder Empfangspuffer einer
Vielzahl von verschiedenen Einrichtungen ersetzt werden, und kann
die Größe der die
jeweiligen Sende- und
Empfangspuffer ersetzenden Bereiche der Speichereinrichtung 302-n sehr
einfach individuell an die jeweiligen Bedürfnisse angepaßt werden.
Die Übertragung
von Daten von und zum I/O-Controller 302-2 und von und
zum Analog/Digital-Wandler 302-4 erfolgt wie die Übertragung
von Daten von und zum I/O-Controller 202-2 und von und zum
Analog/Digital-Wandler 202-4 des Mikrocontrollers gemäß 2.
Unterschiedlich ist nur, daß die Übertragung
von Daten von und zu der Speichereinrichtung 302-n ausschließlich über den
DMA-Controller 302-3 erfolgen.
Bei
dem in der 3 gezeigten Mikrocontroller
ist wie auch bei den in den 1 und 2 gezeigten
Mikrocontrollern eine Füllstandslogik
vorgesehen, durch welche die Füllstände der
die Sendepuffer und die Empfangspuffer ersetzenden Bereiche der
Speichereinrichtung 302-n ermittelt und entsprechende Signale
erzeugt. Diese Füllstandslogik
arbeitet wie die Füllstandslogik
des in der 2 gezeigten Mikrocontrollers,
ist aber im DMA-Controller 302-3 untergebracht, da dieser über die
Informationen verfügt,
welcher Bereich der Speichereinrichtung 302-n welche Sendepuffer
bzw. welchen Empfangspuffer ersetzt.
Insbesondere
der Pufferspeicher 202-n des in der 2 gezeigten
Mikrocontrollers könnte,
wenn er geringfügig
modifiziert wird, auch als Bus Bridge verwendet werden, über welche
der (erste) Bus 201 mit einem in den Figuren nicht gezeigten
zweiten Bus verbunden ist. Eine programmgesteuerte Einheit, bei welcher
von dieser Möglichkeit
Gebrauch gemacht wird, wäre
eine programmgesteuerte Einheit mit
- – einem
ersten Bus,
- – über den
ersten Bus miteinander verbundenen Einrichtungen,
- – einem
zweiten Bus,
- – über den
zweiten Bus miteinander verbundenen Einrichtungen, und
- – einer
sowohl mit dem ersten Bus als auch mit dem zweiten Bus verbundenen
Bus Bridge zur Übertragung
von Daten zwischen einer an einem der Busse angeschlossenen ersten
Einrichtung und einer am anderen Bus angeschlossenen zweiten Einrichtung,
wobei die von der ersten Einrichtung zur zweiten Einrichtung zu übertragenden
Daten über
den einen Bus, die Bus Bridge, und den anderen Bus zur zweiten Einrichtung übertragen
werden.
Der
Pufferspeicher 202-n könnte
wie in der 2 gezeigt am ersten Bus 203 angeschlossen bleiben
und müßte zusätzlich mit
dem zweiten Bus verbunden werden, und zwar beispielsweise derart, daß das Ausgangsregister 214 und
das Eingangsregister 215 zusätzlich auch mit dem zweiten
Bus verbunden sind. Damit festgelegt bzw. erkannt werden kann, von
welchem Bus der Bus Bridge Daten zugeführt werden, und an welchen
Bus die von der Bus Bridge ausgegebenen Daten ausgegeben werden, kann
beispielsweise vorgesehen werden, daß dem Eingangsregister 215 ein
erster Multiplexer vorgeschaltet wird und dem Ausgangsregister 214 ein zweiter
Multiplexer nachgeschaltet wird, wobei es von der Ansteuerung des
ersten Multiplexers abhängt,
ob die Bus Bridge eingangsseitig mit dem ersten Bus oder mit dem
zweiten Bus verbunden ist, und wobei es von der Ansteuerung des
zweiten Multiplexers abhängt,
ob die Bus Bridge ausgangsseitig mit dem ersten Bus oder mit dem
zweiten Bus verbunden ist, und wobei die Multiplexer beispielsweise
durch das vom Mikrocontroller ausgeführte Programm gesteuert werden
und vorzugsweise während
des Betriebes des Mikrocontrollers dynamisch umschaltbar sind. Es
wäre aber
beispielsweise auch denkbar, daß die
Bus Bridge zwei Eingangsregister und zwei Ausgangsregister enthält, wobei
ein Eingangsregister und ein Ausgangsregister mit dem ersten Bus
verbunden sind, und das andere Eingangsregister und das andere Ausgangsregister
mit dem zweiten Bus verbunden sind. Es dürfte einleuchten und bedarf
keiner näheren
Erläuterung,
daß auch
noch weitere Möglichkeiten
zum Anschluß der
Bus Bridge an die Busse existieren.
Wenn
nun beispielsweise der im folgenden als erste Einrichtung bezeichnete
I/O-Controller 202-2 an eine am zweiten Bus angeschlossene
und im folgenden als zweite Einrichtung bezeichnete Einrichtung
Daten zu übertragen
hat, veranlaßt
er den DMA-Controller 202-3, diese Daten über den
Bus 201 an die Bus Bridge zu übertragen.
Da
die hier vorgestellte Bus Bridge durch den Pufferspeicher 202-n gebildet
wird oder eine auf dem Pufferspeicher 202-n basierende
Einrichtung ist, enthält
sie eine Füllstandslogik,
die bei Verwendung des Pufferspeichers 202-n als Bus Bridge
so arbeitet, daß sie überwacht,
ob im Pufferspeicher für
die zweite Einrichtung bestimmte Daten oder eine bestimmte Mindestmenge
von für
die zweite Einrichtung bestimmten Daten zwischengespeichert sind,
und daß sie
dann, wenn dies der Fall ist, einer der am anderen Bus angeschlossenen
Einrichtungen signalisiert, daß in
der Bus Bridge Daten zur Abholung bereitstehen.
Die
Einrichtung, der durch die Bus Bridge signalisiert wurde, daß in ihr
Daten zur Abholung bereitstehen, ist vorzugsweise eine Einrichtung,
die am zweiten Bus Bus-Master ist oder werden kann, also beispielsweise
eine CPU oder ein DMA-Controller, und muß nicht die zweite Einrichtung
sein, für
welche die in der Bus Bridge zur Abholung bereitstehenden Daten
bestimmt sind. Diese, im folgenden als Signalisierungs-Empfänger bezeichnete
Einrichtung liest daraufhin die zur Abholung bereitstehenden Daten sofort
oder später
aus der Bus Bridge aus und verarbeitet diese entweder selbst weiter
(wenn sie selbst die zweite Einrichtung ist), oder leitet sie über den zweiten
Bus an die zweite Einrichtung weiter (wenn sie nicht selbst die
zweite Einrichtung ist).
Vorzugsweise
werden die in der Bus Bridge zur Abholung bereitstehenden Daten
erst dann ausgelesen, wenn die zweite Einrichtung weitere Daten entgegennehmen
kann. Die zweite Einrichtung signalisiert dem Signalisierungsempfänger, wann
dies der Fall ist.
Somit
kann die Bus Bridge (genau wie auch die zuvor beschriebenen Pufferspeicher 102-n, 202-n,
und 302-n) als vollständiger
oder teilweiser Ersatz für
den Sendepuffer der die Daten ausgebenden ersten Einrichtung und
als Ersatz für
den Empfangspuffer der zweiten Einrichtung verwendet werden, für welche
die Daten bestimmt sind.
Damit
der Signalisierungs-Empfänger
weiß, für welche
Einrichtung die in der Bus Bridge zur Abholung bereitstehenden Daten
bestimmt sind, kann vorgesehen werden,
daß die Bus Bridge dem Signalisierungs-Empfänger die
Adresse zuführt,
die bei der Weiterleitung der in der Bus Bridge zur Abholung bereitstehenden
Daten an die zweite Einrichtung zusammen mit diesen Daten auf den
Bus auszugeben ist. Diese Adresse kann in Abhängigkeit von der Adresse generiert
werden, unter Verwendung welcher auf die Bus Bridge zugegriffen
wurde, als ihr die zur Abholung bereitstehenden Daten zugeführt wurden.
Die Bildung dieser Adresse kann unter Verwendung einer in der Bus Bridge
gespeicherten Mapping-Vorschrift erfolgen, wobei es vorzugsweise
so ist, daß diese
Mapping-Vorschrift
durch den Benutzer der programmgesteuerte Einheit, beispielsweise
durch das von der programmgesteuerten Einheit ausgeführte Programm,
vorgebbar ist und während
des Betriebes der programmgesteuerten Einheit dynamisch veränderbar
ist.
Die
Adresse, die bei der Weiterleitung der in der Bus Bridge zur Abholung
bereitstehenden Daten an die zweite Einrichtung zusammen mit diesen
Daten auf den Bus auszugeben ist, könnte aber auch eine vorbestimmte
Adresse sein, die im Signalisierungs-Empfänger gespeichert ist. Auch
in diesem Fall ist es vorzugsweise so, daß die Adresse durch den Benutzer
der programmgesteuerte Einheit, beispielsweise durch das von der
programmgesteuerten Einheit ausgeführte Programm, vorgebbar ist
und während
des Betriebes der programmgesteuerten Einheit dynamisch veränderbar
ist.
Darüber hinaus
könnten über die
durch den Pufferspeicher 202-n gebildete
oder auf dem Pufferspeicher 202-n basierende Bus Bridge
auch Daten von einer Einrichtung zu einer anderen Einrichtung, die
am selben Bus angeschlossen ist wie eine Einrichtung, übertragen
werden.
Ein
solche Bus Bridge könnte
somit die Sendepuffer und/oder die Empfangspuffer sowohl von am
ersten Bus angeschlossenen Einrichtungen als auch von am zweiten
Bus angeschlossenen Einrichtungen ersetzen.
Darüber hinaus
hätte eine
solche Bus Bridge auch den Vorteil, daß sie an keinem der Busse Bus-Master
sein muß,
so daß die über die
Bus Bridge miteinander verbundenen Busse Single-Master-Busse sein können und dementsprechend einfach
aufgebaut sein können.