-
Die
Erfindung betrifft eine Datenverarbeitungsvorrichtung mit einem
Eingangsport zum Empfangen eines Kommunikationssignals.
-
In
Datenverarbeitungsanlagen werden oft serielle Datenbitströme verwendet,
um Daten zwischen verschiedenen Vorrichtungen zu übertragen.
Nacheinander empfangene Bits werden zu Datenwörtern zum Beispiel mit 8 Bit
Länge geformt.
Während
des Empfangs erfolgt das Abtasten der verschiedenen Bits des Stroms gewöhnlich unter
der Steuerung eines Taktsignals. Oft wird zu diesem Zweck ein Taktsignal
mit einer bestimmten festen Frequenz benutzt, aber es ist auch die
Auswahl aus alternativen Frequenzen bekannt. Aus der PCT-Patentanmeldung
Nr.
WO9960760 zum Beispiel
ist ein Uhrenschaltkreis bekannt, der den Divisor, mit welchem das
Abtasttaktsignal von einer Mutteruhr bezogen wird, an gemessene
Eigenschaften des Kommunikationssignals anpasst.
-
Das
Dokument
US 2002/101884 beschreibt
ein Verfahren und eine Vorrichtung zum Betreiben eines Busses entsprechend
der Lokal-Interconnect-Network-Spezifikation, wobei die Slave-Geräte keine
vorherige Kenntnis der Baudrate vor dem Empfangen von Übertragungen
benötigen.
-
Ein
weiteres Beispiel einer Verarbeitungsanlage, die anpassbare Bitperioden
verwendet, ist eine Anlage, die das so genannte LIN-Bus-Protokoll
verwendet. Das LIN-Bus-Protokoll
ermöglicht
die Übertragung
eines Kommunikationssignals, das Nachrichten enthält, ohne Übertragung
eines gesonderten Taktsignals. Taktsignale werden lokal in einem
Empfänger
des Kommunikationssignals erzeugt. Jede Nachricht enthält ein Synchronisationsbyte
(Sync-Field), das ein Zeitintervall bestimmt, in welchem ein Schaltbitmuster übertragen
wird. Dieses Bitmuster weist die Bitperiode auf, die während der
Nachricht verwendet werden wird. Das Sync-Field ermöglicht einem
Empfangsschaltkreis, einen lokalen Takt mit einer korrekten Bitperiode
zu erzeugen, für
gewöhnlich
durch Auswahl einer aus einer Anzahl von verfügbaren Bitfrequenzen.
-
Gemäß dem LIN-Protokoll
geht dem Sync-Field ein so genanntes Synchronisationszeichen (Sync-Break)
voraus, das dem Empfänger
ermöglicht,
den Anfang der Nachricht und das Sync-Field, das dem Sync-Break
unmittelbar folgt, zu erkennen. Das Sync-Break enthält ein eindeutiges Muster von
Bits, das nicht anderenorts in der Nachricht auf treten kann: ein
fortgesetztes Signal mit geringer Signalstärke, welches länger andauert
als die Trennung zwischen den aufeinander folgenden Bytes im Rest
der Nachricht. Daher fungiert das Sync-Break als ein Erkennungsintervall
um zu bestimmen, ob ein Sync-Field folgt oder nicht, und das Sync-Field
fungiert als ein Messintervall, um eine Bitperiode zu messen.
-
Solch
eine Anlage funktioniert gut, wenn vorhersagbare Taktsignalfrequenzen
verwendet werden, wobei die Frequenzen innerhalb eines bestimmten
begrenzten Bereichs oder innerhalb einer kleinen Anzahl von Frequenzbereichen
liegt, wie es in herkömmlichen
LIN-Empfängern
der Fall ist. Probleme treten auf, wenn der Taktsignalfrequenz gestattet
wird, im Wesentlichen kontinuierlich über einen breiten Bereich zu
schwanken. In diesem Fall kann die Dauer eines Sync-Break-Bereichs
bei einer hohen Taktfrequenz gleich der Dauer eines Kommunikationssignals
mit geringer Signalstärke
bei einer niedrigen Taktfrequenz sein. Ist die Taktfrequenz nicht
von vornherein mit ausreichender Genauigkeit bekannt, so können Sync-Break-Bereiche
nicht zuverlässig
von normalen Nachrichtendaten unterschieden werden. Folglich ist
es bisher nötig,
eine Erkennung für
das Ende einer Nachricht zu verwenden, bevor nach dem nächsten Sync-Break-Bereich
gesucht wird, das heißt, die
Nachrichtenverarbeitung und Frequenzauswahl zu integrieren. Das
macht Empfangsschaltkreise kostenintensiver.
-
Unter
anderen ist es eine Aufgabe der Erfindung, eine Datenverarbeitungsvorrichtung
bereitzustellen, die das Erkennen von Sync-Fields unterstützt, wenn
eine Kommunikationstaktfrequenz über
einen breiten Bereich schwanken kann, ohne Informationen über das
Ende von Nachrichten zu benötigen.
-
Unter
anderen ist es eine weitere Aufgabe der Erfindung, parallel zum
Nachrichtenempfang eine kontinuierliche Überwachung des Beginns einer
Nachricht bereitzustellen.
-
Die
Erfindung stellt eine Datenverarbeitungsvorrichtung gemäß Anspruch
1 bereit. Erfindungsgemäß sucht
die Vorrichtung nach Kombinationen von möglichen Sync-Breaks und Sync-Fields,
die von solchen potentiellen Sync-Breaks identifiziert werden, und
prüft anschließend, ob
das potentielle Sync-Break, das typisch seinem identifizierten Sync-Field vorausgeht,
eine Dauer aufweist, die der Bitperiode entspricht, die durch sein identifi ziertes
Sync-Field festgelegt ist. Ein Abtasttaktsignal mit einer dem Sync-Field
angepassten Bitperiode wird angewendet, um die Bits der Nachricht
nur dann abzutasten, wenn festgestellt wurde, dass die Dauer des potentiellen
Sync-Breaks der Bitperiode entspricht, die durch ihr identifiziertes
Sync-Field festgelegt ist. Somit kann jede Bitperiode verwendet
werden.
-
Im
LIN-Protokoll erkennt der Sync-Break-Bereich den Sync-Field-Bereich
in dem Sinne, dass der Sync-Field-Bereich unmittelbar dem Sync-Break-Bereich
im Kommunikationssignal folgt, so dass die Position des Sync-Field-Bereichs
feststeht, sobald das Sync-Break gefunden wurde. Ohne von der Erfindung
abzuweichen, können
jedoch auch andere Möglichkeiten
der Identifizierung des Sync-Field-Bereichs mit dem Sync-Break-Bereich bereitgestellt
werden, wie etwa die Übertragung
des Sync-Field-Bereichs unmittelbar vor dem Sync-Break-Bereich oder
die Übertragung
des Sync-Field-Bereichs nach einer bestimmten Anzahl von Impulsen
vor oder nach dem Sync-Break-Bereich im Kommunikationssignal, vorausgesetzt
der Sync-Field-Bereich kann auf der Grundlage der Position des Sync-Break-Bereichs
gefunden werden.
-
In
einer Ausführungsform
wird eine zusätzliche Überprüfung ausgeführt, indem
geprüft
wird, ob die interne Taktung des Sync-Fields der angepassten Bitperiode
entspricht. Dadurch wird ein noch zuverlässigeres Erkennen des Beginns
einer Nachricht gewährleistet.
-
Bevorzugt
arbeitet der Taktquellenschaltkreis parallel zum dem Empfangsschaltkreis
und fährt
mit der Suche fort, während
der Empfangsschaltkreis Bits vom Kommunikationssignal abtastet.
Dadurch wird das Risiko übergangener
Sync-Breaks vermindert. Bevorzugt wird der Empfang beendet, wenn
während
des Empfangs der Nachricht ein neues Sync-Break erkannt wird.
-
Diese
und andere Aufgaben und vorteilhafte Aspekte der Erfindung werden
anhand der folgenden Figuren beschrieben.
-
1 zeigt
eine Datenverarbeitungsvorrichtung,
-
2 zeigt
Signalfolgen (Bursts) von Befehlsausführungen,
-
3 zeigt
einen Zeitgeberschaltkreis,
-
4 zeigt
einen Synchronisationsteil eines Einganssignals,
-
5 zeigt
einen weiteren Zeitgeberschaltkreis,
-
6 zeigt
einen Prozessorschaltkreis.
-
1 zeigt
eine Datenverarbeitungsvorrichtung mit einem Eingangsprozessor 10 und
einem weiteren Prozessor 12. Der Eingabeprozessor 10 enthält einen
Befehlsprozessor 100, einen Befehlsspeicher 102,
einen Uhrenschaltkreis 104, einen Taktgeberschaltkreis 106 und
einen Quittierschaltkreis (Handshake-Schaltkreis) 108.
Eine Kommunikationseingabe 14 der Datenverarbeitungsvorrichtung
ist an den Befehlsprozessor 100 und einen Taktgeberschaltkreis 106 angeschlossen.
Der Uhrenschaltkreis 104 ist an den Taktgeberschaltkreis 106 angeschlossen,
welcher wiederum über
den Handshake-Schaltkreis 108 an den Befehlsprozessor 100 angeschlossen
ist. Der Befehlsprozessor 100 ist an den Befehlsspeicher 102,
den Handshake-Schaltkreis 108 und den weiteren Prozessor 12 angeschlossen.
-
2 zeigt
ein Auslösesignal 26 mit
Impulsen 28, Signalfolgen 22 von Befehlszyklen
sowie Bitperioden 21 und einen Datenwortzyklus 22 als
Funktion der Zeit. Obschon 2 nur eine
Gruppe von Bitperioden 21 für die Bits in einem einzelnen
Datenwort zeigt, sollte es sich verstehen, dass Nachrichten eine
Folge von solchen Gruppen enthalten können, jede für ein folgendes
Datenwort und jede mit ihrem eigenen Datenwortzyklus 20.
-
In
Betrieb wird dem Eingangport 14 ein Signal zugeführt, das
zeitlich aufeinander folgende Bits in verschiedenen Bitperioden 21 darstellt.
Der Taktgeberschaltkreis 106 erzeugt Auslöseimpulse 28 jeweils
zu den Zeitpunkten, wenn die Bits am Eingangsport 14 verfügbar sind.
Die Taktung der Auslöseimpulse 28 ist
nur insofern entscheidend, als die Auslöseimpulse 28 jeweils
irgendwo innerhalb der Periode erzeugt werden, in der das entsprechende
Bit als am Eingangsport 14 stabil bekannt ist. Darüber hinaus
sollten die Impulse einen ausreichenden Abstand zueinander aufweisen,
um die Beendigung jeder Signalfolge 22 vor dem nächsten Auslöseimpuls 28 zu
ermöglichen.
Ein Empfangszwischenspeicher kann bereitgestellt werden, um die
Eingangsbits zwischenzuspeichern; in diesem Fall können die
Auslöseimpulse
sogar außerhalb
der Perioden erzeugt werden, in denen die Bits stabil sind.
-
Als
Reaktion auf die Auslöseimpulse 28 ruft
der Befehlsprozessor 100 eine Reihe von Befehlen vom Befehlsspeicher 102 ab
und führt
jede Reihe von Befehlen in einer entsprechenden Signalfolge 22 von
Befehlszyklen aus. Nach einer Anzahl solcher Signalfolgen 22 haben
alle Bits in einem Datenwort den Eingangsport 14 erreicht
und wurden vom Befehlsprozessor 100 verarbeitet. In die
letzte der Signalfolgen 22 gibt der Befehlsprozessor 100 in
einem Datenwortzyklus 20 das Datenwort zum weiteren Prozessor 12 aus.
Dies kann durch parallele oder bit-serielle Ausgabe aller empfangenen
Bits erfolgen, wobei jedes beliebige Taktsignal verwendet werden
kann, um aufeinander folgende Bit der Bits zu takten.
-
Je
nach den Vorgaben des Kontexts können
während
der Signalfolgen
22 verschiedene Verarbeitungstypen ausgeführt werden.
In einem Beispiel werden mehrere Paritätsbits in jeder Signalfolge
22 potentiell aktualisiert,
durch aufeinander folgendes Ausführen
von entsprechenden Befehlen, verschiedene Paritätswerte in jeder Signalfolge
22 zu
aktualisieren, und in Abhängigkeit
vom Wert eines empfangenen Bits und Formeln für die verschiedenen Paritätsbits (die
Formeln bestimmen, wie, falls überhaupt,
ein Bit an einer bestimmten Position in einem Datenwort zu entsprechenden
Paritätsbits
beiträgt;
typisch werden Exklusiv-Oder-Funktionen des vorangegangenen Werts
entsprechender Paritätsbits
und das empfangene Bit errechnet, wenn die Formel für das einzelne
Paritätsbit
angibt, dass das jeweilige empfangene Bit zum jeweiligen Paritätsbit beiträgt). Eine
typische Reihe von Befehlen lautet:
| f =
inp RXD | Lies
Eingangsbit ins Register f |
| ml
= f | Speichere
Eingangsbit in Ort m1 |
| m2
= f + m2 | Aktualisiere
erstes Paritätsbit
in Ort m2 |
| m3
= f + m3 | Aktualisiere
zweites Paritätsbit
in Ort m3 |
| wait | Unterbrich
Betrieb bis zum nächsten
Bit |
(in Abhängigkeit
von der Sequenznummer des Bits im Datenwort können verschiedene Paritätsbits aktualisiert oder
die Paritätsbits
in den Orten m2, m3 nicht aktualisiert werden). Wenn alle Befehle
in einer Signalfolge
22 ausgeführt sind, wird die Befehlsverarbeitung
bis zum Auslösen
der nächsten
Signalfolge
22 unterbrochen. Im Befehlspro zessor
100 finden
während
der Unterbrechung bevorzugt keine oder im Wesentlichen keine interne Signalübergänge statt,
so dass der Energieverbrauch minimiert wird. Wenn alle Eingangsbits
verarbeitet wurden, können
die Paritätsbits
an den weiteren Prozessor
12 ausgegeben werden, oder sie
können
vom Befehlsprozessor
100 genutzt werden, um Signalfehler
zu korrigieren.
-
Zur
Steuerung des Betriebs des Befehlsprozessors 100 wird Quittieren
(Handshaking) benutzt. Zunächst
erzeugt der Taktgeberschaltkreis 106 ein Anfragesignal
(typisch durch Verstärken
eines Auslösesignals 26).
Als Reaktion auf das Anfragesignal beginnt der Befehlsprozessor 100,
den ersten Befehl einer Reihe von Befehlen in einer Signalfolge 22 zu
verarbeiten. Der Befehlsprozessor 100 sendet ein Bestätigungssignal
zurück
zum Taktgeberschaltkreis 106, der als Antwort darauf das
Anfragesignal absetzt (typisch durch Abschwächen des Auslösesignals).
Sobald der Befehlsprozessor 100 angezeigt hat, das er zum
Empfang des nächsten Anfragesignals
bereit ist, kann der Taktgeberschaltkreis 106 ein neues
Anfragesignal erzeugen, allerdings im Allgemeinen mit einer Zeitverzögerung,
wenn ein neues Eingangsbit verfügbar
ist. Nach dem Auslösesignal vom
Taktgeberschaltkreis 106 erzeugt der Befehlsprozessor 100 einer
Reihe von Anfragesignalen für
sich selbst, um die Ausführung
der in den Reihen der Signalfolgen 22 aufeinander folgenden
Befehle auszulösen. Dies
wiederholt sich, bis die Befehlsreihen beendet sind (wie im Programmierbeispiel
durch den „wait"-Befehl angezeigt),
woraufhin keine weiteren Anfragesignale durch den Befehlsprozessor 100 erzeugt
werden.
-
Innerhalb
des Befehlsprozessors 100 können die Handshakes im Prinzip
weitergegeben werden, so dass jeder Teilschaltkreis, der an einer
Befehlsausführung
beteiligt wird, durch Handshakes aktiviert wird und seinerseits
weitere beteiligte Teilschalkreise per Handshake aktiviert. Dadurch
wird der Energieverbrauch reduziert, da kein Teilschaltkreis Signalübergänge erzeugen
muss, es sei denn, dies ist für
die Ausführung
von bestimmten Befehlen notwendig. Natürlich ist die Erfindung nicht
auf das Handshaking begrenzt, um die Unterbrechung des Betriebes
zu gewährleisten.
Zum Beispiel kann ein getakteter Befehlsprozessor in Kombination
mit einer Form des Clock-Gatings (Abschalten des Taktsignals während inaktiver
Taktzyklen) verwendet werden, womit sicherstellt wird, dass außer halb
der Signalfolgen 22 keine Taktsignale zum Befehlsprozessor 100 geführt werden.
Dies verringert den Energieverbrauch ebenfalls, wenn auch weniger
als mit Handshaking.
-
Obschon
die Erfindung hinsichtlich des Empfangs von Bits durch einen Befehlsprozessor 100 beschrieben
wurde, wird man verstehen, dass, ohne von der Erfindung abzuweichen,
der Befehlsprozessor 100 auch dafür angeordnet werden kann, Daten
in jeder oder allen Bitperioden 21 über den Kommunikationseingang 14 zurück zu übertragen.
Zum Beispiel kann der Befehlsprozessor 100 eine Bestätigung in
einer Bitperiode 21 zurücksenden,
oder er kann Daten in mehreren Bitperioden 21 übertragen,
sobald er aus Informationen in vorangegangenen Bitperioden 21 erkannt
hat, dass dies erforderlich ist.
-
3 zeigt
ein Beispiel eines Taktgeberschaltkreises. Dieses Beispiel enthält einen
Zähler/Controller 30,
einen Frequenzteiler 32, einen Sync-Field-Start-Detektor 34 und
einen Sync-Field-Stop-Detektor 36. Der Sync-Field-Start-Detektor 34 und
der Sync-Field-Stop-Detektor 36 sind
an den Eingang 14 angeschlossen und weisen Ausgänge auf,
die an der Zähler/Controller 30 angeschlossen
sind. Der Zähler/Controller 30 weist
einen an den Uhrenschaltkreis 104 angeschlossenen Eingang
und einen an den Teiler 32 gekoppelten Ausgang auf. Der
Teiler 32 weist Eingänge
auf, die an den Uhrenschaltkreis 104 und den Zähler/Controller 30 angeschlossen
sind, und einen Ausgang, der an den Handshake-Schaltkreis 108 angeschlossen
ist.
-
4 zeigt
ein Beispiel eines Synchronisationsteils eines Eingangssignals vom
Eingang 14. Dieser Synchronisationsteil entspricht dem
Synchronisationsteil des LIN-Protokolls,
das an sich allgemein bekannt ist. Der Synchronisationsteil geht
den Bitperioden 21 der 2 voraus.
Der Synchronisationsteil enthält
einen Sync-Break-Bereich 50 und einen Sync-Field-Bereich 52.
Im Sync-Break-Bereich 50 nimmt das Eingangssignal für ein erstes
Zeitintervall eine geringe Signalstärke 53 ein, wonach
das Signal auf eine höhere
Signalstärke ansteigt.
Die Länge
des Sync-Break-Bereichs 50 wurde so gewählt, dass es länger ist
als die Länge
der geringen Signalstärke,
was durch jedes beliebige Bitmuster irgendwo in der Nachricht (länger als
ein Byte voller Nullen) verursacht werden kann. Im Sync-Field-Bereich 52 enthält das Eingangssignal
vier Impulse 54, in denen das Eingabesignal zuerst eine
geringe Signalstärke
und danach eine hohe Signalstärke
annimmt. Dem Sync-Field 52 folgt ein anschließender Nachrichtenbereich,
in dem Bitperioden (nicht dargestellt) auftreten. Die Dauer der
Bitperioden weist ein bestimmtes Verhältnis zur Dauer des Sync-Field-Bereichs 52 auf.
-
In
Betrieb wird das Eingangssignal von einem Sender (nicht dargestellt)
erzeugt und von einer Taktgeberschaltung 106 verarbeitet.
Der Sync-Field-Start-Detektor 34 erkennt den Anfang des
Sync-Field-Bereichs 52 im Eingangssignal vom Eingangsport 14.
Der Sync-Field-Start-Detektor 34 signalisiert dem Zähler/Controller 30,
eine Zählung
zurückzusetzen
und als Reaktion auf die Erkennung mit dem Zählen der Taktimpulse von der
Uhrenschaltung 104 zu beginnen. Der Sync-Field-Stop-Detektor 36 erkennt
das Ende des Sync-Field-Bereichs 52 und signalisiert dem
Zähler/Controller 30,
die Zählung
zu beenden. Daraufhin wendet der Zähler/Controller 30 einen
Divisorwert, der aus der gezählten
Anzahl der Taktimpulse bestimmt wird, auf den Teiler 32 an,
der die Taktfrequenz durch den Divisorwert dividiert. Der Teiler 32 wendet
Taktimpulse auf der dividierten Frequenz auf den Handshake-Schaltkreis 108 an,
um die Signalfolgen 22 zu starten.
-
Im
Teiler 32 kann eine Zählschaltung
(nicht dargestellt) verwendet werden, die immer dann einen Impuls
erzeugt, wenn sie eine eingestellte Anzahl von Taktimpulsen von
der Uhrenschaltung 104 gezählt hat. In diesem Fall entspricht
die eingestellte Anzahl der Anzahl von vom Zähler/Controller 30 gezählten Impulsen, dividiert
durch einen festgelegten Faktor, der die Anzahl von Bitperioden
des Sync-Fields darstellt. Die Erfindung ist nicht auf diesen Typ
eines Teilers 32 begrenzt.
-
Wenn
das Sync-Field mehr als eine Bitperiode enthält, ist es möglich, die
Anzahl der Taktimpulse des Uhrenschaltkreises 106 mit einer
Bruchteil-Abweichung von weniger als plus oder minus einem Taktimpuls
zu bestimmen. Wenn beispielsweise in einem Sync-Field acht Bitperioden auftreten, kann
die Länge
der Bitperioden bis auf 1/8 der Taktperiode genau bestimmt werden.
Wenn der Teiler 32 einen einfachen Zähler verwendet, wird die Bruchteilgenauigkeit
verworfen. In einem weiteren Beispiel wird diese Bruchteilgenauigkeit
durch die Verwendung eines Oszillators ausgenutzt, der es ermöglicht,
dass die Anzahl der Taktperioden des Uhrenschaltkreises 104 pro
Bitperiode schwankt, so dass im Durch schnitt die Dauer der Bitperiode
genauer mit der Bitperiode übereinstimmt,
die mit Bruchteilgenauigkeit gemessen wurde.
-
Solch
ein digitaler Oszillator kann zum Beispiel als ein Addierschaltkreis
implementiert werden, der einem Zählwert in jeder Taktperiode
des Uhrenschaltkreises 104 einen Zählschritt hinzufügt und einen
Impuls erzeugt, der immer dann eine Bitperiode anzeigt, wenn der
Zählwert
einen Schwellwert übersteigt,
während gleichzeitig
der Zahlwert um den Schwellwert herabgesetzt wird. In diesem Fall
können
der Schwellwert und/oder der Zählschritt
entsprechend einer Zahl vom Zähler/Controller 30 eingestellt
werden, so dass die durchschnittliche Anzahl der Taktperioden des
Uhrenschaltkreises 104 pro Bitperiode gleich der bruchteilgenauen
Dauer der vom Sync-Field durch den Zähler/Controller 30 erkannten
Bitperiode ist. Infolgedessen kann die Anzahl von Taktimpulsen pro
Bitperiode schwanken, so dass im Durchschnitt die Länge der
Bitperioden gleich der erforderlichen bruchteilgenauen Bitperiode
ist.
-
Der
Uhrenschaltkreis 104 ist bevorzugt so gestaltet, dass die
Frequenz der Taktimpulse vom Uhrenschaltkreis 104 hoch
genug ist, damit Abweichungen in der Frequenz der Auslösesignalimpulse 28 so
klein sind, dass während
des Abfragens der Bits vom Eingangssignal keine Fehler auftreten.
Typisch umfassen die Abweichungen Zeitabweichungen aufgrund einer
unvorhersehbaren relativen Taktung von Übergängen in das Taktsignal vom
Uhrenschaltkreis 104 und von Übergängen in das Eingangssignal.
Die maximale kumulative Auswirkung dieser Abweichungen ist eine
Abweichung, bei der es um einen festgelegten Multiplikationsfaktor (z.
B. 10) mal der Dauer der Taktperioden des Taktsignals vom Uhrenschaltkreis 104 handelt.
Auf der Basis einer gewünschten
Genauigkeit (von beispielsweise nicht mehr als 1,5% Abweichung am
Ende eines 9-Bit-Datenwortes, das mit 20 kB pro Sekunde übertragen
wird) kann eine zulässige
Mindestfrequenz des Uhrenschaltkreises 104 abgeleitet werden
(zum Beispiel 1,4 MHz in diesem Fall).
-
Somit
passt der Taktgeberschaltkreis 106 die Frequenz der Auslöseimpulse 28 an
eine gemessene Eigenschaft des Eingangssignals am Eingang 14 an,
um dem Befehlsprozessor 100 die Verarbeitung eingehender
Bits mit einer kurzen Signalfolge 22 von Befehlsausführungen
zu ermöglichen.
-
Zusätzlich können andere
Eigenschaften des Eingangssignals genutzt werden, um zu erkennen,
ob ein Datenwort geliefert wird, d. h. um zu erkennen, ob die Auslöseimpulse überhaupt
erzeugt werden sollen. Zu diesem Zweck kann die Erkennung des Sync-Break-Bereichs 50 und/oder
die Erkennung der richtigen Anzahl von Impulsen 54 mit
geeigneter Dauer in einem Sync-Field-Bereich 52 verwendet
werden. Die geringe Signalstärke 53 im
Sync-Break-Bereich 50 besteht für eine bestimmte Mindestdauer.
Diese Mindestdauer steht in einem festgelegten Verhältnis zur
Dauer des Sync-Field-Bereichs 52. Wie zur Einstellung des
Divisors kann der Taktgeberschaltkreis 106 folglich auch
dafür angeordnet
sein, aufeinander folgende Auslöseimpulse 28, wie
sie vom Sync-Bereich gesteuert werden, nur zu erzeugen, nachdem
ein entsprechendes Sync-Break erkannt wurde.
-
Der
Taktgeberschaltkreis 106 ist in der Lage, die Überwachung
auf Sync-Breaks parallel zur normalen Verarbeitung der Nachricht
durch den Eingangsprozessor 10 auszuführen. Dadurch ist eine fortlaufende Überwachung
auf Sync-Breaks möglich.
Es werden keine Sync-Breaks aufgrund dessen übergangen, dass der Eingangsprozessor 10 mit
dem Verarbeiten einer Nachricht beschäftigt ist.
-
5 zeigt
eine Ausführungsform
eines Taktgeberschaltkreises, der die Dauer eines oder mehrerer Bereiche
und Impulse 54 prüft.
Zusätzlich
zur Komponente von 3 enthält die Ausführungsform der 5 einen
Sync-Break-Zähler 60,
einen Sync-Break-Ende-Detektor 64 und
einen Verhältnisvergleichsschaltkreis (62).
Der Sync-Break-Zähler 60 weist
einen an den Uhrenschaltkreis 104 angeschlossenen Takteingang
auf, einen an den Start-Detektor 34 angeschlossenen Starteingang
und einen, an den Ausgang des Sync-Break-Ende-Detektors 64 angeschlossenen
Endeeingang auf. Die Ausgänge
des Zählers/Controllers 30 und
des Sync-Break-Zählers 60 sind
an den Verhältnisvergleichsschaltkreis
(62) angeschlossen, der einen an den Teiler 32 angeschlossenen
Steuerausgang aufweist.
-
Diese
Ausführungsform
befasst sich mit dem Problem, dass die Mindestdauer des Sync-Break-Bereichs 50 nicht überprüft werden
kann, wenn die Taktrate nicht im Vorhinein mit ausreichender Genauigkeit
bekannt ist. Sind nur kleine Schwankungen der Bitrate zulässig, ist
es möglich,
eine Schwellwertdauer des Sync-Break-Bereichs 50 einzustellen, die
selbst bei der niedrigsten mögliche
Taktrate länger
ist als die Dauer einer geringen Signalstärke infolge eines beliebigen
normalen Datenmusters, bei der höchsten
möglichen
Taktrate aber kürzer
als die Mindestdauer des Sync-Breaks. Eine solche Schwellwertdauer
kam jedoch nicht festgestellt werden, wenn zu viel Abweichung in
der Taktrate auftreten kann.
-
In 5 erkennt
der Taktgeberschaltkreis 106 im Nachhinein das Vorliegen
eines Sync-Breaks 50 in Kombination mit einer Taktratenmessung.
Der Sync-Break-Zähler 60 zählt die
Anzahl der Taktimpulse vom Uhrenschaltkreis 104 in Zeitintervallen,
in denen das Signal eine geringe Signalstärke 53 annimmt und
somit angezeigt wird, dass solch ein Bereich ein Sync-Break-Bereich 50 sein
könnte.
Der Zähler/Controller 30 zählt die Anzahl
der Taktimpulse während
eines Sync-Field-Bereichs 52. Die Zählwerte des Sync-Break-Zählers 60 und des Zählers/Controllers 30 werden
auf den Verhältnisvergleichsschaltkreis 62 angewendet,
der prüft,
ob die Verhältnisse
zwischen den aufeinander folgend ermittelten Zählwerten vom Sync-Break-Zähler 60 und
vom Zähler/Controller 30 innerhalb
eines festgelegten Bereichs liegen, der einer festgelegten Mindestdauer
des Sync-Break-Bereichs 50 entspricht, unter Berücksichtigung
von Abtastfehlern und Taktratenfluktuation. Nur wenn der Verhältnisvergleichsschaltkreis 62 solch
eine Kombination erkennt, signalisiert er dem Teiler 32,
den vom Zähler/Controller 30 ermittelten
Divisor zu übernehmen.
-
Der
Verhältnisvergleichsschaltkreis 62 kann
den Vergleich zum Beispiel durch Multiplizieren beider Zählungen
einer Kombination mit geeigneten Faktoren durchführen, gefolgt von einem Vergleich
der Produkte. Bevorzugt macht der Verhältnisvergleichsschaltkreis 62 Gebrauch
von Parallelverarbeitung (Pipelining), d. h. er weist Speicherelemente
zum Speichern einer Anzahl von aufeinander folgend ermittelten Zählungen
vom Sync-Break-Zähler 60 auf
und vergleicht die älteste
Zählung
(die einem Signalbereich mit geringer Signalstärke entspricht, der dem Ende
des Sync-Fields 52 um eine vorbestimmte Anzahl von Signalbereichen
mit geringer Signalstärke
vorangeht, wie in 4 dargestellt) mit der Zählung vom
Zähler/Controller 30.
Damit kann ein Sync-Break mit Hilfe von neueren Zählungen
vom Sync-Break-Zähler 60 erkannt
werden, wenn die Erkennung fehlschlägt. Solch eine parallel arbeitende
Speicherung jedoch zum Beispiel dann nicht not wendig, wenn sehr kurze
Bereiche (wie die Bereiche zwischen den Impulsen 54) im
Vorhinein auf der Grundlage eines Schwellwertes der Mindestdauer
als Sync-Break-Bereiche 50 ausgeschlossen werden können, so
dass Zählungen dieser
Bereiche nicht gespeichert werden müssen.
-
Wie
zur Einstellung des Divisors kann der Taktgeberschaltkreis 106 in
dieser Ausführungsform
auch dafür
angeordnet sein, aufeinander folgende Auslöseimpulse 28, wie
sie vom Sync-Bereich gesteuert werden, nur zu erzeugen, nachdem
ein entsprechendes Sync-Break erkannt wurde.
-
Obwohl
getrennte Sync-Break-Zähler 60 und
Zähler/Controller 30 dargestellt
wurden, versteht es sich, dass der gleiche Zähler für beide Formen der Zählung genutzt
werden kann, sofern Speicherplatz für die Speicherung von Zählungen
von Taktimpulsen der verschiedenen betreffenden Zeitintervalle und
für das
Kombinieren dieser Zählungen
zur Erkennung des Verhältnisses
zwischen dem Sync-Break-Bereich 50 und dem Sync-Field-Bereich 52 bereitgestellt
ist.
-
Auch
kann der Taktgeberschaltkreis 106 dafür konstruiert sein, weitere
Prüfungen
am Eingangssignal durchzuführen
und die Erzeugung der Auslöseimpulse 28 von
einem positiven Ergebnis solch einer Prüfung abhängig zu machen. So kann zum
Beispiel der Taktgeberschaltkreis 106 das Vorliegen ausreichender
Signalstärkeänderungen
aufgrund der Impulse 54 mit entsprechender relativer Taktung
im Sync-Field-Bereich 52 prüfen. Fehlen solche Stärkeänderungen,
wird das Erkennen des Sync-Breaks unterdrückt, der Divisor nicht aktualisiert
und keine Nachricht empfangen.
-
Natürlich sind
viele andere Ausführungsformen
des Taktgeberschaltkreises 106 möglich. Zum Beispiel kann, wenn
die Länge
der Bitperioden 21 hochgradig voraussagbar ist, eine feststehende
Taktung der Auslöseimpulse
verwendet werden. Andere Eigenschaften des eingehende Signals können ebenfalls
verwendet werden, um die Taktung anzupassen, zum Beispiel kann ein
Phasenregelkreis verwendet werden, um das Taktsignal und das Kommunikationssignal
zu synchronisieren. Durch Zulassen der Anpassung der Frequenz der
Auslöseimpulse
an das eingehende Signal, wird ermöglicht, die Übertra gungsgeschwindigkeit
an die Datenmenge anzupassen, die übertragen werden muss, so dass
der Energieverbrauch des Befehlsprozessors 100 verringert
werden kann.
-
6 zeigt
ein Beispiel eines Ein-Bit-Prozessors, der als Befehlsprozessor 100 verwendet
werden kann. Der Befehlsprozessor 100 enthält eine
logische Einheit 42, ein Ein-Bit-Register 40,
einen Datenspeicher 44, einen Programmzähler 48 und einen
Datenwortspeicher 46. Die logische Einheit 42 ist
an den Eingang 14, das Ein-Bit-Register 40, den
Datenspeicher 44, den Programmzähler 48 und den Datenwortspeicher 46 angeschlossen.
Ohne von der Erfindung abzuweichen, kann mehr als ein Ein-Bit-Register 40 bereitgestellt
sein. Der Programmzähler 48 weist
einen Ausgang auf, der an den Adresseingang des Befehlsspeichers 102 angeschlossen
ist, welcher wiederum einen an die logische Einheit 42 angeschlossenen
Befehlseingang aufweist. Der Datenwortspeicher 46 ist an
den weiteren Prozessor 12 (nicht dargestellt) angeschlossen.
Der Datenspeicher 44 kann von jedem Typ sein. In einem
Beispiel kann ein Ringschieberegister als Datenspeicher verwendet werden,
das die Adressen der gespeicherten Bits jedes Mal um einen Schritt
verschiebt, wenn ein Datenelement gespeichert wird, oder in jedem
Taktzyklus. In diesem Fall kann es unnötig sein, den Datenspeicher 44 zu
adressieren; stattdessen können
Daten von einer festgelegten Adresse verwendet werden. Auf die entsprechenden
Daten kann mit Hilfe des entsprechenden Zyklus' zugegriffen werden, in dem sich das
erforderliche Datenelement an der festgelegten Adresse befindet.
-
In
Betrieb führt
der Befehlsprozessor 100 eine Reihe von Befehlen aus, die
Ein-Bit-Operanden
vom Register 40, vom Eingang 14 und/oder vom Datenspeicher 44 nutzen,
und gibt Bits an den Datenwortspeicher 46 (von dem Datenwörter an
den weiteren Prozessor 12 geliefert werden) aus. Der Inhalt
Programmzählers 48 adressiert
die auszuführenden
Befehle und wird normalerweise nach jedem Befehl inkrementiert,
um den nächsten
Befehl zu adressieren. Der Befehlsspeicher 102 liefert
die adressierten Befehle an die logische Einheit 42. Befehle,
die die logische Einheit 42 ausführen kann, umfassen Befehle
zu Ladung von Ein-Bit-Speicherdaten in das Register 40,
Speicherbefehlen an Ein-Bit-Speicherdaten,
logische Befehle wie UND-, ODER- und Exklusiv-Oder-Befehle mit Ein- Bit-Operanden von
verschiedenen Quellen sowie Sprungbefehle, die bedingt sein können, den
Inhalt des Programmzählers 48 um
eine im Sprungbefehl festgelegten Größe zu ändern.
-
Die
vom Befehlsspeicher 102 während des Betriebs in einer
Signalfolge 22 gelieferten Befehle umfassen einen Befehl,
ein Eingangsbit vom Eingang 14 zu lesen, und einen Befehl,
ein Bit an den Datenwortspeicher 46 auszugeben. Sobald
alle Eingangsbits für
ein Datenwort angekommen sind und an den Datenwortspeicher 46 ausgegeben
wurden, liefert der Datenwortspeicher 46 das Datenwort
an den weiteren Prozessor 12 (nicht dargestellt). Den Datenwörtern können errechnete
Paritätsbits
hinzugefügt
werden. Im Prinzip können
alle Bits des Datenworts vom Datenwortspeicher 46 parallel
zum weiteren Prozessor 12 geliefert werden, aber selbstverständlich kann
als Alternative serieller Transport genutzt werden.
-
Ein
Ein-Bit-Operanden-Prozessor hat den Vorteil, dass er die Flexibilität der Programmierung
bei relativ geringem Aufwand an Schaltungstechnik liefert. Dies
geschieht um den Preis einer geringen Verarbeitungsleistung und
macht es notwendig, eine relativ große Anzahl von Befehlen auszuführen, um
bestimmte Operationen auszuführen,
verglichen mit der Anzahl von Befehlen, die Multi-Bit-Prozessoren
benötigen.
Da jedoch die Verarbeitung über
Signalfolgen 22 verteilt ist, muss für jedes eingehende Bit jeweils
nur eine relativ kleine Anzahl von Befehlen in jeder Signalfolge 22 ausgeführt werden.
Damit ist es möglich,
die eingehenden Daten mit einem Ein-Bit-Operanden-Prozessor programmierbar
zu verarbeiten.
-
Natürlich ist
die Erfindung nicht auf den Gebrauch des programmierbaren Ein-Bit-Operanden-Prozessors
von 6 beschränkt.
Es können
auch andere Typen von programmierbaren Ein-Bit-Operanden-Prozessoren
verwendet werden, oder jeder beliebige programmierbare Multi-Bit-Operanden-Prozessor,
obwohl Letzterer die Komplexität
des Schaltkreises erhöhen
wird.