Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultšt Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Betriebssysteme
 
  Vorlesung
    - UnivIS-Infos
    - Inhalt
    - Folien
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Ergänzendes Material
    - Terminübersicht
    - Aufgaben
       * Umgebung
       * Typische Fehler
       * A 1
       * A 2
       * A 3
       * A 4
       * A 5
       * A 6
       * A 7
 
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2007/08  >  Betriebssysteme  >  Übungen  >  Aufgaben  >  Aufgabe 5  >  Informationen zum Programmable Interrupt Timer (PIT)

Einsatz von Timer-Bausteinen in PCs

PCs besitzen einen oder zwei Timer-Bausteine vom Typ 8253 oder 8254. Jeder dieser Bausteine besitzt drei 16 Bit breite Zähler, die mit einem Takt von 1,19318 MHz betrieben werden. Die Zählgeschwindigkeit ist also unabhängig vom Prozessortakt! Und so werden die Zähler genutzt:

PITZählerNutzung
10Periodische Unterbrechungen
11Speicher-Refresh
12Tonerzeugung
20Fail-Safe-Timer (NMI)
21Ungenutzt
22Ungenutzt

Jeder Zähler besitzt einen eigenen Ausgang (OUTx). Je nach Anschluss dieses Ausgangs an verschiedene Stellen auf dem PC Motherboard ergeben sich die verschiedenen Spezialbedeutungen der Zähler (alles hart verdrahtet!). So führt OUT0 an INT0 des PIC, OUT1 an den Kanal 0-Eingang des DMA Controllers 8237, OUT2 über ein programmierbares Gate an den Verstärker und OUT0 des zweiten PIT an den NMI Eingang des Prozessor (über das NMI-Mask-Bit).

Programmierung der Timer

Jeder PIT kann mit Hilfe von vier Ports angesprochen werden:

Port (1.PIT)Port (2.PIT)RegisterZugriffsarten
0x400x48Zähler 0schreiben/lesen
0x410x49Zähler 1schreiben/lesen
0x420x4aZähler 2schreiben/lesen
0x430x4bSteuerregisternur schreiben

Alle Ports sind nur 8 Bits breit. Um 16 Bit Zählerwerte in den PIT zu bekommen wird eine besondere Technik benutzt. Zunächst muss dem PIT über ein Steuerwort mitgeteilt werden, was man überhaupt von ihm will. Das Steuerwort hat den folgenden Aufbau:

Bit(s)WertBedeutung
6-7Zählerauswahl
00 Zähler 0
01 Zähler 1
10 Zähler 2
11 ungültig beim 8253, Read-Back-Befehl beim 8254
4-5Lesen/Schreiben
00 Zähler-Latch-Befehl
01 nur niederwertiges Zählerbyte
10 nur höherwertiges Zählerbyte
11 niederwertiges, anschließend höherwertiges Zählerbyte
1-3Modus 0 bis Modus 5
0 Zählformat
0 binäre Zählung von 16 Bit
1 Zählung mit vierstelligen BCD Zahlen

Der Zähler-Latch-Befehl und der Read-Back-Befehl sind nur für das Auslesen von Zählerwerten von Interesse. Daher wird hier nicht weiter darauf eingegangen.

Der Modus bestimmt, wie der Zähler arbeitet und ob er mit Hilfe der OUTx Leitung externe Ereignisse auslöst. So zählt der Zähler im Modus 0 vom angegebenen Startwert bis 0 herunter (838 ns) pro Schritt und setzt am Ende die OUTx Leitung auf 1. Um periodische Impulse zu erzeugen, eignet sich am besten Modus 2. Dabei wird bei Erreichen des Wertes 0 ein kurzer Impuls auf OUTx ausgegeben und der Zähler wird automatisch wieder mit dem Startwert initialisiert, worauf der Vorgang wieder von vorn losgeht.

Zur Einstellung eines 16 Bit Zählerwertes sind damit drei out-Befehle notwendig. Der erste zum Übergeben des Steuerwortes und zwei weitere mit dem nieder- und dem höherwertigen Byte des Zählerwertes.

  Impressum Stand: 2007-11-26 17:40   AG, WH