Práce s SCSI analyzátorem
Zadání:
Cílem tohoto měření je realizovat čtyři typy úloh. Jedna se o základní seznámení se s SCSI, identifikovat jednotlivá zařízení, formátovat jedno vybrané zařízení (jedná se o pásku) a na toto zařízení zapsat posloupnost čísel. Jedná se o následující úlohy:
1. Sledování sběrnice:
Zapněte sledování sběrnice a zkopírujte krátký textový soubor pomocí příkazu 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 (write) nalezněte ten, který zapisuje na disk obsah souboru a tuto část komunikace uveďte do protokolu (společně s kopírovaným souborem v textové podobě a jeho výpisem v šesnáctkové soustavě); 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 (žádost o identifikaci). 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 (srovnejte s literaturou). Proveďte rozbor dat, která zasílají jednotlivá zařízení jako odpověď na žádost o identifikaci (pomocí tabulky v knize, která bude k dispozici v laboratoři). Z prvých tří slabik zjistěte parametry zařízení (s přímým/sekvenčním přístupem, rozhranní SCSI 1/SCSI 2 atd.). Dále rozluštěte výrobce (Vendor identification) 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 Vámi 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 FORMAT je srovnejte s literaturou (význam uveďte do protokolu). 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.
Více teorie na stránce předmětu.
Popis měření:
Měření se provádělo na SCSI-bus analyzátoru/emulátoru DSC-202.
Tento analyzátor byl ovládán z terminálu druhého PC připojeným přes seriový port.
Výsledky terminálu jsou lehce dekódovatelne a jejich zkrácený výpis bude uveden v následujících odstavcích.
Trochu kompletnější výpis je k nahlédnutí zde.
Vypracování:
1. Sledování sběrnice
Při kopírování textového souboru obsahujícího text 'ahoj' jsme získali toto:
00AF: Bus free
00B1: Arbitration /01(0)
00B3: Command /0A(Write/Send) 00 50 A1 01 00
00B9: Data-Out/61 68 6F 6A 00 0A 00 34 01 5C 00 00 00 00 00 00
00C9: 00 00 00 00 00 00 00 01 00 54 53 54 00 00 00 00
00D9: Status /00(Good)
00DA: Message-In /00(Cmd_Cmplt)
První část dat v příkazu Data-Out jsou naše poslaná data v hexadecimálním ASCII kódu.
Po přidělení sběrnice následuje příkaz pro čtení/zápis, pak data, vše potvrzeno Status Good,
a konec komunikace Command Complete.
2. Identifikace zařízení
V PC byla identifikována tato zařízení:
ID |
Přístup |
Vyměnné |
Standard |
Popis |
0 |
náhodný |
ne |
SCSI-1 |
SEAGATE ST138N |
2 |
náhodný |
ne |
SCSI-2 |
MICROP 2217-15 MZ10011905 |
3 |
sekvenční |
ano |
SCSI-1 |
ARCHIVE VIPER 150 21247 |
Příklad komunikace se streamerem ARCHIVE VIPER:
0097: Bus free
0099: Arbitration w.ATN /80(7)
009A: Select w.ATN /88(3,7)
009E: Message-Out/C0(Identify)
009F: Command /12(Inquiry) 00 00 00 30 00
00A5: Data-In /01 80 01 00 2F 00 00 00 41 52 43 48 49 56 45 20
00B5: 56 49 50 45 52 20 31 35 30 20 20 32 31 32 34 37
00C5: Status /00(Good)
00C6: Message-In /00(Cmd_Cmplt)
Komunikace začíná přidělením sběrnice, následuje výběr komunikujících stran
(ID 3 - streamer a ID 7 - řadič sběrnice), poté příkaz pro identifikaci Inguiry,
dále přečtená data Data-In - první byty popisují typ zařízení (první 01 - zařízení je připojeno a je se sekvenčním přístupem; druhá 80h - výměnné zařízení; třetí 01 - standart SCSI-1) další pak jméno zařízení.
Status Good operaci potvrdí a Command Complete ji ukončí.
3. Výmaz pásky
Převinutí pásky na začátek a její následný výmaz vyvolal na sběrnici tuto serii příkazů:
02A5: Bus free
02A7: Arbitration w.ATN /80(7)
02A8: Select w.ATN /88(3,7)
02AC: Message-Out/C0(Identify)
02AD: Command /01(Rezero/Rewind) 00 00 00 00 00
02B3: Message-In /04(Disconnect)
02B4: Bus free
02B6: Arbitration /08(3)
02B7: Reselect /88(3,7)
02BA: Message-In /80(Identify)
02BB: Status /00(Good)
02BC: Message-In /00(Cmd_Cmplt)
02BD: Bus free
02BF: Arbitration w.ATN /80(7)
02C0: Select w.ATN /88(3,7)
02C4: Message-Out/C0(Identify)
02C5: Command /19( ) 01 00 00 00 00
02CB: Message-In /04(Disconnect)
02CC: Bus free
02CE: Arbitration /08(3)
02CF: Reselect /88(3,7)
02D2: Message-In /80(Identify)
02D3: Status /00(Good)
02D4: Message-In /00(Cmd_Cmplt)
Nejprve je navázána komunikace mezi řadičem a streamerem (ID 3), poté je zaslán příkaz k převinutí na začátek
(Rezero/Rewind parametr Immed je nastaven na nula - přetočení je možno potvrdit teprve až operace skončí)
Páska se odpojí od sběrnice a připojí se až po převinutí (Reselect).
Následuje přikaz pro formátování (kód 19h; bit 0 hodnota 1 = formátování až na konec pásky; bit 1 hodnota 0 = odpojit od sběrnice).
Po zformátování se páska opět připojí a potvrdí provedení operace pomocí Status Good a Command Complete.
4. Zápis a čtení pásky
Na pásek zapsali data 55h a po převinutí jsme je přečetli zpět. To se událo pomocí následující komunikace po SCSI:
0011: Bus free
0013: Arbitration w.ATN /80(7)
0014: Select w.ATN /88(3,7)
0018: Message-Out/C0(Identify)
0019: Command /01(Rezero/Rewind) 00 00 00 00 00
001F: Status /02(Chk Cond)
0020: Message-In /00(Cmd_Cmplt)
0021: Bus free
0023: Arbitration w.ATN /80(7)
0024: Select w.ATN /88(3,7)
0028: Message-Out/C0(Identify)
0029: Command /0A(Write/Send) 01 00 00 01 00
002F: Message-In /02(Save_Ptr)
0030: Message-In /04(Disconnect)
0031: Bus free
0033: Arbitration /08(3)
0034: Reselect /88(3,7)
0037: Message-In /80(Identify)
0038: Data-Out/55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
0048: 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
0058: Message-In /02(Save_Ptr)
0059: Message-In /04(Disconnect)
005A: Bus free
005C: Arbitration /08(3)
005D: Reselect /88(3,7)
0060: Message-In /80(Identify)
0061: Status /00(Good)
0062: Message-In /00(Cmd_Cmplt)
0063: Bus free
0065: Arbitration w.ATN /80(7)
0066: Select w.ATN /88(3,7)
006A: Message-Out/C0(Identify)
006B: Command /01(Rezero/Rewind) 00 00 00 00 00
0071: Message-In /04(Disconnect)
0072: Bus free
0074: Arbitration /08(3)
0075: Reselect /88(3,7)
0078: Message-In /80(Identify)
0079: Status /00(Good)
007A: Message-In /00(Cmd_Cmplt)
007B: Bus free
007D: Arbitration w.ATN /80(7)
007E: Select w.ATN /88(3,7)
0082: Message-Out/C0(Identify)
0083: Command /08(Read/Receive) 01 00 00 01 00
0089: Message-In /02(Save_Ptr)
008A: Message-In /04(Disconnect)
008B: Bus free
008D: Arbitration /08(3)
008E: Reselect /88(3,7)
0091: Message-In /80(Identify)
0092: Data-In /55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
00A2: 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
00B2: Message-In /02(Save_Ptr)
00B3: Message-In /04(Disconnect)
00B4: Bus free
00B6: Arbitration /08(3)
00B7: Reselect /88(3,7)
00BA: Message-In /80(Identify)
00BB: Status /00(Good)
00BC: Message-In /00(Cmd_Cmplt)
00BD: Bus free
Páska je již na začátku, proto převinutí proběhne bez odpojení od sběrnice.
Zápis se provede příkazem Write-Send, dojde k chvilkovému odpojení streameru od řadiče.
Po zapsání se streamer opět připojí, dostane příkaz k převinutí (opět dochází k uvolnění sběrnice).
Čtení dat se provede příkazem Read/Recieve a vše se potvrdí Statusem Good a zprávou Command Complete.