-
Die Erfindung betrifft eine Schaltung zum Erzeugen eines Abtastsignals für eine UART-Schnittstelle und eine UART-Schnittstelle mit einer solchen Schaltung.
-
DE 10 2012 112 672 A1 offenbart ein Verfahren zur Stabilisierung einer Taktfrequenz eines Mikrocontrollers.
-
DE 20 2011 052 538 U1 offenbart ein Gerät mit einer RC-Oszillatorschaltung, einen Abweichungskompensations-Schaltungsaufbau und einen Prozessor.
-
US 2008/0136538 A1 offenbart einen integrierten Schaltkreis, der ein Taktsignal zu erzeugt.
-
Zur Datenübertragung zwischen unterschiedlichen Kommunikationsteilnehmem werden häufig so genannte Universal Asynchronous Receiver Transmitter (UART)-Schnittstelien verwendet. In einem UART-Empfänger ist typisch eine Datenabtasteinheit vorgesehen, die dazu ausgebildet ist, in Abhängigkeit von einem Abtastsignal eine Datenübertragungsleitung abzutasten. Entsprechend kann das Abtastsignal auch zum Senden von Daten verwendet werden. Um die Daten möglichst fehlerfrei zwischen einem Sender und einem Empfänger übertragen zu können, ist es notwendig, dass eine Frequenz des Abtastsignals sowohl im Sender als auch im Empfänger möglichst genau übereinstimmend einstellbar ist, wobei die Frequenz des Abtastsignals mit einer Bitrate der UART-Schnittstelle korrespondiert. Zur Erzeugung des Abtastsignals wird häufig ein Peripherietakt, beispielsweise einer Prozessortakt, geeignet geteilt. Bei einem gegebenen Peripherietakt lassen sich jedoch durch einfaches Teilen des Peripherietakts nicht beliebige Frequenzen des Abtastsignals, d.h. Bitraten, erzeugen.
-
Der Erfindung liegt die Aufgabe zugrunde, eine Schaltung zum Erzeugen eines Abtastsignals für eine UART-Schnittstelle und eine UART-Schnittstelle zur Verfügung zu stellen, die eine möglichst genaue Einstellung einer Frequenz des Abtastsignals bei gegebenem Peripherietakt ermöglichen.
-
Die Erfindung löst diese Aufgabe durch eine Schattung zum Erzeugen eines Abtastsignals für eine bzw. als Teil einer UART-Schnittstelle nach Anspruch 1 und eine UART-Schnittstelle nach Anspruch 7.
-
Die erfindungsgemäße Schaltung ist zum Erzeugen eines Abtastsignals für eine bzw. als Teil einer UART-Schnittstelle ausgebildet, wobei eine Frequenz des Abtastsignals einstellbar ist und aus einem Peripherietakt abgeleitet wird.
-
Die Schaltung weist einen Eingangsanschluss auf, an den bestimmungsgemäß ein Peripherietakt, beispielsweise ein im System vorhandener Prozessortakt, anzulegen ist.
-
Die Schaltung weist weiter einen Ausgabeanschluss auf, an dem das Abtastsignal ausgegeben wird.
-
Die Schaltung weist weiter einen Bitratenspeicher auf, der dazu ausgebildet ist, einen Wert zu speichern, der mit einer gewünschten Bitrate der UART-Schnittstelle korrespondiert. Die gewünschte Bitrate oder eine ganzzahlige Vielfache der Bitrate kann beispielsweise binär in dem Bitratenspeicher gespeichert sein. Bei einer Änderung der Bitrate, beispielsweise ausgelöst durch einen Einstellvorgang, wird der in dem Bitratenspeicher gespeicherte Wert entsprechend der eingestellten Bitrate verändert.
-
Die Schaltung weist weiter einen Peripherietaktspeicher auf, der dazu ausgebildet ist, einen, beispielsweise binären, Wert zu speichern, der mit einer Frequenz des Peripherietakts korrespondiert bzw. diesen abbildet.
-
Die Schaltung weist weiter einen Summenspeicher auf, der dazu ausgebildet ist, einen veränderlichen Summenwert zu speichern, beispielsweise binär zu speichern.
-
Die Schaltung weist weiter eine Recheneinheit oder Steuereinheit auf.
-
Die Recheneinheit ist dazu ausgebildet, einen Vergleichswert, der von dem im Summenspeicher gespeicherten Summenwert (und gegebenenfalls von weiteren Größen) abhängig ist, mit einem Schwellenwert zu vergleichen, der von dem im Peripherietaktspeicher gespeicherten Wert (und gegebenenfalls von weiteren Größen) abhängig ist. Die Recheneinheit ist dazu ausgebildet, in Abhängigkeit vom Ergebnis des Vergleichens das Abtastsignal mit einem ersten Pegel oder einem zweiten Pegel zu erzeugen. Der erste Pegel kann beispielsweise einer logischen Null entsprechen und der zweite logische Pegel kann beispielsweise einer logischen Eins entsprechen. Die Recheneinheit ist weiter dazu ausgebildet, im Takt des Peripherietakts und in Abhängigkeit vom Ergebnis des Vergleichens entweder den im Summenspeicher gespeicherten Summenwert um den im Bitratenspeicher gespeicherten Wert zu verändern (zu vergrößern oder zu verkleinern), oder den im Summenspeicher gespeicherten Summenwert um einen Wert zu verändern bzw. auf einen Wert zu setzen, der von dem im Peripherietaktspeicher gespeicherten Wert abhängig ist.
-
In einer Ausführungsform ist die Recheneinheit dazu ausgebildet, im Takt des Peripherietakts zu überprüfen, ob der Vergleichswert größer/gleich oder kleiner als der Schwellenwert ist. Wenn der Vergleichswert kleiner als der Schwellenwert ist, erhöht die Recheneinheit den im Summenspeicher gespeicherten Summenwert um den im Bitratenspeicher gespeicherten Wert. Wenn der Vergleichswert größer als oder gleich wie der Schwellenwert ist, setzt die Recheneinheit den im Summenspeicher gespeicherten Summenwert auf einen Wert, der einer Differenz zwischen dem Vergleichswert und dem Schwellenwert entspricht.
-
In einer Ausführungsform ist der Bitratenspeicher dazu ausgebildet, einen Wert zu speichern, der einem ganzzahligen Vielfachen der gewünschten Bitrate der UART-Schnittstelle entspricht, beispielsweise dem 16-fachen der gewünschten Bitrate. Wenn die gewünschte Bitrate beispielsweise 4 MBit/Sekunde beträgt, kann der in dem Bitratenspeicher gespeicherte Wert beispielsweise 4 * 16 = 64 betragen.
-
In einer Ausführungsform ist der Peripherietaktspeicher dazu ausgebildet, einen Wert zu speichern, der der Frequenz des Peripherietakts entspricht. Wenn der Peripherietakt beispielsweise 100 MHz beträgt, kann der in dem Peripherietaktspeicher gespeicherte Wert beispielsweise 100 betragen.
-
In einer Ausführungsform ist der Vergleichswert gleich einer Summe aus dem im Summenspeicher gespeicherten Summenwert und dem im Bitratenspeicher gespeicherten Wert.
-
In einer Ausführungsform weist die Schaltung einen Summierer auf, der dazu ausgebildet ist, den im Summenspeicher gespeicherten Summenwert und den im Bitratenspeicher gespeicherten Wert zu summieren, und die Summe an seinem Ausgabeanschluss als den Vergleichswert auszugeben. Die Schaltung weist weiter einen Subtrahierer auf, der dazu ausgebildet ist, eine Differenz zwischen dem im Peripherietaktspeicher gespeicherten Wert und der von dem Summierer ausgegebenen Summe zu bilden und die Differenz an seinem Ausgabeanschluss auszugeben. Die Schaltung weist weiter einen Vergleicher auf, der dazu ausgebildet ist, den im Peripherietaktspeicher gespeicherten Wert mit dem Vergleichswert zu vergleichen und in Abhängigkeit vom Ergebnis des Vergleichens an seinem Ausgabeanschluss, der mit dem Ausgabeanschluss der Schaltung verbunden ist, das Abtastsignal mit dem ersten oder dem zweiten Pegel zu erzeugen. Die Schaltung weist weiter einen Multiplexer auf, der an seinem Steuereingang mit dem Ausgabeanschluss des Vergleichers verbunden ist, der an seinem ersten Eingang mit dem Ausgabeanschluss des Subtrahierers verbunden ist, der an seinem zweiten Eingang mit dem Ausgabeanschluss des Summierers verbunden ist und der in Abhängigkeit von dem Zustand des Abtastsignals entweder das an seinem ersten Eingang oder das an seinem zweiten Eingang anstehende Signal an seinem Ausgabeanschluss ausgibt. Der Summenspeicher ist als taktgesteuertes, insbesondere flankengesteuertes, Register ausgebildet, beispielsweise als taktgesteuertes Flipflop, wobei ein Takteingang des Registers mit dem Peripherietakt beaufschlagt ist und ein Eingangsanschluss des Registers mit dem Ausgabeanschluss des Multiplexers verbunden ist.
-
Die Erfindung betrifft weiter eine UART-Schnittstelle. Die UART-Schnittstelle weist mindestens einen Datenübertragungsanschluss auf, der beispielsweise zum Anschluss an eine Datenübertragungsleitung vorgesehen ist. Die UART-Schnittstelle weist weiter eine Datenabtasteinheit mit einem Abtaststeueranschluss auf, wobei die Datenabtasteinheit dazu ausgebildet ist, in Abhängigkeit von einem an dem Abtaststeueranschluss anstehenden Abtastsignal ein an dem Datenübertragungsanschluss anstehendes Signal abzutasten. Die UART-Schnittstelle weist weiter eine oben beschriebene Schaltung auf, deren Ausgabeanschluss mit dem Abtaststeueranschluss der Datenabtasteinheit verbunden ist.
-
Die Erfindung wird nachfolgend detailliert unter Bezugnahme auf die Zeichnungen beschrieben. Hierbei zeigen:
- 1 eine Schaltung zum Erzeugen eines Abtastsignals für eine UART-Schnittstelle und
- 2 eine UART-Schnittstelle mit der in 1 gezeigten Schaltung.
-
1 zeigt eine Schaltung 1 zum Erzeugen eines Abtastsignals AS für eine bzw. als Teil einer UART-Schnittstelle 20 (siehe 2)
-
Die Schaltung 1 wiest einen Eingangsanschluss 2 auf, der dazu ausgebildet ist, einen Peripherietakt PT zu empfangen. Der Peripherietakt PT kann beispielsweise ein in der Peripherie der UART-Schnittstelle 20 verwendeter Takt bzw. verwendetes Taktsignal sein, beispielsweise ein Taktsignal, das zur Taktversorgung eines nicht dargestellten Mikroprozessors dient.
-
Die Schaltung 1 weist weiter einen Ausgabeanschluss 3 auf, der dazu ausgebildet ist, das Abtastsignal AS auszugeben.
-
Die Schaltung 1 weist weiter einen Bitratenspeicher 4 auf, der dazu ausgebildet ist, einen Wert zu speichern, der mit einer gewünschten Bitrate der UART-Schnittstelle 20 korrespondiert.
-
Die Schaltung 1 weist weiter einen Peripherietaktspeicher 5 auf, der dazu ausgebildet ist, einen Wert zu speichern, der mit einer Frequenz des Peripherietakts PT korrespondiert.
-
Die Schaltung 1 weist weiter einen Summenspeicher 6 auf, der dazu ausgebildet ist, einen Summenwert zu speichern.
-
Die Schaltung 1 weist weiter eine Recheneinheit 7 auf, die dazu ausgebildet ist, basierend auf den in den Speichern 4 und 5 gespeicherten Werten das Abtastsignal AS mit einer gewünschten Frequenz zu erzeugen, wobei die Frequenz einer gewünschten Bitrate entspricht.
-
Die Recheneinheit 7 weist einen Summierer 8 auf, der dazu ausgebildet ist, den im Summenspeicher 6 gespeicherten Summenwert und den im Bitratenspeicher 4 gespeicherten Wert zu summieren, um die Summe an einem Ausgabeanschluss als ein Vergleichswert VW auszugeben.
-
Die Recheneinheit 7 weist weiter einen Subtrahierer 9 auf, der dazu ausgebildet ist, eine Differenz zwischen dem im Peripherietaktspeicher 5 gespeicherten Wert und der von dem Summierer 8 ausgegebenen Summe zu bilden und die Differenz an seinem Ausgabeanschluss auszugeben
-
Die Recheneinheit 7 weist weiter einen Vergleicher 10 auf, der dazu ausgebildet ist, den im Peripherietaktspeicher 5 gespeicherten Wert mit dem Vergleichswert VW zu vergleichen und in Abhängigkeit vom Ergebnis des Vergleichens an seinem Ausgabeanschluss, der mit dem Ausgabeanschluss 3 der Schaltung 1 verbunden ist, das Abtastsignal AS mit einem ersten oder zweiten Pegel zu erzeugen.
-
Die Recheneinheit 7 weist weiter einen Multiplexer 11 auf, der an einem Steuereingang mit dem Ausgabeanschluss des Vergleichers 10 verbunden ist, der an seinem ersten Eingang mit dem Ausgabeanschluss des Subtrahierers 9 verbunden ist, der an seinem zweiten Eingang mit dem Ausgabeanschluss des Summierers 8 verbunden ist und der in Abhängigkeit von einem Zustand eines an seinem Steuereingang anstehenden Signals entweder das an seinem ersten Eingang oder das an seinem zweiten Eingang anstehende Signal an seinem Ausgabeanschluss ausgibt.
-
Der Summenspeicher 6 ist als flankengesteuertes Register ausgebildet, wobei ein Takteingang des Registers mit dem Peripherietakt PT beaufschlagt ist und ein Eingangsanschluss des Registers mit dem Ausgabeanschluss des Multiplexers 11 verbunden ist.
-
Die Funktion der in 1 gezeigten Schaltung 1 wird nachfolgend anhand eines Beispiels erläutert. Hierbei sei angenommen, dass der Peripherietakt eine Frequenz von 100 MHz aufweist und die Bitrate auf 4 MHz eingestellt ist.
-
Im Peripherietaktspeicher 5 ist für diesen Fall der Wert 100 gespeichert und im Bitratenspeicher 4 ist der Wert 4 * 16 = 64 gespeichert. Die Abtastung erfolgt vorliegend also 16-fach überabgetastet.
-
Zu Beginn enthält der Summenspeicher den Wert 0. Der Vergleichswert VW beträgt 64. Da der Vergleichswert VW von 64 kleiner als der im Peripherietaktspeicher 5 gespeicherte Wert von 100 ist, gibt der Multiplexer 11 den am Ausgang des Summierers 8 anstehenden Wert von 64 an seinem Ausgang aus.
-
Bei der steigenden Flanke des ersten Taktimpulses wird der vom Multiplexer 11 ausgegebene Wert von 64 in den Summenspeicher 6 übernommen. Der Summenspeicher 6 gibt anschließend den gespeicherten Wert von 64 an seinem Ausgang aus, so dass sich als Vergleichswert VW der Wert 128 einstellt. Am Ausgang des Subtrahierers stellt sich der Wert 28 ein. Da der Vergleichswert VW nun größer als der im Peripherietaktspeicher 5 gespeicherte Wert von 100 ist, gibt der Multiplexer 11 den am Ausgang des Subtrahierers 8 anstehenden Wert von 28 an seinem Ausgang aus. Der Pegel am Ausgabeanschluss 3 der Schaltung 1 und damit auch der Pegel des Abtastsignals AS wechselt seinen Zustand.
-
Bei der steigenden Flanke des zweiten Taktimpulses des Peripherietakts PT wird der Wert 28 in den Summenspeicher 6 übernommen. Der Summenspeicher 6 gibt anschließend den gespeicherten Wert von 28 an seinem Ausgang aus, so dass sich als Vergleichswert VW der Wert 92 einstellt. Da der Vergleichswert VW nun wieder kleiner als der im Peripherietaktspeicher 5 gespeicherte Wert von 100 ist, gibt der Multiplexer 11 den am Ausgang des Addierers 8 anstehenden Wert von 92 an seinem Ausgang aus. Der Pegel am Ausgabeanschluss 3 der Schaltung 1 und damit auch der Pegel des Abtastsignals AS wechselt seinen Zustand.
-
Bei der steigenden Flanke des dritten Taktimpulses des Peripherietakts PT wird der Wert 92 in den Summenspeicher 6 übernommen. Der Summenspeicher 6 gibt anschließend den gespeicherten Wert von 92 an seinem Ausgang aus, so dass sich als Vergleichswert VW der Wert 156 einstellt. Am Ausgang des Subtrahierers stellt sich der Wert 56 ein. Da der Vergleichswert VW größer als der im Peripherietaktspeicher 5 gespeicherte Wert von 100 ist, gibt der Multiplexer 11 den am Ausgang des Subtrahierers 9 anstehenden Wert von 56 an seinem Ausgang aus. Der Pegel am Ausgabeanschluss 3 der Schaltung 1 wechselt seinen Zustand.
-
Bei der steigenden Flanke des vierten Taktimpulses des Peripherietakts PT wird der Wert 56 in den Summenspeicher 6 übernommen, usw.
-
Im Summenspeicher 6 ergibt sich im Takt des Peripherietakts PT folgende Zahlenfolge: 0, 64, 28, 92, 56, 20, 84, 48, 12, 76, ...
-
Entsprechend wird das Abtastsignal AS mit folgenden Zuständen erzeugt: 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, ...
-
2 zeigt eine UART-Schnittstelle 20 mit der in 1 gezeigten Schaltung 1.
-
Die UART-Schnittstelle 20 weist einen herkömmlichen Datenübertragungsanschluss 21 auf. Die UART-Schnittstelle 20 weist weiter eine herkömmliche Datenabtasteinheit 22 mit einem Abtaststeueranschluss 23 auf, wobei die Datenabtasteinheit 22 dazu ausgebildet ist, in Abhängigkeit von einem an dem Abtaststeueranschluss 23 anstehenden Abtastsignal AS ein an dem Datenübertragungsanschluss 21 anstehendes Signal abzutasten. Die in 1 gezeigte Schaltung 1 ist mit ihrem Ausgabeanschluss 3 mit dem Abtaststeueranschluss 23 der Datenabtasteinheit 22 verbunden.
-
Erfindungsgemäß wird in die Speicher bzw. Register 4 und 5 im „Klartext“ die gewünschte Bitrate bzw. die Frequenz des Peripherietakts geschrieben. Der Summenspeicher 6, der als Akkumulator dient, summiert den im Speicher 4 gespeicherten Wert im Peripherietakt. Immer dann, wenn der Wert im Akkumulator 6 den im Speicher 5 gespeicherten Wert überschreitet oder gleich wie der im Speicher 5 gespeicherte Wert ist, wird die Frequenz des Peripherietakts vom Akkumulatorinhalt abgezogen. Die Überläufe werden als überabtastender Bitratentakt verwendet. Der maximale Fehler beträgt bei der Schaltung 1 auch noch nach 8 Datenbits 1/Peripherietakt, bei 100 MHz beispielsweise 10 ns. Der maximale Fehler beträgt bei beliebigen Bitraten bis hin zu der maximalen Grenze von Peripherietakt/16 unter 6,25% pro Bit, dieser Fehler summiert sich jedoch bei aufeinanderfolgenden Bits nicht auf. Somit sind beliebige Bitraten direkt ohne Umrechnung und ohne zu berücksichtigende Fehler realisierbar.