Разработка собственных устройств USB
Несмотря на довольно сложный протокол обмена, интерфейсом USB можно снабдить и периферийные устройства собственной разработки. Для этого выпускается широкий ассортимент микросхем, со стороны USB различающихся скоростями обмена (LS, FS или HS), числом и возможностями конечных точек (тип передач, размер буфера). Функциональное назначение этих микросхем различно. С портом USB выпускаются микроконтроллеры на ядре MCS51, М68НС05, М68НС11 или RISC-архитектуры; они различаются объемом памяти (оперативной и энергонезависимой), производительностью, питанием, потреблением. Микроконтроллеры могут иметь встроенные устройства АЦП/ЦАП, дискретные линии ввода-вывода общего назначения, последовательные и параллельные порты различных типов. Их можно использовать для подключения устройств с любыми интерфейсами, сигнальных процессоров и т. п. Из этого ассортимента можно выбрать подходящую микросхему, на базе которой разрабатываемое устройство будет реализовано с минимальным числом дополнительных элементов. К микроконтроллерам прилагаются и средства разработки их встроенного ПО (firmware) — самой сложной части такого устройства. Есть микроконтроллеры с USB, способные работать без программирования энергонезависимой памяти; микроконтроллеры серии EzUSB фирмы Cypress Semiconductor каждый раз загружают свою программу в ОЗУ по шине USB из хост-компьютера в процессе подключения. Конечно, такая гибкость нужна не всегда, и до подключения к компьютеру устройство остается «мертвым».
Есть и периферийные микросхемы — порты USB, подключаемые к микроконтроллерам параллельной 8/16-битной шиной данных с обычным набором управляющих сигналов (CS#, RD#, WR#…), линией запроса прерывания и, возможно, сигналами канала DMA. Выпускаются и специализированные преобразователи интерфейсов USB в последовательный (RS-232, RS-422/485) и параллельный, не требующие программирования (нужно лишь записать в EEPROM идентификатор устройства). Есть и микросхемы USB, сочетающие в себе и функции, и хабы. Все варианты не перечислить, тем более что все время появляются новые микросхемы. Информацию о них можно найти в Сети (www.cypress.com, www.devasys.com, www.iged.com, www.microchip.com, www.netchip.com, www.motorola.com, www.semiconductor.philips.com, www.natsemi.com, www.intel.com, www.ftdichip.com, www.gigatechnology.com).
Немаловажная часть разработки собственных устройств — программное обеспечение для хост-компьютера, которое доносит до пользователя всю пользу устройства. В ряде случаев удается воспользоваться готовыми драйверами (например, драйвером виртуального СОМ-порта для преобразователя интерфейса). В других случаях ПО приходится писать самостоятельно, и хорошо, когда изготовитель микросхем с USB заботится о предоставлении инструментальных средств разработки всех частей ПО.
Шина IEEE 1394 — FireWire
Стандарт для высокопроизводительной последовательной шины (High Performance Serial Bus), получивший официальное название IEEE 1394, был принят в 1995 году. Целью являлось создание шины, не уступающей параллельным шинам при существенном удешевлении и повышении удобства подключения (за счет перехода на последовательный интерфейс). Стандарт основан на шине FireWire, используемой Apple Computer в качестве дешевой альтернативы SCSI в компьютерах Macintosh и PowerMac. Название FireWire («огненный провод») теперь применяется и к реализациям IEEE 1394, оно сосуществует с кратким обозначением 1394. Другое название того же интерфейса — iLink, а иногда и Digital Link — используется фирмой Sony применительно к устройствам бытовой электроники. MultiMedia Connection — имя, используемое в логотипе 1394 High Performance Serial Bus Trade Association (1394TA).
Стандарт 1394 определяет три возможные частоты передачи сигналов по кабелям: 98,304, 196,608 и 393,216 Мбит/с, которые округляют до 100, 200 и 400 Мбит/с. Частоты в стандарте обозначаются как S100, S200 и S400 соответственно. В последней утвержденной ревизии стандарта, Р1394-2000, новых скоростей (S800, S1600 и S3200) еще не появилось, и сейчас 1394 сосуществует с шиной USB, для которой в спецификации USB 2.0 уже определена скорость 480 Мбит/с.
Основные свойства шины FireWire перечислены ниже.
♦ Многофункциональность . Шина обеспечивает цифровую связь до 63 устройств без применения дополнительной аппаратуры (хабов). Устройства бытовой электроники — цифровые камкордеры (записывающие видеокамеры), камеры для видеоконференций, фотокамеры, приемники кабельного и спутникового телевидения, цифровые видеоплейеры (CD и DVD), акустические системы, цифровые музыкальные инструменты, а также периферийные устройства компьютеров (принтеры, сканеры, устройства дисковой памяти) и сами компьютеры могут объединяться в единую сеть.
♦ Высокая скорость обмена и изохронные передачи . Шина позволяет даже на начальном уровне (S100) передавать одновременно два канала видео (30 кадров в секунду) широковещательного качества и стерео-аудиосигнал с качеством CD.
♦ Низкая цена компонентов и кабеля .
♦ Легкость установки и использования . FireWire расширяет технологию PnP. Система допускает динамическое (горячее) подключение и отключение устройств. Устройства автоматически распознаются и конфигурируются при включении/отключении. Питание от шины (ток до 1,5 А) позволяет подключенным устройствам общаться с системой даже при отключении их питания. Управлять шиной и другими устройствами могут не только PC, но и другие «интеллектуальные» устройства бытовой электроники.
FireWire по инициативе VESA позиционируется как шина «домашней сети», объединяющей всю бытовую и компьютерную технику в единый комплекс. Эта сеть является одноранговой (peer-to-peer), чем существенно отличается от USB.
Физический уровень сети
Кабельная сеть 1394 собирается по простым правилам — все устройства соединяются друг с другом кабелями по любой топологии (древовидной, цепочечной, звездообразной). Каждое «полноразмерное» устройство (узел сети) обычно имеет три равноправных соединительных разъема. Некоторые малогабаритные устройства могут иметь только один разъем, что ограничивает возможные варианты их местоположения. Стандарт допускает и до 27 разъемов на одном устройстве, которое будет играть роль кабельного концентратора. Допускается множество вариантов подключения устройств, но со следующими ограничениями:
♦ между любой парой узлов может быть не более 16 кабельных сегментов;
♦ длина сегмента стандартного кабеля не должна превышать 4,5 м;
♦ суммарная длина кабеля не должна превышать 72 м (применение более качественного кабеля позволяет ослабить влияние этого ограничения);
♦ топология не должна иметь петель, хотя в последующих ревизиях предполагается автоматическое исключение петель в «патологических» конфигурациях.
Стандартный кабель 1394 содержит 6 проводов, заключенных в общий экран, и имеет однотипные 6-контактные разъемы на концах (рис. 4.6, а ). Две витые пары используются для передачи сигналов (TPA и TPB) раздельно для приемника и передатчика, два провода задействованы для питания устройств (8-40 В, до 1,5 А). В стандарте предусмотрена гальваническая развязка устройств, для чего используются трансформаторы (напряжение изоляции развязки до 500 В) или конденсаторы (в дешевых устройствах с напряжением развязки до 60 В относительно общего провода). Некоторые бытовые устройства имеют только один 4-контактный разъем меньшего размера (рис. 4.6, б ), у которого реализованы только сигнальные цепи. Эти устройства подключаются к шине через специальный переходной кабель только как оконечные (хотя возможно применение специальных адаптеров- разветвителей). В кабелях FireWire сигнальные пары соединяются перекрестно (табл. 4.2), поскольку все порты равноправны.
Рис. 4.6 . Разъемы FireWire: а — 6-контактное гнездо, б — 4-контактное гнездо
Таблица 4.2 . Соединительные кабели FireWire
Разъем А | Провод | Разъем Б | ||||
4-конт. | 6-конт. | Цепь | Цепь | 6-конт. | 4-конт. | |
- | 1 | Power | Белый | Power | ||
- | 2 | GND | Черный | GND | ||
3 | TPB- | Красный | TPA- | |||
4 | TPB+ | Зеленый | TPA+ | |||
5 | TPA- | Оранжевый | TPB- | |||
6 | TPA+ | Синий | TPB+ | |||
Экран | Экран | Экран | Экран | Экран | Экран | Экран |
В грядущей версии, которая пока называется P1394b, предусматриваются и новые варианты среды передачи:
♦ кабель UTP категории 5 со стандартными коннекторами RJ-45 (используются две пары проводов), длина сегмента до 100 м — дешевый вариант для S100;
♦ пластиковое оптоволокно (два волокна POF для небольших расстояний и HPCF для больших дистанций) — дешевый вариант для S200;
♦ многомодовое оптоволокно (два волокна 50 мкм) — более дорогой вариант для будущих скоростей вплоть до S3200.
Каждое устройство, имеющее более одного разъема 1394, является повторителем. Сигнал, обнаруженный на входе приемника с любого разъема, ресинхронизируется по внутреннему тактовому генератору и выводится на передатчики всех остальных разъемов. Таким образом осуществляется доставка сигналов от каждого устройства ко всем остальным и предотвращается накопление «дрожания» (jitter) сигнала, ведущее к потере синхронизации.
Стандарт 1394 определяет две категории шин: кабельные шины и кросс-шины (Backplane). Под кросс-шинами подразумеваются обычно параллельные интерфейсы, объединяющие внутренние подсистемы устройства, подключенного к кабелю 1394. Сеть может состоять из множества шин, соединенных мостами — специальными устройствами, осуществляющими передачу пакетов между шинами, фильтрацию трафика, а для соединения разнородных шин еще и необходимые преобразования интерфейсов. Интерфейсная карта шины FireWire для PC представляет собой мост PCI — 1394. Мостами являются также соединения кабельной шины 1394 с кросс-шинами периферийных устройств. Мосты могут соединять и кабельные шины, что расширяет топологические возможности соединения устройств.
Протокол IEEE 1394
Протокол 1394 реализуется на трех уровнях (рис. 4.7).
♦ Уровень транзакций (Transaction Layer) преобразует пакеты в данные, предоставляемые приложениям, и наоборот. Он реализует протокол запросов-ответов, соответствующий стандарту ISO/IEC 13213:1994 (ANSI/IEEE 1212, редакции 1994 г.) архитектуры регистров управления и состояния CSR (Control and Status Register) для микрокомпьютерных шин (чтение, запись, блокировка). Это облегчает связь шины 1394 со стандартными параллельными шинами.
♦ Уровень связи (Link Layer) из данных физического уровня формирует пакеты и выполняет обратные преобразования. Он обеспечивает обмен узлов датаграммами с подтверждениями. Уровень отвечает за передачу пакетов и управление изохронными передачами.
♦ Физический уровень (Physical Layer) вырабатывает и принимает сигналы шины. Он обеспечивает инициализацию и арбитраж, предполагая, что в любой момент времени работает только один передатчик. Уровень передает потоки данных и уровни сигналов последовательной шины вышестоящему уровню. Между этими уровнями возможна гальваническая развязка, при которой микросхемы физического уровня питаются от шины. Гальваническая развязка необходима для предотвращения паразитных контуров общего провода, которые могут появиться через провода защитного заземления блоков питания.
Рис. 4.7 . Трехуровневая структура FireWire
Аппаратная часть FireWire обычно состоит из двух специализированных микросхем — трансиверов физического уровня PHY Transceiver и моста связи с шиной LINK Chip. Связь между ними возможна, например, по интерфейсу IBM-Apple LINK-PHY. Микросхемы уровня связи выполняют все функции своего уровня и часть функций уровня транзакций; остальная часть уровня транзакций выполняется программно.
Для передачи асинхронных сообщений используется 64-битная адресация регистров устройств 1394. В адресе выделяется 16 бит для адресации узлов сети: 6-битное поле идентификатора узла допускает до 63 устройств в каждой шине; 10-битное поле идентификатора шины допускает использование в системе до 1023 шин разного типа (включая внутренние), соединенных мостами. Протокол шины позволяет обращаться к памяти (регистрам) устройств в режиме DMA. В адресном пространстве каждого устройства имеются конфигурационные регистры, в которых содержится вся информация, необходимая для взаимодействия с ним других устройств. Данные передаются пакетами, в начале каждого пакета передаются биты состояния арбитража. Устройство может передавать данные только после успешного прохождения арбитража. Имеются два основных типа передач данных — изохронный, ради которого и строилась шина, и асинхронный. Изохронные передачи обеспечивают гарантированную полосу пропускания и время задержки, асинхронные передачи обеспечивают гарантированную доставку.
Асинхронные сообщения передаются между двумя устройствами. Инициатор посылает запрос требуемому устройству, на который оно сразу (через короткий интервал зазора, в котором шина находится в покое) отвечает подтверждением приема, положительным (ACK) или отрицательным (NACK), если обнаружена ошибка данных. Содержательный ответ на запрос (если требуется) будет передан обратно аналогичным способом (получатель должен послать подтверждение). Если подтверждение ACK не получено, передачи будут повторяться несколько раз до достижения успеха или фиксации ошибки.
Изохронные передачи ведутся широковещательно. В сети может быть организовано до 64 изохронных каналов, и каждый пакет изохронной передачи, кроме собственно данных, несет номер канала. Целостность данных контролируется CRC-кодом. Изохронные передачи всех каналов «слышат» все устройства шины, но из всех пакетов принимают только данные интересующих их каналов. Устройство-источник изохронных данных (камера, приемник, проигрыватель) на этапе конфигурирования получает номер и параметры выделенного ему канала.
Шина поддерживает динамическое реконфигурирование — возможность «горячего» подключения и отключения устройств. Когда устройство включается в сеть, оно широковещательно передает короткий асинхронный пакет самоидентификации. Все уже подключенные устройства, приняв такой пакет, фиксируют появление новичка и выполняют процедуру сброса шины. По сбросу производится определение структуры шины, каждому узлу назначается физический адрес и производится арбитраж мастера циклов, диспетчера изохронных ресурсов и контроллера шины (см. ниже). Через секунду после сброса все ресурсы становятся доступными для последующего использования, и каждое устройство имеет полное представление обо всех подключенных устройствах и их возможностях. Отключение устройства от шины также обнаруживается всеми устройствами. Благодаря наличию линий питания интерфейсная часть устройства может оставаться подключенной к шине даже при отключении питания функциональной части устройства.
Мастер циклов — устройство, посылающее каждые 125 мкс короткие широковещательные пакеты начала циклов. В каждом таком пакете мастер циклов передает значение 32-битного счетчика времени, инкрементируемого с частотой 24,576 МГц, для каждого узла, поддерживающего изохронный обмен. В каждом цикле сначала передается по одному пакету каждого активного изохронного канала, затем на некоторое время зазора шина находится в состоянии покоя. После этого зазора начинается часть цикла, отводящаяся для передачи асинхронных пакетов. Каждое устройство, нуждающееся в асинхронной передаче, в этой части цикла может передать по одному пакету. Устройство, не имеющее пакета для передачи, шину и не занимает. После того как все нуждающиеся устройства передадут по одному пакету, в оставшееся время до конца цикла устройства могут передать и дополнительные пакеты.
Диспетчер изохронных ресурсов — устройство, ведающее распределением номеров каналов и полосы шины для изохронных передач. Диспетчер требуется, когда на шине появляется хоть одно устройство, способное к изохронной передаче. Диспетчер выбирается посредством арбитража из числа устройств, поддерживающих изохронный обмен. После сброса устройства, нуждающиеся в изохронной передаче, запрашивают требуемую полосу. Полоса измеряется в специальных единицах распределения, число которых в 125-микросекундном цикле составляет 6144. Единица занимает около 20 нс, что соответствует времени передачи одного квадлета (quadlet, 32-битное слово) на частоте 1600 Мбит/с. Такой способ измерения полосы учитывает возможность совместной работы устройств с разными скоростями — в одном цикле соседние пакеты могут передаваться на разных скоростях. Как минимум 25 мкс цикла резервируется под асинхронный трафик, поэтому суммарная распределяемая полоса изохронного трафика составляет 4915 единиц. Для цифрового видео, например, требуется полоса 30 Мбит/с (25 Мбит/с на видеоданные и 3–4 Мбит/с на аудиоданные, синхронизацию и заголовки пакетов). В S100 устройства цифрового видео запрашивают около 1800 единиц, в S200 — около 900. Если требуемая полоса недоступна, диспетчер откажет устройству и не выделит ему номер канала. Устройство, не получившее канал, будет периодически повторять запрос. Когда изохронный обмен становится ненужным узлу, он должен освободить свою полосу и номер канала, чтобы этими ресурсами смогли воспользоваться другие устройства. Обмен управляющей информацией устройств с диспетчером производится асинхронными сообщениями.
Контроллер шины (Bus Master) — необязательный элемент сети 1394, который осуществляет управление устройствами. Им может являться компьютер, редактирующее устройство цифровой записи или специальный интеллектуальный пульт управления. Контроллер шины, реализующий карты топологии и скоростей (Topology_Map и Speed_Map), допускает использование нескольких частот в одной шине, в соответствии с возможностями конкретной пары устройств, участвующих в обмене. Иначе при подключении устройств, рассчитанных на разные скорости, все передачи будут происходить на скорости, доступной для всех активных устройств.
Устройства и адаптеры 1394
В PC-совместимом компьютере (в отличие от Macintosh) интерфейс 1394 пока не так распространен, как ставшая уже обязательной шина USB. Адаптеры FireWire чаще всего встречаются в виде карт расширения, но они уже встраиваются в некоторые модели системных плат. Адаптер 1394 для PC является мостом PCI — 1394, поскольку только шина PCI способна пропустить максимальный поток шины FireWire. Микросхемы для FireWire выпускает ряд фирм. Поначалу в основном использовались пары микросхем: LINK chip (микросхема уровня связи) и PHY chip (кристалл физического уровня). Это было связано со сложностью производства высокоскоростных микросхем физического уровня (на уровне связи S400 достигли быстро, а физический уровень на некоторое время «застрял» на S100 и S200). Модернизация такого адаптера сводилась лишь к последующей замене одного компонента. Сейчас применяют и однокристальные решения. Например, микросхема VIA Fire II (VT6306) представляет собой трехпортовый адаптер S400 для шины PCI, поддерживающий и шину Card Bus (для мобильных компьютеров).
Интерфейс 1394 становится общепринятым для современной цифровой бытовой аудио-, видео- и фототехники, которые используют эту шину и без участия компьютера. Кроме цифровых устройств, имеющих встроенные адаптеры 1394, к шине FireWire возможно подключение и традиционных аналоговых и цифровых устройств (плейеры, камеры, мониторы) через адаптеры-преобразователи интерфейсов и сигналов.
С интерфейсом 1394 выпускаются и устройства хранения данных — приводы CD и DVD, AV-диски (винчестеры, оптимизированные для записи и чтения мультимедийных данных). Выпускаются и преобразователи интерфейсов 1394-IDE, оформленные в виде корпусов для стандартных IDE-устройств форматов 5" или 3,5". В эти корпуса можно установить обычные винчестеры, приводы CD и DVD (включая и рекордеры), получая переносные устройства хранения данных. Для ОС и приложений устройства хранения выглядят как SCSI-устройства соответствующих классов. Это обеспечивается протоколом SBP-2 (Serial Bus Protocol), инкапсулирующим пакеты SCSI-3 в пакеты 1394.
Использование 1394
Принципиальным преимуществом шины 1394 является отсутствие необходимости в контроллере. Любое передающее устройство может получить полосу изохронного трафика и начинать передачу по сигналу автономного или дистанционного управления — приемник «услышит» эту информацию. При наличии контроллера соответствующее ПО может управлять работой устройств, реализуя, например, цифровую студию нелинейного видеомонтажа или снабжая требуемыми мультимедийными данными всех заинтересованных потребителей информации.
Для шины 1394 наиболее привлекательна возможность соединения устройств бытовой электроники (имеется в виду пока что не «наш», а «их» быт) в «домашнюю сеть», причем как с использованием PC, так и без. При этом стандартные однотипные кабели и разъемы 1394 заменяют множество разнородных соединений устройств бытовой электроники с PC. Разнотипные цифровые сигналы (сжатые видеосигналы, цифровые аудиосигналы, команды MIDI и управления устройствами, данные) мультиплексируются в одну шину, проходящую по всем помещениям. Используя одни и те же источники данных (приемники вещания, устройства хранения, видеокамеры и т.п.), можно одновременно в разных местах просматривать (прослушивать) разные программы с высоким качеством, обеспечиваемым цифровыми технологиями. Применение компьютера с адаптером 1394 и соответствующим ПО значительно расширяет возможности этой сети. Компьютер становится виртуальным коммутатором домашней аудио-видеостудии. Приложения для аудио- и видеоустройств используют логические «вилки» (plugs) и «розетки» (sockets), которые являются аналогами разъемов, применяемых в обычной аппаратуре. Вилки соответствуют выходам, розетки — входам соответствующих устройств. «Вставляя» эти «вилки» в «розетки» можно собрать требуемую систему. Конечно, для того чтобы она заработала, в устройствах должна быть реализована спецификация Digital Interface for Consumer Electronic Audio/Video Equipment — расширение стандарта IEEE-1394, предложенная DVC (Digital Video Consortium). Co временем она должна стать стандартом ISO/IEC.
Адаптер FireWire, например AHA-8940 фирмы Adaptec, может устанавливаться в любой PC (или Mac), имеющий свободный слот PCI. Для редактирования видео хватает мощности рядового современного ПК (минимальные требования — Pentium 133,32 Мбайт ОЗУ, 256 кбайт кэш, желательно быстрый SCSI-диск).
Поддержка 1394 имеется в ряде ОС, среди которых Windows 98, Windows 95 OSR 2.1 и более новые. Для редактирования аудио-видеофайлов (AVI) применимы, например, пакеты Adobe Premiere, Asymetrix Digital Video Producer, Ulead MediaStudio, MGI Video Wave. Кодек-конвертор цифровых видеоданных (DV), передаваемых по шине 1394, в AVI-файл поставляется фирмой Adaptec.
Одной из проблем цифровой передачи мультимедийной информации является защита авторских прав. Пользователь должен иметь возможность высококачественного воспроизведения принимаемых программ или приобретенных дисков, но их авторы (производители) должны иметь возможность защитить свои права, по своему усмотрению вводя ограничения на цифровое копирование. Для этих целей объединение «5C» (5 компаний: Sony, Matsushita, Intel, Hitachi и Toshiba) разрабатывает спецификацию шифрования данных.
Глава 5
Шина SCSI
Системный интерфейс малых компьютеров SCSI (Small Computer System Interface, произносится «скази») предназначен для соединения устройств различных классов: памяти прямого (жесткие диски) и последовательного доступа (стриммеры), CD-ROM, оптических дисков однократной и многократной записи, устройств автоматической смены носителей информации, принтеров, сканеров, коммуникационных устройств и процессоров. Устройством SCSI (SCSI Device) называется как хост-адаптер , связывающий шину SCSI с какой-либо внутренней шиной компьютера, так и контроллер целевого устройства (target controller), с помощью которого устройство подключается к шине SCSI. С точки зрения шины все устройства могут быть равноправными и являться как инициаторами обмена (инициализирующими устройствами, ИУ), так и целевыми устройствами (ЦУ), однако чаще всего в роли ИУ выступает хост-адаптер. Каждое ЦУ может содержать до 8 независимо адресуемых логических устройств (ЛУ) со своими номерами LUN (Logical Unit Number), представляющих ПУ или их части.
Первая версия шины, позже названная SCSI-1, была стандартизована ANSI в 1986 году (X3.131-1986). Это была 8-битная параллельная шина с максимальной частотой переключений[2]5 МТ/с, допускающая подключение до 8 устройств. Скорость передачи данных достигала 5 Мбайт/с, режим передачи данных — асинхронный, Впоследствии (1991 г.) появилась спецификация SCSI-2 (X3.131-1994), расширяющая возможности шины. Частота переключений шины Fast SCSI-2 достигает 10 MT/с, а Ultra SCSI-2 — 20 МТ/с. Разрядность данных может быть увеличена до 16 бит — эта версия называется Wide SCSI-2 (широкая), а 8-битную версию стали называть Narrow (узкая). 16-битная шина допускает включение 16 устройств. Стандарт SCSI-2 определяет и 32-битную версию интерфейса, которая не получила практического применения. Появился синхронный режим передачи данных, введена дифференциальная версия интерфейса. Спецификация SCSI-2 определяет систему команд, которая включает набор базовых команд CCS (Common Command Set), обязательных для всех ГПУ, и специфических команд для периферии различных классов. Стандарт полностью описывает протокол взаимодействия устройств, включая структуры передаваемой информации. Поддержка устройствами исполнения цепочек команд (до 256 команд) и независимость работы устройств друг от друга обусловливают высокую эффективность применения SCSI в многозадачных системах. Возможность присутствия на шине более одного контроллера (инициатора обмена) Позволяет обеспечить разделение (совместное использование) периферии несколькими компьютерами, подключенными к одной шине. Эти свойства обеспечивают SCSI неоспоримые преимущества перед ATA в качестве интерфейса для мощных систем хранения данных.
Спецификация SCSI-3 — дальнейшее развитие стандарта, направленное на увеличение количества подключаемых устройств, расширение системы команд и поддержку технологии PnP. В качестве альтернативы параллельному интерфейсу SPI (SCSI-3 Parallel Interface) появляется возможность применения последовательного, в том числе волоконно-оптического интерфейса со скоростью 100 Мбайт/с. Спецификация SCSI-3 существует в виде широкого спектра документов, определяющих отдельные аспекты интерфейса на уровне физических соединений, транспортных протоколов и наборов команд. Транспортный уровень может использовать различные протоколы с соответствующей поддержкой физических соединений :
♦ SPI (SCSI Parallel Interface) — параллельный интерфейс (разъемы, сигналы);
♦ SIP (SCSI-3 Interlocked Protocol) — протокол обмена традиционного интерфейса, физически реализуемый интерфейсом SPI;
♦ FCP (Fibre Channel Protocol) — протокол оптоволоконного канала с соответствующим физическим уровнем FC-PH со скоростью передачи данных 100 Мбайт/с;
♦ SBP (Serial Bus Protocol) — протокол последовательной шины, реализуемый интерфейсом 1394 (FireWire);
♦ GPP (Generic Packetized Protocol) — обобщенный пакетный протокол, реализуемый любым пакетным интерфейсом;
♦ SSP (Serial Storage Protocol) — последовательный протокол памяти, реализованный на архитектуре последовательной памяти SSA (Serial Storage Architecture).
Ниже описана история развития параллельных интерфейсов в спецификации SCSI-3.
♦ В стандарте SPI (1995 г.) определен P-кабель и коннекторы для широкой шины на одном кабеле с 68-контактными разъемами, называемый «кабелем SCSI-3». SPI определяет скорость Fast SCSI (Fast Wide SCSI со скоростью 20 Мбайт/с). Позже появилось дополнительная спецификация Fast-20, более известная как Ultra SCSI (Ultra Wide SCSI со скоростью 40 Мбайт/с).
♦ В стандарте SPI-2 (1999 г.) снова удвоена частота переключений благодаря использованию интерфейса LVD. Интерфейс Fast-40 SCSI более известен как Ultra2 SCSI (Wide Ultra2 SCSI со скоростью передачи 80 Мбайт/с). Введен разъем SCA-2 (Single Connector Attachment) с возможностью «горячей замены» (hot swap) и 68-контактный разъем с «очень большой» плотностью контактов VHDCI (Very High Density Connector). В стандарт SPI-2 включен и А-кабель SCSI-2, и P-кабель SPI. Это законченный документ, не ссылающийся на предыдущий и описывающий все параллельные интерфейсы SCSI, вплоть до Fast-40.
♦ В стандарте SPI-3 (2000 г.) удвоена частота передачи, но уже за счет двойной синхронизации — интерфейс Fast-80DT (DT — Double Transition), известный как Ultra3 SCSI или Ultra160. Для данного режима рассматривается только широкий (16 бит) вариант. Традиционный (высоковольтный) дифференциальный вариант, а также 32-битная шина с Q-кабелем упразднены. Рассматривается только LVD-интерфейс, синхронизация по фронтам и спадам сигналов REQ#/ACK#, вводится CRC-контроль передач, пакетированные команды и сообщения (Packetized Commands and Messaging) и быстрый арбитраж (Quick Arbitration). Это тоже законченный документ, описывающий все параллельные интерфейсы SCSI вплоть до Fast-80DT и отменяющий HVD, SCAM (SCSI Configured AutoMatically — автоматическое конфигурирование устройств) и 32-битную шину.
♦ В стандарте SPI-4 (2001 г.) снова удваивается частота переключений и получается интерфейс Fast-160DT, уже известный как Ultra320 SCSI (только широкая шина, 320 Мбайт/с).