Почти все о SCSI
Введение в SCSI
Small Computer Systems Interface (системный интерфейс для малых компьютеров) – интерфейс, разработанный для объединения на одной шине различных по своему назначению устройств, таких как жёсткие диски, накопители на магнитооптических дисках, стримеры, сканеры ит.д. Интерфейс предназначен для соединения устройств различных классов: памяти прямого и последовательного доступа, CD-ROM, оптических дисков однократной и многократной записи, устройств автоматической смены носителей информации, принтеров, сканеров, коммуникационных устройств и циклоров. Применяется в различных архитектурах компьютерных систем, а не только в PC. Стандарт определяет не только физический интерфейс, но и систему команд, управляющих устройствами SCSI. За время своего существования стандарт активно развивался.
Стандарты, описывающие SCSI
- Стандарт SCSI-1 был стандартизован ANSI ещё в 1986г.
- Стандарт SCSI-2.
- Стандарт SCSI-3 описывается документами: SIP (SCSI Interlock Protocol), SPI (SCSI Parallel Interface).
- Стандарт SPI, 1995г. Определяет Fast SCSI (Fast Wide SCSI).
- Стандарт SPI-2, 1999г. Определяет Ultra2SCSI (Wide Ultra2SCSI).
- Стандарт SPI-3, 2000г. Определяет Wide Ultra3SCSI (Ultra160).
- Стандарт SPI-4, 2001г. Определяет Ultra320SCSI.
- Стандарт EPI (Enhanced Parallel Interface). Описывает построение SCSI-систем.
Извечный спор «Что лучше, Windows или Unix?» можно перенести и на интерфейсы IDE и SCSI. но этот вопрос в такой постановке неразрешим. Каждый должен выбирать для себя сам. На долю SCSI-дисков приходится чуть менее 30% мирового рынка. В нашей стране процент использования SCSI-интерфейса по сравнению с IDE, по моему мнению, несколько ниже. Это объясняется тем, что установка на компьютер SCSI-адаптера обойдется минимум на 100долларовСША дороже, чем установка на тот же компьютер IDE.
Сравнивая эти два интерфейса, нетрудно прийти к выводу, что основные преимущества SCSI проявляются при работе в мультизадачных средах (многие тесты, проведённые под WindowsNT, показывают несомненное преимущество SCSI; задачи, связанные с обработкой видео, тоже не могут обойтись без SCSI). И ещё один вывод: наблюдая за развитием IDE, нетрудно заметить, что он приобретает многие черты SCSI.
Существует множество вариантов классификации интерфейса SCSI. Остановимся на одном из вариантов.
| Таблица 1
Классификации интерфейса SCSI
| Стандарт | Вид | Скорость на шине, Мбайт/сек | Ширина шины, биты | Максимальная длина кабеля, метров | Максимальное кол-во устройств | Внешние разъемы, кол-во контактов | Внешние разъемы, кол-во контактов | SE | LVD | HVD | Narrow/Wide | N/W | N/W | N/W | N/W | N/W | N/W | N/W | N/W | SCSI-1 | 5/– | 8/– | 6/– | 12/– | 25/– | 8/– | DB-25/–CX-50/– | LD50/- | SCSI-2 | Fast | 10/20 | 8 /16 | 3/6 | 12/12 | 25/25 | 16/16 | HD-50/HD-68 | LD50/HD68 | Ultra | 20/40 | 8/16 | 3(1,5)/3(1,5) | –/12 | 25/25 | 4(8)/4(8) | HD-50/HD-68 | LD50/HD68 | Ultra 2 | 40/80 | 8/16 | – | 12/12 | 25/25 | 8/16 | HD-50/HD-68 | LD50/HD68 | SCSI-3 | Ultra 160 | –/160 | –/16 | – | –/12 | – | | HD-68, VHDCI-68 | HD68,HD80 | Ultra 320 | –/320 | –/16 | – | –/12 | – | | HD-68, VHDCI-68 | HD68,HD80 | |
SE – Single-Ended, сигнал ТТЛ-уровня;
LVD – Low Voltage Differential, низковольтный дифференциальный;
HVD – High Voltage Differential, дифференциальный;
HD – High Density, высокая плотность контактов разъёма;
LD – Low Density, низкая плотность контактов разъёма.
SE – Single-Ended, асимметричный SCSI
Термин обозначает обычный SCSI-интерфейс, в котором для каждого сигнала на шине есть свой проводник. Этот термин часто используется для указания принадлежности к «классическому» SCSI. Сигнал передается потенциалом с ТТЛ-уровнями относительно общего провода, который должен быть отдельным для каждого сигнала для снижения уровня помех.
В LVD SCSI и последующих вариантах SCSI каждый сигнал идёт уже по 2 проводам (по одному – положительной полярности, а по другому отрицательной).
LVD – Low Voltage Differential (низковольтный дифференциальный)
Двуполярный дифференциальный сигнал, используемый для высокоскоростной передачи данных в современных вариантах SCSI-интерфейса. При использовании LVD уровень напряжения сигнала находится в пределах ±1,8В. На LVD-интерфейсе сигналы положительной и отрицательной полярности идут по разным физическим проводам. Для поддержки SCSI LVD требуется специальный кабель, состоящий из групп витых пар.
HVD – High Voltage Differential
Дифференциальный – термин, указывающий, что сигнал на SCSI двуполярный, т.е. значение определяется не только уровнем, но также и полярностью используемого напряжения. Это позволяет снизить воздействие шумов на SCSI-шину. Первый вариант SCSI-интерфейса с использованием двуполярных сигналов LVDSCSI – Ultra2SCSI.
Дифференциальная версия HVD для каждой цепи задействует пару проводников, по которым передаётся парафазный сигнал. Здесь используются специальные дифференциальные приёмопередатчики, применяемые в интерфейсе RS-485. Дифференциальный интерфейс применяется в дисковых системах серверов, но в обычных PC не распространен. Интерфейс HVD появился в SCSI-2, а в SCSI-3 упразднён, поскольку скорость 40Мбайт/с он уже не выдерживает.
В LVD-интерфейсе уровни напряжения на шине ниже, чем в случае HVD-интерфейса.
Интерфейс LVD электрически несовместим с SE и HVD, и в первую очередь это касается HVD: попытка подключить к одной шине LVD- и HVD-устройства может привести к выходу из строя LVD-устройств, так что здесь нужно быть осторожным!
Взаимоотношения интерфейсов LVD и SE, если так можно выразиться, не такие «жёсткие».
Многие фирмы решают эту проблему следующим образом:
1. Взаимоотношения интерфейсов LVD и SE
1 – SCSI-устройство, 2 – терминатор LVD, 3 – внешний разъем, 4 – преобразователь LVD – SE, 5 – терминатор SE ( младший байт), 6 – внешний разъем
В стандарте SCSI-2 даже предусмотрена возможность изготовления устройств со смешанным интерфейсом – LVD/SE. Что это такое и как оно работает? весьма просто. Устройства – в том числе и терминаторы – этого типа могут работать либо в режиме LVD, либо в режиме SE, а переключение между режимами происходит автоматически – для этого используется сигнал на проводнике DIFFSENS.
На одной шине можно смешивать SE- и LVD-устройства, и они будут синхронизировать интерфейсы автоматически – если обнаружится хотя бы одно SE-устройство, все LVD-устройства на этой шине переключатся в SE-режим. Эта способность называется MultimodeLVD. Если необходимо соединить HVD-устройства с SE- или LVD-устройствами, нужно использовать специальные конвертеры.
Устройства LVD совместимы с устройствами SE благодаря возможности их автоматического переконфигурирования (MultimodeLVD). Устройства LVD распознают напряжение на линии DIFFSENS и по низкому уровню напряжения на ней способны переключаться из режима LVD в SE. Контакт разъёма, на который выводится эта цепь, в устройствах SE заземлен, что и обеспечивает автоматическое «понижение» режима всех устройств шины до SE, если имеется хотя бы одно устройство SE.
Во время сеанса связи между инициатором обмена и получателем данных устройства «договариваются» о максимально поддерживаемой ими скорости обмена. Поэтому если обмениваются данными два Ultra2-устройства, то они посылают друг другу данные на Ultra2-скоростях, в то время как другие устройства на той же самой шине связываются в скоростях Ultra или Fast. Некоторое внимание нужно уделить электрическим интерфейсам, используемым в SCSI-устройствах. Существует три типа таких интерфейсов: Single-Ended (SE), High Voltage Differential (HVD, иногда только называемый «дифференциальным») и Low Voltage Differential (LVD). Ultra2-устройства используют только LVD-интерфейсы, и многие ошибаются, считая, что LVD и Ultra2 – это одно и тоже; но LVD-интерфейсы имеются и на некоторых FastSCSI-устройствах. На одной шине можно смешивать SE- и LVD-устройства, и они будут синхронизировать интерфейсы автоматически: если обнаружится хотя бы одно SE-устройство, все LVD-устройства на этой шине переключатся в SE-режим. Эта способность называется «Multimode». Если необходимо соединить HVD-устройства с SE- или LVD-устройствами, нужно использовать специальные конвертеры, например компаний Ancot или Paralan.
На 2 представлена диаграмма по напряжению для сигнала SE и LVD:
SE сигнал – 0В < Use0 < 0,4В; 2,4В < Use1 < 5,0В.
LVD сигнал – 1,05В < Ulvd < 1,45В, где Ulvdср. = +1,25В.
2. Диаграмма по напряжению для сигнала SE и LVD
На 3 представлено преобразование сигнала LVD.
3. Преобразование сигнала LVD
Рассмотрим несколько вариантов преобразования сигнала –Slvd–(+Slvd).
| –Slvd , В | 1,45 | 1,25 | 1,05 | 1,15 | +Slvd, В | 1,05 | 1,25 | 1,45 | 1,35 | –Slvd–(+Slvd), В | 0,4 | 0 | –0,4 | –0,2 | Логический уровень | 1 | Неопр. | 0 | Неопр. | | Кабели и разъёмы для SE и LVD идентичны, но электрической совместимости устройств нет. Поэтому принято обозначать их для различных версий SCSI по-разному (4).
| «Классический» Single-Ended SCSI | LVD SCSI. Оборудование с такой маркировкой может работать только с LVDSCSI-контроллерами | Обозначает устройство, поддерживающее как обычный, Single-Ended SCSI, так и LVDSCSI | | | | | 4. Обозначение разъёмов SCSI различных версий
Терминаторы (Terminators)
Для согласования нагрузок на шине SCSI используют терминаторы, которые по электрическим свойствам делят на: пассивные, активные и FPT-терминаторы. Терминаторы требуют питания, для чего в интерфейсе имеются специальные линии TERMINATOR POWER.
Пассивные терминаторы – с импедансом 132Ом, используются для SCSI-1. Представляют собой обычные резисторы.
Активные терминаторы – с импедансом 110Ом. Представляют собой источник опорного напряжения (стабилизатор), вырабатывающий нужный потенциал, и каждая линия соединяется резистором 110Ом с выходом этого источника.
В настоящее время, начиная с UltraSCSI, применяются только активные терминаторы. При активном согласовании используются источники вспомогательного напряжения. Разумно было бы использовать согласования с принудительным ограничением сигнала. Для реализации данного метода в активном терминаторе устанавливаются фиксирующие диоды, которые ограничивают максимальное и минимальное напряжение входных сигналов на определённом уровне.
FPT (Forced Perfect Terminator) – улучшенный вариант активных терминаторов с ограничителями выбросов. Применяется в высокочастотных версиях SCSI.
Активный терминатор, применяемый для устройств LVD, тоже должен отслеживать линию DIFFSENS и при напряжении ниже 0,7В переходить в режим SE, а при напряжении 0,85...1,85В переходить в режим LVD (см. 3). При напряжении на линии DIFFSENS выше 2,4В терминатор должен «отпускать» шину, поскольку это соответствует режиму HVD.
По исполнению терминаторы могут быть внутренними и внешними.
В большинстве случаев как контроллер, так и все приборы SCSI имеют встроенные активные терминаторы, которые можно как включить, так и отключить. Терминаторы должны быть включены на контроллере и последнем подключённом внешнем приборе (цена активного внешнего терминатора для Ultra Wide SCSI составляет 10...15долларовСША).
В настоящее время выпускаются универсальные SE/LVD-терминаторы, которые автоматически определяют тип интерфейса и выполняют согласование для данного типа интерфейса:
- DS21T07S фирмы Dallas, 9-канальный;
- VCC5672 фирмы Texas Instruments, 9-канальный;
- семейство микросхем фирмы ON Semiconductor, в т.ч. MCCS142235;
- семейство микросхем фирмы Rohm, в т.ч. BH9595FP-Y, BH9596FP-Y;
- семейство микросхем фирмы LinFinity Microelectronics Inc., в т.ч. LX5202.
Для питания терминаторов в шине предусмотрены специальные линии TERMPWR.
Активные терминаторы на каждом устройстве могут быть включены или выключены, это реализуется перестановкой одного джампера или программно, при конфигурировании устройства.
Внутренние терминаторы (или панелька для их установки) имеются во всех устройствах с не LVD-интерфейсом. В устройствах с LVD-интерфейсом внутренние терминаторы, отсутствуют.
Если используется внутреннее подключение, а внешние устройства подключаются не всё время, то необходимо переключать терминатор контроллера в соответствии с текущей конфигурацией.
Варианты подключения устройств к шине SCSI
Рассмотрим несколько вариантов подключения на одну шину устройств LVD, LVD/SE, SE, т.к. HVD-устройства могут работать только с себе подобными, да и к тому же данный тип передачи применяется в основном в серверах. В стандарте SCSI-3 этот тип передачи уже упразднён.
Возможно несколько ситуаций в зависимости от подключения к шине устройств и терминаторов разного типа – SE, LVD и LVD/SE.
| Вариант подключения к шине | Результат | Устройства SE и LVD с двумя SE- или LVD/SE-терминаторами | SE-устройства будут работать, а LVD – автоматически отключатся | Устройства SE и LVD с двумя LVD-терминаторами | Ничего работать не будет | SE- и LVD/SE-устройства с двумя SE- или LVD/SE-терминаторами | Все устройства будут работать в режиме SE | SE- и LVD/SE-устройства с двумя LVD-терминаторами | Ничего работать не будет | SE-, LVD- и LVD/SE-устройства с двумя SE- или LVD/SE-терминаторами | LVD-устройства не работают, а SE и LVD/SE работают в режиме SE | SE-, LVD- и LVD/SE-устройства с двумя LVD-терминаторами | Ничего работать не будет | LVD- и LVD/SE-устройства с двумя SE-терминаторами | LVD-устройства не работают, а LVD/SE – работают в режиме SE | LVD- и LVD/SE-устройства с двумя LVD- или LVD/SE-терминаторами | Все устройства работают в режиме LVD | | Экспериментируя с подключением SE-, LVD- и LVD/SE-устройств к одной шине, нужно также помнить, что LVD- и SE-интерфейсы имеют разные ограничения на длину шины в зависимости от скорости передачи данных (Fast-5...40) и количества подключаемых устройств.
Но может возникнуть конфликтная ситуация, когда к хост-адаптеру (с режимом LVD/SE) будет подключено два устройства: первое – LVD, а второе – SE. В этом случае все устройства должны перейти в режим SE. Для второго устройства это очевидно, а для первого – нереально, т.к. оно может работать только в режиме LVD. Возникает патовая ситуация. Решить ее можно двумя способами:
1-й способ. Необходима установка Multimode LVD SCSI Expander, который бы преобразовывал LVD в SE и обратно. Среди существующих следует отметить:
- готовые платы RTLVD-SE и RTLVD-3SE фирмы Rancho;
- микросхемы семейства ...53C141 (SYM53C141, LSI53C141) фирмы LSILogic – конвертор LVD<=>SE, повторитель SE<=>SE.
Данный метод может быть реализован только аппаратно в цикле разработки SCSI-устройств.
2-й способ. С использованием внешнего преобразователя LVD/SE.
Шина SCSI
В SCSI-системах принято делить все устройства на Инициаторы (ИУ, Initiator) и Исполнители (ЦУ, Target).
Существуют следующие варианты шины SCSI:
- Wide Wirth (широкая шина) – соответственно 16-битная шина данных (D0-D15, 27каналов [54линии] для LVD и 36линий для SE),
- Narrow Wirth (узкая шина) – соответственно 8-битная шина данных (D0-D7, 18каналов [36линий] для LVD и 18линий для SE).
Narrow шина не поддерживается последними версиями SCSI, начиная с Ultra160.
При этом возникают два варианта проблем при подключении ЦУ (Target) на шину.
Для варианта 1:
1.1. Wide Target – Wide Width,
1.2. Narrow Target – Wide Width.
Для варианта 2:
2.1. Narrow Target – Narrow Width,
2.2. Wide Target – Narrow Width.
Рассмотрим подробнее все эти случаи подробнее.
1.1. Могут возникнуть сложности с подключением терминаторов, т.к. в LVD-устройствах внутренние терминаторы встречаются редко.
Самая простая задача (не должно быть никаких проблем).
1.2. Переходник (адаптер с 68- на 50-контактный разъём) должен терминировать High Byte, если Narrow Target крайнее на шине.
На Wide Target следует установить джампер Disable Wide, терминация High Byte.
Wide Width состоит из старшего байта (High Byte) и младшего байта (Low Byte).
Narrow Width (контроллер всегда SE) представляет Low Byte's Wide Width. Narrow Width можно рассматривать как подмножество Wide Width, у которого используется только Low Byte's Data Bus. В простых одноканальных контроллерах контакты Narrow Width запараллелены с частью контактов Wide Width. При этом можно использовать смесь широких и узких устройств, для чего терминаторы на контроллере разделены на две половины: терминаторы младшего байта (TrmL) и старшего байта (TrmH) – и должны управляться независимо.
Т.е. должны быть соответствующие переключатели: либо на Target, либо на переходниках (TrmH в положении ON, а TrmL в положении OFF, старшие разряды всегда должны быть затерминированы). Если LVD/SE Target имеет переключатель режимов, то для согласования режимов необходимо переключить в режим SE Mode.
В обоих этих вариантах придется столкнуться с разнообразием разъёмов, применяемых для интерфейсов SCSI, из-за этого может возникнуть потребность в применении переходных адаптеров от одного типа разъёма к другому. Подробно о типах разъёмов, применяемых в SCSI-устройствах, см. «Типы применяемых в SCSI разъемов».
Подключение периферии
5. Структурная схема подключения периферии
6. Структурная схема кабеля для двух периферийных устройств
1, 2, 3 – разъём (розетка);
4 – кабель SCSI LVD, состоящий из витых пар;
5, 6 – разъём (вилка) целевого устройства (ЦУ, target);
7 – разъём (вилка) инициатора (ИУ, initiator).
Типы применяемых в SCSI разъёмов
На 7 представлены типы применяемых в SCSI разъёмов.
7. Типы применяемых в SCSI разъёмов
Иногда ещё используют внешний разъём VHDCI-68.
Возможен вариант, когда для подключения Wide Width используют два разъёма HD50.
Внешние разъёмы
В большинстве случаев используется пять (5) видов внешних разъёмов: HD-68, HD-50, CX-50, DB-25, VHDCI-68. Иногда необходимо применение переходников, если подключаемые к внешней шине устройства SCSI имеют различные внешние разъёмы.
Такие переходники существуют. Цена одного колеблется от 10 до 35 долларов США.
Самый распространенный внешний разъём, применяемый в устройствах SCSI, – HE68Female (см. 8 и табл.2)
8. Внешний вид разъёма HD-68
Контакты разъёма HD68 приведены в табл.2.
В стандарте SPI (SCSI Parallel Interface, 1995г.) определен Р-кабель и коннекторы для организации широкой (16бит) шины на одном кабеле. Этот кабель с 68-контактными разъёмами HD-68M (8) называют кабелем SCSI-3.
Разъёмы Р-кабеля SCSI для цепиSE приведены в табл.2.
Внутренние разъёмы
Самый распространенный внутренний разъём, применяемый в устройствах SCSI, – HE68Male (табл.2) и HE50Male (табл.4).
Таблица 2
Внешний и внутренний разъем HD68. Применяется в интерфейсах SCSI-2,3. Определен стандартом SPI (1995г.)
| Single-Ended SCSI | Differential SCSI | HD-68 | | Single-Ended SCSI | Differential SCSI | HD-68 | Signal name | Signal name | Pin# | Signal name | Signal name | Pin# | | | Ground | + Data Bit 12 | 1 | Data Bit 12 | – Data Bit 12 | 35 | Ground | + Data Bit 13 | 2 | Data Bit 13 | – Data Bit 13 | 36 | Ground | + Data Bit 14 | 3 | Data Bit 14 | – Data Bit 14 | 37 | Ground | + Data Bit 15 | 4 | Data Bit 15 | – Data Bit 15 | 38 | Ground | + Parity Bit 1 | 5 | Parity Bit 1 | – Parity Bit 1 | 39 | Ground | + Data Bit 0 | 6 | Data Bit 0 | – Data Bit 0 | 40 | Ground | + Data Bit 1 | 7 | Data Bit 1 | – Data Bit 1 | 41 | Ground | + Data Bit 2 | 8 | Data Bit 2 | – Data Bit 2 | 42 | Ground | + Data Bit 3 | 9 | Data Bit 3 | – Data Bit 3 | 43 | Ground | + Data Bit 4 | 10 | Data Bit 4 | – Data Bit 4 | 44 | Ground | + Data Bit 5 | 11 | Data Bit 5 | – Data Bit 5 | 45 | Ground | + Data Bit 6 | 12 | Data Bit 6 | – Data Bit 6 | 46 | Ground | + Data Bit 7 | 13 | Data Bit 7 | – Data Bit 7 | 47 | Ground | + Parity Bit 0 | 14 | Parity Bit 0 | – Parity Bit 0 | 48 | Ground | Ground | 15 | Ground | Ground | 49 | Ground | Diffsens | 16 | Ground | Ground | 50 | Term-n Power | Term-n Power | 17 | Term-n Power | Term-n Power | 51 | Term-n Power | Term-n Power | 18 | Term-n Power | Term-n Power | 52 | Reserved | Reserved | 19 | Reserved | Reserved | 53 | Ground | Ground | 20 | Ground | Ground | 54 | Ground | + Attention | 21 | Attention | – Attention | 55 | Ground | Ground | 22 | Ground | Ground | 56 | Ground | + Busy | 23 | Busy | – Busy | 57 | Ground | +Acknowledge | 24 | Acknowledge | – Acknowledge | 58 | Ground | + Reset | 25 | Reset | – Reset | 59 | Ground | +Message | 26 | Message | – Message | 60 | Ground | + Select | 27 | Select | – Select | 61 | Ground | +Com./Data | 28 | Com./Data | –Com./Data | 62 | Ground | + Request | 29 | Request | – Request | 63 | Ground | +Input/Outpt | 30 | Input/Output | – Input/Output | 64 | Ground | + Data Bit 8 | 31 | Data Bit 8 | – Data Bit 8 | 65 | Ground | + Data Bit 9 | 32 | Data Bit 9 | – Data Bit 9 | 66 | Ground | + Data Bit 10 | 33 | Data Bit 10 | – Data Bit 10 | 67 | Ground | + Data Bit 11 | 34 | Data Bit 11 | – Data Bit 11 | 68 | | Таблица 3
Внешние разъемы LD50 и HD50 SCSI
| Single-Ended SCSI | Differential SCSI | HD-50 | | Single-Ended SCSI | Differential SCSI | HD-50 | Signal name | Signal name | Pin# | Signal name | Signal name | Pin# | | | Ground | + Data Bit 0 | 1 | Data Bit 0 | – Data Bit 0 | 26 | Ground | + Data Bit 1 | 2 | Data Bit 1 | – Data Bit 1 | 27 | Ground | + Data Bit 2 | 3 | Data Bit 2 | – Data Bit 2 | 28 | Ground | + Data Bit 3 | 4 | Data Bit 3 | – Data Bit 3 | 29 | Ground | + Data Bit 4 | 5 | Data Bit 4 | – Data Bit 4 | 30 | Ground | + Data Bit 5 | 6 | Data Bit 5 | – Data Bit 5 | 31 | Ground | + Data Bit 6 | 7 | Data Bit 6 | – Data Bit 6 | 32 | Ground | + Data Bit 7 | 8 | Data Bit 7 | – Data Bit 7 | 33 | Ground | + Parity Bit 0 | 9 | Parity Bit 0 | – Parity Bit 0 | 34 | Ground | Ground | 10 | Ground | Ground | 35 | Ground | Ground | 11 | Ground | Ground | 36 | Reserved | Reserved | 12 | Reserved | Reserved | 37 | Ground | Ground | 13 | Term-n Power | Term-n Power | 38 | Reserved | Reserved | 14 | Reserved | Reserved | 39 | Ground | Ground | 15 | Ground | Ground | 40 | Ground | + Attention | 16 | Attention | – Attention | 41 | Ground | Ground | 17 | Ground | Ground | 42 | Ground | + Busy | 18 | Busy | – Busy | 43 | Ground | + Acknowledge | 19 | Acknowledge | – Acknowledge | 44 | Ground | + Reset | 20 | Reset | – Reset | 45 | Ground | + Message | 21 | Message | – Message | 46 | Ground | + Select | 22 | Select | – Select | 47 | Ground | + C/D | 23 | C/D | – C/D | 48 | Ground | + Request | 24 | Request | – Request | 49 | Ground | + I/O | 25 | I/O | – I/O | 50 | | Таблица 4
Разъем HE50 SCSI
| Single-Ended SCSI | Differential SCSI | HE-50 | | Single-Ended SCSI | Differential SCSI | HE-50 | Signal name | Signal name | Pin# | Signal name | Signal name | Pin# | | | Ground | + Data Bit 0 | 1 | Term-n Power | Term-n Power | 26 | Ground | – Data Bit 0 | 2 | Reserved | Reserved | 27 | Ground | + Data Bit 1 | 3 | Reserved | Reserved | 28 | Ground | – Data Bit 1 | 4 | Ground | Ground | 29 | Ground | + Data Bit 2 | 5 | Ground | Ground | 30 | Ground | – Data Bit 2 | 6 | Ground | + Attention | 31 | Ground | + Data Bit 3 | 7 | Attention | – Attention | 32 | Ground | – Data Bit 3 | 8 | Ground | Ground | 33 | Ground | + Data Bit 4 | 9 | Ground | Ground | 34 | Ground | – Data Bit 4 | 10 | Ground | + Busy | 35 | Ground | + Data Bit 5 | 11 | Busy | – Busy | 36 | Reserved | – Data Bit 5 | 12 | Ground | + Acnowledge | 37 | Ground | + Data Bit 6 | 13 | Acknowledge | – Acknowledge | 38 | Reserved | – Data Bit 6 | 14 | Ground | + Reset | 39 | Ground | + Data Bit 7 | 15 | Reset | – Reset | 40 | Ground | – Data Bit 7 | 16 | Ground | + Message | 41 | Ground | + Parity Bit 0 | 17 | Message | – Message | 42 | Ground | – Parity Bit 0 | 18 | Ground | + Select | 43 | Ground | Ground | 19 | – Select | – Select | 44 | Ground | Ground | 20 | Ground | + C/D | 45 | Ground | Ground | 21 | C/D | – C/D | 46 | Ground | Ground | 22 | Ground | + Request | 47 | Ground | Reserved | 23 | Request | – Request | 48 | Ground | Reserved | 24 | Ground | + I/O | 49 | Ground | Ground | 25 | I/O | – I/O | 50 | | Фазы шины
В каждый конкретный момент времени шина SCSI может находиться только в одной из перечисленных фаз:
1. Bus Free – шина находится в состоянии покоя.
2. Arbitration – устройство (ИУ) может получить право на управление шиной.
3.
3.1. Selection – инициатор, выигравший арбитраж, выбирает ЦУ (только одно), с которым он будет работать.
3.2. Reselection – аналогична предыдущей, но её вводит целевое устройство. Т.е. ИУ и ЦУ меняются ролями – ЦУ вызывает ИУ.
4. Command In (Out), Data In (Out), Status, Message In (Out) – информационные фазы (по шине данных передается информация).
Последовательность фаз представлена на 9.
9. Последовательность фаз шины SCSI
После фазы Selection ИУ может проводить процедуру тайм-аута выбора (Selection Time-Out), которая может быть реализована двумя методами:
1. Hard Reset.
2. Переход в фазу Bus Free.
Для реализации фазы Reselection во всех вышеприведенных фазах Initiator и Target меняются местами в вопросах выполнения действий.
В любом случае завершающей фазой является фаза Message In, в которой передается сообщение Disconnect или Command Complete, после чего шина переходит в состояние Bus Free.
В любой системе SCSI предусмотрена возможность сброса системы (Reset), для чего имеется линия Reset, на которую может быть выставлен сигнал сброса в любое время и любым устройством. Обработка сигнала Reset может быть реализована двумя методами:
1. Жёсткий сброс (Hard Reset) – аналогичен отключению питания для всех устройств системы SCSI.
2. Мягкий сброс (Soft Reset) – позволяет одному инициатору выполнить сброс шины SCSI, не нарушая работы других инициаторов в системе, где таких инициаторов несколько.
Сигналы управления шины SCSI
В шине SCSI используются девять сигналов управления, активным уровнем которых является низкий уровень сигнала: BSY (Занят), SEL (Выбор), C/D (Управление/Данные), I/O (Ввод/Вывод), MSG (Сообщение), REQ (Запрос), ACK (Подтверждение), RST (Сброс), ATN (Внимание).
Источники вышеприведённых сигналов приведены в табл.5.
Таблица 5
Источники сигналов управления шины SCSI
| Сигнал | BSY | SEL | C/D | I/O | MSG | REQ | ACK | RST | ATN | Источник | ИУ, ЦУ | ИУ, ЦУ | ЦУ | ЦУ | ЦУ | ЦУ | ИУ | ИУ, ЦУ | ИУ | | Между фазами передачи информации сигналы Busy, Select, REQ, ACK должны оставаться в неизменном состоянии, меняться могут только значения сигналов Msg, C/D, I/O.
Информационные фазы передачи информации Data Out (In), Command, Status, Message Out (In)
Target управляет сигналами Msg, C/D, I/O, в зависимости от комбинации которых идентифицируются фазы шины Data Out (In), Command, Status, Message Out (In).
Таблица 6
Информационные фазы SCSI
| Сигнал | Фаза | Направление | MSG | C/D | I/O | 0 | 0 | 0 | Data Out | ИУ -> ЦУ | 0 | 0 | 1 | Data In | ИУ <- ЦУ | 0 | 1 | 0 | Command | ИУ -> ЦУ | 0 | 1 | 1 | Status | ИУ <- ЦУ | 1 | 0 | 0 | Зарезервировано | | 1 | 0 | 1 | Зарезервировано | | 1 | 1 | 0 | Message Out | ИУ -> ЦУ | 1 | 1 | 1 | Message In | ИУ <- ЦУ | | Асинхронная передача данных
Является обязательной для всех устройств SCSI и всех фаз передачи информации. Target управляет направлением передачи информации с помощью сигнала I/O:
I/O = «0» – передача Initiator => Target,
I/O = «1» – передача Initiator <= Target.
Передача каждого байта сопровождается взаимосвязанной парой сигналов REQ/ACK. Initiator фиксирует принимаемые данные по отрицательному перепаду сигнала REQ, Target считает принимаемые данные действительными по отрицательному перепаду сигнала ACK.
10. Временные диаграммы асинхронной передачи данных
Т – источник данных Target, I – источник данных Initiator
Синхронная передача данных
Является опцией и может использоваться в фазах Data Out и Data In и только по результатам предварительной договорённости, которая реализуется посредством сообщений «Synchronous Data Transfer Request».
11. Временные диаграммы синхронной передачи данных
Т – источник данных Target, I – источник данных Initiator
Управление интерфейсом
Для управления интерфейсом служит система сообщений. Всего сообщений – 28. Форматы сообщений стандартизированы, существуют однобайтные, двухбайтные и расширенные сообщения. В двухбайтном сообщении второй байт является аргументом сообщения, в расширенных сообщениях второй байт задаёт длину сообщения, а последующие байты несут код и аргументы сообщения.
Рассмотрим внутреннюю структуру сообщения на примере однобайтного сообщения «Identify».
Identify Message (80h-FFh)
| ByteBit | 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 (номер ЛУ).
Адресация и система команд
SCSI ID (бит идентификатора)
Бит идентификатора является единственным битом на шине данных, который соответствует уникальному адресу устройства на шине SCSI. Каждое устройство SCSI должно иметь свой уникальный адрес, назначаемый при конфигурировании. Бит идентификатора (адрес) задаётся при конфигурировании предварительной установкой переключателей или джамперов. Для хост-адаптера возможно программное конфигурирование.
Для хост-адаптера:
1. Narrow Width | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
2. Wide Width | D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Заводская установка ID для HDD SCSI всегда устанавливается на 0h или 1h.
Для двух подключаемых HDD:
Первый HDD | D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | |
Второй HDD | D15 | D14 | D13 | D12 | D11 | D10 | D9 | D8 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | Именно эта функция определяет максимальное количество устройств, которое может одновременно находится на шине SCSI: 16 на Wide Width и 8 на Narrow Width, включая хост-адаптер.
SCSI pointers (указатели SCSI)
SCSI-архитектура предлагает устанавливать для каждого цикла ввода/вывода сохранение в Initiator Path Control Area два набора из трех указателей, которые состоят из:
- Указатель команды (Command Pointer) – 1байт. Указывает на начало дескриптора блока команды (т.е. на код команды).
- Указатель статуса (Status Pointer) – 1байт. Указывает на начало Status Area.
- Указатель данных (Data Pointer) – макс. 4байта. Указывает на начало области данных (т.е. LBA).
Первый набор указателей называется Current (Active) Pointers и хранится в регистре текущих указателей (Current Pointer Register) ИУ. Текущие указатели указывают на очередной байт команды, состояния и данных, которые будут передаваться между памятью ИУ и ЦУ. Current Pointers заносятся в регистр до начала фазы шины Arbitration и хранятся там до завершения команды (прием от ИУ сообщения Good Status), либо до получения сообщения Save Data Pointer, после чего записываются в «сохранение указателей» (Saved Pointers).
Второй набор указателей называется Saved Pointers (до 15 [7] наборов для широкой [узкой] шины, по одному на каждое устройство).
Минимальная задержка на освобождение SCSI-шины (Bus Clear Delay) – 800нс. За это время ИУ должен восстановить указатели из памяти в регистр текущих указателей.
Биты чётности (DPB0, DPB1)
Использование битов чётности – системная опция. Но устройство всегда проверяет биты чётности на шине и если имеет возможность, то сообщает об ошибке бита чётности хост-адаптеру. Эта возможность определяется устройством для каждого конкретного устройства отдельно.
SCSI-система может иметь такую конфигурацию, когда все подключённые к интерфейсу устройства генерируют бит чётности и регистрация чётности для всех устройств включена. Система может также иметь конфигурацию, когда регистрация чётности отсутствует и проверка по чётности вообще не осуществляется.
Во время фазы Arbitration (см. 9) чётность не используется (DPB0, DPB1 не должны устанавливаться в состояние логического нуля).
Система команд SCSI
Система команд SCSI включает общие команды, применимые для устройств всех классов, и специфические для каждого класса. Все команды делятся на три категории:
- обязательные (mandatory);
- дополнительные (optional);
- фирменные (vendor specific).
Любое SCSI-устройство должно поддерживать обязательные команды общего набора и своего класса, чем обеспечивается высокий уровень совместимости. Команды SCSI для устройств прямого доступа (Direct-Access Devices) приведены в табл.7.
Таблица 7
Команды SCSI для устройств прямого доступа
| № | Команда | Код команды | Тип команды | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 | CHANGE DEFINITION
COMPARE
COPY
COPY AND VERIFY
FORMAT UNIT
INQUIRY
LOCK-UNLOCK CACHE
LOG SELECT
LOG SENSE
MODE SELECT (6)
MODE SELECT (10)
MODE SENSE (6)
MODE SENSE (10)
PRE-FETCH
PREVENT-ALLOW MEDIUM REMOVAL
READ (6)
READ (10)
READ BUFFER
READ CAPACITY
READ DEFECT DATA
READ LONG
REASSIGN BLOCKS
RECEIVE DIAGNOSTIC RESULTS
RELEASE
REQUEST SENSE
RESERVE
REZERO UNIT
SEARCH DATA EQUAL
SEARCH DATA HIGH
SEARCH DATA LOW
SEEK (6)
SEEK (10)
SEND DIAGNOSTIC
SET LIMITS
START STOP UNIT
SYNCHRONIZE CACHE
TEST UNIT READY
VERIFY
WRITE (6)
WRITE (10)
WRITE AND VERIFY
WRITE BUFFER
WRITE LONG
WRITE SAME | 40h
39h
18h
3Ah
04h
12h
36h
4Ch
4Dh
15h
55h
1Ah
5Ah
34h
1Eh
08h
28h
3Ch
25h
37h
3Eh
07h
1Ch
17h
03h
16h
01h
31h
30h
32h
0Bh
2Bh
1Dh
33h
1Bh
35h
00h
2Fh
0Ah
2Ah
2Eh
3Bh
3Fh
41h | O
O
O
O
M
M
O
O
O
O
O
O
O
O
O
M
M
O
M
O
O
O
O
M
M
M
O
O
O
O
O
O
M
O
O
O
M
O
O
O
O
O
O
O | Примечание: M – обязательные команды, O – опциональные команды. | Некоторые команды сопровождаются блоком параметров, следующим за блоком дескриптора команды. Форматы блоков стандартизированы, длина блока определяется кодом операции, который всегда является первым байтом блока и может составлять 6, 10 или 12байтов.
Любое ЦУ SCSI должно поддерживать четыре команды: Inquiry, Request Sense, Send Diagnostic, Test Unit Ready.
Рассмотрим структуру команды SCSI на примере 6-байтной команды Copy.
| ByteBit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | | | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | Operation Code | 1 | | 0 | 0 | 0 | 0 | | LUN | Reserved | Pad | 2 | | Parameter List Length (MSB) | 3 | | Parameter List Length | 4 | | Parameter List Length (LSB) | 5 | | 0 | 0 | 0 | 0 | | | Vendor Unique | Reser | Flag | Link | | Байт 5 является контрольным (Control byte);
Operation Code – код операции 18h;
LUN – Logical Unit Number, номер логического блока;
Reserved – зарезервировано для последующих стандартов, должны быть записаны нули;
Parameter List Length – длина списка параметров (MSB – старший байт, LSB – младший байт);
Vendor Unique – определяется разработчиком (изготовителем);
Flag – определяет сообщение, передаваемое в случае успешного выполнения команд цепочки;
Link – признак объединения команд в цепочку;
Pad – используется в связке с Cat bit, определяет, какое действие будет следующим, если сегмент копирования не соответствует точному числу блоков назначения.
Команда копирования обеспечивает возможность копирования данных с одного логического блока на другой или на тот же логический блок. Логические блоки могут располагаться на разных устройствах SCSI либо на одном и том же. Некоторые устройства SCSI могут не поддерживать операцию копирования для «третьей стороны», где копирующее устройство не является исходным устройством или устройством назначения. Некоторые устройства SCSI поддерживают только операции копирования в рамках одного устройства SCSI, но без участия других устройств SCSI.
Parameter List Length указывает число байтов параметров, которые должны быть переданы во время выполнения фазы Data Out команды.
Parameter List (список параметров)
Parameter List (список параметров) опять начинается с четырёх байтов заголовка, который указывает функциональный код команды Copy (для устройств прямого доступа = 02h) и приоритетность.
| ByteBit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | 0 | 0 | 0 | 0 | 1 | 0 | | | | Copy Function Code | Priority | 1 | | | | | | | | | Vendor Unique | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Reserved | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Reserved | Segment Descriptor(one or more) | 0
n | | Segment Descriptor 0 | 0
n | | Segment Descriptor 1 | | ... | | 0
n | | Segment Descriptor X | | Copy Function Code – функциональный код команды Copy (для устройств прямого доступа = 02h);
Priority – приоритетность;
Vendor Unique – определяется разработчиком (изготовителем);
Reserved – зарезервировано для последующих стандартов, должны быть записаны нули;
Segment Descriptor – дескриптор сегмента, максимальное их количество не должно превышать 256, т.е. Xmax=255 (FFh);
Segment Descriptor (дескриптор сегмента) для команды Copy для устройств прямого доступа (функциональный код = 02h).
| ByteBit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | 0 | | | | | Source address | DC | Cat | Source LUN | 1 | | 0 | 0 | | Destination address | Reserved | Destination LUN | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Reserved | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Reserved | 4 | | Number of Blocks (MSB) | 5 | | Number of Blocks | 6 | | Number of Blocks | 7 | | Number of Blocks (LSB) | 8 | | Source Logical Block Address (MSB) | 9 | | Source Logical Block Address | 10 | | Source Logical Block Address | 11 | | Source Logical Block Address (LSB) | 12 | | Destination Logical Block Address (MSB) | 13 | | Destination Logical Block Address | 14 | | Destination Logical Block Address | 15 | | Destination Logical Block Address (LSB) | | Source address – исходный адрес;
DC* (Destination Count) – удалённый индекс;
Cat** (catenate bit [optional]) – связывающий бит;
Source LUN – номер исходного логического блока;
Destination address – адрес назначения;
Reserved – зарезервировано для последующих стандартов, должны быть записаны нули;
Destination LUN – номер логического блока назначения;
Number of Blocks – число блоков;
Source Logical Block Address – адрес исходного логического блока;
Destination Logical Block Address – адрес логического блока назначения;
MSB – старший байт;
LSB – младший байт.
* Если DC = 1, то поле числа блоков (Number of Blocks) относится к логической единице источника (Source Logical Unit). Если DC=0, то поле числа блоков (Number of Blocks) относится к логической единице назначения (Destination Logical Unit).
** Если Cat = 1, то устройство, управляющее копированием, будет связывать последний блок сегмента источника с первым блоком следующего сегмента источника, если последний блок источника не заканчивается точно в конце блока назначения. Cat=0 зависит от установки pad bit в блоке дескриптора команды.
Список литературы
- Гук М. Дисковая подсистема ПК. – Санкт-Петербург, 2001.
- Интерфейс малой компьютерной системы (ИМКС) / Всесоюзный центр переводов научно-технической литературы и документации (ВЦП). Северо-Кавказский филиал. – Ростов-н/Д, 1989.
- SCSI Interface: Product Manual. Vol. 1, 2 / Seagate.
- SCSI-2Specification.
Электронная версия: © ЕПОС.
|
Читайте далее: Зачем в конденсаторе дырка: новая конструкция электролитических конденсаторов бо, Знакомство с пакетом DesignLab 8, Термоотверждаемый эпоксидный клей для технологии смешанного монтажа, Weller — мир профессионального паяльного оборудования (1), Weller — мир профессионального паяльного оборудования (3), Электрический паяльник инженера Сакса. История и современность., Схемотехника при разработке устройств на микроконтроллерах, Конфигурируемая система на кристалле Е5 — первое знакомство, IR21571— контроллер электронных балластов нового поколения, Однокристальные системы сбора данных семейства ADuC8xx, «NO EXCUSES» — специальная программа компании MOTOROLA, Встречайте, R100-XP !!!, Микроконтроллеры фирмы NEC. Часть 1., ШИМ-контроллеры малой мощности TinySwitch от Power Integrations, Микроконтроллеры фирмы AMD, Схема сброса и Watcdog-таймер, ГЛЮКИ МИКРОКОНТРОЛЛЕРОВ PIC, Технологии и компоненты передачи данных по линиям электропитания, НАБОР КОМАНД PIC МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА PIC18XXXX,
|