CMOS-IC
[ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ]

6. Schieberegister

Datenübertragung Schieberegister

Datenübertragung
In der Digitaltechnik gibt es grundsätzlich zwei verschiedene Arten der Datenübertragung: parallel und seriell. Bei einer parallelen Übertragung werden mehrere Bits gleichzeitig weitergeleitet, während bei einer seriellen die Bits nacheinander übertragen werden. Da man Materialkosten sparen will werden für größere Distanzen ausschließlich serielle Übertragungstechniken eingesetzt. Parallele Übertragung findet man z.B. bei Bussystemen im Computer (z.B. 32 Bit-/64 Bit-Datenbus).

Schieberegister
In der Digitaltechnik werden Schieberegister zur seriellen Übertragung von Daten eingesetzt. Schieberegister sind Schaltungen aus Flipflops. Jeder Ausgang eines Flipflops ist dabei mit dem Eingang des Nachfolgenden verbunden. Alle Takteingänge sind miteinander verbunden, so dass die Flipflops im gleichen Takt gesteuert werden. Jeder logische Zustand (’0’ oder ’1’), der an einem Eingang anliegt, wird bei einem Taktimpuls an den Ausgang und damit an den Eingang des nachfolgenden Flipflops übertragen. Es werden also Daten (Bits) "weitergeschoben". Das folgende Bild zeigt den Aufbau eines 4 Bit-Schieberegisters mit D-Flipflops.

Diese Schaltung kann z.B. mit zwei TTL-ICs der Nummer 7474 aufgebaut werden. Es fällt auf, dass die Flipflops zusätzlich zum Daten- und Takteingang auch noch einen S- und R-Eingang besitzen. Diese zwei Eingänge haben Vorrang vor dem Dateneingang: wird S auf ’0’ gelegt wird das zugehörige Flipflop gesetzt, d.h. Q geht auf ’1’, wenn R auf ’0’ gelegt wird, wird zurückgesetzt, d.h. Q geht auf ’0’. Wenn die Eingänge nicht gebraucht werden, legt man sie auf ’1’, verbindet sie also mit dem Pluspol der Betriebsspannung (hier also +5V).
Am Anfang werden alle Ausgänge zuerst zurückgesetzt. T, der Takteingang des Schieberegisters wird auf ’0’ gelegt, an den Eingang E wird z.B. eine Spannung angelegt, E liegt also auf ’1’. Wenn nun T (und damit der Clock-Eingang von jedem Flipflop) auf ’1’ gelegt wird, übernimmt jedes Flipflop an seinem Ausgang Q den Pegel an seinem Eingang D, d.h. A liegt dann also auf ’1’, B, C und D liegen auf ’0’. Wenn T wieder auf ’0’ gelegt wird verändert sich nichts, der Zustand an jedem Ausgang bleibt erhalten. Angenommen E wird nun auf ’0’ gelegt. Wenn T wieder auf ’1’ gelegt wird, wechselt der Pegel an B von ’0’ auf ’1’, da der Eingang D vom zweiten Flipflop ja auf ’1’ liegt. A wird aber von ’1’ auf ’0’ wechseln, da E vorher auf ’0’ gelegt wurde. C und D liegen weiterhin auf ’0’. Beim nächsten Taktimpuls (genauer: bei der nächsten positiven Flanke) wird A auf ’0’ liegen bleiben (da E ja immer noch auf ’0’ liegt), B wird von ’1’ auf ’0’ wechseln, da A und damit D des zweiten Flipflops auf ’0’ liegen. Der Pegel an C wird aber auf ’1’ wechseln, da der Pegel von D des dritten Flipflops, also die ’1’, vom Ausgang übernommen wird. D bleibt immernoch auf ’0’, da der Dateneingang des vierten Flipflops während dem Taktimpuls noch auf ’0’ liegt. Erst bei einem vierten Taktimpuls wechselt D auf ’1’, da er den Pegel von C übernimmt. A, B und C liegen auf ’0’. Beim nächsten Taktimpuls liegen dann alle Ausgänge auf ’0’. Wenn man den Ausgang Q des letzten Flipflops mit dem Eingang E verbindet, erhält man ein Umlaufregister. Die ’1’ an D geht dann beim nächsten Taktimpuls nicht verloren, so dass das Schieberegister leer ist, sondern wird wieder von A übernommen (die Schiebung beginnt von Neuem).
Man sieht also, dass die ’1’ am Eingang E von A nach D weitergeschoben wird. Da die Bits seriell übertragen, also von Flipflop zu Flipflop geschoben werden, aber parallel ausgelesen werden können (an A, B, C, D) spricht man hier von einem Seriell-Parallel-Umsetzer. Das Schieberegister erhält seine Daten von einem weiteren Register, das als Parallel-Seriell-Umsetzer dient, d.h. die Bits liegen gleichzeitig an den Eingängen an und werden nach dem Einlesen seriell weitertransportiert. Das nächste Bild zeigt den Aufbau eines solchen Umsetzers.

Das Schieberegister ist vom Prinzip genauso aufgebaut wie das obere, nur besitzt jedes Flipflop zusätzlich die Schaltung mit den drei NAND-Gattern. Die einzulesenden Daten liegen an E. Das Flipflop wird gesetzt, indem S auf ’0’ gelegt wird; genau das passiert wenn E auf ’1’ liegt und an T' eine positive Flanke auftritt. Der untere Eingang des rechten, oberen NANDs liegt dann auf ’1’ und sein anderer Eingang auch, folglich wird der Ausgang und damit S auf ’0’ gehen (Wahrheitstabelle NAND). Der Ausgang Q des Flipflops liegt dann auf ’1’. R wird auf ’1’ liegen, da der Ausgang des unteren, rechten NANDs durch einen ’1’- (oberer Eingang) und einen ’0’-Pegel (unterer Eingang) an seinen Eingängen auf ’1’ liegt. Q wird auf ’0’ gelegt, wenn E auf ’0’ liegt und an T' wieder eine positive Flanke auftritt. Der untere Eingang des rechten, oberen NANDs liegt dann auf ’0’, der obere auf ’1’, so dass der Ausgang und damit S auf ’1’ liegt. Der untere Eingang des rechten, unteren NANDs wird auf ’1’ liegen, da beide Eingänge des vorgeschalteten NANDs auf ’0’ liegen und der Ausgang folglich auch auf ’1’ liegen muss. Der obere Eingang des rechten, unteren NANDs liegt auf ’1’ deshalb wird sein Ausgang und damit R auf ’0’ gelegt. Das Flipflop wird also zurückgesetzt.
Man sieht also, dass der Pegel an E durch einen Taktimpuls an T' immer an den Ausgang des D-Flipflops übertragen wird. Den Takt an T' nennt man daher Setztakt. Wenn alle Bits an den Eingängen eines solchen Parallel-Seriell-Umsetzers eingelesen wurden, werden sie durch die Taktimpulse an T weitergeschoben. Sie werden solange weitergeschoben, bis dass Schieberegister, dass als Seriell-Parallel-Umsetzer dient, voll ist. Alle Flipflops der beiden Schieberegister müssen natürlich mit dem gleichen Takt gesteuert werden.