Universität Bielefeld - Technische Fakultät - Neuroinformatik



next up previous contents
Next: Dokumentation der Quelldateien Up: Daten zu den Previous: Die M-Modul-Spezifikation

Funktionsweise des Bus-Arbiters in BRAD

 

Die Entwicklung einer Arbiter-Schaltung war notwendig, da kein großer Chip-Hersteller statische Zweitorspeicher mit kleiner Kapazität anbietetgif. Die in manchen Büchern (siehe beispielsweise [TS90]) beschriebenen Arbitrierbausteine sind ebensowenig beschaffbar. Die hier vorgestellte Schaltung kommt mit nur sechs Standard-CMOS-Logikbausteinen aus, ist platzsparend und erlaubt den Einsatz eines handelsüblichen statischen RAM-Bausteins.

Die Simulation vom Zweitorspeicher geschieht durch das schnelle Umschalten des Daten- und des Adressbusses auf den Controller oder den M-Bus. Dabei ist zu beachten, daß der Controller keinen Wartezustand kennt und daher unbedingt Vorrang vor dem M-Bus haben muß.

Der M-Bus-Zugriff erfolgt asynchron zum Bustakt des Controllers. Da das RAM jedoch mit diesem Takt betrieben wird, müssen die M-Bus-Signale mit dem Controller-Takt synchronisiert werden.

Die folgenden Timing-Diagramme helfen, diese Probleme zu überblicken. Die Diagramme stellen qualitativ den zeitlichen Verlauf der Spannungen an einzelnen Pins dar; dabei steht die Lage einer Linie für HI bzw. LO. Der hochohmige Zustand wird durch eine mittige Linie dargestellt. Ist der Zustand eines Pins oder einer Pingruppe unbekannt, dann ist dieser Bereich schraffiert. Ein geschwungener Pfeil markiert ein Ereignis, das ein anderes auslöst. Senkrechte punktierte Linien stellen Ereignisse dar, die mit einem Takt synchronisiert sind.

  
Figure B.5: Timing der Lese- und Schreibzyklen des HC11: Während der ersten Halbperiode eines Taktzyklus' kann die untere Hälfte des Adressbusses mit Hilfe des AShc-Signals (Address Strobe) in ein externes Demultiplex-Register geladen werden. In der zweiten Halbperiode sind die Adressleitungen und das Schreib-Lese-Bit /WRIhc gültig. Bei der abfallenden Flanke des Taktes Ehc müssen die Daten bereitstehen (nach [Mot93]).

Die Anforderungen des Controllers an den externen Speicher sind in Abb. B.5 dargestellt. Gegen Ende der LO-Phase des Bustaktes (Ehc) steht fest, ob das externe RAM in diesem Zyklus angesprochen wird. Das liegt daran, daß zur Adressdecodierung die oberen drei Adressbits ausreichen (PB[5:7]=A[13:15]); in der Abbildung gehören diese Signale der Gruppe non-multiplexed address an. In der LO-Phase wird außerdem die untere Hälfte des Adressbusses in ein Register geladen; dazu dient das AShc-Signal, das einem 8-Bit-D-Latch als latch enable zugeführt werden kann.

Zu Beginn der HI-Phase von Ehc stehen alle Bussignale fest und das RAM hat bis zur LO-Flanke Zeit, die Daten bereitzustellen oder abzuspeichern.

Die Entscheidung, ob der HC11 das externe RAM benötigt, fällt also zu Beginn der LO-Phase des Bustakts, weit vor der HI-Flanke. Die Arbitrierlogik nutzt diese Eigenschaft und plaziert die Lesevorgänge vom M-Bus in diejenigen HI-Halbzyklen von Ehc, in denen der Controller das RAM nicht anspricht.

Der M-Bus besitzt ein sehr einfaches Übertragungsschema mit Zweidraht-Handshake. Dieses Protokoll wurde schon im vorigen Abschnitt kurz beschrieben; das Timing-Diagramm in Abb. B.6 soll den Ablauf nochmals verdeutlichen.

  
Figure: Handshake beim Lesevorgang über den M-Bus: Die Adressleitungen bleiben solange gültig wie /CSm (Chip Select) aktiv ist. Das Modul reagiert auf die Lese-Anforderung mit DTACKm, sobald die Daten anliegen. Der Empfang der Daten wird mit Deaktivierung von /CSm quittiert. Daraufhin muß /DTACKm ebenfalls deaktiviert und der Datenbus in den hochohmigen Zustand gebracht werden (nach [MUM]).

Die Tatsache, daß der Datentransfer asynchron zum Bustakt verläuft, bedeutet einerseits, daß nach Eintreffen eines CSm ein freier HI-Halbzyklus abgewartet werden muß, andererseits, daß die Daten vom RAM in ein Pufferregister geladen werden müssen, da nicht garantiert werden kann, daß der Transfer mit dem M-Bus beendet sein wird, bevor der Controller das RAM wieder benötigt.

  
Figure B.7: Timing eines Arbitriervorgangs auf BRAD : Der Bustakt des HC11 ist gleichzeitig der Takt des RAM-Bausteins. In einem Taktzyklus, in dem der HC11 nicht auf den Speicher zugreift (SELhc=LO), kann ein Lesezugriff über den M-Bus (angefordert mit CSmDS0m/WRIm) geschehen. Dazu wird synchron zum Bustakt der M-Adressbus durchgeschaltet (mit SELm/SELhc) und /DTACKm aktiviert. Das Deaktivieren von /DTACKm geschieht asynchron, sobald CSm deaktiviert wird.

Der Ablauf, den das Arbitrierschaltwerk bei einem Lesevorgang vom M-Bus produziert, ist in Abb. B.7 dargestellt. Die Bedeutung der einzelnen Signale ist in Tab. B.4 zusammengestellt. Abb. B.8 stellt eine detailliertere Fassung des bereits aus Kapitel 7 bekannten Blockdiagramms mit eingezeichneten Steuersignalen dar.

  
Figure B.8: Blockdiagramm des Puffermoduls BRAD : Der Busarbiter steuert die Busentkopplung, das Page-Register am M-Bus, die Steuersignale des RAM-Bausteins und die Handshake-Signale des M-Busses. Die Steuersignale sind an den Steuerbuspfeilen aufgezählt.

  
Table B.4: Steuerbus-Signale des Bus-Arbiters

Abb. B.9 zeigt den Schaltplan des Arbiters. Die Hauptleistung des Schaltwerks besteht in der Erzeugung der Signale SELm und /DTACK mittels Flip-Flops. SELm ist die auf den Bustakt synchronisierte Leseanforderung vom M-Bus. Dieses Signal wird zwar taktsynchron aktiviert, aber asynchron durch /CSm deaktiviert. /DTACK kann auf zwei Arten aktiviert werden: asynchron zum Bustakt bei Schreiboperationen vom M-Bus, bei denen das Page-Register geladen wird (mit UALEm); in diesem Fall reagiert das Modul fast augenblicklich. Synchron zum Bustakt bei Leseoperationen; dort muß erst ein freier Taktzyklus abgewartet und ein Byte vom RAM gelesen werden.

  
Figure B.9: Schaltplan des Bus-Arbiters in BRAD : Bei einem Schreibvorgang über den M-Bus wird unabhängig von der restlichen Schaltung das Page-Register geladen (UALEm); die Anforderung einer Leseoperation wird in einem Flip-Flop mit dem Bustakt synchronisiert (SELm) und mit dem Signal SELhc aus dem Adress-Decoder verknüpft. Das zweite Flip-Flop erzeugt /DTACKm asynchron (M-Bus-Schreibzugriff) oder synchron (M-Bus-Lesezugriff) zu Ehc.

SELhc ist das Resultat der Adressdecodierung am HC11. Das Signal ist aktiv, wenn der Adressbereich von 0xc000 bis 0xdfff angesprochen wird. Die restlichen Steuersignale ergeben sich aus direkten (nicht mit dem Takt synchronisierten) Verknüpfungen der beschriebenen Signale mit den Eingangssignalen von HC11 und M-Bus. Die entsprechenden Boolschen Terme sind im Schaltplan eingezeichnet.



next up previous contents
Next: Dokumentation der Quelldateien Up: Daten zu den Previous: Die M-Modul-Spezifikation



Markus Jankowski Jan Jockusch Lars Jansen Michael Jandrey Marjan Tomas , 1996-Dec-06