SlideShare a Scribd company logo
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TRE CI   Interfejsy sprzêtowe
                                         komputerów PC
           KATALOG KSI¥¯EK               Autor: 83-7361-663-2
                                         T³umaczenie: Rados³aw Meryk (wprowadzenie, rozdz. 1 – 6),
                      KATALOG ONLINE     Przemys³aw Szeremiota (rozdz. 7 – 10)
                                         ISBN: MichaelGook
       ZAMÓW DRUKOWANY KATALOG           Tytu³ orygina³u: PC Hardware Interfaces:
                                         A Developers Reference
                                         Format: B5, stron: 536
              TWÓJ KOSZYK
                    DODAJ DO KOSZYKA              Dowiedz siê, w jaki sposób komputery PC komunikuj¹ siê
                                                                   z innymi urz¹dzeniami
         CENNIK I INFORMACJE                • Rodzaje i zadania interfejsów
                                            • Magistrale i karty rozszerzeñ
                                            • Dedykowane interfejsy urz¹dzeñ peryferyjnych
                   ZAMÓW INFORMACJE
                     O NOWO CIACH        Komputer PC mo¿e wspó³pracowaæ z ró¿nymi urz¹dzeniami — od drukarek, modemów
                                         i innych komputerów, a¿ do urz¹dzeñ pomiarowych, si³owników i innych sterowanych
                       ZAMÓW CENNIK      z poziomu komputera. Po³¹czenie komputera z urz¹dzeniem zewnêtrznym jest
                                         realizowane za po rednictwem interfejsów — z³¹czy umo¿liwiaj¹cych komunikacjê
                                         dwóch urz¹dzeñ.
                 CZYTELNIA               Ksi¹¿ka „Interfejsy sprzêtowe komputerów PC” to kompletne omówienie wszystkich
                                         interfejsów stosowanych do ³¹czenia komputerów PC z urz¹dzeniami peryferyjnymi.
          FRAGMENTY KSI¥¯EK ONLINE       Przedstawia zarówno rodzaje interfejsów, jak i zasady ich dzia³ania, typy przesy³anych
                                         przez nie sygna³ów i regu³y przydzielania im pamiêci w komputerze. Omawia
                                         mechanizmy transmisji przez ka¿dy z zaprezentowanych interfejsów oraz sygna³y
                                         steruj¹ce dzia³aniem ich kontrolerów.
                                            • Zasada dzia³ania interfejsów
                                            • Interfejsy COM i LPT
                                            • Z³¹cza bezprzewodowe — IrDA i Bluetooth
                                            • Magistrale USB, FireWire i SCSI
                                            • Z³¹cza kart rozszerzeñ
                                            • Interfejsy klawiatury i myszy
                                            • Z³¹cza pamiêci masowych i sieciowe
Wydawnictwo Helion                       Je li chcesz stworzyæ aplikacjê, która bêdzie wykorzystywaæ jeden z interfejsów
ul. Chopina 6                            komputera PC, lektura tej ksi¹¿ki bêdzie strza³em w dziesi¹tkê.
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
               Wprowadzenie w tematykę interfejsów ............................................... 7
               Ogólna struktura komputerów ........................................................................................... 7
                   Urządzenia peryferyjne .............................................................................................. 7
                   Hierarchia połączeń ................................................................................................... 8
               Organizacja interfejsów................................................................................................... 10
                   Typy przesyłanych informacji.................................................................................. 10
                   Interfejsy równoległe i szeregowe............................................................................ 11
                   Sygnały i media transmisji ....................................................................................... 16
                   Galwaniczna separacja podłączonych urządzeń....................................................... 18
                   Interakcje pomiędzy urządzeniami i topologia urządzeń ......................................... 19
                   Kontrola poprawności transmisji i jej niezawodność oraz sterowanie przepływem.....22
                   Parametry czasowe i synchronizacja........................................................................ 24
               Ewolucja sposobów podłączania urządzeń peryferyjnych............................................... 25
                   Interfejsy poziomu systemu ..................................................................................... 25
                   Interfejsy urządzeń peryferyjnych............................................................................ 31
                   Wybór interfejsu ...................................................................................................... 33
Rozdział 1. Interfejs równoległy: port LPT ............................................................ 35
               1.1. Tradycyjny port LPT ................................................................................................ 36
               1.2. Ulepszenia portu równoległego ................................................................................ 40
               1.3. Standard IEEE 1284 ................................................................................................. 40
                    1.3.1. Tryb półbajtowy............................................................................................. 41
                    1.3.2. Bajtowy tryb wejściowy................................................................................. 43
                    1.3.3. Tryb EPP........................................................................................................ 44
                    1.3.4. Tryb ECP ....................................................................................................... 49
                    1.3.5. Tryby i rejestry ECP ...................................................................................... 52
                    1.3.6. Negocjacja w standardzie IEEE 1284 ............................................................ 56
                    1.3.7. Interfejsy fizyczne i elektryczne..................................................................... 57
                    1.3.8. Rozwój standardu IEEE 1284 ........................................................................ 60
               1.4. Obsługa systemowa portów LPT.............................................................................. 61
               1.5. Funkcje portu równoległego oraz obsługa Plug-and-Play ........................................ 62
               1.6. Zastosowania portu LPT........................................................................................... 62
               1.7. Konfiguracja portów LPT......................................................................................... 64
               1.8. Rozwiązywanie problemów z działaniem portu równoległego ................................ 66
4                                                                                     Interfejsy sprzętowe komputerów PC


Rozdział 2. Interfejs szeregowy: port COM ........................................................... 69
                2.1. Interfejs RS-232C..................................................................................................... 70
                2.2. Interfejsy pomocnicze i konwertery poziomów........................................................ 75
                2.3. Tryb asynchroniczny ................................................................................................ 80
                2.4. Sterowanie przepływem danych ............................................................................... 81
                2.5. Układy scalone asynchronicznych nadajniko-odbiorników (UART) ....................... 83
                2.6. Obsługa portów COM w systemie operacyjnym ...................................................... 90
                2.7. Konfiguracja portów COM....................................................................................... 91
                2.8. Zastosowania portów COM...................................................................................... 91
                2.9. Porty COM i PnP...................................................................................................... 93
               2.10. Problemy z działaniem portów COM i ich rozwiązywanie ...................................... 94
                    2.10.1. Testowanie konfiguracji................................................................................. 94
                    2.10.2. Testowanie działania...................................................................................... 95
                    2.10.3. Brak zasilania interfejsu, czyli dlaczego nie działa mysz............................... 97
Rozdział 3. Interfejsy bezprzewodowe .................................................................. 99
                3.1. Port podczerwieni — IrDA....................................................................................... 99
                3.2. Radiowy interfejs Bluetooth................................................................................... 103
Rozdział 4. Magistrale szeregowe: USB i FireWire.............................................. 109
                4.1. Uniwersalna magistrala szeregowa: USB............................................................... 110
                     4.1.1. Architektura USB......................................................................................... 110
                     4.1.2. Model transmisji danych .............................................................................. 116
                     4.1.3. Transakcje magistrali ................................................................................... 119
                     4.1.4. Przepustowość magistrali i urządzenia......................................................... 127
                     4.1.5. Synchronizacja podczas transmisji izochronicznych.................................... 133
                     4.1.6. Interfejs fizyczny.......................................................................................... 137
                     4.1.7. Urządzenia USB........................................................................................... 146
                     4.1.8. Koncentratory USB...................................................................................... 148
                     4.1.9. Host.............................................................................................................. 159
                    4.1.10. Konfiguracja i zarządzanie urządzeniami .................................................... 171
                    4.1.11. Zastosowania interfejsu USB....................................................................... 178
                4.2. Magistrala IEEE 1394: FireWire ............................................................................ 194
                     4.2.1. Fizyczna warstwa sieci................................................................................. 195
                     4.2.2. Protokół IEEE 1394 ..................................................................................... 196
                     4.2.3. Urządzenia i adaptery interfejsu 1394.......................................................... 199
                     4.2.4. Zastosowania interfejsu 1394....................................................................... 200
Rozdział 5. Magistrala SCSI .............................................................................. 203
                5.1. Równoległe interfejsy SCSI ................................................................................... 206
                     5.1.1. Protokół magistrali....................................................................................... 207
                     5.1.2. Sterowanie interfejsem i wykonywanie poleceń .......................................... 213
                     5.1.3. Kable, złącza i sygnały................................................................................. 216
                     5.1.4. Terminatory.................................................................................................. 224
                     5.1.5. Konfiguracja urządzeń SCSI........................................................................ 226
                     5.1.6. Podłączanie urządzeń do magistrali SCSI.................................................... 228
                5.2. Interfejs Fibre Channel ........................................................................................... 233
                5.3. Adapter hosta SCSI ................................................................................................ 234
Rozdział 6. Magistrale i karty rozszerzeń wejścia-wyjścia ................................... 237
                6.1. Magistrale PCI oraz PCI-X .................................................................................... 238
                     6.1.1. Wyliczanie urządzeń .................................................................................... 241
                     6.1.2. Protokół magistrali....................................................................................... 243
                     6.1.3. Przepustowość magistrali............................................................................. 266
                     6.1.4. Przerwania: INTx#, PME#, MSI i SERR#................................................... 269
Spis treści                                                                                                                                 5


                   6.1.5. Bezpośredni dostęp do pamięci, emulacja DMA trybu ISA
                           (PC/PCI, DDMA)........................................................................................ 279
                   6.1.6. Mosty PCI i PCI-X....................................................................................... 280
                   6.1.7. Konfiguracja urządzeń ................................................................................. 292
                   6.1.8. Interfejs elektryczny i budowa magistrali .................................................... 315
              6.2. Interfejs AGP.......................................................................................................... 325
                   6.2.1. Protokoły transakcji ..................................................................................... 327
                   6.2.2. Translacja adresów: szczelina AGP i GART ............................................... 333
                   6.2.3. Transakcje izochroniczne AGP 3.0.............................................................. 334
                   6.2.4. Rejestry konfiguracyjne AGP ...................................................................... 335
                   6.2.5. Karty i gniazda AGP .................................................................................... 339
              6.3. Architektura PCI Express ....................................................................................... 343
                   6.3.1. Formaty transakcji i pakietów w architekturze PCI Express ........................ 349
                   6.3.2. Przesyłanie pakietów i przepustowość łączy................................................ 352
              6.4. Interfejs LPC .......................................................................................................... 353
              6.5. Karty i magistrale rozszerzeń w notebookach ........................................................ 358
                   6.5.1. Interfejsy PCMCIA, karty PC i CardBus ..................................................... 359
Rozdział 7. Specjalizowane interfejsy urządzeń peryferyjnych .............................. 365
              7.1. Interfejs klawiatury................................................................................................. 365
                   7.1.1. Interfejsy klawiaturowe: AT i PS/2.............................................................. 366
                   7.1.2. Kontroler klawiatury i myszy 8042 (8242) .................................................. 368
                   7.1.3. Obsługa systemowa i interfejs programowy ................................................ 371
              7.2. Interfejs myszy ....................................................................................................... 372
                   7.2.1. Myszy szeregowe: mysz Microsoft i mysz PC............................................. 372
                   7.2.2. Myszy PS/2 .................................................................................................. 373
                   7.2.3. Mysz szynowa.............................................................................................. 374
              7.3. Interfejsy drukarki i plotera .................................................................................... 375
                   7.3.1. Interfejsy równoległe: Centronics i IEEE 1284............................................ 376
                   7.3.2. Szeregowe interfejsy drukarki...................................................................... 378
                   7.3.3. Obsługa drukarki w systemie operacyjnym.................................................. 380
              7.4. Interfejsy wyjściowe kart graficznych .................................................................... 381
                   7.4.1. Interfejs cyfrowy RGB TTL......................................................................... 381
                   7.4.2. Analogowe interfejsy RGB .......................................................................... 382
                   7.4.3. Interfejsy cyfrowe P&D, DVI i DFP............................................................ 389
                   7.4.4. Wewnętrzne interfejsy cyfrowe.................................................................... 393
                   7.4.5. Interfejsy sygnału wideo .............................................................................. 395
              7.5. Interfejsy audio....................................................................................................... 397
                   7.5.1. Interfejsy analogowe .................................................................................... 397
                   7.5.2. Interfejsy cyfrowe ........................................................................................ 399
                   7.5.3. Interfejs MIDI .............................................................................................. 400
                   7.5.4. Interfejs karty syntezatora ............................................................................ 403
              7.6. Interfejs d ojstika ................................................................................................... 403
Rozdział 8. Interfejsy urządzeń pamięci masowych ............................................. 407
              8.1. Interfejs stacji dysków elastycznych....................................................................... 408
                   8.1.1. Interfejs sprzętowy ....................................................................................... 408
                   8.1.2. Kontroler stacji dysków elastycznych .......................................................... 411
              8.2. Urządzenia IDE i interfejs ATA (ATAPI).............................................................. 415
                   8.2.1. Interfejs równoległy ATA ............................................................................ 418
                   8.2.2. Szeregowy interfejs ATA............................................................................. 446
              8.3. Interfejsy i konstrukcja półprzewodnikowych pamięci masowych......................... 452
                   8.3.1. CompactFlash .............................................................................................. 453
                   8.3.2. SmartMedia Card ......................................................................................... 456
6                                                                                     Interfejsy sprzętowe komputerów PC


                     8.3.3. Karty Multimedia Card i Secure Digital ...................................................... 457
                     8.3.4. Karty Miniature Card ................................................................................... 459
                8.4. Systemowa obsługa urządzeń pamięci masowych.................................................. 460
Rozdział 9. Interfejsy sieciowe .......................................................................... 463
                9.1. Standardy i interfejsy sieci Ethernet ....................................................................... 463
                9.2. Adaptery sieciowe .................................................................................................. 468
Rozdział 10. Pomocnicze interfejsy i magistrale szeregowe ................................ 475
               10.1. Kanały komunikacji szeregowej bazujące na I2C .................................................. 476
                    10.1.1. Magistrala I2C ............................................................................................. 476
                    10.1.2. ACCESS.Bus ............................................................................................... 482
                    10.1.3. SMBus ......................................................................................................... 488
                    10.1.4. Porównanie magistral I2C, ACCESS.Bus i SMBus..................................... 498
               10.2. Media Independent Interface .................................................................................. 499
               10.3. Interfejs SPI............................................................................................................ 501
               10.4. Interfejs JTAG........................................................................................................ 502
               10.5. Programowe implementacje interfejsów szeregowych........................................... 507
                Skorowidz ..................................................................................... 511
Rozdział 2.
Interfejs szeregowy:
port COM
           Uniwersalny interfejs szeregowy — port COM — występuje w komputerach PC począw-
           szy od pierwszych modeli. Port zapewnia asynchroniczną1 transmisję danych z wyko-
           rzystaniem standardu RS-232C. Porty COM są implementowane za pomocą układów
           scalonych określanych jako Uniwersalny Asynchroniczny Odbiorniko-nadajnik (ang.
           Universal Asynchronous Receiver-Transmitter — UART) zgodnych z modelem pro-
           gramowym i8250/16450/16550. Ka dy z nich zajmuje osiem sąsiednich ośmiobitowych
           rejestrów w przestrzeni adresowej wejścia-wyjścia i mo e wykorzystywać jeden ze stan-
           dardowych adresów: 3F8h (COM1), 2F8h (COM2), 3E8h (COM3) oraz 2E8h (COM4).
           Porty mogą generować przerwania sprzętowe IRQ4 (zwykle u ywane dla portów COM1
           i COM3) oraz IRQ3 (u ywany dla COM2 i COM4). Ze strony sprzętowej porty zawie-
           rają linie do szeregowego nadawania danych i ich odbioru. Jest tak e zbiór linii sterujących
           i monitorowania stanu zgodnych ze standardem RS-232C. Porty COM są wyposa one
           w zewnętrzne męskie złącza DB25P lub DB9P na panelu tylnym komputera (patrz
           podrozdział 2.1). Cechą wyró niającą interfejs jest zastosowanie sygnałów, które nie są
           sygnałami TTL: wszystkie zewnętrzne sygnały portu są bipolarne. Interfejs nie gwarantuje
           galwanicznej separacji: masa obwodu podłączonego urządzenia jest połączona z masą
           komputera. Szybkość transmisji sięga 115 200 b/s.

           BIOS komputera obsługuje do czterech portów szeregowych: od COM1 do COM4 (kom-
           putery klasy AT zazwyczaj są wyposa one w dwa porty). Przerwanie BIOS KPVJ
           zapewnia inicjalizację portu, wejście i wyjście znaków (bez wykorzystania przerwań)
           i odpytywanie stanu. Za pomocą standardowych wywołań KPVJ mo na zaprogra-
           mować szybkości transmisji w zakresie od 110 do 9 600 b/s (mniej ni pozwalają rze-
           czywiste mo liwości portu). W celu zwiększenia przepustowości powszechnie wyko-
           rzystuje się interakcję oprogramowania aplikacyjnego z portem na poziomie rejestrów.
           Z tego powodu sprzęt portów szeregowych musi być zgodny z modelem oprogramowania
           i8250/1645/16550.


1
    W komputerach PC transmisję synchroniczną obsługują tylko specjalne adaptery, takie jak SDLC lub V.35.
70                                                      Interfejsy sprzętowe komputerów PC


        Nazwa portu wskazuje na jego główne przeznaczenie: podłączanie sprzętu (np. mode-
        mów) umo liwiającego komunikację z innymi komputerami, sieciami i urządzeniami
        peryferyjnymi. Urządzenia peryferyjne wyposa one w interfejsy szeregowe — drukarki,
        plotery, itp. mo na podłączać bezpośrednio do portu. Porty COM są powszechnie wy-
        korzystywane do podłączania myszy oraz do bezpośredniego podłączania dwóch kom-
        puterów. Porty COM wykorzystuje się równie w celu podłączania do komputera kluczy
        elektronicznych.

        Praktycznie wszystkie nowoczesne płyty główne (począwszy od pierwszych płyt wy-
        posa onych w złącze PCI dla procesorów x486) są wyposa one w dwa wbudowane
        adaptery portu COM. Jeden z portów mo na tak e wykorzystać do bezprzewodowej
        komunikacji z urządzeniami peryferyjnymi za pomocą podczerwieni (IrDA). Istnieją
        karty ISA wyposa one w kilka portów COM. Najczęściej obok portów COM na kartach
        tego typu jest port LPT oraz kontrolery interfejsów dysków (FDC+IDE). Jeśli jest po-
        trzebna większa liczba interfejsów, mo na zainstalować dodatkowe specjalizowane ad-
        aptery nazywane kartami wieloportowymi. Są to stosunkowo drogie karty wyposa one
        w 4, 8, 12, a nawet 16 portów. Wyprowadzenie tak du ej liczby złączy na tylnym pa-
        nelu komputera PC jest kłopotliwe. Z tego powodu karty wieloportowe są zazwyczaj
        wyposa one w blok zewnętrznych złączy zawierających elektronikę i podłączonych do
        adaptera za pomocą kabla z wielo yłowymi złączami. Karty wieloportowe nie są ob-
        sługiwane przez BIOS.

        „Klasyczny” port COM umo liwiał jedynie transmisję danych sterowaną programowo.
        W celu przesłania ka dego bajtu procesor musiał wykonać kilka instrukcji. Nowoczesne
        porty są wyposa one w kilka buforów danych FIFO i umo liwiają transfer danych poprzez
        kanał DMA. To znacznie zmniejsza obcią enie procesora — szczególnie istotny czynnik
        przy du ych szybkościach transmisji.



2.1. Interfejs RS-232C
        Interfejs RS-232C jest przeznaczony do podłączania sprzętu do transmisji lub odbie-
        rania danych (ang. Data Terminal Equipment — DTE) ze sprzętem zapewniającym
        kanały danych (ang. Data Communication Equipment — DCE). Rolę urządzenia DTE
        mo e spełniać komputer, drukarka, ploter lub inne urządzenie peryferyjne. Rolę urzą-
        dzenia DCE zwykle spełnia modem. Celem połączenia jest zapewnienie łącza pomię-
        dzy dwoma urządzeniami transmisji danych. Schemat połączeń pokazano na rysunku
        2.1. Interfejs umo liwia wyłączenie kanału zdalnej komunikacji wraz z parą urządzeń
        DCE poprzez bezpośrednie połączenie dwóch urządzeń za pomocą kabla modemu ze-
        rowego (ang. null-modem) (rysunek 2.2).

Rysunek 2.1.
Schemat połączeń
interfejsu RS-232C
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                   71


Rysunek 2.2.
Połączenie RS-232C
za pomocą kabla
zerowego modemu


        W standardzie określono sygnały sterujące interfejsu, transmisji danych, interfejsu elek-
        trycznego i typy złączy. Standard zapewnia asynchroniczne i synchroniczne tryby transmi-
        sji, ale porty COM obsługują jedynie tryb asynchroniczny. Funkcjonalnie standard RS-
        232C odpowiada standardom CCITT/ITU V.24/V.28, ale występują w nim inne nazwy
        sygnałów.

        W standardzie RS-232C (patrz rysunek 2.3) zdefiniowano asymetryczne nadajniki i od-
        biorniki, w których sygnały są przesyłane względem wspólnego przewodu: obwodu masy
        (w innych interfejsach, takich jak RS-422, są wykorzystywane symetryczne sygnały
        ró nicowe). Interfejs nie gwarantuje galwanicznej separacji urządzeń. Napięcia w zakresie
        −12 V do −3 V odpowiadają logicznej jedynce (stan MARK) na linii danych odbiornika
        (sygnał 4:). Napięcia w zakresie +3 V do +12 V odpowiadają logicznemu zeru (stan
        SPACE). Dla sygnałów sterujących napięcia w zakresie od +3 V do +12 V odpowiadają
        stanowi ON, natomiast w zakresie −12 V do −3 V stanowi OFF. Zakres od −3 V do +3 V
        to martwa strefa zapewniająca histerezę odbiornika: stan linii uznaje się za zmieniony
        wyłącznie po przekroczeniu progu (rysunek 2.3). Poziomy sygnałów na wyjściach na-
        dajnika powinny mieścić się w zakresie od −12 V do –5 V oraz od +5 V do +12 V.
        Ró nica potencjałów pomiędzy masami sygnałów (SG) połączonych urządzeń po-
        winna być mniejsza ni 2 V. Większa ró nica potencjałów mo e spowodować błędny
        odbiór sygnałów. Warto zwrócić uwagę, e poziomy sygnałów TTL (na wejściach i wyj-
        ściach układów scalonych UART) są przesyłane z wykorzystaniem prostego kodowania
        na liniach 6: i 4: oraz odwróconego dla pozostałych.

Rysunek 2.3.
Odbiór sygnałów
RS-232C




        Interfejs zakłada istnienie uziemienia zabezpieczającego dla podłączonych urządzeń, jeśli
        oba są zasilane prądem zmiennym z sieci i są wyposa one w filtry.
72                                                        Interfejsy sprzętowe komputerów PC


           Podłączanie i odłączanie kabli interfejsów urządzeń wyposażonych w indywidualne
           zasilacze powinno odbywać się przy wyłączonym zasilaniu. W innym przypadku różnica
           napięć w nieustabilizowanych urządzeniach w momencie nawiązywania połączenia
           może spowodować przepływ prądu w obwodach wyjściowych lub, co jest bardziej
           niebezpieczne, w obwodach wejściowych interfejsu i uszkodzić układy scalone.

        Standard RS-232C reguluje typy wykorzystywanych złączy.

        Zazwyczaj urządzenia DTE (włącznie z portami COM) są wyposa one w męskie złącze
        DB-25P lub mniejsze męskie złącze DB-9P. Złącza dziewięciostykowe nie są wypo-
        sa one w dodatkowe sygnały potrzebne do obsługi trybu synchronicznego (w większości
        złączy dwudziestopięciostykowych styki te są nieu ywane).

        Urządzenia DCE (modemy) są wyposa one w eńskie złącza DB-25S lub DB-9S.

        Z reguły tej wynika, e złącza urządzeń DCE mo na połączyć ze złączami urządzeń DTE
        bezpośrednio lub za pomocą kabli adapterów „na wprost” wyposa onych w eńskie złą-
        cze z jednej strony i męskie z drugiej, których przewody są połączone „jeden do jednego”.
        Istnieją te kable adapterów wyposa one w złącze 9-stykowe z jednej strony i 25-stykowe
        z drugiej (rysunek 2.4).

Rysunek 2.4.
Kable
do podłączania
modemów




        Jeśli urządzenia DTE są podłączone bez wykorzystania modemów, ich złącza są połączone
        za pomocą kabla zerowego modemu (Z-modem). Takie kable są wyposa one w eńskie
        złącza po obu stronach, a yły skrzy owane są zgodnie ze schematem pokazanym na
        rysunku 2.5.




Rysunek 2.5. Kable zerowego modemu: a — minimalny, b — kompletny
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                  73


          Jeśli w urządzeniu DTE zainstalowano złącze eńskie, istnieje prawie stuprocentowa pew-
          ność, e nale y je podłączyć do innego urządzenia za pomocą kabla na wprost podob-
          nego do kabla wykorzystywanego do połączenia modemu. eńskie złącza zazwyczaj
          montuje się w urządzeniach, których nie łączy się za pośrednictwem modemów.

          W tabeli 2.1 zaprezentowano funkcje styków złącza portu COM (oraz innych urządzeń
          typu DTE). Styki złącza DB-25S są zdefiniowane przez standard EIA/TIA-232-E,
          natomiast złącza DB-9S przez standard EIA/TIA-574. W modemach (DCE) stosuje się
          te same nazwy obwodów i styków, ale funkcje sygnałów (wejście-wyjście) są odwrócone.

Tabela 2.1. Złącza interfejsu RS-232C i wykorzystywane w nich sygnały
                                          Numer żyły zewnętrznego kabla
           Sygnał             Styk złącza                               Kierunek
                                          łączącego z komputerem PC
                                                                        Wejście/Wyjście
    Port COM RS-232 V.24     DB-25P DB-9P 11      22     33      44
    PG       AA      101     1       5       (10)     (10)     (10)     1     —
    SG       AB      102     7       5       5        9        1        13    —
    TD       BA      103     2       3       3        5        3        3     Wyjście
    RD       BB      104     3       2       2        3        4        5     Wejście
    RTS      CA      105     4       7       7        4        8        7     Wyjście
    CTS      CB      106     5       8       8        6        7        9     Wejście
    DSR      CC      107     6       6       6        2        9        11    Wejście
    DTP      CD      108/2   20      4       4        7        2        14    Wyjście
    DCD      CF      109     8       1       1        1        5        15    Wejście
    RI       CE      125     22      9       9        8        6        18    Wejście
1
  Taśma dla ośmiobitowych kart wielofunkcyjnych.
2
  Taśma dla szesnastobitowych kart wielofunkcyjnych i portów wbudowanych.
3
  Wersja taśmy dla portów wbudowanych.
4
  Szeroka taśma dla złącza 25-stykowego.

          Poni ej przeanalizujemy podzbiór sygnałów interfejsu RS-232C dla trybu asynchro-
          nicznego z punktu widzenia portu COM komputera PC. Dla wygody wykorzystamy
          mnemoniki przyjęte w opisach portów COM i większości urządzeń (które ró nią się
          od anonimowych notacji opisu kabli RS-232 i V.24). Nale y pamiętać, e stan aktywny
          (ON) sygnałów sterujących i logiczne zero przesyłanych danych są reprezentowane przez
          potencjał dodatni (powy ej +3 V) interfejsu, natomiast stan OFF i logiczna jedynka są
          reprezentowane przez potencjał ujemny (poni ej −3 V). W tabeli 2.2 zaprezentowano
          funkcje sygnałów interfejsu. Na rysunku 2.6 pokazano normalną sekwencję sygnałów
          sterujących dla przypadku modemu podłączonego do portu COM:




Rysunek 2.6. Sekwencja sygnałów sterujących interfejsu
74                                                           Interfejsy sprzętowe komputerów PC


Tabela 2.2. Funkcje sygnałów interfejsu RS-232C
 Sygnał     Funkcja
 PG         Uziemienie zabezpieczające: podłączone do obudowy urządzenia i ekranu kabla.
 SG         Masa sygnału (obwodu): w zale ności od poziomu sygnału.
 TD         Transmisja danych: dane przesyłane szeregowo, wynik generowany przez nadajnik.
 RD         Odbiór danych: dane szeregowe, dane wejściowe odbiornika.
 RTS        Request To Send ( ądanie wysłania): stan ON informuje modem, e terminal posiada dane
            do transmisji. W trybie półdupleksowym wykorzystywany do sterowania kierunkiem
            transmisji: stan ON to sygnał dla modemu do przełączenia do trybu transmisji.
 CTS        Clear To Send (zezwolenie na wysłanie): zezwolenie wysyłania danych dla terminala.
            Stan OFF uniemo liwia transmisję danych. Sygnał jest wykorzystywany do sprzętowej
            kontroli strumieni danych.
 DSR        Data Set Ready (zbiór danych gotowy): odebranie sygnału oznacza, e urządzenie
            jest gotowe do transmisji danych (modem w trybie działania jest podłączony do kanału
            i zakończył negocjacje z urządzeniem po drugiej stronie kanału).
 DTR        Data Terminal Ready (terminal danych gotowy): wysłanie sygnału oznacza,
             e terminal jest gotowy do wymiany danych. Stan ON utrzymuje połączenie
            komutowanego kanału.
 DCD        Data Carrier Detected (wykryto nośną danych): odebranie sygnału oznacza,
             e wykryto sygnał nośnej zdalnego modemu.
 RI         Ring Indicator (wskaźnik dzwonka): odebranie sygnału wywołania (dzwonka).
            W komutowanym kanale sygnał ten oznacza, e modem otrzymuje sygnał dzwonienia.

          1. Komputer PC sygnalizuje, e chce skorzystać z modemu, poprzez ustawienie
             linii DTR.
          2. Modem sygnalizuje, e jest gotowy i ustanawia połączenie, poprzez ustawienie
             sygnału DSR.
          3. Poprzez ustawienie sygnału RTS komputer prosi o zezwolenie na transmisję
             i informuje modem, e jest gotowy do odbioru danych.
          4. Poprzez ustawienie sygnału CTS modem informuje, e jest gotowy do odbioru
             danych z komputera i do wysyłania ich w łączu.
          5. Poprzez wyzerowanie sygnału CTS modem sygnalizuje, e nie mo e kontynuować
             odbioru danych (na przykład bufor jest pełny) oraz e komputer powinien
             wstrzymać wysyłanie danych.
          6. Poprzez ustawienie sygnału CTS modem zezwala na wznowienie transmisji
             danych (zwolniło się miejsce w buforze).
          7. Wyzerowanie sygnału RTS mo e oznaczać, e bufor komputera jest pełny
             (modem musi wstrzymać wysyłanie danych do komputera) lub e komputer
             nie ma danych do przesłania do modemu. W takim przypadku modem zwykle
             wstrzymuje transmisję danych do komputera.
          8. Modem potwierdza wyzerowanie sygnału RTS poprzez wyzerowanie sygnału CTS.
          9. W celu wznowienia wysyłania danych komputer ponownie ustawia sygnał RTS.
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                75


         10. Modem potwierdza gotowość.
         11. Komputer sygnalizuje zakończenie wymiany.
         12. Modem odpowiada, wysyłając potwierdzenie.
         13. Komputer zeruje sygnał DTR, co zazwyczaj oznacza sygnał do przerwania
            połączenia.
         14. Poprzez wyzerowanie sygnału DSR modem sygnalizuje przerwanie połączenia.

        Z analizy powy szej sekwencji jasno wynika cel połączenia sygnałów 6454 oraz 465%65
        w kablu zerowego modemu.



2.2. Interfejsy pomocnicze
     i konwertery poziomów
        W interfejsach szeregowych nie zawsze wykorzystuje się bipolarne sygnały RS-232C.
        Korzystanie z nich jest niewygodne np. z powodu konieczności wykorzystania bipo-
        larnych zasilaczy dla nadajniko-odbiorników. Układy scalone opisanych powy ej na-
        dajniko-odbiorników UART pracują z sygnałami TTL(CMOS). Te same rodzaje sy-
        gnałów są stosowane w interfejsach ró norodnych urządzeń. Na przykład sygnały
        TTL(CMOS) są wykorzystywane w portach twardych dysków, telefonów komórkowych
        (choć o bardzo niskich poziomach) oraz ró nych innych urządzeniach. Wiele urządzeń
        (włącznie z kieszonkowymi komputerami PC i telefonami komórkowymi) jest wypo-
        sa onych w interfejsy szeregowe wykorzystujące logikę niskonapięciową. Oczywiście
        sygnały standardowej logiki nie charakteryzują się tak wysoką rezystancją szumów jak
        RS-232C, ale nie zawsze jest to potrzebne.

        W celu umo liwienia wzajemnej konwersji pomiędzy poziomami napięć interfejsu
        RS-232C i logiki CMOS istnieją specjalne układy scalone buforów dla odbiorników
        (z histerezą) oraz nadajników sygnałów bipolarnych. Układy te jako pierwsze stają się
        ofiarami efektów „pirotechnicznych” w przypadku naruszenia reguł uziemiania i łą-
        czenia urządzeń. Dawniej często instalowano je w podstawkach w celu ułatwienia wy-
        miany w przypadku awarii. Na rysunku 2.7 zaprezentowano rozmieszczenie styków jedne-
        go z popularnych układów scalonych generujących sygnały na poziomie interfejsu
        RS-232C. Często obwody buforów są włączone w układy scalone LSI interfejsów.
        W ten sposób cena urządzenia staje się ni sza, ale w przypadku awarii powstaje ryzyko
        większych strat. Uszkodzenie układów scalonych interfejsu z powodu zwarcia jest mało
        prawdopodobne: prąd zwarcia nadajników zazwyczaj nie przekracza 20 mA.

        W specjalnych kablach adapterów często stosowane są konwertery produkowane przez
        firmy Maxim i Sypex. Kable te sprawdzają się pod tym względem, e zawierają za-
        równo odbiorniki, jak nadajniki. Spośród szerokiej gamy dostępnych konwerterów z ła-
        twością mo na wybrać te, które zawierają potrzebną liczbę odbiorników i nadajników,
        a tak e wymaganą charakterystykę napięciową (unipolarne, bipolarne, niskonapięciowe).
76                                                           Interfejsy sprzętowe komputerów PC




Rysunek 2.7. Generatory sygnałów RS-232C: a — odbiornik 1489; b — odbiornik 1488;
c — tabela stanów wyjściowych nadajnika (*na brakującym wyjściu 1B zakłada się logiczną jedynkę)

        Kiedy jest wymagana wysoka rezystancja szumów (dla du ych szybkości lub transmisji
        na dalekie odległości), wykorzystywane są ró ne wersje elektryczne interfejsu szere-
        gowego: RS-422A (V.11, X.27), RS-423A (V.10, X.26) oraz RS-485. Na rysunku 2.8
        pokazano schematy podłączania odbiorników i nadajników wraz z limitami długości
        łączy (L) oraz maksymalnymi szybkościami transmisji (V). Asymetryczne linie inter-
        fejsów RS-232C i RS-423A charakteryzują się najni szą odpornością na znane zakłó-
        cenia, chocia ró nicowe wejście odbiornika RS-423A w pewnym stopniu neutralizuje
        tę sytuację. Najlepsze parametry mają interfejsy RS-422A i RS-485 pracujące w sy-
        metrycznych liniach komunikacyjnych. Wykorzystuje się w nich nadajniki ró nicowe
        z osobną parą przewodów (z przeplotem) dla ka dej pętli sygnału.




Rysunek 2.8. Standardy interfejsów szeregowych

        W interfejsach EIA-RS-422 (ITU-T V.11, X.27) i EIA-RS-485 (ISO 8482) wykorzy-
        stuje się symetryczną transmisję sygnału. Interfejsy te umo liwiają realizację połą-
        czeń zarówno w topologii punkt-punkt, jak i w magistrali. Nośnikiem informacji jest
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                         77


            w nich ró nica potencjałów pomiędzy przewodnikami A i B. Ró nica potencjałów na
            wejściu odbiornika UA−UB  0,2 V (A ma większy potencjał dodatni ni B) odpowiada
            stanowi OFF (przerwa), natomiast UA−Ug  −0,2 V (A ma większy potencjał ujemny
            ni B) stanowi ON (mark). Zakres |UA–UB|0,2 V to martwa strefa (histereza) zapew-
            niająca ochronę przed zakłóceniami. Na wyjściach nadajnika sygnały UA i Ug zazwy-
            czaj mają poziomy 0 V i +5 V (CMOS) lub +1 V i +4 V (TTL). Ró nicowe napięcie
            wyjściowe musi mieścić się w zakresie od 1,5 V do 5 V. Rezystancja wyjściowa na-
            dajnika wynosi 100 Ω. Interfejsy są zgodne pod względem elektrycznym, chocia wystę-
            pują pewne ró nice w ograniczeniach. Zasadniczą cechą wyró niającą nadajniki
            RS-485 jest ich zdolność do przełączania się do stanów wysokiej impedancji. Nadajniki
            RS-422/ 485 są zgodne z odbiornikami RS-423. W tabeli 2.3 wyszczególniono główne
            parametry interfejsów. Topologie połączeń pokazano na rysunku 2.9.

Tabela 2.3. Parametry interfejsów RS-422 i RS-485
    Parametr                      RS-422                         RS-485
    Próg działania |UA−UB| [V]    0,2                            0,2
    Dopuszczalny poziom zakłóceń −6.8 – +6.8                     −6.8 – +11.8
    trybu wspólnego, [V]1.
    Dopuszczalne napięcie         −7 – +7                        −7 – +12
    wejściowe, [V]1.
    Rezystancja wejściowa         4                              12
    odbiornika, [kΩ].
    Minimalna rezystancja         100                            60
    obcią enia nadajnika, [Ω].
    Maksymalna liczba węzłów.     Jeden nadajnik plus            32 (nadajniki, odbiorniki lub
                                  10 odbiorników                 kombinacja nadajników i odbiorników)
    Maksymalna długość [m].       1200 (100 kb/s) 12 (10 Mb/s)   1200 (100 kb/s) 12 (10 Mb/s)
    Terminator, R=100 Ω.          Po stronie nadajnika           Po obu stronach
    Prąd zwarcia [mA].            150 do szyny GND              250 do szyny o potencjale −7 V
                                                                 − +12 V lub pomiędzy yłami A i B
1
    Napięcie jest mierzone względem masy obwodu węzła.




Rysunek 2.9. Topologia interfejsów: a — RS-422; b — RS-485 4- yłowy; c — RS-485 2- yłowy
78                                                       Interfejsy sprzętowe komputerów PC


        W celu zwiększenia liczby węzłów mo na podnieść rezystancję wejściową odbiorni-
        ków, ale to prowadzi do obni enia dopuszczalnej szybkości transmisji lub zmniejsze-
        nia potencjalnej odległości, na którą jest realizowana transmisja. Maksymalna szyb-
        kość transmisji na krótkich odległościach (do 10 metrów) jest ograniczona szybkością
        działania nadajnika (mo na osiągnąć częstotliwości do 25 MHz). Na średnich odległo-
        ściach ograniczenia zale ą od pojemności kabla (przy szybkości 1 200 b/s — 25 nF, przy
        szybkości 9 600 b/s — 30 nF, przy szybkości 115 kb/s — 250 pF). Maksymalna odległość
        jest ograniczona rezystancją DC pętli.

        Istnieją dwa typy interfejsu RS-485: dwu yłowy i cztero yłowy. Interfejs cztero yłowy
        (rysunek 2.9b) ustawia węzeł nadrzędny, którego nadajniki obsługują odbiorniki po-
        zostałych węzłów. Nadajnik węzła nadrzędnego jest zawsze aktywny: nie musi się prze-
        łączać do stanu wysokiej impedancji. Nadajniki pozostałych węzłów (podrzędnych)
        muszą posiadać trójstanowe wyjścia — są podłączone do wspólnej szyny nadajnika nad-
        rzędnego. W interfejsie dwu yłowym (rysunek 2.9c) wszystkie węzły są sobie równe.

        W najprostszym przypadku połączenia punkt-punkt interfejsy RS-485 i RS-422 są
        równowa ne i stan wysokiej impedancji nie jest u ywany.

        W celu utrzymania najmniej aktywnego stanu szyny RS-485, kiedy nie ma aktywnych
        nadajników, na linii instaluje się aktywny terminator, który utrzymuje potencjał prze-
        wodników. W tym stanie yła B musi charakteryzować się wy szym potencjałem do-
        datnim ni yła A.

        W przypadku połączenia wielopunktowego nale y zapewnić metodę dostępu do śro-
        dowiska transmisji. Najczęściej wykorzystuje się metodę odpytywania: wyznaczone urzą-
        dzenie nadrzędne odpytuje urządzenia podrzędne, sprawdzając ich gotowość do trans-
        misji. Przekazanie praw dostępu z jednego urządzenia do innego jest mo liwe zgodnie
        z ustanowionym protokołem. Czasami stosuje się tak e metody dostępu swobodnego
        (analogicznie do sieci Ethernet).

        Wejście ró nicowe interfejsów zapewnia zabezpieczenie przed zakłóceniami, ale w tym
        przypadku masy obwodów urządzeń muszą być połączone między sobą oraz do szyny
        uziemienia. W celu połączenia urządzeń wykorzystywana jest trzecia yła interfejsu (do
        tego celu mo na tak e wykorzystać ekran kabla). W celu zabezpieczenia przed przepły-
        wem przez trzecią yłę zbyt du ego prądu równowa ącego potencjały masy, w obwodzie
        umieszcza się rezystory (rysunek 2.10).

Rysunek 2.10.
Połączenia
masy obwodów
dla interfejsów
RS-422 i RS-485




        Interfejs RS-422 jest często wykorzystywany do podłączania urządzeń peryferyjnych
        (na przykład drukarek). Interfejs RS-485 to popularny sposób podłączenia sprzętu auto-
        matyki przemysłowej.
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                     79


        W celu transmisji sygnału w dwu yłowej linii łączącej odbiornik z nadajnikiem sto-
        sowany jest interfejs pętli prądowej, w którym zamiast napięciowych stosowane są sy-
        gnały prądowe. Prąd o natę eniu 20 mA odpowiada logicznej jedynce, natomiast brak
        przepływu prądu to logiczne zero. Taki sposób reprezentacji sygnałów w opisanym po-
        wy ej formacie transmisji asynchronicznej umo liwia wykrywanie przerw w łączu: od-
        biornik wykryje brakujący bit stopu (przerwa w łączu spełnia rolę stałego logicznego zera).

        Pętla prądowa zazwyczaj oznacza galwaniczną separację obwodów wejściowych odbior-
        nika od pozostałej części obwodu. W tym przypadku źródłem prądu w pętli jest nadajnik
        (w tej wersji nazywa się aktywnym nadajnikiem). Mo liwe jest równie zasilanie z od-
        biornika (aktywny odbiornik). W takim przypadku wyjście nadajnika mo e być galwa-
        nicznie odseparowane od pozostałej części obwodu nadajnika. Istnieją równie wersje
        uproszczone, które nie zapewniają galwanicznej separacji, ale są to zubo one wersje
        interfejsu. Warto zwrócić uwagę, e interfejs MIDI (patrz punkt 7.5.3) nie jest zgodny
        z „klasyczną” pętlą prądową.

        Pętla prądowa z galwaniczną separacją (rysunek 2.11) umo liwia transmisję sygnałów
        do kilku kilometrów, ale z niskimi szybkościami (szybkości powy ej 19 200 b/s nie są
        wykorzystywane, a kiedy odległość mierzy się w kilometrach, maksymalna szybkość
        wynosi 9 600 b/s, a nawet mniej). Maksymalna odległość jest określona przez rezy-
        stancję pary przewodów oraz poziom szumów. Poniewa interfejs wymaga jednej pary
        przewodów dla ka dego sygnału, zazwyczaj u ywane są tylko dwa sygnały interfejsu
        szeregowego (linia cztero yłowa). W przypadku wymiany dwukierunkowej wykorzy-
        stywane są wyłącznie sygnały do wysyłania i odbioru danych. W takiej sytuacji stosuje
        się programowe sterowanie przepływem XON/XOFF. Jeśli nie ma potrzeby dwukie-
        runkowej wymiany, jedna para przewodów jest wykorzystywana do transmisji danych,
        a druga do sterowania przepływem za pomocą sygnału CTS (protokół sprzętowy) lub
        odwróconej linii danych (protokół programowy). Przy pomocy odpowiedniego opro-
        gramowania mo na wykorzystać jedną pętlę prądową do zorganizowania półdupleksowej
        dwukierunkowej komunikacji pomiędzy dwoma urządzeniami. W takim przypadku ka dy
        odbiornik „słyszy” zarówno sygnały nadajników z drugiej strony łącza, jak sygnały
        nadajników własnych. Protokoły komunikacyjne uznają je jako sygnały echa. Aby był
        mo liwy odbiór bez błędów, nadajniki muszą pracować na zmianę.

Rysunek 2.11.
Konwersja
interfejsu RS-232C
na pętlę prądową




        Pętla prądowa umo liwia wykorzystanie dedykowanych fizycznych łączy (dzier awio-
        nych) bez modemów, ale z niskimi szybkościami transmisji. Czasami pętle prądowe
        stosuje się do podłączenia terminali interfejsu RS-232C w przypadku, kiedy odległość
        połączenia gwarantowana przez interfejs jest zbyt mała lub jeśli jest potrzebna separacja
        galwaniczna. Przekształcenie sygnałów RS-232C na sygnały pętli prądowej nie jest
80                                                         Interfejsy sprzętowe komputerów PC


        trudne. Na rysunku 2.11 pokazano bardzo prosty schemat konwertera umo liwiającego
        podłączenie terminala. Do uzyskania sygnałów bipolarnych wymaganych przez obwody
        wejściowe portu COM wykorzystywane jest zasilanie interfejsu. Konwerter mo na
        usprawnić, zapewniając ochronę przed przecią eniem optoizolatorów oraz w celu sta-
        bilizacji sygnałów napięciowych. Maksymalna szybkość transmisji zale y od szybkości
        wykorzystanych optoizolatorów (szybkość 9 600 b/s mo na osiągnąć stosując optoizo-
        latory dowolnego typu).



2.3. Tryb asynchroniczny
        Tryb asynchroniczny transmisji szeregowej jest bajtowy (znakowy): najmniejsza jed-
        nostka przesyłanych informacji to jeden bajt (jeden znak). Na rysunku 2.12 zilustro-
        wano format transmisji bajtowej. Transmisja ka dego bajtu rozpoczyna się od bitu
        startu, który sygnalizuje początek transmisji do odbiornika. Po nim są przesyłane bity
        danych i, czasami, bit parzystości. Transmisję kończy bit stopu. Bit startu kolejnego
        bajtu jest przesyłany w dowolnym czasie po bicie stopu poprzedniego bajtu, tzn. po-
        między transmisjami poszczególnych bajtów mogą występować pauzy dowolnej dłu-
        gości. Zastosowanie bitu startu, który zawsze ma ściśle zdefiniowaną wartość (logiczne
        zero), to prosta metoda synchronizacji odbiornika za pomocą sygnału z nadajnika.
        Odbiornik i nadajnik pracują z tą samą szybkością transmisji. Wewnętrzny generator
        synchronizacji odbiornika wykorzystuje licznik dzielnika częstotliwości, który jest usta-
        wiany na wartość zero w momencie odebrania bitu startu. Licznik ten generuje we-
        wnętrzne sygnały strobujące, dzięki którym odbiornik odbiera następne bity. W idealnej
        sytuacji impulsy strobujące są generowane w środku interwałów bitowych, co umo liwia
        odbiór danych nawet wtedy, gdy szybkości transmisji nadajnika i odbiornika nieznacznie
        się ró nią. Jest oczywiste, e w przypadku transmisji ośmiu bitów danych, jednego bitu
        parzystości i jednego bitu stopu, dopuszczalna tolerancja częstotliwości zapewniająca
        prawidłowy odbiór danych nie mo e przekroczyć pięciu procent. Biorąc pod uwagę
        zniekształcenia fazy oraz kwantową naturę licznika synchronizacji, dopuszczalna tole-
        rancja częstotliwości jest jeszcze mniejsza. Im mniejszy współczynnik podziału wewnętrz-
        nego generatora częstotliwości (wy sza częstotliwość transmisji), tym mniej dokładne
        umieszczenie sygnału strobującego w stosunku do środka przedziału bitowego, a zatem
        większe wymagania dopasowania częstotliwości.




Rysunek 2.12. Format asynchronicznej transmisji przez interfejs RS-232C

        Im wy sza częstotliwość transmisji, tym bardziej zniekształcone sygnały wpływają na
        fazę odbieranych sygnałów. Połączenie tych czynników skutkuje zwiększeniem wymagań
        dotyczących dopasowania częstotliwości odbiornika i nadajnika w miarę zwiększania się
        szybkości transmisji.
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                       81


        Format transmisji asynchronicznej umo liwia wykrywanie potencjalnych błędów transmisji.
             Jeśli otrzymano sygnał rozpoczęcia transmisji, ale w momencie strobowania
             bitu startu odebrano logiczną jedynkę, bit startu mo na uznać za błędny.
             W takiej sytuacji odbiornik powraca do stanu oczekiwania. Odbiornik
             nie musi zgłaszać tego błędu.
             Jeśli podczas przedziału czasu przydzielonego dla bitu stopu zostanie wykryte
             logiczne zero (poziom wysoki), następuje zarejestrowanie bitu stopu.
             W przypadku wykorzystania kontroli parzystości, po wysłaniu bitów danych
             wysyłany jest bit parzystości. Bit ten uzupełnia liczbę logicznych jedynek
             w bitach danych do liczby parzystej lub nieparzystej, w zale ności od
             wcześniejszych ustawień. Błąd jest rejestrowany w przypadku odebrania
             bajtu zawierającego niepoprawną wartość bitu parzystości.
             Kontrola formatu umo liwia wykrycie przerw łącz: z reguły w przypadku
             przerwy w łączu odbiornik „widzi” logiczne zero. To logiczne zero początkowo
             jest interpretowane jako bit startu lub zerowe bity danych, ale później wykonywana
             jest kontrola bitu stopu.

        Dla trybu asynchronicznego przyjmuje się zbiór standardowych szybkości transmisji:
        50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 i 115200
        bitów na sekundę (b/s). Czasami zamiast terminu b/s wykorzystuje się termin bod, ale
        dla transmisji danych binarnych określenie to jest niepoprawne. Body wykorzystuje się
        do pomiaru częstotliwości zmian stanu łącza, ale w przypadku zastosowania w kanale
        komunikacji niebinarnej metody kodowania (którą często wykorzystuje się w nowo-
        czesnych modemach), szybkość transmisji bitów (b/s) oraz częstotliwość zmiany sygnału
        (liczba bodów) mogą się znacznie ró nić.

        Liczba bitów danych mo e wynosić 5, 6, 7 lub 8 (formaty pięcio- lub sześciobitowe
        wykorzystuje się bardzo rzadko). Liczba bitów stopu mo e wynosić 1, 1,5 lub 2 (półtora
        bitu oznacza jedynie czas trwania przerwy).



2.4. Sterowanie przepływem danych
        Do sterowania przepływem danych mo na wykorzystać dwa rodzaje protokołów: sprzę-
        towy lub programowy. Czasami sterowanie przepływem jest mylone z uzgadnianiem
        lub potwierdzaniem. Uzgadnianie (ang. handshaking) oznacza negocjowanie z partnerem
        wszystkich elementarnych kroków protokołu (dobrym przykładem jest sygnalizacja pro-
        tokołów transmisji portu równoległego w trybach EPP i ECP). Potwierdzanie to prze-
        syłanie powiadomienia o odebraniu porcji informacji (bajtu, ramki lub pakietu). Stero-
        wanie przepływem zakłada wysyłanie powiadomień dotyczących tego, czy jest mo liwy
        dalszy odbiór danych. Dość często sterowanie przepływem wykorzystuje mechanizmy
        uzgadniania lub potwierdzania.

        W sprzętowym protokole sterowania przepływem RTS/CTS wykorzystuje się sygnał
        %65 umo liwiający wstrzymanie wysyłania danych, jeśli odbiornik nie jest gotowy do
        ich odbierania (rysunek 2.13).
82                                                      Interfejsy sprzętowe komputerów PC


Rysunek 2.13.
Sprzętowe
sterowanie
przepływem




       Nadajnik umo liwia wysłanie następnego bajtu tylko wtedy, kiedy jest ustawiona li-
       nia %65. Zatrzymanie bajtu, którego transmisja rozpoczęła się za pomocą sygnału %65,
       jest niemo liwe (co zapewnia integralność transmisji). Protokół sprzętowy zapewnia
       najszybszą reakcję nadajnika na stan odbiornika. Układy scalone asynchronicznych
       nadajniko-odbiorników zawierają co najmniej dwa rejestry odbiorcze: rejestr przesunię-
       cia, umo liwiający odbiór następnego pakietu i rejestr pamięci, z którego jest odczy-
       tywany odebrany bajt. Dzięki temu mo na zaimplementować protokół sprzętowy bez
       utraty danych.

       Protokół sprzętowy sprawdza się do podłączania drukarek i ploterów, jeśli urządzenia
       te go obsługują. Kiedy dwa komputery są połączone bezpośrednio (bez modemów),
       sprzętowe sterowanie przepływem wymaga skrzy owania linii 465 i %65.

       W przypadku bezpośredniego połączenia, terminal wysyłający dane musi przełączyć
       swoją linię %65 na stan ON (poprzez połączenie własnych linii 465 i %65). W innym
       przypadku nadajnik nie będzie nadawać.

       Nadajniko-odbiorniki 8250/16450/16550 wykorzystywane w komputerach IBM PC
       nie przetwarzają sygnału %65 sprzętowo, ale odzwierciedlają jego stan w rejestrze /54
       (patrz punkt 2.5). Implementacja protokołu RTS/CTS jest zadaniem usługi $+15
       +PV*. Nazwanie tej usługi mechanizmem sprzętowym nie jest całkowicie poprawne.
       Jeśli program wykorzystujący port COM komunikuje się z układem UART na pozio-
       mie rejestrów (a nie na poziomie BIOSu), wówczas w celu obsługi protokołu sam ob-
       sługuje przetwarzanie sygnału CTS. Niektóre programy komunikacyjne umo liwiają
       ignorowanie sygnału %65 (jeśli modem nie jest u ywany) i nie wymagają połączenia
       wejścia %65 z wyjściem własnego sygnału 465. Są jednak ró ne nadajniko-odbiorniki
       (na przykład 8251), w którym sygnał %65 jest przetwarzany przez mechanizmy sprzętowe.
       W ich przypadku, a tak e dla „uczciwych” programów, wykorzystanie sygnału %65
       w złączach (a nawet w kablach) jest obowiązkowe.

       Programowe sterowanie przepływem XON/XOFF zakłada istnienie dwukierunkowego
       kanału transmisji danych. Protokół działa w następujący sposób: je eli urządzenie od-
       bierające odkryje powody, dla których nie mo e kontynuować odbierania danych, wysyła
       w szeregowym kanale zwrotnym sygnał XOFF (13h). Po odebraniu tego sygnału urzą-
       dzenie znajdujące się po przeciwnej stronie zawiesza transmisję. Kiedy urządzenie
       odbiorcze ponownie uzyskuje gotowość do odbierania danych, wysyła znak XON (11h).
       Urządzenie po drugiej stronie łącza po odebraniu tego sygnału wznawia transmisję.
       W porównaniu ze sprzętową implementacją protokołu, czas odpowiedzi nadajnika na
       zmianę stanu odbiornika zwiększa się co najmniej o czas trwania transmisji sygnału
       (XON lub XOFF) plus czas, jaki zajmuje programowi nadajnika reakcja na odebranie
       znaku (rysunek 2.14). Z tego powodu tylko odbiornik wyposa ony w dodatkowy bu-
       for dla odebranych danych informujący z góry o braku mo liwości odbierania danych
       (w czasie, kiedy posiada jeszcze miejsce w buforze) mo e działać bez strat danych.
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                   83


Rysunek 2.14.
Programowe
sterowanie
przepływem
XON/XOFF




        Zaletą programowego sterowania przepływem jest brak konieczności transmisji sy-
        gnałów sterujących interfejsu: najprostszy kabel umo liwiający dwukierunkową wymianę
        składa się z zaledwie trzech ył (patrz rysunek 2.5a). Wada polega na tym, e oprócz
        konieczności korzystania z bufora oraz długiego czasu odpowiedzi (który obni a całko-
        witą wydajność kanału z powodu oczekiwania na sygnał XON), zaimplementowanie
        pełnodupleksowego trybu wymiany jest trudne. W tym przypadku istnieje konieczność
        uzyskania sygnałów sterowania przepływem ze strumienia danych odebranych oraz ich
        przetworzenia, co ogranicza liczbę znaków, które mo na przesłać.

        Oprócz tych dwóch powszechnie u ywanych standardowych protokołów, obsługiwanych
        przez systemy operacyjne oraz większość urządzeń peryferyjnych, istnieją protokoły
        u ytkownika wymagające specjalnej obsługi.



2.5. Układy scalone asynchronicznych
     nadajniko-odbiorników (UART)
        W portach COM konwersja danych równoległych na szeregowe w celu realizacji transmisji
        danych oraz odwrotna konwersja w celu ich odbioru jest wykonywana przez dedykowane
        układy UART (ang. Universal Asynchronous Receiver-Transmitter — Uniwersalny asyn-
        chroniczny odbiorniko-nadajnik). Te same układy scalone generują i przetwarzają sygnały
        sterujące interfejsu. Porty COM komputerów IBM PC XT/AT są oparte na układach
        scalonych zgodnych z układami UART serii i8250 na poziomie rejestrów: 8250/16450/
        16550A. Seria ta jest ulepszeniem modelu oryginalnego, została opracowana w celu
        zwiększenia szybkości działania i zmniejszenia zu ycia energii, a tak e obcią enia proce-
        sora podczas intensywnej wymiany. Zwróćmy uwagę, e:
             Układy 8250 mają wadę projektową (występowanie fałszywych przerwań),
             co uwzględniono w systemie BIOS komputera XT.
             8250A: poprawiono błędy poprzedniego modelu, ale w efekcie utracono zgodność
             z systemem XT BIOS. Takie układy scalone działają w niektórych modelach
             komputerów AT, ale nie mo na ich u ywać dla szybkości transmisji 9 600 b/s.
             8250B: poprawiono błędy 8250 i 8250A, przywrócono zgodność z systemem
             XT BIOS poprzez odtworzenie oryginalnego błędu przerwania. Działa
             w komputerach AT w systemie DOS (oprócz szybkości 9 600 b/s).
84                                                                 Interfejsy sprzętowe komputerów PC


             Układy scalone 8250x charakteryzują się ni szymi szybkościami działania jeśli chodzi
             o ądania ze strony magistrali systemowej. W przypadku tych układów mo na odwoły-
             wać się do ich rejestrów w kolejnych cyklach magistrali procesora. Dla zapewnienia
             prawidłowej pracy, pomiędzy wywołaniami procesora muszą być wstawione opóźnienia
             programowe.

             W komputerach klasy AT wprowadzono następujące modyfikacje układów scalonych
             UART:
                  16450: szybka wersja układu 8250 przeznaczona dla komputerów AT.
                  Nie zawiera błędów układu 8250 ani pełnej zgodności z systemem XT BIOS.
                  16550: rozwinięta wersja układu 16450. Mo e wykorzystywać kanał DMA
                  do wymiany danych. Jest tak e wyposa ony w bufor FIFO, z którego nie mo na
                  korzystać z powodu wadliwego działania.
                  16550A: układy charakteryzujące się szesnastobajtowymi wejściowymi
                  i wyjściowymi buforami FIFO oraz wykorzystaniem kanałów DMA. Układy
                  te są najczęściej u ywane w komputerach klasy AT dla transmisji z szybkościami
                  przekraczającymi 9 600 b/s. Większość kontrolerów wejścia-wyjścia nowoczesnych
                  chipsetów zapewnia zgodność z tym układem.

             Z punktu widzenia programowania, układy scalone UART 16550A UART to zbiór reje-
             strów, do których dostęp jest określony przez adres (przesunięcie rejestru adresu w sto-
             sunku do bazowego adresu portu) oraz wartość bitu .#$ (7 bit rejestru .%4). W prze-
             strzeni adresowej wejścia-wyjścia układ scalony zajmuje osiem kolejnych adresów.
             W tabeli 2.4 wyszczególniono rejestry układu UART 16550A wraz z metodami do-
             stępu. Układy 8250 ró nią się od nich tym, e nie zawierają rejestru (%4 i wszystkich
             mo liwości obsługi buforów FIFO i kanału DMA.

Tabela 2.4. Rejestry układów UART 16550A
    Dostęp                  Rejestr                                                        Odczyt/Zapis
    Przesunięcie DLAB        Nazwa Funkcja
    0h             0         THR      Rejestr transmisji.                                  Z
    0h             0         RBR      Rejestr bufora odbiornika.                           O
    0h             1         DLL      Mniej znaczący bajt dzielnika szybkości transmisji. O/Z
    1h             1         DLM      Bardziej znaczący bajt dzielnika szybkości transmisji. O/Z
    1h             0         IER      Rejestr zezwolenia na przerwanie.                    O/Z
    2h             x         IIR      Rejestr identyfikacji przerwania.                    O
    2h             x         FCR      Rejestr sterujący buforami FIFO.                     Z
    3h             x         LCR      Rejestr sterujący łącza.                             O/Z
    4h             x         MCR      Rejestr sterujący modemu.                            O/Z
    5h             x         LSR      Rejestr stanu łącza.                                 O/Z1
    6h             x         MSR      Rejestr stanu modemu.                                O/Z1
    7h             x         SCR      Rejestr roboczy.                                     O/Z
1
    Niektóre bity są tylko do odczytu. Zapis do rejestru mo e doprowadzić do awarii protokołu.
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                   85


        6*4: rejestr transmisji (ang. Transmitter Holding Register) — tylko zapis. Dane zapi-
        sane do rejestru są wysyłane do wyjściowego rejestru transmisji (kiedy stanie się dostęp-
        ny), stamtąd są umieszczane w wyjściowym sygnale TXD. Bit 0. (najmniej znaczący)
        jest wysyłany (i odbierany) jako pierwszy. Jeśli pakiet jest krótszy ni osiem bitów, bity
        najbardziej znaczące są ignorowane.

        4$4: rejestr bufora odbiornika (ang. Receiver Buffer Register) — tylko odczyt. Dane sze-
        regowe (RXD) odbierane w rejestrze przesunięcia odbiornika są umieszczane w rejestrze
        4$4. Stamtąd mogą być odczytane przez procesor. Jeśli bajt nie zostanie przeczytany
        do czasu odebrania następnego bajtu, występuje błąd przepełnienia. Jeśli pakiet jest
        krótszy ni osiem bitów, bity najbardziej znaczące mają wartość zero.

        ..: rejestr mniej znaczącego bajtu dzielnika prędkości przesyłania danych.

        ./: rejestr bardziej znaczącego bajtu dzielnika prędkości przesyłania danych. Dzielnik
        jest obliczany ze wzoru D = 115200/V, gdzie V oznacza szybkość transmisji w b/s.
        Wejściową częstotliwość synchronizacji 1,8432 MHz dzieli się przez uzyskany współ-
        czynnik, co daje częstotliwość transmisji danych wykorzystywaną przez układ UART.

        +'4: rejestr zezwolenia na przerwanie (ang. Interrupt Enable Register). Wartości bitów
        równe logicznej jedynce zezwalają na przerwanie z odpowiedniego źródła danych.

        Funkcje bitów rejestru IER:
             bity[7:4]=0: nieu ywane;
             bit 3. — /QFA+': zmiana stanu modemu (dowolnej linii %65, 54, 4+ lub %);
             bit 2. — 4Z.A+': przerwa łącza lub jego błąd;
             bit 1. — 6:A+': zakończenie transmisji;
             bit 0. — 4:A+': odebranie znaku (przekroczenie limitu czasu w trybie FIFO).

        ++4: rejestr identyfikacji przerwania i wskaźnik stanu bufora FIFO (tylko do odczytu).
        W celu uproszczenia analizy programowej, w układzie UART zorganizowano we-
        wnętrzne przerwania w system z czterema priorytetami. Kolejność priorytetów (w po-
        rządku rosnącym) to: stan łącza, odbiór znaku, wypró nienie rejestru nadajnika, stan
        modemu. Kiedy wystąpi warunek przerwania, układ UART wskazuje na źródło o naj-
        wy szym priorytecie do czasu obsłu enia sytuacji przez wykonanie odpowiednich dzia-
        łań. Dopiero wtedy mo liwa jest obsługa ądania z kolejnego źródła. Funkcje rejestru ++4
        opisano poni ej.
             bity [7:6] — stan trybu FIFO:
                11: tryb FIFO układu 16550A;
                10: tryb FIFO układu 16550;
                00: tryb standardowy;
             bity [5:4]: nieu ywane;
             bit 3.: przerwanie przekroczenia limitu czasu odbioru w trybie FIFO
             (w buforze są dane do odczytania);
86                                                     Interfejsy sprzętowe komputerów PC


          bity [2:1]: źródło przerwania o najwy szym priorytecie (w trybie standardowym
          — bez u ycia buforów FIFO):
            11: błąd łącza (przerwa). Wartość ustawiana poprzez odczyt rejestru stanu łącza;
            10: odebrano znak. Wartość ustawiana poprzez odczyt danych;
            01: wysłano znak (rejestr 6*4 jest pusty). Wartość ustawiana poprzez zapis
            danych;
            00: zmienił się stan modemu. Wartość ustawiana poprzez odczyt rejestru
            stanu modemu;
          Bit 0: wskaźnik zaległego ądania przerwania (1: brak zaległego przerwania,
          0: zaległe przerwanie).

     W trybie FIFO źródło przerwania jest identyfikowane przez bity [3:1].
          011: błąd łącza (przerwa). Wartość ustawiana poprzez odczyt rejestru stanu łącza;
          010: odebrano znak. Wartość ustawiana poprzez odczyt rejestru danych
          odbiornika;
          110: wskaźnik przekroczenia limitu czasu (w czasie równym czterokrotnemu
          okresowi potrzebnemu na wysłanie lub odebranie znaku nie został wysłany,
          ani odebrany znak, pomimo tego, e w buforze znajduje się co najmniej jeden).
          Wartość ustawiana poprzez odczyt rejestru danych odbiornika;
          001: rejestr 6*4 jest pusty. Wartość ustawiana poprzez zapis danych;
          000: zmiana stanu modemu (%65, 54, 4+ lub %). Wartość ustawiana
          poprzez odczyt rejestru stanu modemu (/54).

     (%4: rejestr sterujący buforami FIFO(ang. FIFO Control Register) — tylko odczyt. Funkcje
     jego bitów opisano poni ej:
          bity [7:6] ITL (ang. Interrupt Trigger Level — poziom generowania przerwania):
          poziom zapełnienia bufora FIFO powodujący wygenerowanie przerwania:
            00: 1 bajt (domyślnie);
            01: 4 bajty;
            10: 8 bajtów;
            11: 14 bajtów;
          bity [5:4] — zarezerwowane.
          bit 3. — wybór trybu działania DMA.
          bit 2. — 4'5'66( (ang. Reset Transmitter FIFO): zerowanie licznika bufora
          FIFO nadajnika poprzez zapisanie logicznej jedynki; rejestr przesunięcia
          nie jest zerowany).
          bit 1. — 4'5'664( (ang. Reset Receiver FIFO): zerowanie licznika bufora
          FIFO odbiornika poprzez zapisanie logicznej jedynki; rejestr przesunięcia
          nie jest zerowany).
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                   87


            bit 0. — 64(+(1' (ang. Transmit and Receive FIFO Enable): włączenie
            (poprzez ustawienie logicznej jedynki) buforów FIFO nadajnika i odbiornika.
            W momencie zmiany stanu bufory są zerowane automatycznie.

        .%4: rejestr sterowania łączem (ang. Line Control Register) — ustawianie parametrów
        kanału. Funkcje bitów rejestru LCR opisano poni ej.
            bit 7. — .#$ (ang. Divisor Latch Access Bit): kontrola dostępu do dzielnika
            szybkości przesyłania danych.
            bit 6. — $4%10 (ang. Break Control):generowanie przerwy w łączu (wysyłanie zer)
            w przypadku, kiedy bit $4%10  ;
            bit 5. — 56+%2#4 (ang. Sticky Parity): wymuszone generowanie bitu parzystości:
               0: bit kontroli parzystości jest generowany zgodnie z parzystością znaku
               wychodzącego;
               1: stała wartość bitu kontroli parzystości: logiczne zero, jeśli '8'02#4  
               oraz logiczna jedynka, jeśli '8'02#4  .
            bit 4. — '8'02#4 (ang. Even Parity select): wybór typu kontroli parzystości:
            zero — nieparzystość, jeden — parzystość;
            bit 3. — 2#4'0 (ang. Parity Enable): włączenie bitu kontroli parzystości:
               1: bit kontroli parzystości jest włączony (zgodny z bitem parzystości
               danych lub stały);
               0: bit kontroli parzystości jest wyłączony;
            bit 2. — 5612$ (ang. Stop Bits): liczba bitów stopu:
               0: 1 bit stopu;
               1: 2 bity stopu (w przypadku kodu pięciobitowego, bit stopu ma długość
               1,5 bitu);
            bity [1:0] — 5'4+#.$ (ang. Serial Data Bits): liczba bitów danych:
               00: 5 bitów;
               01: 6 bitów;
               10: 7 bitów;
               11: 8 bitów.

        /%4: rejestr sterowania modemem (ang. Modem Control Register). Opis rejestru MCR
        zamieszczono poni ej.
            bity [7:5] =0: zarezerwowane;
            bit 4. — ./' (ang. Loopback Mode Enable): włączenie trybu diagnostycznego:
               0: tryb normalnej transmisji;
               1: tryb diagnostyczny;
88                                                     Interfejsy sprzętowe komputerów PC


          bit 3. — +' (ang. Interrupt Enable): zezwolenie na przerwanie (sygnalizowane
          przez wyjście zewnętrzne 176):
             0: przerwania wyłączone;
           1: przerwania włączone;
     W trybie diagnostycznym bit jest umieszczany w bicie rejestru wejściowego /54
     (emulacja DCD);
          bit 2. — 176% (ang. OUT1 bit Control): sterowanie sygnałem wyjściowym 1
          (nieu ywany); w trybie diagnostycznym bit jest umieszczany w bicie rejestru
          wejściowego /54 (emulacja RI);
          bit 1. — RTSC (ang. Request To Send Control): sterowanie sygnałem
          wyjściowym RTS; w trybie diagnostycznym umieszczany w bicie rejestru
          wejściowego /54 (emulacja CTS):
             0: aktywny (napięcie dodatnie);
             1: nieaktywny (napięcie ujemne);
          bit 0. — 64% (ang. Data Terminal Ready Control): sterowanie sygnałem
          wyjściowym DTR. W trybie diagnostycznym umieszczany w bicie rejestru
          wejściowego /54 (emulacja DSR):
             0: aktywny (napięcie dodatnie);
             1: nieaktywny (napięcie ujemne).

     .54: rejestr stanu łącza (ang. Line Status Register) — stan nadajniko-odbiornika. Funkcje
     rejestru .54 opisano poni ej.
          bit 7. — (+(1' (ang. FIFO Error status): błąd danych w trybie FIFO (w buforze
          znajduje się co najmniej jeden znak, dla którego wystąpił błąd formatu,
          parzystości lub przerwa); w trybie bez wykorzystania buforów FIFO bit
          jest zawsze ustawiany na wartość zero;
          bit 6. — 6'/26 (ang. Transmitter Empty Status): rejestr nadajnika jest pusty
          (w rejestrze przesunięcia, rejestrze 6*4 lub w buforze (+(1 nie ma danych
          do wysłania);
          bit 5. — 6*4' (ang. Transmitter Holding Register Empty): rejestr nadajnika
          jest gotowy do odebrania bajtu przeznaczonego do transmisji; w trybie FIFO
          oznacza to, e bufor FIFO transmisji jest pusty; mo e być źródłem przerwania;
          bit 4. — $ (ang. Break Detected): wskaźnik przerwy w łączu (w rejestrze
          wejściowym odbiornika jest wartość zero przez okres nie krótszy ni trwa
          operacja wysłania znaku);
          bit 3. — (' (ang. Framing Error): błąd ramki (niepoprawny bit stopu);
          bit 2. — 2' (ang. Parity Error): błąd parzystości;
          bit 1. — 1' (ang. Overrun Error): przepełnienie (utrata znaku); jeśli odbiór
          następnego znaku rozpocznie się przed przesłaniem poprzedniego z rejestru
          przesunięcia do bufora lub rejestru FIFO, pierwszy znak jest tracony;
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                    89


            bit 0. — 4 (ang. Receiver Data Ready): odebrane dane są gotowe (w rejestrze *4
            lub buforze FIFO); wartość ustawiana poprzez odczyt rejestru danych odbiornika.

        Wskaźniki błędów — bity [4:1] — są zerowane po odczytaniu rejestru .54. W trybie
        FIFO wskaźniki błędów są zapisane w buforze FIFO razem z przesyłanymi znakami.
        Są umieszczane w rejestrze (i generują przerwania) w momencie, kiedy znak odebrany
        z błędami znajduje się na szczycie bufora FIFO (w wierszu do odczytania). W przy-
        padku przerwy w łączu, tylko znak „przerwy” jest umieszczany w buforze FIFO, po
        czym układ UART czeka na odtworzenie łącza i następny bit startu.

        /54: rejestr stanu modemu (ang. Modem Status Register). Funkcje rejestru /54 opisano
        poni ej.
            bit 7. — % (ang. Data Carrier Detect — wykryto nośną danych): stan linii %:
               0: aktywny (napięcie dodatnie);
               1: nieaktywny (napięcie ujemne);
            bit 6. — 4+ (ang. Ring Indicator — Wskaźnik dzwonka): stan linii 4+:
               0: aktywny (napięcie dodatnie);
               1: nieaktywny (napięcie ujemne);
            bit 5. — 54 (ang. Data Set Ready — zbiór danych gotowy): stan linii 54:
               0: aktywny (napięcie dodatnie);
               1: nieaktywny (napięcie ujemne);
            bit 4. — %65 (ang. Clear To Send — zezwolenie na wysyłanie): stan linii %65:
               0: aktywny (napięcie dodatnie);
               1: nieaktywny (napięcie ujemne);
            bit 3. — % (ang. Delta Data Carrier Detect): zmiana stanu linii %;
            bit 2. — 6'4+ (ang. Trailing Edge Of Ring Indicator — koniec sygnału dzwonienia):
            zbocze opadające sygnału 4+ (koniec dzwonienia);
            bit 1. — 54 (ang. Delta Data Set Ready): zmiana stanu linii 54;
            bit 0. — %65 (ang. Delta Clear To Send): zmiana stanu sygnału %65.

        Wskaźniki zmian stanu (bity [3:0] są ustawiane poprzez odczyt rejestru.

        5%4: (ang. Scratch Register — rejestr roboczy) — rejestr roboczy o szerokości 8 bitów.
        Nie ma wpływu na działanie układu UART i słu y do przechowywania danych tym-
        czasowych (w układach 8250 nie ma tego rejestru).

        W trybie diagnostycznym (jeśli ./' ) wewnątrz układu UART tworzona jest we-
        wnętrzna pętla:
            Wyjścia nadajnika są przełączane w stan logicznej jedynki.
            Wejście odbiornika jest rozłączane.
90                                                   Interfejsy sprzętowe komputerów PC


         Wyjście rejestru przesunięcia nadajnika jest logicznie łączone z wejściem
         odbiornika.
         Linie 54, %65, 4+ i % są rozłączane od linii wejściowych i są kontrolowane
         wewnętrznie przez bity 64%, 465%, 176+% i +'.
         Wyjścia sygnałów sterowania modemem są przełączane w stan pasywny
         (logiczne zero).

     Dane przesyłane szeregowo są odbierane natychmiast, co umo liwia diagnozowanie
     wewnętrznego kanału danych portu (włącznie z rejestrami przesunięć), obsługę prze-
     rwań, a tak e określenie szybkości działania układu UART.



2.6. Obsługa portów COM
     w systemie operacyjnym
     Porty COM są obsługiwane przez usługę BIOS int14h, która zapewnia wykonywanie
     następujących funkcji:
         Inicjalizacja (ustawienie szybkości wymiany i formatu transmisji; wyłączenie
         źródeł przerwań). Nie ma wpływu na sygnały 64 i 465 (po zresetowaniu sprzętu
         sygnały są nieaktywne).
         Wysyłanie znaku. Uaktywnienie sygnałów 64 i 465. Po zwolnieniu rejestru
         6*4 jest do niego wprowadzany wysyłany znak.
         Odbiór znaku. Uaktywnienie tylko sygnału 64 (sygnał 465 przechodzi w stan
         nieaktywny). Sterownik oczekuje na odbiór znaku.
         Odpytywanie stanu modemu i łącza (odczytanie rejestrów /54 i .54).

     Przerwania sprzętowe nie są u ywane. Oczekiwanie na gotowość do wejścia i wyjścia
     jest ograniczona limitem czasu. Gotowość mo na natychmiast sprawdzić poprzez od-
     pytywanie stanu, przed próbą odebrania lub wysłania znaku.

     Podczas wykonywania procedury POST system BIOS sprawdza obecność portu sze-
     regowego (rejestrów układu UART 8250 lub zgodnych) pod standardowymi adresami
     i umieszcza bazowe adresy wykrytych portów w komórkach obszaru danych BIOSu
     — $+15 CVC #TGC 0:0400h, 0:0402h, 0:0404h i 0:0406h. W komórkach są zapisywa-
     ne adresy portów o logicznych nazwach od COM1 do COM4. Zerowa wartość adresu
     oznacza, e port o określonym numerze nie istnieje. Ustawienia limitów czasu dla por-
     tów są zapisywane w komórkach 0:47Ch, 0:47Dh, 0:473Eh oraz 0:47Fh.

     Wykryte porty są inicjowane na szybkość wymiany 2 400 b/s, siedem bitów danych,
     parzystość i jeden bit stopu. Sygnały sterowania interfejsem 64 i 465 są przełączane
     w stan początkowy (OFF: ujemny poziom linii).
Rozdział 2. ♦ Interfejs szeregowy: port COM                                              91



2.7. Konfiguracja portów COM
        W komputerze mogą być zainstalowane maksymalnie cztery porty szeregowe od COM1
        do COM4. W maszynach klasy AT zazwyczaj występują dwa porty. Proces zarządzanie
        portów szeregowych jest podzielony na dwie fazy: konfiguracja wstępna sprzętu portów
        oraz zmiany trybów roboczych poprzez oprogramowanie aplikacyjne lub systemowe.
        Konfiguracja portów COM zale y od sposobu implementacji portów. Porty fizycznie
        umieszczone na kartach rozszerzeń konfiguruje się za pomocą zworek umieszczonych na
        samych kartach. Porty wbudowane na płytach głównych konfiguruje się w systemie BIOS.

        Mo na skonfigurować następujące parametry:
            Adres bazowy. Porty COM1– COM4 najczęściej mają adresy 3F8h, 2F8h, 3E8h
            i 2E8h. Podczas inicjalizacji BIOS sprawdza pod tymi adresami obecność portów
            dokładnie w tej kolejności i przypisuje im logiczne nazwy COM1, COM2, COM3
            i COM4. Porty COM3 i COM4 mogą mieć alternatywne adresy, odpowiednio
            3E0h, 338h oraz 2E0h, 238h. Dla komputerów PS/2, standardowe adresy od COM3
            do COM8 to odpowiednio 3220h, 3228h, 4220h, 4228h, 5220h oraz 5228h.
            Wykorzystywane linie ądania przerwań: dla portów COM1 i COM3 zwykle
            u ywane są linie +43 lub +43, dla portów COM2 i COM4: linie +43 lub
            +43. Z technicznego punktu widzenia, numery przerwań mo na przypisywać
            do adresów bazowych (numerów portów) w dowolnej kolejności, ale niektóre
            programy i sterowniki (na przykład sterowniki myszy szeregowej) są
            zaprogramowane do wykorzystania standardowych kombinacji. Do ka dego
            portu, który potrzebuje sprzętowego przerwania, jest przypisywana oddzielna
            linia, która nie mo e kolidować z liniami ądania przerwań u ywanymi przez
            inne urządzenia. Przerwania są wymagane tylko przez te porty, do których są
            podłączone urządzenia wejściowe, zasilacze UPS lub modemy. Przerwania dla
            transmisji do drukarek i ploterów są wykorzystywane tylko w wielozadaniowych
            systemach operacyjnych (choć nie zawsze). Dlatego do takich zastosowań
            mo na oszczędzić ten cenny zasób. Przerwań nie u ywa się tak e do połączenia
            dwóch komputerów za pomocą kabla modemu zerowego. To, czy linia ądania
            przerwań jest u ywana oddzielnie, czy współdzielona przez kilka urządzeń,
            zale y od sprzętowej implementacji połączenia oraz wykorzystywanego
            oprogramowania. W przypadku portów zainstalowanych na magistrali ISA,
            współdzielone przerwania zazwyczaj nie działają.
            Kanał DMA (dla układów scalonych UART 16450/16550 umieszczonych na płycie
            głównej): włączenie kanału DMA i podanie numeru kanału. Dla portów COM
            rzadko u ywa się kanału DMA.



2.8. Zastosowania portów COM
        Porty COM powszechnie wykorzystuje się do podłączania ró nego rodzaju urządzeń pe-
        ryferyjnych i sprzętu komunikacyjnego do nawiązywania połączeń ze sprzętem tech-
        nicznym, na przykład sterującym i monitorującym, programatorami, emulatorami ukła-
        dów i innymi urządzeniami wykorzystującymi protokół RS-232C.
92                                                      Interfejsy sprzętowe komputerów PC


     Najczęściej porty COM są wykorzystywane do podłączania urządzeń wskaźnikowych
     (myszy, trackballi). W takim przypadku porty są wykorzystywane w trybie wprowa-
     dzania szeregowych danych. Mysz z interfejsem szeregowym mo na podłączyć do
     dowolnego działającego portu. W celu dopasowania złączy portu i myszy, czasami
     wykorzystuje się przejściówki DB-9S — DB25P lub DB-25S — DB-9P. Myszy do
     prawidłowego działania wymagają przerwań +43 dla portu COM1 oraz +43 dla portu
     COM2. Cechą szczególną sterownika jest fakt, e w celu u ywania myszy port COM1 mu-
     si korzystać z przerwania +43. Dla u ytkownika wa ne jest, aby zdać sobie sprawę z sa-
     mego ograniczenia. Ka de zdarzenie: ruch myszą lub wciśnięcie (zwolnienie) przycisku
     jest kodowane binarnie i wysyłane poprzez interfejs RS-232C. W tym celu wykorzystuje
     się transmisję asynchroniczną: źródłem bipolarnego zasilania są linie sterujące interfejsu.

     W celu podłączenia modemów zewnętrznych wykorzystywany jest kabel DTE–DCE
     z kompletem (dziewięciu) połączeń. Schemat połączeń takiego kabla pokazano na ry-
     sunku 2.4. Ten sam typ kabla wykorzystuje się w celu dopasowania złączy (według
     liczby styków). W tym celu mo na tak e wykorzystać przejściówki myszy 9 na 25.
     Oprogramowanie komunikacyjne zazwyczaj korzysta z przerwań, ale w tym przypadku
     istnieje swoboda wyboru numeru portu (adresu) i linii przerwania. Jeśli planuje się opera-
     cje z szybkością 9 600 b/s lub wy szą, port COM nale y zaimplementować za pomocą
     układu UART 16550A lub zgodnego. Zakres, w jakim są dostępne bufory FIFO oraz wła-
     sności kanału DMA, zale y od wykorzystywanego oprogramowania komunikacyjnego.

     Porty COM mo na tak e wykorzystać w celu połączenia dwóch komputerów znajdu-
     jących się w niewielkiej odległości od siebie za pomocą kabla zerowego modemu (patrz
     rysunek 2.5). Programy takie jak Norton Commander lub MS-DOS Interlink umo liwiają
     wymianę plików z szybkością do 115.2 kb/s bez wykorzystania przerwań sprzętowych.
     Takie samo połączenie mo na tak e wykorzystać przez pakiet sieciowy Lantastic oferujący
     bogatsze własności oraz przez usługi systemu operacyjnego Windows.

     Porty COM umo liwiają podłączanie kluczy elektronicznych (urządzeń zabezpiecza-
     jących) mających na celu zabezpieczenia przed nieuprawnionym wykorzystywaniem
     oprogramowania. Urządzenia te mogą być „przezroczyste” (zapewniające mo liwość
     wykorzystania portu do podłączenia innego sprzętu) lub całkowicie przejmować port.

     Przy pomocy odpowiedniego oprogramowania port COM umo liwia przekształcenie
     komputera PC w terminal emulujący zestaw poleceń popularnych specjalizowanych
     terminali (VT-52, VT-100, itp.). Najprostszy terminal mo na uzyskać poprzez połą-
     czenie funkcji BIOS obsługi portu COM (KPVJ), zdalnego wyprowadzania danych
     (KPVJ) oraz wprowadzania danych z klawiatury (+PVJ). Taki terminal mo e jed-
     nak działać tylko z niskimi szybkościami transmisji, poniewa chocia funkcje BIOSu
     są uniwersalne, nie są zbyt szybkie.

     Porty COM mo na tak e wykorzystać jako dwukierunkowy interfejs z trzema sterowanymi
     programowo liniami wyjściowymi (6, 64 i 465) oraz czterema liniami wejściowymi
     (%65, 54, % i 4+) wykorzystującymi sygnały bipolarne. Mo na je wykorzystać na przy-
     kład do programowej implementacji synchronicznych interfejsów szeregowych (patrz
     podrozdział 10.5). W czasach komputerów AT-286 wykorzystywano jednobitowe kon-
     wertery impulsowe umo liwiające zapisywanie sygnałów audio w komputerze PC za
     pomocą linii wejściowej portu COM. Odtwarzanie tak zapisanego dźwięku w głośniku
     komputera PC umo liwiało uzyskanie na przykład sygnałów mowy.
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                      93



2.9. Porty COM i PnP
        Nowoczesne urządzenia peryferyjne podłączone do portu COM obsługują specyfikację
        PnP. Główne zadanie systemu operacyjnego polega na zidentyfikowaniu podłączonego
        urządzenia. Do tego celu opracowano prosty protokół, który mo na zaimplementować
        dla ka dego portu COM za pomocą środków wyłącznie programowych. Mechanizm
        działania tego protokołu pokazano na rysunku 2.15.




Rysunek 2.15. ądanie identyfikatora urządzenia PnP

          1. Sprawdź port: sprawdzenie dostępności portu. Jeśli jest wolny, jest inicjowany
             do stanu bezczynności ze stanami linii 6410, 4651((, 6:/CTM. Jeśli jest
             zajęty, dalsze etapy protokołu nie są wykonywane.
          2. Sprawdź urządzenie: sprawdzenie obecności urządzenia. Przez pewien okres
             czasu (0,2 s) system oczekuje na sygnał 54, co oznacza, e do portu jest podłączone
             urządzenie. W najprostszym przypadku sygnały 64 54 w urządzeniu są zwarte,
             co umo liwia uzyskanie odpowiedzi. Po wykryciu urządzenia wykonywane są
             kolejne etapy protokołu (w celu odebrania szeregowych danych z urządzenia
             wykorzystywane są sygnały sterowania liniami 64 i 465). Jeśli nie ma odpowiedzi,
             protokół przełącza się do bezczynnego stanu rozłączenia. W takim przypadku
             systemy operacyjne obsługujące dynamiczną konfigurację okresowo wykonują
             poprzednią sekwencję po to, aby sprawdzić, czy nie podłączono urządzenia.
          3. Konfiguracja-1. Port jest programowany na szybkość 1 200 b/s, siedem bitów
             danych, brak kontroli parzystości, jeden bit stopu. Na linii 64 jest stan niski
             przez 0,2 s. Następnie sygnał 64 jest ustawiany na logiczną jedynkę, a po kolejnym
             okresie 0,2 s sygnał 465 tak e jest ustawiany na logiczną jedynkę.
          4. Oczekiwanie-1. System operacyjny oczekuje na pierwszy znak z urządzenia
             przez okres 0,2 sekundy. Kiedy znak nadejdzie, system rozpoczyna odbiór
             identyfikatora. Jeśli podczas tego czasu znak nie nadejdzie, system operacyjny
             wykonuje drugą próbę konfiguracji (patrz punkt 5), która nieco ró ni się od pierwszej.
          5. Konfiguracja-2. Sygnały 64 i 465 są ustawiane na logiczne zero na okres 0,2
             sekundy. Po tym czasie oba sygnały są przełączane na logiczną jedynkę.
          6. Oczekiwanie-2. System operacyjny oczekuje na pierwszy znak z urządzenia
             przez okres 0,2 sekundy, a kiedy ten nadejdzie, zaczyna odbierać identyfikator.
             Jeśli w tym czasie znak nie nadejdzie, w zale ności od stanu sygnału 54
             wprowadzany jest stan weryfikacja rozłączenia (jeśli 54) lub połączenie-
             bezczynność (jeśli 54).
94                                                      Interfejsy sprzętowe komputerów PC


       7. W stanie Połączenie-bezczynność sygnał 64 jest ustawiany na logiczną jedynkę,
          a sygnał 465 na logiczne zero. Port jest programowany na szybkość 300 b/s,
          siedem bitów danych, brak kontroli parzystości i jeden bit stopu. Jeśli w czasie
          trwania tego stanu zostanie wykryty stan 54, system operacyjny powinien
          poinformować, e urządzenie zostało rozłączone.

     Odbiór identyfikatora urządzenia po jednym znaku naraz wią e się z ograniczeniami cza-
     sowymi 0,2 s na ka dy znak, a tak e całkowitym limitem czasu 2,2 s, co umo liwia od-
     bieranie ciągów o długości do 256 znaków. Ciąg znaków identyfikatora PnP musi zawierać
     znaczniki początku i końca (odpowiednio 28h lub 08h oraz 29h lub 09h). Pomiędzy nimi
     umieszczana jest treść identyfikatora w standardowym formacie. Przed znacznikiem
     startu mo na umieścić ciąg szesnastu znaków niezwiązanych z identyfikatorem PnP.
     Jeśli podczas pierwszych 0,2 s oczekiwania na znak (krok 4. lub 6.) nie nadejdzie znacz-
     nik startu lub zostanie przekroczony limit czasu i nie nadejdzie znacznik końca albo znaki
     zostaną odebrane z błędami, nastąpi przełączenie do stanu połączenie-bezczynność.
     W przypadku odebrania poprawnego ciągu identyfikatora, jest on przekazywany do sys-
     temu operacyjnego.

     W celu wprowadzenia stanu weryfikacja rozłączenia sygnał 64 jest ustawiany na lo-
     giczną jedynkę, sygnał 465 na logiczne zero i co pięć sekund sprawdzany jest stan sy-
     gnału 54. Jeśli 54, następuje przełączenie do stanu połączenie-bezczynność (zobacz
     krok 7.), a jeśli 54, do stanu rozłączenie-bezczynność, w którym system okresowo
     odpytuje sygnał 54 w celu sprawdzenia, czy podłączono urządzenie.

     Opisany mechanizm został opracowany przez firmę Microsoft z uwzględnieniem zgod-
     ności z urządzeniami, które nie są typu PnP. W ten sposób mamy pewność, e urządzenia
     te nie będą wyłączone oraz system zachowa stabilność w przypadku odbioru komuni-
     katów nie będących identyfikatorami PnP. Na przykład konwencjonalna mysz Microsoft
     Mouse po otrzymaniu zasilania z interfejsu odpowiada znakiem „M” (mysz wyposa ona
     w trzy przyciski ciągiem „M3”).



2.10. Problemy z działaniem portów COM
      i ich rozwiązywanie
     Nieprawidłowe działanie portów COM często występuje podczas instalacji nowych portów
     lub niepomyślnego podłączania urządzeń zewnętrznych.


2.10.1. Testowanie konfiguracji
     Rozwiązywanie problemów z portami szeregowymi (podobnie jak z równoległymi) roz-
     poczyna się od sprawdzenia, czy system je identyfikuje. Lista adresów zainstalowanych
     portów zazwyczaj pojawia się w tabelce, którą system BIOS wyświetla przed załado-
     waniem systemu operacyjnego. Listę tę mo na równie przeglądać za pomocą programów
     diagnostycznych lub bezpośrednio w obszarze danych BIOSu za pomocą debuggera.
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                   95


        Jeśli system BIOS wykryje mniej portów, ni fizycznie zainstalowano, prawdopodobnie
        dwóm portom przypisano ten sam adres lub jednemu z nich przypisano nieprawidłowy
        adres. Problemy mogą pojawić się w przypadku adresów portów COM3 i COM4: nie
        wszystkie wersje BIOSu będą poszukiwać portów pod alternatywnymi adresami 3E0h,
        338h, 2E0h i 238h. Czasami wyszukiwanie pod adresami 3E8h i 2E8h nie jest wyko-
        nywane. Sposób wyświetlania zidentyfikowanych portów na liście mo e być mylący:
        w przypadku zainstalowania dwóch portów o adresach 3F8h i 3E8h, na liście będą one
        występowały jako COM1 i COM2 i za pomocą tych nazw będzie mo na się do nich
        odwoływać. Te same porty mogą jednak pojawić się na liście jako COM1 i COM3 (po-
        niewa 3E8h to standardowy adres portu COM3). W tym przypadku odwołanie do portu
        COM3 nie powiedzie się, poniewa adres 3E8h będzie umieszczony w komórce 0:402h
        obszaru danych BIOSu, która odpowiada portowi COM2, a w komórce pamięci portu
        COM3 (0:404h) będzie wartość zero: wskaźnik, e nie ma takiego portu. U ytkownik
        mo e „wyjaśnić” systemowi który port jest który ręcznie, za pomocą dowolnego de-
        buggera, poprzez wstawienie poprawnych adresów do komórek obszaru danych BIOSu
        (trzeba by to robić za ka dym razem po ponownym załadowaniu systemu, a przed wyko-
        rzystaniem „zagubionego” portu). Odnajdywanie portów umo liwiają niektóre narzędzia
        diagnostyczne (np. PortFinder).

        Jeśli dwóm portom przypisano ten sam adres, program diagnostyczny mo e wykryć błędy
        portów tylko wtedy, gdy jest wykorzystywany z zewnętrzną pętlą diagnostyczną. Pro-
        gramowe testowanie portu bez pętli nie spowoduje wykrycia błędów, poniewa w tym
        przypadku nastąpi uaktywnienie trybu diagnostycznego (patrz opis układu UART) i porty
        wchodzące ze sobą w konflikt (choć indywidualnie działające poprawnie) będą działały
        równolegle, dzięki czemu informacje wynikowe będą poprawne. W normalnych warun-
        kach pracy poprawne działanie portów wchodzących ze sobą w konflikt jest niemo liwe.
        Podczas rozwiązywania konfliktów adresów przydatne jest instalowanie portów po kolei
        i obserwowanie adresów pojawiających się na liście.

        Jeśli fizycznie jest zainstalowany tylko jeden port, a system BIOS go nie znajdzie, powód
        mo e być ten sam co w przypadku portu LPT: albo go wyłączono podczas konfiguracji,
        albo nastąpiła awaria. Problemy z działaniem portu mo na rozwiązać poprzez poruszanie
        kartą adaptera w gnieździe płyty głównej.

        Podczas korzystania z portów COM u ywane są przerwania sprzętowe: są one wyko-
        rzystywane przy podłączaniu modemów, myszy lub innych urządzeń wejściowych.
        Powodem nieprawidłowego działania tych urządzeń mogą być niepoprawne ustawienia
        linii ądania przerwań. Mo liwe są konflikty z innymi urządzeniami, a tak e nieodpo-
        wiednie dobranie numerów przerwań z adresami portów.


2.10.2. Testowanie działania
        Wstępne testowanie portu COM mo na wykonać za pomocą programów diagnostycz-
        nych (CheckIt) bez wykorzystania pętli. Takie testowanie umo liwia sprawdzenie układu
        scalonego UART (wewnętrzny tryb diagnostyczny) i generowanie przerwań, ale nie ma
        mo liwości testowania układów buforów wejściowych i wyjściowych, które znacznie
        częściej są źródłem problemów. Jeśli test nie powiedzie się, przyczyn problemów na-
        le y szukać w konflikcie adresu (linii przerwań) lub w samym układzie UART.
96                                                        Interfejsy sprzętowe komputerów PC


        Do dokładniejszego testowania zaleca się stosowanie zewnętrznych pętli podłączanych
        do złącza portu COM (rysunek 2.16). W odró nieniu od portu LPT, port COM ma więcej
        linii wejściowych ni wyjściowych, co umo liwia dokładne testowanie wszystkich obwo-
        dów. Pętla łączy linie wejściowe odbiornika z liniami wyjściowymi nadajnika. Obo-
        wiązkowe dla wszystkich pętli połączenie 465%65 umo liwia działanie nadajnika: bez
        tego połączenia nie mo na przesyłać znaków. Do sprawdzania wejściowych sygnałów
        54, % i 4+ zazwyczaj wykorzystywany jest wyjściowy sygnał 64.

Rysunek 2.16.
Pętla do sprawdzania
portów COM (dla
programów CheckIt
i Norton Diagnostics)




        Jeśli test za pomocą zewnętrznej pętli nie powiedzie się, przyczyny problemów nale y
        szukać w zewnętrznych buforach, ich zasilaczach lub przewodach taśmowych łączących
        adapter z zewnętrznymi złączami. Do diagnozowania tych problemów przyda się wolto-
        mierz lub oscyloskop. Procedura testowania mo e przebiegać w następujący sposób:
           1. Sprawdź, czy zasilacze bipolarne obwodów wyjściowych nadajnika działają
              prawidłowo (ta czynność powinna być wykonana jako pierwsza, ale poniewa
              z technicznego punktu widzenia jest najbardziej skomplikowana, mo na ją odło yć
              na najgorszą ewentualność — sytuację, kiedy zaistnieje prawdopodobieństwo
              konieczności wymiany układów buforów).
           2. Sprawdź napięcia na liniach wyjściowych 6, 465 i 64: po wyłączeniu
              i ponownym włączeniu sprzętu na wyjściu 6 powinien być potencjał ujemny
              o wartości około –12 V (zdecydowanie ni szy ni – V). Podczas próby wysyłania
              znaku na liniach wyjściowych 465 i 64 powinno pojawić się napięcie dodatnie
              oraz seria impulsów bipolarnych na wyjściu 6. Jeśli nie ma tych sygnałów,
              istnieje mo liwość, e popełniono błąd podczas podłączania płyty głównej
              do zewnętrznego złącza za pomocą przewodu taśmowego. Najbardziej
              prawdopodobne jest, e:
                 nie podłączono przewodu taśmowego;
                 przewód został podłączony nieprawidłowo (złącze jest odwrócone
                 lub przesunięte);
                 przewód ma złącze, które nie pasuje do złącza na płycie głównej.
              Pierwsze dwa przypadki sprawdza się dokładnie oglądając połączenie, ale trzeci
              wymaga dodatkowych działań. W tabeli 2.1 zaprezentowano trzy znane
              autorowi układy przewodów dla dziesięcio yłowego przewodu taśmowego
              wykorzystywanego w portach COM. Być mo e dla portów wbudowanych
              na płytach głównych istnieją inne wersje. Teoretycznie istnieje mo liwość
              zakupu przewodu taśmowego odpowiedniego dla danego złącza.
Rozdział 2. ♦ Interfejs szeregowy: port COM                                                    97


             Jeśli źródłem problemu jest zły układ przewodu, trzy sygnały wyjściowe
             mo na zlokalizować na innych stykach złącza (napięcie na stykach wejściowych
             jest bardzo niskie). Jeśli nie uda się odnaleźć sygnałów wyjściowych na złączu,
             ewidentnie przyczyną problemów jest awaria obwodów buforów.
          3. Po połączeniu linii 465 i %65 (lub wykorzystaniu pętli) nale y spróbować
             wysłać do portu COM krótki plik (na przykład za pomocą polecenia %12;
             %#761':'%$#6 %1/). Jeśli port działa prawidłowo, polecenie zostanie
             wykonane w kilka sekund, a po zakończeniu wyświetli się komunikat o sukcesie.
             W tym momencie napięcia na wyjściach 465 i 64 powinny zmienić się
             na ujemne, a na wyjściowej linii 6 powinien pojawić się pakiet impulsów
             bipolarnych o amplitudzie większej ni 5 V. Jeśli napięcia na liniach 465 i 64
             nie zmienią się, źródłem problemów są obwody buforów. Jeśli na wyjściu 465
             (oraz na wejściu %65) pojawi się napięcie ujemne, a polecenie %12; zakończy
             się błędem, najprawdopodobniej awarii uległ odbiornik linii %65 (albo jest
             problem z taśmą). Jeśli wykonanie polecenia %12; zakończyło się sukcesem,
             ale nie ma zmian na wyjściu 6 (mo na je wykryć za pomocą woltomierza
             analogowego, ale nie mo na ocenić amplitudy), uszkodzeniu uległ nadajnik
             bufora sygnału 6.

        Wymiana układów odbiornika i nadajnika jest znacznie prostsza, jeśli są one zamon-
        towane w podstawkach. Przed wymianą układu scalonego nale y się upewnić za po-
        mocą oscyloskopu lub woltomierza, e element ten uległ uszkodzeniu.

        Jeśli układy buforów są częścią układu scalonego LSI (co w dzisiejszych czasach jest dość
        częste), portu nie da się naprawić (przynajmniej nie za pomocą standardowych narzędzi).
        Mo na wyłączyć wadliwy port COM wbudowany na płycie głównej w programie BIOS
        Setup, ale w niektórych przypadkach mo e się zdarzyć, e port spali się razem z obwodem
        odpowiedzialnym za jego rozłączenie: w takiej sytuacji port będzie zajmował miejsce
        w przestrzeni adresów i blokował linię przerwań. Czasami uszkodzenie portu mo e spo-
        wodować uszkodzenie całej płyty głównej.

        Przyczyną wadliwego działania portu mogą być złącza i kable. Złącza czasami nie gwa-
        rantują odpowiedniego styku, a kable, oprócz mo liwych przerw, mogą mieć złą charak-
        terystykę częstotliwościową. Jakość częstotliwości kabla zazwyczaj daje o sobie znać przy
        du ych szybkościach transmisji (56 kb/s lub 115 kb/s). Jeśli istnieje konieczność u y-
        cia długich kabli dla du ych szybkości, przewody sygnałowe powinny być ekranowane,
        a ekrany podłączone do oddzielnego przewodu masy.


2.10.3. Brak zasilania interfejsu,
        czyli dlaczego nie działa mysz
        Urządzenia o niskim poborze mocy podłączane do portu COM są zasilane z linii wyjścio-
        wych interfejsu. Jeśli linie 64 lub 645 nie są wykorzystywane bezpośrednio w tym celu,
        do jakiego zostały przeznaczone, mo na je wykorzystać jako źródło zasilania zapewnia-
        jącego napięcie o wartości około 12 V. Prąd zwarcia do obwodu masy jest ograniczony
        przez układ bufora nadajnika do wartości 20 mA. Podczas inicjalizacji portu, linie te są
98                                                        Interfejsy sprzętowe komputerów PC


     przełączane w stan 1((, tzn. dostarczają napięcie ujemne. Na linii 6 w stanie bezczynno-
     ści jest logiczna jedynka, a zatem na wyjściu jest napięcie ujemne. Potencjały poszcze-
     gólnych linii mo na kontrolować za pomocą rejestrów portu COM (na wyjściu 6 pojawia
     się napięcie dodatnie w przypadku ustawienia bitu $4%10). Napięcie mo na tak e wyłą-
     czyć z linii sygnałowych poprzez diody stabilizacyjne wykorzystywane razem z konden-
     satorami. W tym przypadku nale y wziąć pod uwagę czas, przez jaki sygnał wyjścio-
     wy pozostaje w po ądanym stanie (po to, aby zgromadzona energia była wystarczająca).

     Wszystkie manipulatory (myszy) podłączone do portów COM pobierają zasilanie bipo-
     larne z linii interfejsu (napięcie dodatnie z linii 64 lub 465, napięcie ujemne z linii 6).
     W związku z tym, jeśli mysz podłączona do portu nie działa, powinniśmy sprawdzić
     napięcia na odpowiednich stykach złącza. Czasami zdarza się, e tylko konkretna mysz
     (model lub egzemplarz) nie działa z określonym portem, pomimo tego, e inne myszy
     działają w tym porcie bez problemu, a mysz, która nie chce działać, bez problemu działa
     w innych portach. W tym przypadku problemem mogą być poziomy napięć. Zgodnie ze
     standardem port nie powinien dostarczać napięcia ni szego ni 5 V (wartość bezwzględ-
     na). Jeśli port zapewnia wyłącznie minimum, w przypadku niektórych myszy taki prąd nie
     wystarczy do zasilania diod LED (elementów zu ywających najwięcej energii).

     Port pobiera zasilanie bipolarne za pośrednictwem płyty głównej z zasilacza komputera.
     Jeśli na wyjściu zasilacza nie ma napięcia +12 V, zazwyczaj objawia się to brakiem dzia-
     łania dysków. Brak napięcia –12 V „zauwa ą” jedynie urządzenia podłączone do portu
     COM. Teoretycznie zasilacze monitorują napięcia na swoich wyjściach (informując
     o problemach za pomocą sygnału 2QYGT )QQF, który powoduje zresetowanie sprzętu).
     Czasami jednak są stosowane uproszczone zasilacze, które nie kontrolują wszystkich
     swoich napięć. Poza tym istnieje mo liwość złego styku w złączu zasilającym na płycie
     głównej.

More Related Content

PDF
Budowa Wewnętrzna
PDF
Interfejsy komputera osobistego
PDF
Anatomia PC. Kompendium. Wydanie IV
PDF
PC hardware. Almanach. Wydanie III
PDF
Rozbudowa i naprawa laptopów
PDF
Diagnoza komputera osobistego na podstawie komunikatów BIOS-u
PDF
Asembler dla procesorów Intel. Vademecum profesjonalisty
PDF
Przygotowanie podzespołów do montażu komputera osobistego
Budowa Wewnętrzna
Interfejsy komputera osobistego
Anatomia PC. Kompendium. Wydanie IV
PC hardware. Almanach. Wydanie III
Rozbudowa i naprawa laptopów
Diagnoza komputera osobistego na podstawie komunikatów BIOS-u
Asembler dla procesorów Intel. Vademecum profesjonalisty
Przygotowanie podzespołów do montażu komputera osobistego

What's hot (15)

PDF
Sharp 15
PDF
Sharp 11
PPT
Sieci full
PDF
Sharp 16
PDF
Dobór urządzeń techniki komputerowej do stanowiska
PDF
W sercu PC - według Petera Nortona
PPT
Procesory
PPT
Wyklad 01 budowa_i_dzialanie_komputera
PDF
Komputerowe studio muzyczne i nie tylko. Przewodnik
PDF
ABC sam składam komputer
PDF
BIOS. Leksykon kieszonkowy. Wydanie III
PDF
Zasady konfiguracji zestawów komputerowych
PDF
Instalacja sterowników urządzeń peryferyjnych
PDF
Wyposażenie stanowiska do naprawy komputera osobistego
Sharp 15
Sharp 11
Sieci full
Sharp 16
Dobór urządzeń techniki komputerowej do stanowiska
W sercu PC - według Petera Nortona
Procesory
Wyklad 01 budowa_i_dzialanie_komputera
Komputerowe studio muzyczne i nie tylko. Przewodnik
ABC sam składam komputer
BIOS. Leksykon kieszonkowy. Wydanie III
Zasady konfiguracji zestawów komputerowych
Instalacja sterowników urządzeń peryferyjnych
Wyposażenie stanowiska do naprawy komputera osobistego
Ad

Viewers also liked (20)

PDF
Zwyczajne środki zaskarżenia w postępowaniu przed sądami administracyjnymi - ...
PDF
Projektowanie stanowiska komputerowego
PDF
Arystoteles O Duszy(1)[1]
PPT
Biznesplany Prezentacja
PDF
PDF
PPTX
To Be Able To Add A Hyperlink To
PDF
Strategia Dolny Śląsk 2
PDF
URSA - ZESZYT - izolacja dachu skosnego, poddasza i stropodachu wentylowanego
PDF
Bio Harm
PPT
Kompetencje nauczyciela prezentacja
PDF
Stanley Narzedzia tnące - katalog produktów 2009
PDF
PDF
Rodzaje instalacji wodociągowych i kanalizacyjnych oraz technologia montażu ...
PPT
Prezentacja Ifs
PDF
Rewalidacja 1 & (2)
PPT
W Morzu Bałtyckim
PDF
Sygnity S.A. WULKAN
Zwyczajne środki zaskarżenia w postępowaniu przed sądami administracyjnymi - ...
Projektowanie stanowiska komputerowego
Arystoteles O Duszy(1)[1]
Biznesplany Prezentacja
To Be Able To Add A Hyperlink To
Strategia Dolny Śląsk 2
URSA - ZESZYT - izolacja dachu skosnego, poddasza i stropodachu wentylowanego
Bio Harm
Kompetencje nauczyciela prezentacja
Stanley Narzedzia tnące - katalog produktów 2009
Rodzaje instalacji wodociągowych i kanalizacyjnych oraz technologia montażu ...
Prezentacja Ifs
Rewalidacja 1 & (2)
W Morzu Bałtyckim
Sygnity S.A. WULKAN
Ad

Similar to Interfejsy sprzętowe komputerów PC (20)

PDF
Profesjonalne programowanie. Część 1. Zrozumieć komputer
PDF
Strukturalna organizacja systemów komputerowych. Wydanie V
PDF
Diagnostyka sprzętu komputerowego
PDF
Pocket PC. Podręcznik użytkownika
PDF
Po prostu sieci komputerowe
PDF
OpenBSD. Tworzenie firewalli za pomocą PF
PDF
Linux dla programistów i użytkowników
PDF
Mandrake Linux
PDF
Sieci komputerowe. Księga eksperta. Wydanie II poprawione i uzupełnione
PDF
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
PDF
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugie
PDF
Sieci komputerowe. Budowa i działanie
PDF
Mandrake Linux. Ćwiczenia
PDF
Mikroprocesory jednoukładowe PIC
PDF
J2ME. Praktyczne projekty
PDF
.Net. Najpilniej strzeżone tajemnice
PDF
.NET Framework 2.0. Zaawansowane programowanie
PDF
ABC sieci komputerowych
PDF
Hack Proofing Linux. Edycja polska
PDF
Rozbudowa i naprawa sieci. Wydanie V
Profesjonalne programowanie. Część 1. Zrozumieć komputer
Strukturalna organizacja systemów komputerowych. Wydanie V
Diagnostyka sprzętu komputerowego
Pocket PC. Podręcznik użytkownika
Po prostu sieci komputerowe
OpenBSD. Tworzenie firewalli za pomocą PF
Linux dla programistów i użytkowników
Mandrake Linux
Sieci komputerowe. Księga eksperta. Wydanie II poprawione i uzupełnione
RS 232C - praktyczne programowanie. Od Pascala i C++ do Delphi i Buildera. Wy...
Rozbudowa i naprawa komputera. Kompendium. Wydanie drugie
Sieci komputerowe. Budowa i działanie
Mandrake Linux. Ćwiczenia
Mikroprocesory jednoukładowe PIC
J2ME. Praktyczne projekty
.Net. Najpilniej strzeżone tajemnice
.NET Framework 2.0. Zaawansowane programowanie
ABC sieci komputerowych
Hack Proofing Linux. Edycja polska
Rozbudowa i naprawa sieci. Wydanie V

More from Wydawnictwo Helion (20)

PDF
Tworzenie filmów w Windows XP. Projekty
PDF
Blog, więcej niż internetowy pamiętnik
PDF
Access w biurze i nie tylko
PDF
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
PDF
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
PDF
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
PDF
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
PDF
Makrofotografia. Magia szczegółu
PDF
Windows PowerShell. Podstawy
PDF
Java. Efektywne programowanie. Wydanie II
PDF
JavaScript. Pierwsze starcie
PDF
Ajax, JavaScript i PHP. Intensywny trening
PDF
PowerPoint 2007 PL. Seria praktyk
PDF
Excel 2007 PL. Seria praktyk
PDF
Access 2007 PL. Seria praktyk
PDF
Word 2007 PL. Seria praktyk
PDF
Serwisy społecznościowe. Budowa, administracja i moderacja
PDF
AutoCAD 2008 i 2008 PL
PDF
Bazy danych. Pierwsze starcie
PDF
Inventor. Pierwsze kroki
Tworzenie filmów w Windows XP. Projekty
Blog, więcej niż internetowy pamiętnik
Access w biurze i nie tylko
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
E-wizerunek. Internet jako narzędzie kreowania image'u w biznesie
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Makrofotografia. Magia szczegółu
Windows PowerShell. Podstawy
Java. Efektywne programowanie. Wydanie II
JavaScript. Pierwsze starcie
Ajax, JavaScript i PHP. Intensywny trening
PowerPoint 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
Serwisy społecznościowe. Budowa, administracja i moderacja
AutoCAD 2008 i 2008 PL
Bazy danych. Pierwsze starcie
Inventor. Pierwsze kroki

Interfejsy sprzętowe komputerów PC

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TRE CI Interfejsy sprzêtowe komputerów PC KATALOG KSI¥¯EK Autor: 83-7361-663-2 T³umaczenie: Rados³aw Meryk (wprowadzenie, rozdz. 1 – 6), KATALOG ONLINE Przemys³aw Szeremiota (rozdz. 7 – 10) ISBN: MichaelGook ZAMÓW DRUKOWANY KATALOG Tytu³ orygina³u: PC Hardware Interfaces: A Developers Reference Format: B5, stron: 536 TWÓJ KOSZYK DODAJ DO KOSZYKA Dowiedz siê, w jaki sposób komputery PC komunikuj¹ siê z innymi urz¹dzeniami CENNIK I INFORMACJE • Rodzaje i zadania interfejsów • Magistrale i karty rozszerzeñ • Dedykowane interfejsy urz¹dzeñ peryferyjnych ZAMÓW INFORMACJE O NOWO CIACH Komputer PC mo¿e wspó³pracowaæ z ró¿nymi urz¹dzeniami — od drukarek, modemów i innych komputerów, a¿ do urz¹dzeñ pomiarowych, si³owników i innych sterowanych ZAMÓW CENNIK z poziomu komputera. Po³¹czenie komputera z urz¹dzeniem zewnêtrznym jest realizowane za po rednictwem interfejsów — z³¹czy umo¿liwiaj¹cych komunikacjê dwóch urz¹dzeñ. CZYTELNIA Ksi¹¿ka „Interfejsy sprzêtowe komputerów PC” to kompletne omówienie wszystkich interfejsów stosowanych do ³¹czenia komputerów PC z urz¹dzeniami peryferyjnymi. FRAGMENTY KSI¥¯EK ONLINE Przedstawia zarówno rodzaje interfejsów, jak i zasady ich dzia³ania, typy przesy³anych przez nie sygna³ów i regu³y przydzielania im pamiêci w komputerze. Omawia mechanizmy transmisji przez ka¿dy z zaprezentowanych interfejsów oraz sygna³y steruj¹ce dzia³aniem ich kontrolerów. • Zasada dzia³ania interfejsów • Interfejsy COM i LPT • Z³¹cza bezprzewodowe — IrDA i Bluetooth • Magistrale USB, FireWire i SCSI • Z³¹cza kart rozszerzeñ • Interfejsy klawiatury i myszy • Z³¹cza pamiêci masowych i sieciowe Wydawnictwo Helion Je li chcesz stworzyæ aplikacjê, która bêdzie wykorzystywaæ jeden z interfejsów ul. Chopina 6 komputera PC, lektura tej ksi¹¿ki bêdzie strza³em w dziesi¹tkê. 44-100 Gliwice tel. (32)230-98-63 e-mail: [email protected]
  • 2. Spis treści Wprowadzenie w tematykę interfejsów ............................................... 7 Ogólna struktura komputerów ........................................................................................... 7 Urządzenia peryferyjne .............................................................................................. 7 Hierarchia połączeń ................................................................................................... 8 Organizacja interfejsów................................................................................................... 10 Typy przesyłanych informacji.................................................................................. 10 Interfejsy równoległe i szeregowe............................................................................ 11 Sygnały i media transmisji ....................................................................................... 16 Galwaniczna separacja podłączonych urządzeń....................................................... 18 Interakcje pomiędzy urządzeniami i topologia urządzeń ......................................... 19 Kontrola poprawności transmisji i jej niezawodność oraz sterowanie przepływem.....22 Parametry czasowe i synchronizacja........................................................................ 24 Ewolucja sposobów podłączania urządzeń peryferyjnych............................................... 25 Interfejsy poziomu systemu ..................................................................................... 25 Interfejsy urządzeń peryferyjnych............................................................................ 31 Wybór interfejsu ...................................................................................................... 33 Rozdział 1. Interfejs równoległy: port LPT ............................................................ 35 1.1. Tradycyjny port LPT ................................................................................................ 36 1.2. Ulepszenia portu równoległego ................................................................................ 40 1.3. Standard IEEE 1284 ................................................................................................. 40 1.3.1. Tryb półbajtowy............................................................................................. 41 1.3.2. Bajtowy tryb wejściowy................................................................................. 43 1.3.3. Tryb EPP........................................................................................................ 44 1.3.4. Tryb ECP ....................................................................................................... 49 1.3.5. Tryby i rejestry ECP ...................................................................................... 52 1.3.6. Negocjacja w standardzie IEEE 1284 ............................................................ 56 1.3.7. Interfejsy fizyczne i elektryczne..................................................................... 57 1.3.8. Rozwój standardu IEEE 1284 ........................................................................ 60 1.4. Obsługa systemowa portów LPT.............................................................................. 61 1.5. Funkcje portu równoległego oraz obsługa Plug-and-Play ........................................ 62 1.6. Zastosowania portu LPT........................................................................................... 62 1.7. Konfiguracja portów LPT......................................................................................... 64 1.8. Rozwiązywanie problemów z działaniem portu równoległego ................................ 66
  • 3. 4 Interfejsy sprzętowe komputerów PC Rozdział 2. Interfejs szeregowy: port COM ........................................................... 69 2.1. Interfejs RS-232C..................................................................................................... 70 2.2. Interfejsy pomocnicze i konwertery poziomów........................................................ 75 2.3. Tryb asynchroniczny ................................................................................................ 80 2.4. Sterowanie przepływem danych ............................................................................... 81 2.5. Układy scalone asynchronicznych nadajniko-odbiorników (UART) ....................... 83 2.6. Obsługa portów COM w systemie operacyjnym ...................................................... 90 2.7. Konfiguracja portów COM....................................................................................... 91 2.8. Zastosowania portów COM...................................................................................... 91 2.9. Porty COM i PnP...................................................................................................... 93 2.10. Problemy z działaniem portów COM i ich rozwiązywanie ...................................... 94 2.10.1. Testowanie konfiguracji................................................................................. 94 2.10.2. Testowanie działania...................................................................................... 95 2.10.3. Brak zasilania interfejsu, czyli dlaczego nie działa mysz............................... 97 Rozdział 3. Interfejsy bezprzewodowe .................................................................. 99 3.1. Port podczerwieni — IrDA....................................................................................... 99 3.2. Radiowy interfejs Bluetooth................................................................................... 103 Rozdział 4. Magistrale szeregowe: USB i FireWire.............................................. 109 4.1. Uniwersalna magistrala szeregowa: USB............................................................... 110 4.1.1. Architektura USB......................................................................................... 110 4.1.2. Model transmisji danych .............................................................................. 116 4.1.3. Transakcje magistrali ................................................................................... 119 4.1.4. Przepustowość magistrali i urządzenia......................................................... 127 4.1.5. Synchronizacja podczas transmisji izochronicznych.................................... 133 4.1.6. Interfejs fizyczny.......................................................................................... 137 4.1.7. Urządzenia USB........................................................................................... 146 4.1.8. Koncentratory USB...................................................................................... 148 4.1.9. Host.............................................................................................................. 159 4.1.10. Konfiguracja i zarządzanie urządzeniami .................................................... 171 4.1.11. Zastosowania interfejsu USB....................................................................... 178 4.2. Magistrala IEEE 1394: FireWire ............................................................................ 194 4.2.1. Fizyczna warstwa sieci................................................................................. 195 4.2.2. Protokół IEEE 1394 ..................................................................................... 196 4.2.3. Urządzenia i adaptery interfejsu 1394.......................................................... 199 4.2.4. Zastosowania interfejsu 1394....................................................................... 200 Rozdział 5. Magistrala SCSI .............................................................................. 203 5.1. Równoległe interfejsy SCSI ................................................................................... 206 5.1.1. Protokół magistrali....................................................................................... 207 5.1.2. Sterowanie interfejsem i wykonywanie poleceń .......................................... 213 5.1.3. Kable, złącza i sygnały................................................................................. 216 5.1.4. Terminatory.................................................................................................. 224 5.1.5. Konfiguracja urządzeń SCSI........................................................................ 226 5.1.6. Podłączanie urządzeń do magistrali SCSI.................................................... 228 5.2. Interfejs Fibre Channel ........................................................................................... 233 5.3. Adapter hosta SCSI ................................................................................................ 234 Rozdział 6. Magistrale i karty rozszerzeń wejścia-wyjścia ................................... 237 6.1. Magistrale PCI oraz PCI-X .................................................................................... 238 6.1.1. Wyliczanie urządzeń .................................................................................... 241 6.1.2. Protokół magistrali....................................................................................... 243 6.1.3. Przepustowość magistrali............................................................................. 266 6.1.4. Przerwania: INTx#, PME#, MSI i SERR#................................................... 269
  • 4. Spis treści 5 6.1.5. Bezpośredni dostęp do pamięci, emulacja DMA trybu ISA (PC/PCI, DDMA)........................................................................................ 279 6.1.6. Mosty PCI i PCI-X....................................................................................... 280 6.1.7. Konfiguracja urządzeń ................................................................................. 292 6.1.8. Interfejs elektryczny i budowa magistrali .................................................... 315 6.2. Interfejs AGP.......................................................................................................... 325 6.2.1. Protokoły transakcji ..................................................................................... 327 6.2.2. Translacja adresów: szczelina AGP i GART ............................................... 333 6.2.3. Transakcje izochroniczne AGP 3.0.............................................................. 334 6.2.4. Rejestry konfiguracyjne AGP ...................................................................... 335 6.2.5. Karty i gniazda AGP .................................................................................... 339 6.3. Architektura PCI Express ....................................................................................... 343 6.3.1. Formaty transakcji i pakietów w architekturze PCI Express ........................ 349 6.3.2. Przesyłanie pakietów i przepustowość łączy................................................ 352 6.4. Interfejs LPC .......................................................................................................... 353 6.5. Karty i magistrale rozszerzeń w notebookach ........................................................ 358 6.5.1. Interfejsy PCMCIA, karty PC i CardBus ..................................................... 359 Rozdział 7. Specjalizowane interfejsy urządzeń peryferyjnych .............................. 365 7.1. Interfejs klawiatury................................................................................................. 365 7.1.1. Interfejsy klawiaturowe: AT i PS/2.............................................................. 366 7.1.2. Kontroler klawiatury i myszy 8042 (8242) .................................................. 368 7.1.3. Obsługa systemowa i interfejs programowy ................................................ 371 7.2. Interfejs myszy ....................................................................................................... 372 7.2.1. Myszy szeregowe: mysz Microsoft i mysz PC............................................. 372 7.2.2. Myszy PS/2 .................................................................................................. 373 7.2.3. Mysz szynowa.............................................................................................. 374 7.3. Interfejsy drukarki i plotera .................................................................................... 375 7.3.1. Interfejsy równoległe: Centronics i IEEE 1284............................................ 376 7.3.2. Szeregowe interfejsy drukarki...................................................................... 378 7.3.3. Obsługa drukarki w systemie operacyjnym.................................................. 380 7.4. Interfejsy wyjściowe kart graficznych .................................................................... 381 7.4.1. Interfejs cyfrowy RGB TTL......................................................................... 381 7.4.2. Analogowe interfejsy RGB .......................................................................... 382 7.4.3. Interfejsy cyfrowe P&D, DVI i DFP............................................................ 389 7.4.4. Wewnętrzne interfejsy cyfrowe.................................................................... 393 7.4.5. Interfejsy sygnału wideo .............................................................................. 395 7.5. Interfejsy audio....................................................................................................... 397 7.5.1. Interfejsy analogowe .................................................................................... 397 7.5.2. Interfejsy cyfrowe ........................................................................................ 399 7.5.3. Interfejs MIDI .............................................................................................. 400 7.5.4. Interfejs karty syntezatora ............................................................................ 403 7.6. Interfejs d ojstika ................................................................................................... 403 Rozdział 8. Interfejsy urządzeń pamięci masowych ............................................. 407 8.1. Interfejs stacji dysków elastycznych....................................................................... 408 8.1.1. Interfejs sprzętowy ....................................................................................... 408 8.1.2. Kontroler stacji dysków elastycznych .......................................................... 411 8.2. Urządzenia IDE i interfejs ATA (ATAPI).............................................................. 415 8.2.1. Interfejs równoległy ATA ............................................................................ 418 8.2.2. Szeregowy interfejs ATA............................................................................. 446 8.3. Interfejsy i konstrukcja półprzewodnikowych pamięci masowych......................... 452 8.3.1. CompactFlash .............................................................................................. 453 8.3.2. SmartMedia Card ......................................................................................... 456
  • 5. 6 Interfejsy sprzętowe komputerów PC 8.3.3. Karty Multimedia Card i Secure Digital ...................................................... 457 8.3.4. Karty Miniature Card ................................................................................... 459 8.4. Systemowa obsługa urządzeń pamięci masowych.................................................. 460 Rozdział 9. Interfejsy sieciowe .......................................................................... 463 9.1. Standardy i interfejsy sieci Ethernet ....................................................................... 463 9.2. Adaptery sieciowe .................................................................................................. 468 Rozdział 10. Pomocnicze interfejsy i magistrale szeregowe ................................ 475 10.1. Kanały komunikacji szeregowej bazujące na I2C .................................................. 476 10.1.1. Magistrala I2C ............................................................................................. 476 10.1.2. ACCESS.Bus ............................................................................................... 482 10.1.3. SMBus ......................................................................................................... 488 10.1.4. Porównanie magistral I2C, ACCESS.Bus i SMBus..................................... 498 10.2. Media Independent Interface .................................................................................. 499 10.3. Interfejs SPI............................................................................................................ 501 10.4. Interfejs JTAG........................................................................................................ 502 10.5. Programowe implementacje interfejsów szeregowych........................................... 507 Skorowidz ..................................................................................... 511
  • 6. Rozdział 2. Interfejs szeregowy: port COM Uniwersalny interfejs szeregowy — port COM — występuje w komputerach PC począw- szy od pierwszych modeli. Port zapewnia asynchroniczną1 transmisję danych z wyko- rzystaniem standardu RS-232C. Porty COM są implementowane za pomocą układów scalonych określanych jako Uniwersalny Asynchroniczny Odbiorniko-nadajnik (ang. Universal Asynchronous Receiver-Transmitter — UART) zgodnych z modelem pro- gramowym i8250/16450/16550. Ka dy z nich zajmuje osiem sąsiednich ośmiobitowych rejestrów w przestrzeni adresowej wejścia-wyjścia i mo e wykorzystywać jeden ze stan- dardowych adresów: 3F8h (COM1), 2F8h (COM2), 3E8h (COM3) oraz 2E8h (COM4). Porty mogą generować przerwania sprzętowe IRQ4 (zwykle u ywane dla portów COM1 i COM3) oraz IRQ3 (u ywany dla COM2 i COM4). Ze strony sprzętowej porty zawie- rają linie do szeregowego nadawania danych i ich odbioru. Jest tak e zbiór linii sterujących i monitorowania stanu zgodnych ze standardem RS-232C. Porty COM są wyposa one w zewnętrzne męskie złącza DB25P lub DB9P na panelu tylnym komputera (patrz podrozdział 2.1). Cechą wyró niającą interfejs jest zastosowanie sygnałów, które nie są sygnałami TTL: wszystkie zewnętrzne sygnały portu są bipolarne. Interfejs nie gwarantuje galwanicznej separacji: masa obwodu podłączonego urządzenia jest połączona z masą komputera. Szybkość transmisji sięga 115 200 b/s. BIOS komputera obsługuje do czterech portów szeregowych: od COM1 do COM4 (kom- putery klasy AT zazwyczaj są wyposa one w dwa porty). Przerwanie BIOS KPVJ zapewnia inicjalizację portu, wejście i wyjście znaków (bez wykorzystania przerwań) i odpytywanie stanu. Za pomocą standardowych wywołań KPVJ mo na zaprogra- mować szybkości transmisji w zakresie od 110 do 9 600 b/s (mniej ni pozwalają rze- czywiste mo liwości portu). W celu zwiększenia przepustowości powszechnie wyko- rzystuje się interakcję oprogramowania aplikacyjnego z portem na poziomie rejestrów. Z tego powodu sprzęt portów szeregowych musi być zgodny z modelem oprogramowania i8250/1645/16550. 1 W komputerach PC transmisję synchroniczną obsługują tylko specjalne adaptery, takie jak SDLC lub V.35.
  • 7. 70 Interfejsy sprzętowe komputerów PC Nazwa portu wskazuje na jego główne przeznaczenie: podłączanie sprzętu (np. mode- mów) umo liwiającego komunikację z innymi komputerami, sieciami i urządzeniami peryferyjnymi. Urządzenia peryferyjne wyposa one w interfejsy szeregowe — drukarki, plotery, itp. mo na podłączać bezpośrednio do portu. Porty COM są powszechnie wy- korzystywane do podłączania myszy oraz do bezpośredniego podłączania dwóch kom- puterów. Porty COM wykorzystuje się równie w celu podłączania do komputera kluczy elektronicznych. Praktycznie wszystkie nowoczesne płyty główne (począwszy od pierwszych płyt wy- posa onych w złącze PCI dla procesorów x486) są wyposa one w dwa wbudowane adaptery portu COM. Jeden z portów mo na tak e wykorzystać do bezprzewodowej komunikacji z urządzeniami peryferyjnymi za pomocą podczerwieni (IrDA). Istnieją karty ISA wyposa one w kilka portów COM. Najczęściej obok portów COM na kartach tego typu jest port LPT oraz kontrolery interfejsów dysków (FDC+IDE). Jeśli jest po- trzebna większa liczba interfejsów, mo na zainstalować dodatkowe specjalizowane ad- aptery nazywane kartami wieloportowymi. Są to stosunkowo drogie karty wyposa one w 4, 8, 12, a nawet 16 portów. Wyprowadzenie tak du ej liczby złączy na tylnym pa- nelu komputera PC jest kłopotliwe. Z tego powodu karty wieloportowe są zazwyczaj wyposa one w blok zewnętrznych złączy zawierających elektronikę i podłączonych do adaptera za pomocą kabla z wielo yłowymi złączami. Karty wieloportowe nie są ob- sługiwane przez BIOS. „Klasyczny” port COM umo liwiał jedynie transmisję danych sterowaną programowo. W celu przesłania ka dego bajtu procesor musiał wykonać kilka instrukcji. Nowoczesne porty są wyposa one w kilka buforów danych FIFO i umo liwiają transfer danych poprzez kanał DMA. To znacznie zmniejsza obcią enie procesora — szczególnie istotny czynnik przy du ych szybkościach transmisji. 2.1. Interfejs RS-232C Interfejs RS-232C jest przeznaczony do podłączania sprzętu do transmisji lub odbie- rania danych (ang. Data Terminal Equipment — DTE) ze sprzętem zapewniającym kanały danych (ang. Data Communication Equipment — DCE). Rolę urządzenia DTE mo e spełniać komputer, drukarka, ploter lub inne urządzenie peryferyjne. Rolę urzą- dzenia DCE zwykle spełnia modem. Celem połączenia jest zapewnienie łącza pomię- dzy dwoma urządzeniami transmisji danych. Schemat połączeń pokazano na rysunku 2.1. Interfejs umo liwia wyłączenie kanału zdalnej komunikacji wraz z parą urządzeń DCE poprzez bezpośrednie połączenie dwóch urządzeń za pomocą kabla modemu ze- rowego (ang. null-modem) (rysunek 2.2). Rysunek 2.1. Schemat połączeń interfejsu RS-232C
  • 8. Rozdział 2. ♦ Interfejs szeregowy: port COM 71 Rysunek 2.2. Połączenie RS-232C za pomocą kabla zerowego modemu W standardzie określono sygnały sterujące interfejsu, transmisji danych, interfejsu elek- trycznego i typy złączy. Standard zapewnia asynchroniczne i synchroniczne tryby transmi- sji, ale porty COM obsługują jedynie tryb asynchroniczny. Funkcjonalnie standard RS- 232C odpowiada standardom CCITT/ITU V.24/V.28, ale występują w nim inne nazwy sygnałów. W standardzie RS-232C (patrz rysunek 2.3) zdefiniowano asymetryczne nadajniki i od- biorniki, w których sygnały są przesyłane względem wspólnego przewodu: obwodu masy (w innych interfejsach, takich jak RS-422, są wykorzystywane symetryczne sygnały ró nicowe). Interfejs nie gwarantuje galwanicznej separacji urządzeń. Napięcia w zakresie −12 V do −3 V odpowiadają logicznej jedynce (stan MARK) na linii danych odbiornika (sygnał 4:). Napięcia w zakresie +3 V do +12 V odpowiadają logicznemu zeru (stan SPACE). Dla sygnałów sterujących napięcia w zakresie od +3 V do +12 V odpowiadają stanowi ON, natomiast w zakresie −12 V do −3 V stanowi OFF. Zakres od −3 V do +3 V to martwa strefa zapewniająca histerezę odbiornika: stan linii uznaje się za zmieniony wyłącznie po przekroczeniu progu (rysunek 2.3). Poziomy sygnałów na wyjściach na- dajnika powinny mieścić się w zakresie od −12 V do –5 V oraz od +5 V do +12 V. Ró nica potencjałów pomiędzy masami sygnałów (SG) połączonych urządzeń po- winna być mniejsza ni 2 V. Większa ró nica potencjałów mo e spowodować błędny odbiór sygnałów. Warto zwrócić uwagę, e poziomy sygnałów TTL (na wejściach i wyj- ściach układów scalonych UART) są przesyłane z wykorzystaniem prostego kodowania na liniach 6: i 4: oraz odwróconego dla pozostałych. Rysunek 2.3. Odbiór sygnałów RS-232C Interfejs zakłada istnienie uziemienia zabezpieczającego dla podłączonych urządzeń, jeśli oba są zasilane prądem zmiennym z sieci i są wyposa one w filtry.
  • 9. 72 Interfejsy sprzętowe komputerów PC Podłączanie i odłączanie kabli interfejsów urządzeń wyposażonych w indywidualne zasilacze powinno odbywać się przy wyłączonym zasilaniu. W innym przypadku różnica napięć w nieustabilizowanych urządzeniach w momencie nawiązywania połączenia może spowodować przepływ prądu w obwodach wyjściowych lub, co jest bardziej niebezpieczne, w obwodach wejściowych interfejsu i uszkodzić układy scalone. Standard RS-232C reguluje typy wykorzystywanych złączy. Zazwyczaj urządzenia DTE (włącznie z portami COM) są wyposa one w męskie złącze DB-25P lub mniejsze męskie złącze DB-9P. Złącza dziewięciostykowe nie są wypo- sa one w dodatkowe sygnały potrzebne do obsługi trybu synchronicznego (w większości złączy dwudziestopięciostykowych styki te są nieu ywane). Urządzenia DCE (modemy) są wyposa one w eńskie złącza DB-25S lub DB-9S. Z reguły tej wynika, e złącza urządzeń DCE mo na połączyć ze złączami urządzeń DTE bezpośrednio lub za pomocą kabli adapterów „na wprost” wyposa onych w eńskie złą- cze z jednej strony i męskie z drugiej, których przewody są połączone „jeden do jednego”. Istnieją te kable adapterów wyposa one w złącze 9-stykowe z jednej strony i 25-stykowe z drugiej (rysunek 2.4). Rysunek 2.4. Kable do podłączania modemów Jeśli urządzenia DTE są podłączone bez wykorzystania modemów, ich złącza są połączone za pomocą kabla zerowego modemu (Z-modem). Takie kable są wyposa one w eńskie złącza po obu stronach, a yły skrzy owane są zgodnie ze schematem pokazanym na rysunku 2.5. Rysunek 2.5. Kable zerowego modemu: a — minimalny, b — kompletny
  • 10. Rozdział 2. ♦ Interfejs szeregowy: port COM 73 Jeśli w urządzeniu DTE zainstalowano złącze eńskie, istnieje prawie stuprocentowa pew- ność, e nale y je podłączyć do innego urządzenia za pomocą kabla na wprost podob- nego do kabla wykorzystywanego do połączenia modemu. eńskie złącza zazwyczaj montuje się w urządzeniach, których nie łączy się za pośrednictwem modemów. W tabeli 2.1 zaprezentowano funkcje styków złącza portu COM (oraz innych urządzeń typu DTE). Styki złącza DB-25S są zdefiniowane przez standard EIA/TIA-232-E, natomiast złącza DB-9S przez standard EIA/TIA-574. W modemach (DCE) stosuje się te same nazwy obwodów i styków, ale funkcje sygnałów (wejście-wyjście) są odwrócone. Tabela 2.1. Złącza interfejsu RS-232C i wykorzystywane w nich sygnały Numer żyły zewnętrznego kabla Sygnał Styk złącza Kierunek łączącego z komputerem PC Wejście/Wyjście Port COM RS-232 V.24 DB-25P DB-9P 11 22 33 44 PG AA 101 1 5 (10) (10) (10) 1 — SG AB 102 7 5 5 9 1 13 — TD BA 103 2 3 3 5 3 3 Wyjście RD BB 104 3 2 2 3 4 5 Wejście RTS CA 105 4 7 7 4 8 7 Wyjście CTS CB 106 5 8 8 6 7 9 Wejście DSR CC 107 6 6 6 2 9 11 Wejście DTP CD 108/2 20 4 4 7 2 14 Wyjście DCD CF 109 8 1 1 1 5 15 Wejście RI CE 125 22 9 9 8 6 18 Wejście 1 Taśma dla ośmiobitowych kart wielofunkcyjnych. 2 Taśma dla szesnastobitowych kart wielofunkcyjnych i portów wbudowanych. 3 Wersja taśmy dla portów wbudowanych. 4 Szeroka taśma dla złącza 25-stykowego. Poni ej przeanalizujemy podzbiór sygnałów interfejsu RS-232C dla trybu asynchro- nicznego z punktu widzenia portu COM komputera PC. Dla wygody wykorzystamy mnemoniki przyjęte w opisach portów COM i większości urządzeń (które ró nią się od anonimowych notacji opisu kabli RS-232 i V.24). Nale y pamiętać, e stan aktywny (ON) sygnałów sterujących i logiczne zero przesyłanych danych są reprezentowane przez potencjał dodatni (powy ej +3 V) interfejsu, natomiast stan OFF i logiczna jedynka są reprezentowane przez potencjał ujemny (poni ej −3 V). W tabeli 2.2 zaprezentowano funkcje sygnałów interfejsu. Na rysunku 2.6 pokazano normalną sekwencję sygnałów sterujących dla przypadku modemu podłączonego do portu COM: Rysunek 2.6. Sekwencja sygnałów sterujących interfejsu
  • 11. 74 Interfejsy sprzętowe komputerów PC Tabela 2.2. Funkcje sygnałów interfejsu RS-232C Sygnał Funkcja PG Uziemienie zabezpieczające: podłączone do obudowy urządzenia i ekranu kabla. SG Masa sygnału (obwodu): w zale ności od poziomu sygnału. TD Transmisja danych: dane przesyłane szeregowo, wynik generowany przez nadajnik. RD Odbiór danych: dane szeregowe, dane wejściowe odbiornika. RTS Request To Send ( ądanie wysłania): stan ON informuje modem, e terminal posiada dane do transmisji. W trybie półdupleksowym wykorzystywany do sterowania kierunkiem transmisji: stan ON to sygnał dla modemu do przełączenia do trybu transmisji. CTS Clear To Send (zezwolenie na wysłanie): zezwolenie wysyłania danych dla terminala. Stan OFF uniemo liwia transmisję danych. Sygnał jest wykorzystywany do sprzętowej kontroli strumieni danych. DSR Data Set Ready (zbiór danych gotowy): odebranie sygnału oznacza, e urządzenie jest gotowe do transmisji danych (modem w trybie działania jest podłączony do kanału i zakończył negocjacje z urządzeniem po drugiej stronie kanału). DTR Data Terminal Ready (terminal danych gotowy): wysłanie sygnału oznacza, e terminal jest gotowy do wymiany danych. Stan ON utrzymuje połączenie komutowanego kanału. DCD Data Carrier Detected (wykryto nośną danych): odebranie sygnału oznacza, e wykryto sygnał nośnej zdalnego modemu. RI Ring Indicator (wskaźnik dzwonka): odebranie sygnału wywołania (dzwonka). W komutowanym kanale sygnał ten oznacza, e modem otrzymuje sygnał dzwonienia. 1. Komputer PC sygnalizuje, e chce skorzystać z modemu, poprzez ustawienie linii DTR. 2. Modem sygnalizuje, e jest gotowy i ustanawia połączenie, poprzez ustawienie sygnału DSR. 3. Poprzez ustawienie sygnału RTS komputer prosi o zezwolenie na transmisję i informuje modem, e jest gotowy do odbioru danych. 4. Poprzez ustawienie sygnału CTS modem informuje, e jest gotowy do odbioru danych z komputera i do wysyłania ich w łączu. 5. Poprzez wyzerowanie sygnału CTS modem sygnalizuje, e nie mo e kontynuować odbioru danych (na przykład bufor jest pełny) oraz e komputer powinien wstrzymać wysyłanie danych. 6. Poprzez ustawienie sygnału CTS modem zezwala na wznowienie transmisji danych (zwolniło się miejsce w buforze). 7. Wyzerowanie sygnału RTS mo e oznaczać, e bufor komputera jest pełny (modem musi wstrzymać wysyłanie danych do komputera) lub e komputer nie ma danych do przesłania do modemu. W takim przypadku modem zwykle wstrzymuje transmisję danych do komputera. 8. Modem potwierdza wyzerowanie sygnału RTS poprzez wyzerowanie sygnału CTS. 9. W celu wznowienia wysyłania danych komputer ponownie ustawia sygnał RTS.
  • 12. Rozdział 2. ♦ Interfejs szeregowy: port COM 75 10. Modem potwierdza gotowość. 11. Komputer sygnalizuje zakończenie wymiany. 12. Modem odpowiada, wysyłając potwierdzenie. 13. Komputer zeruje sygnał DTR, co zazwyczaj oznacza sygnał do przerwania połączenia. 14. Poprzez wyzerowanie sygnału DSR modem sygnalizuje przerwanie połączenia. Z analizy powy szej sekwencji jasno wynika cel połączenia sygnałów 6454 oraz 465%65 w kablu zerowego modemu. 2.2. Interfejsy pomocnicze i konwertery poziomów W interfejsach szeregowych nie zawsze wykorzystuje się bipolarne sygnały RS-232C. Korzystanie z nich jest niewygodne np. z powodu konieczności wykorzystania bipo- larnych zasilaczy dla nadajniko-odbiorników. Układy scalone opisanych powy ej na- dajniko-odbiorników UART pracują z sygnałami TTL(CMOS). Te same rodzaje sy- gnałów są stosowane w interfejsach ró norodnych urządzeń. Na przykład sygnały TTL(CMOS) są wykorzystywane w portach twardych dysków, telefonów komórkowych (choć o bardzo niskich poziomach) oraz ró nych innych urządzeniach. Wiele urządzeń (włącznie z kieszonkowymi komputerami PC i telefonami komórkowymi) jest wypo- sa onych w interfejsy szeregowe wykorzystujące logikę niskonapięciową. Oczywiście sygnały standardowej logiki nie charakteryzują się tak wysoką rezystancją szumów jak RS-232C, ale nie zawsze jest to potrzebne. W celu umo liwienia wzajemnej konwersji pomiędzy poziomami napięć interfejsu RS-232C i logiki CMOS istnieją specjalne układy scalone buforów dla odbiorników (z histerezą) oraz nadajników sygnałów bipolarnych. Układy te jako pierwsze stają się ofiarami efektów „pirotechnicznych” w przypadku naruszenia reguł uziemiania i łą- czenia urządzeń. Dawniej często instalowano je w podstawkach w celu ułatwienia wy- miany w przypadku awarii. Na rysunku 2.7 zaprezentowano rozmieszczenie styków jedne- go z popularnych układów scalonych generujących sygnały na poziomie interfejsu RS-232C. Często obwody buforów są włączone w układy scalone LSI interfejsów. W ten sposób cena urządzenia staje się ni sza, ale w przypadku awarii powstaje ryzyko większych strat. Uszkodzenie układów scalonych interfejsu z powodu zwarcia jest mało prawdopodobne: prąd zwarcia nadajników zazwyczaj nie przekracza 20 mA. W specjalnych kablach adapterów często stosowane są konwertery produkowane przez firmy Maxim i Sypex. Kable te sprawdzają się pod tym względem, e zawierają za- równo odbiorniki, jak nadajniki. Spośród szerokiej gamy dostępnych konwerterów z ła- twością mo na wybrać te, które zawierają potrzebną liczbę odbiorników i nadajników, a tak e wymaganą charakterystykę napięciową (unipolarne, bipolarne, niskonapięciowe).
  • 13. 76 Interfejsy sprzętowe komputerów PC Rysunek 2.7. Generatory sygnałów RS-232C: a — odbiornik 1489; b — odbiornik 1488; c — tabela stanów wyjściowych nadajnika (*na brakującym wyjściu 1B zakłada się logiczną jedynkę) Kiedy jest wymagana wysoka rezystancja szumów (dla du ych szybkości lub transmisji na dalekie odległości), wykorzystywane są ró ne wersje elektryczne interfejsu szere- gowego: RS-422A (V.11, X.27), RS-423A (V.10, X.26) oraz RS-485. Na rysunku 2.8 pokazano schematy podłączania odbiorników i nadajników wraz z limitami długości łączy (L) oraz maksymalnymi szybkościami transmisji (V). Asymetryczne linie inter- fejsów RS-232C i RS-423A charakteryzują się najni szą odpornością na znane zakłó- cenia, chocia ró nicowe wejście odbiornika RS-423A w pewnym stopniu neutralizuje tę sytuację. Najlepsze parametry mają interfejsy RS-422A i RS-485 pracujące w sy- metrycznych liniach komunikacyjnych. Wykorzystuje się w nich nadajniki ró nicowe z osobną parą przewodów (z przeplotem) dla ka dej pętli sygnału. Rysunek 2.8. Standardy interfejsów szeregowych W interfejsach EIA-RS-422 (ITU-T V.11, X.27) i EIA-RS-485 (ISO 8482) wykorzy- stuje się symetryczną transmisję sygnału. Interfejsy te umo liwiają realizację połą- czeń zarówno w topologii punkt-punkt, jak i w magistrali. Nośnikiem informacji jest
  • 14. Rozdział 2. ♦ Interfejs szeregowy: port COM 77 w nich ró nica potencjałów pomiędzy przewodnikami A i B. Ró nica potencjałów na wejściu odbiornika UA−UB 0,2 V (A ma większy potencjał dodatni ni B) odpowiada stanowi OFF (przerwa), natomiast UA−Ug −0,2 V (A ma większy potencjał ujemny ni B) stanowi ON (mark). Zakres |UA–UB|0,2 V to martwa strefa (histereza) zapew- niająca ochronę przed zakłóceniami. Na wyjściach nadajnika sygnały UA i Ug zazwy- czaj mają poziomy 0 V i +5 V (CMOS) lub +1 V i +4 V (TTL). Ró nicowe napięcie wyjściowe musi mieścić się w zakresie od 1,5 V do 5 V. Rezystancja wyjściowa na- dajnika wynosi 100 Ω. Interfejsy są zgodne pod względem elektrycznym, chocia wystę- pują pewne ró nice w ograniczeniach. Zasadniczą cechą wyró niającą nadajniki RS-485 jest ich zdolność do przełączania się do stanów wysokiej impedancji. Nadajniki RS-422/ 485 są zgodne z odbiornikami RS-423. W tabeli 2.3 wyszczególniono główne parametry interfejsów. Topologie połączeń pokazano na rysunku 2.9. Tabela 2.3. Parametry interfejsów RS-422 i RS-485 Parametr RS-422 RS-485 Próg działania |UA−UB| [V] 0,2 0,2 Dopuszczalny poziom zakłóceń −6.8 – +6.8 −6.8 – +11.8 trybu wspólnego, [V]1. Dopuszczalne napięcie −7 – +7 −7 – +12 wejściowe, [V]1. Rezystancja wejściowa 4 12 odbiornika, [kΩ]. Minimalna rezystancja 100 60 obcią enia nadajnika, [Ω]. Maksymalna liczba węzłów. Jeden nadajnik plus 32 (nadajniki, odbiorniki lub 10 odbiorników kombinacja nadajników i odbiorników) Maksymalna długość [m]. 1200 (100 kb/s) 12 (10 Mb/s) 1200 (100 kb/s) 12 (10 Mb/s) Terminator, R=100 Ω. Po stronie nadajnika Po obu stronach Prąd zwarcia [mA]. 150 do szyny GND 250 do szyny o potencjale −7 V − +12 V lub pomiędzy yłami A i B 1 Napięcie jest mierzone względem masy obwodu węzła. Rysunek 2.9. Topologia interfejsów: a — RS-422; b — RS-485 4- yłowy; c — RS-485 2- yłowy
  • 15. 78 Interfejsy sprzętowe komputerów PC W celu zwiększenia liczby węzłów mo na podnieść rezystancję wejściową odbiorni- ków, ale to prowadzi do obni enia dopuszczalnej szybkości transmisji lub zmniejsze- nia potencjalnej odległości, na którą jest realizowana transmisja. Maksymalna szyb- kość transmisji na krótkich odległościach (do 10 metrów) jest ograniczona szybkością działania nadajnika (mo na osiągnąć częstotliwości do 25 MHz). Na średnich odległo- ściach ograniczenia zale ą od pojemności kabla (przy szybkości 1 200 b/s — 25 nF, przy szybkości 9 600 b/s — 30 nF, przy szybkości 115 kb/s — 250 pF). Maksymalna odległość jest ograniczona rezystancją DC pętli. Istnieją dwa typy interfejsu RS-485: dwu yłowy i cztero yłowy. Interfejs cztero yłowy (rysunek 2.9b) ustawia węzeł nadrzędny, którego nadajniki obsługują odbiorniki po- zostałych węzłów. Nadajnik węzła nadrzędnego jest zawsze aktywny: nie musi się prze- łączać do stanu wysokiej impedancji. Nadajniki pozostałych węzłów (podrzędnych) muszą posiadać trójstanowe wyjścia — są podłączone do wspólnej szyny nadajnika nad- rzędnego. W interfejsie dwu yłowym (rysunek 2.9c) wszystkie węzły są sobie równe. W najprostszym przypadku połączenia punkt-punkt interfejsy RS-485 i RS-422 są równowa ne i stan wysokiej impedancji nie jest u ywany. W celu utrzymania najmniej aktywnego stanu szyny RS-485, kiedy nie ma aktywnych nadajników, na linii instaluje się aktywny terminator, który utrzymuje potencjał prze- wodników. W tym stanie yła B musi charakteryzować się wy szym potencjałem do- datnim ni yła A. W przypadku połączenia wielopunktowego nale y zapewnić metodę dostępu do śro- dowiska transmisji. Najczęściej wykorzystuje się metodę odpytywania: wyznaczone urzą- dzenie nadrzędne odpytuje urządzenia podrzędne, sprawdzając ich gotowość do trans- misji. Przekazanie praw dostępu z jednego urządzenia do innego jest mo liwe zgodnie z ustanowionym protokołem. Czasami stosuje się tak e metody dostępu swobodnego (analogicznie do sieci Ethernet). Wejście ró nicowe interfejsów zapewnia zabezpieczenie przed zakłóceniami, ale w tym przypadku masy obwodów urządzeń muszą być połączone między sobą oraz do szyny uziemienia. W celu połączenia urządzeń wykorzystywana jest trzecia yła interfejsu (do tego celu mo na tak e wykorzystać ekran kabla). W celu zabezpieczenia przed przepły- wem przez trzecią yłę zbyt du ego prądu równowa ącego potencjały masy, w obwodzie umieszcza się rezystory (rysunek 2.10). Rysunek 2.10. Połączenia masy obwodów dla interfejsów RS-422 i RS-485 Interfejs RS-422 jest często wykorzystywany do podłączania urządzeń peryferyjnych (na przykład drukarek). Interfejs RS-485 to popularny sposób podłączenia sprzętu auto- matyki przemysłowej.
  • 16. Rozdział 2. ♦ Interfejs szeregowy: port COM 79 W celu transmisji sygnału w dwu yłowej linii łączącej odbiornik z nadajnikiem sto- sowany jest interfejs pętli prądowej, w którym zamiast napięciowych stosowane są sy- gnały prądowe. Prąd o natę eniu 20 mA odpowiada logicznej jedynce, natomiast brak przepływu prądu to logiczne zero. Taki sposób reprezentacji sygnałów w opisanym po- wy ej formacie transmisji asynchronicznej umo liwia wykrywanie przerw w łączu: od- biornik wykryje brakujący bit stopu (przerwa w łączu spełnia rolę stałego logicznego zera). Pętla prądowa zazwyczaj oznacza galwaniczną separację obwodów wejściowych odbior- nika od pozostałej części obwodu. W tym przypadku źródłem prądu w pętli jest nadajnik (w tej wersji nazywa się aktywnym nadajnikiem). Mo liwe jest równie zasilanie z od- biornika (aktywny odbiornik). W takim przypadku wyjście nadajnika mo e być galwa- nicznie odseparowane od pozostałej części obwodu nadajnika. Istnieją równie wersje uproszczone, które nie zapewniają galwanicznej separacji, ale są to zubo one wersje interfejsu. Warto zwrócić uwagę, e interfejs MIDI (patrz punkt 7.5.3) nie jest zgodny z „klasyczną” pętlą prądową. Pętla prądowa z galwaniczną separacją (rysunek 2.11) umo liwia transmisję sygnałów do kilku kilometrów, ale z niskimi szybkościami (szybkości powy ej 19 200 b/s nie są wykorzystywane, a kiedy odległość mierzy się w kilometrach, maksymalna szybkość wynosi 9 600 b/s, a nawet mniej). Maksymalna odległość jest określona przez rezy- stancję pary przewodów oraz poziom szumów. Poniewa interfejs wymaga jednej pary przewodów dla ka dego sygnału, zazwyczaj u ywane są tylko dwa sygnały interfejsu szeregowego (linia cztero yłowa). W przypadku wymiany dwukierunkowej wykorzy- stywane są wyłącznie sygnały do wysyłania i odbioru danych. W takiej sytuacji stosuje się programowe sterowanie przepływem XON/XOFF. Jeśli nie ma potrzeby dwukie- runkowej wymiany, jedna para przewodów jest wykorzystywana do transmisji danych, a druga do sterowania przepływem za pomocą sygnału CTS (protokół sprzętowy) lub odwróconej linii danych (protokół programowy). Przy pomocy odpowiedniego opro- gramowania mo na wykorzystać jedną pętlę prądową do zorganizowania półdupleksowej dwukierunkowej komunikacji pomiędzy dwoma urządzeniami. W takim przypadku ka dy odbiornik „słyszy” zarówno sygnały nadajników z drugiej strony łącza, jak sygnały nadajników własnych. Protokoły komunikacyjne uznają je jako sygnały echa. Aby był mo liwy odbiór bez błędów, nadajniki muszą pracować na zmianę. Rysunek 2.11. Konwersja interfejsu RS-232C na pętlę prądową Pętla prądowa umo liwia wykorzystanie dedykowanych fizycznych łączy (dzier awio- nych) bez modemów, ale z niskimi szybkościami transmisji. Czasami pętle prądowe stosuje się do podłączenia terminali interfejsu RS-232C w przypadku, kiedy odległość połączenia gwarantowana przez interfejs jest zbyt mała lub jeśli jest potrzebna separacja galwaniczna. Przekształcenie sygnałów RS-232C na sygnały pętli prądowej nie jest
  • 17. 80 Interfejsy sprzętowe komputerów PC trudne. Na rysunku 2.11 pokazano bardzo prosty schemat konwertera umo liwiającego podłączenie terminala. Do uzyskania sygnałów bipolarnych wymaganych przez obwody wejściowe portu COM wykorzystywane jest zasilanie interfejsu. Konwerter mo na usprawnić, zapewniając ochronę przed przecią eniem optoizolatorów oraz w celu sta- bilizacji sygnałów napięciowych. Maksymalna szybkość transmisji zale y od szybkości wykorzystanych optoizolatorów (szybkość 9 600 b/s mo na osiągnąć stosując optoizo- latory dowolnego typu). 2.3. Tryb asynchroniczny Tryb asynchroniczny transmisji szeregowej jest bajtowy (znakowy): najmniejsza jed- nostka przesyłanych informacji to jeden bajt (jeden znak). Na rysunku 2.12 zilustro- wano format transmisji bajtowej. Transmisja ka dego bajtu rozpoczyna się od bitu startu, który sygnalizuje początek transmisji do odbiornika. Po nim są przesyłane bity danych i, czasami, bit parzystości. Transmisję kończy bit stopu. Bit startu kolejnego bajtu jest przesyłany w dowolnym czasie po bicie stopu poprzedniego bajtu, tzn. po- między transmisjami poszczególnych bajtów mogą występować pauzy dowolnej dłu- gości. Zastosowanie bitu startu, który zawsze ma ściśle zdefiniowaną wartość (logiczne zero), to prosta metoda synchronizacji odbiornika za pomocą sygnału z nadajnika. Odbiornik i nadajnik pracują z tą samą szybkością transmisji. Wewnętrzny generator synchronizacji odbiornika wykorzystuje licznik dzielnika częstotliwości, który jest usta- wiany na wartość zero w momencie odebrania bitu startu. Licznik ten generuje we- wnętrzne sygnały strobujące, dzięki którym odbiornik odbiera następne bity. W idealnej sytuacji impulsy strobujące są generowane w środku interwałów bitowych, co umo liwia odbiór danych nawet wtedy, gdy szybkości transmisji nadajnika i odbiornika nieznacznie się ró nią. Jest oczywiste, e w przypadku transmisji ośmiu bitów danych, jednego bitu parzystości i jednego bitu stopu, dopuszczalna tolerancja częstotliwości zapewniająca prawidłowy odbiór danych nie mo e przekroczyć pięciu procent. Biorąc pod uwagę zniekształcenia fazy oraz kwantową naturę licznika synchronizacji, dopuszczalna tole- rancja częstotliwości jest jeszcze mniejsza. Im mniejszy współczynnik podziału wewnętrz- nego generatora częstotliwości (wy sza częstotliwość transmisji), tym mniej dokładne umieszczenie sygnału strobującego w stosunku do środka przedziału bitowego, a zatem większe wymagania dopasowania częstotliwości. Rysunek 2.12. Format asynchronicznej transmisji przez interfejs RS-232C Im wy sza częstotliwość transmisji, tym bardziej zniekształcone sygnały wpływają na fazę odbieranych sygnałów. Połączenie tych czynników skutkuje zwiększeniem wymagań dotyczących dopasowania częstotliwości odbiornika i nadajnika w miarę zwiększania się szybkości transmisji.
  • 18. Rozdział 2. ♦ Interfejs szeregowy: port COM 81 Format transmisji asynchronicznej umo liwia wykrywanie potencjalnych błędów transmisji. Jeśli otrzymano sygnał rozpoczęcia transmisji, ale w momencie strobowania bitu startu odebrano logiczną jedynkę, bit startu mo na uznać za błędny. W takiej sytuacji odbiornik powraca do stanu oczekiwania. Odbiornik nie musi zgłaszać tego błędu. Jeśli podczas przedziału czasu przydzielonego dla bitu stopu zostanie wykryte logiczne zero (poziom wysoki), następuje zarejestrowanie bitu stopu. W przypadku wykorzystania kontroli parzystości, po wysłaniu bitów danych wysyłany jest bit parzystości. Bit ten uzupełnia liczbę logicznych jedynek w bitach danych do liczby parzystej lub nieparzystej, w zale ności od wcześniejszych ustawień. Błąd jest rejestrowany w przypadku odebrania bajtu zawierającego niepoprawną wartość bitu parzystości. Kontrola formatu umo liwia wykrycie przerw łącz: z reguły w przypadku przerwy w łączu odbiornik „widzi” logiczne zero. To logiczne zero początkowo jest interpretowane jako bit startu lub zerowe bity danych, ale później wykonywana jest kontrola bitu stopu. Dla trybu asynchronicznego przyjmuje się zbiór standardowych szybkości transmisji: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 i 115200 bitów na sekundę (b/s). Czasami zamiast terminu b/s wykorzystuje się termin bod, ale dla transmisji danych binarnych określenie to jest niepoprawne. Body wykorzystuje się do pomiaru częstotliwości zmian stanu łącza, ale w przypadku zastosowania w kanale komunikacji niebinarnej metody kodowania (którą często wykorzystuje się w nowo- czesnych modemach), szybkość transmisji bitów (b/s) oraz częstotliwość zmiany sygnału (liczba bodów) mogą się znacznie ró nić. Liczba bitów danych mo e wynosić 5, 6, 7 lub 8 (formaty pięcio- lub sześciobitowe wykorzystuje się bardzo rzadko). Liczba bitów stopu mo e wynosić 1, 1,5 lub 2 (półtora bitu oznacza jedynie czas trwania przerwy). 2.4. Sterowanie przepływem danych Do sterowania przepływem danych mo na wykorzystać dwa rodzaje protokołów: sprzę- towy lub programowy. Czasami sterowanie przepływem jest mylone z uzgadnianiem lub potwierdzaniem. Uzgadnianie (ang. handshaking) oznacza negocjowanie z partnerem wszystkich elementarnych kroków protokołu (dobrym przykładem jest sygnalizacja pro- tokołów transmisji portu równoległego w trybach EPP i ECP). Potwierdzanie to prze- syłanie powiadomienia o odebraniu porcji informacji (bajtu, ramki lub pakietu). Stero- wanie przepływem zakłada wysyłanie powiadomień dotyczących tego, czy jest mo liwy dalszy odbiór danych. Dość często sterowanie przepływem wykorzystuje mechanizmy uzgadniania lub potwierdzania. W sprzętowym protokole sterowania przepływem RTS/CTS wykorzystuje się sygnał %65 umo liwiający wstrzymanie wysyłania danych, jeśli odbiornik nie jest gotowy do ich odbierania (rysunek 2.13).
  • 19. 82 Interfejsy sprzętowe komputerów PC Rysunek 2.13. Sprzętowe sterowanie przepływem Nadajnik umo liwia wysłanie następnego bajtu tylko wtedy, kiedy jest ustawiona li- nia %65. Zatrzymanie bajtu, którego transmisja rozpoczęła się za pomocą sygnału %65, jest niemo liwe (co zapewnia integralność transmisji). Protokół sprzętowy zapewnia najszybszą reakcję nadajnika na stan odbiornika. Układy scalone asynchronicznych nadajniko-odbiorników zawierają co najmniej dwa rejestry odbiorcze: rejestr przesunię- cia, umo liwiający odbiór następnego pakietu i rejestr pamięci, z którego jest odczy- tywany odebrany bajt. Dzięki temu mo na zaimplementować protokół sprzętowy bez utraty danych. Protokół sprzętowy sprawdza się do podłączania drukarek i ploterów, jeśli urządzenia te go obsługują. Kiedy dwa komputery są połączone bezpośrednio (bez modemów), sprzętowe sterowanie przepływem wymaga skrzy owania linii 465 i %65. W przypadku bezpośredniego połączenia, terminal wysyłający dane musi przełączyć swoją linię %65 na stan ON (poprzez połączenie własnych linii 465 i %65). W innym przypadku nadajnik nie będzie nadawać. Nadajniko-odbiorniki 8250/16450/16550 wykorzystywane w komputerach IBM PC nie przetwarzają sygnału %65 sprzętowo, ale odzwierciedlają jego stan w rejestrze /54 (patrz punkt 2.5). Implementacja protokołu RTS/CTS jest zadaniem usługi $+15 +PV*. Nazwanie tej usługi mechanizmem sprzętowym nie jest całkowicie poprawne. Jeśli program wykorzystujący port COM komunikuje się z układem UART na pozio- mie rejestrów (a nie na poziomie BIOSu), wówczas w celu obsługi protokołu sam ob- sługuje przetwarzanie sygnału CTS. Niektóre programy komunikacyjne umo liwiają ignorowanie sygnału %65 (jeśli modem nie jest u ywany) i nie wymagają połączenia wejścia %65 z wyjściem własnego sygnału 465. Są jednak ró ne nadajniko-odbiorniki (na przykład 8251), w którym sygnał %65 jest przetwarzany przez mechanizmy sprzętowe. W ich przypadku, a tak e dla „uczciwych” programów, wykorzystanie sygnału %65 w złączach (a nawet w kablach) jest obowiązkowe. Programowe sterowanie przepływem XON/XOFF zakłada istnienie dwukierunkowego kanału transmisji danych. Protokół działa w następujący sposób: je eli urządzenie od- bierające odkryje powody, dla których nie mo e kontynuować odbierania danych, wysyła w szeregowym kanale zwrotnym sygnał XOFF (13h). Po odebraniu tego sygnału urzą- dzenie znajdujące się po przeciwnej stronie zawiesza transmisję. Kiedy urządzenie odbiorcze ponownie uzyskuje gotowość do odbierania danych, wysyła znak XON (11h). Urządzenie po drugiej stronie łącza po odebraniu tego sygnału wznawia transmisję. W porównaniu ze sprzętową implementacją protokołu, czas odpowiedzi nadajnika na zmianę stanu odbiornika zwiększa się co najmniej o czas trwania transmisji sygnału (XON lub XOFF) plus czas, jaki zajmuje programowi nadajnika reakcja na odebranie znaku (rysunek 2.14). Z tego powodu tylko odbiornik wyposa ony w dodatkowy bu- for dla odebranych danych informujący z góry o braku mo liwości odbierania danych (w czasie, kiedy posiada jeszcze miejsce w buforze) mo e działać bez strat danych.
  • 20. Rozdział 2. ♦ Interfejs szeregowy: port COM 83 Rysunek 2.14. Programowe sterowanie przepływem XON/XOFF Zaletą programowego sterowania przepływem jest brak konieczności transmisji sy- gnałów sterujących interfejsu: najprostszy kabel umo liwiający dwukierunkową wymianę składa się z zaledwie trzech ył (patrz rysunek 2.5a). Wada polega na tym, e oprócz konieczności korzystania z bufora oraz długiego czasu odpowiedzi (który obni a całko- witą wydajność kanału z powodu oczekiwania na sygnał XON), zaimplementowanie pełnodupleksowego trybu wymiany jest trudne. W tym przypadku istnieje konieczność uzyskania sygnałów sterowania przepływem ze strumienia danych odebranych oraz ich przetworzenia, co ogranicza liczbę znaków, które mo na przesłać. Oprócz tych dwóch powszechnie u ywanych standardowych protokołów, obsługiwanych przez systemy operacyjne oraz większość urządzeń peryferyjnych, istnieją protokoły u ytkownika wymagające specjalnej obsługi. 2.5. Układy scalone asynchronicznych nadajniko-odbiorników (UART) W portach COM konwersja danych równoległych na szeregowe w celu realizacji transmisji danych oraz odwrotna konwersja w celu ich odbioru jest wykonywana przez dedykowane układy UART (ang. Universal Asynchronous Receiver-Transmitter — Uniwersalny asyn- chroniczny odbiorniko-nadajnik). Te same układy scalone generują i przetwarzają sygnały sterujące interfejsu. Porty COM komputerów IBM PC XT/AT są oparte na układach scalonych zgodnych z układami UART serii i8250 na poziomie rejestrów: 8250/16450/ 16550A. Seria ta jest ulepszeniem modelu oryginalnego, została opracowana w celu zwiększenia szybkości działania i zmniejszenia zu ycia energii, a tak e obcią enia proce- sora podczas intensywnej wymiany. Zwróćmy uwagę, e: Układy 8250 mają wadę projektową (występowanie fałszywych przerwań), co uwzględniono w systemie BIOS komputera XT. 8250A: poprawiono błędy poprzedniego modelu, ale w efekcie utracono zgodność z systemem XT BIOS. Takie układy scalone działają w niektórych modelach komputerów AT, ale nie mo na ich u ywać dla szybkości transmisji 9 600 b/s. 8250B: poprawiono błędy 8250 i 8250A, przywrócono zgodność z systemem XT BIOS poprzez odtworzenie oryginalnego błędu przerwania. Działa w komputerach AT w systemie DOS (oprócz szybkości 9 600 b/s).
  • 21. 84 Interfejsy sprzętowe komputerów PC Układy scalone 8250x charakteryzują się ni szymi szybkościami działania jeśli chodzi o ądania ze strony magistrali systemowej. W przypadku tych układów mo na odwoły- wać się do ich rejestrów w kolejnych cyklach magistrali procesora. Dla zapewnienia prawidłowej pracy, pomiędzy wywołaniami procesora muszą być wstawione opóźnienia programowe. W komputerach klasy AT wprowadzono następujące modyfikacje układów scalonych UART: 16450: szybka wersja układu 8250 przeznaczona dla komputerów AT. Nie zawiera błędów układu 8250 ani pełnej zgodności z systemem XT BIOS. 16550: rozwinięta wersja układu 16450. Mo e wykorzystywać kanał DMA do wymiany danych. Jest tak e wyposa ony w bufor FIFO, z którego nie mo na korzystać z powodu wadliwego działania. 16550A: układy charakteryzujące się szesnastobajtowymi wejściowymi i wyjściowymi buforami FIFO oraz wykorzystaniem kanałów DMA. Układy te są najczęściej u ywane w komputerach klasy AT dla transmisji z szybkościami przekraczającymi 9 600 b/s. Większość kontrolerów wejścia-wyjścia nowoczesnych chipsetów zapewnia zgodność z tym układem. Z punktu widzenia programowania, układy scalone UART 16550A UART to zbiór reje- strów, do których dostęp jest określony przez adres (przesunięcie rejestru adresu w sto- sunku do bazowego adresu portu) oraz wartość bitu .#$ (7 bit rejestru .%4). W prze- strzeni adresowej wejścia-wyjścia układ scalony zajmuje osiem kolejnych adresów. W tabeli 2.4 wyszczególniono rejestry układu UART 16550A wraz z metodami do- stępu. Układy 8250 ró nią się od nich tym, e nie zawierają rejestru (%4 i wszystkich mo liwości obsługi buforów FIFO i kanału DMA. Tabela 2.4. Rejestry układów UART 16550A Dostęp Rejestr Odczyt/Zapis Przesunięcie DLAB Nazwa Funkcja 0h 0 THR Rejestr transmisji. Z 0h 0 RBR Rejestr bufora odbiornika. O 0h 1 DLL Mniej znaczący bajt dzielnika szybkości transmisji. O/Z 1h 1 DLM Bardziej znaczący bajt dzielnika szybkości transmisji. O/Z 1h 0 IER Rejestr zezwolenia na przerwanie. O/Z 2h x IIR Rejestr identyfikacji przerwania. O 2h x FCR Rejestr sterujący buforami FIFO. Z 3h x LCR Rejestr sterujący łącza. O/Z 4h x MCR Rejestr sterujący modemu. O/Z 5h x LSR Rejestr stanu łącza. O/Z1 6h x MSR Rejestr stanu modemu. O/Z1 7h x SCR Rejestr roboczy. O/Z 1 Niektóre bity są tylko do odczytu. Zapis do rejestru mo e doprowadzić do awarii protokołu.
  • 22. Rozdział 2. ♦ Interfejs szeregowy: port COM 85 6*4: rejestr transmisji (ang. Transmitter Holding Register) — tylko zapis. Dane zapi- sane do rejestru są wysyłane do wyjściowego rejestru transmisji (kiedy stanie się dostęp- ny), stamtąd są umieszczane w wyjściowym sygnale TXD. Bit 0. (najmniej znaczący) jest wysyłany (i odbierany) jako pierwszy. Jeśli pakiet jest krótszy ni osiem bitów, bity najbardziej znaczące są ignorowane. 4$4: rejestr bufora odbiornika (ang. Receiver Buffer Register) — tylko odczyt. Dane sze- regowe (RXD) odbierane w rejestrze przesunięcia odbiornika są umieszczane w rejestrze 4$4. Stamtąd mogą być odczytane przez procesor. Jeśli bajt nie zostanie przeczytany do czasu odebrania następnego bajtu, występuje błąd przepełnienia. Jeśli pakiet jest krótszy ni osiem bitów, bity najbardziej znaczące mają wartość zero. ..: rejestr mniej znaczącego bajtu dzielnika prędkości przesyłania danych. ./: rejestr bardziej znaczącego bajtu dzielnika prędkości przesyłania danych. Dzielnik jest obliczany ze wzoru D = 115200/V, gdzie V oznacza szybkość transmisji w b/s. Wejściową częstotliwość synchronizacji 1,8432 MHz dzieli się przez uzyskany współ- czynnik, co daje częstotliwość transmisji danych wykorzystywaną przez układ UART. +'4: rejestr zezwolenia na przerwanie (ang. Interrupt Enable Register). Wartości bitów równe logicznej jedynce zezwalają na przerwanie z odpowiedniego źródła danych. Funkcje bitów rejestru IER: bity[7:4]=0: nieu ywane; bit 3. — /QFA+': zmiana stanu modemu (dowolnej linii %65, 54, 4+ lub %); bit 2. — 4Z.A+': przerwa łącza lub jego błąd; bit 1. — 6:A+': zakończenie transmisji; bit 0. — 4:A+': odebranie znaku (przekroczenie limitu czasu w trybie FIFO). ++4: rejestr identyfikacji przerwania i wskaźnik stanu bufora FIFO (tylko do odczytu). W celu uproszczenia analizy programowej, w układzie UART zorganizowano we- wnętrzne przerwania w system z czterema priorytetami. Kolejność priorytetów (w po- rządku rosnącym) to: stan łącza, odbiór znaku, wypró nienie rejestru nadajnika, stan modemu. Kiedy wystąpi warunek przerwania, układ UART wskazuje na źródło o naj- wy szym priorytecie do czasu obsłu enia sytuacji przez wykonanie odpowiednich dzia- łań. Dopiero wtedy mo liwa jest obsługa ądania z kolejnego źródła. Funkcje rejestru ++4 opisano poni ej. bity [7:6] — stan trybu FIFO: 11: tryb FIFO układu 16550A; 10: tryb FIFO układu 16550; 00: tryb standardowy; bity [5:4]: nieu ywane; bit 3.: przerwanie przekroczenia limitu czasu odbioru w trybie FIFO (w buforze są dane do odczytania);
  • 23. 86 Interfejsy sprzętowe komputerów PC bity [2:1]: źródło przerwania o najwy szym priorytecie (w trybie standardowym — bez u ycia buforów FIFO): 11: błąd łącza (przerwa). Wartość ustawiana poprzez odczyt rejestru stanu łącza; 10: odebrano znak. Wartość ustawiana poprzez odczyt danych; 01: wysłano znak (rejestr 6*4 jest pusty). Wartość ustawiana poprzez zapis danych; 00: zmienił się stan modemu. Wartość ustawiana poprzez odczyt rejestru stanu modemu; Bit 0: wskaźnik zaległego ądania przerwania (1: brak zaległego przerwania, 0: zaległe przerwanie). W trybie FIFO źródło przerwania jest identyfikowane przez bity [3:1]. 011: błąd łącza (przerwa). Wartość ustawiana poprzez odczyt rejestru stanu łącza; 010: odebrano znak. Wartość ustawiana poprzez odczyt rejestru danych odbiornika; 110: wskaźnik przekroczenia limitu czasu (w czasie równym czterokrotnemu okresowi potrzebnemu na wysłanie lub odebranie znaku nie został wysłany, ani odebrany znak, pomimo tego, e w buforze znajduje się co najmniej jeden). Wartość ustawiana poprzez odczyt rejestru danych odbiornika; 001: rejestr 6*4 jest pusty. Wartość ustawiana poprzez zapis danych; 000: zmiana stanu modemu (%65, 54, 4+ lub %). Wartość ustawiana poprzez odczyt rejestru stanu modemu (/54). (%4: rejestr sterujący buforami FIFO(ang. FIFO Control Register) — tylko odczyt. Funkcje jego bitów opisano poni ej: bity [7:6] ITL (ang. Interrupt Trigger Level — poziom generowania przerwania): poziom zapełnienia bufora FIFO powodujący wygenerowanie przerwania: 00: 1 bajt (domyślnie); 01: 4 bajty; 10: 8 bajtów; 11: 14 bajtów; bity [5:4] — zarezerwowane. bit 3. — wybór trybu działania DMA. bit 2. — 4'5'66( (ang. Reset Transmitter FIFO): zerowanie licznika bufora FIFO nadajnika poprzez zapisanie logicznej jedynki; rejestr przesunięcia nie jest zerowany). bit 1. — 4'5'664( (ang. Reset Receiver FIFO): zerowanie licznika bufora FIFO odbiornika poprzez zapisanie logicznej jedynki; rejestr przesunięcia nie jest zerowany).
  • 24. Rozdział 2. ♦ Interfejs szeregowy: port COM 87 bit 0. — 64(+(1' (ang. Transmit and Receive FIFO Enable): włączenie (poprzez ustawienie logicznej jedynki) buforów FIFO nadajnika i odbiornika. W momencie zmiany stanu bufory są zerowane automatycznie. .%4: rejestr sterowania łączem (ang. Line Control Register) — ustawianie parametrów kanału. Funkcje bitów rejestru LCR opisano poni ej. bit 7. — .#$ (ang. Divisor Latch Access Bit): kontrola dostępu do dzielnika szybkości przesyłania danych. bit 6. — $4%10 (ang. Break Control):generowanie przerwy w łączu (wysyłanie zer) w przypadku, kiedy bit $4%10 ; bit 5. — 56+%2#4 (ang. Sticky Parity): wymuszone generowanie bitu parzystości: 0: bit kontroli parzystości jest generowany zgodnie z parzystością znaku wychodzącego; 1: stała wartość bitu kontroli parzystości: logiczne zero, jeśli '8'02#4 oraz logiczna jedynka, jeśli '8'02#4 . bit 4. — '8'02#4 (ang. Even Parity select): wybór typu kontroli parzystości: zero — nieparzystość, jeden — parzystość; bit 3. — 2#4'0 (ang. Parity Enable): włączenie bitu kontroli parzystości: 1: bit kontroli parzystości jest włączony (zgodny z bitem parzystości danych lub stały); 0: bit kontroli parzystości jest wyłączony; bit 2. — 5612$ (ang. Stop Bits): liczba bitów stopu: 0: 1 bit stopu; 1: 2 bity stopu (w przypadku kodu pięciobitowego, bit stopu ma długość 1,5 bitu); bity [1:0] — 5'4+#.$ (ang. Serial Data Bits): liczba bitów danych: 00: 5 bitów; 01: 6 bitów; 10: 7 bitów; 11: 8 bitów. /%4: rejestr sterowania modemem (ang. Modem Control Register). Opis rejestru MCR zamieszczono poni ej. bity [7:5] =0: zarezerwowane; bit 4. — ./' (ang. Loopback Mode Enable): włączenie trybu diagnostycznego: 0: tryb normalnej transmisji; 1: tryb diagnostyczny;
  • 25. 88 Interfejsy sprzętowe komputerów PC bit 3. — +' (ang. Interrupt Enable): zezwolenie na przerwanie (sygnalizowane przez wyjście zewnętrzne 176): 0: przerwania wyłączone; 1: przerwania włączone; W trybie diagnostycznym bit jest umieszczany w bicie rejestru wejściowego /54 (emulacja DCD); bit 2. — 176% (ang. OUT1 bit Control): sterowanie sygnałem wyjściowym 1 (nieu ywany); w trybie diagnostycznym bit jest umieszczany w bicie rejestru wejściowego /54 (emulacja RI); bit 1. — RTSC (ang. Request To Send Control): sterowanie sygnałem wyjściowym RTS; w trybie diagnostycznym umieszczany w bicie rejestru wejściowego /54 (emulacja CTS): 0: aktywny (napięcie dodatnie); 1: nieaktywny (napięcie ujemne); bit 0. — 64% (ang. Data Terminal Ready Control): sterowanie sygnałem wyjściowym DTR. W trybie diagnostycznym umieszczany w bicie rejestru wejściowego /54 (emulacja DSR): 0: aktywny (napięcie dodatnie); 1: nieaktywny (napięcie ujemne). .54: rejestr stanu łącza (ang. Line Status Register) — stan nadajniko-odbiornika. Funkcje rejestru .54 opisano poni ej. bit 7. — (+(1' (ang. FIFO Error status): błąd danych w trybie FIFO (w buforze znajduje się co najmniej jeden znak, dla którego wystąpił błąd formatu, parzystości lub przerwa); w trybie bez wykorzystania buforów FIFO bit jest zawsze ustawiany na wartość zero; bit 6. — 6'/26 (ang. Transmitter Empty Status): rejestr nadajnika jest pusty (w rejestrze przesunięcia, rejestrze 6*4 lub w buforze (+(1 nie ma danych do wysłania); bit 5. — 6*4' (ang. Transmitter Holding Register Empty): rejestr nadajnika jest gotowy do odebrania bajtu przeznaczonego do transmisji; w trybie FIFO oznacza to, e bufor FIFO transmisji jest pusty; mo e być źródłem przerwania; bit 4. — $ (ang. Break Detected): wskaźnik przerwy w łączu (w rejestrze wejściowym odbiornika jest wartość zero przez okres nie krótszy ni trwa operacja wysłania znaku); bit 3. — (' (ang. Framing Error): błąd ramki (niepoprawny bit stopu); bit 2. — 2' (ang. Parity Error): błąd parzystości; bit 1. — 1' (ang. Overrun Error): przepełnienie (utrata znaku); jeśli odbiór następnego znaku rozpocznie się przed przesłaniem poprzedniego z rejestru przesunięcia do bufora lub rejestru FIFO, pierwszy znak jest tracony;
  • 26. Rozdział 2. ♦ Interfejs szeregowy: port COM 89 bit 0. — 4 (ang. Receiver Data Ready): odebrane dane są gotowe (w rejestrze *4 lub buforze FIFO); wartość ustawiana poprzez odczyt rejestru danych odbiornika. Wskaźniki błędów — bity [4:1] — są zerowane po odczytaniu rejestru .54. W trybie FIFO wskaźniki błędów są zapisane w buforze FIFO razem z przesyłanymi znakami. Są umieszczane w rejestrze (i generują przerwania) w momencie, kiedy znak odebrany z błędami znajduje się na szczycie bufora FIFO (w wierszu do odczytania). W przy- padku przerwy w łączu, tylko znak „przerwy” jest umieszczany w buforze FIFO, po czym układ UART czeka na odtworzenie łącza i następny bit startu. /54: rejestr stanu modemu (ang. Modem Status Register). Funkcje rejestru /54 opisano poni ej. bit 7. — % (ang. Data Carrier Detect — wykryto nośną danych): stan linii %: 0: aktywny (napięcie dodatnie); 1: nieaktywny (napięcie ujemne); bit 6. — 4+ (ang. Ring Indicator — Wskaźnik dzwonka): stan linii 4+: 0: aktywny (napięcie dodatnie); 1: nieaktywny (napięcie ujemne); bit 5. — 54 (ang. Data Set Ready — zbiór danych gotowy): stan linii 54: 0: aktywny (napięcie dodatnie); 1: nieaktywny (napięcie ujemne); bit 4. — %65 (ang. Clear To Send — zezwolenie na wysyłanie): stan linii %65: 0: aktywny (napięcie dodatnie); 1: nieaktywny (napięcie ujemne); bit 3. — % (ang. Delta Data Carrier Detect): zmiana stanu linii %; bit 2. — 6'4+ (ang. Trailing Edge Of Ring Indicator — koniec sygnału dzwonienia): zbocze opadające sygnału 4+ (koniec dzwonienia); bit 1. — 54 (ang. Delta Data Set Ready): zmiana stanu linii 54; bit 0. — %65 (ang. Delta Clear To Send): zmiana stanu sygnału %65. Wskaźniki zmian stanu (bity [3:0] są ustawiane poprzez odczyt rejestru. 5%4: (ang. Scratch Register — rejestr roboczy) — rejestr roboczy o szerokości 8 bitów. Nie ma wpływu na działanie układu UART i słu y do przechowywania danych tym- czasowych (w układach 8250 nie ma tego rejestru). W trybie diagnostycznym (jeśli ./' ) wewnątrz układu UART tworzona jest we- wnętrzna pętla: Wyjścia nadajnika są przełączane w stan logicznej jedynki. Wejście odbiornika jest rozłączane.
  • 27. 90 Interfejsy sprzętowe komputerów PC Wyjście rejestru przesunięcia nadajnika jest logicznie łączone z wejściem odbiornika. Linie 54, %65, 4+ i % są rozłączane od linii wejściowych i są kontrolowane wewnętrznie przez bity 64%, 465%, 176+% i +'. Wyjścia sygnałów sterowania modemem są przełączane w stan pasywny (logiczne zero). Dane przesyłane szeregowo są odbierane natychmiast, co umo liwia diagnozowanie wewnętrznego kanału danych portu (włącznie z rejestrami przesunięć), obsługę prze- rwań, a tak e określenie szybkości działania układu UART. 2.6. Obsługa portów COM w systemie operacyjnym Porty COM są obsługiwane przez usługę BIOS int14h, która zapewnia wykonywanie następujących funkcji: Inicjalizacja (ustawienie szybkości wymiany i formatu transmisji; wyłączenie źródeł przerwań). Nie ma wpływu na sygnały 64 i 465 (po zresetowaniu sprzętu sygnały są nieaktywne). Wysyłanie znaku. Uaktywnienie sygnałów 64 i 465. Po zwolnieniu rejestru 6*4 jest do niego wprowadzany wysyłany znak. Odbiór znaku. Uaktywnienie tylko sygnału 64 (sygnał 465 przechodzi w stan nieaktywny). Sterownik oczekuje na odbiór znaku. Odpytywanie stanu modemu i łącza (odczytanie rejestrów /54 i .54). Przerwania sprzętowe nie są u ywane. Oczekiwanie na gotowość do wejścia i wyjścia jest ograniczona limitem czasu. Gotowość mo na natychmiast sprawdzić poprzez od- pytywanie stanu, przed próbą odebrania lub wysłania znaku. Podczas wykonywania procedury POST system BIOS sprawdza obecność portu sze- regowego (rejestrów układu UART 8250 lub zgodnych) pod standardowymi adresami i umieszcza bazowe adresy wykrytych portów w komórkach obszaru danych BIOSu — $+15 CVC #TGC 0:0400h, 0:0402h, 0:0404h i 0:0406h. W komórkach są zapisywa- ne adresy portów o logicznych nazwach od COM1 do COM4. Zerowa wartość adresu oznacza, e port o określonym numerze nie istnieje. Ustawienia limitów czasu dla por- tów są zapisywane w komórkach 0:47Ch, 0:47Dh, 0:473Eh oraz 0:47Fh. Wykryte porty są inicjowane na szybkość wymiany 2 400 b/s, siedem bitów danych, parzystość i jeden bit stopu. Sygnały sterowania interfejsem 64 i 465 są przełączane w stan początkowy (OFF: ujemny poziom linii).
  • 28. Rozdział 2. ♦ Interfejs szeregowy: port COM 91 2.7. Konfiguracja portów COM W komputerze mogą być zainstalowane maksymalnie cztery porty szeregowe od COM1 do COM4. W maszynach klasy AT zazwyczaj występują dwa porty. Proces zarządzanie portów szeregowych jest podzielony na dwie fazy: konfiguracja wstępna sprzętu portów oraz zmiany trybów roboczych poprzez oprogramowanie aplikacyjne lub systemowe. Konfiguracja portów COM zale y od sposobu implementacji portów. Porty fizycznie umieszczone na kartach rozszerzeń konfiguruje się za pomocą zworek umieszczonych na samych kartach. Porty wbudowane na płytach głównych konfiguruje się w systemie BIOS. Mo na skonfigurować następujące parametry: Adres bazowy. Porty COM1– COM4 najczęściej mają adresy 3F8h, 2F8h, 3E8h i 2E8h. Podczas inicjalizacji BIOS sprawdza pod tymi adresami obecność portów dokładnie w tej kolejności i przypisuje im logiczne nazwy COM1, COM2, COM3 i COM4. Porty COM3 i COM4 mogą mieć alternatywne adresy, odpowiednio 3E0h, 338h oraz 2E0h, 238h. Dla komputerów PS/2, standardowe adresy od COM3 do COM8 to odpowiednio 3220h, 3228h, 4220h, 4228h, 5220h oraz 5228h. Wykorzystywane linie ądania przerwań: dla portów COM1 i COM3 zwykle u ywane są linie +43 lub +43, dla portów COM2 i COM4: linie +43 lub +43. Z technicznego punktu widzenia, numery przerwań mo na przypisywać do adresów bazowych (numerów portów) w dowolnej kolejności, ale niektóre programy i sterowniki (na przykład sterowniki myszy szeregowej) są zaprogramowane do wykorzystania standardowych kombinacji. Do ka dego portu, który potrzebuje sprzętowego przerwania, jest przypisywana oddzielna linia, która nie mo e kolidować z liniami ądania przerwań u ywanymi przez inne urządzenia. Przerwania są wymagane tylko przez te porty, do których są podłączone urządzenia wejściowe, zasilacze UPS lub modemy. Przerwania dla transmisji do drukarek i ploterów są wykorzystywane tylko w wielozadaniowych systemach operacyjnych (choć nie zawsze). Dlatego do takich zastosowań mo na oszczędzić ten cenny zasób. Przerwań nie u ywa się tak e do połączenia dwóch komputerów za pomocą kabla modemu zerowego. To, czy linia ądania przerwań jest u ywana oddzielnie, czy współdzielona przez kilka urządzeń, zale y od sprzętowej implementacji połączenia oraz wykorzystywanego oprogramowania. W przypadku portów zainstalowanych na magistrali ISA, współdzielone przerwania zazwyczaj nie działają. Kanał DMA (dla układów scalonych UART 16450/16550 umieszczonych na płycie głównej): włączenie kanału DMA i podanie numeru kanału. Dla portów COM rzadko u ywa się kanału DMA. 2.8. Zastosowania portów COM Porty COM powszechnie wykorzystuje się do podłączania ró nego rodzaju urządzeń pe- ryferyjnych i sprzętu komunikacyjnego do nawiązywania połączeń ze sprzętem tech- nicznym, na przykład sterującym i monitorującym, programatorami, emulatorami ukła- dów i innymi urządzeniami wykorzystującymi protokół RS-232C.
  • 29. 92 Interfejsy sprzętowe komputerów PC Najczęściej porty COM są wykorzystywane do podłączania urządzeń wskaźnikowych (myszy, trackballi). W takim przypadku porty są wykorzystywane w trybie wprowa- dzania szeregowych danych. Mysz z interfejsem szeregowym mo na podłączyć do dowolnego działającego portu. W celu dopasowania złączy portu i myszy, czasami wykorzystuje się przejściówki DB-9S — DB25P lub DB-25S — DB-9P. Myszy do prawidłowego działania wymagają przerwań +43 dla portu COM1 oraz +43 dla portu COM2. Cechą szczególną sterownika jest fakt, e w celu u ywania myszy port COM1 mu- si korzystać z przerwania +43. Dla u ytkownika wa ne jest, aby zdać sobie sprawę z sa- mego ograniczenia. Ka de zdarzenie: ruch myszą lub wciśnięcie (zwolnienie) przycisku jest kodowane binarnie i wysyłane poprzez interfejs RS-232C. W tym celu wykorzystuje się transmisję asynchroniczną: źródłem bipolarnego zasilania są linie sterujące interfejsu. W celu podłączenia modemów zewnętrznych wykorzystywany jest kabel DTE–DCE z kompletem (dziewięciu) połączeń. Schemat połączeń takiego kabla pokazano na ry- sunku 2.4. Ten sam typ kabla wykorzystuje się w celu dopasowania złączy (według liczby styków). W tym celu mo na tak e wykorzystać przejściówki myszy 9 na 25. Oprogramowanie komunikacyjne zazwyczaj korzysta z przerwań, ale w tym przypadku istnieje swoboda wyboru numeru portu (adresu) i linii przerwania. Jeśli planuje się opera- cje z szybkością 9 600 b/s lub wy szą, port COM nale y zaimplementować za pomocą układu UART 16550A lub zgodnego. Zakres, w jakim są dostępne bufory FIFO oraz wła- sności kanału DMA, zale y od wykorzystywanego oprogramowania komunikacyjnego. Porty COM mo na tak e wykorzystać w celu połączenia dwóch komputerów znajdu- jących się w niewielkiej odległości od siebie za pomocą kabla zerowego modemu (patrz rysunek 2.5). Programy takie jak Norton Commander lub MS-DOS Interlink umo liwiają wymianę plików z szybkością do 115.2 kb/s bez wykorzystania przerwań sprzętowych. Takie samo połączenie mo na tak e wykorzystać przez pakiet sieciowy Lantastic oferujący bogatsze własności oraz przez usługi systemu operacyjnego Windows. Porty COM umo liwiają podłączanie kluczy elektronicznych (urządzeń zabezpiecza- jących) mających na celu zabezpieczenia przed nieuprawnionym wykorzystywaniem oprogramowania. Urządzenia te mogą być „przezroczyste” (zapewniające mo liwość wykorzystania portu do podłączenia innego sprzętu) lub całkowicie przejmować port. Przy pomocy odpowiedniego oprogramowania port COM umo liwia przekształcenie komputera PC w terminal emulujący zestaw poleceń popularnych specjalizowanych terminali (VT-52, VT-100, itp.). Najprostszy terminal mo na uzyskać poprzez połą- czenie funkcji BIOS obsługi portu COM (KPVJ), zdalnego wyprowadzania danych (KPVJ) oraz wprowadzania danych z klawiatury (+PVJ). Taki terminal mo e jed- nak działać tylko z niskimi szybkościami transmisji, poniewa chocia funkcje BIOSu są uniwersalne, nie są zbyt szybkie. Porty COM mo na tak e wykorzystać jako dwukierunkowy interfejs z trzema sterowanymi programowo liniami wyjściowymi (6, 64 i 465) oraz czterema liniami wejściowymi (%65, 54, % i 4+) wykorzystującymi sygnały bipolarne. Mo na je wykorzystać na przy- kład do programowej implementacji synchronicznych interfejsów szeregowych (patrz podrozdział 10.5). W czasach komputerów AT-286 wykorzystywano jednobitowe kon- wertery impulsowe umo liwiające zapisywanie sygnałów audio w komputerze PC za pomocą linii wejściowej portu COM. Odtwarzanie tak zapisanego dźwięku w głośniku komputera PC umo liwiało uzyskanie na przykład sygnałów mowy.
  • 30. Rozdział 2. ♦ Interfejs szeregowy: port COM 93 2.9. Porty COM i PnP Nowoczesne urządzenia peryferyjne podłączone do portu COM obsługują specyfikację PnP. Główne zadanie systemu operacyjnego polega na zidentyfikowaniu podłączonego urządzenia. Do tego celu opracowano prosty protokół, który mo na zaimplementować dla ka dego portu COM za pomocą środków wyłącznie programowych. Mechanizm działania tego protokołu pokazano na rysunku 2.15. Rysunek 2.15. ądanie identyfikatora urządzenia PnP 1. Sprawdź port: sprawdzenie dostępności portu. Jeśli jest wolny, jest inicjowany do stanu bezczynności ze stanami linii 6410, 4651((, 6:/CTM. Jeśli jest zajęty, dalsze etapy protokołu nie są wykonywane. 2. Sprawdź urządzenie: sprawdzenie obecności urządzenia. Przez pewien okres czasu (0,2 s) system oczekuje na sygnał 54, co oznacza, e do portu jest podłączone urządzenie. W najprostszym przypadku sygnały 64 54 w urządzeniu są zwarte, co umo liwia uzyskanie odpowiedzi. Po wykryciu urządzenia wykonywane są kolejne etapy protokołu (w celu odebrania szeregowych danych z urządzenia wykorzystywane są sygnały sterowania liniami 64 i 465). Jeśli nie ma odpowiedzi, protokół przełącza się do bezczynnego stanu rozłączenia. W takim przypadku systemy operacyjne obsługujące dynamiczną konfigurację okresowo wykonują poprzednią sekwencję po to, aby sprawdzić, czy nie podłączono urządzenia. 3. Konfiguracja-1. Port jest programowany na szybkość 1 200 b/s, siedem bitów danych, brak kontroli parzystości, jeden bit stopu. Na linii 64 jest stan niski przez 0,2 s. Następnie sygnał 64 jest ustawiany na logiczną jedynkę, a po kolejnym okresie 0,2 s sygnał 465 tak e jest ustawiany na logiczną jedynkę. 4. Oczekiwanie-1. System operacyjny oczekuje na pierwszy znak z urządzenia przez okres 0,2 sekundy. Kiedy znak nadejdzie, system rozpoczyna odbiór identyfikatora. Jeśli podczas tego czasu znak nie nadejdzie, system operacyjny wykonuje drugą próbę konfiguracji (patrz punkt 5), która nieco ró ni się od pierwszej. 5. Konfiguracja-2. Sygnały 64 i 465 są ustawiane na logiczne zero na okres 0,2 sekundy. Po tym czasie oba sygnały są przełączane na logiczną jedynkę. 6. Oczekiwanie-2. System operacyjny oczekuje na pierwszy znak z urządzenia przez okres 0,2 sekundy, a kiedy ten nadejdzie, zaczyna odbierać identyfikator. Jeśli w tym czasie znak nie nadejdzie, w zale ności od stanu sygnału 54 wprowadzany jest stan weryfikacja rozłączenia (jeśli 54) lub połączenie- bezczynność (jeśli 54).
  • 31. 94 Interfejsy sprzętowe komputerów PC 7. W stanie Połączenie-bezczynność sygnał 64 jest ustawiany na logiczną jedynkę, a sygnał 465 na logiczne zero. Port jest programowany na szybkość 300 b/s, siedem bitów danych, brak kontroli parzystości i jeden bit stopu. Jeśli w czasie trwania tego stanu zostanie wykryty stan 54, system operacyjny powinien poinformować, e urządzenie zostało rozłączone. Odbiór identyfikatora urządzenia po jednym znaku naraz wią e się z ograniczeniami cza- sowymi 0,2 s na ka dy znak, a tak e całkowitym limitem czasu 2,2 s, co umo liwia od- bieranie ciągów o długości do 256 znaków. Ciąg znaków identyfikatora PnP musi zawierać znaczniki początku i końca (odpowiednio 28h lub 08h oraz 29h lub 09h). Pomiędzy nimi umieszczana jest treść identyfikatora w standardowym formacie. Przed znacznikiem startu mo na umieścić ciąg szesnastu znaków niezwiązanych z identyfikatorem PnP. Jeśli podczas pierwszych 0,2 s oczekiwania na znak (krok 4. lub 6.) nie nadejdzie znacz- nik startu lub zostanie przekroczony limit czasu i nie nadejdzie znacznik końca albo znaki zostaną odebrane z błędami, nastąpi przełączenie do stanu połączenie-bezczynność. W przypadku odebrania poprawnego ciągu identyfikatora, jest on przekazywany do sys- temu operacyjnego. W celu wprowadzenia stanu weryfikacja rozłączenia sygnał 64 jest ustawiany na lo- giczną jedynkę, sygnał 465 na logiczne zero i co pięć sekund sprawdzany jest stan sy- gnału 54. Jeśli 54, następuje przełączenie do stanu połączenie-bezczynność (zobacz krok 7.), a jeśli 54, do stanu rozłączenie-bezczynność, w którym system okresowo odpytuje sygnał 54 w celu sprawdzenia, czy podłączono urządzenie. Opisany mechanizm został opracowany przez firmę Microsoft z uwzględnieniem zgod- ności z urządzeniami, które nie są typu PnP. W ten sposób mamy pewność, e urządzenia te nie będą wyłączone oraz system zachowa stabilność w przypadku odbioru komuni- katów nie będących identyfikatorami PnP. Na przykład konwencjonalna mysz Microsoft Mouse po otrzymaniu zasilania z interfejsu odpowiada znakiem „M” (mysz wyposa ona w trzy przyciski ciągiem „M3”). 2.10. Problemy z działaniem portów COM i ich rozwiązywanie Nieprawidłowe działanie portów COM często występuje podczas instalacji nowych portów lub niepomyślnego podłączania urządzeń zewnętrznych. 2.10.1. Testowanie konfiguracji Rozwiązywanie problemów z portami szeregowymi (podobnie jak z równoległymi) roz- poczyna się od sprawdzenia, czy system je identyfikuje. Lista adresów zainstalowanych portów zazwyczaj pojawia się w tabelce, którą system BIOS wyświetla przed załado- waniem systemu operacyjnego. Listę tę mo na równie przeglądać za pomocą programów diagnostycznych lub bezpośrednio w obszarze danych BIOSu za pomocą debuggera.
  • 32. Rozdział 2. ♦ Interfejs szeregowy: port COM 95 Jeśli system BIOS wykryje mniej portów, ni fizycznie zainstalowano, prawdopodobnie dwóm portom przypisano ten sam adres lub jednemu z nich przypisano nieprawidłowy adres. Problemy mogą pojawić się w przypadku adresów portów COM3 i COM4: nie wszystkie wersje BIOSu będą poszukiwać portów pod alternatywnymi adresami 3E0h, 338h, 2E0h i 238h. Czasami wyszukiwanie pod adresami 3E8h i 2E8h nie jest wyko- nywane. Sposób wyświetlania zidentyfikowanych portów na liście mo e być mylący: w przypadku zainstalowania dwóch portów o adresach 3F8h i 3E8h, na liście będą one występowały jako COM1 i COM2 i za pomocą tych nazw będzie mo na się do nich odwoływać. Te same porty mogą jednak pojawić się na liście jako COM1 i COM3 (po- niewa 3E8h to standardowy adres portu COM3). W tym przypadku odwołanie do portu COM3 nie powiedzie się, poniewa adres 3E8h będzie umieszczony w komórce 0:402h obszaru danych BIOSu, która odpowiada portowi COM2, a w komórce pamięci portu COM3 (0:404h) będzie wartość zero: wskaźnik, e nie ma takiego portu. U ytkownik mo e „wyjaśnić” systemowi który port jest który ręcznie, za pomocą dowolnego de- buggera, poprzez wstawienie poprawnych adresów do komórek obszaru danych BIOSu (trzeba by to robić za ka dym razem po ponownym załadowaniu systemu, a przed wyko- rzystaniem „zagubionego” portu). Odnajdywanie portów umo liwiają niektóre narzędzia diagnostyczne (np. PortFinder). Jeśli dwóm portom przypisano ten sam adres, program diagnostyczny mo e wykryć błędy portów tylko wtedy, gdy jest wykorzystywany z zewnętrzną pętlą diagnostyczną. Pro- gramowe testowanie portu bez pętli nie spowoduje wykrycia błędów, poniewa w tym przypadku nastąpi uaktywnienie trybu diagnostycznego (patrz opis układu UART) i porty wchodzące ze sobą w konflikt (choć indywidualnie działające poprawnie) będą działały równolegle, dzięki czemu informacje wynikowe będą poprawne. W normalnych warun- kach pracy poprawne działanie portów wchodzących ze sobą w konflikt jest niemo liwe. Podczas rozwiązywania konfliktów adresów przydatne jest instalowanie portów po kolei i obserwowanie adresów pojawiających się na liście. Jeśli fizycznie jest zainstalowany tylko jeden port, a system BIOS go nie znajdzie, powód mo e być ten sam co w przypadku portu LPT: albo go wyłączono podczas konfiguracji, albo nastąpiła awaria. Problemy z działaniem portu mo na rozwiązać poprzez poruszanie kartą adaptera w gnieździe płyty głównej. Podczas korzystania z portów COM u ywane są przerwania sprzętowe: są one wyko- rzystywane przy podłączaniu modemów, myszy lub innych urządzeń wejściowych. Powodem nieprawidłowego działania tych urządzeń mogą być niepoprawne ustawienia linii ądania przerwań. Mo liwe są konflikty z innymi urządzeniami, a tak e nieodpo- wiednie dobranie numerów przerwań z adresami portów. 2.10.2. Testowanie działania Wstępne testowanie portu COM mo na wykonać za pomocą programów diagnostycz- nych (CheckIt) bez wykorzystania pętli. Takie testowanie umo liwia sprawdzenie układu scalonego UART (wewnętrzny tryb diagnostyczny) i generowanie przerwań, ale nie ma mo liwości testowania układów buforów wejściowych i wyjściowych, które znacznie częściej są źródłem problemów. Jeśli test nie powiedzie się, przyczyn problemów na- le y szukać w konflikcie adresu (linii przerwań) lub w samym układzie UART.
  • 33. 96 Interfejsy sprzętowe komputerów PC Do dokładniejszego testowania zaleca się stosowanie zewnętrznych pętli podłączanych do złącza portu COM (rysunek 2.16). W odró nieniu od portu LPT, port COM ma więcej linii wejściowych ni wyjściowych, co umo liwia dokładne testowanie wszystkich obwo- dów. Pętla łączy linie wejściowe odbiornika z liniami wyjściowymi nadajnika. Obo- wiązkowe dla wszystkich pętli połączenie 465%65 umo liwia działanie nadajnika: bez tego połączenia nie mo na przesyłać znaków. Do sprawdzania wejściowych sygnałów 54, % i 4+ zazwyczaj wykorzystywany jest wyjściowy sygnał 64. Rysunek 2.16. Pętla do sprawdzania portów COM (dla programów CheckIt i Norton Diagnostics) Jeśli test za pomocą zewnętrznej pętli nie powiedzie się, przyczyny problemów nale y szukać w zewnętrznych buforach, ich zasilaczach lub przewodach taśmowych łączących adapter z zewnętrznymi złączami. Do diagnozowania tych problemów przyda się wolto- mierz lub oscyloskop. Procedura testowania mo e przebiegać w następujący sposób: 1. Sprawdź, czy zasilacze bipolarne obwodów wyjściowych nadajnika działają prawidłowo (ta czynność powinna być wykonana jako pierwsza, ale poniewa z technicznego punktu widzenia jest najbardziej skomplikowana, mo na ją odło yć na najgorszą ewentualność — sytuację, kiedy zaistnieje prawdopodobieństwo konieczności wymiany układów buforów). 2. Sprawdź napięcia na liniach wyjściowych 6, 465 i 64: po wyłączeniu i ponownym włączeniu sprzętu na wyjściu 6 powinien być potencjał ujemny o wartości około –12 V (zdecydowanie ni szy ni – V). Podczas próby wysyłania znaku na liniach wyjściowych 465 i 64 powinno pojawić się napięcie dodatnie oraz seria impulsów bipolarnych na wyjściu 6. Jeśli nie ma tych sygnałów, istnieje mo liwość, e popełniono błąd podczas podłączania płyty głównej do zewnętrznego złącza za pomocą przewodu taśmowego. Najbardziej prawdopodobne jest, e: nie podłączono przewodu taśmowego; przewód został podłączony nieprawidłowo (złącze jest odwrócone lub przesunięte); przewód ma złącze, które nie pasuje do złącza na płycie głównej. Pierwsze dwa przypadki sprawdza się dokładnie oglądając połączenie, ale trzeci wymaga dodatkowych działań. W tabeli 2.1 zaprezentowano trzy znane autorowi układy przewodów dla dziesięcio yłowego przewodu taśmowego wykorzystywanego w portach COM. Być mo e dla portów wbudowanych na płytach głównych istnieją inne wersje. Teoretycznie istnieje mo liwość zakupu przewodu taśmowego odpowiedniego dla danego złącza.
  • 34. Rozdział 2. ♦ Interfejs szeregowy: port COM 97 Jeśli źródłem problemu jest zły układ przewodu, trzy sygnały wyjściowe mo na zlokalizować na innych stykach złącza (napięcie na stykach wejściowych jest bardzo niskie). Jeśli nie uda się odnaleźć sygnałów wyjściowych na złączu, ewidentnie przyczyną problemów jest awaria obwodów buforów. 3. Po połączeniu linii 465 i %65 (lub wykorzystaniu pętli) nale y spróbować wysłać do portu COM krótki plik (na przykład za pomocą polecenia %12; %#761':'%$#6 %1/). Jeśli port działa prawidłowo, polecenie zostanie wykonane w kilka sekund, a po zakończeniu wyświetli się komunikat o sukcesie. W tym momencie napięcia na wyjściach 465 i 64 powinny zmienić się na ujemne, a na wyjściowej linii 6 powinien pojawić się pakiet impulsów bipolarnych o amplitudzie większej ni 5 V. Jeśli napięcia na liniach 465 i 64 nie zmienią się, źródłem problemów są obwody buforów. Jeśli na wyjściu 465 (oraz na wejściu %65) pojawi się napięcie ujemne, a polecenie %12; zakończy się błędem, najprawdopodobniej awarii uległ odbiornik linii %65 (albo jest problem z taśmą). Jeśli wykonanie polecenia %12; zakończyło się sukcesem, ale nie ma zmian na wyjściu 6 (mo na je wykryć za pomocą woltomierza analogowego, ale nie mo na ocenić amplitudy), uszkodzeniu uległ nadajnik bufora sygnału 6. Wymiana układów odbiornika i nadajnika jest znacznie prostsza, jeśli są one zamon- towane w podstawkach. Przed wymianą układu scalonego nale y się upewnić za po- mocą oscyloskopu lub woltomierza, e element ten uległ uszkodzeniu. Jeśli układy buforów są częścią układu scalonego LSI (co w dzisiejszych czasach jest dość częste), portu nie da się naprawić (przynajmniej nie za pomocą standardowych narzędzi). Mo na wyłączyć wadliwy port COM wbudowany na płycie głównej w programie BIOS Setup, ale w niektórych przypadkach mo e się zdarzyć, e port spali się razem z obwodem odpowiedzialnym za jego rozłączenie: w takiej sytuacji port będzie zajmował miejsce w przestrzeni adresów i blokował linię przerwań. Czasami uszkodzenie portu mo e spo- wodować uszkodzenie całej płyty głównej. Przyczyną wadliwego działania portu mogą być złącza i kable. Złącza czasami nie gwa- rantują odpowiedniego styku, a kable, oprócz mo liwych przerw, mogą mieć złą charak- terystykę częstotliwościową. Jakość częstotliwości kabla zazwyczaj daje o sobie znać przy du ych szybkościach transmisji (56 kb/s lub 115 kb/s). Jeśli istnieje konieczność u y- cia długich kabli dla du ych szybkości, przewody sygnałowe powinny być ekranowane, a ekrany podłączone do oddzielnego przewodu masy. 2.10.3. Brak zasilania interfejsu, czyli dlaczego nie działa mysz Urządzenia o niskim poborze mocy podłączane do portu COM są zasilane z linii wyjścio- wych interfejsu. Jeśli linie 64 lub 645 nie są wykorzystywane bezpośrednio w tym celu, do jakiego zostały przeznaczone, mo na je wykorzystać jako źródło zasilania zapewnia- jącego napięcie o wartości około 12 V. Prąd zwarcia do obwodu masy jest ograniczony przez układ bufora nadajnika do wartości 20 mA. Podczas inicjalizacji portu, linie te są
  • 35. 98 Interfejsy sprzętowe komputerów PC przełączane w stan 1((, tzn. dostarczają napięcie ujemne. Na linii 6 w stanie bezczynno- ści jest logiczna jedynka, a zatem na wyjściu jest napięcie ujemne. Potencjały poszcze- gólnych linii mo na kontrolować za pomocą rejestrów portu COM (na wyjściu 6 pojawia się napięcie dodatnie w przypadku ustawienia bitu $4%10). Napięcie mo na tak e wyłą- czyć z linii sygnałowych poprzez diody stabilizacyjne wykorzystywane razem z konden- satorami. W tym przypadku nale y wziąć pod uwagę czas, przez jaki sygnał wyjścio- wy pozostaje w po ądanym stanie (po to, aby zgromadzona energia była wystarczająca). Wszystkie manipulatory (myszy) podłączone do portów COM pobierają zasilanie bipo- larne z linii interfejsu (napięcie dodatnie z linii 64 lub 465, napięcie ujemne z linii 6). W związku z tym, jeśli mysz podłączona do portu nie działa, powinniśmy sprawdzić napięcia na odpowiednich stykach złącza. Czasami zdarza się, e tylko konkretna mysz (model lub egzemplarz) nie działa z określonym portem, pomimo tego, e inne myszy działają w tym porcie bez problemu, a mysz, która nie chce działać, bez problemu działa w innych portach. W tym przypadku problemem mogą być poziomy napięć. Zgodnie ze standardem port nie powinien dostarczać napięcia ni szego ni 5 V (wartość bezwzględ- na). Jeśli port zapewnia wyłącznie minimum, w przypadku niektórych myszy taki prąd nie wystarczy do zasilania diod LED (elementów zu ywających najwięcej energii). Port pobiera zasilanie bipolarne za pośrednictwem płyty głównej z zasilacza komputera. Jeśli na wyjściu zasilacza nie ma napięcia +12 V, zazwyczaj objawia się to brakiem dzia- łania dysków. Brak napięcia –12 V „zauwa ą” jedynie urządzenia podłączone do portu COM. Teoretycznie zasilacze monitorują napięcia na swoich wyjściach (informując o problemach za pomocą sygnału 2QYGT )QQF, który powoduje zresetowanie sprzętu). Czasami jednak są stosowane uproszczone zasilacze, które nie kontrolują wszystkich swoich napięć. Poza tym istnieje mo liwość złego styku w złączu zasilającym na płycie głównej.