Tajemnice ATARI

ATARI INACZEJ: ZŁACZE RS-232C


SZTUKA KOMUNIKACJI

    Zdarza się często i to nie tylko w redakcji TA, że trzeba przenieść zbiory pomiędzy ATARI XL/XE a innym komputerem - np. klasy PC. Najczęściej dotyczy to zresztą zbiorów tekstowych. Małe ATARI doskonale nadaje się do pisania tekstów, zwłaszcza pod zarządem dobrego edytora. Wyjście ze swą twórczością w szerszy świat możliwe bywa często tylko poprzez komputery PC. Drogi prowadzące do tego celu są dwie. Jedna polega na przenoszeniu zbiorów tekstowych przez dyskietki 5,25". Po skopiowaniu zbiorów na podwójną gęstość zapisu ATARI, trzeba użyć swojej lub zaprzyjaźnionej stacji z rozszerzeniem TOMS, można też skorzystać ze wskazówek zasygnalizowanych w TA 8/91. Druga możliwość to coś znacznie bliższego konwersacji między komputerami - wymiana informacji na bieżąco, po kabelku.

    W czasie normalnej pracy naszego komputera całe 8 bitów pojawia się jednocześnie tam gdzie trzeba i tak też wędrują one na niewielkie odległości poza komputer, np. do drukarki pracującej w standardzie Centronics. Wszystko dzieje się przy tym na poziomie napięcia 5V niepodzielnie królującego w komputerze. Taki rodzaj równoległej komunikacji z urządzeniem peryferyjnym ma jednak swoje wady. Jeśli komunikujemy się na większe odległości, pojawia się problem zakłóceń oraz kosztu kabla z kilkunastoma żyłami. Zupełnie zresztą nie do pomyślenia jest przesłanie całego stada bitów jednocześnie przez modem telefoniczny. Na te kłopoty jedna jest rada: szeregowe przesyłanie informacji. Sposób stary jak telekomunikacja, bo telegraf praszczura Morse'a, a potem dalekopis też wykorzystują ten właśnie sposób.

    Informacja wędruje tu między nadawcą i odbiorcą kolejno bit po bicie, najczęściej z szybkością od 50 do 19200 bodów (czyli bitów na sekundę). Może się to dziać synchronicznie lub asynchronicznie. W pierwszym przypadku jednocześnie z informacją, po osobnej linii wysyłany jest sygnał "zegara" taktującego, który ułatwia bezbłędne dekodowanie informacji. Według drugiego sposobu na początku przesyłu, na linii będącej w stanie gotowości (zwykle stan "1") pojawia się tzw. bit startu (stan "0"), który zapowiada "teraz idzie bajt!". Od tej chwili odbiornik rozpoczyna odczytywanie stanu linii w ustalonych odstępach czasu i na tej podstawie odtwarza wysiany bajt. Po bitach informacji można jeszcze wstawić tzw. bit parzystości, który pomaga w stwierdzeniu, czy to, co odebraliśmy nie uległo po drodze przekłamaniu. Jeśli liczba jedynek w informacji była parzysta, ma on wartość "0", jeśli zaś była nieparzysta, to "l". Gdy zatem w odbiorniku suma wszystkich jedynek (bity informacji i parzystości) jest parzysta, to są duże szansę, że wszystko jest OK. Na końcu sekwencji pojawić się musi bit stopu. Ma on za zadanie ponownie wprowadzić linię w stan gotowości. Daje też przy okazji możliwość upewnienia się, że transmisja zachodzi bezbłędnie. Linia musi pozostawać w tym stanie co najmniej przez czas trwania l lub 2 bitów. Potem wszystko może zacząć się od nowa.


    Na rys. 1 pokazano przebiegi czasowe na linii asynchronicznej transmisji szeregowej. Taki sposób komunikacji wymaga wcześniejszego uzgodnienia między nadawcą i odbiorcą parametrów transmisji. Dotyczy to szybkości ("Baud rate"), sprawdzania parzystości (lub nie) i liczby bitów informacyjnych (od 5 do 8) oraz stopu (1 lub 2). Zwykle nie nastręcza to większych kłopotów, bo informacja jest krótka. W przypadku najprostszym wystarczą do przesyłu dwa przewody (sygnał i masa). W praktyce są osobne linie do nadawania i odbioru uzupełnione jeszcze często o 2-6 linii pomocniczych pozwalających na bardziej precyzyjną komunikację. Już po rozpoczęciu transmisji odbiornik może się bowiem "nie wyrabiać" z zagospodarowaniem otrzymywanych informacji i dobrze jest, gdy może poprosić nadajnik o chwilowe wstrzymanie transmisji.

INTERFACE RS232

    W czasopismach spotyka się niekiedy informacje o interface do ATARI pozwalających na transmisję wg standardu RS232, jak np ATARI 850 lub P:R:CONNECTION, ale nie zdarzyło mi się oglądać żadnego z nich w akcji. Zadanie, jakie sobie postawiłem, to prosta konstrukcja umożliwiająca komunikację między ATARI XL/XE (przez złącze joysticka 1) a komputerem klasy PC. Duże komputery wyposażone są z reguły w interface pracujący w standardzie RS232C. Narzuca to konieczność dopasowania sygnałów dostępnych na wyjściu ATARI XL/XE do standardu narzuconego przez wielkiego brata. Procedury nadawania i odbioru załatwia program, ale do dopasowania poziomów napięć potrzebne jest rozwiązanie sprzętowe. Problem bowiem w tym, że w standardzie RS232C na linii występują napięcia +/-12V, a żeby było łatwiej, to logicznej jedynce odpowiada -12V, a zeru +12V. Jedyne napięcie zasilające, jakie mamy do dyspozycji, to +5V na gniazdku joystickowym ATARI. Zapowiadać by się mogła dość strzelista konstrukcja z przetwornicą napięcia. Jednak nowoczesna technika oszczędza nam na szczęście trudów. Przy zastosowaniu współczesnych "kości" jest to zadanie proste i przyjemne.

Na rys.2 przedstawiony jest schemat ideowy interface RS232C. Wtyk 9-końcówkowy Wl przyłącza się do gniazda joysticka 1, zaś 25-końcówkowy W2 - do stosownego gniazda w komputerze PC.

    Zastosowany tu układ scalony TC232CPE łączy w sobie funkcje dwóch przetwornic napięcia oraz inwerterów przesuwających przy okazji poziomy z zakresu 0/+5V na +/-12V (dwa nadajniki linii) oraz z +/-12V z powrotem na 0/+5V (dwa odbiorniki linii). Układ ten może występować też pod innymi oznaczeniami literowymi, np. ICL232. Obsługuje on linie nadawania i odbioru informacji (TxD oraz RxD) oraz dwie linie sygnałów pomocniczych DTR i CTS. Rola tych ostatnich polega na tym, że w czasie transmisji można sprawdzać, czy odbiorca informacji jest już gotów do przyjęcia kolejnego bajtu. Zastosowany został przełącznik, który umożliwia w jednym położeniu zwarcie tych linii ze sobą, w drugim zaś - ich normalne funkcjonowanie.

    Układ najwygodniej jest zmontować na płytce drukowanej umieszczonej w niewielkiej obudowie plastikowej. Kabel zakończony 9-stykowym wtykiem "żeńskim" (do gniazda joysticka ATARI) powinien mieć co najwyżej 50 cm. Drugi kabel wychodzący z interface do gniazda (np. COM1) komputera PC może być znacznie dłuższy - nawet kilkanaście metrów. Kable trzeba zamocować w obudowie interface, aby ich mocniejsze pociągnięcie nie narażało na uszkodzenie połączeń elektrycznych. Uruchomienie prawidłowo połączonego układu elektronicznego nie powinno nastręczać najmniejszych trudności. Nie są też potrzebne żadne bardziej wyrafinowane techniki pomiarowe. Wystarczy miernik uniwersalny. Na początek bezpieczniej jest przyłączyć układ do zewnętrznego źródła zasilania +5V. Wejścia układu pracujące na poziomie TTL (końcówki 3 i 4 wtyku W1) trzeba przyłączać na przemian do napięcia +5V i do masy obserwując poziomy napięcia na wyjściach. Są to odpowiednio końcówki 315 wtyku W2. Poziomy napięć powinny się tam zmieniać od -12V do +12V. Przy +5V na wejściu ma być -12V na wyjściu, zaś przy OV na wejściu ma być +12V na wyjściu (układy nadajników linii są przy okazji inwerterami). Jeśli wszystko jest w porządku, oznacza to prawidłową pracę przetwornicy napięcia oraz jednej pary inwerterów-nadajników linii. Sprawdzenie drugiej pary inwerterów, tj. odbiorników linii najłatwiej zrealizować w podobnym układzie aplikacyjnym. Wyjścia sprawdzonych już nadajników linii łączymy z wejściami odbiorników. Połączyć trzeba w tym celu we wtyku W2 końcówki 3 z 2 oraz 5 z 20. Wówczas zmiany poziomów 0/+5V na końcówkach 314 wtyku W1 powinny wywoływać takie same zmiany na końcówkach odpowiednio 1 i 2 tego wtyku. Wspomniane napięcie 12V trzeba traktować orientacyjnie - zwykle jest to ok. 9V, co w zupełności wystarcza do prawidłowej pracy. Układy odbiorcze mają ponoć działać prawidłowo już od +/-3V. Po takim sprawdzeniu i usunięciu połączeń dokonywanych w czasie testowania, można już włączyć wtyki interface do odpowiednich gniazd w komputerach. Nie od rzeczy będzie przypomnieć, że wszelkie manipulacje z wtykami muszą być bezwzględnie poprzedzone wyłączeniem obu komputerów.

    Literatura:

1. K. Badźmirowski i in. "Układy i systemy mikroprocesorowe" cz.1,2; WNT Warszawa 1990
2. S. Piotrowski: Interfejs szeregowy w IBM PC XT/AT; Mikroklan nr 6(9) 1987

    Wykaz podzespołów:

US - układ scalony TC232CPE lub odpowiednik
C1,C2,C3 - 10uF
C4, C5 - 4.7uF
W1, W2 - wtyki 9- i 25-stykowe

Witold Prokopowicz




Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2002