1. Trang chủ
  2. » Công Nghệ Thông Tin

PC Werkstatt Ausgabe 2000- P29 pdf

15 151 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 179,06 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Der Zählvorgang beginnt nach dem Laden des Zählerstands, getaktet durch CLK, und der Ausgang wird High, wenn der Zählerstand »Null« erreicht wird.. Der Zähler wird durch eine ansteigende

Trang 1

6.8.2 Die Betriebsarten des 8253/8254

Der Zähler 2 kann vom Anwender für sechs verschiedene Betriebsarten program-miert werden Ein typischer Wert für die Frequenz an den Clock-Eingängen ist 1,19 MHz, die von einem Taktgenerator auf dem Mainboard erzeugt wird

Der Gate-Eingang des Zählers 2 wird von Bit 1 des Ports B des PIO-Bausteins gesteu-ert, der im folgenden Kapitel näher beschrieben wird

Der Mode 0, Interrupt bei Zählernulldurchgang

Der Ausgang des Zählers (Output Interrupt) geht nach Empfang des Control Word auf Low Der Zählvorgang beginnt nach dem Laden des Zählerstands, getaktet durch CLK, und der Ausgang wird High, wenn der Zählerstand »Null« erreicht wird Im obigen Bild wurde ein Zählerwert von 4 eingegeben In diesem Zustand verharrt der Ausgang, bis ein neuer Zählerstand geladen wird

Bild 6.49: Der PIT-Mode 0

Der Zähler kann durch ein Low am GATE-Eingang unterbrochen werden Der Zähler-stand wird »festgehalten«, und durch ein High wird wieder weitergezählt Im un-teren Teil des Bildes ist dieses Verhalten zu erkennen

Der Mode 1, retriggerbares Monoflop

Der Ausgang (OUTPUT) ist zu Beginn High Der Zähler wird durch eine ansteigende Flanke am GATE-Eingang (Trigger) gestartet, und der Ausgang geht auf LOW Nach Erreichen des Zählerstandes »Null« stoppt der Zähler, und der Ausgang geht wieder auf High Das Verhalten entspricht dem einer monostabilen Kippstufe

Der Zählerstand kann nun neu gesetzt werden und wird wieder mit einer anstei-genden Flanke an GATE (Trigger) übernommen

Trang 2

Bild 6.50: Der PIT-Mode 1

Wenn ein Gate-Impuls angelegt wird, bevor der Zählerstand »Null« geworden ist, hat dies keinen Einfluss auf die laufende Funktion, denn der neue Wert wird erst nach Ablauf des Zählers und dem folgenden Triggerimpuls aktiviert Diese Verhal-tensweise ist dem Bild 3.16 zu entnehmen

Der Mode 2, Frequenzteiler

Der Ausgang wird für eine Periode des CLK-Signals Low Die Periode von einem Ausgangsimpuls bis zum nächsten entspricht dem Anfangszählerstand Wenn das Zählregister zwischen zwei Impulsen neu geladen wird, ist die Änderung erst in der nächsten Periode wirksam Der Zähler wird bei Nulldurchgang automatisch neu gesetzt und gestartet, der Vorgang setzt sich laufend fort

Bild 6.51: Der PIT-Mode 2

Der GATE-Eingang kann zur Synchronisation des Zählers verwendet werden Durch eine fallende Flanke an GATE (Reset) wird der Zählvorgang abgebrochen, und der Ausgang geht auf High Eine steigende Flanke an GATE startet einen neuen Zyklus

Trang 3

Der Mode 3, Generator mit symmetrischem Ausgangssignal

Der Mode 3 entspricht im Prinzip dem Mode 2 mit dem Unterschied, dass die Eingangs-frequenz in eine kleinere geteilt wird Der Anfangswert des Zählers wird durch zwei geteilt, wodurch ein nahezu gleiches Verhältnis von der High- zur Low-Signaldauer erreicht wird

Bild 6.52: Der PIT-Mode 3

Der Ausgang bleibt so lange auf High, bis der halbe Zähleranfangswert erreicht ist, und wird Low für die andere Hälfte der Zeit Bei ungeraden Anfangswerten liegt der Ausgang eine Taktperiode länger auf High- als auf Low-Pegel Ein neuer Zyklus wird automatisch gestartet

Der Mode 4, softwaregesteuerter Triggerimpuls

Nach dem Laden des Zählerstands startet der Zähler Der Ausgang ist zu Beginn High und wird dann für die Dauer einer Taktperiode Low, wenn der Zählerstand

»Null« erreicht ist Der Vorgang wiederholt sich nicht automatisch, sondern muss durch erneutes Laden des Zählerstandes eingeleitet werden

Ein neuer Wert für den Zählerstand kann während des Zählens geladen werden und wird beim nächsten CLK-Impuls aktiviert Durch ein Low am GATE-Eingang wird der Zähler angehalten, mit einem High am GATE-Eingang wird weitergezählt

Bild 6.53: Der PIT-Mode 4

Trang 4

Der Mode 5, hardwaregesteuerter Triggerimpuls

Der Mode 5 entspricht dem Mode 4, allerdings mit dem Unterschied, dass der Zähler mit der steigenden Flanke am GATE-Eingang gestartet wird Durch jede ansteigende Flanke am GATE startet der Zähler erneut (retriggerbar)

Bild 6.54: Der PIT-Mode 5

6.8.3 Programmierung der Zähler

Der erste Schritt ist das Einschreiben der Konfiguration in das Steuerregister (Control Word Register) Der Zähler wird mit SC1 und SC0 festgelegt (siehe Tabelle) Welches Byte geschrieben werden soll (MSB, LSB), wird mit RL1 und RL0 bestimmt Die Betriebsart wird mit M2-M0 und die Zählerart mit dem Bit BCD bestimmt Danach wird der gewünschte Zählerstand in das Zähler-Register-2 (Counter 2) geschrieben Wichtig ist, dass immer alle drei Zähler konfiguriert sein müssen, auch wenn nur ein Zähler benötigt wird, denn andernfalls zeigt der Baustein ein Fehlverhalten Wird ein 16-Bit-Zähler gewünscht, wird normalerweise im ersten Schritt das LSB

(Least Significant Bit) geschrieben, danach das MSB (Most Significant Bit) Dafür

wird zuvor in das Kontrollregister für RL1 und RL0 jeweils eine »1« geschrieben Nach zweimaligem Schreiben ist der Zählerstand dann geladen Die Übernahme in das Zählregister erfolgt aber erst, wenn ein positiver Impuls am Takteingang ange-legen hat

Für den Betrieb als Binärzähler ist der höchste Wert 10.000 und für den Dezimal-zähler 65.536 Der Wert wird bei jedem Taktimpuls um eins erniedrigt (dekrementiert) Die Reihenfolge der Programmierung – zuerst Kontrollregister, dann Zählerstand schreiben – ist nicht zwingend Es können auch zuerst dreimal das Kontrollregister (einmal für jeden Zähler) beschrieben und dann die drei Zählerstände angegeben werden

Eine Applikation mit dem Timer 8253/8254 wird im Teil 11 beschrieben, und dort befindet sich auch ein Listing, welches die Programmierung noch etwas verdeut-licht

Trang 5

6.8.4 Zählerstand und Status ermitteln

Das Lesen der Zählerstände kann auf verschiedene Arten erfolgen:

> In den Betriebsarten 0, 2, 3 und 4 durch ein Low am GATE-Eingang Dadurch

wird der Zählerstand »festgehalten«, und man kann ihn auslesen Im ersten Lesezugriff wird das LSB, im zweiten das MSB ausgelesen

> RL0 und RL1 werden im Kontrollregister auf Low gesetzt, dann wird der

Zählers-tand gespeichert und kann ausgelesen werden

> Ohne den Zähler zu beeinflussen, kann der Zählerstand durch eine

Zwischen-speicherung des aktuellen Wertes ausgelesen werden Nach dem Schreiben eines speziellen Befehls in das Steuerregister wird der Zählerstand zwischengespeichert und kann mit einem normalen Lesebefehl ausgelesen werden

Dieser spezielle Befehl zum Auslesen des Zählerstandes hat das folgende Format:

Latching Counter Command:

Mit SC1 und SC0 wird der Zähler angewählt, dessen Stand gespeichert werden soll D5 und D4 = 0 signalisieren dem Zähler, dass eine Zwischenspeicherung stattfinden soll

Der 8254-PIT verfügt über einen zusätzlichen Befehl (Read Back Command), mit dessen Hilfe der Mode und der Zählerstand eines jeden Zählers abgefragt werden können Hierfür wird das folgende Byte in das Kommandoregister geschrieben:

Read Back Command (nur 8254):

Mit den CNTx-Bits wird der gewünschte Zähler ausgewählt Es können gleichzeitig

alle drei Zählerwerte (CNT0-CNT2=1) gelatched werden Der Read-Back-Befehl ist

daher mit der Ausführung dreier Latching-Counter-Befehle identisch Die Werte werden so lange im jeweiligen Counter-Latch festgehalten, bis sie ausgelesen wor-den sind Für das Auslesen der Zählerstände müssen sich das Bit D5 (/Count) auf LOW und das Bit D4 (/Status) auf HIGH befinden

Für das Auslesen der programmierten Betriebsart (Status) und des Ausgangs (OUTx) wird hingegen das Bit D5 (/COUNT) auf HIGH und das Bit D4 (STATUS) auf LOW gesetzt Auch hier können mittels der CNTx-Bits mehrere Zähler ausgewählt wer-den Das jeweilige Statusbyte eines Zählers kann daraufhin durch einen Lesebefehl

an das entsprechende Counter-Register ermittelt werden Hierfür gilt ebenfalls, dass die zuvor angewählten Zähler ausgelesen werden müssen (!), damit die Latches wieder gelöscht werden Das Statusbyte hat das folgende Format:

Trang 6

Status-Byte der Zähler ( nur 8254):

Das Manko des 8253, dass nicht kontrolliert werden kann, ob der programmierte Mode auch wirklich vom PIT korrekt übernommen worden ist und in welchem Zu-stand sich die einzelnen Zählerausgänge befinden, ist durch die Lesemöglichkeit der Statusbytes ausgeräumt worden

Die Bits D0 bis D5 entsprechen der Belegung des Control Word Register Das Bit D6 (Null Count) signalisiert, ob der zuletzt geschriebene Zählerwert bereits in den Zähler gelangt ist Das Lesen eines Counters ist erst dann sinnvoll und liefert auch erst dann einen aktuellen Wert, wenn dieses Bit = LOW ist

Das Bit D7 (Output) enthält den Zustand des jeweiligen Zählerausgangs (OUTX-Pin) Ist es HIGH, befindet sich der entsprechende Zählerausgang auf High-Poten-tial

6.9 Der Portbaustein 8255

Der Baustein 8255 ist lediglich auf den Mainboards mit einem 8088 oder 8086 zu finden Er übernimmt das Einlesen von Schalterstellungen wie Speichergröße und Laufwerkstyp und die Kommunikation mit der Tastatur In Computern mit minde-stens einem 80286-Prozessor (AT) ist er nicht zu finden, denn hier übernimmt ein Mikrocontroller die Tastatursteuerung, und das CMOS-RAM enthält die Angaben für die Systemkonfiguration

Der 8255 ist dennoch ein sehr interessantes Bauelement, welches als Standard-element für die parallele Aus- und Eingabe von Daten dient Die Druckerschnittstelle (Centronics) ist mit dem 8255 oder einem hiermit kompatiblen Baustein aufge-baut Im Teil 11 wird dieser Chip in verschiedenen Applikationen eingesetzt

In der Version 8255A ist er bis zu einer Frequenz von 4 MHz zu verwenden Mit dem 8255-2-Baustein können dagegen Frequenzen bis zu 8 MHz verarbeitet werden Als CMOS-Version – in der stromsparenden Version – ist er ebenfalls erhältlich

Trang 7

Bild 6.55: Den Portbaustein 8255 gibt es von verschiedenen Herstellern (Intel, AMD, NEC, OKI)

und in unterschiedlichen Gehäusetypen

6.9.1 Anschlüsse und Betriebsarten

Der Port-Baustein 8255 – auch als PIO, Parallel Input Output-Chip, bezeichnet –

stellt insgesamt 24 TTL-Ein-/Ausgabeleitungen zur Verfügung Diese Leitungen sind

in drei Ports zu je 8 Bit aufgeteilt Die Ports heißen Port A, Port B und Port C und können verschieden konfiguriert werden, wie es noch genau erläutert wird

Trang 8

Bild 6.56: Der Portbaustein 8255, (PIO, Parallel Input Output) ist das Standardbauelement für

den Aufbau von parallelen Schnittstellen und wird für die unterschiedlichsten PC-Karten verwendet

Signal Bedeutung/Funktion

A0 und A1 Adressenleitungen, die in Verbindung mit den Lese- und

Schreib-signalen (/RD, /WR) die einzelnen Register selektieren

/CS Chip Select Ein Low aktiviert den Baustein Das Signal wird durch

eine Adressendekodierungsschaltung erzeugt

D0-D7 Datenleitungen zur Verbindung des Bausteins mit dem Adressbus GND Ground, der Masseanschluss

PA0-PA7 Signale des Port A

PB0-PB7 Signale des Port B

PC0-PC7 Signale des Port C

Reset Ein High löscht alle Ports und das Control Word Register

/RD Lesesignal Ein Low bedeutet, dass Daten vom 8255 zur CPU

gesen-det werden

VCC Versorgungsspannungsanschluss (5V)

/WR Schreibsignal Ein Low bedeutet, dass Daten von der CPU zum 8255

gesendet werden

Tabelle 6.21: Anschlussbeschreibung PIO 8255

Trang 9

Selektiert ist der 8255 bei einem Low am /CS-Eingang (Chip Select), und ein High-Impuls am Reset-Eingang löscht alle Ports sowie den Inhalt des Control Word Regi-ster Leider ist das Reset-Signal, welches sich auch am PC-Slot befindet, bei den Intel-typischen Prozessoren Low-aktiv Für den Port-Baustein muss das Signal da-her invertiert werden, was somit zusätzliche Logik – einen Inverter – erfordert Mit Hilfe der Adressleitungen A0 und A1 werden jeweils die vier einzelnen Register angewählt, die mit einem aktiven (Low) Signal an /WR (Write) beschrieben und mit einem Low an /RD (Read) über die Datenleitungen (D0-D7) gelesen werden Die erwähnte Aufteilung der Ports sowie die Einstellung einer von drei möglichen Betriebsarten (Mode 0–Mode 2) wird im Control Word Register vorgenommen, das nur beschrieben, jedoch (leider) nicht gelesen werden kann, was ein direktes Über-prüfen der korrekten Datenübernahme ausschließt

> MODE 0

Port A und Port B können jeweils als 8-Bit-Ein- oder -Ausgang programmiert werden Port C ist noch einmal in zwei Gruppen zu 4 Bit unterteilt, die

wieder-um als Eingang oder Ausgang programmiert werden können Die Ausgänge

sind gelatched (es erfolgt eine Zwischenspeicherung der Daten), die Eingänge

hingegen nicht

> MODE 1

Port A und Port B können als Ein- oder Ausgang programmiert werden Port C stellt jeweils drei Handshake-Signale und ein Interrupt-Signal für Port A und

Port B zur Verfügung Die Handshake-Leitungen werden üblicherweise für die

Kontrolle der Datenübernahme eingesetzt (von/zur Peripherie) Es kann bei-spielsweise festgestellt werden, ob die Daten von der angeschlossenen Peri-pherie übernommen worden sind, wodurch die Übertragungssicherheit gene-rell erhöht wird

> MODE 2

Port A wird als bidirektionaler Bus mit fünf Handshake-Signalen verwendet, welche Port C liefert Die drei anderen Leitungen des Port C können dann noch als universelle I/O-Leitungen verwendet werden oder als »Handshake-Leitun-gen« für Port B, wenn er im Mode 1 verwendet wird Der Port B kann als I/O-Port für Mode 1 oder Mode 2 verwendet werden

Zu jedem Port gehört außerdem ein eigenes Register, welches die zu sendenden oder die empfangenen Daten enthält Demnach sind insgesamt vier Adressen für den Baustein von der Hardwareseite her zu dekodieren, was typischerweise wie folgt aussieht:

Beispiel für die PIO-Anwendung auf einer PC-Karte:

300H: Port A

301H: Port B

302H: Port C

303h: Control Word Register

Trang 10

Die Tabelle 6.22 zeigt das Verhalten des 8255 in Abhängigkeit von den Adress- und Steuersignalen

/CS A1 A0 /RD /WR Funktion

Tabelle 6.22: Die Funktionen des 8255 im Überblick

6.9.2 Festlegung der Betriebsart

Der Inhalt des Control Word Register bestimmt neben der gewünschten Betriebsart

die Übertragungsrichtung der Daten für die einzelnen Ports Das Bit 7 (Mode Set

Flag = MSF) aktiviert mit einer 1 die jeweils angegebene Konfiguration.

Trang 11

Nachdem das Bit 7 (Mode Set Flag) auf 0 gesetzt worden ist, können einzelne Bits

und somit Signalleitungen des Ports C gesetzt oder zurückgesetzt werden Die An-wahl erfolgt mit den Bits D1, D2 und D3 Durch D0 wird dabei bestimmt, ob das angewählte Bit gesetzt oder gelöscht werden soll

6.9.3 Der Mode 0

Der Mode 0 ist die Betriebsart für einfache I/O-Aufgaben In der folgenden Tabelle sind alle möglichen Kombinationen im Mode 0 für die Bits angegeben, die die Übertragungsrichtung bestimmen

Die Bits D2, D5 und D6 bleiben hier unberücksichtigt, da sie die jeweilige

Betriebs-art festlegen (vergl Belegung des Control Word Register).

D4 D3 D1 D0 PORT A PORT C (oben) PORT B PORT C (unten)

Trang 12

Fortsetzung der Tabelle:

D4 D3 D1 D0 PORT A PORT C (oben) PORT B PORT C (unten)

Tabelle 6.23: Konfigurationsmöglichkeiten für den 8255-Baustein im Mode 0

6.9.4 Der Mode 1

In dieser Betriebsart wird der Port C für das Handshaking eingesetzt, und die Ports

A und B arbeiten als I/O-Ports Die Eingänge und auch die Ausgänge sind jeweils

gelatched Durch das Control Word Register wird wie üblich festgelegt, ob die Ports

dabei jeweils als Ein- oder als Ausgang arbeiten sollen Es sind damit im Mode 1 vier verschiedene Portkonfigurationen möglich Mit jeweils einem gesonderten Bild wird

im Folgenden verdeutlicht, welche Bedeutung dann die Leitungen des Port C ha-ben Wie im Mode 0 aktiviert das Bit 7 (Mode Set Flag) mit einer 1 die eingegebene Konfiguration Mit einer 0 sind einzelne Bits des Ports C (jeweils mit C in der Registerbeschreibung angegeben) zu setzen oder zu löschen

Mode 1: Port A empfängt Daten mit Handshaking

Wenn der Port A als Eingangs-Port arbeiten soll – Daten von ihm gelesen werden sollen –, wird das folgende Datenbyte in das Control Word Register geschrieben

Control Word Register:

High: PC6, PC7 = Eingänge Low: PC6, PC7 = Ausgänge Die folgenden Leitungen des Port C arbeiten für den Port A als

Handshaking-Signa-le bei Datenempfang:

PC 3, INTRA

Interrupt-Ausgang; mit diesem Ausgang kann von der CPU eine

Interrupt-Verarbei-tung angefordert (Interrupt Request) werden Der Interrupt wird durch PC4 enabled

(INTEA)

PC 4, /STBA

Strobe-Eingangsleitung; mit einer ansteigenden Flanke werden die Daten in den Zwischenspeicher übernommen Ob der Speicher voll ist, kann mit dem Signal IBFA festgestellt werden

Ngày đăng: 03/07/2014, 14:20

TỪ KHÓA LIÊN QUAN