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.