Atari SIO - Atari SIO

Atari Serial I / O (SIO)
Atari-800-Computer-Port-Side.jpg
Porty Atari 800 s portem SIO druhý zleva.
Typ sériová sběrnice
Návrhář Joe Decuir / Atari Inc.
Navrženo 1978 ; Před 43 lety ( 1978 )
Výrobce Atari Inc.
Vyrobeno 1979 až 1992
Připojitelné za provozu teoreticky
Externí Ano
Špendlíky 13
Konektor Varianta D-subminiatury
Datový signál Obousměrný seriál
Šířka 8 + start / stop = 10
Přenosová rychlost ~ 120 kbit / s maximum
Max. zařízení 256 maximálně
8 v provozu
Protokol Seriál
Pin 1 CLOCKIN Vstup hodin
Pin 2 CLOCKOUT Výstup hodin
Kolík 3 DATAIN Zadávání dat
Pin 4 GND Přízemní
Kolík 5 ÚDAJE Výstup dat
Kolík 6 GND Přízemní
Pin 7 PŘÍKAZ Příkaz
Kolík 8 MOTOR Ovládání motoru
Kolík 9 POKRAČOVAT Pokračovat
Kolík 10 + 5V + 5 V / Připraveno
Kolík 11 AUDIO VSTUP Audio vstup
Kolík 12 + 12V + 12V (pouze 400/800)
Kolík 13 PŘERUŠIT Přerušit

Systém sériového vstupu / výstupu , všeobecně známý jako SIO , byl proprietární periferní sběrnice a související softwarové protokoly používané v 8bitové rodině Atari k zajištění většiny povinností vstupu a výstupu pro tyto počítače. Na rozdíl od většiny I / O systémů té doby, jako je RS-232 , zahrnoval SIO lehký protokol, který umožňoval připojení více zařízení k jednomu řetězovému portu, který podporoval desítky zařízení. Podporovala také operace plug-and-play . Návrhář SIO, Joe Decuir , připisuje svou práci na systému jako základ USB .

SIO byl vyvinut s cílem umožnit rozšíření bez použití interních slotů pro karty jako v Apple II , kvůli problémům s FCC v důsledku rádiového rušení . To vyžadovalo, aby byla poměrně flexibilní, pokud jde o podporu zařízení. Zařízení, která používala rozhraní SIO, zahrnovala tiskárny, disketové mechaniky, kazetové mechaniky, modemy a rozšiřovací krabice. Některá zařízení měla ovladače založené na ROM, které byly při spuštění zkopírovány do hostitelského počítače, což umožňovalo podporu nových zařízení bez nativní podpory zabudované do samotného počítače.

SIO vyžadovalo logiku periferií, aby podporovalo protokoly, a v některých případech bylo zapotřebí značné množství procesního výkonu - disketová jednotka Atari 810 obsahovala například MOS Technology 6507 . Velký zákaznický konektor byl navíc drahý. To zvýšilo náklady na systém SIO a Decuir to viní z „potopení systému“. Během 8bitové historie došlo k neúspěšnému úsilí o snížení nákladů na systém.

Název „SIO“ správně odkazuje pouze na ty části operačního systému, které zajišťovaly výměnu dat, v dokumentaci Atari je samotná sběrnice jednoduše „sériová sběrnice“ nebo „sběrnice rozhraní“, i když se někdy také označuje jako SIO. Běžně se SIO týká celého systému od operačního systému po sběrnici a dokonce i fyzických konektorů.

Dějiny

Problém FCC

Systém SIO nakonec vděčí za svou existenci pravidlům FCC o přípustném množství vysokofrekvenčního rušení, které by mohlo unikat z jakéhokoli zařízení, které přímo generuje analogové televizní signály. Tato pravidla vyžadovala velmi malé množství úniků a musela projít rozsáhlou testovací sadou. Tato pravidla procházela revizemi během období, kdy skupina Atari Grass Valley navrhovala stroj Colleen, který by se stal Atari 800.

Apple II , jeden z mála předpřipravených stroje, které připojené k televizi v té době, že tento problém se vyhnout tím, že včetně RF modulátor do počítače. Místo toho Apple sjednal dohodu s místní elektronickou společností M&R Enterprises s prodejem zásuvných modulátorů pod názvem Sup'R'Mod . To znamenalo, že Apple technicky negeneroval televizní signály a nemusel podstoupit testování FCC. Jeden z hlavních prodejců společnosti Atari, společnost Sears , se domnívala, že to není vhodné řešení pro jejich běžný prodej, a tak pro splnění požadavků na rušení obalili celý systém do litinového hliníkového bloku o tloušťce 2 mm.

Colleen byla původně zamýšlena jako herní konzole , nástupce Atari 2600 . Úspěch Apple II vedl k přemístění systému jako domácího počítače a tento trh vyžadoval periferní zařízení. Na počítačích, jako je Apple II, byla periferní zařízení podporována umístěním karty adaptéru do jednoho z interních slotů na zařízení, protažením kabelu otvorem v pouzdře a připojením zařízení k tomuto kabelu. Díra dostatečně velká pro takový kabel by znamenala, že by Colleen neprošla RF testy, což představovalo vážný problém. Konvekční chlazení karet by bylo navíc velmi obtížné.

Odklon TI

Během návštěvy počátkem roku 1978 předvedl prodejce společnosti Texas Instruments (TI) systém skládající se z kabelu z optických vláken s vysílači a přijímači vylisovanými do obou konců. Joe Decuir navrhl, že by to mohli použít k odeslání videosignálu do externího RF modulátoru, což by bylo stejně snadné jako koaxiální kabel, který je stejně potřeba k přenosu signálu do televize. Nyní by počítač mohl mít normální sloty; stejně jako Apple II, RF část by byla zcela externí a mohla by být testována samostatně samostatně od počítače.

Když Decuir vysvětlil svůj koncept, prodavačovi „oči téměř vyskočily“. Neznámý pro tým Grass Valley, byl TI v té době uprostřed vývoje TI-99/4 a čelil stejnému problému s RF výstupem. Když Decuir později vysvětlil tuto myšlenku svému šéfovi Wade Tumovi, Tuma odpověděl, že „Ne, FCC by nás nikdy nenechalo utéct s tímto trikem.“ To se ukázalo jako pravda; TI využila Decuirův nápad, a když jej v roce 1979 vzali do FCC, odmítli jej z ruky. TI muselo přepracovat svůj systém a výsledné zpoždění znamenalo, že Atari se dostali na trh jako první.

SIO

S touto cestou, jak povolit sloty na karty stymied, se Decuir vrátil k problému zajištění rozšiřování prostřednictvím nějakého externího systému.

Do této doby byla provedena značná práce na používání čipu Atari POKEY ke spuštění kazetového magnetofonu přímým vydáváním zvuků, které by byly zaznamenány na pásku. Bylo zjištěno, že s vhodnými úpravami může POKEY obejít hardware digitálně-analogového převodu a přímo řídit výstup TTL . K výrobě digitální sběrnice TTL použil systém SIO dva ze čtyř zvukových kanálů POKEY k produkci stálých tónů, které představovaly hodinové signály dané frekvence. K odesílání a přijímání dat byla použita jednobajtová vyrovnávací paměť; pokaždé, když se přepnul hodinový signál, jeden bit z vyrovnávací paměti by byl přečten nebo zapsán. Když bylo přečteno nebo zapsáno všech osm bitů, systém vygeneroval přerušení, které spustilo operační systém na čtení nebo zápis více dat.

Na rozdíl od kazetového rozhraní, kde by se normálně používalo pouze jedno zařízení, by externí rozšiřovací port musel být schopen podporovat více než jedno zařízení. Aby to bylo možné podpořit, byl vyvinut jednoduchý protokol a bylo přidáno několik nových kolíků do původního portu jednoduché kazety. Nejdůležitější z nich byl pin COMMAND, který spustil zařízení k poslechu 5bajtové zprávy, která aktivovala jedno ze zařízení na sběrnici a požádala ji o data (nebo jí poslala příkazy). Také přidali piny PROCEED a INTERRUPT, které mohly zařízení použít k nastavení bitů v řídicích registrech v hostiteli, ale tyto nebyly v nasazeném systému použity. Podobně byly časovací signály generované POKEY odeslány na piny CLOCKOUT a CLOCKIN, ačkoli asynchronní protokol je nepoužíval.

Popis

Hardware

Konektor SIO používal odpružené kovové listy k pevnému spojení s kolíky v zařízeních. Štěrbiny vyříznuté do konektoru dávají listím prostor k pohybu.
Atari 850 poskytoval tiskárnu Centronics a sériové porty RS-232 pro připojení k zařízením třetích stran. Typické pro zařízení SIO má vstupní i výstupní porty, které umožňují řetězení.

SIO sběrnice byla implementována pomocí vlastního 13kolíkového uspořádání D-konektoru (i když ne D-subminiaturního ) se zástrčkami na zařízeních a zásuvkami na obou koncích kabelů. Konektory byly fyzicky robustní, aby umožňovaly opakované použití, s velmi silnými kolíky v zásuvce zařízení a odpruženými konektory v kabelech, na rozdíl od třecího uložení jako u typického D-konektoru. Většina zařízení měla dovnitř a ven porty, které umožňovaly řetězení periferií, ačkoli programový rekordér Atari 410 musel být umístěn na konci řetězce, a proto neobsahoval výstupní port.

komunikace

SIO byl řízen čipem POKEY Atari , který zahrnoval řadu časovačů pro všeobecné použití. Čtyři z nich umožňovaly jemnou kontrolu nad časovacími rychlostmi a měly být použity pro zvukový výstup jejich připojením k analogově-digitálnímu převodníku (A-to-D) a jejich smícháním do televizního signálu před vstupem do RF modulátor. Ty byly znovu zamýšleny jako základ systému SIO, který se v některých režimech používal jako hodiny nebo k produkci výstupních signálů přímo v jiných.

Systém zahrnoval jediný „posuvný registr“, který byl použit k poloautomatizaci většiny datových přenosů. To sestávalo z jediné 8bitové hodnoty, nejprve LSB, která byla použita k vyrovnávací paměti pro čtení a zápis. Uživatel k nim přistupuje prostřednictvím dvou paměťových míst známých jako SEROUT pro zápis a SERIN pro čtení. Jednalo se o „stínové registry“, umístění v paměti RAM, která zrcadlila registry v různých podpůrných čipech, jako je POKEY. Datové bity byly orámovány jediným nulovým počátečním bitem a jediným jednorázovým bitem a nebyla použita žádná parita.

Aby bylo možné zapisovat data v synchronním režimu, byly hlavní kanály časovače POKEY nastaveny na příslušnou frekvenci hodin, například 9600 b / s. Jakákoli data zapsaná do registru SEROUT se poté posílala po bitech pokaždé, když se signál zvýšil. Bylo načasováno, takže se signál uprostřed bitů vrátil nízko. Když bylo odesláno všech 10 bitů (včetně startu a stopu), POKEY poslal maskovatelné přerušení do CPU, aby označil, že je připraven na další bajt. Při čtení, pokud byl před načtením SERIN přijat další bajt dat, byl 3. bit SKSTAT nastaven na true, aby indikoval přetečení. Jednotlivé bity, které byly čteny, byly také odeslány do 4. bitu SKSTAT, jakmile dorazily, což umožňovalo přímé čtení dat bez čekání na dokončení rámování.

Systém oficiálně podporoval rychlosti až 19 200 b / s, ale tato rychlost byla zvolena pouze proto, že analytik protokolu inženýra Atari dosáhl této rychlosti. Systém byl ve skutečnosti schopen dosáhnout mnohem vyššího výkonu. Řada zařízení třetích stran, zejména disketové mechaniky , používaly vlastní hardware a ovladače, aby výrazně zvýšily přenosové rychlosti až na 72 000 b / s.

Ačkoli měl systém piny CLOCKOUT a CLOCKIN, které by teoreticky mohly být použity pro synchronní komunikaci, v praxi byl použit pouze asynchronní systém. V tomto případě byla v POKEY nastavena základní rychlost, jak je uvedeno výše, která by sledovala změny až 5% z této základní sazby. Díky tomu bylo mnohem snazší pracovat se skutečnými zařízeními, kde mechanické nebo elektrické problémy způsobily v průběhu času mírné změny rychlostí. Jedním příkladem byl kazetový magnetofon, kde roztažení pásky mohlo změnit rychlost, dalším je modem, kde nemusí být vzdálený systém přesně taktován na danou rychlost.

Ovládání zařízení

Systém SIO umožňoval řetězení zařízení, a proto vyžadoval určitý způsob identifikace, že informace na různých datových pinech jsou určeny pro konkrétní zařízení v řetězci. Toho bylo dosaženo pomocí kolíku COMMAND.

Kolík COMMAND byl normálně držen vysoko, a když byl vytažen nízko, zařízení na sběrnici byla povinna naslouchat „příkazovému rámci“. To sestávalo z 5bajtového paketu; prvním bajtem bylo ID zařízení, druhým bylo číslo příkazu specifické pro zařízení a poté dva pomocné bajty dat, které mohl řidič použít pro jakýkoli účel. Po těchto čtyřech následoval byte kontrolního součtu. Jakmile byl rám dokončen, kolík COMMAND se opět zvýšil.

Po přijetí paketu se očekávalo, že zařízení zadané v prvním bajtu odpoví. To sestávalo z jediného bajtu obsahujícího znak ASCII, „A“ pro potvrzení, pokud byl paket správně dekódován a kontrolní součet uzavřen, jinak „N“. U příkazů, které si vyměňovaly data, by za příkazovým rámcem následoval „datový rámec“ z nebo do vybraného zařízení. Tento rámec by pak přijímač potvrdil „C“ pro dokončení nebo „E“ pro chybu. Jelikož každý paket 128 datových bytů vyžadoval před odesláním dalšího další rámec příkazů, byla propustnost ovlivněna problémy s latencí; disková jednotka Atari 810 obvykle používala rychlost 19 200 b / s, ale v důsledku režie byla omezena na asi 6 000 b / s.

Zařízení byla vyjmenována mechanicky, obvykle pomocí malých DIP přepínačů . Každá třída zařízení dostala jinou sadu 16 potenciálních čísel na základě hexadecimálních čísel, rozsah 30 $ pro diskové jednotky a 40 $ pro tiskárny. Každý ovladač však mohl podporovat tolik nebo tolik zařízení, kolik chtěl; ovladač tiskárny Atari 820 podporoval pouze jednu tiskárnu s číslem 40 $, zatímco ovladače disků mohly podporovat čtyři jednotky s čísly od 31 do 34 $.

Použití kazety

Původní 410 byl během éry XL nahrazen mnohem menším 1010.

Návrh toho, co se stalo SIO, začal jako systém pro propojení s kazetovými magnetofony pomocí zvukového hardwaru pro generování příslušných tónů. Tato schopnost byla zachována v produkčních verzích, což umožnilo Atari 410 a jeho nástupcům být relativně jednoduchými zařízeními.

Když je nastaven provoz kazety, výstupy z kanálu 1 a 2 POKEY byly odeslány do DATAOUT, spíše než do hodinových pinů. Dva kanály byly nastaveny tak, aby vytvářely tóny, které lze bezpečně zaznamenávat na pásku, 3995 Hz pro nulu bylo v kanálu 2 POKEY a 5326 Hz pro jeden bylo v kanálu 1. V tomto režimu, když POKEY četl bity ze SERINU , libovolná 1 způsobila, že kanál 1 přešel do datového kolíku a 0 přehraje kanál 2. Tímto způsobem byl bajt dat převeden na tóny na pásku. Čtení však používalo jiný systém, protože v počítači nebyl žádný převodník A-D. Místo toho kazetové magnetofony obsahovaly dva úzkopásmové filtry naladěné na dvě frekvence. Během čtení by byl výstup jednoho nebo druhého z těchto filtrů uplatněn, protože bity byly čteny z pásky. Ty byly odeslány jako digitální data zpět do hostitelského počítače.

Protože páska podléhala protahování a dalším mechanickým problémům, které mohly zrychlit nebo zpomalit transport přes hlavy, systém používal asynchronní čtení a zápis. Data byla zapisována v blocích po 132 bajtech na záznam, přičemž první dva bajty byly bitovým vzorem „01010101 01010101“. Mezera mezi záznamy mezi bloky bez tónů umožnila operačnímu systému zjistit, kdy začíná nový záznam, hledáním úvodní nuly. Poté rychle načetlo port a načasovalo přechody časovacích bitů od 0 do 1 a zpět, aby určilo přesnou rychlost dat. Dalším bajtem byl kontrolní bajt, který určoval, zda se jedná o normální záznam 128 datových bajtů, krátký blok nebo konec souboru. Následovalo až 128 bajtů dat, za ním následoval bajt kontrolního součtu, včetně všeho před kontrolním součtem.

Provoz byl dále řízen pinem MOTOR v portu SIO, který je určen pro tento účel. Když byl tento kolík nízký, motor v palubě byl vypnutý. To uživateli umožnilo stisknout tlačítko Přehrát nebo Přehrát a nahrávat, aniž by se páska začala pohybovat. Po zadání příslušného příkazu do počítače by byl uplatněn MOTOR a kazeta by se začala otáčet.

Další vyhrazený kolík byl AUDIOIN, který byl připojen přímo k výstupním zvukovým obvodům mezi převaděči D-to-A POKEY a konečným výstupem, takže jakýkoli signál na kolíku se mísil se zvukem z POKEY (pokud existuje) a poté byl poslán do reproduktoru televize. To bylo připojeno k levému zvukovému kanálu v kazetě, zatímco pravý kanál byl připojen k datovým pinům. To umožnilo uživatelům nahrávat normální zvuky na levý kanál a poté je nechat přehrávat prostřednictvím televize. To se často kombinovalo s přímým ovládáním motoru, aby se vytvořily interaktivní pásky pro učení jazyků a podobné programy. Některé softwarové společnosti by na tento kanál nahrávaly zvuky nebo hudbu, aby byl proces načítání příjemnější.

Viz také

Poznámky

Reference

  1. ^ „Rozhovor s Joe Decuirem“ . Atari Museum .
  2. ^ Atari - Computer Systems , Atari, Inc. , archivovány od originálu na 2015-12-08 , vyvolány 2015-01-14
  3. ^ SIO 1980 , str. 1.
  4. ^ a b c d e f g h Decuir .
  5. ^ SIO 1980 , s. 6-7.
  6. ^ a b SIO 1980 , str. 13.
  7. ^ SIO 1980 , str. 8.
  8. ^ a b SIO 1980 , str. 7.
  9. ^ a b c SIO 1980 , str. 6.
  10. ^ SIO 1980 , str. 18.
  11. ^ SIO 1980 , str. 16.
  12. ^ Návod k obsluze diskové jednotky Atari 810 (PDF) (technická zpráva). 1979. s. 6.
  13. ^ „Instalace Indus GT“ .
  14. ^ SIO 1980 , str. 25.
  15. ^ SIO 1980 , str. 28.
  16. ^ a b c DeRe 1981 , str. Dodatek C.
  17. ^ Victor, John (říjen 1982). Msgstr "Zvuk při načítání" . Antic .

Bibliografie