1. ZADÁNÍ

  1. Sledování sběrnice. Zapněte sledování sběrnice a zkopírujte krátký textový soubor pomocí příkazu MS-DOS copy. Sledujte průběhy na sběrnici - všimněte si jednotlivých fází a srovnejte je s pravidly komunikace definovanými normou. Mezi příkazy zápisu nalezněte ten, který zapisuje na disk obsah souboru a tuto část komunikace uveďte do protokolu; označte kopírovaná data. Jednotlivé fáze komunikace patřičně okomentujte.
  2. Identifikace zařízení. V módu INITIATOR zasílejte postupně jednotlivým zařízením na sběrnici příkaz Inquiry. Zjistěte, která zařízení a s jakým ID jsou na sběrnici připojena. Během sledování výpisu komunikace se zaměřte na operační kód příkazu Inquiry a jeho parametry. Proveďte rozbor dat, která zasílají jednotlivá zařízení jako odpověď na žádost o identifikaci. Z prvých tří slabik zjistěte parametry zařízení, dále rozluštěte výrobce a typ zařízení. Pozorujte, zda nezasílají zařízení iniciátoru také speciální hlášení. Do protokolu uveďte ukázku komunikace (pro jedno zařízení), v datech vyznačte, kde je zakódován výrobce a typ zařízení. U ostatních periférií zapište pouze dekódované údaje.
  3. Výmaz pásky. V módu INITIATOR zašlete páskové jednotce příkaz pro převinutí pásky a pak ji formátujte. Při editace parametrů příkazu Erase je srovnejte s literaturou. Komunikaci zapište do protokolu. Zaměřte se na fáze Disconnect a Reselection. Vysvětlete jejich význam.
  4. Zápis a čtení pásky. Na pásku zapište blok dat a přečtěte jej zpět. Do protokolu uveďte, proč a jak jste modifikovali příkaz Write a Read. Komunikaci opět zapište do protokolu, okomentujte jednotlivé fáze a zasílané zprávy. Všimněte si fází Disconnect a Reselection. Vysvětlete jejich význam.

2. TEORETICKÁ ČÁST

Pro připojení periferií k počítači používáme sběrnice. Jednou z mnoha možných je SCSI, vnější specializovaná sběrnice pro zapojení zařízení s vlastní inteligencí. Lze připojit v podstatě cokoliv, od pevný disků (nejčastější), mechanik CD-ROM a magnetických pásek, po skenery a vypalovačky.

U připojených periférií se vyžaduje jistá inteligence a podoba komunikace, proto se ke sběrnici nepřipojí přímo, ale přes řadič, který je ale nedílnou součástí jejich řešení. Řadič zabezpečuje obousměrný převod příkazů z jazyka SCSI na povely pro hardware. Standardizace komunikace tak pro různé typy (skupiny) hardware umožňuje připojit všechna myslitelná zařízení, která se podřídí normě. To má velkou výhodu, zařízení nepotřebuje žádný specializovaný ovladač v operačním systému. Nevýhodou je menší možnost flexibility komunikace a jistá redundance povelů.

Řešení sběrnice je paralelní, komunikace probíhá na osmi datových vodičích, zařízení jsou na řadič sběrnice připojena sériově za sebou. Každé má tedy dva konektory, jeden vstupní, druhý výstupní. Aby nedocházelo k odrazům signálů na konci vedení, je poslední zařízení ukončeno odporem. K připojení složí několik typů zásuvek, neexistuje jedno obecné řešení. K identifikaci se používá jednoznačné číslo ID, je v rozsahu 0 až 7 a nastavuje se nejčastěji přepínači přímo na zařízení (je zvykem nastavit řadič sběrnice na číslo 7, má totiž nejvyšší prioritu při potížích). V komunikaci od sebe odlišujeme iniciátora a příjemce, naslouchatele. Zařízení se na sběrnici nachází v jedné z těchto fází:

První čtyři fáze řídí komunikaci na sběrnici, další jsou v podstatě fáze datové, kdy po sběrnici putuje nějaká informace. K rozlišení jednotlivých stavů slouží stavové vodiče sběrnice.

Přenos informace (dat) je řízen příkazy. Každý příkaz začíná operačním kódem (ten ho identifikuje), následuje číslo zařízení, pro které je určen, zbytek je pro každý příkaz specifický. Příkazy jsou šesti, desíti nebo dvanácti bajtové, jeden byte se přenáší najednou po datových vodičích. My použijeme například příkazy Read, Write, Inquiry, Format a další. Potvrzení o zpracování příkazu vydává příjemce pomocí zprávy Status. Příkazy lze rozdělit do skupin podle typu obsluhovaného zařízení; na příkazy pro všechny typy, pro zařízení s přímým přístupem, se sekvenčním přístupem, pro tiskárny, pro procesory, pro CD-ROM, pro skenery, pro komunikační zařízení, pro měniče médií, pro optické paměti a další. Každá skupina má své specifika a existují pro ni tedy i speciální příkazy.

3. ŘEŠENÍ

3.1 Sledování sběrnice

Při kopírování malého textového souboru na SCSI disk jsme při zapnutém analyzátoru zachytili následující data.

První řádek dat v příkazu Data-Out je v hexadecimálním formátu zápis znaků ASCII kódu, které dohromady dávají obsah souboru, text CVICENI_POSLEDNI. Komunikace je přímočará, po přidělení sběrnice následuje příkaz pro čtení/zápis, data, vše odsouhlaseno Status Good, a koncem komunikace v podobě Command Complete.

3.2 Identifikace zařízení

Identifikací jsme zjistili následující připojená zařízení.

ID Target ID Typ přístupu Vyměnné Standard Další informace
0 02h náhodný ne SCSI-1 SEAGATE ST138N
3 08h sekvenční ano SCSI-1 ARCHIVE VIPER 150 21247
4 10h náhodný ne SCSI-2 FUJITSU M2266S-512

Pro bližší rozbor si vybereme pevný disk Seagate. Uvádíme obrázek s výpisem komunikace.

Komunikace začíná přidělením sběrnice, následuje výběr komunikujících stran (ID 0 - náš disk a ID 7 - řadič sběrnice), poté příkaz pro identifikaci Inguiry (operační kód 12h, ostatní byte jsou jeho parametry, spíše speciálního rázu, jejich popis je možné najít v normě), nakonec přečtená data (od byte 8 do byte 15 je zaznamenáno jméno zařízení, z prvních dvou můžeme určit jeho typ - podrobnější specifikace je v literatuře [2]). Potvrzením Status Good a Command Complete komunikace končí.

3.3 Výmaz pásky

Převinutí pásky na začátek a její následný výmaz vyvolal tuto sadu příkazů.

Nejdříve je navázána komunikace mezi řadičem a páskovou jednotkou (ID 3), poté je zaslán příkaz k převinutí na začátek (01h, parametr Immed prvního byte je nastaven na nula, to znamená, že je možno přetočení potvrdit až operace skutečně skončí.). Teoreticky by se nyní měla jednotka odpojit a připojit se až po přetočení, ale protože byla vložená páska nastavena už nyní na začátek, příkaz se provedl okamžitě. Po přijmutí příkazu k formátování - kód 19h, parametry jsou nastaveny na formátování, při kterém je možné se odpojit od sběrnice (bit 1 na nula) a na formátování až do konce pásky (bit 0 na jedna) - se zařízení již odpojuje a ke sběrnici se připojí až po jeho vykonání, úspěch potvrdí pomocí dvojice Status Good, Command Complete.

3.4 Zápis a čtení pásky

Na pásku jsme po převinutí na začátek zapsali předem připravená data (32 byte s hexadecimální hodnotou 55h), po dalším převinutí jsme je přečetli zpět. Následující obrázek data uvádí.

První převinutí opět proběhne okamžitě, páska je na začátku. Poté zapisujeme data příkam Write/Send (0Ah, parametrem je adresa logického bloku, na který se budou data za sběrnice zapisovat a délka dat v blocích- v našem případě jsou to obě jedničky). Páska se odpojí od sběrnice, připojí se, až má příkaz splněna. Následuje pře

točení na začátek, již se zmiňovaným krátkodobým odpojením, poté čtení (08h) se stejnými parametry jako při zápisu. Po splnění úkolu proběhne dvojice Status Good, Command Complete.

4. ZÁVĚR

Provedli jsme všechny předepsané úlohy, jejich výsledky jsou uvedeny v části 3. Pozorovali jsme, jak probíhá komunikace mezi jednotlivými zařízeními, jak se identifikují a jak si mezi sebou zasílají příkazy při různých činnosti. Všechna pozorování jsme prováděli pomocí analyzátoru a emulátoru DSC-202 a k němu příslušného softwaru. Některé jeho výstupy byly použity i v této práci, práce s ním byla velmi příjemná.

5. LITERATURA

[1] Šnorek, Miroslav: Periferní zařízení. Vydavatelství ČVUT, 2000.
[2] Computer & Business Equipment Manufacturers Association: Small Computer System Interface - 2. 1996.