Команды SCSI посылаются в виде блоков описания команды. Длина каждого блока может составлять 6, 10, 12 или 16 байт. В последних версиях SCSI блок может иметь переменную длину. Блок состоит из однобайтового кода команды и параметров команды.
После получения команды целевое устройство возвращает значение 00h в случае успешного получения, 02h в случае ошибки или 08h в случае, если устройство занято. В случае, если устройство вернуло ошибку, инициатор обычно посылает команду запроса состояния. Устройство возвращает Key Code Qualifier (KCQ).
Все команды SCSI делятся на четыре категории: N (non-data), W (запись данных от инициатора целевым устройством), R (чтение данных) и B (двусторонний обмен данными). Всего существует порядка 60 различных команд SCSI, из которых наиболее часто используются:
- Test unit ready — проверка готовности устройства, в т.ч. наличия диска в дисководе.
- Inquiry — запрос основных характеристик устройства.
- Send diagnostic — указание устройству провести самодиагностику и вернуть результат.
- Request sense — возвращает код ошибки предыдущей команды.
- Read capacity — возвращает ёмкость устройства.
- Format Unit
- Read (4 варианта) — чтение.
- Write (4 варианта) — запись.
- Write and verify — запись и проверка.
- Mode select — установка параметров устройства.
- Mode sense — возвращает текущие параметры устройства.
Каждое устройство на SCSI-шине имеет как минимум один номер логического устройства (LUN). В некоторых более сложных случаях одно физическое устройство может представляться набором LUN.Семейство стандартов SCSI включает в себя ряд стандартов уровня аппаратуры, стандарты SAM и SPC, описывающие главнейшие команды и структуры типа развернутой информации об ошибке, и специфичных для класса устройств стандартов.
Распайка интерфейса SCSI