Standard ISA. Układ przerwań.
MAGISTRALA ISA
Magistrala ISA (ang. Integrated System Architecture) to historycznie najstarsza magistrala zewnętrzna stosowana w komputerach typu PC. W swojej 8-bitowej wersji była przystosowana do współpracy z procesorem 8088. Wraz z pojawieniem się procesorów 286 opracowano jej wersję 16-bitową, która bez zmian przetrwała do dzisiaj i jest wbudowana w najnowszych nawet płytach głównych do obsługi kart rozszerzających typu ISA. Magistrala ta jest taktowana zegarem o częstotliwości ok. 8MHz, co przy 16-bitowej szerokości daje teoretyczną maksymalną prędkość transmisji ok. 8MB/S.
W praktyce prędkość ta jest jeszcze ograniczona protokołami transmisji i wynosi ok. 4MB/S. Złącza magistrali ISA są zawsze w kolorze czarnym. Magistrala ta jest obecnie stosowana do podłączania kart rozszerzeń nie wymagających dużych prędkości transmisji, jak np. karty dźwiękowe, wolniejsze karty sieciowe, itp.
Standard ISA posiada 16-bitową, dwukierunkową szynę danych (SD0...SD7, SD8...SD15) i 24-bitową szynę adresową (SA0...SA19, LA17...LA23). Złącze ISA składa się z dwóch sekcji: 62-stkowej, z 8-bitową szyną danych i 36-stykowej, umożliwiającej rozszerzenie szyn danych do 16 bitów.
Szyna adresowa (SA0...SA19) umieszczona na 62-stykowej (8 linii danych i 20 linii adresowych) sekcji złącza ISA pozwala zaadresować 1 MB (zwany inaczej zerowym megabajtem) pamięci. Sygnał SMEMW jest aktywny tylko w przypadku zapisu danych do pamięci zawartej w tym obszarze, a sygnał SMEMR - aktywny dla odczytu danych tylko z tego obszaru. Sygnały te mogą być generowane przez mikroprocesor lub przez układy obsługujące transmisję DMA.
Linie adresowe SA0...SA19 wraz z liniami LA17...LA23 umożliwiają adresowanie pamięci do 16 MB. Linie L17...L23 wykorzystywane są jako sygnały wyjściowe dekoderów pamięci; sygnały te nie są zapamiętywane w rejestrach. Zapis danych do całego 16-megabajtowego obszaru pamięci możliwy jest przy aktywnym sygnale MEMW, odczyt przy aktywnym sygnale MEMR.
Maksymalna przestrzeń adresowa przeznaczona dla portów wejścia/wyjścia magistrali ISA wynosi 64 KB (16 linii adresowych SA). Pierwszych 256 adresów zarezerwowanych jest dla układów znajdujących się z reguły na płycie głównej (rejestry kontrolerów DMA, kontrolerów przerwań, zegara czasu rzeczywistego, itd.). Zapis danych do portu odbywa się przy aktywnym sygnale IOW (Input/Output Write), natomiast odczyt - przy aktywnym sygnale IOR (Input/Output Read).
Lina MASTER umożliwia przejecie sterowania zasobami systemu przez urządzenie zewnętrzne. Realizowane to jest poprzez zgłoszenie żądania cyklu DMA linią DRQ, a po akceptacji zgłoszenia (DACK), ustawienie linii MASTER w stan niski. Stan ten powoduje odłączenie od szyn danych, adresowych oraz linii sterujących mikroprocesorem i układów DMA. Sterowanie tymi szynami może być przejęte przez urządzenie zewnętrzne. Sygnał MASTER nie może trwać dłużej niż 15 mikrosekund, gdyż po tym czasie procesor musi wykonać rutynowe odświeżania pamięci DRAM.
Sygnał RESET zeruje układy zewnętrzne w trakcie załączania napięć zasilających lub w trakcie zerowania systemu klawiszem RESET. Do złącza ISA doprowadzone są napięcia +5V, -5V, +12V, -12V umożliwiające zasilanie zainstalowanych tam kart.
Transmisję w trybie bezpośredniego dostępu do pamięci (DMA) zrealizowano w oparciu o dwa kontrolery 8237A (jak na rysunku) połączone kaskadowo. Jeden kontroler obsługuje transmisje 8-bitowe (kanały 0...3), drugi zaś transmisje 16-bitowe (kanały 5...7). Za pomocą linii DRQ, urządzenie żąda transmisji w trybie DMA. Kontroler DMA akceptuje zgłoszenie transmisji za pomocą linii DACK.
Sygnał AEN (generowany przez mikroprocesor) informuje wszystkie urządzenia dołączone do szyn ISA o przejęciu kontroli przez DMA nad szyną adresową.
System przerwań zawiera dwa kontrolery 8259 połączone kaskadowo. Układ 1 obsługuje przerwania o numerach od 0 do 7, przy czym przerwanie o numerze 2 (IRQ2) pochodzi od drugiego kontrolera 8259. Układ drugi obsługuje przerwania o numerach od 8 do 15. Sygnały żądania przerwania IRQ0, IRQ1, IRQ8 i IRQ13 generowane są przez układy znajdujące się standardowo na płycie głównej. Poniższa tabela ilustruje priorytety poziomów przerwań wykorzystywanych przez układy znajdujące się na płycie głównej oraz przez urządzenia zewnętrzne.
F u n k c j a |
U k ł a d 1 |
U k ł a d 2 |
zegar programowany )np. 8254) |
IRQ0 |
- |
sterownik klawiatury (np. 8042) |
IRQ1 |
- |
przerwanie od układu 2 (8259) |
IRQ2 |
- |
zegar czasu rzeczywistego |
- |
IRQ8 |
peogramowa zmiana kierunku na INT 0AH |
- |
IRQ9 |
zarezerwowane |
- |
IRQ10 |
zarezerwowane |
- |
IRQ11 |
zarezerwowane |
- |
IRQ12 |
koprocesor arytmetyczny |
- |
IRQ13 |
sterownik dysków twardych |
- |
IRQ14 |
drugi sterownik dysków twardych |
- |
IRQ15 |
port szergowy nr 2 (RS 232C) |
IRQ3 |
- |
port szergowy nr 1 (RS 232C) |
IRQ4 |
- |
port równoległy nr 2 (CENTRONICS) |
IRQ5 |
- |
sterownik dysków elastycznych |
IRQ6 |
- |
port równoległy nr 1 (CENTRONICS) |
IRQ7 |
- |
Rozmieszczenie końcówek na 8 - bitowej magistrali ISA
Sygnał
|
Końcówka |
Końcówka |
Sygnał |
Masa |
B1 |
A1 |
- I/O CHK |
RESET DRV |
B2 |
A2 |
Dane 7 |
+ 5 V dc |
B3 |
A3 |
Dane 6 |
IRQ2 |
B4 |
A4 |
Dane 5 |
- 5 V dc |
B5 |
A5 |
Dane 4 |
DRQ 2 |
B6 |
A6 |
Dane 3 |
-12 V dc |
B7 |
A7 |
Dane 2 |
- CARD SLCTD |
B8 |
A8 |
Dane 1 |
+ 12 V dc |
B9 |
A9 |
Dane 0 |
Masa |
B10 |
A10 |
- I/O CH RDY |
- SMEMW |
B11 |
A11 |
AEN |
- SMEMR |
B12 |
A12 |
Adres 19 |
- IOW |
B13 |
A13 |
Adres 18 |
- IOR |
B14 |
A14 |
Adres 17 |
-DACK 3 |
B15 |
A15 |
Adres 16 |
DRQ 3 |
B16 |
A16 |
Adres 15 |
- DACK 1 |
B17 |
A17 |
Adres14 |
DRQ 1 |
B18 |
A18 |
Adres 13 |
- Odświeżanie |
B19 |
A19 |
Adres 12 |
CLK (4,77 MHz) |
B20 |
A20 |
Adres 11 |
IRQ7 |
B21 |
A21 |
Adres 10 |
IRQ6 |
B22 |
A22 |
Adres 9 |
IRQ5 |
B23 |
A23 |
Adres 8 |
IRQ4 |
B24 |
A24 |
Adres 7 |
IRQ3 |
B25 |
A25 |
Adres 6 |
- DACK 2 |
B26 |
A26 |
Adres 5 |
T/C |
B27 |
A27 |
Adres 4 |
BALE |
B28 |
A28 |
Adres 3 |
+ 5 V dc |
B29 |
A29 |
Adres 2 |
OSC (14,3 MHz) |
B30 |
A30 |
Adres 1 |
Masa |
B31 |
A31 |
Adres 0 |
Rozmieszczenie końcówek na 16 - bitowej magistrali ISA
Sygnał
|
Końcówka |
Końcówka |
Sygnał |
Masa |
B1 |
A1 |
- I/O CHK |
RESET DRV |
B2 |
A2 |
Dane 7 |
+ 5 V dc |
B3 |
A3 |
Dane 6 |
IRQ9 |
B4 |
A4 |
Dane 5 |
- 5 V dc |
B5 |
A5 |
Dane 4 |
DRQ 2 |
B6 |
A6 |
Dane 3 |
-12 V dc |
B7 |
A7 |
Dane 2 |
- 0 WAIT |
B8 |
A8 |
Dane 1 |
+ 12 V dc |
B9 |
A9 |
Dane 0 |
Masa |
B10 |
A10 |
- I/O CH RDY |
- SMEMW |
B11 |
A11 |
AEN |
- SMEMR |
B12 |
A12 |
Adres 19 |
- IOW |
B13 |
A13 |
Adres 18 |
- IOR |
B14 |
A14 |
Adres 17 |
-DACK 3 |
B15 |
A15 |
Adres 16 |
DRQ 3 |
B16 |
A16 |
Adres 15 |
- DACK 1 |
B17 |
A17 |
Adres14 |
DRQ 1 |
B18 |
A18 |
Adres 13 |
- Odświeżanie |
B19 |
A19 |
Adres 12 |
CLK (4,77 MHz) |
B20 |
A20 |
Adres 11 |
IRQ7 |
B21 |
A21 |
Adres 10 |
IRQ6 |
B22 |
A22 |
Adres 9 |
IRQ5 |
B23 |
A23 |
Adres 8 |
IRQ4 |
B24 |
A24 |
Adres 7 |
IRQ3 |
B25 |
A25 |
Adres 6 |
- DACK 2 |
B26 |
A26 |
Adres 5 |
T/C |
B27 |
A27 |
Adres 4 |
BALE |
B28 |
A28 |
Adres 3 |
+ 5 V dc |
B29 |
A29 |
Adres 2 |
OSC (14,3 MHz) |
B30 |
A30 |
Adres 1 |
Masa |
B31 |
A31 |
Adres 0 |
- MEM CS 16 |
D1 |
C1 |
- SBHE |
- I/O CS 16 |
D2 |
C2 |
Latch Adress 23 |
IRQ 10 |
D3 |
C3 |
Latch Adress 22 |
IRQ 11 |
D4 |
C4 |
Latch Adress 21 |
IRQ 12 |
D5 |
C5 |
Latch Adress 19 |
IRQ 15 |
D6 |
C6 |
Latch Adress 18 |
IRQ 14 |
D7 |
C7 |
Latch Adress 17 |
- DACK 0 |
D8 |
C8 |
Latch Adress 16 |
DRQ 0 |
D9 |
C9 |
MEMR |
- DACK 5 |
D10 |
C10 |
MEMW |
DRQ 5 |
D11 |
C11 |
Dane 8 |
- DACK 6 |
D12 |
C12 |
Dane 9 |
DRQ 6 |
D13 |
C13 |
Dane 10 |
- DACK 7 |
D14 |
C14 |
Dane 11 |
DRQ 7 |
D15 |
C15 |
Dane 12 |
+ 5 V dc |
D16 |
C16 |
Dane 13 |
Master |
D17 |
C17 |
Dane 14 |
Masa |
D18 |
C18 |
Dane 15 |
Poszczególne linie tego złącza mają następujące znaczenie:
I/OCHCK (I/O Channel Check) - jest sygnałem dostarczającym do płyty głównej informacji o biedzie urządzeń zewnętrznych.
I/OCHRDY (I/O CHANNEL READY) - linia umożliwiająca wydłużenie cyklu transmisji danych. Transmisja trwa tak długo, aż nie pojawi się wysoki poziom na linii I/O CH RDY. Stan tej linii nie powinien być niski dłużej niż 2.5 ms, gdyż grozi to zniszczeniem danych zawartych w pamięci RAM (I/OCHRDY=0 blokuje odświeżanie pamięci RAM).
AEN (ADDRESS ENABLE) - sygnał (generowany przez HLDA mikroprocesora 80286) umożliwia przejęcie kontroli przez sterownik DMA nad szyną adresową.
SAO...SAI9 - linie adresowe wykorzystywane do adresowania pamięci oraz portów. Linie te wraz z linami SLA17...SLA23 umożliwiają adresowanie pamięci do 16 MB.
GND (GROUND) masa
RST DRY (RESET DRIVE) - sygnał zerujący układy zewnętrzne w trakcie załączania napięć zasilających lub w trakcie zerowania systemu klawiszem RESET.
BALE - strob dla linii adresowych SAO...SA19, który wpisuje przednim zboczem stan tych linii do bufora. W trakcie cyklu DMA na linii BALE wymuszony jest wysoki poziom.
OWS (Zero-Wait-State) - linia sygnalizująca że mikroprocesor może zakończyć bieżący cykl transmisji bez dodatkowych stanów WATT.
IOW (INPUT/OUTPUT WRITE) - sygnał zapisu danych do portu. Może być generowany przez mikroprocesor lub przez układy obsługujące transmisję w trybie DMA.
IOR (INPUT/OUTPUT READ) - sygnał odczytu danych z portu. Może być generowany przez mikroprocesor lub przez układy obsługujące transmisję w trybie DMA.
S MEMW - sygnał zapisu danych do pamięci. Jest aktywny tylko w przypadku zapisu danych do pamięci zawartej w obszarze 000000...OFFFFF (zerowy MB pamięci). Sygnał może być generowany przez mikroprocesor lub przez układy obsługujące transmisję DMA.
S MEMR - sygnał odczytu danych z pamięci. Jest aktywny tylko w przypadku odczytu danych z pamięci zawartej w obszarze 000000.,, OFFFFF (zerowy MB pamięci). Sygnał może być generowany przez mikroprocesor lub przez układy obsługujące transmisję DMA.
REFRESH - linia wyjściowa, sygnalizująca realizację cyklu odświeżania pamięci RAM systemu.
CLK - sygnał zegara systemowego, o częstotliwości ok. 8 MHz, przeznaczony do synchronizacji układów zewnętrznych. Nie należy go używać jako źródła stałej częstotliwości, T/C (TERMINAL COUNT) - strob zakończenia transmisji w trybie DMA.
OSC (OSCILLATOR) - sygnał wyjściowy o częstotliwości 14.31818 MHz. Sygnał ten nie jest zsynchronizowany z zegarem mikroprocesora. +5V, -5V, +I2V, -12V- zasilanie sterowników (kart) urządzeń zewnętrznych. Napięcia te pochodzą z zasilacza jednostki systemowej.
DRQO...DRQ3, DRQ5...DRQ7 - linie sygnalizujące żądanie transmisji w trybie DMA, zgłaszane przez urządzenia zewnętrzne. Linie DRQO...DRQ3 inicjują 8-bitową transmisję DMA, natomiast DRQ5...DRQ7 transmisję 16-bitową.
DACKO...DACK.3, DACK.5...DACK7 - linie sygnalizujące potwierdzenie przyjęcia żądania transmisji w trybie DMA.
BHE (BUS HIGH ENABLE) - linia sygnalizująca, że aktualnie realizowana jest transmisja magistralą danych SD8-SD15. Sygnał może być generowany przez mikroprocesor lub przez układy sterujące transmisją w trybie DMA.
SLA17...SLA23 - linie adresowe wykorzystywane jako sygnały wejściowe dekoderów pamięci, sygnały te nie są zapamiętywane w rejestrach, są one ważne tylko w czasie trwania aktywnego stanu sygnału BALE.
IRQ3...IRQ7, IRQ9...IRQ12, IRQ14, IRQ15 - linie sygnalizujące pojawienie się zewnętrznego przerwania.
System przerwań może być zrealizowany za pomocą dwóch kaskadowo połączonych układów 8259.
Układ l obsługuje przerwania IRQO...IRQ2, IRQ3...IRQ7, przy czym przerwanie IRQ2 pochodzi od drugiego układu 8259. Układ drugi obsługuje przerwania IRQ8...IRQ15.
MEMW - sygnał zapisu danych do pamięci. Sygnał jest generowany (przez mikroprocesor lub układy sterujące transmisją DMA) przy zapisie do dowolnego adresu pamięci.
MEMR - sygnał odczytu danych z pamięci. Sygnał jest generowany (przez mikroprocesor lub układy sterujące transmisją DMA) przy odczycie z dowolnego adresu pamięci.
MEM CS16- linia wejściowa, sygnalizująca że aktualnie realizowana jest transmisja o organizacji 16-bitowej z l stanem WAIT,
I/O CS16 - linia wejściowa, sygnalizująca że aktualnie realizowana jest transmisja do/z portu o organizacji 16-bitowsj.
MASTER - linia ta umożliwia przejęcie sterowania zasobami systemu przez urządzenie zewnętrzne. Realizowane to jest poprzez zgłoszenie żądania cyklu DMA linią DRQ, a po akceptacji zgłoszenia (DACK), ustawienie linii MASTER w stan niski. Stan ten powoduje odłączenie od szyn danych, adresowych oraz linii sterujących mikroprocesora i układów DMA. Sterowanie tymi szynami może być przejęte przez urządzenie zewnętrzne. Sygnał MASTER nie może trwać dłużej niż 15 mikrosekund, gdyż po tym czasie procesor musi wykonać rutynowe odświeżanie pamięci RAM.