Die
Erfindung betrifft Ein- und Ausgabeeinrichtungen, die an ein standardisiertes
Laufwerksinterface angeschlossen werden. Die zugrunde liegenden
Interfacestandards: ATA/ATAPI und High Speed Serial ATA Attachment
(SATA). Die Erfindung wird in Rechnersystemen zur Steuerung von
Prozessen und technischen Einrichtungen (Embedded Systems) eingesetzt,
um Rechner, vorzugsweise Personalcomputer (PCs), mit den zu steuernden
Einrichtungen zu verbinden.The
The invention relates to input and output devices that conform to a standardized
Drive interface can be connected. The underlying
Interface standards: ATA / ATAPI and High Speed Serial ATA Attachment
(SATA). The invention is used in computer systems for controlling
Processes and technical equipment (embedded systems) are used,
to computers, preferably personal computers (PCs), with the controlled
Connect facilities.
Es
ist seit einiger Zeit üblich,
Hard- und Software aus dem Bereich der Personalcomputer (PCs) zur
Steuerung an sich beliebiger Einrichtungen einzusetzen. Dabei besteht
stets das Problem, die zu steuernden Einrichtungen mit dem Computer
zu verbinden. Die herkömmlichen
Lösungen
beruhen darauf, entsprechende Adapter zu entwickeln, die an einen
Erweiterungsbus des Computers angeschlossen werden. Des weiteren
hat man die üblichen E-A-Schnittstellen
(RS-232, IEEE 1284, USB usw.) hierzu ausgenutzt. Die wesentlichen
Anforderungen an derartige Löungen
betreffen niedrige Hardwarekosten, annehmbare Entwicklungsaufwendungen und
geringe Latenz- und Reaktionszeiten (vom Auftreten einer Anforderung
bis zur programmseitigen Behandlung bzw. von der programmseitigen
Auslösung
bis zum Wirksamwerden in der Hardware). Durch Nutzung eines Erweiterungsbus
(ISA, PCI und Nachfolger) kann man extreme zeitliche Anforderungen
erfüllen,
die Entwicklungsaufwendungen sind aber hoch (Schaltkreisentwurf),
und die Hardware wird vergleichsweise kostspielig. (Bedeutsame Kostenanteile
ergeben sich u. a. durch die Notwendigkeit, Mehrebenen-Leiterplatten
und extrem miniaturisierte hochintegrierte Schaltkreise einzusetzen.
Gelegentlich kommen die von den Standardisierungsgremien geforderten
Lizenzgebühren
hinzu). Bei Rückgriff
auf die üblichen
E-A-Schnittstellen wird die Hardware kostengünstig, es ergeben sich aber
zumeist extreme Latenz- und Reaktionszeiten (Millisekunden gegenüber Mikrosekunden).
Moderne Schnittstellen (z. B. USB) erfordern zudem einen hohen Aufwand
für die
Entwicklung der zugehörigen Software.It
has been common for some time
Hardware and software from the field of personal computers (PCs) to
Control to use any facilities. It exists
always the problem, the devices to be controlled with the computer
connect to. The conventional ones
solutions
are based on developing appropriate adapters to a
Extension bus of the computer to be connected. Furthermore
you have the usual E-A interfaces
(RS-232, IEEE 1284, USB, etc.). The essential
Requirements for such solutions
Both low hardware costs, decent development costs and concerns
low latency and reaction times (from the occurrence of a request
to the program-side treatment or the program-side
release
until becoming effective in the hardware). By using an expansion bus
(ISA, PCI and successor) you can have extreme time requirements
fulfill,
but the development costs are high (circuit design),
and the hardware becomes comparatively expensive. (Significant cost shares
arise u. a. by the need for multi-level circuit boards
and to use extremely miniaturized, highly integrated circuits.
Occasionally, those required by standardization bodies
royalties
added). With recourse
to the usual
E-A interfaces, the hardware is inexpensive, but it arise
mostly extreme latency and reaction times (milliseconds to microseconds).
Modern interfaces (eg USB) also require a lot of effort
for the
Development of the associated software.
Das
Ziel der Erfindung besteht darin, vorhandene Schnittstellen nutzbar
zu machen, die sich mit vergleichsweise geringen Aufwendungen (in
Hard- und Software) adaptieren lassen und die es ermöglichen,
geringe Latenz- und Reaktionszeiten (Mikrosekundenbereich) zu gewährleisten.The
The aim of the invention is to use existing interfaces
to deal with comparatively low expenses (in
Hardware and software) and make it possible to
to ensure low latency and reaction times (microseconds).
Die
Aufgabe der Erfindung besteht darin, Schaltungsanordnungen (Interfaceadapter)
anzugeben, über
die beliebige zu steuernde Einrichtungen mit den im PC-Bereich üblichen
Laufwerksinterfaces ATA/TAPI und Serial ATA verbunden werden können.The
The object of the invention is to provide circuit arrangements (interface adapter)
indicate over
The arbitrary devices to be controlled with the usual in the PC field
Drive interfaces ATA / TAPI and Serial ATA can be connected.
Die
Mängel
der bekannten Lösungen
haben ihre Ursache darin, daß die
zu steuernden Einrichtungen über
Schnittstellen angeschlossen werden, deren Adaptierung und programmseitige
Unterstützung einen
vergleichsweise hohen Aufwand erfordert bzw. die sehr lange Latenz-
und Reaktionszeiten aufweisen.The
defects
the known solutions
their cause is that the
about to be controlled devices
Interfaces are connected, their adaptation and program-side
Support one
comparatively high effort or the very long latency
and have reaction times.
Erfindungsgemäß wird die
Aufgabe durch die in den Patentansprüchen angeführten Schaltungen gelöst.According to the invention
Problem solved by the cited in the claims circuits.
Die
Erfindung wirkt derart daß wenigstens ein
Teil der standardgemäß vorgesehenen
Schnittstellenregister als Ein- und Ausgaberegister verwendet wird.
Weitere Schnittstellenregister können
zu Adressierungszwecken genutzt werden. Erfindungsgemäße Interfaceadapter
lassen sich so betreiben, daß die
Konfigurationssteuersoftware (BIOS, Betriebssystem) nicht erkennen
kann, daß eine
solche Einrichtung angeschlossen ist. Hierdurch wird der Interfaceadapter
von den Systemkonfigurations- und Verwaltungvorkehrungen nicht betroffen,
steht also den jeweiligen Anwendungsprogrammen frei zur Verfügung. Die
programmseitige Schnittstelle beruht auf elementaren Ein- und Ausgabe-Befehlen.
Somit entsprechen die Latenz- und Reaktionszeiten den jeweiligen
Befehlsausführungszeiten.
Neben solchen elementaren E-A-Zugriffen können auch standardgemäße Kommandoprotokolle
unterstützt
werden. Hierdurch wird es möglich,
erfindungsgemäße Interfaceadapter über die
standardisierte Schnittstelle Serial ATA (SATA) anzuschließen und
Betriebsweisen auszunutzen, die über
die einfache programmierte Ein- und Ausgabe hinausgehen, z. B. den
Busmasterbetrieb und den automatischen DMA-Betrieb (ADMA).The
Invention acts such that at least one
Part of the standard provided
Interface register is used as input and output registers.
Other interface registers can
be used for addressing purposes. Inventive interface adapter
can be operated in such a way that the
Configuration control software (BIOS, operating system) do not recognize
can that one
such device is connected. This becomes the interface adapter
not affected by the system configuration and management arrangements,
is therefore freely available to the respective application programs. The
The program-side interface is based on elementary input and output commands.
Thus, the latency and reaction times correspond to the respective
Command execution times.
In addition to such elementary E-A access, standard command protocols can also be used
supports
become. This will make it possible
Interfaceadapter according to the invention over the
standardized interface to connect Serial ATA (SATA) and
Exploit operating modes that are over
the simple programmed input and output go out, z. B. the
Bus master operation and automatic DMA operation (ADMA).
Zum
Anschließen
beliebiger zu steuernder Einrichtungen (universelle Ein- und Ausgabe)
wird ein in nahezu jedem PC vorhandenes Interface ausgenutzt, ohne
daß sich
Konflikte mit der eigentlichen (bestimmungsgemäßen) Nutzung dieses Interfaces ergeben.
Infolge der eigentlichen Bestimmung solcher Schnittstellen (Anschluß von Laufwerken)
kann man mit einer vergleichsweise langen Lebensdauer der Interfacestandards
und entsprechender Verfügbarkeit
einschlägiger
Hardware rechnen. Um den PC mit zusätzlichen Schnittstellen auszurüsten, können handelsübliche ATA-Schnittstellenkarten
eingesetzt werden, die im Vergleich zu speziellen E-A-Steckkarten
deutlich kostengünstiger
sind. Aufgrund der einfachen Funktionsweise werden die Schaltungen
nicht allzu aufwendig. Erfindungsgemäße Interfaceadapter können z.
B. mit marktgängigen
programmierbaren Schaltkreisen aufgebaut und auf kostengünstigen Leiterplatten
untergebracht werden. Es ist möglich, PCs
der üblichen
Bauformen mit erfindungsgemäßen Interfaceadaptern
auszurüsten,
die wie Laufwerke eingebaut werden können. Zudem kann man solche Interfaceadapter
u. a. auf PC-Moduln unterbringen, die zum Einsatz in Embedded Systems
bestimmt sind. Hierdurch bekommt ein solches Modul Anwendungseigenschaften
eines echten Mikrocontrollers, z. B. eine Vielzahl frei programmierbarer
universeller E-A-Anschlüsse.
Da die programmseitigen Schnittstellen nicht auf mehreren Softwareschichten
beruhen (wie z. B. beim USB und bei Netzwerkinterfaces), kann man
die Zugriffe auf erfindungsgemäße Interfaceadapter
auf elementare Weise ausprogrammieren, und es lassen sich Latenz-
und Reaktionszeiten im Mikrosekundenbereich gewährleisten. Die elementare Ein-
und Ausgabe (Port I/O) wird in jedem der gängigen Betriebssysteme unterstützt. Deshalb erfordert
die Nutzung erfindungsgemäßer Interfaceadapter
keinen übermäßigen programmseitigen
Entwicklungsaufwand. Zudem lassen sich höherentwickelte Betriebsarten
auszunutzen, die von den typischen Steuerschaltkreisen der PCs unterstützt werden.
So ermöglicht
es der automatischen DMA-Betrieb (ADMA), ganze Kommandofolgen autonom
in der Hardware – also
ohne Eingriff des Prozessors – ablaufen
zu lassen.For connecting any devices to be controlled (universal input and output) an existing in almost any PC interface is exploited, without causing conflicts with the actual (intended) use of this interface. As a result of the actual determination of such interfaces (connection of drives) one can expect a comparatively long lifetime of the interface standards and corresponding availability of relevant hardware. To equip the PC with additional interfaces, commercially available ATA interface cards can be used, which are significantly cheaper compared to special EA plug-in cards. Due to the simple operation, the circuits are not too expensive. Inventive interface adapters can, for. B. with marketable programmable Circuits are built and housed on inexpensive circuit boards. It is possible to equip PCs of the usual types with interface adapters according to the invention, which can be installed like drives. In addition, such interface adapters can be accommodated on PC modules, which are intended for use in embedded systems. This gives such a module application properties of a real microcontroller, z. B. a variety of freely programmable universal I / O connections. Since the program-side interfaces are not based on several software layers (such as, for example, in the case of USB and network interfaces), the accesses to interface adapters according to the invention can be programmed in an elementary manner, and it is possible to ensure latency and reaction times in the microsecond range. The basic input and output (port I / O) is supported in each of the common operating systems. Therefore, the use of interface adapters according to the invention does not require excessive programming development effort. In addition, more advanced modes can be exploited that are supported by the typical control circuitry of the PCs. Thus, the automatic DMA operation (ADMA) allows autonomous execution of entire command sequences in the hardware - that is, without intervention of the processor.
Ein
Ausführungbeispiel
der Erfindung ist in der Zeichnung dargestellt und wird im folgenden
näher beschrieben.One
embodiment
The invention is illustrated in the drawing and will be described below
described in more detail.
Es
zeigenIt
demonstrate
1 die
Signale des herkömmlichen
(parallelen) ATA-Interfaces, 1 the signals of the conventional (parallel) ATA interface,
2 und 3 die
Adressierung und Belegung des standardgemäßen Registersatzes, 2 and 3 the addressing and assignment of the standard register set,
4 den
Ablauf der elementaren Schreib- und Lesezugriffe, 4 the flow of elementary read and write accesses,
5 die
ursprüngliche
und die erfindungsgemäße Nutzung
des Interfacestandards, 5 the original and the inventive use of the interface standard,
6 eine
allgemein nutzbare Auslegung des Adreßdecodierers, 6 a generally usable design of the address decoder,
7 die
Auslegung eines einfachen E-A-Ports, 7 the design of a simple I / O port,
8 die
Beschaltung des Adreßdecodiereres
mit einer Sperrleitung, 8th the wiring of the address decoder with a blocking line,
9 die
Unterdrückung
der Registerzugriffe mittels Zeitstufe, 9 the suppression of register accesses by means of the time step,
10 die
Unterdrückung
der Registerzugriffe über
eine Signaturerkennungsschaltung, 10 the suppression of register accesses via a signature recognition circuit,
11 bis 13 ein
Beispiel für
den Aufbau der Signaturerkennungsschaltung, 11 to 13 an example of the structure of the signature recognition circuit,
14 und 15 Einzelheiten
der Adreßdecodierschaltungen, 14 and 15 Details of the address decoding circuits,
16 und 17 zweckmäßige Nutzungsweisen
standardgemäßer Registeradressen, 16 and 17 appropriate usage of standard register addresses,
18 den
Aufbau eines universellen E-A-Ports, 18 the construction of a universal I / O port,
19 den
Anschluß mehrerer
E-A-Ports, 19 the connection of several I / O ports,
20 die
Nutzung des Funktionsmerkmalregisters als zusätzliches Adreßregister, 20 the use of the feature register as an additional address register,
21 den
Anschluß eines
RAM, 21 the connection of a RAM,
22 den
Anschluß eines
E-A-Bussystems, 22 the connection of an I / O bus system,
23 bis 26 die
Weiterbildung des Interfaceadapters für Einzelbitzugriffe, 23 to 26 the development of the interface adapter for single bit accesses,
27 und 28 den
Anschluß eines Festwertspeichers
mit Identifikationsdaten, 27 and 28 the connection of a read-only memory with identification data,
29 bis 33 den
Anschluß mehrerer Einrichtungen
an ein Interface, 29 to 33 the connection of several devices to one interface,
34 die
Wirkungsweise der standardgemäßen 48-Bit-Adressierung, 34 the operation of the standard 48-bit addressing,
35 bis 39 Schaltungslösungen der erweiterten
Adressierung, 35 to 39 Circuit solutions of extended addressing,
40 bis 52 die
Weiterbildung des Interfaceadapters zwecks Unterstützung standardgemäßer Kommandoprotokolle
und zwecks Anschluß an
bitserielle Hochgeschwindigkeitsschnittstellen (Serial ATA), 40 to 52 the development of the interface adapter in order to support standard command protocols and for connection to high-speed bit serial interfaces (Serial ATA),
52 bis 54 das
Prinzip der Kommandoausführung, 52 to 54 the principle of command execution,
55 bis 59 verschiedene
Varianten der Kommandoblaufsteuerung, vor allem der Beeinflussung
der Kommandoausführungszeit, 55 to 59 various variants of the command run control, especially the influencing of the command execution time,
60 bis 62 Weiterbildungen
des Interfaceadapters zwecks Unterstützung der Datenübertragung, 60 to 62 Further developments of the interface adapter in order to support data transmission,
63 eine
Variante des konstruktiven (mechanischen) Aufbaus, 63 a variant of the constructive (mechanical) structure,
64 bis 70 Interfaceadapter
mit Interfaceumschaltung, 64 to 70 Interface adapter with interface switching,
71 einen
Interfaceadapter mit Interfaceumschaltung auf einem PC-Modul, 71 an interface adapter with interface switching on a PC module,
72 einen
programmierbaren Schaltkreis mit Interfaceadapter. 72 a programmable circuit with interface adapter.
Die
einschlägigen
Standards werden vom ANSI-Komitee T13 bearbeitet. Dem Ausführungsbeispiel
liegen folgende Standards zugrunde:
- 1. 1532D:
AT Attachment-7 with Packet Interface (ATA/ATAPI – 7). Vorläufige Dokumentation
(Draft Documents): d1532v1r4b (Band 1), d1532v2r4b (Band 2), d1532v3r4a
(Band 3).
- 2. 1697D: AT Attachment-8 Serial Transport (ATA8-ST). Vorläufige Dokumentation
(Draft Document): D1697r0-ATA8-ST.
The relevant standards are being handled by the ANSI Committee T13. The exemplary embodiment is based on the following standards: - 1. 1532D: AT Attachment-7 with Packet Interface (ATA / ATAPI-7). Preliminary Documentation (Draft Documents): d1532v1r4b (volume 1), d1532v2r4b (volume 2), d1532v3r4a (volume 3).
- 2. 1697D: AT Attachment-8 Serial Transport (ATA8-ST). Draft Document: D1697r0-ATA8-ST.
1 veranschaulicht
die Signale des herkömmlichen
(parallelen) ATA-Interfaces. Das Interface dient dazu, vom Prozessor
(Host) aus auf einen Registersatz zuzugreifen, der in den angeschlossenen
Geräten
untergebracht ist. Die Interfacesignale CS1-, CS0-, DA2, DA1 und
DA0 dienen dazu, jeweils ein Register aus diesem Registersatz auszuwählen. Es
gibt 9 zulässige
Registeradressen, über
die auf insgesamt 12 Register zugegriffen werden kann. 1 illustrates the signals of the conventional (parallel) ATA interface. The interface is used to access from the processor (host) to a register set, which is housed in the connected devices. The interface signals CS1, CS0, DA2, DA1 and DA0 are used to select one register from this register set. There are 9 permissible register addresses, which can be accessed on a total of 12 registers.
Die 2 und 3 zeigen
eine typische Belegung dieses Registersatzes. Datenregisterzugriffe
werden in einer Breite von 16 Bits geführt (über die Datenleitungen DD15...0),
alle anderen Zugriffe in einer Breite von 8 Bits (über die
Datenleitungen DD7...0).The 2 and 3 show a typical assignment of this register set. Data register accesses are carried out in a width of 16 bits (via the data lines DD15 ... 0), all other accesses in a width of 8 bits (via the data lines DD7 ... 0).
Der
Registersatz ist in zwei Blöcke
eingeteilt:
- – Kommandoregisterblock. 8
Registeradressen, 10 Register. CS1- = 1, CS0- = 0 (Auswahl mit CS0).
- – Steuerregisterblock.
1 Registeradresse, 2 Register. CS1- = 0, CS0- = 1 (Auswahl mit CS1).
The register file is divided into two blocks: - - Command register block. 8 register addresses, 10 registers. CS1- = 1, CS0- = 0 (selection with CS0).
- - Control register block. 1 register address, 2 registers. CS1- = 0, CS0- = 1 (selection with CS1).
Auf
ungültige
Registeradressen dürfen
die Geräte
nicht reagieren (Schreibversuche werden ignoriert, bei Leseversuchen
bleiben die Datenleitungen hochohmig).On
invalid
Register addresses are allowed
the devices
do not react (write attempts are ignored when reading attempts
the data lines remain high-ohmic).
Die
Abkürzungen
in 3 bedeuten:
- #:
- Inhalt kommandoabhängig,
- res:
- reserviert,
- va:
- veraltet (von ATA/ATAPI-4
an bedeutungslos),
- R:
- nur Lesen,
- W:
- nur Schreiben,
- R/W:
- Lesen und Schreiben,
- 1...5:
- Zugriffsbeschränkungen.
The abbreviations in 3 mean: - #:
- Content dependent on command,
- res:
- reserved,
- va:
- outdated (from ATA / ATAPI-4 to meaningless),
- R:
- just read,
- W:
- only writing,
- R / W:
- Read and write,
- 1 ... 5:
- Access restrictions.
Die
in 3 angegebenen Zugriffsbeschränkungen 1...5 hängen vor
allem vom Gerätezustand ab:
- 1:
- Zugriffe dürfen nur
dann ausgeführt
werden, wenn DRQ gesetzt ist,
- 2:
- Schreibzugriffe sind
nur möglich,
wenn BSY und DRQ beide 0 sind. Ein gelesener Registerinhalt ist
nur dann gültig,
wenn BSY = 0 ist.
- 3:
- der gelesene Registerinhalt
ist nur dann gültig, wenn
BSY und DRQ beide 0 sind und ERR gesetzt ist,
- 4:
- Zugriffe sind immer
möglich,
aber wenn BSY gesetzt ist, sind die anderen gelesenen Bits ungültig,
- 5:
- Zugriffe sind immer
möglich.
In the 3 access restrictions 1 ... 5 depend mainly on the device state: - 1:
- Accesses may only be executed if DRQ is set,
- 2:
- Write accesses are only possible if BSY and DRQ are both 0. A read register content is valid only if BSY = 0.
- 3:
- the read register contents are valid only if BSY and DRQ are both 0 and ERR is set,
- 4:
- Accesses are always possible, but if BSY is set, the other bits read are invalid,
- 5:
- Access is always possible.
4 veranschaulicht
den Ablauf der elementaren Schreib- und Lesezugriffe. Diese Zugriffsweise
wird als programmierte Ein- und Ausgabe bezeichnet (Programmed I/O;
PIO). 4 illustrates the flow of elementary read and write accesses. This type of access is referred to as programmed input and output (Programmed I / O; PIO).
Es
gibt verschiedene Betriebsarten (PIO 0 bis PIO 4). Sie unterscheiden
sich lediglich in den Zeitkennwerten. Beispiele:
- PIO
0: Zykluszeit: 600 ns; maximale Datenrate: 1,66 MBytes/s (Registerzugriffe;
8 Bits) bzw. 3,32 MBytes/s (Datenzugriffe; l6 Bits).
- PIO 4: Zykluszeit: 120 ns; maximale Datenrate: 8,33 MBytes/s
(Registerzugriffe; 8 Bits) bzw. 16,66 MBytes/s (Datenzugriffe; l6
Bits). Diese Betriebsart ergibt nahezu die (in E-A-Zugriffen praktisch
nutzbare) Datenrate des PCI-Bus, die Schnittstellen hardware im Adapter
ist aber kaum komplizierter als ein herkömmlicher ISA-Busanschluß.
There are different operating modes (PIO 0 to PIO 4). They only differ in the time characteristics. Examples: - PIO 0: cycle time: 600 ns; maximum data rate: 1.66 MBytes / s (register accesses, 8 bits) or 3.32 MBytes / s (data accesses, 16 bits).
- PIO 4: cycle time: 120 ns; maximum data rate: 8.33 MBytes / s (register accesses, 8 bits) and 16.66 MBytes / s (data accesses, 16 bits). This mode gives almost the (in EA accesses practically usable) data rate of the PCI bus, but the hardware interfaces in the adapter is hardly more complicated than a conventional ISA bus connection.
Interfacesignale,
Registerbelegungen und Zugriffsabläufe sind in den vom Technischen
Komitee ANSI T13 herausgegebenen Interfacestandards umfassend beschrieben,
so daß eine
ausführliche
Erläuterung
entfallen kann.Interface signals
Register assignments and access sequences are in those of the technical
Committee ANSI T13 extensively described,
so that one
detailed
explanation
can be omitted.
5 veranschaulicht
sowohl die ursprüngliche
als auch die erfindungsgemäße Nutzung
des besagten Interfacestandards. 5 illustrates both the original and the inventive use of said interface standard.
Bei
herkömmlicher
Nutzung des Interfaces (5 oben) enthält der steuernde Rechner 1 (im
folgenden auch als PC (Personalcomputer) oder als Host bezeichnet)
eine Anschlußsteuerung
(Interfacecontroller) 2, dem über ein standardgemäßes Interface 3 Laufwerke 4 (z.
B. Festplatten) nachgeschaltet sind. Jedes Laufwerk 4 enthält eine
Anschlußsteuerung 5 und
einen nachgeschalteten standardgemäßen Registersatz 6.
Bei erfindungsgemäßer Nutzung (5 unten)
wird an das standardgemäße Interface 3 ein
Interfaceadapter 7 angeschlossen, dem über E-A-Ports 8 beliebige
zu steuernde Einrichtungen 9 nachgeschaltet werden können.With conventional use of the interface ( 5 above) contains the controlling computer 1 (hereinafter also referred to as PC (personal computer) or host) a terminal controller (interface controller) 2 , via a standard interface 3 drives 4 (eg hard disks) are connected downstream. Every drive 4 contains a connection control 5 and a downstream standard register set 6 , In use according to the invention ( 5 below) gets to the standard interface 3 an interface adapter 7 connected to the via I / O ports 8th any devices to be controlled 9 can be connected downstream.
Bei
herkömmlicher
Nutzung des Interfaces lassen sich ein oder zwei Laufwerke anschließen.at
conventional
Using the interface, you can connect one or two drives.
Bei
erfindungsgemäßer Nutzung
ergeben sich – je
nach Ausbildung des Interfaceadapters 7 – verschidene
Anschlußmöglichkeiten:
- 1. ein einziger Interfaceadapter 7,
- 2. mehrere Interfaceadapter 7,
- 3. ein Laufwerk 4 und ein oder mehrere Interfaceadapter 7,
- 4. zwei oder mehrere Laufwerke 4 und ein oder mehrere
Interfaceadapter 7.
When used according to the invention arise - depending on the design of the interface adapter 7 - various connection options: - 1. a single interface adapter 7 .
- 2. multiple interface adapters 7 .
- 3. a drive 4 and one or more interface adapters 7 .
- 4. two or more drives 4 and one or more interface adapters 7 ,
6 zeigt
eine allgemein nutzbare Auslegung des in der Anschlußsteuerung 5 angeordneten Adereßdecodierers
für den
Registersatz 6. Die Interfaceleitungen CS1-, CS0-, DA2,
DA1 und DA0 sind an UND-Gatter 10 und 11 sowie
an einen Decoder 12 angeschlossen. Dem Decoder 12 und
dem UND-Gatter 11 sind die Zugriffserlaubnisleitungen 13 der
standardgemäßen Register
(vgl. die 2 und 3) nachgeschaltet.
Die Decodierung von Adressen gehört
zu den Grundlagen der Digitaltechnik, so daß eine nähere Beschreibung nicht erforderlich
ist. UND-Gatter 10 ist zudem mit den Interfacesignalen DMARQ
und DMACK-beschaltet,
um zu verhindern, daß bei
laufenden DMA-Zugriffen die Belegung der anderen angeschlossenen
Interfaceleitungen vom Adreßdecoder
ausgewertet wird. Das ist ein allgemeines Erfordernis, das sich
aus den Wirkprinzipien des Interfaces ergibt und ebenfalls nicht
näher erläutert werden
muß. 6 shows a generally usable design of the in the terminal control 5 arranged address decoder for the register set 6 , The interface lines CS1, CS0, DA2, DA1 and DA0 are connected to AND gates 10 and 11 as well as to a decoder 12 connected. The decoder 12 and the AND gate 11 are the access permission lines 13 the standard register (see the 2 and 3 ) downstream. The decoding of addresses is one of the foundations of digital technology, so that a closer description is not required. AND gate 10 is also connected with the interface signals DMARQ and DMACK, to prevent the assignment of the other connected interface lines from being evaluated by the address decoder during ongoing DMA accesses. This is a general requirement, which results from the principles of the interface and also does not need to be explained.
7 veranschaulicht
die Auslegung eines einfachen E-A-Ports 8. Er besteht aus
einem Ausgaberegister 14 und einem Eingaberegister 15,
die an eine der Zugriffserlaubnisleitungen 13 des besagten Adreßdecodierers
angeschlossen sind. Wird vom PC aus auf das betreffende der standardgemäßen Register
des Registersatzes 6 (vgl. die 2 und 3)
zugegriffen und handelt es sich um einen Schreibzugriff (DIOW- aktiv),
so wird die Belegung der Datenbusleitungen (z. B. DD7...0) in das
Ausgaberegister 14 übernommen.
Handelt es sich um einen Lesezugriff (DIOR- aktiv), so wird mit
der Vorderflanke des DIOR-Signals die Eingangsbelegung ins Eingaberegister 15 übernommen
und auf die Datenbusleitungen aufgeschaltet. 7 illustrates the design of a simple I / O port 8th , It consists of an output register 14 and an input register 15 attached to one of the access permission lines 13 the said address decoder are connected. From the PC to the relevant register of the register set 6 (see the 2 and 3 ) and is a write access (DIOW active), the assignment of the data bus lines (eg DD7 ... 0) to the output register 14 accepted. If it is a read access (DIOR active), the input assignment to the input register becomes the leading edge of the DIOR signal 15 taken over and switched on the data bus lines.
Eine
solche Anordnung ist aber infolge der üblichen (an sich bestimmungsgemäßen) Nutzung dieses
Interfaces in üblichen
PCs nicht ohne weiteres betriebsfähig.A
but such arrangement is due to the usual (per se intended) use of this
Interfaces in usual
PCs not readily operational.
Es
ist mit mehreren Konfliktfällen
zu rechnen:
- 1. infolge der Wirkungen der Systemsoftware
(vor allem der Konfigurationsabläufe),
- 2. wenn Interfaceadapter und Laufwerke) am gleichen Kabel betrieben
werden,
- 3. bei bestimmungsgemäßer Nutzung
der Interfacesteuerung 2 im PC.
It is to be counted on several conflict cases: - 1. due to the effects of the system software (especially the configuration processes),
- 2. if interface adapters and drives are operated on the same cable,
- 3. in the case of the intended use of the interface control 2 in the PC.
Die
Konfliktfälle
ergeben sich deswegen, weil das Interface an sich ausschließlich für den Anschluß von Laufwerken
und nicht als universelle E-A-Schnittstelle ausgelegt ist.The
conflicts
arise because of the interface itself only for the connection of drives
and is not designed as a universal E-A interface.
Die
Systemsoftware versucht, beim Hochfahren die im PC vorhandenen ATA-Interfacecontroller 2 zu
konfigurieren. Wegen der grundsätzlichen Bedeutung
der ATA-Schnittstellen als Laufwerksinterface sind diese Abläufe typischerweise
tief in die Systemsoftware (BIOS, Betriebssystem) eingebettet, können also – im Gegensatz
zu üblichen
Gerätetreibern – nicht
einfach durch Deinstallieren außer
Funktion gesetzt werden.The system software attempts to boot up the existing in the PC ATA interface controller 2 to configure. Because of the fundamental importance of the ATA interfaces as a drive interface, these processes are typically deeply embedded in the system software (BIOS, operating system), so they can - unlike conventional device drivers - not be put out of action simply by uninstalling.
Wird
ein ATA-Interfacecontroller erkannt, so sucht die Software nach
angeschlossenen Laufwerken. E-A-Einrichtungen ähnlich den 6 und 7 werden
anfänglich
als Laufwerk angesprochen. Das kann im weiteren Verlauf der Systemkonfiguration
zu Konflikten führen.If an ATA interface controller is detected, the software searches for connected drives. EA facilities similar to the 6 and 7 are initially addressed as a drive. This can lead to conflicts as the system configuration progresses.
Um
dies zu verhindern, wird der Adreßdecodierer mit einer Sperrleitung
beschaltet. Diese Sperrleitung wird vom Einschalten des PCs an bis
zum Ende der Konfigurationsabläufe
aktiviert.Around
to prevent this, the address decoder with a blocking line
wired. This blocking line is switched on by switching on the PC
to the end of the configuration processes
activated.
8 veranschaulicht,
wie ein Adreßdecodierer
gemäß 6 mit
einer Sperrleitung 16 beschaltet ist. Bei aktiver Sperrleitung 16 werden
alle Registerzugriffe unterdrückt.
Zugriffsversuche sind wirkungslos. 8th illustrates how an address decoder according to 6 with a blocking line 16 is connected. With active blocking line 16 all register accesses are suppressed. Access attempts are ineffective.
9 zeigt,
wie die Registerzugriffe für
die Dauer der Konfigurationsvorgänge
unterdrückt
werden können.
Hierzu ist die dem Adreßdecodierer 17 vorgeordnete
Sperrleitung 16 an eine Zeitstufe 18 angeschlossen.
Die Zeitstufe 18 kann beispielsweise als monostabiler Multivibrator
ausgeführt
werden. Sie wird beim Hardware-Rücksetzen
des PCs aktiviert und ist so eingestellt, daß sie erst nach dem Ablauf der
Konfigurationsvorgänge
ausschaltet (typischerweise nach einigen Sekunden). 9 shows how the register accesses can be suppressed for the duration of the configuration processes. For this purpose, that is the address decoder 17 upstream blocking line 16 at a time step 18 connected. The time step 18 can be performed for example as a monostable multivibrator. It is activated when the hardware is reset on the PC and is set to switch off only after the configuration process has finished (typically after a few seconds).
Die
Lösung
gemäß 9 ist
schaltungstechnisch einfach. Die einzustellende Zeit hängt aber stark
von der Typ des PCs und von der jeweiligen Konfigurationssoftware
ab. 10 zeigt deshalb eine weitere Auslegung, in der
die Sperrleitung 16 an eine Signaturerkennungsschaltung 19 angeschossen
ist. Sie wird beim Hardware-Rücksetzen
des PCs aktiviert und bleibt solange aktiv, bis eine bestimmte charakteristische
Folge von Zugriffen (die Signatur) eintrifft. Die Ausgabe der Signatur
wird typischerweise von der jeweiligen Anwendungssoftware veranlaßt, die
damit die alleinige Kontrolle über
den Interfaceadapter 7 übernimmt.The solution according to 9 is simple in terms of circuitry. The time to be set depends very much on the type of PC and the respective configuration software. 10 shows therefore a further interpretation in which the blocking line 16 to a signature recognition circuit 19 shot. It is activated during the hardware reset of the PC and remains active until a certain characteristic sequence of accesses (the signature) arrives. The output of the signature is typically caused by the particular application software, which thus the sole control of the interface adapter 7 takes over.
Das
Prinzip der Signaturerkennung beruht darauf, eine ganz bestimmte
Folge von Zugriffen auszuführen,
die sich von den während
des normalen Betriebs üblichen
Zugriffsfolgen deutlich unterscheidet, die aber andererseits den
nomalen Betrieb nicht beeinträchtigt.
Die 11 bis 13 veranschaulichen
eine beispielhafte Auslegung der Signaturerkennungsschaltung 19.The principle of signature recognition is based on executing a very specific sequence of accesses, which differs significantly from the usual access sequences during normal operation, but which, on the other hand, does not affect normal operation. The 11 to 13 illustrate an exemplary layout of the signature recognition circuit 19 ,
Gemäß 11 sind
ein sequentieller Festwertspeicher 19, ein Längenzähler 20,
ein Vergleicher 21 sowie Steuerschaltungen 22, 23 vorgesehen. 12 zeigt
den Aufbau der Steuerschaltung 22, die die Signaturzugriffe
decodiert. Die Signatur besteht im Beispiel aus mehreren aufeinanderfolgenden Schreibzugriffen
auf das Interfaceregister Nr. 5 (Zylinder-Nr. hoch; vgl. 2). Jeder
derartige Zugriff führt
zu einem Impuls auf der Leitung SIGNA-TURE ACCESS und veranlaßt, daß die Signaturprüfung eingeschaltet
wird (SIGNATURE CHECK). Jeder Schreibzugriff mit einer anderen Adresse
und jeder beliebige Lesezugriff schaltet die Signaturprüfung wieder
aus (SIGNATURE CHECK wird inaktiv). 13 zeigt
den Aufbau der Steuerschaltung 23, der die Sperrleitung 16 nachgeschaltet
ist. Sie enthält
ein Ungleich-Flipflop 24 und ein Freigabeflipflop 25.
Die Sperrleitung 16 ist an den invertierten Ausgang des Freigabeflipflops 25 angeschlossen.According to 11 are a sequential read-only memory 19 , a length counter 20 , a comparator 21 and control circuits 22 . 23 intended. 12 shows the structure of the control circuit 22 which decodes the signature accesses. In the example, the signature consists of several consecutive write accesses to the interface register No. 5 (cylinder No. high; 2 ). Any such access results in a pulse on the SIGNA-TURE ACCESS line and causes the signature check to be turned on (SIGNATURE CHECK). Each write access with a different address and any read access switches the signature check off again (SIGNATURE CHECK becomes inactive). 13 shows the structure of the control circuit 23 who is the blocking line 16 is downstream. It contains a non-equal flip-flop 24 and a release flip flop 25 , The blocking line 16 is at the inverted output of the enable flip flop 25 connected.
Es
muß eine
gewissen Anzahl an Schreibzugriffen ausgeführt werden, wobei in jedem
Zugriff eine bestimmte Datenbelegung zu liefern ist. Alle Datenbelegungen
sind im sequentiellen Festwertspeicher 19 enthalten. Dieser
kann z. B. als rückgekoppeltes
Schieberegister ausgeführt
sein, das mit jedem Takt zum nächsten
Bitmuster weiterschaltet, oder als herkömmliches ROM-Array, das z.
B. vom Längenzähler 20 adressiert
werden kann. Die Software überträgt die Signatur
mit einer Folge von Schreibzugriffen auf das besagte Interfaceregister Nr.
5. In jedem Zugriff wird das über
die Datenbusleitungen DD7...0 übertragene
Datenbyte mit dem Sollwert aus dem sequentiellen Festwertspeicher 19 verglichen.
Zudem wird der der Inhalt des Längenzählers 20 um
Eins erhöht.
Wird ein anderer Zugriff ausgeführt,
so wird SIGNATURE CHECK inaktiv, und der sequentielle Festwertspeicher 19 sowie
der Längenzähler 20 werden
zurückgesetzt.There must be a certain number of write accesses to be done, with each access to provide a specific data occupancy. All data allocations are in sequential read-only memory 19 contain. This can z. B. be executed as a feedback shift register, which advances with each clock to the next bit pattern, or as a conventional ROM array, the z. B. from the length counter 20 can be addressed. The software transmits the signature with a sequence of write accesses to the said interface register No. 5. In each access, the data byte transmitted via the data bus lines DD7... 0 is supplied with the desired value from the sequential read-only memory 19 compared. It also becomes the content of the length counter 20 increased by one. If another access is executed, SIGNATURE CHECK becomes inactive, and the sequential read-only memory 19 as well as the length counter 20 will be reset.
Anfänglich sind
Ungleich-Flipflop 24 und Sperrflipflop 25 gelöscht. Hierdurch
wird die Sperrleitung 16 aktiviert. Erkennt der Vergleicher 21 eine
Ungleichheit, wird das Ungleich-Flipflop 24 gesetzt.
Ist das letzte Datenbyte übertragen
worden (LAST BYTE), werden die Ausgänge des Vergleichers 21 und
des Ungleich-Flipflops 24 ausgewertet. Nur dann, wenn in
allen Übertragungen
Gleichheit festgestellt wurde, ist das Ungleich-Flipflop 22 nicht
gesetzt. Diese Bedingung bewirkt das Setzen des Freigabeflipflops 25 und
damit das Deaktivieren der Sperrleitung 16. Die Sperrleitung 16 kann
anschließend
nie wieder aktiv werden. Unter allen anderen Bedingungen (Ungleichheit,
Schreibzugriffe auf andere Adressen, beliebige Lesezugriffe) bleibt
das Freigabeflipflop 25 zurückgesetzt, da entweder das Ungleich-Flipflop 24 gesetzt
oder (durch Inaktivwerden von SIGNATURE CHECK) die gesamte Signaturauswertung
abgebrochen wurde.Initially, non-equal flip-flops 24 and Sperrflipflop 25 deleted. This will cause the blocking line 16 activated. Detects the comparator 21 an inequality, the inequality flip-flop becomes 24 set. When the last data byte has been transferred (LAST BYTE), the outputs of the comparator become 21 and the non-equal flip-flop 24 evaluated. Only if equality is detected in all transmissions is the inequality flip-flop 22 not set. This condition causes the release flip-flop to be set 25 and thus deactivating the blocking line 16 , The blocking line 16 can never be active again afterwards. Under all other conditions (inequality, write accesses to other addresses, arbitrary read accesses) the release flip flop remains 25 reset because either the inequality flip-flop 24 or (by deactivating SIGNATURE CHECK) the entire signature evaluation was aborted.
14 veranschaulicht
eine weitere Ausbildung der Adreßdecodierschaltungen 17,
die Konflikte mit anderen Laufwerken am gleichen Kabel, mit dem Interfacecontroller 2 im
PC und typischerweise auch mit der Konfigurationssoftware vermeidet.
Hierbei werden nur jene standardgemäßen Registeradressen verwendet,
die nichts mit Kommandos, Zuständen
usw. zu tun haben. Diese Register sind standardgemäß für Lese-
und Schreibzugriffe (ohne begleitende Steuerwirkungen o. derl.)
vorgesehen. Zugriffe auf solche Registeradressen werden vom Interfaceadapter 2 nur
weitergereicht, lösen
also dort keine besonderen Steuerabläufe aus. In der Ausführung nach 14 werden
lediglich die Adressen 2 bis 6 im Kommandoregisterblock (vgl. 2)
ausgewertet. Zudem wird das Geräte-
und Kopfauswahlregister 26 (Adresse 6) in seiner ursprünglichen
Funktion genutzt (Geräteauswahl).
Damit können
zwei Einrichtungen (Laufwerk + Interfaceadapter oder zwei Interfaceadapter)
an einem Kabel betrieben werden. Im Beispiel wird das Laufwerk als
Master (Device 0) und der Interfaceadapter als Slave (Device 1)
konfiguriert. Die besonderen standardgemäßen Signalspiele des Interfaces,
die den Master über
die Anwesenheit eines Slaves informieren, werden nicht unterstützt. Der
Master sieht sich somit als einziges Gerät am Kabel (Masteronly-Konfiguration). 14 illustrates another embodiment of the address decode circuits 17 that conflicts with other drives on the same cable, with the interface controller 2 in the PC and typically also avoids with the configuration software. In this case, only those standard register addresses are used that have nothing to do with commands, states, etc. These registers are provided as standard for read and write accesses (without accompanying control effects or the like). Accesses to such register addresses are made by the interface adapter 2 only passed on, so there are no special tax procedures. In the execution after 14 only the addresses 2 to 6 in the command register block (see. 2 ) evaluated. In addition, the device and head selection register becomes 26 (Address 6) used in its original function (device selection). This allows two devices (drive + interface adapter or two interface adapters) to be operated on one cable. In the example, the drive is configured as master (device 0) and the interface adapter as slave (device 1). The special standard signal games of the interface, which inform the master about the presence of a slave, are not supported. The master thus sees itself as the only device on the cable (masteronly configuration).
Vom
Geräte-
und Kopfauswahlregister 26 muß nur die Bitposition 4 (DEV
= Geräteauswahl) hardwareseitig
implementiert werden. Geräteauswahl:
Master: DEV = 0, Slave: DEV = 1. Zugriffe auf dieses Register werden
immer ausgeführt.
Hierzu ist ein besonderer Adreßdecoder 27 vorgesehen.
Die anderen Register hingegen sind nur dann erreichbar, wenn die
Slave-Einrichtung
ausgewählt
wurde (DEV = 1). In 14 wurde der Adreßdecodierer 17 gegenüber 6 so
abgewandelt, daß nur
noch Register ausgewählt
werden, auf die gemäß ATA-Standard unbedenklich
zugegriffen werden kann. Somit sind vier 8-Bit-Ports zugänglich.From the device and head selection registers 26 Only bit position 4 (DEV = device selection) must be implemented on the hardware side. Device selection: Master: DEV = 0, Slave: DEV = 1. Accesses to this register are always executed. This is a special address decoder 27 intended. The other registers, on the other hand, can only be accessed if the slave device has been selected (DEV = 1). In 14 became the address decoder 17 across from 6 modified so that only registers are selected that can be safely accessed in accordance with ATA standard. Thus, four 8-bit ports are accessible.
Um
die Anzahl der zu unterstützenden E-A-Ports
zu erhöhen,
wird gemäß 15 das
dem Adreßdecoder 27 nachgeschaltete
Geräte-
und Kopfauswahlregister 26 um zusätzliche Bitpositionen erweitert,
die eine Portauswahladresse aufnehmen. Jeder Ausgangsleitung des
Adreßdecodieres 17 kann somit
ein Portadreßdecoder 28 nachgeschaltet
werden.To increase the number of supported I / O ports, see 15 the address decoder 27 downstream device and head selection registers 26 extended by additional bit positions that accommodate a port selection address. Each output line of the address decoder 17 can thus be a Portadreßdecoder 28 be followed.
Eine
vorteilhafte Auslegung ergibt sich, wenn die Portadreßdecoder 28 so
ausgebildet werden, daß sie
nur auf Portadressen größer oder
gleich Eins ansprechen, so daß eine
ins Geräte-
und Kopfauswahlregister 26 eingetragene Portadresse Null
wirkungslos bleibt. Zudem ist das Geräte- und Kopfauswahlregister 26 nur
für Schreibzugriffe
zugänglich.
Lesezugriffe auf dieses Register sind wirkungslos. Wirkungslose
Lesezugriffe liefern – über den
Interfacecontroller 2 im PC – stets einen Festwert FFH
an das Programm zurück.
Viele Konfigurationsabläufe
prüfen
die Anwesenheit eines Laufwerks anfänglich durch Eintragen des
Wertes 0H in die niederwertigen Bits des Geräte- und Kopfauswahlregisters 26 und durch
weitere probeweise Schreib- und Lesezugriffe. Die beschriebene Auslegung
gewährleistet
zum einen, daß hierbei
stets „nichts" – also FFH – zurückgelesen wird, und zum anderen,
daß probeweise Schreibzugriffe
auf andere Registeradressen keine unerwünschten Nebenwirkungen haben
(die tatsächlich
vorhandenen E-A-Register können
somit durch derartige Konfigurationsabläufe nicht beeinflußt werden).An advantageous design results when the Portadreßdecoder 28 be designed so that they only respond to port addresses greater than or equal to one, so that one in the device and head selection register 26 entered port address zero remains ineffective. In addition, the device and head selection register 26 accessible only for write access. Read access to this register is ineffective. Provide ineffective read access - via the interface controller 2 in the PC - always a fixed value FFH back to the program. Many configuration processes initially check the presence of a drive by entering the value 0H into the low order bits of the device and head select register 26 and by further trial and error read and write accesses. The described design ensures, on the one hand, that "nothing" - ie FFH - is always read back, and, on the other hand, that sample accesses to other register addresses have no unwanted side effects (the EA registers that are actually present can not be influenced by such configuration processes). ,
Die 16 und 17 veranschaulichen zweckmäßige Nutzungsweisen
standardgemäßer Registeradressen.
Das Geräte-
und Kopfauswahlregister dient gemäß 15 zur
Auswahl des Interfaceadapters (Bit 4) und zur Adressierung von E-A-Ports
(Bits 3...0). Die eigentlichen E-A-Ports sind über Registeradressen zugänglich,
die standardgemäß nur für einfache
Lese- und Schreibzugriffe ohne irgendwelche Sonderwirkungen ausgelegt
sind.The 16 and 17 illustrate appropriate usage of standard register addresses. The device and head selection register is used according to 15 for selecting the interface adapter (bit 4) and for addressing I / O ports (bits 3 ... 0). The actual I / O ports are accessible via register addresses, which are designed according to standard only for simple read and write accesses without any special effects.
Die allgemeine Nutzung:General usage:
-
1. die Portauswahladresse in das Geräte- und Kopfauswahlregister 26 laden,1. the port selection address in the device and head selection register 26 load,
-
2. über
eine der standardgemäßen Registeradressen
2...5 auf das jeweilige Portregister zugreifen.2. over
one of the standard register addresses
2 ... 5 access the respective port register.
16 zeigt
eine Ausführung,
die nur universelle E-A-Ports enthält (18, 19).
Jeder Port hat eine Zugriffsbreite von 8 Bits. Er besteht aus einem
Richtungsregister und einem Datenregister. In der Aufteilung gemäß 16 können zwei
solche Ports über
eine einzige Portauswahladresse angesprochen werden. Insgesamt lassen
sich über
15 gültige
Portadressen 4 •• 15 = 60
universelle 8-Bit-Ports adressieren. 16 shows a version containing only universal I / O ports ( 18 . 19 ). Each port has an access width of 8 bits. It consists of a direction register and a data register. In the division according to 16 Two such ports can be addressed via a single port selection address. In total, more than 15 valid port addresses can address 4 •• 15 = 60 universal 8-bit ports.
Gemäß 17 können maximal
nur 2 •• 15 = 30
universelle 8-Bit-Ports angesprochen werden, da zwei der standardgemäßen Registeradressen zum
Ansprechen spezieller Peripherie vorgesehen sind. Das betrifft u.
a. Analog-Digital-Wandler, Leistungsschaltungen, Speicher und Zeitgeber.
Mit 15 Portadressen können
2 •• 15= 30
Bytes für
Lese- und Schreibzugriffe zugänglich
gemacht werden.According to 17 At most only 2 •• 15 = 30 8-bit universal ports can be addressed since two of the standard register addresses are provided to address special peripherals. This concerns, among other things, analog-to-digital converters, power circuits, memory and timers. With 15 port addresses 2 •• 15 = 30 bytes can be made accessible for read and write access.
18 veranschaulicht
den Aufbau eines universellen E-A-Ports anhand einer einzigen Bitposition.
Der gesamte Port besteht aus acht derartigen Schaltungen. Jeder
E-A-Anschluß eines
solchen Ports ist einzeln zwischen Ein- und Ausgabe umsteuerbar. 18 illustrates the construction of a universal I / O port from a single bit position. The entire port consists of eight such circuits. Each I / O port of such a port can be individually switched between input and output.
In
jeder Bitposition ist je ein Flipflop eines Richtungsregisters 29 und
eines Datenregisters 30 vorgesehen. Dem Datenregister 30 sind über Tri-State-Treiber 31 die
E-A-Anschlüsse 32 nachgeschaltet. Die
Erlaubiseingänge
der Tri-State-Treiber 31 sind mit den jeweiligen Bitpositionen
des Richtungsregisters 29 verbunden. Im Beispiel gilt folgende
Zuordung:
- 1. Bit im Richtungsregister 29 =
0: Eingang,
- 2. Bit im Richtungsregister 29 = 1: Ausgang.
In each bit position is ever a flip-flop of a direction register 29 and a data register 30 intended. The data register 30 are about tri-state drivers 31 the I / O connections 32 downstream. The permission inputs of the tri-state drivers 31 are with the respective bit positions of the direction register 29 connected. In the example, the following assignment applies: - 1st bit in the direction register 29 = 0: input,
- 2nd bit in the direction register 29 = 1: output.
Jedes
der Register 29, 30 kann über Portauswahlsignale eines
Portadreßdecoders 28 (vgl. 15)
zum Laden ausgewählt
werden (Datenübernahme
von den Datenbusleitungen DD7...0 mit Schreibsteuersignal DIOW-).Each of the registers 29 . 30 can via port selection signals of a Portadreßdecoders 28 (see. 15 ) are selected for loading (data transfer from the data bus lines DD7 ... 0 with write control signal DIOW-).
Mit
der in 18 dargestellten Beschaltung ergibt
sich folgende Zuordnung (vgl. 2):
- 1. Richtungsregister = Zylinder-Nr. hoch (Adresse 5),
- 2. Datenregister = Zylinder-Nr. niedrig (Adresse 4).
With the in 18 shown wiring results in the following assignment (see. 2 ): - 1st direction register = cylinder no. high (address 5),
- 2nd data register = cylinder no. low (address 4).
Um
die Signalbelegung der E-A-Anschlüsse 32 zu lesen (Eingabe),
sind diese im Beispiel über Tri-State-Buskoppelstrufen 33 mit
den Datenbusleitungen DD7...0 verbunden. Die Aufschaltung erfolgt bei
Auswahl des betreffenden Registers (z. B. über Adreßdecodersignal PORTS4_1) und
aktivem Lesesteuersignal DIOR-.To the signal assignment of the I / O connections 32 to read (input), these are in the example via tri-state Buskoppelbrufen 33 connected to the data bus lines DD7 ... 0. The connection takes place when the relevant register is selected (eg via address decoder signal PORTS4_1) and active read control signal DIOR-.
Gemäß 19 können einer
Decodieranordnung aus Adreßdecodierschaltungen 17 und
Portadreßdecodern 28 (vgl. 15)
mehrere E-A-Ports 35 nachgeschaltet werden. Es kann sich
sowohl um universelle E-A-Ports handeln als auch um Register, die
mit vielfältigen
peripheren Einrichtungen verbunden sind, z. B. mit Analog-Digital-Wandlern,
mit Zeitgeberschaltungen, mit Speichern usw. Im Grunde handelt es
sich darum, im Innern des Interfaceadapters 7 einen Datenbus
mit Zugriffssteuer- und Auswahlleitungen bereitzustellen, an den
beliebige Ein- und Ausgaberegister angeschlossen werden können. Die
Prinziplösung
des E-A-seitigen
Ausbaus im Interfaceadapter 2 entspricht an sich der E-A-Erweiterung üblicher
Mikroprozessorsysteme und muß somit
nicht im einzelnen beschrieben werden.According to 19 may be a decoder arrangement of address decoder circuits 17 and port address decoders 28 (see. 15 ) several I / O ports 35 be followed. These can be both universal I / O ports and registers associated with multiple peripheral devices, e.g. For example, with analog-to-digital converters, with timer circuits, with memories, etc. Basically, this is inside the interface adapter 7 provide a data bus with access control and select lines to which any input and output registers can be connected. The principle solution of the EA-side expansion in the interface adapter 2 corresponds in itself to the EA extension of conventional microprocessor systems and thus need not be described in detail.
Durch
Mitnutzung des standardgemäßen Datenregisters
(vgl. 2) kann der Interfaceadapter 2 auf 16-Bit-Zugriffe
erweitert werden. Hierzu ist der Adreßdecodierer 17 so
abzuwandeln, daß auch eine
Adreßbelegung
CS1- = 1 und CS0- sowie DA2, DA1 DA0 = 0 zur Aktivierung einer Registerauswahlleitung
führt,
der ein weiterer Portadreßdecoder 28 nachgeschaltet
ist. In einer Anordnung gemäß 19 werden
die betreffenden E-A-Ports 35 mit allen Datenbusleitungen
DD15...0 verbunden.By sharing the standard data register (cf. 2 ) may be the interface adapter 2 be extended to 16-bit accesses. This is the address decoder 17 to modify that, too an address assignment CS1- = 1 and CS0- and DA2, DA1 DA0 = 0 leads to the activation of a register select line which is another port address decoder 28 is downstream. In an arrangement according to 19 become the relevant IO ports 35 connected to all data bus lines DD15 ... 0.
Es
gibt periphere Einrichtungen, die einen größeren Adreßraum belegen (z. B. 64 kBytes
und mehr). Um solche Adreßräume zu unterstützen, können sowohl
E-A-Ports bzw. Portregister als auch weitere standardgemäße Register
als zusätzliche Adreßregister
verwendet werden.It
There are peripheral devices that occupy a larger address space (eg, 64 kbytes
and more). To support such address spaces, both
E-A ports or port registers as well as other standard registers
as additional address registers
be used.
20 zeigt
die Nutzung des bisher nicht verwendeten Funktionsmerkmalregisters
(vgl. die 2 und 3) als zusätzliches
Adreßregister. Hierzu
wird der Adreßdecodierer 17 entsprechend geändert. Das
Register ist mit Schreibzugriffen ladbar und stellt bis zu 8 Bits
zur Verfügung,
die zur Erweiterung der Portadresse genutzt werden können. An
diese Adreßleitungen
werden entsprechend ausgelegte Portadreßdecoder 28 angeschlossen
(vgl. 15). 20 shows the use of the previously unused function feature register (see 2 and 3 ) as an additional address register. For this purpose, the address decoder 17 changed accordingly. The register is loadable with write accesses and provides up to 8 bits, which can be used to extend the port address. To these address lines are designed accordingly Portadreßdecoder 28 connected (cf. 15 ).
In 21 ist
dargestellt, wie ein RAM 36 angeschlossen werden kann,
der eine Speicherkapazität
von beispielsweise 64 kByte aufweist. Die Zugriffsbreite beträgt ein Byte.
Als E-A-Ports sind
(vgl. 19) ein bidirektionaler 8-Bit-Datenport 37 und
ein 16-Bit-Adreßregister 38 vorgesehen.
Das Adreßregister 36 wird über Datenregisterzugriffe
geladen. Ein programmseitiger Speicherzugriff besteht aus dem Laden
der Adresse und dem nachfolgenden Datenzugriff. Um Zugriffe zu aufeinanderfolgenden
Adressen zu beschleunigen, kann das Adreßregister 38 als Zähler ausgebildet
sein. Bei Datenzugriffen (Auswahl über PORT RAM DATA) führt dann
jeder Impuls auf den Leitungen DIOR- oder DIOW- dazu, daß der Inhalt
des Adreßregisters 38 um
Eins erhöht
wird.In 21 is represented as a ram 36 can be connected, which has a storage capacity of, for example, 64 kbytes. The access width is one byte. As EA ports are (see. 19 ) a bidirectional 8-bit data port 37 and a 16-bit address register 38 intended. The address register 36 is loaded via data register accesses. A program-side memory access consists of loading the address and the subsequent data access. To speed up accesses to successive addresses, the address register 38 be designed as a counter. In the case of data accesses (selection via PORT RAM DATA), each pulse on the lines DIOR- or DIOW- then causes the contents of the address register 38 increased by one.
22 zeigt
eine Weiterbildung der Lösung von 21.
Hier sind einige E-A-Ports als Datenports 39, Adreßports 40 und
Steuerports 41 ausgelegt und mit den Steckverbindern (Bus-Slots)
eines E-A-Bussystems 42 verbunden. Die Signalspiele des E-A-Bussystems 42 werden
mit programmseitigen Zugriffen auf die E-A-Ports 39, 40 und 41 nachgebildet
(emuliert). Der typische Zugriffsablauf: Adresse übertragen – Zugriffsart
einstellen – Zugriff
(mit Datentransport) ausführen.
Beim E-A-Bussystem 42 wird es sich typischerweise um eines
der industrieüblichen
Bussysteme handeln, z. B. um den in herkömmlichen PCs üblichen
ISA-Bus oder um den PCI-Bus. Es versteht sich von selbst, daß durch
die Zugriffsemulation nicht die Datenrate „echter" Bussysteme erreicht werden kann. Der
Zweck einer solchen Anordnung besteht jedoch vor allem darin, die Nutzung
spezieller peripherer Steckkarten (der Meß- und Prüftechnik, Prozeßsteuerung
usw.) zu unterstützen,
und zwar in Fällen,
in denen es weniger auf die absolute Datenrate, sondern vor allem
auf geringe Latenzzeiten und auf den problemlosen Zugriff aus der
Anwendungssoftware heraus ankommt (Ansprechen über einfache Porttreiber, keine
Konflikte mit Caches, mit dem virtuellen Speicher des Betriebssystems,
mit Bus-Brücken
usw). 22 shows a further development of the solution of 21 , Here are some IO ports as data ports 39 , Addressports 40 and control ports 41 designed and with the connectors (bus slots) of an I / O bus system 42 connected. The signal games of the I / O bus system 42 are accessed by the program on the I / O ports 39 . 40 and 41 emulated (emulated). The typical access procedure: transfer address - set access type - access (with data transport). With the EA bus system 42 it will typically be one of the industry standard bus systems, z. B. the usual in conventional PCs ISA bus or the PCI bus. It goes without saying that the access emulation can not achieve the data rate of "real" bus systems, but the purpose of such an arrangement is, above all, to support the use of special peripheral plug-in cards (measuring and testing technology, process control, etc.) In cases where it is less about the absolute data rate, but especially on low latencies and easy access from the application software (response via simple port drivers, no conflicts with caches, with the virtual memory of the operating system, with Bus bridges, etc.).
In
typischen Steuerungsanwendungen ist es oft erforderlich, einzelne
Bitpositionen der E-A-Ports programmseitig
auf Null oder auf Eins zu setzen. Während viele Mikrocontroller
entsprechende Befehle haben (z. B. SET BIT, CLEAR BIT), müssen im
PC derartige Funktionen softwareseitig emuliert werden. Die 23 bis 26 veranschaulichen
eine Weiterbildung des Interfaceadapters 7, die es ermöglicht, solche
Einzelbitzugriffe hardwareseitig zu unterstützen. Hierzu wird eine der
standardgemäßen Registeradressen
(vgl. 2) ausgenutzt. Gemäß 23 werden
bei einem Schreibzugriff auf diese Registeradresse die Portadresse,
die gewünschte
Belegung des ausgewählten
Bits (Bitwert) und die Bitadresse im jeweiligen Datenbyte übertragen.
Hierdurch genügt
ein einziger Zugriff, um jedes Bit in jedem der Ports auf Null oder
auf Eins zu setzen. Eine typische Anwendung: die Software steuert
eine Datenübertragung.
Hierzu wurde die Datenportadresse in das Geräte- und Kopfauswahlregister 26 eingetragen.
Solche Datenübertragungsvorgänge erfordern
zumeist noch das Schalten von Steuerleitungen. Das kann mit den
hier beschreibenen Einzelbitzugriffen erledigt werden. Da es nicht
nötig ist,
hierzu eigens das Geräte-
und Kopfauswahlregister 26 umzuladen (Portauswahl), ergibt
sich eine höhere
Geschwindigeit der Datenübertragung.In typical control applications, it is often necessary to set individual bit positions of the I / O ports to zero or to one on the program. While many microcontrollers have corresponding commands (eg SET BIT, CLEAR BIT), such functions must be emulated on the PC in the software. The 23 to 26 illustrate a development of the interface adapter 7 , which makes it possible to support such single bit accesses on the hardware side. For this purpose, one of the standard register addresses (cf. 2 ) exploited. According to 23 In the case of a write access to this register address, the port address, the desired assignment of the selected bit (bit value) and the bit address are transmitted in the respective data byte. As a result, a single access is sufficient to set each bit in each of the ports to zero or to one. A typical application: the software controls a data transfer. For this, the data port address was entered in the device and head selection register 26 entered. Such data transfer processes usually still require the switching of control lines. This can be done with the here described single bit accesses. Since it is not necessary to do this, especially the device and head selection register 26 reload (port selection), results in a higher speed of data transmission.
Im
Beispiel von 24 wird die Adresse des Funktionsmerkmalregisters
(vgl. 2) verwendet, um die Bitzugriffe zu veranlassen.
Hierzu ist einem entsprechenden Adreßdecoder 43 der Auswahleingang
einer Auswahlschaltung (Multiplexer) 44 nachgeschaltet,
die dem Adreßdecodierer 17 vorgeordnet ist.
Die zur Bitadressierung vorgesehenen Datenbusleitungen (DD2...0)
sind an einen Bitadreßdecoder 45 angeschlossen,
dem über
ODER-Gatter 46 Biterlaubnisleitungen 47 nachgeschaltet
sind. Die weitere Schaltungsanordnung der Portadreßdecodierung
ergibt sich aus dem Vergleich mit 15.In the example of 24 the address of the function attribute register (cf. 2 ) used to initiate the bit accesses. For this purpose, a corresponding address decoder 43 the selection input of a selection circuit (multiplexer) 44 downstream of the address decoder 17 is upstream. The data bus lines (DD2... 0) provided for bit addressing are connected to a bit address decoder 45 connected via the OR gate 46 Biterlaubnisleitungen 47 are downstream. The further circuit arrangement of the Portadreßdecodierung results from the comparison with 15 ,
Wird
ein entsprechender Zugriff (mit der Adresse des Funktionsmerkmalregisters)
ausgeführt, so
schaltet der Adreßdecoder 43 (BIT
ACCESS) über den
Multiplexer 44 anstelle der Ausgänge des Geräte- und Kopfauswahlregisters 26 die
Datenbusleitungen DD2...0 auf den Adreßdecodierer 17. Des
weiteren erregt der Bitadreßdecoder 45 über die ODER-Gatter 46 die
betreffende Biterlaubnisleitung 47. Findet kein Bitzugriff
statt (BIT ACCESS inaktiv), so werden über die ODER-Gatter 46 sämtliche
Biterlaubnisleitungen 47 aktiviert, so daß in den
betreffenden Ports alle Bits gleichzeitig geschrieben werden.If a corresponding access (with the address of the function feature register) is executed, then the address decoder switches 43 (BIT ACCESS) via the multiplexer 44 instead of the outputs of the device and head select register 26 the data bus lines DD2 ... 0 to the address decoder 17 , Furthermore, the bit address decoder excites 45 via the OR gates 46 the relevant permit authority 47 , If no bit access takes place (BIT ACCESS inactive), the OR gates are used 46 all permit permission lines 47 activated, so that in the concerned the ports all bits are written simultaneously.
25 zeigt
eine Bitposition eines für
Einzelbitzugriffe abgewandelten universellen E-A-Ports (vgl. 18). Den
Dateneingängen
der Registerflipflops 29, 30 ist ein Bitauswahlmultiplexer 48 vorgeschaltet,
die Takterlaubniseingänge
sind über
Sperrgatter 49 mit den jeweiligen Ausgängen der Portadreßdecoder 28 (vgl. 15)
verbunden. Bei Einzelbitzugriff (BIT ACCESS aktiv) wird die Datenbusleitung
DD3 auf alle Dateneingänge
geschaltet, so daß deren
Belegung (vgl. 23) in das ausgewählte Flipflop übernommen
wird. Die Flipflopauswahl erfolgt über die Sperrgatter 49 durch
konjunktive Verknüpfung
der jeweiligen Biterlaubnisleitung 47 mit dem jeweiligen
Ausgang der Portadreßdecoder 28. Bei
Einzelbitzugriff wird sowohl die Bit- als auch die Portauswahl von
der jeweiligen Datenbusbelegung bestimmt (vgl. 24).
Ansonsten sind über
die ODER-Gatter 46 (vgl. 24) alle
Bitauswahlsignale 47 aktiv, so daß dann das gesamte Register
auf einmal geladen wird. 25 shows a bit position of a modified for single bit access universal I / O ports (see. 18 ). The data inputs of the register flip flops 29 . 30 is a bit-selection multiplexer 48 upstream, the clock signal inputs are via blocking gates 49 with the respective outputs of the Portadreßdecoder 28 (see. 15 ) connected. In the case of single-bit access (BIT ACCESS active), the data bus line DD3 is switched to all data inputs so that their occupancy (cf. 23 ) is taken over into the selected flip-flop. The flip-flop selection is made via the blocking gate 49 by conjunctive linking of the respective permit authorization line 47 with the respective output of the Portadreßdecoder 28 , In the case of single-bit access, both the bit and the port selection are determined by the respective data bus occupancy (cf. 24 ). Otherwise, via the OR gates 46 (see. 24 ) All bit select signals 47 active, so that then the entire register is loaded at once.
Ein
besonderer Vorteil dieser Auslegung besteht darin, daß das Setzen
und Löschen
von Bits nicht auf Abläufe
der Art Lesen – Verändern – Zurückschreiben
(Read – Modify – Write)
zurückgeführt wird (
wie dies z. B. in vielen Mikrocontrollern üblich ist). Somit kann man
Setz- und Löschzugriffe
unbedenklich lückenlos
aufeinanderfolgen lassen (z. B. um ein bestimmtes Impulsmuster zu
erzeugen). Ist es hingegen erforderlich, vor jeder Bitänderung
erst die Anschlußbelegung
zurückzulesen,
so kann es u. a. vorkommen, daß sich – bei schnellen
Zugriffsfolgen – die zuvor
ausgegebene Belegung beim nachfolgenden Lesen noch gar nicht richtig
eingestellt hat (infolge der kapazitiven Belastung der Anschlüsse), daß also falsch
zurückgelesen
wird.One
particular advantage of this interpretation is that the setting
and delete
of bits not on operations
the type of reading - changing - writing back
(Read - Modify - Write)
is returned (
as this z. B. is common in many microcontrollers). Thus one can
Set and delete accesses
harmless completely
follow each other (eg to a certain pulse pattern to
produce). On the other hand, it is necessary before each bit change
only the pin assignment
read back,
so it may u. a. happen that - at fast
Access sequences - the previously
issued occupancy at the subsequent reading not yet correct
has set (due to the capacitive load on the terminals), that is wrong
read back
becomes.
Die
Anordnung von 24 kann gemäß 26 weiterentwickelt
werden, um den für
Einzelbitzugriffe ausgewählten
Port auch lesen zu können.The arrangement of 24 can according to 26 to be able to read the port selected for single-bit access.
Die
Anordnung von 24 ist um ein Portadreßhalteregister 50 erweitert,
das dem Multiplexer 44 vorgeschaltet ist. Es wird dann
geladen, wenn ein Schreibzugriff auf die zur Bitauswahl vorgesehene standardgemäße Registeradresse
(BIT ACCESS) erfolgt. In der Anordnung von 26 muß das Portadreßhalteregister 50 ein
Latch-Register sein, damit bereits während des Schreibvorgangs die
jeweils zu schreibende Bitposition decodiert werden kann. Bei Lesezugriffen
auf die besagte Registeradresse wird der Adreßdecodierer 17 über den
Multiplexer 44 auf die im Portadreßhalteregister 50 gespeicherte
Portadresse umgeschaltet. In solchen Zugriffen wird die gesamte
Portbelegung gelesen. Das Abfragen einzelner Bits ist Sache der
Software. Die Abfrage findet aber ausschließlich im Innern des Prozessors
(im PC) statt und erfordert – bei
den Arbeitsgeschwindigkeiten der heutigen Prozessoren – nur wenig
Zeit. Der Vorteil der Anordnung gemäß 26 besteht
vor allem darin, daß ein
Umladen des Geräte-
und Kopfauswahlregisters 26 nicht erforderlich ist, um
einen Port zu adressieren, der für
Einzelbitoperationen vorgesehen ist.The arrangement of 24 is a portaddress holding register 50 extended that the multiplexer 44 upstream. It is then loaded when a write access is made to the standard bit address selection register address (BIT ACCESS). In the arrangement of 26 must the port address keep register 50 be a latch register, so that already during the writing process each bit position to be written can be decoded. Upon read accesses to said register address, the address decoder becomes 17 over the multiplexer 44 on the in port address records 50 stored port address switched. In such access the entire port occupancy is read. Querying single bits is a matter of software. However, the query takes place exclusively inside the processor (in the PC) and requires - at the working speeds of today's processors - only little time. The advantage of the arrangement according to 26 consists mainly in that a reloading of the device and head selection register 26 is not required to address a port intended for single bit operations.
In
der Anwendungspraxis ist es oft von Vorteil, wenn die Software erkennen
kann, welche Art von Interfaceadapter 7 angeschlossen ist.
Hierzu kann der Interfaceadapter 7 gemäß 27 mit
einem Festwertspeicher 51 ausgerüstet werden, der an einige
der E-A-Ports angeschlossen ist (vgl. 21). Der
Festwertspeicher 51 enthält Identifikationsdaten, die
Typ und Ausstattung des jeweiligen Interfaceadapters 7 kennzeichnen.
Hierbei ist es wichtig, daß die Software
den Festwertspeicher 51 in allen entsprechenden Adaptertypen
auffinden kann.In practice, it is often beneficial if the software can detect what kind of interface adapter 7 connected. This can be done with the interface adapter 7 according to 27 with a read-only memory 51 equipped with some of the I / O ports (cf. 21 ). The read-only memory 51 contains identification data, the type and equipment of the respective interface adapter 7 mark. It is important that the software uses the read-only memory 51 can be found in all corresponding adapter types.
In
einer ersten Ausführung
ist der Festwertspeicher 51 in allen Interfaceadaptern über gleiche Portadressen
zugänglich.
In ganz einfachen Adaptern enthält
der Festwertspeicher 51 nur ein einziges Byte, das eine
Art Typennummer des Interfaceadapters darstellt. Die Anordnung von 27 vereinfacht sich
dann zu einem einfachen Datenport 37, der nur gelesen werden
kann und bei Lesezugriffen den besagten Festwert auf die Datenbusleitungen
DD7...0 schaltet.In a first embodiment is the read-only memory 51 accessible in all interface adapters via the same port addresses. In very simple adapters contains the read-only memory 51 just a single byte representing a kind of type number of the interface adapter. The arrangement of 27 then simplifies to a simple data port 37 which can only be read and switches the said fixed value to the data bus lines DD7... 0 in the case of read accesses.
In
einer weiteren Ausführung
werden feste standardgemäße Registeradressen
verwendet, um auf den Festwertspeicher 51 zuzugreifen.
Hierzu kann beispielsweise die Adresse des standardgemäßen Fehlerregisters
(vgl. 2) genutzt werden.In a further embodiment, fixed standard register addresses are used to access the read only memory 51 access. For this purpose, for example, the address of the standard error register (see. 2 ) be used.
Eine
in 28 dargestellte Abwandlung sieht Zugriffe auf
den Festwertspeicher 51 nur nach dem anfänglichen
Rücksetzen
vor. Beispielsweise schaltet das Hardware-Rücksetzen oder die Sperrleitung 16 ein
Erlaubnisflipflop 52 ein, das den Zugriff zum Festwertspeicher 51 freigibt.
Nach dem Abholen der Identifikationsdaten kann die Software das
Erlaubnisflipflop 52 wieder löschen (um die Portadressen
für die
Normalfunktionen freizubekommen), z. B. indem sie einen Schreibzugriff
auf eine entsprechende Portadresse ausführt.An in 28 shown modification sees accesses to the read-only memory 51 only after the initial reset before. For example, the hardware reset or the blocking line switches 16 a permit flip flop 52 on, which gives access to the read-only memory 51 releases. After retrieving the identification data, the software may issue the permission flip flop 52 delete again (to free the port addresses for the normal functions), z. B. by performing a write access to a corresponding port address.
Wird
der Interfaceadapter 7 gemäß den 29 und 30 ausgebildet
so ist es möglich,
an einem Interfacekabel neben dem Interfaceadapter 7 zwei
Laufwerke – oder
beliebige andere standardkonforme Einrichtungen – 4 und 53 zu
betreiben.Will the interface adapter 7 according to the 29 and 30 trained so it is possible to use an interface cable next to the interface adapter 7 two drives - or any other standards compliant device - 4 and 53 to operate.
In
einer typischen Konfiguration arbeitet Laufwerk 4 als Master.
Interfaceadapter 7 und Laufwerk 53 sind beide
als Slave konfiguriert. Am Interface 3 kann zu einer Zeit
nur mit einer dieser Einrichtungen gearbeitet werden. Deshalb werden
die eigentlichen Steuersignale des Interfaces über den Interfaceadapter 7 zum
Laufwerk 53 geführt.
Wird mit dem Laufwerk 53 gearbeitet, so reicht der Interfaceadapter 7 die
Steuersignale zum Laufwerk 53 durch. Wird mit dem Interfaceadapter 7 gearbeitet,
bleiben die Steuersignale am Interfaceanschluß des Laufwerks 53 inaktiv.
Es sind all jene Steuersignale über den
Interfaceadapter 7 zu führen,
die von beiden Einrichtungen 7, 53 gemeinsam genutzt
werden. Im Beispiel sind dies das Schreib- und das Lesesteuersignal
DIOR und DIOW sowie – in
umgekehrter Richtung – das
Unterbrechungsanforderungssignal INTRQ. (Daß der Interfaceadapter 7 Unterbrechungsanforderungen
stellen kann, ist hier nicht näher
beschrieben. Die Unterbrechungsauslösung durch verschiedene Arten
peripherer Einrichtungen gehört aber
seit langem zum Stand der Technik.)In a typical configuration, drive works 4 as master. interface adapter 7 and drive 53 Both are configured as slaves. At the interface 3 can only work with one of these facilities at a time. Therefore, the actual control signals of the interface via the In terfaceadapter 7 to the drive 53 guided. Will with the drive 53 worked, so the interface adapter 7 the control signals to the drive 53 by. Used with the interface adapter 7 worked, the control signals remain at the interface of the drive 53 inactive. It's all those control signals via the interface adapter 7 to lead by both bodies 7 . 53 be shared. In the example, these are the write and the read control signal DIOR and DIOW and - in the reverse direction - the interrupt request signal INTRQ. (That the interface adapter 7 Interrupt requests is not described here. However, interruption initiation by various types of peripheral devices has long been a prior art.)
Ein
entsprechend ausgelegter Adapter enthält gemäß 30 die
bereits beschriebene Signaturerkennungsschaltung 19 mit
angeschlossener Sperrleitung 16. Die Steuersignale DIOW
DRV und DIOR DRV und das Unterbrechungsanforderungssignal INTRQ
DRV des Laufwerks 53 sind über Sperrgatter 54 bzw.
eine Auswahlschaltung (Multiplexer) 55 mit den entsprechenden
Leitungen des Interfaces 3 verbunden. Sperrgatter 54 und
Multiplexer 55 sind an die Sperrleitung 16 angeschlossen.
Bei aktiver Sperrleitung 16 werden die Signale des Laufwerks 53 zu
den Interfaceleitungen 3 durchgeschaltet. Das Laufwerk 53 ist
aktiv, der Interfaceadapter 7 ist inaktiv. Um den Interfaceadapter 7 zu
aktivieren, muß – mit Schreibzugriffen – eine entsprechende
Signatur übertragen
werden. Dann wird Sperrleitung 16 inaktiv. Somit bleiben
auch die Steuersignale am Interfaceanschluß des Laufwerks 53 inaktiv.
Jetzt kann die Software mit dem Interfaceadapter 7 arbeiten. Um
den Interfaceadapter 7 wieder zu deaktivieren (und damit
das Laufwerk 53 wieder zu aktivieren), ist ein spezieller
E-A-Zugriff auszuführen,
der – ähnlich dem
Hardware-Rücksetzen – ein Rücksetzen
der Signaturerkennungsschaltung 19 bewirkt. Hierzu ist dem
Rücksetzeingang
der Signaturerkennungsschaltung 19 eine disjunktive Verknüpfung des
Hardware-Rücksetzsignals
mit dem Ausgang eines Deaktivierungsdecoders 56 vorgeschaltet.
Im Beispiel ist der Deaktivierungsdecoder 56 so ausgebildet,
daß er aktiv
wird, wenn ein Schreibzugriff auf die Adresse des Geräte- und
Kopfauswahlregisters 26 erfolgt. Die Beschaltung der entsprechenden
Auswahlleitung 27 (DH ACCESS) ergibt sich aus 14.A suitably designed adapter contains according to 30 the already described signature recognition circuit 19 with connected blocking line 16 , The control signals DIOW DRV and DIOR DRV and the interrupt request signal INTRQ DRV of the drive 53 are over barrier gates 54 or a selection circuit (multiplexer) 55 with the corresponding lines of the interface 3 connected. lock gate 54 and multiplexers 55 are to the blocking line 16 connected. With active blocking line 16 be the signals of the drive 53 to the interface lines 3 connected through. The drive 53 is active, the interface adapter 7 is inactive. To the interface adapter 7 to activate, a corresponding signature must be transferred - with write accesses. Then becomes blocking line 16 inactive. Thus, the control signals remain at the interface of the drive 53 inactive. Now the software can work with the interface adapter 7 work. To the interface adapter 7 disable it again (and thus the drive 53 re-enable), perform a special IO access which, similar to the hardware reset, resets the signature detection circuit 19 causes. For this purpose, the reset input of the signature recognition circuit 19 a disjunctive link of the hardware reset signal to the output of a disable decoder 56 upstream. In the example, the deactivation decoder is 56 is designed to become active when a write access to the address of the device and head select register 26 he follows. The wiring of the corresponding selection line 27 (DH ACCESS) results 14 ,
Die
Anordnung gemäß 30 wirkt
so, daß nach
dem Rücksetzen
zunächst
das Laufwerk 53 aktiv ist und somit von der Konfigurationssoftware
berücksichtigt
werden kann.The arrangement according to 30 acts so that after resetting the drive first 53 is active and thus can be taken into account by the configuration software.
In
der Weiterbildung gemäß 31 können zusammen
mit dem Interfaceadapter 7 mehrere Laufwerke oder andere
Einrichtungen an ein Interface angeschlossen werden. Hierzu sind
je Laufwerk zwei Sperrgatter 54 vorgesehen, die einem Laufwerksadreßdecoder 57 nachgeschaltet
sind. Die Unterbrechungsanforderungsleitungen sind an eine Auswahlschaltung
(Multiplexer) 58 angeschlossen, die der Auswahlschaltung 55 vorgeordnet
ist. Die Adreßeingänge des
Laufwerksadreßdecoders 57 und
der Auswahlschaltung 58 sind an ein Geräteadreßregister 59 angeschlossen,
das entweder als standardgemäßes oder
als Portregister ausgeführt sein
kann.In the training according 31 can work together with the interface adapter 7 multiple drives or other devices connected to an interface. For this purpose, each drive two locking gates 54 provided that a drive address decoder 57 are downstream. The interrupt request lines are connected to a selection circuit (multiplexer) 58 connected to the selection circuit 55 is upstream. The address inputs of the drive address decoder 57 and the selection circuit 58 are to a device address register 59 connected, which can be designed either as a standard or as a port register.
Zu
einer Zeit kann man nur mit einem Laufwerk arbeiten. Zur Laufwerksauswahl
muß der
Interfaceadapter ausfgewählt
werden (ggf. mittels Signaturausgabe), um das Geräteauswahl register 59 laden
zu können.
Typische Anwendungen betreffen u. a. den Anschluß von sog. Flash-Laufwerken
sowie eines optischen Laufwerks (CD/DVD), wobei letzteres vor allem
dazu dient, neue Software, Änderungen
u. dergl. zu installieren. Einem so ausgebildeten Interfaceadapter
können
aber nicht nur Laufwerke, sondern auch weitere erfindungsgemäße Interfaceadapter
nachgeschaltet werden.At one time you can only work with one drive. To select a drive, the interface adapter must be selected (if necessary by means of a signature output) to register the device selection 59 to be able to load. Typical applications include the connection of so-called. Flash drives and an optical drive (CD / DVD), the latter is mainly used to new software, changes u. to install. Like. However, not only drives, but also further interface adapters according to the invention can be connected downstream of such an interface adapter.
Manchmal
ist es zweckmäßig, an
ein Interface keine Laufwerke, aber mehr als einen Interfaceadapter 7 anzuschließen. Das
ermöglicht
es, PCs mit handelsüblichen
und kostengünstigen ATA-Controller-Steckkarten
nahezu unbegrenzt zu erweitern. 32 zeigt
eine Weiterbildung der Anordnung von 15, die
es ermöglicht,
den Interfaceadapter wahlweise als Master oder als Slave zu konfigurieren.
Hierbei ist dem Erlaubniseingang des Adreßdecodierers 17 eine
Antivalenzverknüpfung
mit einem Konfigurationseingang (MASTER/SLAVE SELECT) vorgeordnet.
Der Konfigurationseingang wird mit einem Festwert beschaltet. Die
Wirkungsweise:
- 1. Festwert = 0: Interfaceadapter
ist Slave.
- 2. Festwert = 1: Interfaceadapter ist Master.
Sometimes it is convenient to have an interface with no drives, but more than one interface adapter 7 to join. This allows almost unlimited expansion of PCs with commercially available and cost-effective ATA controller cards. 32 shows a development of the arrangement of 15 , which makes it possible to configure the interface adapter either as a master or as a slave. Here is the permission input of the address decoder 17 precedes an antivalence association with a configuration input (MASTER / SLAVE SELECT). The configuration input is wired with a fixed value. The mode of action: - 1. Fixed value = 0: Interface adapter is slave.
- 2. Fixed value = 1: Interface adapter is master.
Zur
Konfigurationssteuerung gemäß 32 kann
auch das standardgemäße Auswahlsignal
CABLE SELECT verwendet werden. Wie in 32 angedeutet,
ist es an die besagte Antivalenzverknüpfung invertiert anzuschließen.For configuration control according to 32 The standard selection signal CABLE SELECT can also be used. As in 32 indicated, it is to connect inverted to said antivalence link.
33 zeigt,
wie durch Weiterbildung der Anordnung von 20 mehrere
Interfaceadapter an einem Interface adressiert werden können. Nur
ein Teil der höherwertigen
Adreßbits
dient zur E-A-Adressierung im Interfaceadapter. Der verbleibende
Teil wird durch einen Vergleicher 60 mit einer festen Adapteradresse 61 verglichen.
Der Ausgang des Vergleichers 60 ist dem Erlaubniseingang
des Adreßdecodierers 17 vorgeschaltet.
Der Interfaceadapter ist ausgewählt,
wenn die in das Adreßregister geladene
Adresse der festen Adapteradresse 61 entspricht (das Auswählen von
Einrichtungen durch Adreßvergleich
ist an sich bekannt und muß nicht ausführlich beschrieben
werden). 33 shows how by continuing the arrangement of 20 several interface adapters can be addressed on one interface. Only part of the higher-order address bits are used for IO addressing in the interface adapter. The remaining part is controlled by a comparator 60 with a fixed adapter address 61 compared. The output of the comparator 60 is the permission input of the address decoder 17 upstream. The interface adapter is selected when the address of the fixed adapter address loaded into the address register 61 corresponds (selecting devices by address comparison is known per se and need not be described in detail).
Die 34 und 35 zeigen,
wie die in neueren Versionen der ATA/ATAPI-Standards vorgesehene
Erweiterung der Zugriffsparameter (48-Bit-Adressierung) ausgenutzt
werden kann, um die Breite der einzelnen Ports zu erhöhen bzw.
um zusätzliche
Ports zu adressieren.The 34 and 35 show how the extension of access parameters (48-bit addressing) provided in newer versions of the ATA / ATAPI standards can be exploited to increase the width of the individual ports or to address additional ports.
34 veranschaulicht
die Wirkungsweise der im Standard beschriebenen Erweiterung. Mehrere
Register sind als Schieberegister-Puffer (FIFOs) von zwei Bytes
Tiefe ausgeführt,
um längere
Parameterangaben aufnehmen zu können.
Der erste Schreibzugriff lädt
jeweils das höherwertige,
der zweite das niederwertige Byte. Beim Lesen wird eines der beiden
Bytes über
das HOB-Bit im Gerätesteuerregister
(vgl. 3) ausgewählt. 34 illustrates the operation of the extension described in the standard. Multiple registers are implemented as two-byte depth shift register buffers (FIFOs) to accommodate longer parameter specifications. The first write access loads the higher-order byte, the second one the lower-order byte. When reading, one of the two bytes is read via the HOB bit in the device control register (cf. 3 ).
Zum
Schreiben in Register von E-A-Ports ist das Prinzip von 34 nicht
direkt anwendbar, da hierbei die Register nacheinander mit zwei
verschiedenen Werten geladen werden. In einer Weiterbildung gemäß den 35 bis 37 wird
deshalb den Registern der E-A-Ports ein FIFO-Puffer 62 (typischerweise
ein Schieberegister) vorgeschaltet. Jeder Schreibzugriff auf eine
entsprechend zugeordnete standardgemäße Registeradresse betrifft
den FIFO-Puffer 62. Ein Schreiben ins Geräte- und
Kopfauswahlregister 26 veranlaßt die Übernahme des FIFO-Inhalts in
das über
die Portadreßdecoder 28 ausgewählte E-A-Register.
Die Tiefe des FIFOs kann größer sein
als im ATA/ATAPI-Standard festgelegt. Für jede der zum Adressieren
von E-A-Ports vorgesehenen standardgemäßen Registeradressen kann ein
FIFO-Puffer 62 angeordnet sein.For writing in registers of I / O ports is the principle of 34 not directly applicable, since the registers are loaded successively with two different values. In a development according to the 35 to 37 Therefore, the registers of the I / O ports become a FIFO buffer 62 (typically a shift register) upstream. Each write access to a correspondingly assigned standard register address relates to the FIFO buffer 62 , Write to the device and head selector register 26 causes the acquisition of the FIFO content into the via the Portadreßdecoder 28 selected I / O registers. The depth of the FIFO may be greater than specified in the ATA / ATAPI standard. For each of the standard register addresses provided for addressing I / O ports, a FIFO buffer may be provided 62 be arranged.
Das
Schreiberlaubnissignal FIFO in 35 kann
ein beliebiges Adreßauswahlsignal
sein, das von einem der Decoder 17 oder 28 (vgl.
die 14 und 15) abgegeben
wird. Hierbei sind verschiedene Ausgestaltungen möglich, z.
B.:
- 1. eine einzige der standardgemäßen Registeradressen
wählt den
FIFO-Puffer 62 aus (Zugriffe auf andere Adressen werden
so ausgeführt,
wie bisher beschrieben),
- 2. mehrere der standardgemäßen Registeradressen
wählen
jeweils einen FIFO-Puffer 62 aus.
The writer permission signal FIFO in 35 may be any address select signal from one of the decoders 17 or 28 (see the 14 and 15 ) is delivered. Here, various embodiments are possible, for. B .: - 1. One of the standard register addresses selects the FIFO buffer 62 off (accesses to other addresses are carried out as described so far),
- 2. Several of the standard register addresses each select a FIFO buffer 62 out.
Nach
dem Laden des FIFO-Puffers 62 erfolgt die Übernahme
in die jeweils ausgewählten
Register.After loading the FIFO buffer 62 the transfer takes place into the respective selected register.
Die 36 und 37 zeigen
ein Beispiel für
die Bildung der Erlaubnissignale P_REG 1, P_REG 2 usw. Die Übernahme
erfolgt durch einen Schreibzugriff auf das standardgemäße Geräte- und Kopfauswahlregister 26,
wobei im zugehörigen
Datenbyte die betreffende Registeradresse und ggf. ein Erlaubnissignal
(Parallele Write Enable) mitgeliefert wird (36). Die
Erlaubnissignale P_REG 1, P_REG 2 usw. werden gemäß 37 von
einem besonderen Decoder 63 gebildet, der den Datenbusleitungen
unmittelbar nachgeschaltet ist, so daß sie an den Registern (vgl. 35)
anliegen, ehe die Low-High-Flanke des Schreibimpulses (DIOW-) wirksam
wird.The 36 and 37 show an example of the formation of the permission signals P_REG 1, P_REG 2, etc. The acquisition takes place by a write access to the standard device and head selection register 26 , wherein in the associated data byte, the relevant register address and possibly a permission signal (Parallel Write Enable) is supplied ( 36 ). The permission signals P_REG 1, P_REG 2, and so forth are set according to 37 from a special decoder 63 formed immediately downstream of the data bus lines, so that they at the registers (see. 35 ) are present before the low-high edge of the write pulse (DIOW-) takes effect.
Diese
Auslegung ermöglicht
es, in einem Interfaceadapter sowohl Register mit herkömmlichem Zugriff
(8 Bits) als auch solche mit parallelem Zugriff (16 Bits und mehr)
vorzusehen.These
Design allows
it, in an interface adapter both registers with conventional access
(8 bits) as well as those with parallel access (16 bits and more)
provided.
Soll
beim Schreiben von Bytes gemäß 36 die
bisherige Belegung des Geräte-
und Kopfauswahlregisters 26 erhalten bleiben, so ist der Adreßdecoder 26 (vgl. 15)
mit dem invertierten Ausgang des Decoders 63 zu beschalten.When writing bytes according to 36 the previous assignment of the device and head selection register 26 Preserve, so is the address decoder 26 (see. 15 ) with the inverted output of the decoder 63 to connect.
Die 38 und 39 veranschaulichen eine
alternative Weiterbildung, die ohne FIFO-Puffer auskommt. Die E-A-Register
werden, wie anhand von 15 beschrieben, über Portadreßdecoder 28 adressiert.
Die im standardgemäßen Geräte-und Kopfauswahlregister 26 gehaltene
Portadresse wird aber durch einen Adreßzähler 64 verlängert, wobei der
Adreßzähler 64 die
niederwertigen und das Geräte-und
Kopfauswahlregister 26 die höherwertigen Bits der Portadresse
liefert (39).The 38 and 39 illustrate an alternative development that does not require FIFO buffer. The EA registers become, as indicated by 15 described via port address decoder 28 addressed. The in the standard device and head selection registers 26 held port address is but by an address counter 64 extended, with the address counter 64 the low and the device and head select registers 26 provides the higher-order bits of the port address ( 39 ).
Im
Beispiel von 38 trägt der Adreßzähler 64 drei Bits
zur Portadresse bei. Er wird bei jedem Schreibzugriff auf das Geräte-und Kopfauswahlregister 26 gelöscht (DH
ACCESS und DIOW). Bei allen anderen Zugriffen wirkt das jeweilige
Steuersignal (DIOR, DIOW) als Zähltakt
(Erhöhung
um Eins). Im Geräte-
und Kopfauswahlregister 26 kann eine bisher ungenutzten
Bitposition dazu verwendet werden, das Zählen des Adreßzählers 64 zu
erlauben oder zu verhindern (Extended Access).In the example of 38 carries the address counter 64 three bits to the port address. It will be on every write access to the device and head select register 26 deleted (DH ACCESS and DIOW). For all other accesses, the respective control signal (DIOR, DIOW) acts as a counting clock (increase by one). In the device and head selection register 26 a previously unused bit position can be used to count the address counter 64 to allow or prevent (Extended Access).
In
beiden Auslegungen (vgl. die 35 und 38)
werden zu lesende Register an Auswahlschaltungen angeschlossen,
z. B. an Multiplexer. In der Ausführung gemäß 35 kann
ein standardgemäßes Register
oder ein E-A-Register eigens zum Halten der Auswahladresse vorgesehen
werden. Handelt es sich nur um eine 1-aus-2-Auswahl, kann das HOB-Bit
im Gerätesteuerregister
im standardgemäßen Sinne
verwendet werden (vgl. 34). Sind mehrere E-A-Register
auszuwählen,
können
beispielweise weitere (an sich ungenutzte) Bitpositionen im Gerätesteuerregister
verwendet werden, um die Auswahladresse zu halten. In der Ausführung gemäß 38 sind
die Auswahleingänge
der Multiplexer dem Adreßzähler 64 nachgeschaltet.In both interpretations (see 35 and 38 ) registers to be read are connected to selection circuits, e.g. B. to multiplexer. In the execution according to 35 For example, a standard register or an I / O register may be dedicated to holding the selection address. If it is only a 1-out-of-2 selection, the HOB bit can be used in the device control register in the standard sense (cf. 34 ). If several I / O registers are to be selected, for example, further (in themselves unused) bit positions can be used in the device control register to hold the selection address. In the execution according to 38 the selection inputs of the multiplexers are the address counter 64 downstream.
Die 40 bis 59 veranschaulichen weitergebildete
Interfaceadapter, die nicht durch direkte wahfreie Zugriffe, sondern über standardgemäße Kommandoprotokolle
angesprochen werden. Diese Auslegung ermöglicht es, standardisierte
Betriebsweisen auszunutzen, die über
die einfache programmierte Ein- und Ausgabe (PIO-Betrieb) hinausgehen
(Busmaster- und
automatischer DMA-Betrieb (ADMA)). Des weiteren wird es möglich, erfindungsgemäße Interfaceadapter über eine
standardisierte bitserielle Hochgeschwindigkeitsschnittstelle anzuschließen, die
als Serial ATA (SATA) bekannt ist (High Speed Serial ATA Attachment
bzw. AT Attachment-8 Serial Transport (ATA8-ST)).The 40 to 59 illustrate advanced interface adapters, which are not addressed by direct dial-up access, but via standard command protocols. This design makes it possible to exploit standardized operations that exceed the simple pro programmed input and output (PIO operation) (bus master and automatic DMA mode (ADMA)). Furthermore, it becomes possible to connect interface adapters according to the invention via a standardized high-speed bit-serial interface known as Serial ATA (SATA) (High Speed Serial ATA Attachment or AT Attachment-8 Serial Transport (ATA8-ST)).
Gemäß 40 verwindet
diese Schnittstelle zwei standardgemäße Registersätze miteinander. Die
eine befindet sich im steuernden Rechner (Host), der andere im Gerät. Die Software
kann nur auf den Registersatz im Host zugreifen (Schattenregister).According to 40 This interface twists two standard register sets with each other. One is in the controlling computer (host), the other is in the device. The software can only access the register set in the host (shadow register).
Ein
Datenaustausch zwischen beiden Registersätzen findet nicht bei jedem
Zugriff statt, sondern nur im Rahmen von standardgemäßen Protokollen der
Kommandoausführung.
Veranlaßt
der Host die Ausführung
eines Kommandos durch Eintragen des Kommandocodes ins standardgemäße Kommandoregister,
so wird der komplette Inhalt des Registersatzes zum Gerät übertragen.
Hat das Gerät
die Kommandoausführung
beendet, so wird der – nunmehr aktualisierte – Inhalt
des Registersatzes zum Host übertragen.
Die Datenübertragung
ist in Form sog. Frame Information Structures (FIS) organisiert.
Die 41 und 42 zeigen
den Aufbau von FIS-Datenblöcken
für Registertransporte
(41 vom Host zum Gerät, 42 vom
Gerät zum
Host). Die Informationsübertragung
umschließt
alle standardmäßig vorgesehenen
Register einschließlich
der Erweiterungen gemäß 34 (in
den 41 und 42 mit „erw." bezeichnet).A data exchange between both register sets does not take place with every access, but only within the framework of standard protocols of the command execution. If the host causes the execution of a command by entering the command code in the standard command register, the entire content of the register file is transferred to the device. If the device has finished the command execution, then the - now updated - content of the register set is transmitted to the host. The data transmission is organized in the form of so-called Frame Information Structures (FIS). The 41 and 42 show the structure of FIS data blocks for register transports ( 41 from the host to the device, 42 from the device to the host). The information transfer encloses all standard provided registers including the extensions according to 34 (in the 41 and 42 marked "erw.").
Zur
wahlfreien Datenübertragung
kommen nur die Register LBA niedrig, LBA mittel, LBA hoch und Sektoranzahl
nebst ihren Erweiterungen (erw.) in Frage. Das sind vier Registerpositionen
oder acht Bytes. Alle anderen Register dürfen nur in standardgemäßer Weise
genutzt werden.to
optional data transmission
only the registers LBA low, LBA medium, LBA high and sector number come up
in addition to their extensions (ext.) in question. These are four register positions
or eight bytes. All other registers may only be used in a standard way
be used.
Die
folgenden Erläuterungen
beziehen sich darauf, daß auf
der Geräteseite
eine standardgemäße parallele
ATA-Schnittstelle vorhanden ist (entsprechende Interfacewandler
sind handelsüblich).The
following explanations
refer to that on
the device side
a standard parallel
ATA interface is present (corresponding interface converter
are commercially available).
Ein
erfindungsgemäßer Interfaceadapter
mit SATA-Anschluß kann
also nach wie vor eine herkömmliche
Schnittstelle haben. Er ist somit für beide Interfacearten geeignet.One
inventive interface adapter
with SATA connection can
So still a conventional
Have interface. It is thus suitable for both types of interface.
43 zeigt,
wie eine der besagten vier Registerpositionen für universelle E-A-Zwecke ausgenutzt
werden kann. 43 shows how one of said four register positions can be exploited for universal EA purposes.
Über eine
Registerposition sind 16 Ausgänge und 16 Eingänge zugänglich.
Schreibzugriffe betreffen zunächst
einen FIFO-Puffer 62, dem zwei Ausgaberegister 64, 65 nachgeordnet
sind. Die Eingabe erfolgt über
eine Auswahlschaltung 66 mit nachgeordneter Buskoppelstufe.About a register position are 16 Outputs and 16 Entrances accessible. Write accesses initially concern a FIFO buffer 62 , the two output registers 64 . 65 are subordinate. The input is made via a selection circuit 66 with downstream bus coupling stage.
Nach
der Übertragung
der Registerinhalte in einer FIS-Struktur gemäß 41 werden
die Register nacheinander gefüllt.
REGn WR symbolisiert die Schreibsteuerung für die Registeradresse n, die
z. B. mit einem Erlaubnissignal REG n vom Adreßdecodierer 17 (vgl. 14)
im Verbund mit dem Schreibsignal DIOW des parallelen Interfaces
realisiert ist (DIOW am Takteingang, REG n am Takterlaubniseingang;
vgl. 35). Die Registerinhalte gelangen so in die FIFO-Puffer 62.
Zum Schluß wird
das Kommandoregister geladen. Hierdurch wird die Kommandoausführung gestartet.
Diese besteht hier darin, die übertragenen
Datenbytes aus den FIFO-Puffern 62 in die Ausgaberegister 64, 65 zu übernehmen
(Schreibimpuls CMD WR).After the transfer of the register contents in a FIS structure according to 41 the registers are filled one after the other. REGn WR symbolizes the write control for the register address n, the z. B. with a permission signal REG n from the address decoder 17 (see. 14 ) is realized in conjunction with the write signal DIOW of the parallel interface (DIOW at the clock input, REG n at Takterlaubniseingang; 35 ). The register contents are thus transferred to the FIFO buffers 62 , Finally, the command register is loaded. This starts the command execution. This consists here of the transmitted data bytes from the FIFO buffers 62 in the output registers 64 . 65 to take over (write pulse CMD WR).
Ist
die Kommandoausführung
beendet, werden die neuen geräteseitigen
Registerinhalte zum Host übertragen.
Hierzu wird Register für
Register gelesen, um eine FIS-Struktur gemäß 42 zusammenzustellen.
Das Lesen der erweiterten Register erfordert zwei Zugriffe. Zur
Byteauswahl dient das HOB-Bit im Gerätesteuerregister. Im Beispiel
von 43 werden die beiden Bytes über die vom HOB-Bit adressierte
Auswahlschaltung 66 nacheinander auf einen bidirektionalen
Datenbus (DD7...0) aufgeschaltet (Registerauswahlsignal REGn RD).When the command execution is finished, the new device-side register contents are transferred to the host. To do this, register by register is read to obtain a FIS structure according to 42 together. Reading the extended registers requires two accesses. The HOB bit in the device control register is used for byte selection. In the example of 43 the two bytes are sent via the selector circuit addressed by the HOB bit 66 successively switched to a bidirectional data bus (DD7 ... 0) (register selection signal REGn RD).
44 gibt
einen Überblick über alle
vier Registerpositionen. Hiermit können insgesamt 64 Ausgänge und 64 Eingänge unterstützt werden. 44 gives an overview of all four register positions. This can total 64 Outputs and 64 Inputs are supported.
In
einer Weiterbildung werden – ähnlich wie bereits
weiter oben beschrieben – die
Kopfauswahl- bzw. LBA-Bits des Geräte- und Kopfauswahlregisters 26 genutzt,
um mehrere Anordnungen gemäß 44 zu
betreiben. Da das betreffende Feld im Geräte- und Kopfauswahlregister 26 vier
Bits umfaßt, können maximal
16 derartige Blöcke
vorgesehen werden (also insgesamt 1024 Eingänge und 1024 Ausgänge). Dabei
ist zu einer Zeit jeweils ein solcher Block ausgewählt. Deshalb
können
sich bis zu 16 Registerpositionen jeweils einen FIFO-Puffer 62 teilen (45).
Im Beispiel umfaßt
der erste (über
das Geräte-
und Kopfauswahlregisters 26 adresierte) Block die Ausgaberegister 64, 65 und
die Auswahlschaltung 66. Der zweite Block besteht aus den
Ausgaberegistern 67, 68 sowie der Auswahlschaltung 69.In a development, similar to the above-described, the Kopfauswahl- or LBA bits of the device and head selection register 26 used several arrangements according to 44 to operate. Because the field in question is in the device and head selector register 26 four bits, a maximum of 16 such blocks can be provided (ie a total of 1024 inputs and 1024 outputs). In each case, such a block is selected at a time. Therefore, up to 16 register positions can each have a FIFO buffer 62 share ( 45 ). In the example, the first (via the Device and Header Selection Register 26 adresierte) block the output registers 64 . 65 and the selection circuit 66 , The second block consists of the output registers 67 . 68 and the selection circuit 69 ,
46 zeigt
den Aufbau einer Bitposition eines universellen E-A-Anschlusses ähnlich 18. 46 shows the structure of a bit position of a universal I / O port similar 18 ,
Im
Beispiel sind Richtungsregister 29 und Datenregister 30 je
einem Registerblock zugeordnet. Über
das Geräte-
und Kopfauswahlregister 26 können somit zum einen alle Richtungsregister 26 und zum
anderen alle Datenregister 30 ausgewählt werden (Richtungsregisterauswahl über PORT_SEL
0, Datenregisterauswahl über
PORT_SEL 1). Die Portauswahlsignale PORT_SEL 0 und PORT_SEL 1 stammen
von einem der Portadreßdecoder 28.In the example are directional registers 29 and data registers 30 each assigned to a register block. Via the device and head selection register 26 can thus on the one hand all direction registers 26 and on the other hand all data registers 30 selected who the (direction register selection via PORT_SEL 0, data register selection via PORT_SEL 1). Port selection signals PORT_SEL 0 and PORT_SEL 1 are from one of the port address decoders 28 ,
47 und 48 veranschaulichen
das Geräte-
und Kopfauswahlregister 26 mit nachgeschalteten Portadreßdecodern 28 sowie
die Bildung der Zugriffssteuersignale der Kom mandoauslösung und
des Zustandslesens. Die Anordnung entspricht weitgehend den 14 und 15. 47 zeigt
einen der Portadreßdecoder 28, 48 alle
vier. Sie sind dem Adreßdecodierer 17 (vgl. 14)
nachgeschaltet. 47 and 48 illustrate the device and head selection registers 26 with downstream port address decoders 28 as well as the formation of the access control signals of Kom mandoauslösung and state read. The arrangement largely corresponds to the 14 and 15 , 47 shows one of the port address decoder 28 . 48 all four. They are the address decoder 17 (see. 14 ) downstream.
CMD
WR ist ein allgemeiner Schreibimpuls, der beim Schreibzugriff (DIOW
auf die Adresse des Kommandoregisters gebildet wird. Nutzung: u.
a. zum Übernehmen
der Daten von den FIFO-Puffern 62 in die Ausgaberegister 64, 65 usw.CMD WR is a general write pulse which is formed during write access (DIOW to the address of the command register) Usage: among other things, for transferring the data from the FIFO buffers 62 in the output registers 64 . 65 etc.
STATUS
RD ist ein Lesesignal, das beim Lesezugriff (DIOR) auf die Adresse
des Kommandoregisters (beim Lesen = Zustandsregister) gebildet wird.
Nutzung: zum Lesen des Zustandsregisters (49).STATUS RD is a read signal which is formed during read access (DIOR) to the address of the command register (when reading = status register). Usage: to read the status register ( 49 ).
CMD
RD ist ein allgemeines Lesesignal, das beim Lesezugriff (DIOR) auf
die anderen Register des Kommandoregisterblocks (vgl. 2)
gebildet wird. Nutzung: u. a. zum Aufschalten der Ausgangsbelegungen
auf die Datenbusleitungen (50).CMD RD is a general read signal that is applied to the other registers of the command register block during read access (DIOR) (cf. 2 ) is formed. Usage: among other things for connecting the output assignments to the data bus lines ( 50 ).
49 veranschaulicht
jeweils eine Bitposition der Auswahlschaltungen 66 und 69 (vgl. 45). Je
nachdem, welches der Portauswahlsignale PORT_SEL 0, PORT_SEL 1 der
betreffende Adreßdecoder 28 aktiviert
hat, wird bei aktivem Lesesignal CMD RD entweder die Auswahlschaltung 66 oder
die Auswahlschaltung 69 auf den Datenbus geschaltet. 49 each illustrates a bit position of the selection circuits 66 and 69 (see. 45 ). Depending on which of the port selection signals PORT_SEL 0, PORT_SEL 1 the relevant address decoder 28 has activated, when the read signal CMD RD is active, either the selection circuit 66 or the selection circuit 69 switched to the data bus.
Die 50 und 51 zeigen
die Belegung des Zustands- und des Gerätesteuerregisters. Es sind
zunächst
alle standardgemäßen Bitpositionen dagestellt.
Dann folgen die Bitbelegungen, die typischerweise vom Interfaceadapter
geliefert werden. Aufgrund der – im
Vergleich zu Laufwerken – sehr vereinfachten
Arbeitsweise sind nicht alle Bits von Bedeutung. Es werden deshalb
auch nur diese Bitpositionen kurz beschrieben: BSY (Busy) kennzeichnet den
Besetztzustand (Kommando in Arbeit). DF (Device Fault) kennzeichnet
einen Gerätefehler.
Interfaceadapter mit eingebauter Fehlererkennung (Zeitkontrolle,
Paritätsprüfung an
Eingängen
o. dergl.) können
diese Bitposition aktivieren. HOB (High Order Byte) dient zur Byteauswahl
beim Lesen (vgl. 34).The 50 and 51 show the occupancy of the state and device control registers. All the standard bit positions are initially set. Then follow the bit assignments that are typically supplied by the interface adapter. Due to the very simplified operation compared to drives, not all bits are important. Therefore, only these bit positions are briefly described: BSY (Busy) indicates the busy state (command in progress). DF (Device Fault) indicates a device error. Interface adapters with built-in error detection (time control, parity check on inputs or the like) can activate this bit position. HOB (High Order Byte) is used for byte selection when reading (cf. 34 ).
Höherentwickelte
Interfaceadapter (z. B. mit eingebauten Anwendungsschaltungen) können weiterhin
die Bits DRDY und nIEN unterstützen.
DRDY (Device Ready) kennzeichnet die Betriebsbereitschaft. Adapter
die zum Rücksetzen
viel Zeit brauchen (Millisekunden und mehr), können währenddessen dieses Bit aktivieren.
DRQ (Data Request) ist dann von Bedeutung, wenn der Interfaceadapter
eine „echte" Datenübertragung
(über das
standardgemäße Datenregister)
unterstützt.
nIEN (Interrupt Enable) wird genutzt, wenn der Interfaceadapter
Interrupts auslösen
kann (nIEN = 0: Interruptauslösung
zulässig,
nIEN = 1: Interruptauslösung
verhindert).more sophisticated
Interface adapters (for example, with built-in application circuits) may continue to work
support the bits DRDY and NIEN.
DRDY (Device Ready) indicates the readiness for operation. adapter
the reset
need a lot of time (milliseconds and more), while this bit can be activated.
DRQ (Data Request) is relevant if the interface adapter
a "real" data transfer
(about the
standard data registers)
supported.
NIA (Interrupt Enable) is used when the interface adapter
Trigger interrupts
can (n = 0: Interrupt trigger
permissible
NIEN = 1: Interrupt trip
) Prevented.
Das
Gerätesteuerregister
wird ähnlich
angesteuert wie das Geräte-
und Kopfauswahlregister 26, d. h. gemäß 14, aber
mit anderer Adreßdecodierung
(vgl. 2). In einfachen Interface-adaptern (ohne Datenübertragung)
genügt
es, die Bitposition 7 (HOB) vorzusehen.The device control register is controlled similarly to the device and head selection registers 26 , ie according to 14 but with different address decoding (cf. 2 ). In simple interface adapters (without data transfer), it is sufficient to know the bit position 7 (HOB).
Anhand
der 52 bis 54 sei
zunächst das
Prinzip der Kommandoausführung
kurz beschrieben. Als Voraussetzung zum Ausführen eines Kommandos muß der Interfaceadapter
dazu bereit sein (BSY = 0, DRDY = 1). Zunächst sind die jeweils erforderlichen
Parameter (Auswahlangaben, Funktionsmerkmale usw.) in die entsprechenden
Register zu laden (52). Als letztes Byte wird der
Kommandocode in das Kommandoregister geschrieben. Daraufhin wird
daer Interfaceadapter "besetzt" (BSY = 1), und die
Kommandoausführung
beginnt (53). Ist der Interfaceadapter
bereit, Daten entgegenzunehmen (beim Schreiben) oder Daten zu liefern (beim
Lesen), so setzt er BUSY auf 0 und DRQ auf 1 (Datenanforderung).
Daraufhin erfolgt der Datentransport (54; hier
ist ein Leseablauf dargestellt). Der Datentransport kann durch Abfrage
(Bedingung: BSY = 0, DRQ = 1), durch Interrupt-Signalisierung oder
durch Stellen einer DMA-Anforderung eingeleitet werden. Der eigentliche
Transport besteht dann in fortlaufenden PIO- oder (Ultra-) DMA-Zugriffen.
Das Ende der Kommandoausführung
wird durch BSY = 0 und DRQ = 0 gekennzeichnet. Typischerweise wird ein
Interrupt ausgelöst.
Der Host liest das Zustandsregister, um zu erkennen, wie die Datenübertragung abgelaufen
ist (anhand der Bits ERR und DF). Ist das ERR-Bit gesetzt, so ergibt
das Lesen des Fehlerregisters genaueren Aufschluß über die Art des Fehlers.Based on 52 to 54 Let's first briefly describe the principle of command execution. As a prerequisite for executing a command, the interface adapter must be ready (BSY = 0, DRDY = 1). First of all, the required parameters (selection information, functional characteristics, etc.) must be loaded into the corresponding registers ( 52 ). The last byte of the command code is written to the command register. Then the interface adapter is "busy" (BSY = 1), and the command execution begins ( 53 ). If the interface adapter is ready to accept data (when writing) or to supply data (when reading), it sets BUSY to 0 and DRQ to 1 (data request). Then the data transport ( 54 ; here is a reading process shown). The data transport can be initiated by polling (condition: BSY = 0, DRQ = 1), by interrupt signaling, or by providing a DMA request. The actual transport then consists of consecutive PIO or (Ultra) DMA accesses. The end of the command execution is indicated by BSY = 0 and DRQ = 0. Typically, an interrupt is triggered. The host reads the state register to see how the data transfer has expired (using bits ERR and DF). If the ERR bit is set, reading the error register gives more accurate information about the nature of the error.
55 zeigt
Schaltmittel zur Kommandoausführung
in einem kostengünstigen
Interfaceadapter. Die Kommandoabläufe werden nur ausgenutzt, um
Registerinhalte zu transportieren (Weiterleitung der Registerinhalte
vom Host zu den Ausgängen, Umsetzung
der Eingangsbelegungen in Registerinhalte, die zum Host transportiert
werden). Hierzu werden Kommandocodes verwendet, die nicht mit einer Datenübertragung
verbunden sind (Non-Data Command Protocol). In solchen Fällen reicht
es aus, das BSY-Bit mit dem Schreiben des Kommandocodes (CMD WR)
nur für
kurze Zeit zu aktivieren (einige hundert ns), um dem Host die Annahme
und Ausführung
des Kommandos anzuzeigen. 55 shows switching means for command execution in a low-cost interface adapter. The command sequences are only used to transport register contents (forwarding of the register contents from the host to the outputs, conversion of the input assignments into register contents, which are transported to the host). For this purpose, command codes are used which are not connected to a data transmission (Non-Data Command Protocol). In such cases, it is sufficient to write the BSY bit with the command code (CMD WR) for a short time (a few hundred ns) to indicate to the host the acceptance and execution of the command.
Dem
Kommandoregister 70 ist ein Kommandodecoder 71 nachgeschaltet.
Das Zustandsregister besteht aus dem BSY-Flipflop bzw. einer Zeitstufe 72 und
einer Buskoppelstufe 73, die bei entsprechenden Lesezugriffen
(STATUS RD) die Zustandsbelegung (BSY + Festbelegung gemäß 50)
auf die Datenbusleitungen DD7...0 schaltet. Im einfachsten Fall wirkt
die Zeitstufe 72 wie ein monostabiler Multivibrator. Sie
wird zweckmäßigerweise
so ausgebildet, daß sie
BSY erst dann deaktiviert, wenn an den Eingängen des Interfaceadapters
die Wirkungen der mit dem Kommando übertragenen Eingangsbelegungen anliegen
(Fertigmeldung). 56 zeigt den Aufbau einer entsprechenden
Schaltung.The command register 70 is a command decoder 71 downstream. The status register consists of the BSY flip-flop or a time stage 72 and a bus coupling stage 73 , which, in the case of corresponding read accesses (STATUS RD), determine the status assignment (BSY + fixed assignment according to 50 ) switches to the data bus lines DD7 ... 0. In the simplest case, the time step works 72 like a monostable multivibrator. It is expediently designed such that it deactivates BSY only when the effects of the input assignments transmitted with the command are present at the inputs of the interface adapter (finished message). 56 shows the structure of a corresponding circuit.
Dem
BSY-Flipflop ist ein Zeitzähler 74 nachgeschaltet,
an dessen Ausgänge
ein Vergleicher 75 angeschlosssen ist. Dem Vergleicher 75 ist
weiterhin eine Auswahlschaltung 76 vorgeordnet, die vom Kommandodecoder 71 angesteuert
wird. Ist der Interfaceadapter inaktiv (BSY = 0), so wird der Zeitzähler 74 im
Rücksetzzustand
gehalten. Mit dem Laden des Kommandoregisters 70 wird er
freigegeben (BSY = 1) und beginnt zu zählen. Je nach Kommando wird
einer von mehreren Zeitwerten über
die Auswahlschaltung 76 zum Vergleicher 75 durchgesteuert.
Entspricht der Inhalt des Zeitzählers 74 dem
besagten Zeitwert, wird über
den Vergleicher 75 das BSY-Flipflop zurückgesetzt und damit die Kommandoausführung beendet.The BSY flip-flop is a time counter 74 downstream, at whose outputs a comparator 75 is connected. The comparator 75 is still a selection circuit 76 preceded by the command decoder 71 is controlled. If the interface adapter is inactive (BSY = 0), then the time counter becomes 74 held in the reset state. By loading the command register 70 it is released (BSY = 1) and begins to count. Depending on the command, one of several time values is selected via the selection circuit 76 to the comparator 75 turned on. Corresponds to the content of the time counter 74 the said time value, is over the comparator 75 resets the BSY flip-flop and terminates the command execution.
Die 57 bis 59 veranschaulichen verschiedene
Möglichkeiten,
die Kommandoausführungszeit
zu beeinflussen.The 57 to 59 illustrate various ways to influence the command execution time.
Gemäß 57 ist
der dem Kommandoregister 70 nachgeschaltete Kommandodecoder 71 auf die
Zeitstufe 72 zurückgeführt. Somit
kann jedem Kommando eine bestimmte Ausführungs zeit zugewiesen werden.
Hierzu wird beispielsweise die Auswahlschaltung 76 mit
entsprechenden Festwerten beschaltet.According to 57 is the command register 70 Downstream command decoder 71 on the time step 72 recycled. Thus, each command can be assigned a specific execution time. For this example, the selection circuit 76 wired with appropriate fixed values.
58 veranschaulicht
die programmseitige Einstellbarkeit der Kommandoausführungszeit.
Hierzu ist wengistens eines der Ausgaberegister als Zeithalteregister
ausgebildet und auf die Zeitstufe 72 zurückgeführt (z.
B. an einen der Eingänge
der Auswahlschaltung 76 angeschlossen). 58 illustrates the program-side adjustability of the command execution time. For this purpose, at least one of the output registers is designed as a time keeping register and at the time step 72 returned (eg to one of the inputs of the selection circuit 76 ) Connected.
59 zeigt,
wie die Kommandoausführungszeit
vom Eintreffen bestimmter Eingangsgbelegungen abhängig gemacht
werden kann. BSY bleibt solange aktiv, bis eine bestimmte Eingangsbelegung eintritt
(Wartezustand). Die zu erwartende Belegung kann mit einem kombinatorischen
Netzwerk erkannt werden (feste Decodierung). In manchen Anwendungsfällen ist
lediglich auf eine einzige Signalbelegung zu warten (z. B. auf ein
Strobesignal einer anzusteuernden Schnittstelle). Dann genügt gelegentlich
eine einfache Auswahlschaltung. 59 zeigt eine
flexible Auslegung, in der die Erkennungssschaltung 77 für die zu
erwartende Eingangsbelegung einen Vergleicher enthält, der
einem Ausgaberegister nachgeschaltet ist. Entspricht die Belegung
der Eingänge
dem Inhalt des Ausgaberegisters, so wird das BSY-Flipflop zurückgesetzt. 59 shows how the command execution time can be made dependent on the arrival of certain input assignments. BSY remains active until a certain input assignment occurs (wait state). The expected assignment can be detected with a combinatorial network (fixed decoding). In some applications, it is only necessary to wait for a single signal assignment (for example, for a strobe signal of an interface to be controlled). Then a simple selection circuit is enough. 59 shows a flexible design in which the detection circuit 77 for the expected input assignment contains a comparator, which is connected downstream of an output register. If the assignment of the inputs corresponds to the contents of the output register, the BSY flip-flop is reset.
Das
Warten auf Eingangsbelegungen kann mit einer Kontrolle auf Zeitüberschreitung
(Time Out) kombiniert werden. Bleibt die erwartete Eingangsbelegung
aus, so wird BSY deaktiviert, falls eine bestimmte Zeit abgelaufen
ist. Um diese Betriebsart zu unterstützen, kann beispielweise die
Schaltung von 56 so abgewandelt werden, daß dem Rücksetzeingang
des BSY-Flipflops die Ausgangssignale des Vergleichers 75 und
der Erkennungsschaltung 77 in disjunktiver Verknüpfung vorgeschaltet
werden. Die Erkennungsschaltung 77 beendet das Kommando bei
Eintreffen der entsprechenden Bedingung an den Eingängen, der
Vergleicher 75 bei Ablauf des Zeitintervalls.Waiting for input assignments can be combined with a time out control. If the expected input assignment remains off, BSY is deactivated if a certain time has elapsed. To support this mode, for example, the circuit of 56 be modified so that the reset input of the BSY flip-flop, the output signals of the comparator 75 and the detection circuit 77 be preceded by a disjunctive link. The detection circuit 77 terminates the command when the corresponding condition arrives at the inputs, the comparator 75 at the expiration of the time interval.
Die
Beeinflussung der Kommandoausführungszeit über Zeitvorgaben
oder über
Vorgänge
an den E-A-Schnittstellen ermöglicht
es, standardgemäße Vorkehrungen
im Host auszunutzen, um Steuerabläufe mit geringen Latenz- und
Reaktionszeiten auszuführen.
Es wird beispielsweise möglich,
Steuerabläufe
von der ADMA-Hardware im hostseitigen Interfacecontroller ausführen zu
lassen, ohne daß der
Prozessor eingreifen muß.
Die Software muß hierzu
lediglich die entsprechenden Kommandofolgen (Command Parameter Blocks)
im Arbeitsspeicher bereitstellen. Dann können die Kommandos unabhängig vom
Prozessor ausgeführt
werden (die ADMA-Betriebsart ist in den einschlägigen Texten des Standardisierungsgremiums
ausführlich
beschrieben; vgl. beispielsweise den ATA/ATAPI Host Adapter Standard
T13/510). Auf diese Weise lassen sich auch harte Echtzeitanforderungen
einhalten. Beschränkt
man sich hingegen auf eine reine programmierte Ein- und Ausgabe
mit einzelnen anwendungsseitigen E-A-Zugriffen (Port I/O) unter
Steuerung eines modernen Betriebssystems, so ist dies nicht möglich. Beispiel:
es ist eine Signalbelegung für
die Dauer von 20 μs
zu erzeugen (Impulsmuster). Die naive Programmierung: erste OUT-Funktion
(Impulsausgabe) – Warten – zweite
OUT-Funktion (Ausgabe der ursprünglichen
bzw. nächsten
Belegung). In der Zeit zwischen beiden OUT-Funktionen kann aber
das System eingreifen und z. B. einem anderen Anwendungsprogramm
Rechenzeit zuteilen (Time Slicing). Es kann dann sein, daß ein so
erzeugter Impuls 10...20 ms und länger dauert.The
Influencing Command Execution Time Over Time
or over
operations
at the E-A interfaces
it, standard precautions
exploit in the host to control latency and low-latency
Execute reaction times.
It becomes possible, for example,
control procedures
from the ADMA hardware in the host interface controller
leave without the
Processor must intervene.
The software has to do this
only the corresponding command sequences (Command Parameter Blocks)
deploy in memory. Then the commands can be independent of
Processor executed
(the ADMA mode is in the relevant texts of the standardization body)
in detail
described; see. For example, the ATA / ATAPI Host Adapter Standard
T13 / 510). In this way, you can also hard real-time requirements
comply. Limited
on the other hand, one is limited to a purely programmed input and output
with individual application-side E-A accesses (Port I / O) under
Control of a modern operating system, this is not possible. Example:
it is a signal assignment for
the duration of 20 μs
to generate (pulse pattern). The naive programming: first OUT function
(Pulse output) - wait - second
OUT function (output of the original
or next
Occupancy). In the time between both OUT functions but can
the system intervene and z. B. another application program
Allocate computing time (time slicing). It can then be that one
generated pulse lasts 10 ... 20 ms and longer.
Die 60 bis 62 veranschaulichen Weiterbildungen
des Interfaceadapters, die nicht nur Register-, sondern auch Datenzugriffe
unterstützen. Eine
solche Auslegung ist dann zweckmäßig, wenn es
E-A-Ports gibt, über
die umfangreichere Datenblöcke
zu transportieren sind (für
Steuerungsabläufe
mit abwechselnden Ein- und Ausgabe-Zugriffen sind Datentransporte
weniger von Bedeutung). Einfache Adapter sind für programmierte Datenregisterzugriffe ausgelegt.
Hierzu ist der Areßdecodierer 17 auf
die Decodierung der Datenregisteradresse (vgl. 2) zu
erweitern. Die Datenregisterzugriffe werden mit einer Breite von
16 Bits ausgeführt
(Belegung der Datenbusleitungen DD15...0); ansonsten unterscheiden sie
sich nicht von den bisher beschriebenen Registerzugriffen. Interfaceadapter,
die über
standardgemäße Kommandoprotokolle
angesprochen werden, nutzen die hierzu vorgesehenen Übertragungsabläufe (Data-In-
und Data-Out-Protokolle). Diese Abläufe sind in den Interfacestandards
eingehend beschrieben. Entsprechende Schaltungen sind in den Steuerschaltkreisen
der Festplatten, CD-ROM-Laufwerke usw. enthalten. Eine detaillierte
Darstellung der Hardware ist deshalb nicht erforderlich.The 60 to 62 illustrate developments of the interface adapter, which support not only register, but also data access. Such a design is useful if there are EA ports over which to transport larger data blocks (data transfers are less important for control processes with alternating input and output accesses). Simple adapters are designed for programmed data access. For this purpose, the Areßdecodierer 17 to the decoding of the data register address (cf. 2 ) to expand. The data register accesses are carried out with a width of 16 bits (occupancy of the data bus lines DD15... 0); otherwise they do not differ from the previously described register accesses. Interface adapters, which are addressed via standard command protocols, use the transmission processes provided for this purpose (data-in and data-out protocols). These processes are described in detail in the interface standards. Corresponding circuits are included in the control circuits of the hard disks, CD-ROM drives, etc. A detailed representation of the hardware is therefore not required.
60 zeigt
den Anschluß von
E-A-Ports an das Datenregister, das hier aus einem Ausgaberegister 78 und
einem Eingaberegister 79 besteht. Sind Eingaben von mehreren
E-A-Ports vorgesehen, so ist dem Eingaberegister 79 eine
Auswahlschaltung 80 vorgeordnet. Zur Auswahl des jeweiligen E-A-Ports
dient ein Adreßregister 81.
Dies ist eines der weiteren Register aus dem standardgemäßen Registersatz
(z. B. das Geräte-
und Kopfauswahlregister 26). 60 shows the connection of I / O ports to the data register, here from an output register 78 and an input register 79 consists. If inputs from several I / O ports are provided, then the input register is 79 a selection circuit 80 upstream. An address register is used to select the respective I / O port 81 , This is one of the other registers from the standard register set (eg, the device and head select register 26 ).
Zur
Datenübertragung
werden geeignete standardgemäße Laufwerkskommandos
verwendet (z. B. READ SECTORS und WRITE SECTORS). Die Datenübertragung
wird mit dem Laden des Registersatzes eingeleitet und mit dem Abholen
der Registersatzbelegung abgeschlossen.to
data transfer
become suitable standard drive commands
used (eg READ SECTORS and WRITE SECTORS). The data transmission
is initiated with the loading of the register file and with the pickup
the register file assignment completed.
Wichtig
ist, daß die
Datenübertragungsabläufe exakt
den Festlegungen des Standards entsprechen. Das läuft typischerweise
darauf hinaus, stets ganze Sektoren zu je 512 Bytes zu übertragen. Ggf.
muß der
Interfaceadapter zusätzliche
Bytes anhängen
(Eingabe) oder überschüssige Bytes
abnehmen und ins Leere gehen lassen (Ausgabe).Important
is that the
Data transfer processes exactly
comply with the specifications of the standard. This is typically
In addition, always transfer entire sectors of 512 bytes. Possibly.
must the
Interface adapter additional
Append bytes
(Input) or excess bytes
lose weight and let go (output).
Je
Kommandoprotokoll (Non-Data und Data-In/Data-Out) können unabhängige E-A-Registersätze vorgesehen
werden (61). Somit lassen sich in einem
Interfaceadapter sowohl wahlfreie E-A-Steuerfunktionen als auch
Datenübertragungsfunktionen
vereinigen. Die Anordnung entspricht weitgehend 45,
nur werden die Register und Auswahlschaltungen nicht über Bitpositionen
des auf Geräte-
und Kopfauswahlregisters 26, sondern über den Kommandocode ausgewählt. Handelt
es sich um ein Kommando ohne Datenübertragung, wird auf die Register 82 und
auf die Auswahlschaltung 83 zugegriffen, ist das Kommando
mit einer Datenübertragung
verbunden, auf die Register 84 und auf die Auswahlschaltung 85.
In beiden Fällen
können
Bitpositionen z. B. im Geräte-
und Kopfauswahlregister 26 genutzt werden, um jeweils eine
von mehreren Anordnungen aus Registern 82/84 und
Auswahlschaltungen 83/85 zu adressieren (wie bereits
anhand der 43 bis 49 beschrieben).Independent I / O register sets can be provided for each command protocol (non-data and data-in / data-out) ( 61 ). Thus, in an interface adapter, both optional I / O control functions and data transfer functions can be combined. The arrangement corresponds largely 45 However, the registers and selectors do not have bit positions of the device and head select register 26 but selected via the command code. If it is a command without data transfer, will be on the registers 82 and on the selection circuit 83 accessed, the command is associated with a data transfer to the registers 84 and on the selection circuit 85 , In both cases, bit positions z. In the device and head selector registers 26 be used to each one of several arrangements of registers 82 / 84 and selection circuits 83 / 85 to address (as already based on the 43 to 49 ) Described.
Ob
die bisher als frei verfügbar
bezeichneten Register des standardgemäßen Registersatzes in Kommandos
mit Datenübertragung
weiterhin frei (für allgemeine
E-A-Zwecke) genutzt werden können, hängt davon
ab, wie die Datenübertragungskommandos
im einzelnen ausgestaltet werden. Im einfachsten Fall beschränkt man
sich auf eine feste Byteanzahl für jede Übertragungsrichtung
(z. B. jeweils ein Sektor = 512 Bytes). Dann kann man die besagten Register
frei nutzen (muß aber
in der hostseitigen Software auf diese Konvention Rücksicht
nehmen). Soll sich hingegen der Interfaceadapter weitgehend wie
ein Laufwerk verhalten, stehen die standardgemäß zu nutzenden Register nicht
mehr zur freien Verfügung.
Soll beispielsweise die Übertragung
mehrerer Sektoren unterstützt
werden, so ist das Sektoranzahlregister standardgemäß zu nutzen.
Die LBA-Register (Sektornummer usw.) sind hingegen nach wie vor
zu E-A-Zwecken verwendbar.If
the previously available as free
designated register of the standard register set in commands
with data transmission
still free (for general
E-A purposes) can be used depends on it
as the data transfer commands
be designed in detail. In the simplest case, one limits
to a fixed byte count for each transmission direction
(eg one sector = 512 bytes each). Then you can the said register
free use (but must
in the host-side software on this convention consideration
to take). On the other hand, should the interface adapter be much like
a drive behave, the default to use registers are not
more at leisure.
For example, if the transfer
supported by several sectors
the sector number register is to be used by default.
By contrast, the LBA registers (sector number, etc.) remain the same
usable for E-A purposes.
Die
Anordnung gemäß 60 sieht
direkte Datentransporte zwischen dem Interfaceadapter und den E-A-Ports
vor. Die angeschlossenen Einrichtungen können aber oftmals die Datenrate
des Interfaces nicht unterstützen.
Der Ausweg besteht darin, entsprechende Pufferspeicher vorzusehen
(62). An die Datenbusleitungen des Interfaces sind
ein Programmpuffer 86, ein Ausgabepuffer 87 und
ein Eingabepuffer 88 angeschlossen. Dem Programmpuffer 86 ist
ein Controller 89 nachgeschaltet. Die Puffer können als
FIFOs oder als RAMs ausgebildet sein (sequentieller oder wahlfreier
Zugriff). Handelt es sich lediglich um ein Weiterreichen der Bytes,
so kann der Programmpuffer 86 entfallen, und die Puffer 87 88 können als
FIFOs ausgelegt werden. Der Controller 89 wird dann zu
einer Folgesteuerung (Sequencer), die die Signalspiele der FIFOs
und der jeweiligen E-A-Schnittstellen unterstützt. In einer alternativen
Auslegung sind alle Puffer RAMs, und der Controller 89 ist
eine programmgesteuerte Einrichtung. Hierfür kann z. B. einer der handelsüblichen
Mikrocontroller verwendet werden. Auch ist es möglich, mehrere der Puffer 86 bis 89 zu
einer einzigen RAM-Anordnung zusammenzufassen (Datenpuffer + Programmpuffer
bzw. ein einziger universeller Pufferspeicher).The arrangement according to 60 provides direct data transport between the interface adapter and the I / O ports. However, the connected devices often can not support the data rate of the interface. The way out is to provide appropriate buffer memories ( 62 ). To the data bus lines of the interface are a program buffer 86 , an output buffer 87 and an input buffer 88 connected. The program buffer 86 is a controller 89 downstream. The buffers may be in the form of FIFOs or RAMs (sequential or random access). If it is merely a passing of the bytes, then the program buffer 86 omitted, and the buffers 87 88 can be designed as FIFOs. The controller 89 then becomes a sequencer that supports the FIFO signal plays and the respective I / O interfaces. In an alternative design, all buffers are RAMs, and the controller 89 is a program-controlled device. For this purpose, z. B. one of the commercially available microcontroller can be used. It is also possible to use several of the buffers 86 to 89 into a single RAM arrangement (data buffer + program buffer or a single universal buffer memory).
Es
ist möglich,
die Steuerung der E-A-Vorgänge
weitgehend in den Controller 89 des Interfaceadapters zu
verlagern. Der Controller 89 kann u. a. die Adressierung
der Puffer und die Auswahl der E-A-Ports übernehmen. Ein solcher Interfaceadapter kann
beispielsweise wie folgt genutzt werden:
- 1.
Füllen
des Programmpuffers 86 mit dem jeweiligen E-A-Steuerprogramm
(Ausgabekommando).
- 2. Füllen
des Ausgabepuffers 87 mit den auszugebenden Daten (Ausgabekommando).
- 3. Anstoßen
des E-A-Programms. Diese Funktion kann z. B. mit dem letzten Ausgabekommando kombiniert
werden, das den Ausgabepuffer 87 gefüllt hat.
- 4. Abholen eingegebener Daten aus dem Eingabepuffer 88 (Eingabekommando).
Diese Funktion kann beispielsweise vom Interfaceadapter durch Interruptauslösung angefordert
werden (das vorhergehende Kommando bleibt solange aktiv, bis die
entsprechenden Wirkungen eingetreten sind).
- 5. Ggf. wiederholter Durchlauf der Funktionen 2 bis 4. Solche
Durchläufe
können über entsprechende
ADMA-Kommandoketten gesteuert werden so daß sie weitgehend unabhängig vom
Prozessor (des Host) ablaufen.
It is possible to control the EA before largely into the controller 89 of the interface adapter. The controller 89 can take over, among other things, the addressing of the buffers and the selection of the I / O ports. For example, such an interface adapter can be used as follows: - 1. Fill the program buffer 86 with the respective I / O control program (output command).
- 2. Fill the output buffer 87 with the data to be output (output command).
- 3. Initiate the EA program. This function can, for. B. combined with the last output command, the output buffer 87 filled.
- 4. Retrieving input data from the input buffer 88 (Input command). This function can, for example, be requested by the interface adapter through interrupt triggering (the previous command remains active until the corresponding effects have occurred).
- 5. If necessary repetitive run of functions 2 through 4. Such passes can be controlled via appropriate ADMA command strings so that they are largely independent of the processor (the host).
Die
autonome Steuerung von E-A-Vorgängen über Mikrocontroller
ist an sich bekannt. Deshalb kann auf die Beschreibung von Einzelheiten
verzichtet werden. Der Anschluß über eine
ATA-Schnittstelle hat den Vorteil deutlich geringerer Latenz- und
Reaktionszeiten im Vergleich zu üblichen
E-A-Interfaces (seriell, parallel, USB, Netzwerk usw.). Der Software-Overhead zum Ansprechen
einer solchen Schnittstelle ist deutlich geringer als bei USB oder
Ethernet. Zudem ist es möglich,
die im Host vorgesehenen Unterstützungs-
und Beschleuni gungsvorkehrungen auszunutzen (Busmaster- und ADMA-Betrieb).
U. a. können
vom Interfaceadapter ausgelöste
Interrupts im ADMA-Betrieb bedient werden, ohne daß der Prozessor
eingreifen muß.The
autonomous control of E-A processes via microcontroller
is known per se. Therefore, on the description of details
be waived. The connection via a
ATA interface has the advantage of significantly lower latency and
Reaction times compared to usual
E-A interfaces (serial, parallel, USB, network, etc.). The software overhead for response
Such an interface is significantly lower than USB or
Ethernet. It is also possible
the support provided in the host
and acceleration arrangements (bus master and ADMA operation).
U. a. can
triggered by the interface adapter
Interrupts are served in ADMA mode without the processor
must intervene.
63 veranschaulicht
den konstruktiven Aufbau eines Interfaceadapters, der anstelle eines Laufwerks
in übliche
PCs eingesetzt werden kann. 63 illustrates the structural design of an interface adapter that can be used instead of a drive in conventional PCs.
Der
Interfaceadapter 7 hat die Außenabmessungen eines üblichen
Laufwerks. Er befindet sich hier in einem Laufwerkseinschub 90,
der in einen Einbaurahmen 91 eingeschoben wird. Das ATA-Interface
wird über
den Steckverbinder 92 angeschlossen. Steckverbinder 93 dient
zum Anschließen
der zu steuernden Einrichtungen 9 (vgl. 5).
Eine solche Anordnung ermöglicht
es, jeden x-beliebigen PC zeitweilig zu einem Mikrocontroller umzurüsten, z.
B. zu Lehr- und Erprobungszwecken.The interface adapter 7 has the outer dimensions of a standard drive. He is here in a drive bay 90 in a mounting frame 91 is inserted. The ATA interface is via the connector 92 connected. Connectors 93 serves to connect the devices to be controlled 9 (see. 5 ). Such an arrangement makes it possible to convert any x-any PC temporarily to a microcontroller, z. B. for teaching and testing purposes.
Die
Vorteile gegenüber
der Nutzung der bekannten sog. Starterkits (an den PC anzuschließende Platinen,
die einen Mikrocontroller enthalten) bestehen in folgendem:
- 1. die gesamten Ressourcen und funktionellen
Eigenschaften des PCs können
zur Lösung
der Anwendungsaufgabe und zum Fehlersuchen (Debugging) herangezogen
werden,
- 2. es kann mit der im PC-Bereich üblichen Entwicklungssoftware
programmiert werden (diese ist zumeist besser ausgestattet als die
typischen Etwicklungsumgebungen der Mikrocontroller, ist oft kostengünstiger
und erfordert keine besondere Einarbeitung),
- 3. es entfallen die Download- und Programmierzeiten.
The advantages over the use of the known so-called starter kits (to be connected to the PC boards that contain a microcontroller) consist in the following: - 1. the total resources and functional characteristics of the PC can be used to solve the application task and to debug
- 2. It can be programmed with the usual development software in the PC area (this is usually better equipped than the typical development environments of microcontrollers, is often less expensive and requires no special training),
- 3. It eliminates the download and programming times.
Im
Gegensatz zu den Simulatoren der gängigen Mikrocontroller-Entwicklungsumgebungen
kann der PC über
den eingebauten Interfaceadapter mit voller Geschwindigkeit (in
Echtzeit) auf echte periphere Hardware arbeiten.in the
Unlike the simulators of popular microcontroller development environments
can the PC over
the built-in interface adapter at full speed (in
Real time) to work on real peripheral hardware.
Auf
einem so ausgerüsteten
PC vorerprobte Anwendungslösungen
können – da in
Echtzeit ausgetestet- ohne weiteres auf Mikrocontroller oder auf kleine
PC-Moduln (Embedded PCs) übertragen
werden.On
so equipped
PC pre-proven application solutions
can - there in
Real-time debugged - easily on microcontrollers or on small ones
Transfer PC modules (Embedded PCs)
become.
In
einer vorteilhaften Ausführung
entspricht der Steckverbinder 93 einem standardgemäßen ATA-Steckverbinder.
Der Interfaceadapter hat zwei Betriebsarten:
- 1.
Interfaceadapter mit E-A-Ports. Die über den Steckverbinder 93 geführten Signale
sind E-A-Signale.
- 2. Weitergabe der ATA-Schnittstelle. Der Interfaceadapter wird
gar nicht wirksam. Das ATA-Interface wird lediglich vom Steckverbinder 93 zum Steckverbinder 93 weitergereicht.
Steckverbinder 93 ist gemäß ATA-Standard belegt.
In an advantageous embodiment, the connector corresponds 93 a standard ATA connector. The interface adapter has two modes: - 1. Interface adapter with I / O ports. The over the connector 93 Guided signals are I / O signals.
- 2. Transfer of the ATA interface. The interface adapter does not take effect at all. The ATA interface is just the connector 93 to the connector 93 passed on. Connectors 93 is assigned according to the ATA standard.
64 veranschaulicht
einen einfachen Interfaceadapter mit vier E-A-Ports 94 (A...D).
Jeder der E-A-Ports 94 ist gemäß 65 aufgebaut.
Die Schaltung entspricht weitgehend der von 18. Der
Unterschied besteht lediglich darin, daß hier der Lesedatenweg von
den Ports über
eine Auswahlschaltung 95, ein Synchronisationsregister 96 und eine
gemeinsame Buskoppelstufe 97 zum Datenbus des ATA-Interfaces
führt.
Die E-A-Ports 94 werden auf bereits beschriebene Weise
(vgl. die 14 bis 17) adressiert. 64 illustrates a simple interface adapter with four I / O ports 94 (A ... D). Each of the I / O ports 94 is according to 65 built up. The circuit largely corresponds to that of 18 , The only difference is that here the read data path from the ports via a selection circuit 95 , a synchronization register 96 and a common bus coupling stage 97 leads to the data bus of the ATA interface. The EA ports 94 be in the manner already described (see 14 to 17 ) addressed.
Die
in den 64 und 65 dargestellte Anordnung
wird um Schaltmittel zur Interfaceumschaltung erweitert. 66 zeigt
eine beispielhafte Belegung des Steckverbinders 93, der
als zweireihiger Pfostensteckverbinder mit 40 Anschlüssen ausgebildet
ist. Welche Signale am Steckverbinder 93 anliegen, bestimmt
das Interfacesignal MODE SELECT.The in the 64 and 65 arrangement shown is extended by switching means for interface switching. 66 shows an exemplary assignment of the connector 93 using as double-row pole connector with 40 Terminals is formed. Which signals on the connector 93 present, determines the interface signal MODE SELECT.
MODE
SELECT = 0: ATA-Betrieb (Durchleitung des ATA-Interfaces). Wird
an den Steckverbinder 93 ein ATA-Laufwerk angeschlossen,
so wird MODE SELECT mit Masse verbunden (standardgemäße Belegung
dieses Anschlusses). Der ATA-Betrieb wird somit bei Anschluß eines
Laufwerks automatisch eingestellt.MODE SELECT = 0: ATA operation (transmission of the ATA interface). Is connected to the connector 93 If an ATA drive is connected, MODE SELECT is connected to ground (standard assignment of this connection). The ATA operation is thus automatically set when a drive is connected.
MODE
SELECT = 1: Portbetrieb. Angeschlossene zu steuernde Einrichtungen 9 dürfen das Signal
nicht beschalten, so daß sich
auch in diesem Fall die richtige Betriebsart automatisch einstellt.MODE SELECT = 1: Port operation. Connected facilities to be controlled 9 Do not connect the signal, so that the correct operating mode is set automatically in this case as well.
Die 67 und 68 veranschaulichen eine
erste Ausführung.
Die Darstellung beschränkt sich
auf die Umschaltung zwischen den Ports A und D einerseits sowie
dem ATA-Datenbus (DD15...0) andererseits. Die Umschaltung von Signalen,
die nur eine Richtung haben, ist nicht besonders dargestellt, da
sie mit Auswahlschaltungen (Multiplexern) oder Tri-State-Koppelstufen auf
naheliegende Weise gelöst
werden kann.The 67 and 68 illustrate a first embodiment. The presentation is limited to the switching between the ports A and D on the one hand and the ATA data bus (DD15 ... 0) on the other. The switching of signals having only one direction is not particularly shown, since it can be solved in an obvious manner with selection circuits (multiplexers) or tri-state coupling stages.
67 zeigt
die Umschaltung in Ausgaberichtung. Bei ATA-Betrieb sind alle Ports 94 inaktiv und
hochohmig (die Anschlüsse
können
somit anderweitig belegt werden). Das wird erreicht, indem die Rücksetzeingänge der
Richtungsregister 29 (vgl. 65) mit
dem invertierten Betriebsartenauswahlsignal MODE SELECT beschaltet
sind. Ist der Interfaceadapter auf ATA-Betrieb (ATA MODE) eingestellt, so
wird über
Buskoppelstufen 98 der Datenbus auf die Ports A und D aufgeschaltet,
wenn ein standardgemäßer Schreibzugriff
(ATA WRITE ACCESS) stattfindet. 67 shows the changeover in output direction. For ATA operation, all ports are 94 inactive and high-impedance (the connections can thus be occupied elsewhere). This is achieved by the reset inputs of the direction registers 29 (see. 65 ) are connected to the inverted MODE select signal MODE SELECT. If the interface adapter is set to ATA mode (ATA MODE), this is done via bus coupling stages 98 the data bus is switched to ports A and D if a standard write access (ATA WRITE ACCESS) takes place.
Um
den Lesedatenweg umzuschalten, ist gemäß 68 zwischen
Synchronisationsregister 96 und Buskoppelstufe 97 eine
Auswahlschaltung 99 angeordnet. Hierüber werden die Anschlüsse des Ports
A zum Datenbus durchgesteuert. Für
die Weiterleitung des Ports B ist eine Buskoppelstufe 100 vorgesehen.
Auswahlschaltung 99 und Buskoppelstufe 100 werden
entsprechend aktiviert, wenn ein standardgemäßer Lesezugriff (ATA READ ACCESS) stattfindet.To switch the read data path is according to 68 between synchronization registers 96 and bus coupling stage 97 a selection circuit 99 arranged. This is used to control the connections of port A to the data bus. For the forwarding of the port B is a Buskoppelstufe 100 intended. select circuit 99 and bus coupling stage 100 are activated accordingly if a standard read access (ATA READ ACCESS) takes place.
Die
Bedingungen für
das Aktivieren der entsprechenden Steuersignale (ATA WRITE ACCESS, ATA
READ ACCESS) ergeben sich unmittelbar aus dem Interfacestandard.
Es ist deshalb nicht erforderlich, sie näher zu beschreiben.The
Conditions for
enabling the appropriate control signals (ATA WRITE ACCESS, ATA
READ ACCESS) result directly from the interface standard.
It is therefore not necessary to describe them in more detail.
Die
anhand der 67 und 68 beschriebene
Interfaceumschaltung kommt mit Auswahlschaltungen und Buskoppelstufen
aus, kann also z. B. in typischen CPLD- oder FPGA-Schaltkreisen untergebracht
werden. Nachteilig ist die Laufzeit durch diese zusätzlichen
Schaltmittel.The basis of the 67 and 68 Interface switching described comes with selection circuits and bus coupling stages, so z. B. in typical CPLD or FPGA circuits can be accommodated. The disadvantage is the duration of this additional switching means.
Eine
Alternative besteht darin, sog. Busschalter zur Interfaceumschaltung
einzusetzen. Diese Bauelemente haben Feldeffekttransistoren in den Signalwegen,
die als Schalter wirken. Sie arbeiten in beiden Signalflußrichtungen
(bidirektional) und haben nur eine vernachlässigbare Duchlaufverzögerung (z.
B. maximal 250 ps).A
Alternative is so-called bus switch for interface switching
use. These devices have field effect transistors in the signal paths,
which act as a switch. They work in both signal flow directions
(bidirectional) and have only a negligible propagation delay (z.
Maximum 250 ps).
69 zeigt
eine entsprechende Anordnung. Zwischen Interfaceadapter 7 und
Steckverbinder 93 ist eine Auswahlschaltung 101 angeordnet, die
mit derartigen Busschalter-Bauelementen aufgebaut ist. Der Auswahleingang
der Auswahlschaltung 101 ist mit dem Betriebsartenauswahlsignal
(MODE SELECT) des Steckverbinders 93 beschaltet. 69 shows a corresponding arrangement. Between interface adapter 7 and connectors 93 is a selection circuit 101 arranged, which is constructed with such bus switch components. The selection input of the selection circuit 101 is with the mode select signal (MODE SELECT) of the connector 93 wired.
In 70 ist
eine weitere Ausgestaltung eines Interfaceadapters gemäß 63 dargestellt.
Der eigentliche Interfaceadapter 7 und die Auswahlschaltung 101 sind
durch ein ATA-Laufwerk 53 ergänzt. Das
Laufwerk 53 ist auf bereits beschriebene Weise angeschlossen
(vgl. die 29 bis 31). Die
Umschaltung der Nutzung des Steckverbinders 93 wird hier
vom Interfaceadapter 7 gesteuert, der das Betriebsartenauswahlsignal
MODE SELECT auswertet und demgemäß das Auswahlsignal
IFSEL erregt. Eine zugleich einfache und universelle Auslegung besteht
darin, beide Signal an weitere programmseitig zugängliche
E-A-Ports im Interfaceadapter
anzuschließen,
so daß MODE
SELECT abgefragt und IFDEF gestellt werden kann. Es lassen sich
u. a. folgende Betriebsarten einstellen:
- 1.
Interfaceadapter allein, Steckverbinder 93 im Port-Betrieb,
- 2. Interfaceadapter und Laufwerk 53, Steckverbinder 93 im
Port-Betrieb,
- 3. Steckverbinder 93 im ATA-Betrieb (bloße Durchleitung),
- 4. Laufwerk 53 und Steckverbinder 93 im ATA-Betrieb.
In 70 is a further embodiment of an interface adapter according to 63 shown. The actual interface adapter 7 and the selection circuit 101 are through an ATA drive 53 added. The drive 53 is connected in the manner already described (see 29 to 31 ). Switching of use of the connector 93 is here from the interface adapter 7 controlled, which evaluates the mode selection signal MODE SELECT and accordingly energizes the selection signal IFSEL. A simple and universal design at the same time is to connect both signals to other program-accessible I / O ports in the interface adapter so that MODE SELECT can be queried and IFDEF can be set. Among others, the following operating modes can be set: - 1. Interface adapter alone, connectors 93 in port mode,
- 2. Interface adapter and drive 53 , Connectors 93 in port mode,
- 3. Connector 93 in ATA mode (mere transmission),
- 4th drive 53 and connectors 93 in ATA operation.
In
einer vorteilhaften Ausführung
ist das Laufwerk 53 ein Flash-Laufwerk (Flash Disk). Hiermit wird
es möglich,
daß ein
Einschub gemäß 63 seine
eigene Software – bis
hin zum eigenen Betriebssystem – mitbringen
kann, so daß es
nicht notwenig ist, ggf. erforderliche „exotische" Software auf dem jeweiligen PC eigens
zu installieren.In an advantageous embodiment, the drive 53 a flash drive (flash disk). This makes it possible that a slot according to 63 its own software - up to its own operating system - can bring, so that it is not necessary to install possibly necessary "exotic" software on the particular PC specifically.
71 zeigt
eine weitere Nutzungsweise eines erfindungsgemäßen Interfaceadapters. Zum
Einsatz im Bereich der Embedded Systems gibt es PC-Moduln mit besonders
kleinen Abmessungen (als Beispiele seien die Formfaktoren PC/104,
ETX, X-Board und DIMM genannt). Solche Moduln haben typischerweise
nur Schnittstellen, die Industriestandards entsprechen. 71 shows a further use of an interface adapter according to the invention. For use in the field of embedded systems there are PC modules with particularly small dimensions (examples being the form factors PC / 104, ETX, X-Board and DIMM). Such modules typically only have interfaces that meet industry standards.
Das
in 71 dargestellte Modul enthält einen PC-Kern 102,
einen erfindungsgemäßen Interfaceadapter 7,
einen Systemsteckverbinder 103 und eine Konfigurationssteuereinrichtung 104.
Der Systemsteckverbinder 103 entspricht dem jeweiligen
Industriestandard (z. B. ETX, X-Board oder DIMM). Der PC-Kern 102 ist
eine an sich bekannte und auf solchen Moduln übliche Anordnung aus Prozessor (CPU),
Steuerschaltkreisen (CTL) und Speichermitteln (RAM, ROM). Die Steuerschaltkreise
unterstützen
ein jeweils typische Sortiment gängiger
Interfaces (ISA-Bus, PCI-Bus, LPC, ATA, Tastaturschnittstelle, USB,
RS-232 usw.). Auf herkömmlichen
Moduln sind diese Schnittstellen auf den Systemsteckverbinder 103 geführt. Da
keine dieser Schnittstellen zum direkten Anschließen beliebiger
zu steuernder Einrichtungen vorgesehen ist, müssen außerhalb des Moduls (z. B. auf
einer Basisplatine) entsprechende Adapterschaltungen angeordnet
werden. Durch Einbau eines Interfaceadapters 7 bekommt
so ein Modul die Anwendungseigenschaften eines echten Mikrocontrollers
(vor allem: eine Vielzahl frei programmierbarer universeller E-A-Anschlüsse, die über den
Systemsteckverbinder 103 zugänglich sind). Die typischen
Anwendungsfälle
erforden oft eine bestimmte Mischung von Industriestandard-Schnittstellen
und universellen bzw. anwendungsspezifischen E-A-Schaltungen. Um
solche Einsatzfälle
zu unterstützen,
sind zwischen PC-Kern 102 und Systemsteckverbinder 103 Auswahlschaltungen 101 (der anhand
von 60 beschriebenen Art) angeordnet, die weiterhin
mit den E-A-Signalen des Interfacedapaters 7 beschaltet
sind. Die Auswahlsteuereingänge der
Auswahlschaltungen 101 sind mit der Konfigurationssteuereinrichtung 104 verbunden.
Somit kann am Systemsteckverbinder 103 eine jeweils zweckentsprechende
Mischung universeller E-A-Anschlüsse
und industrieüblicher
Interfaces bereitgestellt werden.This in 71 The module shown contains a PC core 102 , an inventive Inter face adapter 7 , a system connector 103 and a configuration control device 104 , The system connector 103 complies with the respective industry standard (eg ETX, X-Board or DIMM). The PC core 102 is a known per se and on such modules arrangement of processor (CPU), control circuits (CTL) and memory means (RAM, ROM). The control circuits support a typical range of common interfaces (ISA bus, PCI bus, LPC, ATA, keyboard interface, USB, RS-232, etc.). On conventional modules, these interfaces are on the system connector 103 guided. Since none of these interfaces are provided for directly connecting any devices to be controlled, corresponding adapter circuits must be arranged outside the module (eg, on a base board). By installing an interface adapter 7 gets such a module the application characteristics of a real microcontroller (above all: a multiplicity freely programmable universal I / O connections, which over the system connector 103 are accessible). The typical use cases often require a certain mix of industry standard interfaces and general purpose / application specific I / O circuits. To support such cases of use are between PC core 102 and system connectors 103 selection circuits 101 (the basis of 60 described type), which continues with the EA signals of the interface 7 are wired. The selection control inputs of the selection circuits 101 are with the configuration control device 104 connected. Thus, at the system connector 103 an appropriate mix of universal I / O ports and industry-standard interfaces are provided.
Es
gibt verschiedene Möglichkeiten,
die Konfigurationssteuereinrichtung 104 auszulegen:
- 1. Auswahl über
Anschlüsse
des Systemsteckverbinders 103, die feste Signalpegel liefern,
um eine bestimmte Interfaceauswahl zu veranlassen,
- 2. feste Einstellung über
Steckbrücken
bzw. Wahlschalter,
- 3. programmgesteuerte Einstellung, z. B. über Steuerregister, die an
eines der üblichen
Interfaces oder an den Interfaceadapter 7 angeschlossen
sind.
There are several options, the configuration control device 104 interpreted: - 1. Selection via connectors of the system connector 103 that provide fixed signal levels to cause a particular interface selection,
- 2. fixed setting via jumpers or selector switches,
- 3. program-controlled setting, z. Via control registers connected to one of the common interfaces or to the interface adapter 7 are connected.
Diese
Verfahren der Konfigurationssteuerung sind an sich bekannt und allgemein üblich (vgl. die
Steckkarten für
PC-Bussysteme, wie ISA oder PCI), so daß eine nähere Beschreibung nicht erforderlich
ist.These
Methods of configuration control are known per se and common practice (see
Plug-in cards for
PC bus systems, such as ISA or PCI), so that a more detailed description is not required
is.
Die
Vorteile des an ein ATA-Interface angeschlossenen Interfaceadapters 1 bestehen
in solchen Einsatzfällen
in folgendem:
- 1. vergleichsweise Einfachheit
(etwa gegenüber dem
Anschluß an
einen PCI-Bus),
- 2. direkte Zugänglichkeit über E-A-Zugriffe
(geringe Latenz- und Reaktionszeiten),
- 3. Nutzbarkeit vorhandener Vorkehrungen (Busmasterbetrieb, ADMA),
- 4. ATA-Standards sind – infolge
ihrer eigentlichen Bestimmung (Laufwerksanschluß) – Industriestandards mit längerer Lebensdauer
und Verfügbarkeit
(im Gegensatz beispielsweise zu den Steuerschaltkreisen und Steckkarten-Bussystemen
des PC-Marktes).
The advantages of the interface adapter connected to an ATA interface 1 exist in such applications in the following: - 1. comparatively simple (as compared to the connection to a PCI bus),
- 2. direct accessibility via I / O accesses (low latency and reaction times),
- 3. Usability of existing arrangements (bus master operation, ADMA),
- 4. ATA standards are - due to their actual purpose (drive connection) - industry standards with longer life and availability (as opposed to, for example, the control circuits and plug-in card bus systems of the PC market).
Die
vergleichsweise einfachen Schaltungen des Interfaceadapters 7 lassen
sich in kostengünstigen
CPLD- oder FPGA-Schaltkreisen unterbringen. Sieht man auf einem
Modul gemäß 71 einen
entsprechend reichhaltig ausgestattenen Schaltkreis vor, so passen
dort auch noch anwendungsspezifische Schaltungen hinein. 72 veranschaulicht
die Aufteilung eines solchen Schaltkreises in den eigentlichen Interfaceadapter 7,
einen anwendungsspezifisch frei programmierbaren Bereich 105 und
einen Anschlußteil 106.
Hierdurch wird es möglich,
viele Schaltungen, die üblicherweise
auf weiteren Leiterplatten mit elementaren Logikschaltkreisen aufgebaut
werden, im frei programmierbaren Bereich 105 des Schaltkreises
unterzubringen. Solche-typischerweise nicht allzu schwierigen-Entwurfsaufgaben
können
mit elementaren (oft kostenlos erhältlichen) Entwicklungsumgebungen
ausgeführt
werden. Da ein erfindungsgemäß ausgebildeter
Interfaceadapter 7 Konflikte mit der bestimmungsgemäßen Nutzung
der ATA-Schnittstelle vermeidet, können auch schwere Entwurfsfehler
im frei programmierbaren Bereich 105 das Starten und den
Betrieb des Systems nicht verhindern. Zum Fehlersuchen und Erproben
können somit
Hard- und Software des PC-Systems in vollem Umfang ausgenutzt werden.
Um die Fehlersuche zu unterstützen,
können
im Anschlußteil 106 Prüf-, Abfrage-
und Aufzeichnungsschaltungen (z. B.The comparatively simple circuits of the interface adapter 7 can be accommodated in low-cost CPLD or FPGA circuits. If you look on a module according to 71 a correspondingly rich equipped circuit before, so fit there also application-specific circuits. 72 illustrates the division of such a circuit into the actual interface adapter 7 , an application-specific, freely programmable area 105 and a connector 106 , This makes it possible, many circuits that are usually built on other circuit boards with elementary logic circuits in the freely programmable area 105 of the circuit. Such-typically-not-so-difficult-design tasks can be performed with elemental (often free) development environments. As an inventively designed interface adapter 7 Conflicts with the intended use of the ATA interface avoids serious design errors in the freely programmable range 105 Do not prevent starting and operating the system. For troubleshooting and testing, the hardware and software of the PC system can thus be fully exploited. In order to support the troubleshooting, can in the connection part 106 Testing, interrogation and recording circuits (eg
Test-
und Halteregister) angeordnet werden, die ihrerseits auf bereits
beschriebene Weise mit dem Interfaceadapter 7 verbunden
sind, z. B. als zusätzliche
Ein- und Ausgaberegister. (Das Einbringen von Testhilfen in programmierbare
Schaltkreise ist an sich bekannt und z. B. in Applikationsschriften
der Hersteller beschrieben.) Es ist sogar möglich, den Schaltkreis vom
PC aus selbst zu programmieren (Fehlerbeseitigung, Anpassung an
wechselnde Anforderungen). Hierzu sind die Programmieranschlüsse des
Schaltkreises mit einer passenden industrieüblichen Schnittstelle (vgl. 71)
zu verbinden. Die meisten CPLDs und FPGAs haben ein Programmierinterface,
das dem Standard JTAG/IEEE 1149 entspricht. Es kann auf einfache
Weise z. B. der üblichen parallelen
Schnittstelle (IEEE 1284) nachgeschaltet werden.Test and holding register) are arranged, in turn, in the manner already described with the interface adapter 7 are connected, z. B. as additional input and output registers. (The introduction of test aids into programmable circuits is known per se and described, for example, in the manufacturer's application notes.) It is even possible to program the circuit yourself from the PC (troubleshooting, adaptation to changing requirements). For this purpose, the programming terminals of the circuit with a suitable industry standard interface (see. 71 ) connect to. Most CPLDs and FPGAs have a programming interface that complies with the JTAG / IEEE 1149 standard. It can be easily z. B. the usual parallel interface (IEEE 1284) downstream.