Atari SIO - Atari SIO

Szeregowe we/wy Atari (SIO)
Atari-800-Computer-Port-Side.jpg
Porty Atari 800 z portem SIO drugi od lewej.
Rodzaj magistrala szeregowa
Projektant Joe Decuir / Atari Inc.
Zaprojektowany 1978 ; 43 lata temu ( 1978 )
Producent Atari Inc.
Wytworzony 1979 do 1992
Możliwość podłączenia na gorąco W teorii
Zewnętrzny tak
Szpilki 13
Złącze Wariant D-subminiaturowy
Sygnał danych Szeregowy dwukierunkowy
Szerokość 8 + start/stop = 10
Szybkość transmisji ~120 kbit/s maksymalnie
Maks. urządzenia 256 maksymalnie
8 w użyciu
Protokół Seryjny
Pin 1 ZEGAR Wejście zegara
Przypnij 2 WYŁĄCZENIE Wyjście zegara
Przypnij 3 DANE Wprowadzanie danych
Pin 4 GND Ziemia
Przypnij 5 WYJŚCIE DANYCH Wyjście danych
Pin 6 GND Ziemia
Pin 7 KOMENDA Komenda
Pin 8 SILNIK Kontrola silnika
Pin 9 KONTYNUOWAĆ Kontynuować
Pin 10 +5V +5V/Gotowy
Pin 11 AUDIOIN Wejście audio
Pin 12 +12V +12V (tylko 400/800)
Pin 13 PRZERWANIE Przerwać

Seryjny Input / Output System, powszechnie znany jako SIO , była zastrzeżona autobus obwodowych i związanego z nimi oprogramowania stosy protokołów używanych na Atari 8-bitowej rodziny , aby zapewnić najbardziej wejścia / wyjścia obowiązki dla tych komputerów. W przeciwieństwie do większości systemy I / O z epoki, takich jak RS-232 , SIO zawarte lekkim protokołem, które pozwoliły wielu urządzeń mają być dołączone do jednego łańcuchowo portu, który wspierany dziesiątki urządzeń. Obsługuje również operacje typu plug-and-play . Projektant SIO, Joe Decuir , przypisuje swoją pracę nad systemem jako podstawą USB .

SIO został opracowany w celu umożliwienia rozbudowy bez użycia wewnętrznych gniazd kart, jak w Apple II , ze względu na problemy z FCC nad zakłóceniami radiowymi . Wymagało to, aby był dość elastyczny pod względem obsługi urządzeń. Urządzenia korzystające z interfejsu SIO obejmowały drukarki, stacje dyskietek, magnetofony, modemy i skrzynki rozszerzeń. Niektóre urządzenia miały sterowniki oparte na pamięci ROM, które zostały skopiowane na komputer hosta podczas uruchamiania, umożliwiając obsługę nowych urządzeń bez wbudowanej obsługi wbudowanej w sam komputer.

SIO wymagało logiki w urządzeniach peryferyjnych do obsługi protokołów, aw niektórych przypadkach wymagana była znaczna ilość mocy obliczeniowej - na przykład stacja dyskietek Atari 810 zawierała technologię MOS 6507 . Dodatkowo duże niestandardowe złącze było drogie. To podniosło koszty systemu SIO, a Decuir obwinia to za „zatopienie systemu”. W ciągu 8-bitowej historii nieudane próby obniżenia kosztów systemu.

Nazwa „SIO” właściwie odnosi się tylko do tych sekcji systemu operacyjnego, które obsługiwały wymianę danych, w dokumentacji Atari sama magistrala to po prostu „szyna szeregowa” lub „magistrala interfejsowa”, choć czasami jest to również określane jako SIO. W powszechnym użyciu SIO odnosi się do całego systemu, od systemu operacyjnego po magistralę, a nawet fizyczne złącza.

Historia

Problem FCC

System SIO ostatecznie zawdzięcza swoje istnienie przepisom FCC dotyczącym dopuszczalnej ilości zakłóceń RF, które mogą wyciekać z dowolnego urządzenia bezpośrednio generującego analogowe sygnały telewizyjne . Reguły te wymagały bardzo małych wycieków i musiały przejść obszerny zestaw testów. Zasady te przechodziły zmiany w okresie, gdy grupa Atari Grass Valley projektowała maszynę Colleen, która miała stać się Atari 800.

Apple II , jeden z niewielu gotowych maszyn, które podłączone do telewizora w tamtej epoce, unikał ten problem nie w tym modulator RF w komputerze. Zamiast tego Apple zawarł umowę z lokalną firmą elektroniczną, M&R Enterprises, na sprzedaż modulatorów wtyczek pod nazwą Sup'R'Mod . Oznaczało to, że technicznie Apple nie generowało sygnałów telewizyjnych i nie musiało przechodzić testów FCC. Jeden z głównych dostawców Atari, Sears , uważał, że nie jest to odpowiednie rozwiązanie dla ich gotowej sprzedaży, więc aby spełnić wymagania dotyczące zakłóceń, zamknęli cały system w bloku odlewanym z aluminium o grubości 2 mm.

Colleen pierwotnie miała być konsolą do gier , następcą Atari 2600 . Sukces Apple II doprowadził do zmiany pozycji systemu na komputer domowy , a rynek ten wymagał urządzeń peryferyjnych. W maszynach takich jak Apple II urządzenia peryferyjne były obsługiwane przez umieszczenie karty adaptera w jednym z wewnętrznych gniazd kart maszyny, przeprowadzenie kabla przez otwór w obudowie i podłączenie urządzenia do tego kabla. Otwór wystarczająco duży na taki kabel oznaczałby, że Colleen nie przejdzie testów RF, co stanowi poważny problem. Dodatkowo, konwekcyjne chłodzenie kart byłoby bardzo trudne.

Przekierowanie TI

Podczas wizyty na początku 1978 roku sprzedawca Texas Instruments (TI) zademonstrował system składający się z kabla światłowodowego z nadajnikami-odbiornikami uformowanymi na obu końcach. Joe Decuir zasugerował, że mogliby użyć tego do wysłania sygnału wideo do zewnętrznego modulatora RF, który byłby tak prosty w użyciu, jak kabel koncentryczny potrzebny do doprowadzenia sygnału do telewizora. Teraz komputer mógł mieć normalne gniazda; podobnie jak Apple II, część RF byłaby całkowicie zewnętrzna i mogłaby być testowana samodzielnie, niezależnie od komputera.

Kiedy Decuir wyjaśnił swoją koncepcję, „oczy prawie wyskoczyły”. Zespół Grass Valley nie wiedział, że TI był w tym czasie w trakcie opracowywania TI-99/4 i miał ten sam problem z wyjściem RF. Kiedy Decuir później wyjaśnił ten pomysł swojemu szefowi, Wade Tuma, Tuma odpowiedział, że „Nie, FCC nigdy nie pozwoli nam uciec z tego wyczynu”. Okazało się to prawdą; TI wykorzystało pomysł Decuira, a kiedy przedstawili go FCC w 1979 roku, odrzucili go z miejsca. TI musiało przeprojektować swój system, a wynikające z tego opóźnienie oznaczało, że Atari jako pierwsze trafiły na rynek.

SIO

Po utrudnieniu tej ścieżki dostępu do gniazd na karty, Decuir powrócił do problemu zapewnienia rozbudowy poprzez jakiś system zewnętrzny.

Do tego czasu wprowadzono znaczną ilość pracy nad wykorzystaniem układu POKEY w Atari do uruchomienia magnetofonu poprzez bezpośrednie wyprowadzanie dźwięków, które byłyby nagrywane na taśmę. Zdano sobie sprawę, że dzięki odpowiednim modyfikacjom POKEY może ominąć sprzęt do konwersji cyfrowo-analogowej i bezpośrednio sterować wyjściem TTL . Aby wytworzyć magistralę cyfrową TTL, system SIO wykorzystał dwa z czterech kanałów dźwiękowych POKEY do wytwarzania stałych tonów, które reprezentowały sygnały zegara o danej częstotliwości. Do wysyłania i odbierania danych użyto bufora jednobajtowego; za każdym razem, gdy sygnał zegara się przełączał, jeden bit z bufora byłby odczytywany lub zapisywany. Gdy wszystkie osiem bitów zostało odczytanych lub zapisanych, system generował przerwanie, które uruchamiało system operacyjny do odczytu lub zapisu większej ilości danych.

W przeciwieństwie do interfejsu kasetowego, w którym normalnie używane jest tylko jedno urządzenie, zewnętrzny port rozszerzeń musiałby obsługiwać więcej niż jedno urządzenie. Aby to wspierać, opracowano prosty protokół i dodano kilka nowych pinów do oryginalnego prostego portu kasety. Najważniejszym z nich był pin COMMAND, który uruchamiał urządzenia do nasłuchiwania 5-bajtowej wiadomości, która aktywowała jedno z urządzeń na magistrali i żądała danych (lub wysyłała mu polecenia). Dodali także piny PROCEED i INTERRUPT, które mogą być używane przez urządzenia do ustawiania bitów w rejestrach kontrolnych hosta, ale nie były one używane we wdrożonym systemie. Podobnie sygnały taktowania generowane przez POKEY były wysyłane na piny CLOCKOUT i CLOCKIN, chociaż protokół asynchroniczny ich nie używał.

Opis

Sprzęt komputerowy

W złączu SIO zastosowano sprężynujące metalowe listki, aby zapewnić stabilne połączenie z pinami w urządzeniach. Szczeliny wycięte w łączniku dają swobodę ruchu liściom.
Atari 850 wyposażono w drukarkę Centronics i porty szeregowe RS-232 do podłączenia urządzeń innych producentów. Typowe dla urządzeń SIO, ma zarówno porty wejściowe, jak i wyjściowe, aby umożliwić łączenie łańcuchowe.

Magistrala SIO została zaimplementowana przy użyciu niestandardowego układu 13-pinowego złącza D (chociaż nie D-subminiaturowego ) ze złączami męskimi na urządzeniach i złączami żeńskimi na obu końcach kabli. Złącza były fizycznie wytrzymałe, aby umożliwić wielokrotne użycie, z bardzo mocnymi pinami w gnieździe urządzenia i złączami sprężynowymi w kablach, w przeciwieństwie do pasowania na wcisk, jak w typowym złączu D. Większość urządzeń posiadała porty wejścia i wyjścia, aby umożliwić połączenie szeregowe urządzeń peryferyjnych, chociaż Atari 410 Program Recorder musiał być umieszczony na końcu łańcucha, a zatem nie zawierał portu wyjściowego.

Komunikacja

SIO było kontrolowane przez chip POKEY Atari , który zawierał szereg zegarów ogólnego przeznaczenia. Cztery z nich umożliwiły precyzyjną kontrolę nad szybkościami taktowania i miały być używane do odtwarzania dźwięku poprzez podłączenie ich do przetwornika analogowo-cyfrowego (A-D), a następnie zmieszanie ich z sygnałem telewizyjnym przed wejściem do RF modulator. Zostały one ponownie wykorzystane jako podstawa systemu SIO, używane jako zegary w niektórych trybach lub do bezpośredniego wytwarzania sygnałów wyjściowych w innych.

System zawierał pojedynczy „rejestr przesuwny”, który służył do półautomatyzacji większości transferów danych. Składało się to z pojedynczej 8-bitowej wartości, najpierw LSB, która była używana do buforowania odczytów i zapisów. Użytkownik ma do nich dostęp poprzez dwie komórki pamięci znane jako SEROUT do zapisu i SERIN do odczytu. Były to „rejestry cieniowe”, lokalizacje w pamięci RAM, które odzwierciedlały rejestry w różnych układach pomocniczych, takich jak POKEY. Bity danych zostały obramowane pojedynczym bitem startu zerowego i jednym bitem stopu i nie zastosowano parzystości.

Aby zapisać dane w trybie synchronicznym, główne kanały timera POKEY zostały ustawione na odpowiednią częstotliwość zegara, powiedzmy 9600 bps. Wszelkie dane zapisane w rejestrze SEROUT były następnie wysyłane po jednym bicie za każdym razem, gdy sygnał osiągał wysoki poziom. Zostało ustawione w czasie, więc sygnał powrócił na niskim poziomie w połowie bitu. Gdy wszystkie 10 bitów (w tym start i stop) zostały wysłane, POKEY wysłał maskowalne przerwanie do CPU, aby wskazać, że jest gotowy na kolejny bajt. Przy odczycie, jeśli kolejny bajt danych został odebrany przed odczytaniem SERIN, trzeci bit SKSTAT został ustawiony na true, aby wskazać przepełnienie. Poszczególne odczytywane bity były również przesyłane do czwartego bitu SKSTAT po ich przybyciu, umożliwiając bezpośredni odczyt danych bez oczekiwania na zakończenie ramkowania.

System oficjalnie obsługiwał prędkości do 19 200 bps, ale ta prędkość została wybrana tylko dlatego, że analizator protokołów inżyniera Atari osiągnął szczyt przy tej prędkości. System był faktycznie zdolny do znacznie większej wydajności. Wiele urządzeń innych producentów, zwłaszcza dyskietek , używało niestandardowego sprzętu i sterowników, aby znacznie zwiększyć prędkość transmisji do 72 000 bps.

Chociaż system miał piny CLOCKOUT i CLOCKIN, które teoretycznie mogły być używane do komunikacji synchronicznej, w praktyce używany był tylko system asynchroniczny. W tym przypadku prędkość bazowa została ustawiona tak jak powyżej w POKEY, która będzie podążać za zmianami do 5% od tej stawki bazowej. To znacznie ułatwiło pracę z prawdziwymi urządzeniami, w których problemy mechaniczne lub elektryczne powodowały niewielkie zmiany szybkości w czasie. Jednym z przykładów był magnetofon, gdzie rozciągnięcie taśmy mogło zmienić prędkość, innym jest modem, tam system zdalny może nie być dokładnie taktowany do określonej prędkości.

Kontrola urządzenia

System SIO umożliwiał łączenie urządzeń w łańcuch, a zatem wymagał pewnego sposobu identyfikacji, że informacje na różnych pinach danych były przeznaczone dla konkretnego urządzenia w łańcuchu. Udało się to osiągnąć za pomocą pinu COMMAND.

Pin COMMAND był zwykle trzymany wysoko, a kiedy został pociągnięty nisko, urządzenia w autobusie musiały nasłuchiwać „ramki poleceń”. Składał się z 5-bajtowego pakietu; pierwszy bajt to identyfikator urządzenia, drugi to numer polecenia specyficzny dla urządzenia, a następnie dwa pomocnicze bajty danych, które mogą być wykorzystane przez sterownik w dowolnym celu. Po tych czterech następował bajt sumy kontrolnej. Szpilka COMMAND ponownie uniosła się w górę, gdy ramka była kompletna.

Po odebraniu pakietu oczekiwano odpowiedzi urządzenia określonego w pierwszym bajcie. Składał się z pojedynczego bajtu zawierającego znak ASCII, „A” dla potwierdzenia, jeśli pakiet został prawidłowo zdekodowany, a suma kontrolna pasowała, „N” w przeciwnym razie. W przypadku poleceń, które wymieniały dane, po ramce polecenia następowałaby „ramka danych” z lub do wybranego urządzenia. Ta ramka byłaby następnie potwierdzona przez odbiorcę literą „C” dla zakończenia lub „E” dla błędu. Ponieważ każdy pakiet 128 bajtów danych wymagał kolejnej ramki poleceń przed wysłaniem następnej, na przepustowość wpływały problemy z opóźnieniami; dysk Atari 810 normalnie używał prędkości 19 200 bps, ale był ograniczony do około 6000 bps z powodu narzutu.

Urządzenia ponumerowano mechanicznie, zwykle przy użyciu małych mikroprzełączników . Każda klasa urządzeń otrzymała inny zestaw 16 potencjalnych liczb w oparciu o liczby szesnastkowe, na przykład zakres 30 USD dla dysków i 40 USD dla drukarek. Jednak każdy sterownik może obsługiwać tyle lub mniej urządzeń, ile chce; sterownik drukarki Atari 820 obsługiwał tylko jedną drukarkę o numerze 40 USD, podczas gdy sterowniki dysków mogły obsługiwać cztery dyski o numerach od 31 do 34 USD.

Użycie kasety

Oryginalny 410 został zastąpiony znacznie mniejszym 1010 w erze XL.

Projektowanie tego, co stało się SIO, zaczęło się jako system do łączenia się z magnetofonami kasetowymi, wykorzystujący sprzęt dźwiękowy do generowania odpowiednich tonów. Ta zdolność została zachowana w wersjach produkcyjnych, dzięki czemu Atari 410 i jego następcy są stosunkowo prostymi urządzeniami.

Po ustawieniu do obsługi kasety, wyjścia z kanału 1 i 2 POKEY były wysyłane do DATAOUT, a nie do pinów zegara. Dwa kanały zostały ustawione tak, aby wytwarzały tony, które można było bezpiecznie nagrywać na taśmie, 3995 Hz dla zera było w kanale POKEY 2, a 5326 Hz dla jedynki było w kanale 1. W tym trybie, gdy POKEY odczytywał bity z SERIN , dowolne jedynki powodowały odtwarzanie kanału 1 na bolcu danych, a zer odtwarzały kanał 2. W ten sposób bajt danych na taśmie został przekonwertowany na tony. Czytanie odbywało się jednak w innym systemie, ponieważ w komputerze nie było konwertera A-D. Zamiast tego magnetofony kasetowe zawierały dwa filtry wąskopasmowe dostrojone do dwóch częstotliwości. Podczas odczytu dane wyjściowe jednego lub drugiego z tych filtrów byłyby potwierdzane, gdy bity były odczytywane z taśmy. Zostały one wysłane jako dane cyfrowe z powrotem do komputera hosta.

Ponieważ taśma była narażona na rozciąganie i inne problemy mechaniczne, które mogły przyspieszyć lub spowolnić transport przez głowice, system używał asynchronicznych odczytów i zapisów. Dane były zapisywane w blokach po 132 bajty na rekord, przy czym pierwsze dwa bajty to wzorzec bitowy „01010101 01010101”. Przerwa między rekordami między blokami bez tonów pozwoliła systemowi operacyjnemu wiedzieć, kiedy rozpoczyna się nowy rekord, szukając wiodącego zera. Następnie szybko odczytuje port i mierzy czas przejścia bitów taktowania od 0 do 1 iz powrotem, aby określić dokładną szybkość transmisji danych. Następny bajt był bajtem kontrolnym określającym, czy jest to normalny rekord 128 bajtów danych, krótki blok, czy koniec pliku. Do 128 bajtów danych, po których następuje bajt sumy kontrolnej, w tym wszystko przed sumą kontrolną.

Działaniem dodatkowo sterował dedykowany do tego pin MOTOR w porcie SIO. Gdy ten pin był niski, silnik w decku był wyłączony. Dzięki temu użytkownik mógł nacisnąć przycisk odtwarzania lub odtwarzania i nagrywania bez rozpoczynania ruchu taśmy. Gdy w komputerze zostanie wprowadzone odpowiednie polecenie, SILNIK zostanie potwierdzony i kaseta zacznie się obracać.

Innym dedykowanym pinem był AUDIOIN, który był podłączony bezpośrednio do obwodów wyjściowych dźwięku między konwerterami D-to-A POKEYa a końcowym wyjściem, tak aby każdy sygnał na pinie zmieszał się z dźwiękiem z POKEY (jeśli występuje) i został następnie wysłane do głośnika telewizora. To było podłączone do lewego kanału dźwiękowego w kasecie, podczas gdy prawy kanał był podłączony do pinów danych. Dzięki temu użytkownicy mogli nagrywać normalne dźwięki na lewym kanale, a następnie odtwarzać je przez telewizor. Często łączyło się to z bezpośrednią kontrolą motoryczną w celu stworzenia interaktywnych taśm do nauki języka i podobnych programów. Niektóre firmy programistyczne nagrywają dźwięki lub muzykę na tym kanale, aby proces ładowania był przyjemniejszy.

Zobacz też

Uwagi

Bibliografia

  1. ^ „Wywiad z Joe Decuir” . Muzeum Atari .
  2. ^ Atari - Computer Systems , Atari, Inc. , zarchiwizowane od oryginału w dniu 2015-12-08 , pobrane 2015-01-14
  3. ^ SIO 1980 , s. 1.
  4. ^ a b c d e f g h Decuir .
  5. ^ SIO 1980 , s. 6-7.
  6. ^ B SIO 1980 , s. 13.
  7. ^ SIO 1980 , s. 8.
  8. ^ B SIO 1980 , s. 7.
  9. ^ B c SIO 1980 , s. 6.
  10. ^ SIO 1980 , s. 18.
  11. ^ SIO 1980 , s. 16.
  12. ^ Podręcznik operatora dysku Atari 810 (PDF) (raport techniczny). 1979. s. 6.
  13. ^ "Indus GT Instalacja" .
  14. ^ SIO 1980 , s. 25.
  15. ^ SIO 1980 , s. 28.
  16. ^ B c DERE 1981 , s. Dodatek C.
  17. ^ Victor, John (październik 1982). „Dźwięk podczas ładowania” . Antyczny .

Bibliografia