Komputery
K
o
m
p
u
t
e
r
y
Wykorzystanie portów
W
y
k
o
r
z
y
s
t
a
n
i
e
p
o
r
t
ó
w
komputera PC
k
o
m
p
u
t
e
r
a
P
C
1
1
Port szeregowy
część
Każdy komputer musi współpracować
W kilku ostatnich numerach EdW
z jakimiś urządzeniami zewnętrznymi.
poświęcono dużo miejsca spra-
Bez takich urządzeń jak drukarka, mysz,
wie wykorzystania komputera PC
joystick, modem telefoniczny, skaner, itp,
do sterowania różnych urządzeń sam komputer jest niemal zupełnie bez-
użyteczny.
zewnętrznych.
Wymienione urządzenia dołączane są
Przedstawiono kilka książek, które
do komputera za pomocą tak zwanych
w przystępny sposób uczą progra-
portów. Wystarczy zajrzeć na tylną płytę
mowania w języku Basic. Napły-
obudowy komputera, by się przekonać,
iż umieszczonych tam jest przynajmniej
wające listy świadczą o znacznym
kilka gniazd połączeniowych. Umożli-
zainteresowaniu tą sprawą. Jed-
wiają one wysyłanie i przyjmowanie in-
nak materiał zawarty w poleca-
formacji.
nych przez nas książkach nie obe-
Spośród gniazd znajdujących się na tyl- Zadaniem portów jest przesyłanie in-
jmuje zagadnień ogromnie istot- nej ściance komputera, elektroników naj- formacji na zewnątrz komputera oraz po-
bardziej interesują: bieranie informacji z zewnątrz, do i od
nych dla elektronika sposobów
porty szeregowe, oznaczane COM, urządzeń współpracujących.
wykorzystania portów komputera.
itd, które są zgodne ze standardem Niemal wszystkie informacje przesyła-
Niniejszy cykl artykułów wypełnia
RS-232, a które potocznie nazywamy ne do i z komputera mają postać cyfrową,
tę lukę zawiera obszerne i wy- komami, eresami lub serialami, to znaczy, że mają postać napięcia odpo-
port równoległy, zgodny ze standar- wiadającego stanom logicznym 0 i 1.
czerpujące omówienie zasady
dem Centronics, oznaczany LPT, zwa- Zazwyczaj przesyłane są duże ilości in-
działania oraz możliwości dostępu
ny potocznie elpetem, formacji. Z różnych względów, od dawna
do portów komputera PC. Przed-
port joysticka, oznaczany GAME podstawową porcją informacji jest
stawiony materiał umożliwi nawet
PORT, nazywany gejmportem. bajt, czyli osiem bitów.
mało zaawansowanemu użytkow- W każdym komputerze PC występują Informacje cyfrowe, jako kolejne bajty,
przynajmniej dwa porty szeregowe mogą być przesyłane w postaci równo-
nikowi komputera PC praktyczne
(COM1 i COM2). Komputer ma też przy- ległej; wtedy potrzebne jest tyle linii
wykorzystanie tych portów.
najmniej jeden port równoległy (LPT1) przewodów, ile bitów przesyłanych jest
Oprócz informacji ogólnych Autor
i jeden port joysticka. Port joysticka ma jednocześnie (plus przewód masy). Ilu-
proponuje przeprowadzenie sze- specyficzną budowę i funkcje. W zasa- struje to rysunek 1a.
r
y
s
u
n
e
k
1
a
dzie służy tylko do przyjmowania informa- Informacje mogą też być przesyłane
regu eksperymentów z wykorzys-
cji od współpracującegu urządzenia (joys- w postaci szeregowej, czyli kolejno je-
taniem prostej przystawki i rów-
r
y
s
u
ticka). Jego funkcje i możliwości wyko- den bit za drugim. Ilustruje to rysu-
nie prostych programów w języku
n
e
k
1
b
rzystania zostaną omówione w dalszej nek 1b. Tu wystarczą tylko dwa przewo-
Basic. Nie potrzebna będzie na-
części cyklu. dy sygnałowy i masa.
Oba te sposoby wykorzystano do ko-
wet umiejętność programowania
munikacji komputera z otoczeniem.
w Basicu do przeprowadzenia
Najprostsze jest działanie portu rów-
najprostszych prób wystarczy
noległego. Wykorzystano tu pierwszy
mieć dostęp do jakiegokolwiek
sposób. W porcie tym między innymi
PC-ta i skorzystać ze wskazówek znajduje się osiem linii, które pracują jako
zawartych w artykule.
Rys. 1a. Równoległe
przekazywanie danych. Rys. 1b. Szeregowe przesyłanie danych.
28 ELEKTRONIKA DLA WSZYSTKICH 6/97
Komputery
K
o
m
p
u
t
e
r
y
wyjścia. Komputer jednocześnie wysyła W dalszej części artykułu przedstawio-
na te osiem wyjść cały bajt informacji. ne zostanie wszystko to, co jest potrzeb-
Ponieważ jednocześnie za pomocą oś- ne elektronikowi do praktycznego wyko-
miu przewodów przesyłanych jest osiem rzystania portu dla celów sterowania
bitów, transmisja danych przez port rów- i zbierania danych. Ogólnie biorąc, poniż-
noległy jest szybka. Oprócz ośmiu głów- szy materiał jest zgrubnym opisem stan-
nych linii wyjściowych, port równoległy dardu RS-232C.
zawiera szereg innych linii, które mogą
Port szeregowy
służyć jako wejścia, a niektóre jako wy-
jścia. Są one potrzebne do wymiany in- Główne dwie linie portu szeregowe-
Rys. 2a. Najprostsze wykorzystanie
formacji pomocniczych, na przykład syg- go oznaczone są TxD i RxD. TxD to linia
portu szeregowego.
nału synchronizującego, wskazującego, Transmit Data, czyli wyjście. RxD (Re-
r
y
kiedy na liniach przesyłowych pojawia ceive Data) to wejście. Jak pokazuje ry-
s
u
n
e
k
2
a
się nowy bajt informacji, czy informacji sunek 2a, te dwie linie plus przewód
o błędach. masy wystarczą, by przesyłać dane
Port równoległy zazwyczaj obsługuje z i do komputera. Zastosowano tu tak
drukarkę, dlatego w praktyce do różno- zwaną transmisję szeregową, asynchro-
rodnych celów elektronicznych wyko- niczną. Urządzenie nadawcze wysyła
rzystuje się port szeregowy. Spośród kolejno w linię poszczególne bity.
dwóch portów szeregowych, jeden W największym uproszczeniu wygląda
zwykle obsługuje myszkę, a drugi port to jak na rysunku 1b. Przebieg napięcia
może być wykorzystany w dowolny spo- o takiej postaci jest wysyłany w linię
Rys. 2b. Przebiegi czasowe przy
sób. Dodatkową, cenną zaletą portu sze- i odbierany przez współpracujące urzą-
transmisji szeregowej.
regowego jest fakt, że stanom logicz- dzenie. Ale taki ciąg bitów mógłby być
nym 0 i 1 odpowiadają w nim napięcia błędnie odebrany, albo w skrajnym przy-
Prędkość transmisji
+12V i -12V, i że z wyjść można pobrać padku, zupełnie nie odebrany. Przykła-
prąd do 10mA. Tak znaczne napięcia dowo przy transmisji samych zer lub sa- Bit startu wskazuje tylko początek
i prądy są często wykorzystywane do... mych jedynek urządzenie odbiorcze nie transmisji, a następne bity muszą poja-
zasilania współpracujących urządzeń. wiedziałoby, kiedy zaczyna się, a kiedy wić się w ściśle określonym czasie. Ina-
W ten sposób wyjścia portu szeregowe- kończy transmisja. Dlatego przy szere- czej mówiąc, zarówno nadajnik, jak i od-
go stają się zródłem zasilania. Wyjścia gowym przesyłaniu danych trzeba biornik muszą mieć równo tykające zega-
i wejścia portu szeregowego są odporne wprowadzić dodatkowe informacje ry, które odmierzą czas pojawiania się ko-
na uszkodzenia pod wpływem zewnętr- i spełnić pewne warunki. Przede wszys- lejnych bitów. Oznacza to, że nadajnik
znych napięć i prądów, dlatego zasadni- tkim trzeba przyjąć jakiś stan spoczyn- i odbiornik muszą się umówić , z jaką
czo można dołączać do tego portu kowy. Niech to będzie stan wysoki. Jeś- prędkością są przesyłane dane. Teore-
współpracujące urządzenia także przy li przez linię nie są przesyłane dane, na tyczne, prędkość przesyłania mogłaby
włączonym zasilaniu komputera. linii przesyłowej utrzymuje się stan wy- być dowolna, jednak dla porządku przyję-
Wspomniane zalety zadecydowały, że soki. Pojawienie się stanu niskiego jest to pewien standard. Dawniej stosowano
port szeregowy jest najczęściej wyko- sygnałem o rozpoczęciu transmisji. Ale bardzo małe prędkości transmisji: 50, 75
rzystywany przez konstruktorów do pod- pierwszy bit transmitowanej informacji lub 110 bodów, czyli bitów na sekundę.
łączania różnych bardziej lub mniej stan- wcale nie musi być zerem. Dlatego ko- Potem stosowano prędkości 300, 600,
dardowych urządzeń zewnętrznych. Trze- nieczne jest wprowadzenie dodatkowe- 1200, 2400, 3600 i 4800 bitów na sekun-
ba jednak mieć świadomość, że port sze- go, początkowego bitu, który zawsze dę. Obecnie w zależności od rodzaju
regowy jest znacznie wolniejszy od portu będzie zerem. Jedynym zadaniem tego współpracujących urządzeń, stosuje się
równoległego, a więc jeśli wymagane bitu jest wskazanie odbiornikowi, że prędkości transmisji 9600, 14400, 19200,
jest szybkie przesyłanie danych, koniecz- właśnie rozpoczyna się transmisja. Ten 28800 bitów na sekundę i wyższe.
ne może się okazać wykorzystanie portu bit jest zwany bitem startu. Ilustruje to Zasadą jest, że w linię wysyła się ko-
r
y
s
u
n
e
k
2
b
równoległego. rysunek 2b. lejne bity danego bajtu, począwszy od bi-
Właściwości portu szeregowego zwią- Wydawałoby się, że po wysłaniu bitu tu najmłodszego, oznaczanego D0 do naj-
zane są ze starymi standardami stosowa- startu, można potem przesłać kolejno do- starszego.
nymi w dalekopisach oraz z sygnałami wolnie wielką ilość bitów. W praktyce Przyjęcie standardowych prędkości
wykorzystywanymi w modemach, czyli wcale nie jest to takie proste. Odbiornik transmisji znakomicie ułatwia współpracę
urządzeniach współpracujących z linią te- powinien wiedzieć, kiedy w linii pojawił urządzeń różnych producentów wystar-
lefoniczną. Opis pełnego standardu jest się następny bit. A skąd ma to wiedzieć? czy, by zachowane były ogólne zasady,
bardzo obszerny. W opisie spotkasz ta- Jeśli wykorzystana byłaby dodatkowa li- w tym podane prędkości, czyli częstotli-
jemnicze określenia RS-232C, V.24, DTE, nia, przez którą przesyłany byłby sygnał wości taktujące nadajnika i odbiornika.
DCE, DSR, DTR, RTS, CTS, i wiele in- taktujący, czyli zegarowy, nie byłoby żad- A z jaką dokładnością należy utrzymy-
nych. Różnorodne możliwości połączeń, nego problemu. Sygnał taktujący wskazy- wać podane prędkości transmisji i częs-
całe mnóstwo stosowanych kabli, tajem- wałby, kiedy w linii danych pojawia się na- totliwości taktujące?
nicze skróty wszystko to może wręcz stępny bit (taki sposób nazywany jest Jeśli zegary taktujące nadajnika i odbior-
przerazić przeciętnego użytkownika. Na transmisją synchroniczną). Ale tu nie ma nika tykałyby idealnie równo, po bicie star-
szczęście do praktycznego wykorzysta- sygnału zegarowego zarówno nazwa, tu można byłoby przesłać dowolną ilość bi-
nia portów komputera wystarczy garść jak i rysunek 2 wskazują, iż jest to trans- tów informacji bez obawy o błędy. Pokazu-
r
y
s
u
n
e
k
3
najważniejszych informacji, natomiast misja asynchroniczna, czyli nie ma żad- je to rysunek 3. Generator taktujący odbior-
szczegóły nie są potrzebne, dlatego zo- nych dodatkowych linii przesyłających nika wyznacza momenty czasu, które po-
staną pominięte. sygnały synchronizacji. winny wypadać dokładnie w połowie cza-
ELEKTRONIKA DLA WSZYSTKICH 6/97 29
Komputery
K
o
m
p
u
t
e
r
y
su przesyłania danego bitu. Tylko w tych
momentach odbiornik próbkuje stan linii,
czyli odczytuje aktualny stan linii. Momen-
ty te na rysunku 3 zaznaczono strzałkami.
Jednak już przy jakiejś niewielkiej róż-
nicy częstotliwości zegarów taktujących,
dłuższy przekaz zostałby zinterpretowany
błędnie. Jeśli częstotliwości zegarów bę-
dą się znacznie różnić, któryś kolejny mo-
ment próbkowania wypadnie w czasie Rys. 5. Struktura informacji przy przesyłaniu danych łączem szeregowym RS-232.
trwania następnego lub poprzedniego bi-
r
y
s
u
n
e
k
4
tu. Ilustruje to rysunek 4. Strzałki wskazu- stępuje 16 taktów tego sygnału pomocni- lezć, choć nie musi, dodatkowy bit kont-
ją momenty próbkowania. czego, próbkowanie środka bitu odby- roli parzystości.
Wskutek różnicy częstotliwości zega- wa się w ósmym takcie każdego cyklu.
Bit Stopu
rów taktujących nadajnika i odbiornika, Częstotliwości taktujące, potrzebne
przesyłana informacja została odczytana przy różnych prędkościach transmisji, Po wysłaniu jednej porcji informacji
błędnie. uzyskuje się z jednego generatora kwar- nadajnik ustawi na linii stan spoczynko-
Wiadomo, że w praktyce idealnej do- cowego przez odpowiedni podział jego wy, czyli stan wysoki. Jeśli nadajnik miał
kładności zapewnić się nie da. Dla bez- częstotliwości. wysłać tylko te kilka bitów (jeden bajt), to
pieczeństwa przyjęto więc, że po bicie Omówiliśmy już dwie sprawy związa- stan wysoki będzie się utrzymywał, aż po
startu przesyła się tylko 5...8 bitów właś- ne z transmisją szeregową: znaczenie bi- upływie dowolnie długiego czasu nadaj-
ciwej informacji. Wtedy wymagania na tu startu oraz dokładność częstotliwości nik otrzyma rozkaz wysłania następnej
dokładność częstotliwości taktującej nie taktujących nadajnika i odbiornika. porcji informacji (następnego bajtu).
są zbyt ostre. Trzecią sprawą jest bit kontroli pa- W praktyce często trzeba przesłać dużą
Ponieważ po bicie startu przesyłanych rzystości. ilość danych i wtedy nadajnik wysyła por-
jest tylko kilka bitów informacji, urządze- cje informacji jedną po drugiej. Między
Bit kontroli parzystości
nia będą poprawnie pracować, nawet jeś- poszczególnymi porcjami musi wystąpić
li częstotliwości taktujące będą różnić się Przy przesyłaniu danych na odległość, przerwa, aby odbiornik mógł prawidłowo
o kilka procent. chwilowe zakłócenia indukujące się odebrać bit startu następnej porcji. Ta
W praktyce, w urządzeniach standar- w przewodach, albo też inne szkodliwe przerwa musi trwać przynajmniej przez
du RS-232 stosuje się sygnał pomocniczy czynniki, mogą wprowadzić błędy i odebra- czas odpowiadający transmisji jednego
o częstotliwości 16 razy większej, niż ny sygnał będzie różnić się od nadanego. bitu (albo 1,5, albo 2 bitów). To właśnie
standardowa częstotliwość przesyłania Prawdopodobieństwo wystąpienia błędu jest kolejny warunek.
danych. Właśnie ten pomocniczy sygnał jest w sumie niewielkie, ale nie można go Już wiemy, że przy transmisji szerego-
wyznacza momenty próbkowania. Ponie- wykluczyć. Dobrze byłoby mieć informację wej łączem RS-232, oprócz 4...8 bitów
waż w czasie trwania każdego bitu wy- o wystąpieniu błędów w transmisji. Wtedy właściwej informacji, przesyłany jest bit
dane można przesłać ponownie. startu, bit(y) stopu i ewentualnie bit kont-
Wprowadzono więc dodatkowy bit roli parzystości.
kontrolny. Wartość tego bitu zależy od Wszystkie te zasady, czyli tak zwany
przesyłanej informacji. Umawiamy się, protokół transmisji, mogą się wydać
że transmitowane dane powinny zawie- skomplikowane. Ale obecnie nikt nie pró-
rać parzystą ilość jedynek. Jeśli akurat buje zbudować układu realizującego poda-
przesyłane kilka bitów zawiera parzystą ne funkcje z kostek TTL czy CMOS4000.
liczbę jedynek, bit kontrolny dodawany W praktyce albo o wszystko troszczy się
w nadajniku ma wartość zero. Jeśli właś- mikroprocesor, albo wykorzystywane są
ciwa informacja zawiera nieparzystą licz- specjalizowane układy scalone, tak zwane
bę jedynek, bit kontrolny ustawiany jest UARTy (Uniwersal Asynchronous Recei-
na 1, aby całkowita liczba jedynek była ver Transmitter). W PC-tach są to kostki
Rys. 3. Sytuacja przy jednakowych
parzysta. Po stronie odbiorczej spraw- 8250, 16450 lub ich odpowiedniki. Istnie-
częstotliwościach zegarów nadajnika
dzana jest ilość odebranych jedynek. je też wiele innych UARTów, na przykład
i odbiornika.
Jeśli ich liczba nie jest parzysta, odbior- 8251, IM6402 (IM6403), itp.
nik sygnalizuje błąd. Przy odpowiedniej Użytkownik nie troszczy się o szczegó-
organizacji transmisji, po wykryciu błędu ły. Musi tylko poinformować taką kostkę
zafałszowane dane zostaną przesłane jaka będzie prędkość transmisji, ile bitów
jeszcze raz. będzie transmitowanych w jednej porcji
Co prawda wprowadzenie bitu kontro- (5...8), czy wystąpi bit kontroli parzystości
li parzystości nie daje gwarancji wykrycia (E even), nieparzystości (O odd), czy
wszystkich błędów. Na przykład przy jed- nie będzie takiego bitu (N no parity) oraz
noczesnym zaistnieniu dwóch przekła- jaki jest minimalny czas przerwy między
mań odbiornik nie wykryje błędu jednak kolejnymi porcjami (1, 1,5 lub 2 bity sto-
prawdopodobieństwo takiego zdarzenia pu). Przy obsłudze komputera zwykle
jest o wiele mniejsze, niż szansa pojawie- ustala się te parametry programowo.
nia się jednego przekłamania i w praktyce Ostatecznie struktura przesyłanych in-
Rys. 4. Sytuacja przy niejednakowych
r
y
s
u
n
k
u
5
to wystarcza. formacji jest taka, jak na rysunku 5.
częstotliwościach zegarów nadajnika
(
r
e
d
)
Notujemy kolejną ważną wiadomość: (red)
i odbiornika
w przesyłanym sygnale może się zna- Cd. w EdW7/97
30 ELEKTRONIKA DLA WSZYSTKICH 6/97
Komputery
K
o
m
p
u
t
e
r
y
Wymienione linie są potrzebne na
przykład przy współpracy komputera
R
y
s
u
z modemem telefonicznym. Rysu-
nek 6 pokazuje jak zmieniają się stany po-
n
e
k
6
szczególnych linii, gdy modem przesyła
informacje do komputera.
Podane skróty i angielskie określenia
zródłowe mogą przyprawić o ból głowy.
Na szczęście wcale nie trzeba rozumieć
dokładnie, do czego miały służyć te
wszystkie linie przy współpracy z mode-
mem. Nie trzeba też szczegółowo anali-
zować kolejności pojawiania się i znacze-
nia sygnałów na poszczególnych liniach
wystarczy wiedza, że łącze RS-232 za-
wiera linie pomocnicze.
Elektronik musi wiedzieć, że w kom-
Rys. 6. Stany poszczególnych linii przy przesyłaniu informacji z modemu puterze linie oznaczane DTR i RTS mogą
do komputera.
pełnić funkcje wyjścia, a linie oznaczane
CTS, DSR, DCD oraz RI mogą pełnić
funkcję wejścia.
Inne właściwości
Trzeba też umieć sterować liniami
DTR i RTS, oraz odczytywać stan lini-
i CTS, DSR, DCD i RI. Jest to w sumie
bardzo proste.
W tabeli 1 podano zwięzłu opis sygna-
łów złącza szeregowego komputera i od-
powiadające im numery końcówek złącz
R
y
s
u
n
e
k
7
9 i 25-stykowych. Rysunek 7 pokazuje jak
poszczególne linie podłączone są do szpi-
lek gniazd.
W portach szeregowych spotyka się
zarówno złącza 9-stykowe, jak i złącza 25-
stykowe. Nie ma to większego znaczenia
dla użytkownika, najwyżej na podstawie
tabeli 1 lub rysunku 7 trzeba wykonać
prostą przejściówkę składającą się
z gniazda i wtyczki, łączącą szpilki o właś-
ciwych numerach.
W komputerze porty szeregowe mają
złącza męskie, zawierające szpilki. Nato-
miast rysunek 7 pokazuje widok i nume-
rację złącz żeńskich, czyli nasadek dołą-
Elektronik powinien znać podane po-
wyżej ogólne zasady transmisji szerego-
wej złączem RS. W praktyce prawdopo-
dobnie nie będzie jednak wykorzystywał
tej wiedzy. Złącze to może zostać, i częs-
to bywa przez elektroników wykorzysty-
wane w nietypowy sposób. Należy więc
poznać je bliżej.
W takich nietypowych zastosowa-
niach transmitowane sygnały nie mają
struktury pokazanej na rysunku 5, a układ
pracy nie wygląda tak, jak pokazuje rysu-
nek 2. Wykorzystuje się za to dodatkowe
linie łącza RS-232.
Każdy port szeregowy komputera PC,
oprócz linii masy (GND), linii nadawania
TxD oraz odbierania danych RxD, ma
jeszcze sześć dodatkowych linii oznacza-
nych DTR (Data Terminal Ready), RTS
(Request to Send), CTS (Clear to Send),
DSR (Data Set Ready), DCD (Data Carrier
Detect) oraz RI (Ring Indicator). Rys. 7. Podłączenie linii do szpilek gniazd 25 i 9-pinowych.
ELEKTRONIKA DLA WSZYSTKICH 6/97 31
Komputery
K
o
m
p
u
t
e
r
y
czanych do komputera. Praktyka intere- urządzenie zawierające port szeregowy przenośnych zasilanych jest z baterii, dla-
suje właśnie to, jak okablować te nasadki musi zawierać obwody zasilania napię- tego powszechnie stosuje się tam układy
dołączane do komputera. W wypadku ja- ciem ą10...15V albo też przetwornice, sprzęgające, które dodatkowo wyposażo-
kichkolwiek wątpliwości co do numeracji wytwarzające takie napięcia ze standar- ne są w system przetwornic, które z po-
nóżek złącz, należy odszukać cyferki wy- dowego napięcia zasilania systemów lo- jedynczego napięcia o wartości 5 lub na-
tłoczone na gniazdach i wtykach. gicznych, równego 5V lub 3,3V. wet 3,3V wytwarzają napięcia symetrycz-
Schemat blokowy typowego portu ne wymagane w standardzie RS-232. No-
Poziomy napięć
r
y
s
u
n
szeregowego pokazany jest na rysun- woczesne kostki tego typu przedstawio-
k
u
8
Jak wspomniano na początku artyku- ku 8. Procesor wpisuje do układu UART ne są w Klubie Konstruktorów.
r
y
s
u
n
k
u
1
0
łu, na wyjściach portu szeregowego wy- rozkazy sterujące, dane do przesłania Na rysunku 10 pokazano dopuszczalne
stępują napięcia rzędu ą10...15V. Takie i odczytuje odebrane dane. W kompute- zakresy napięć na wyjściach i wejściach
poziomy napięć wywodzą się z epoki rach PC wykorzystuje się kostkę UART łącza RS dla stanów logicznych 0 i 1 we-
dług normy. Obok (rys 10c) podano, jak
wejścia interpretują podawane na nie na-
pięcia.
Z poziomami napięć na trzech wy-
jściach portu szeregowego jest trochę za-
mieszania, dlatego nie zaznaczono, jakie
napięcia odpowiadają ligicznej 1, a jakie
logicznemu 0. Mówi się, że informacja
wysyłana przez linię TxD jest zanegowa-
na. W rzeczywistości jest ona podwójnie
negowana. Dla Czytelników EdW takie
szczegóły nie są istotne. Najważniejszy
jest fakt, że dwa urządzenia wyposażone
w złacze RS-232 potrafią się porozumieć,
o ile tylko jednakowo zaprogramowane
zostaną parametry transmisji.
Elektronik, chcący wykorzystać port
szeregowy powinien wiedzieć, że po włą-
czeniu komputera, na wszystkich trzech
Rys. 8. Blokowy schemat portu szeregowego PC-ta. wyjściach portu RS-232C występują na-
pięcia ujemne.
Wpisanie przez procesor do któregoś
8250, 16450, albo stosuje się rozwiązania z wyjść portu (DTR lub RTS), logicznej je-
zgodne z nimi programowo. dynki (czyli ustawienie tego wyjścia), po-
Oprócz kostki UART konieczne są woduje pojawienie się na odpowiedniej
jeszcze układy dopasowujące poziomy linii napięcia dodatniego o wartości
napięć (0...+5V lub 0...+3,3V komputera, 10...15V. Ponowne wpisanie tam zera po-
do napięć wymaganych w liniach łącza woduje pojawienie się napięcia ujemne-
RS-232). Dawniej typowym układem od- go o podobnej wartości.
biorczym była kostka o numerze 1488 Właśnie te napięcia można wykorzys-
i układem nadawczym 1489. Te układy tać jako zródło zasilania dla dołączonych
dopasowujące były zasilane napięciem z zewnątrz układów. Ponieważ z wyjść
symetrycznym ą10...15V. Schematy we- można pobrać prąd rzędu kilku miliampe-
wnętrzne jednego toru nadajnika 1488 rów, a współczesne kostki zużywają bar-
r
y
s
u
n
i odbiornika 1489 pokazane są na rysun- dzo mało prądu, złącze RS może zasilać
ku 9. Obecnie bardzo wiele urządzeń nawet dość rozbudowany układ.
k
u
9
Rys. 9a. Schemat wewnętrzny
jednego toru nadajnika 1488.
przedkomputerowej. W związku z przyję-
tymi wymaganiami na poziomy napięć,
Rys. 9b. Schemat wewnętrzny
jednego toru odbiornika 1489.
Rys. 10.
32 ELEKTRONIKA DLA WSZYSTKICH 6/97
Komputery
K
o
m
p
u
t
e
r
y
nadto w obwód histerezy, nie dopuszcza- Drugi rodzaj adresów dotyczy współ-
jącej do powstania przekłamań i drgań, pracy procesora z najróżniejszymi urzą-
także w zakresie napięć wejściowych dzeniami wejścia/wyjścia. Zakres tych
+1...+1,25V. Pokazano to na rysunku 10c. adresów wynosi w zasadzie od zera do
Jest to bardzo pożyteczne rozwiąza- 65536 (szesnastkowo FFFFH), ale z tej
nie. Dzięki niemu wejście portu szerego- liczby wykorzystuje się co najwyżej kilka-
wego komputera może być sterowane set adresów.
sygnałami o poziomach TTL! Jest to bar- Mamy więc w PC-cie sytuację, że ten
dzo ważna cecha, często wykorzystywa- sam adres z zakresu 0...FFFFH może być
na w praktyce. Port szeregowy kompute- adresem komórki w pamięci RAM, i adre-
ra wysyła napięcia bipolarne, jak pokaza- sem urządzenia wejścia/wyjścia. Kompu-
no na rysunku 10a. Ale wejścia tego por- ter w sobie znany sposób radzi sobie z ty-
tu prawidłowo odczytają dane o pozio- mi podwójnymi adresami. Nas to w zasa-
mach TTL to znaczy, że urządzenie dzie może nie obchodzić, wystarczy, że
współpracujące z komputerem wcale nie poinformujemy prosesor, że ma on od-
Rys. 11. Zasilanie bipolarne z portu RS.
musi być wyposażone we wspomniane czytać lub zapisać dane do urządzenia
układy sprzęgające, zasilane napięciami wejścia/wyjścia, a nie z/do pamięci RAM.
symetrycznymi wystarczy zasilanie po- Jak się za chwilę okaże, jest to bardzo
Przykładowo linie wyjściowe DTR jedynczym napięciem w zakresie 3...15V. proste. Jest to tym bardziej łatwe, że
i RTS (ustawione w przeciwnych sta- Takie właściwości wejść portu szerego- w PC-cie dla poszczególnych urządzeń
wego otwierają przed amatorami duże wejścia/wyjścia, a w tym także dla na-
możliwości i znakomicie upraszczają bu- szych portów, zarezerwowano pewne
dowę urządzeń współpracujących. stałe adresy.
Podane właśnie informacje są bardzo Mamy więc tak zwane adresy bazowe
ważne dla każdego praktyka, bowiem po- portów.
zwalają wykorzystać szeregowe porty
Adresy bazowe portów
komputera na wiele nietypowych, a bar-
dzo ciekawych sposobów. W dalszej Porty szeregowe COM1 i COM2 mają
części artykułu podane będą propozycje adresy bazowe (w zapisie szesnastko-
Rys. 12. Zasilanie przez linię prostych eksperymentów z portem sze- wym) 3F8 i 2F8, czyli w zapisie dziesięt-
transmisyjną. regowym. Ale najpierw trzeba się nau- nym 1016 i 760 (ewentualne porty
czyć ustawiać i odczytywać stan po- COM3 i COM4 mają adresy szestnastko-
szczególnych linii portu. we 3E8 i 2E8, co dziesiętnie daje 1000
nach) mogą służyć jako zródło napięcia i 744).
Adresowanie
zasilającego, a linia RxD będzie pełnić Pod każdym adresem znajduje się oś-
funkcje wyjścia sygnałów. Z punktu widzenia procesora (a także miobitowy rejestr (coś w rodzaju komórki
W zasadzie już jedna linia wyjściowa z punktu widzenia programu, np. QBasi- pamięci). Przy normalnej transmisji szere-
może dostarczyć napięć symetrycznych. ca), obsługa portów polega na wpisywa- gowej (wg rysunków 2 i 5), pod te adre-
Wystarczy by komputerz odpowiednią niu i odczytywaniu bajtów informacji sy wpisuje się (ośmiobitowe) dane do
częstotliwością ustawiał na niej na prze- spod ściśle określonych adresów. Jest to wysłania, i spod tych samych adresów
mian stan wysoki i niski napięcia sy- bardzo proste: wpisujemy bajt pod okreś- odczytuje się dane odebrane z lini-
metryczne można uzyskać z pomocą lony adres i tym samym zmieniamy stany i (z tego wynika, że w rzeczywistości pod
dwóch diod i dwóch kondensatorów linii wyjściowych portu. Odczytujemy bajt tym jednym adresem bazowym są dwa
r
y
s
u
n
k
u
1
1
w układzie z rysunku 11. spod pewnego adresu i otrzymujemy in- rejestry: wyjściowy i wejściowy, ale dla
Często do zasilania współpracującego formacje o stanie linii wejściowych nas nie jest to istotne).
urządzenia wystarczy napięcie o jednej w momencie odczytu. Do zaadresowanego rejestru możemy
biegunowości. Wykorzystuje się wtedy Elektronikowi-praktykowi nie są po- więc wpisać (lub odczytać) dowolną licz-
w bardzo prosty sposób jedną linię, i to li- trzebne wszystkie szczegóły na ten te- bę z zakresu 0...255 (binarnie
nię, która jednocześnie transmituje dane. mat. Trzeba jednak rozumieć pewne pod- 0...11111111). Bardzo często nie chodzi
r
y
s
u
n
k
u
1
2
Na rysunku 12 pokazano sposób zasilania stawowe zagadnienie. nam o liczbę, tylko o ustawienie w stan
urządzenia i przesyłania do niego informa- Z grubsza biorąc, w PC-cie mamy do 1, lub wyzerownie poszczególnych bitów
cji za pomocą tylko dwóch przewodów. czynienia z dwoma rodzajami adresów. tego rejestru. Powiedzmy, że chcemy
Wiadomo, że z portu szeregowego na Jak wiadomo, adresy są liczbami, wyra- wpisać jedynkę do dwóch najstarszych
linię wysyłane są napięcia dodatnie żanymi najczęściej w systemie szesnast- bitów rejestru. To znaczy, że do tego re-
i ujemne o znacznej wartości. Natomiast kowym (dlatego liczby te poprzedzone jestru musimy wpisać liczbę binarną
wejścia portu wcale nie muszą być stero- są, lub zakończone, literką H-hexadeci- 11000000. Liczba ta przedstawiona w za-
wane takimi napięciami, jak pokazano na mal, a oprócz cyfr 0...9 zawierają znaki pisie dziesiętnym to 192. Z poziomu
rysunku 10b. W zasadzie norma mówi, A...F). QBasica każemy więc wpisać pod okreś-
że sygnały przychodzące do wejścia po- Jedne adresy dotyczą współpracy pro- lony adres liczbę 192 tym samym wpi-
winny mieć napięcie (dodatnie lub ujem- cesora z pamięcią operacyjną (RAM). Za- szemy dwie jedynki do najstarszych bi-
ne) większe niż 3V. Ale w rzeczywistości kres tych adresów sięga od zera do dzie- tów rejestru. Analogicznie rozkaz wpisa-
układy odbiorcze (z nielicznymi wyjątka- siątków milionów taki zakres jest po- nia liczby 7 wpisze jedynki do trzech naj-
mi) konstruuje się w ten sposób, że na- trzebny do obsługi dzisiejszych pamięci młodszych bitów rejestru (bo liczba 7 to
pięcia większe niż +1,25V traktowane są RAM o pojemności 32 lub 64 megabaj- binarnie 00000111).
jako stan wysoki, a mniejsze niż +1V: ja- tów. Jak wspomniano, w komputerze PC
ko stan niski. Wejścia wyposażone są po- do obsługi portu szeregowego wykorzys-
ELEKTRONIKA DLA WSZYSTKICH 6/97 33
Komputery
K
o
m
p
u
t
e
r
y
ustawienie siódmego bitu (D6), czyli wpi-
sanie liczby dwójkowej 01000000, pod
adresem (AdresBazowyPortu + 3). Póz-
niejsze wpisanie tam zera znów zmieni
napięcie wyjściowe na ujemne itd...
Naturalnie po wpisaniu tam jedynki
wyjście TxD nie będzie wykorzystywane
w typowy sposób pokazany na rysunkach
2 i 5.
Aby uzyskać informacje o stanie lini-
i CTS, DSR, DCD i RI, wystarczy odczytać
bajt spod adresu (AdresBazowy Portu
+ 6), czyli na przykład dla portu COM1
będzie to adres (szesnastkowo) 3FE, czy-
li właśnie 3F8+6. Cztery najstarsze bity
zawierają informacje o stanie tych wejść
w momencie odczytu.
Podane właśnie wiadomości mogą
w pierwszej chwili wydać się trudne,
szczególnie dla początkujących.
W rzeczywistości wykorzystanie ich jest
niezmiernie proste, zwłaszcza za pomocą
QBasica.
Eksperymenty
Każdy posiadacz jakiegokolwiek kom-
Rys. 13. Przestrzeń adresowa portu szeregowego. putera PC może od razu praktycznie wy-
korzystać podane właśnie wiadomości.
Za pomocą łącza szeregowego PC-ta
tuje się albo kostkę UART 8250, albo sto- A więc rejestr o adresie (AdresBazo- można sterować wielu urządzeniami
suje się rozwiązania zgodne programowo wyPortu + 2) daje możliwość sterowania i zbierać informacje od takich urządzeń.
z tą kostką. W rzeczywistości do obsługi liniami DTR i RTS danego portu. Do pierwszych fascynujących ekspery-
wszystkich funkcji portu szeregowego Jak wspomniano, wyjście TxD w zasa- mentów wystarczy elementarna znajo-
wykorzystuje się nie jeden (adres bazo- dzie służy do szeregowego wysyłania mość języka QBasic. W ostatnich nume-
wy), ale kilka kolejnych adresów. Dla ułat- 5...8 bitowych danych wpisywanych rach EdW przedstawiono książki Przy-
wienia, zamiast dla każdego portu poda- przez procesor do rejestru znajdującego gody z komputerem i bez komputera
wać wszystkie kolejne adresy, do adresu się pod adresem bazowym (dla COM1 oraz QBasic nie tylko dla orłów . Książ-
bazowego dodaje się tak zwany offset, 3F8H). W stanie spoczynku na lini- ki te pomogą nawet zupełnie początkują-
czyli liczbę z zakresu 1...6. i TxD występuje napięcie ujemne. Ale cym bezbolesne zapoznanie się z podsta-
r
y
s
u
n
e
k
1
3
Pokazuje to rysunek 13. Znów nie trze- w zastosowaniach nietypowych często wami programowania. A wiadomości
ba znać szczegółów. Ważna jest wiado- po prostu ustawia się tę linię w jeden ze z niniejszego artykułu umożliwią różno-
mość, że aby wykorzystać wspomniane stanów. Ustawienie na wyjściu TxD na- rodne wykorzystanie zalet portu szerego-
wcześniej dodatkowe linie portu szerego- pięcia dodatniego jest możliwe przez wego.
wego trzeba sięgnąć pod właściwe adre-
sy.
Przykładowo jeśli pod adres szesnast-
kowy 3FC, (czyli 3F8+2, gdzie 2 to wspo-
mniany offset) do najmłodszego bitu (D0)
wpiszemy jedynkę, czyli do rejestru wpi-
szemy liczbę binarną 00000001, to usta-
wimy linię DTR portu COM1. Gdy wpi-
szemy tam zero powrócimy do stanu
spoczynkowego. Tak samo możemy ste-
rować linią RTS, wpisując pod ten sam
adres do bitu D1 jedynkę lub zero. Jedyn-
ka na miejscu D1 to w zapisie binarnym
00000010, czyli liczba 2.
Uważny Czytelnik domyślił się samo-
dzielnie, że można jednocześnie zmieniać
stany obu wyjść DTR i RTS. Wpisanie
pod adres 3FC liczby 3, czyli binarnie
00000011 ustawi oba wyjścia; wpisanie
00000010 wyzeruje linię DTR, pozosta-
wiając ustawioną linię RTS, itd. Rys. 14. Schemat prostego układu do eksperymentów z portem szeregowym
komputera PC.
34 ELEKTRONIKA DLA WSZYSTKICH 6/97
ABP = &H3F8
OUT (ABP + 4), 3
IF (INP(ABP + 6) AND 16) = 16 THEN PRINT CTS plus ELSE PRINT CTS minus lub masa
IF (INP(ABP + 6) AND 32) = 32 THEN PRINT DSR plus ELSE PRINT DSR minus lub masa
IF (INP(ABP + 6) AND 64) = 64 THEN PRINT RI plus ELSE PRINT RI minus lub masa
IF (INP(ABP + 6) AND 128) = 128 THEN PRINT DCD plus ELSE PRINT DCD minus lub masa
END
Komputery
K
o
m
p
u
t
e
r
y
Na początek warto zapoznać się prak- wym, przypisze stałej ABP aktualną war- resu (AdresBazowyPortu+6) i zinterpretuj
tycznie z działaniem poszczególnych lini- tość, reszta programu zostaje bez zmian. wyniki. Pomoże ci w tym programik
i portu. W drugiej linii, poleceniem OUT, każe- umieszczony na dole strony.
r
y
s
u
n
k
u
1
4
Na rysunku 14 pokazano schemat naj- my do rejestru wyjściowego o adresie W drugiej linii powyższego programu
prostszego układu do eksperymentów (AdresBazowyPortu+4) zapisać liczbę 3, ustawiłeś dodatnie napięcie na liniach
z portem szeregowym. czyli w zapisie binarnym 00000011. Tym DTR i RTS. Kolejne linie sprawdzają stany
Zmontowany układ widać na fotografi- samym ustawiamy bity odpowiedzialne poszczególnych bitów rejestru o adresie
i. Jeśli w komputerze występują złącza 9- za stan linii wyjściowych DTR i RTS. (AdresBazowyPortu+6) i wypisują na ek-
pinowe, należy skorzystać z tabeli 1 i ry- Po naciśnięciu klawisza F5 uruchomi- ranie, czy na daną linię podano napięcie
sunku 7. my program zmienimy stan lini- dodatnie, czy nie. Wykorzystałeś funkcję
i DTR i RTS, zaświecą się dwie żółte dio- INP. Funkcja ta odczytała cały bajt infor-
Programowanie
dy. macji spod podanego adresu. Za pomocą
Dostęp do wspomnianych adresów Po naciśnięciu dowolnego klawisza iloczynu AND kolejno sprawdzane są sta-
z poziomu języka QBasic jest dziecinnie wrócimy do ekranu QBasica. ny czterech najstarszych bitów tego bajtu
prosty. Najpierw należy podłączyć do Zmieńmy drugą linię programu: i w zależności od wyniku, wypisywany
wolnego portu szeregowego układzik jest stosowny komunikat (pamiętaj, że
ABP = &H3F8
r
y
s
u
n
k
u
1
4
o schemacie z rysunku 14. Jeden z por- np. 16 to binarnie 00010000, więc funk-
OUT (ABP+4),0
tów szeregowych jest zwykle zajęty cja AND sprawdzi wartość bitu D4, wska-
przez myszkę. Trzeba sprawdzić lub zapy- zującego, jak podaje rysunek 13, stan linii
tać znajomego komputerowca, który port Po naciśnięciu F5, znów zaświecą się CTS).
jest zajęty, a który wolny. Chodzi o usta- wszystkie diody czerwone. W ten prosty sposób nie możesz jed-
lenie adresu bazowego wolnego portu. Po naciśnięciu jakiegokolwiek klawi- nak odczytać stanu linii RxD. Niewielka
U piszącego te słowa port COM2 obsłu- sza znów zmodyfikujemy program: strata, cztery linie wejściowe to też spo-
guje myszkę, więc do eksperymentów ro.
ABP = &H3F8
posłuży port COM1 o adresie szesnast- Podane krótkie programy pokazują,
OUT (ABP+4),3
kowym 3F8. w jak prosty sposób steruje się liniami
OUT (ABP+3),64
Następnie trzeba uruchomić interpre- wyjściowymi i odczytuje stan lini-
ter QBasic. Nie należy uruchomiać QBa- i wejściowych. Otwiera ci to drogę do
sica spod Windows, bo próby się nie uda- Druga linia programu ustawi wyjścia najróżniejszych zastosowań, oczywiście
dzą. Z poziomu DOSa wykonuje się to po DTR i RTS, a trzecia linia, wpisując pod nie tylko do zapalania i gaszenia trzech
prostu pisząc: adres (AdresBazowyPortu+3) liczbę 64 diod LED.
czyli dwójkowo 01000000, zmieni stan li- Jeśli do tej pory nie splamiłeś się pro-
qbasic
nii TxD, czyli zaświeci trzecią żółtą diodę. gramowaniem i coś w podanych progra-
i naciskając enter. Jeśli ten sposób nie I to wszystko! mikach nie jest dla ciebie jasne, powinie-
uruchomi basica, należy podać ścieżkę Jak się przekonałeś, sterowanie linia- neś sięgnąć do książek o Basicu, przed-
dostępu, najczęściej będzie to: mi RTS, DTR i TxD jest naprawdę dziecin- stawionych w EdW 1/97 i 3/97 (kupony
nie łatwe. rabatowe jeszcze zachowują ważność).
c:\dos\qbasic
Wpisz jeszcze krótki programik: Na życzenie Czytelników redakcja mo-
i nacisnąć enter, a za chwilę klawisz że przedstawić praktyczne przykłady wy-
esc(ape), by usunąć z ekranu informację 10 ABP = &H3F8 korzystania portu szeregowego.
(
r
e
d
)
wstępną. Jeśli i to nie zadziała, trzeba po- 20 OUT (ABP + 4), 1 (red)
prosić o pomoc przy pierwszym urucho- 30 FOR N = 1 TO 1000: NEXT N
40 OUT (ABP + 4), 0
mieniu QBasica kogokolwiek, kto choć
50 FOR N = 1 TO 1000: NEXT N
trochę zna się na komputerze.
Od chwili włączenia komputera, na li- 60 IF INKEY$ <> THEN END
niach wyjściowych portu powinny wystą- 70 GOTO 20
pić napięcia ujemne, czyli na początku
świecić się będą diody czerwone. Diody sterowane przez linię DTR po-
Teraz można wpisać następujący pro- winny zapalać się na przemian (z pręd-
gramik: kością zależną od częstotliwości zegara
taktującego twego komputera), aż do
ABP = &H3F8
czasu naciśnięcia jakiegokolwiek klawi-
OUT (ABP + 4), 3
sza. Zmień w linii 40 wpisywaną wartość
z 0 na 2 i uruchom program będą migać
i nacisnąć klawisz oznaczony F5 (lub wy- obie diody.
brać z górnego menu Run, a potem Aby odczytać stan linii wejściowych
Start). CTS, DSR, DCD i RI ustaw przynajmniej
W pierwszej linii zadeklarowaliśmy ad- na jednym z wyjść wyjść napięcie dodat-
res bazowy naszego wolnego portu, do nie przełączniki trzeba zasilić napięciem
którego jest dołączony układzik testowy. dodatnim. To napięcie zostanie podane
Ten adres to 3F8. Znak & wskazuje że przez diodę(y) na przełączniki. W zależ-
jest to tak zwana stała liczbowa, a litera ności od stanu przełączników, na po-
H przez adresem 3F8 że jest to liczba szczególnych wejściach pojawi się albo
szesnastkowa (Hexadecimal). Jeśli ktoś napięcie dodatnie (przełącznik zwarty), al-
wykorzystuje port o innym adresie bazo- bo napięcie masy (przełącznik zamknię-
ty). Odczytaj zawartość rejestru spod ad-
36 ELEKTRONIKA DLA WSZYSTKICH 6/97
Wyszukiwarka
Podobne podstrony:
porty komputeraSieci komputerowe wyklady dr FurtakInformacja komputerowaANALIZA KOMPUTEROWA SYSTEMÓW POMIAROWYCH — MSESciaga pl Podział drukarek komputerowychJedel J cyberatak na portyGenius nowe głośniki dla komputerowych melomanówJak oceniać pracę komputerową uczniówPrzydatne wpisy do rejestru na komputerach klienta uzupełniePorady komputerowe 38Wstęp do pakietu algebry komputerowej Maple4 Sieci komputerowe 04 11 05 2013 [tryb zgodności]Komputery PC dla bystrzakówkomputerSieci komputerowe cw 1więcej podobnych podstron