-
Die Erfindung betrifft eine Schaltungsanordnung und ein Verfahren zur kontrollierten Inbetriebnahme eines Datenbusses. Solche Datenbusse werden beispielsweise zur elektronischen Kommunikation zwischen einem Prozessor und einem oder mehreren Teilnehmern eingesetzt.
-
Moderne integrierte Schaltkreise werden oft in CMOS – Technologie hergestellt. Diese Technologie hat den Vorteil, daß der Stromverbrauch der Schaltkreise nur beim Umschalten von einem logischen Pegel auf einen anderen nennenswert ist, bei einem konstanten logischen Pegel aber nur sehr wenig Strom fließt. Auch für den Einsatz mit immer niedrigeren Versorgungsspannungen eignet sich die CMOS – Technik gut.
-
Integrierte Schaltkreise müssen miteinander und mit ihrer Umgebung kommunizieren. Hierzu sind Eingangs- und Ausgangstreiber bekannt, mit denen die integrierten Schaltkreise etwa am Datenverkehr eines Datenbusses teilnehmen können. Auch diese Treiber sind häufig in CMOS – Technologie ausgeführt. Solange am Eingang eines solchen Treibers ein definierter logischer Pegel anliegt, verbraucht dieser nur sehr wenig Strom. Falls aber von den Teilnehmern eines Datenbusses keiner aktiv einen logischen Pegel vorgibt, kann es zu einem undefinierten Zustand auf dem Datenbus kommen. Im Eingangstreiber kann dann ein hoher Querstrom fließen, da die beiden MOS – Transistoren, aus denen ein solcher Treiber besteht, gleichzeitig Strom leiten. Dies kommt im Normalbetrieb nur beim Umschalten von einem logischen Pegel auf den anderen vor und schadet nicht, da dieser Zustand nur für kurze Zeit auftritt. Wird aber kein logischer Pegel aktiv vorgegeben, kann dieser Zustand lange andauern (bis zum nächsten schreibenden Zugriff auf den Datenbus). Eine hohe Verlustleistung in den Treiberstufen führt dann zur Erwärmung der integrierten Schaltungen, die zu einer verringerten Lebensdauer bis hin zur Zerstörung des Schaltkreises führen kann.
-
Es sind deshalb Schaltungen bekannt, die einen solchen undefinierten Zustand vermeiden sollen. In der Application Note SCLA015 der Firma Texas Instruments, die am 13.3.2002 unter der Adresse http://www-s.ti.com/sc/psheets/scla015/scla015.pdf im Internet abrufbar war, sind solche Schaltungen beschrieben.
-
So werden Pull-Up- oder Pull-Down-Widerstände eingesetzt, die durch einen kleinen Strom einen Datenbus auf einen definierten logischen Pegel ziehen. Wird aber ein Datenbus mit einem Pull-Up-Widerstand auf einen logischen Pegel ”high” gezogen, so wird über den Widerstand ständig Strom fließen, wenn der Datenbus aktiv auf den Pegel ”low” geschaltet wird. Für einen Pull-Down-Widerstand gilt das gleiche, wenn der Datenbus auf den logischen Pegel ”high” geschaltet wird. Pull-Up- oder Pull-Down-Widerstände führen also zu einem erhöhten Stromverbrauch einer integrierten Schaltung.
-
Es sind aber auch Schaltungen bekannt, die nicht zu einem ständig erhöhten Stromverbrauch führen. Diese sogenannten Bus-Hold-Schaltungen halten den letzten logischen Pegel fest, der aktiv auf deren Eingang geschaltet wurde. Eine solche Bus-Hold-Schaltung kann als nicht invertierender Verstärker gesehen werden, dessen Ausgang auf den Eingang rückgekoppelt ist. Selbst in CMOS – Technologie ausgeführt, verbrauchen auch diese Bus-Hold-Schaltungen nur beim Umschalten von einem logischen Pegel auf einen anderen nennenswert Strom.
-
Bus-Hold-Schaltungen finden sich heute in vielen integrierten Schaltungen bereits als fester Bestandteil neben jedem Treiber. Ein bisher ungelöstes Problem solcher Bus-Hold-Schaltungen besteht aber darin, daß beim Einschalten der Versorgungsspannung zunächst kein definierter Pegel auf dem Datenbus liegt, und damit die Bus-Hold-Schaltung zufällig in einen ”low” oder ”high” Pegel kippt. Sind mehrere Bus-Hold-Schaltungen beteiligt, so können diese in unterschiedliche Zustände kippen und so letztlich einen undefinierten logischen Pegel erzeugen. Dieses Problem tritt nur beim Einschalten der Versorgungsspannung auf, da nach dem ersten aktiven Zugriff auf den Datenbus alle Bus-Hold-Schaltungen gleichgeschaltet sind.
-
Der Zeitraum vom Einschalten der Versorgungsspannung bis zum ersten aktiven Zugriff auf einen Datenbus kann aber unter Umständen sehr lang sein. So müssen in komplexen Multiprozessorsystemen wie z. B. Numerischen Steuerungen für Werkzeugmaschinen während des Startvorganges zunächst alle beteiligten Systeme konfiguriert werden, was bis zu einigen Minuten dauern kann. In einem solchen System kann es also durchaus vorkommen, das der erste aktive Zugriff auf einen Datenbus sehr spät erfolgt.
-
Die
US 6172519 B1 und die
US 5936447 beschreiben demgegenüber Bus-Hold-Schaltungen, bei denen mit unterschiedlichen Lösungsansätzen für einen definierten Zustand beim Einschalten gesorgt wird.
-
Aufgabe der Erfindung ist es daher, eine Schaltung anzugeben, mit der alle Bus-Hold-Schaltungen eines Datenbusses nach dem Einschalten der Versorgungsspannung möglichst schnell in einen definierten Zustand versetzt werden können.
-
Diese Aufgabe wird gelöst durch eine Schaltungsanordnung mit den Merkmalen des Anspruches 1. Vorteilhafte Ausführungsformen ergeben sich aus den Merkmalen, die in den von Anspruch 1 abhängigen Ansprüchen aufgeführt sind.
-
Eine weitere Aufgabe der Erfindung ist es, ein Verfahren anzugeben, mit dem alle Bus-Hold-Schaltungen eines Datenbusses nach dem Einschalten der Versorgungsspannung möglichst schnell in einen definierten Zustand versetzt werden können.
-
Diese Aufgabe wird gelöst durch ein Verfahren nach Anspruch 6. Vorteilhafte Details des Verfahrens ergeben sich aus den von Anspruch 6 abhängigen Ansprüchen.
-
Es wird nun vorgeschlagen, für die Inbetriebnahme eines Datenbusses, der einen Prozessor mit mehreren Teilnehmern verbindet, die neben ihren Treibern Bus-Hold-Schaltungen und Anwenderbereiche aufweisen, eine Schaltung zum Erzeugen eines Impulses vorzusehen, der den Treiber von genau einem Teilnehmer aktiviert, so daß, ein definierter logischer Pegel aus dem Anwenderbereich dieses Teilnehmers auf den Datenbus geschaltet wird. Dadurch werden alle Bus-Hold-Schaltungen gleichgeschaltet und ein länger andauernder undefinierter Zustand, der zur Zerstörung einzelner Bauelemente führen könnte, vermieden.
-
Eine solche Schaltung zum Erzeugen des definierten Impulses konnte beispielsweise aus einem Komparator bestehen, dessen Ausgang von ”low” auf ”high” schaltet, sobald eine minimale Versorgungsspannung anliegt, gefolgt von einem Monoflop, das aus der ansteigenden Flanke des Komparators einen Impuls definierter Dauer erzeugt. Solche Komparatoren sind als Supervisor Circuits ebenso wie die benötigten Monoflops Standardbauelemente der Mikroelektronik und daher günstig zu beziehen.
-
Weitere Vorteile sowie Einzelheiten der vorliegenden Erfindung ergeben sich aus der nachfolgenden Beschreibung einer bevorzugten Ausführungsform anhand der Figuren. Dabei zeigt
-
1 einen Prozessor, der mit mehreren Teilnehmern über einen Datenbus kommuniziert,
-
2 das Blockschaltbild eines Teilnehmers,
-
3 das Blockschaltbild einer Schaltung zum Erzeugen eines Impulses,
-
4 ein Signaldiagramm.
-
1 zeigt einen Datenbus 1, über den ein Prozessor 3 mit mehreren Teilnehmern 2 kommuniziert. Der Datenbus 1 kann aus einer Vielzahl von Datenleitungen bestehen, über die so unterschiedliche Daten wie Anwenderdaten, Steuerdaten oder Adreßdaten übertragen werden. Für jede dieser Datenleitungen gilt, daß ein undefinierter logischer Pegel zu den eingangs beschriebenen Problemen führen kann. Der Prozessor 3 kann beispielsweise ein Mikroprozessor, ein digitaler Signalprozessor (DSP) oder auch nur ein einfaches logisches Schaltwerk sein. Die Teilnehmer 2 können unterschiedlichste Funktionen haben. So sind in einer Numerischen Steuerung für Werkzeugmaschinen von einem Prozessor 3 der Steuerung Daten von Positionsmeßsystemen zu verarbeiten, oder Befehle an Antriebseinheiten zu verschicken. Sowohl die Meßsysteme als auch die Antriebseinheiten kommunizieren dabei in beiden Richtungen mit dem Prozessor 3.
-
Allen Teilnehmern gemeinsam ist, daß sie einen in der 2 angedeuteten bidirektionalen Treiber 4 aufweisen, der über ein Auswahlsignal EN angesprochen werden kann, und dem die Richtung der zu übertragenden Daten über ein Richtungssignal DIR vorgegeben werden kann. Wie bereits erwähnt sind in den kommerziell erhältlichen Schaltkreisen zur Kommunikation mit einem Datenbus 1 oftmals Bus-Hold-Schaltungen 6 integriert. Diese Bus-Hold-Schaltungen 6 halten den aktuellen logischen Pegel am Eingang der Bus-Hold-Schaltung 6 fest, auch wenn kein Teilnehmer 2 oder Prozessor 3 einen logischen Pegel aktiv vorgibt. Wurde ein Treiber 4 eines Teilnehmers 2 über das Auswahlsignal EN ausgewählt, so können Daten, je nach Richtungssignal DIR aus einem Anwenderbereich 5 des Teilnehmers 2 auf den Datenbus 1 übertragen und von dort vom Prozessor 3 gelesen werden, oder Daten, die vom Prozessor 3 auf den Datenbus 1 gelegt wurden, in den Anwenderbereich 5 übertragen werden.
-
Im normalen Betrieb des Datenbusses 1 werden alle angeschlossenen Bus-Hold-Schaltungen 6 jederzeit den gleichen Logischen Pegel halten, eben den zuletzt von einem der Teilnehmer 2 oder vom Prozessor 3 vorgegebenen Pegel. Unmittelbar nach dem Einschalten der Betriebsspannung Vcc für die integrierten Schaltungen im Prozessor 3 und in den Teilnehmern 2 liegt am Datenbus 1 jedoch kein definierter logischer Pegel. Dies kann dazu führen, daß unterschiedliche Bus-Hold-Schaltungen 6 in unterschiedliche logische Pegel kippen, und so in Summe ein undefinierter Zustand auf dem Datenbus 1 entsteht.
-
Es besteht unmittelbar nach dem Einschalten der Betriebsspannung Vcc keine Möglichkeit, durch einen aktiven Zugriff auf den Datenbus 1 einen definierten logischen Pegel zu schreiben. Erreicht nämlich die Betriebsspannung nach dem Einschalten einen Mindestwert, bei dem der Prozessor 3 und die Teilnehmer 2 aktiv werden können, vergeht eine gewisse Zeit, bis diese Bausteine einen internen Reset sicher abgeschlossen haben. In komplexeren Systemen wie Numerischen Steuerungen für Werkzeugmaschinen beginnt erst dann die Konfiguration der beteiligten Systeme, was wie erwähnt Minuten dauern kann. Auf einzelne Datenbusse 1 eines solchen Systems wird unter Umständen erst nach Abschluß dieser Konfiguration aktiv zugegriffen.
-
In herkömmlichen Schaltungen wird der Zeitpunkt, zu dem mit der Kommunikation zwischen den beteiligten Schaltkreisen begonnen werden kann, von einer Reset-Schaltung 9 bestimmt, die in 3 angedeutet ist. In 4 ist das Reset-Signal RES zu erkennen, das von dieser Reset-Schaltung 9 abgegeben wird. Erreicht nach dem Einschalten zum Zeitpunkt T1 die Betriebsspannung Vcc zum Zeitpunkt T2 einen minimalen Wert, bei dem die integrierten Schaltungen mit einem internen Reset beginnen können, so gibt die Reset-Schaltung erst zu einem Zeitpunkt T3 mit einer ansteigenden Flanke an ihrem Ausgang die Information ab, daß ab sofort mit einem kontrollierten Verhalten aller Schaltkreise gerechnet werden kann. In einer typischen Schaltung beträgt die Betriebsspannung Vcc fünf Volt, etwa 10% darunter kann mit dem internen Reset der integrierten Schaltungen begonnen werden. Erst nach weiteren 200 ms (T2–T3) signalisiert die Reset-Schaltung 9, daß mit kontrolliertem Verhalten gerechnet werden kann. So lange das Reset-Signal RES also auf dem logischen Pegel ”low” liegt, wird ein Einschaltvorgang signalisiert, bei einem logischen ”high” des Reset-Signals ist der Einschaltvorgang abgeschlossen. Die Zeitspanne T2–T3 ist dabei großzügig gewählt, da mit dem ”high” – Pegel des Reset-Signals RES alle internen Resets sicher abgeschlossen sein müssen, um z. B. mit der Konfiguration eines komplexeren Systems beginnen zu können.
-
Kurze Einbrüche (im Bereich einiger μs) zum Zeitpunkt T4 in der Betriebsspannung Vcc wirken sich nicht auf das Reset-Signal RES üblicher Reset-Schaltungen 9 aus.
-
Für die Zeit bis zum Abschluß des Einschaltvorganges bzw. bis zum Abschluß der Konfiguration eines komplexeren Systems ist es dem Zufall überlassen, in welchen logischen Pegel eine Bus-Hold-Schaltung 6 am Datenbus 1 fällt. Es droht die Gefahr eines undefinierten Pegels auf dem Datenbus 1, wenn mehrere Bus-Hold-Schaltungen 6 in unterschiedliche logische Pegel fallen. Ein aktiver Zugriff auf den Datenbus 1, der alle Bus-Hold-Schaltungen 6 gleichschalten würde, ist aber frühestens zum Zeitpunkt T3, evtl. erst nach Abschluß der Konfiguration eines komplexeren Systems möglich. Die etlichen hundert Millisekunden zwischen dem Zeitpunkt T2 und dem Zeitpunkt T3, zu dem das Reset-Signal RES auf ”high” schaltet, können aber bereits genügen, um Schaden an CMOS – Bausteinen zu verursachen, an deren Eingängen undefinierte Pegel anliegen. Um dies zu verhindern, soll nun eine Schaltung beschrieben werden, die es erlaubt, nach dem Einschalten der Betriebsspannung Vcc möglichst schnell einen definierten logischen Pegel auf dem Datenbus 1 herzustellen, und die somit eine kontrollierte Inbetriebnahme des Datenbusses 1 sicher stellt.
-
Ein Komparator 7, der üblicherweise in dieser Funktion auch als Supervisor Circuit bezeichnet wird und günstig zu beziehen ist, gibt ein Signal SUP ab. Dieses Signal SUP wechselt von logisch ”low” auf logisch ”high”, sobald die Betriebsspannung Vcc zum Zeitpunkt T2 einen minimalen Wert erreicht hat. Im Gegensatz zur Reset-Schaltung 9 tritt dabei keine oder nur eine geringe Zeitverzögerung auf. Die ansteigende Flanke des Signals SUP wird von einem Monoflop 8 in einen Impuls 11 definierter Dauer verwandelt, das entsprechende Kontrollsignal K ist zusammen mit dem Signal SUP in 4 dargestellt.
-
Das Kontrollsignal K ist über eine verbindende logische Schaltung 10 (üblicherweise auch als Glue Logic bezeichnet) an die Eingänge EN und DIR von genau einem Teilnehmer 2 geschaltet. Es muß hierzu ein Teilnehmer 2 ausgewählt werden, der in seinem Anwenderbereich 5 jederzeit einen definierten logischen Pegel aufweist, der über den Treiber 4 auf den Datenbus 1 geschaltet werden kann. Dieser definierte logische Pegel kann beispielsweise dadurch erzeugt werden, daß am Ausgang des Anwenderbereichs 5 ein Pull-Up-Widerstand oder eine einzelne Bus-Hold-Schaltung wirkt. Besteht der Anwenderbereich 5 aus einem Speicher mit fest gespeicherten Werten (z. B. ROM), so stehen auch hier sofort nach dem Einschalten definierte logische Pegel zur Verfügung. Es ist auch denkbar, einen eigenen Teilnehmer 2 vorzusehen, der keine andere Aufgabe hat, als einen definierten logischen Pegel aus seinem Anwenderbereich 5 während des Impulses 11 auf den Datenbus 1 zu schalten.
-
Der definierte logische Pegel, der während der Dauer des Impulses 11 auf den Datenbus 1 geschaltet wird, stellt eine Gleichschaltung aller beteiligten Bus-Hold-Schaltungen 6 sicher. Da dies bereits zum Zeitpunkt T2 geschieht, zu dem die Betriebsspannung Vcc einen minimalen Wert erreicht, droht den am Datenbus 1 beteiligten CMOS – Schaltungen keine Gefahr.
-
Da handelsübliche Komparatorschaltungen 7 sehr schnell reagieren, wird bei einem kurzeitigen Spannungseinbruch zum Zeitpunkt T4 auch das Signal SUP kurzeitig von ”high” auf ”low” schalten. Mit der ansteigenden Flanke vom Signal SUP wird dann auch ein Impuls 11 im Kontrollsignal K erzeugt. Im laufenden Betrieb etwa einer Numerischen Steuerung wäre es nicht akzeptabel, wenn zum Zeitpunkt T4 durch den Impuls 11 ein logischer Pegel auf den Datenbus 1 gezwungen würde, da über den Datenbus 1 durchaus sicherheitsrelevante Vorgänge gesteuert werden. Es ist daher vorteilhaft, das Kontrollsignal K in der verbindenden logischen Schaltung 10 so mit dem Reset-Signal RES zu verbinden, daß der Impuls 11 nur während eines Einschaltvorganges wirksam wird, also wenn das Reset-Signal RES auf ”low” liegt. Im laufenden Betrieb, wenn das Reset-Signal RES auf ”high” liegt, bleibt der Impuls 11 dann ohne Wirkung. Natürlich könnte man auch schon das Signal SUP mit dem Reset-Signal RES so verknüpfen, daß es das Monoflop 8 nicht erreichen würde, wenn der Einschaltvorgang bereits abgeschlossen wäre.
-
Die in 3 dargestellte Schaltung saute natürlich so aufgebaut sein, daß alle Datenleitungen das Datenbusses 1, die nach dem Einschalten der Betriebsspannung Vcc keinen definierten logischen Pegel aufweisen, über vom Impuls 11 aktivierte Treiber 4 mit einem definierten logischen Regal versorgt werden.
-
Wie gezeigt läßt sich mit der erfindungsgemäßen Schaltungsanordnung, für die lediglich kostengünstige und handelsübliche Bausteine benötigt werden, und mit dem erfindungsgemäßen Verfahren auf einfache Weise ein undefinierter logischer Pegel auf dem Datenbus 1 während der Inbetriebnahme vermeiden. Im laufenden Betrieb sorgen dann die beteiligten Bus-Hold-Schaltungen 6 für definierte logische Pegel.