12.07.2015 Views

Wykorzystanie portów komputera PC. Port szeregowy, cz. 1 - Elportal

Wykorzystanie portów komputera PC. Port szeregowy, cz. 1 - Elportal

Wykorzystanie portów komputera PC. Port szeregowy, cz. 1 - Elportal

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Komputery<strong>Wykorzystanie</strong> <strong>portów</strong><strong>komputera</strong> <strong>PC</strong><strong>Port</strong> <strong>szeregowy</strong>1<strong>cz</strong>ęśćW kilku ostatnich numerach EdWpoświęcono dużo miejsca spra−wie wykorzystania <strong>komputera</strong> <strong>PC</strong>do sterowania różnych urządzeńzewnętrznych.Przedstawiono kilka książek, którew przystępny sposób u<strong>cz</strong>ą progra−mowania w języku Basic. Napły−wające listy świad<strong>cz</strong>ą o zna<strong>cz</strong>nymzainteresowaniu tą sprawą. Jed−nak materiał zawarty w poleca−nych przez nas książkach nie obe−jmuje zagadnień ogromnie istot−nych dla elektronika – sposobówwykorzystania <strong>portów</strong> <strong>komputera</strong>.Niniejszy cykl artykułów wypełniatę lukę – zawiera obszerne i wy−<strong>cz</strong>erpujące omówienie zasadydziałania oraz możliwości dostępudo <strong>portów</strong> <strong>komputera</strong> <strong>PC</strong>. Przed−stawiony materiał umożliwi nawetmało zaawansowanemu użytkow−nikowi <strong>komputera</strong> <strong>PC</strong> prakty<strong>cz</strong>newykorzystanie tych <strong>portów</strong>.Opró<strong>cz</strong> informacji ogólnych Autorproponuje przeprowadzenie sze−regu eksperymentów z wykorzys−taniem prostej przystawki i rów−nie prostych programów w językuBasic. Nie potrzebna będzie na−wet umiejętność programowaniaw Basicu – do przeprowadzenianajprostszych prób wystar<strong>cz</strong>ymieć dostęp do jakiegokolwiek<strong>PC</strong>−ta i skorzystać ze wskazówekzawartych w artykule.Każdy komputer musi współpracowaćz jakimiś urządzeniami zewnętrznymi.Bez takich urządzeń jak drukarka, mysz,joystick, modem telefoni<strong>cz</strong>ny, skaner, itp,sam komputer jest niemal zupełnie bez−użyte<strong>cz</strong>ny.Wymienione urządzenia dołą<strong>cz</strong>ane sądo <strong>komputera</strong> za pomocą tak zwanych<strong>portów</strong>. Wystar<strong>cz</strong>y zajrzeć na tylną płytęobudowy <strong>komputera</strong>, by się przekonać,iż umiesz<strong>cz</strong>onych tam jest przynajmniejkilka gniazd połą<strong>cz</strong>eniowych. Umożli−wiają one wysyłanie i przyjmowanie in−formacji.Spośród gniazd znajdujących się na tyl−nej ściance <strong>komputera</strong>, elektroników naj−bardziej interesują:– porty szeregowe, ozna<strong>cz</strong>ane COM,itd, które są zgodne ze standardemRS−232, a które poto<strong>cz</strong>nie nazywamykomami, eresami lub serialami,– port równoległy, zgodny ze standar−dem Centronics, ozna<strong>cz</strong>any LPT, zwa−ny poto<strong>cz</strong>nie elpetem,– port joysticka, ozna<strong>cz</strong>any GAMEPORT, nazywany gejmportem.W każdym komputerze <strong>PC</strong> występująprzynajmniej dwa porty szeregowe(COM1 i COM2). Komputer ma też przy−najmniej jeden port równoległy (LPT1)i jeden port joysticka. <strong>Port</strong> joysticka maspecyfi<strong>cz</strong>ną budowę i funkcje. W zasa−dzie służy tylko do przyjmowania informa−cji od współpracującegu urządzenia (joys−ticka). Jego funkcje i możliwości wyko−rzystania zostaną omówione w dalszej<strong>cz</strong>ęści cyklu.Zadaniem <strong>portów</strong> jest przesyłanie in−formacji na zewnątrz <strong>komputera</strong> oraz po−bieranie informacji z zewnątrz, do i odurządzeń współpracujących.Niemal wszystkie informacje przesyła−ne do i z <strong>komputera</strong> mają postać cyfrową,to zna<strong>cz</strong>y, że mają postać napięcia odpo−wiadającego stanom logi<strong>cz</strong>nym 0 i 1.Zazwy<strong>cz</strong>aj przesyłane są duże ilości in−formacji. Z różnych względów, od dawnapodstawową „porcją” informacji jestbajt, <strong>cz</strong>yli osiem bitów.Informacje cyfrowe, jako kolejne bajty,mogą być przesyłane w postaci równo−ległej; wtedy potrzebne jest tyle linii –przewodów, ile bitów przesyłanych jestjedno<strong>cz</strong>eśnie (plus przewód masy). Ilu−struje to rysunek 1a.Informacje mogą też być przesyłanew postaci szeregowej, <strong>cz</strong>yli kolejno je−den bit za drugim. Ilustruje to rysu−nek 1b. Tu wystar<strong>cz</strong>ą tylko dwa przewo−dy – sygnałowy i masa.Oba te sposoby wykorzystano do ko−munikacji <strong>komputera</strong> z oto<strong>cz</strong>eniem.Najprostsze jest działanie portu rów−noległego. Wykorzystano tu pierwszysposób. W porcie tym między innymiznajduje się osiem linii, które pracują jakoRys. 1a. Równoległeprzekazywanie danych.Rys. 1b. Szeregowe przesyłanie danych.28ELEKTRONIKA DLA WSZYSTKICH 6/97


wyjścia. Komputer jedno<strong>cz</strong>eśnie wysyłana te osiem wyjść cały bajt informacji.Ponieważ jedno<strong>cz</strong>eśnie za pomocą oś−miu przewodów przesyłanych jest osiembitów, transmisja danych przez port rów−noległy jest szybka. Opró<strong>cz</strong> ośmiu głów−nych linii wyjściowych, port równoległyzawiera szereg innych linii, które mogąsłużyć jako wejścia, a niektóre jako wy−jścia. Są one potrzebne do wymiany in−formacji pomocni<strong>cz</strong>ych, na przykład syg−nału synchronizującego, wskazującego,kiedy na liniach przesyłowych pojawiasię nowy bajt informacji, <strong>cz</strong>y informacjio błędach.<strong>Port</strong> równoległy zazwy<strong>cz</strong>aj obsługujedrukarkę, dlatego w praktyce do różno−rodnych celów „elektroni<strong>cz</strong>nych” wyko−rzystuje się port <strong>szeregowy</strong>. Spośróddwóch <strong>portów</strong> <strong>szeregowy</strong>ch, jedenzwykle obsługuje myszkę, a drugi portmoże być wykorzystany w dowolny spo−sób. Dodatkową, cenną zaletą portu sze−regowego jest fakt, że stanom logi<strong>cz</strong>−nym 0 i 1 odpowiadają w nim napięcia+12V i −12V, i że z wyjść można pobraćprąd do 10mA. Tak zna<strong>cz</strong>ne napięciai prądy są <strong>cz</strong>ęsto wykorzystywane do...zasilania współpracujących urządzeń.W ten sposób wyjścia portu szeregowe−go stają się źródłem zasilania. Wyjściai wejścia portu szeregowego są odpornena uszkodzenia pod wpływem zewnętr−znych napięć i prądów, dlatego zasadni−<strong>cz</strong>o można dołą<strong>cz</strong>ać do tego portuwspółpracujące urządzenia także przywłą<strong>cz</strong>onym zasilaniu <strong>komputera</strong>.Wspomniane zalety zadecydowały, żeport <strong>szeregowy</strong> jest naj<strong>cz</strong>ęściej wyko−rzystywany przez konstruktorów do pod−łą<strong>cz</strong>ania różnych bardziej lub mniej stan−dardowych urządzeń zewnętrznych. Trze−ba jednak mieć świadomość, że port sze−regowy jest zna<strong>cz</strong>nie wolniejszy od porturównoległego, a więc jeśli wymaganejest szybkie przesyłanie danych, konie<strong>cz</strong>−ne może się okazać wykorzystanie porturównoległego.Właściwości portu szeregowego zwią−zane są ze starymi standardami stosowa−nymi w dalekopisach oraz z sygnałamiwykorzystywanymi w modemach, <strong>cz</strong>yliurządzeniach współpracujących z linią te−lefoni<strong>cz</strong>ną. Opis pełnego standardu jestbardzo obszerny. W opisie spotkasz ta−jemni<strong>cz</strong>e określenia RS−232C, V.24, DTE,DCE, DSR, DTR, RTS, CTS, i wiele in−nych. Różnorodne możliwości połą<strong>cz</strong>eń,całe mnóstwo stosowanych kabli, tajem−ni<strong>cz</strong>e skróty – wszystko to może wrę<strong>cz</strong>przerazić przeciętnego użytkownika. Nasz<strong>cz</strong>ęście do prakty<strong>cz</strong>nego wykorzysta−nia <strong>portów</strong> <strong>komputera</strong> wystar<strong>cz</strong>y garśćnajważniejszych informacji, natomiastsz<strong>cz</strong>egóły nie są potrzebne, dlatego zo−staną pominięte.W dalszej <strong>cz</strong>ęści artykułu przedstawio−ne zostanie wszystko to, co jest potrzeb−ne elektronikowi do prakty<strong>cz</strong>nego wyko−rzystania portu dla celów sterowaniai zbierania danych. Ogólnie biorąc, poniż−szy materiał jest zgrubnym opisem stan−dardu RS−232C.<strong>Port</strong> <strong>szeregowy</strong>Główne dwie linie portu szeregowe−go ozna<strong>cz</strong>one są TxD i RxD. TxD to liniaTransmit Data, <strong>cz</strong>yli wyjście. RxD (Re−ceive Data) to wejście. Jak pokazuje ry−sunek 2a, te dwie linie plus przewódmasy wystar<strong>cz</strong>ą, by przesyłać danez i do <strong>komputera</strong>. Zastosowano tu takzwaną transmisję szeregową, asynchro−ni<strong>cz</strong>ną. Urządzenie nadaw<strong>cz</strong>e wysyłakolejno w linię posz<strong>cz</strong>ególne bity.W największym uprosz<strong>cz</strong>eniu wyglądato jak na rysunku 1b. Przebieg napięciao takiej postaci jest wysyłany w linięi odbierany przez współpracujące urzą−dzenie. Ale taki ciąg bitów mógłby byćbłędnie odebrany, albo w skrajnym przy−padku, zupełnie nie odebrany. Przykła−dowo przy transmisji samych zer lub sa−mych jedynek urządzenie odbior<strong>cz</strong>e niewiedziałoby, kiedy za<strong>cz</strong>yna się, a kiedykoń<strong>cz</strong>y transmisja. Dlatego przy szere−gowym przesyłaniu danych trzebawprowadzić dodatkowe informacjei spełnić pewne warunki. Przede wszys−tkim trzeba przyjąć jakiś stan spo<strong>cz</strong>yn−kowy. Niech to będzie stan wysoki. Jeś−li przez linię nie są przesyłane dane, nalinii przesyłowej utrzymuje się stan wy−soki. Pojawienie się stanu niskiego jestsygnałem o rozpo<strong>cz</strong>ęciu transmisji. Alepierwszy bit transmitowanej informacjiwcale nie musi być zerem. Dlatego ko−nie<strong>cz</strong>ne jest wprowadzenie dodatkowe−go, po<strong>cz</strong>ątkowego bitu, który zawszebędzie zerem. Jedynym zadaniem tegobitu jest wskazanie odbiornikowi, żewłaśnie rozpo<strong>cz</strong>yna się transmisja. Tenbit jest zwany bitem startu. Ilustruje torysunek 2b.Wydawałoby się, że po wysłaniu bitustartu, można potem przesłać kolejno do−wolnie wielką ilość bitów. W praktycewcale nie jest to takie proste. Odbiornikpowinien wiedzieć, kiedy w linii pojawiłsię następny bit. A skąd ma to wiedzieć?Jeśli wykorzystana byłaby dodatkowa li−nia, przez którą przesyłany byłby sygnałtaktujący, <strong>cz</strong>yli zegarowy, nie byłoby żad−nego problemu. Sygnał taktujący wskazy−wałby, kiedy w linii danych pojawia się na−stępny bit (taki sposób nazywany jesttransmisją synchroni<strong>cz</strong>ną). Ale tu nie masygnału zegarowego – zarówno nazwa,jak i rysunek 2 wskazują, iż jest to trans−misja asynchroni<strong>cz</strong>na, <strong>cz</strong>yli nie ma żad−nych dodatkowych linii przesyłającychsygnały synchronizacji.KomputeryRys. 2a. Najprostsze wykorzystanieportu szeregowego.Rys. 2b. Przebiegi <strong>cz</strong>asowe przytransmisji szeregowej.Prędkość transmisjiBit startu wskazuje tylko po<strong>cz</strong>ątektransmisji, a następne bity muszą poja−wić się w ściśle określonym <strong>cz</strong>asie. Ina−<strong>cz</strong>ej mówiąc, zarówno nadajnik, jak i od−biornik muszą mieć równo tykające zega−ry, które odmierzą <strong>cz</strong>as pojawiania się ko−lejnych bitów. Ozna<strong>cz</strong>a to, że nadajniki odbiornik muszą się „umówić”, z jakąprędkością są przesyłane dane. Teore−ty<strong>cz</strong>ne, prędkość przesyłania mogłabybyć dowolna, jednak dla porządku przyję−to pewien standard. Dawniej stosowanobardzo małe prędkości transmisji: 50, 75lub 110 bodów, <strong>cz</strong>yli bitów na sekundę.Potem stosowano prędkości 300, 600,1200, 2400, 3600 i 4800 bitów na sekun−dę. Obecnie w zależności od rodzajuwspółpracujących urządzeń, stosuje sięprędkości transmisji 9600, 14400, 19200,28800 bitów na sekundę i wyższe.Zasadą jest, że w linię wysyła się ko−lejne bity danego bajtu, po<strong>cz</strong>ąwszy od bi−tu najmłodszego, ozna<strong>cz</strong>anego D0 do naj−starszego.Przyjęcie standardowych prędkościtransmisji znakomicie ułatwia współpracęurządzeń różnych producentów – wystar−<strong>cz</strong>y, by zachowane były ogólne zasady,w tym podane prędkości, <strong>cz</strong>yli <strong>cz</strong>ęstotli−wości taktujące nadajnika i odbiornika.A z jaką dokładnością należy utrzymy−wać podane prędkości transmisji i <strong>cz</strong>ęs−totliwości taktujące?Jeśli zegary taktujące nadajnika i odbior−nika tykałyby idealnie równo, po bicie star−tu można byłoby przesłać dowolną ilość bi−tów informacji bez obawy o błędy. Pokazu−je to rysunek 3. Generator taktujący odbior−nika wyzna<strong>cz</strong>a momenty <strong>cz</strong>asu, które po−winny wypadać dokładnie w połowie <strong>cz</strong>a−ELEKTRONIKA DLA WSZYSTKICH 6/9729


Komputerysu przesyłania danego bitu. Tylko w tychmomentach odbiornik próbkuje stan linii,<strong>cz</strong>yli od<strong>cz</strong>ytuje aktualny stan linii. Momen−ty te na rysunku 3 zazna<strong>cz</strong>ono strzałkami.Jednak już przy jakiejś niewielkiej róż−nicy <strong>cz</strong>ęstotliwości zegarów taktujących,dłuższy przekaz zostałby zinterpretowanybłędnie. Jeśli <strong>cz</strong>ęstotliwości zegarów bę−dą się zna<strong>cz</strong>nie różnić, któryś kolejny mo−ment próbkowania wypadnie w <strong>cz</strong>asietrwania następnego lub poprzedniego bi−tu. Ilustruje to rysunek 4. Strzałki wskazu−ją momenty próbkowania.Wskutek różnicy <strong>cz</strong>ęstotliwości zega−rów taktujących nadajnika i odbiornika,przesyłana informacja została od<strong>cz</strong>ytanabłędnie.Wiadomo, że w praktyce idealnej do−kładności zapewnić się nie da. Dla bez−pie<strong>cz</strong>eństwa przyjęto więc, że po biciestartu przesyła się tylko 5...8 bitów właś−ciwej informacji. Wtedy wymagania nadokładność <strong>cz</strong>ęstotliwości taktującej niesą zbyt ostre.Ponieważ po bicie startu przesyłanychjest tylko kilka bitów informacji, urządze−nia będą poprawnie pracować, nawet jeś−li <strong>cz</strong>ęstotliwości taktujące będą różnić sięo kilka procent.W praktyce, w urządzeniach standar−du RS−232 stosuje się sygnał pomocni<strong>cz</strong>yo <strong>cz</strong>ęstotliwości 16 razy większej, niżstandardowa <strong>cz</strong>ęstotliwość przesyłaniadanych. Właśnie ten pomocni<strong>cz</strong>y sygnałwyzna<strong>cz</strong>a momenty próbkowania. Ponie−waż w <strong>cz</strong>asie trwania każdego bitu wy−Rys. 3. Sytuacja przy jednakowych<strong>cz</strong>ęstotliwościach zegarów nadajnikai odbiornika.Rys. 4. Sytuacja przy niejednakowych<strong>cz</strong>ęstotliwościach zegarów nadajnikai odbiornikaRys. 5. Struktura informacji przy przesyłaniu danych łą<strong>cz</strong>em <strong>szeregowy</strong>m RS−232.stępuje 16 taktów tego sygnału pomocni−<strong>cz</strong>ego, próbkowanie „środka bitu” odby−wa się w ósmym takcie każdego cyklu.Częstotliwości taktujące, potrzebneprzy różnych prędkościach transmisji,uzyskuje się z jednego generatora kwar−cowego przez odpowiedni podział jego<strong>cz</strong>ęstotliwości.Omówiliśmy już dwie sprawy związa−ne z transmisją szeregową: zna<strong>cz</strong>enie bi−tu startu oraz dokładność <strong>cz</strong>ęstotliwościtaktujących nadajnika i odbiornika.Trzecią sprawą jest bit kontroli pa−rzystości.Bit kontroli parzystościPrzy przesyłaniu danych na odległość,chwilowe zakłócenia indukujące sięw przewodach, albo też inne szkodliwe<strong>cz</strong>ynniki, mogą wprowadzić błędy i odebra−ny sygnał będzie różnić się od nadanego.Prawdopodobieństwo wystąpienia błędujest w sumie niewielkie, ale nie można gowyklu<strong>cz</strong>yć. Dobrze byłoby mieć informacjęo wystąpieniu błędów w transmisji. Wtedydane można przesłać ponownie.Wprowadzono więc dodatkowy bitkontrolny. Wartość tego bitu zależy odprzesyłanej informacji. Umawiamy się,że transmitowane dane powinny zawie−rać parzystą ilość jedynek. Jeśli akuratprzesyłane kilka bitów zawiera parzystąli<strong>cz</strong>bę jedynek, bit kontrolny dodawanyw nadajniku ma wartość zero. Jeśli właś−ciwa informacja zawiera nieparzystą li<strong>cz</strong>−bę jedynek, bit kontrolny ustawiany jestna 1, aby całkowita li<strong>cz</strong>ba jedynek byłaparzysta. Po stronie odbior<strong>cz</strong>ej spraw−dzana jest ilość odebranych jedynek.Jeśli ich li<strong>cz</strong>ba nie jest parzysta, odbior−nik sygnalizuje błąd. Przy odpowiedniejorganizacji transmisji, po wykryciu błęduzafałszowane dane zostaną przesłanejesz<strong>cz</strong>e raz.Co prawda wprowadzenie bitu kontro−li parzystości nie daje gwarancji wykryciawszystkich błędów. Na przykład przy jed−no<strong>cz</strong>esnym zaistnieniu dwóch przekła−mań odbiornik nie wykryje błędu – jednakprawdopodobieństwo takiego zdarzeniajest o wiele mniejsze, niż szansa pojawie−nia się jednego przekłamania i w praktyceto wystar<strong>cz</strong>a.Notujemy kolejną ważną wiadomość:w przesyłanym sygnale może się zna−leźć, choć nie musi, dodatkowy bit kont−roli parzystości.Bit StopuPo wysłaniu jednej porcji informacjinadajnik ustawi na linii stan spo<strong>cz</strong>ynko−wy, <strong>cz</strong>yli stan wysoki. Jeśli nadajnik miałwysłać tylko te kilka bitów (jeden bajt), tostan wysoki będzie się utrzymywał, aż poupływie dowolnie długiego <strong>cz</strong>asu nadaj−nik otrzyma rozkaz wysłania następnejporcji informacji (następnego bajtu).W praktyce <strong>cz</strong>ęsto trzeba przesłać dużąilość danych i wtedy nadajnik wysyła por−cje informacji jedną po drugiej. Międzyposz<strong>cz</strong>ególnymi porcjami musi wystąpićprzerwa, aby odbiornik mógł prawidłowoodebrać bit startu następnej porcji. Taprzerwa musi trwać przynajmniej przez<strong>cz</strong>as odpowiadający transmisji jednegobitu (albo 1,5, albo 2 bitów). To właśniejest kolejny warunek.Już wiemy, że przy transmisji szerego−wej łą<strong>cz</strong>em RS−232, opró<strong>cz</strong> 4...8 bitówwłaściwej informacji, przesyłany jest bitstartu, bit(y) stopu i ewentualnie bit kont−roli parzystości.Wszystkie te zasady, <strong>cz</strong>yli tak zwanyprotokół transmisji, mogą się wydaćskomplikowane. Ale obecnie nikt nie pró−buje zbudować układu realizującego poda−ne funkcje z kostek TTL <strong>cz</strong>y CMOS4000.W praktyce albo o wszystko trosz<strong>cz</strong>y sięmikroprocesor, albo wykorzystywane sąspecjalizowane układy scalone, tak zwaneUARTy (Uniwersal Asynchronous Recei−ver Transmitter). W <strong>PC</strong>−tach są to kostki8250, 16450 lub ich odpowiedniki. Istnie−je też wiele innych UARTów, na przykład8251, IM6402 (IM6403), itp.Użytkownik nie trosz<strong>cz</strong>y się o sz<strong>cz</strong>egó−ły. Musi tylko poinformować taką kostkęjaka będzie prędkość transmisji, ile bitówbędzie transmitowanych w jednej porcji(5...8), <strong>cz</strong>y wystąpi bit kontroli parzystości(E – even), nieparzystości (O – odd), <strong>cz</strong>ynie będzie takiego bitu (N – no parity) orazjaki jest minimalny <strong>cz</strong>as przerwy międzykolejnymi porcjami (1, 1,5 lub 2 bity sto−pu). Przy obsłudze <strong>komputera</strong> zwykleustala się te parametry programowo.Ostate<strong>cz</strong>nie struktura przesyłanych in−formacji jest taka, jak na rysunku 5.(red)Cd. w EdW7/9730ELEKTRONIKA DLA WSZYSTKICH 6/97

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!