Nu este clar, desigur, unde USB-IF a urmărit (cu dragoste occidentală pentru tot felul de drepturi și drepturi de autor), dar faptul că aceasta nu este prima carte care a venit în mâinile mele poate vorbi despre un anumit sistem. Poate că aceasta este o modalitate de a da bani participanților la grupuri de lucru sau așa ceva. Dar acest lucru nu este mai ușor.
Acest capitol descrie clasa dispozitivelor de stocare a datelor și prezintă codul pentru un dispozitiv care demonstrează schimbul între sistemul de control și dispozitiv. [* - nu, nu demonstrează, deoarece cartea "cod" este o traducere directă a structurilor USB și SCSI din tabelele de limbi naturale în codul sursă C. Dacă nu puteți face o astfel de traducere, atunci căutați o carte pe net. ]
Cerințe generale
În plus față de compatibilitatea cu specificația USB 2.0, dispozitivul de stocare a datelor trebuie să îndeplinească cerințele clasei de "stocare a datelor", care include atât cerințe de compatibilitate hardware, cât și suport pentru protocolul software.
specificație
Clasa de stocare a datelor se referă la mai multe documente. "Prezentare generală a specificațiilor" și "Transport numai în bloc" se aplică la aproape toate dispozitivele. Documentul "Bootability" se referă numai la dispozitivele din care poate rula sistemul de operare. Două documente suplimentare - "Schimb de control / volum / întrerupere (CBI)" și "Specificarea comenzilor UFI" se aplică numai pentru unele unități floppy.
În plus, unitățile trebuie să suporte seturi standard de blocuri de comandă pentru schimbul de date, gestionarea dispozitivelor și informații despre stare. Blocurile de comandă sunt descrise în detaliu în Partea 6.
Cereri pentru dispozitive de stocare a datelor
În protocolul pentru transferul datelor nestructurate (numai în vrac) sunt definite două cereri de control. "Restabilire în masă numai pentru stocarea în masă" instruiește dispozitivul să fie gata să primească un nou bloc de comandă. "Obțineți Max LUN" solicită cel mai mare număr de unități logice acceptate de dispozitiv. În sistemul de operare Windows, fiecare unitate logică sau partiție are o literă proprie. Un dispozitiv cu o singură unitate logică trebuie să revină la zero sau să intre într-o stare de staționare. Un dispozitiv cu două unități logice "LUN 0" și "LUN 1" returnează "1". Valoarea maximă este "15". Restul schimbului trece prin transferul datelor nestructurate (în vrac).
În protocolul CBI (control / bulk / interrupt) este definită o cerere de control - "Accept comanda specifică dispozitivului (ADSC)". La etapa de transfer de date, comanda reală este transmisă. Dispozitivul poate utiliza schimbul de întrerupere pentru a raporta finalizarea acțiunilor prescrise.
Sistemul central poate folosi transmisii de control pentru a aduce la capăt punctele finale, trimițând pe dispozitiv dispozitivul standard de comandă USB "Clear Feature (ENDPOINT_HALT)".