Управление интерфейсом
Для управления интерфейсом служит система сообщений. Всего сообщений ? 28. Форматы сообщений стандартизированы, существуют однобайтные, двухбайтные и расширенные сообщения. В двухбайтном сообщении второй байт является аргументом сообщения, в расширенных сообщениях второй байт задаёт длину сообщения, а последующие байты несут код и аргументы сообщения.
Рассмотрим внутреннюю структуру сообщения на примере однобайтного сообщения «Identify».
Identify Message (80h-FFh)
Byte\Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | Identify | DiscPriv | LUNTAR | LUNTRN | ||||
Identify ? Бит идентификации, должен быть установлен в единицу ? признак Identify Message.
DiscPriv ? Disconnect Privilege Bit, если равен 0, то Target не будет отсоединяться от Initiator до конца выполнения задачи. Если равен 1, то Initiator предоставляет Target привилегию отключения от шины. DiscPriv используется совместно с опциональным битом Dimm (Disconnect Immediate), который описан в Disconnect/Reconnect Mode Page (см. 8.12.3.Disconnect/Reconnect Control Page). Если Initiator выбирает Target, использующее SCSI-1 с опцией одного инициатора, то Target не будет пытаться отключится от шины до конца выполнения задачи и соответственно не будет обращать внимания на DiscPriv, который в этом случае всегда должен быть равен нулю.
LUNTAR ? Logical Unit Target Bit. Если равен 0, то Identify Message адресовано логическому устройству (ЛУ). Если равен 1, то Identify Message адресовано обычному Target, который не включает в себя ЛУ. LUNTAR=0 всегда при работе с HDD.
LUNTRN ? Logical Unit Number Target Routine Number описывает Logical Unit Number, если LUNTAR=0. При LUNTAR=1 описывает Target Routine Number (номер ЛУ).