Интерфейсы SCSI
Интерфейс SCSI был разработан в конце
1970-х годов и предложен организацией Shugart Associates. Первый
стандарт на этот интерфейс был принят в 1986 г. SCSI определяет только логический и
физический уровень. Устройства, подключенные к шине SCSI, могут играть две роли: Initiator
(ведущий) и Target (ведомый), причем одно и то же устройство может
быть как ведущим, так и ведомым. К шине может быть подключено до
восьми устройств. Каждое устройство на магистрали имеет свой адрес
(SCSI ID) в диапазоне от 0 до 7. Одно из этих устройств -
хост-адаптер SCSI. Ему обычно назначают
SCSI ID = 7. Хост-адаптер предназначен для осуществления обмена с
процессором. Хост-адаптер, как правило, имеет разъемы для
подключения как встраиваемых, так и внешних SCSI-устройств.
Стандарт SCSI определяет два способа
передачи сигналов - синфазный и дифференциальный. В первом случае
сигналы на линиях имеют ТТЛ-уровни, при этом длина кабеля ограничена
6 м. Версии шины SCSI с дифференциальной
передачей сигнала ("токовой петлей") дают возможность увеличить
длину шины до 25 м.
Чтобы гарантировать качество сигналов на магистрали SCSI, линии шины должны быть с обеих сторон
согласованы при помощи набора согласующих резисторов, или
терминаторов. Терминаторы должны быть установлены на хост-адаптере и
на последнем устройстве магистрали. Обычно используют один из трех
методов согласования:
- пассивное согласование при помощи резисторов;
- FPT (Force Perfect Termination) - улучшенное согласование с
исключением перегрузок при помощи ограничительных диодов;
- активное согласование при помощи регуляторов
напряжения.
Обмен данными между устройствами на шине SCSI происходит в соответствии с протоколом
высокого уровня на основе стандартного списка команд - CCS (Common
Command Set). Этот универсальный набор команд обеспечивает доступ к
данным с помощью адресации логических, а не физических блоков. С
внедрением в спецификацию CSS команд, поддерживающих приводы CD-ROM,
коммуникационные устройства, сканеры и др. (стандарт SCSI-2), стала
осуществимой работа практически с любыми блочными устройствами.
На магистрали SCSI возможны синхронные
и асинхронные передачи. В асинхронном режиме передача данных
сопровождается сигналом запроса и заканчивается только после
получения сигнала подтверждения. При синхронной передаче данных
ведущее устройство не дожидается сигналов подтверждения перед
выдачей сигнала запроса и приема следующих данных. После выдачи
определенной серии импульсов запроса ведущее устройство сравнивает
его с числом подтверждений, чтобы удостовериться, что группа данных
принята успешно. Т.к. в этом режиме все равно участвуют сигналы
квитирования, его еще называют асинхронным с согласованием
скорости.
В исходном стандарте шина SCSI имеет
восемь линий данных. Для повышения производительности в спецификацию
SCSI-2 введен так называемый широкий (Wide) вариант шины данных,
предусматривающий наличие дополнительных 24 разрядов. Для повышения
пропускной способности шины SCSI было
предложено увеличить тактовую частоту обмена примерно в два раза,
что послужило основой нового стандарта - Fast SCSI-2. Дальнейшее
увеличение пропускной способности шины привело к появлению стандарта
UltraSCSI (см. табл.
15.1).
Таблица 15.1. Сравнение различных вариантов интерфейса
SCSI-2
Стандарт |
Максимальная пропускная
способность |
Максимальная длина кабеля
(синфазный) |
8 бит |
Wide SCSI |
16 бит |
32 бит |
SCSI |
5 Мбайт/с |
10 Мбайт/с |
20 Мбайт/с |
6 м |
Fast SCSI |
10 Мбайт/с |
20 Мбайт/с |
40 Мбайт/с |
3 м |
UltraSCSI |
20 Мбайт/с |
40 Мбайт/с |
80 Мбайт/с |
1,5 м |
Следует отметить, что существует также спецификация на
программный интерфейс драйверов хост-адаптера и SCSI-устройств,
разработанная фирмой Adaptec, ASPI (Advanced SCSI Programming
Interface). Другая спецификация - SCAM (SCSI Configuration Auto
Magically) - позволяет упростить настройку SCSI-устройств и скрыть
от пользователя некоторые ее детали.
Интерфейс RS-232C
Стандарт на последовательный интерфейс RS-232C был опубликован в 1969 г. Ассоциацией
электронной промышленности (EIA). Первоначально этот интерфейс
использовался для подключения ЭВМ и терминалов к системе связи через
модемы, а также для непосредственного подключения терминалов к
машинам. До недавнего времени последовательный интерфейс
использовался для широкого спектра периферийных устройств (плоттеры,
принтеры, мыши, модемы и др.), но сейчас активно вытесняется
интерфейсом USB.
Стандарт RS-232C определяет:
- механические характеристики интерфейса (разд.1) - разъемы и
соединители;
- электрические характеристики сигналов (разд.2) - логические
уровни;
- функциональные описания интерфейсных схем (разд.4) - протоколы
передачи;
- стандартные интерфейсы для выбранных конфигураций систем связи
(разд. 5).
В 1975 г. были приняты стандарты RS-422 (электрические
характеристики симметричных цепей цифрового интерфейса) и RS-423
(электрические характеристики несимметричных цепей цифрового
интерфейса), позволяющие увеличить скорость передачи данных по
последовательному интерфейсу.
Обычно ПК имеют в своем составе два интерфейса RS-232C, которые обозначаются COM1 и COM2.
Возможна установка дополнительного оборудования, которое
обеспечивает функционирование в составе PC четырех, восьми и
шестнадцати интерфейсов RS-232C. Для
подключения устройств используется 9-контактный (DB9) или
25-контактный (DB25) разъем.
Интерфейс RS-232C содержит сигналы
квитирования, обеспечивая асинхронный режим функционирования (табл.
15.2). При этом одно из устройств (обычно компьютер) выступает
как DTE (Data Terminal Equipment - оконечное устройство), а другое -
как DCE (Data Communication Equipment - устройство передачи данных),
например, модем. Соответственно, если для DTE какой-то сигнал
является входным, то для DCE этот сигнал будет выходным, и
наоборот.
Таблица 15.2. Сигналы интерфейса RS-232C
Сигнал |
Номер контата |
Описание |
DB25 |
DB9 |
FG |
1 |
- |
Fore Ground. Защитное
заземление |
TxD |
2 |
3 |
Transmit Data. Данные,
передаваемые DTE |
RxD |
3 |
2 |
Receive Data. Данные,
принимаемые DTE |
RTS |
4 |
7 |
Request To Send. Запрос
передачи, выставляется DTE |
CTS |
5 |
8 |
Clear To Send. Сигнал сброса
для передачи, выставляется DCE при готовности к приему |
DSR |
6 |
6 |
Data Set Ready. Готовность
данных, выставляется DCE при готовности к передаче |
SG |
7 |
5 |
Signal Ground. Сигнальное
заземление, "нулевой" провод |
DCD |
8 |
1 |
Data Carrier Detect.
Обнаружение несущей данных, выставляется DCE при
детектировании принимаемого сигнала |
DTR |
20 |
4 |
Data Terminal Ready. Готовность
DTE |
|
|
|
|
RI |
22 |
9 |
Ring Indicator. Индикатор
вызова, выставляется DCE при приеме вызова по телефонной
сети |
В то же время, в простейшем случае для обмена могут
использоваться лишь три линии: TxD, RxD и SG - без использования
сигналов квитирования.
Основные принципы обмена информацией по интерфейсу RS-232C заключаются в следующем:
- Обмен данными обеспечивается по двум цепям, каждая из которых
является для одной из сторон передающей, а для другой - приемной.
- В исходном состоянии по каждой из этих цепей передается
двоичная единица, т.е. стоповая посылка. Передача стоповой посылки
может выполняться сколь угодно долго.
- Передаче каждого пакета данных предшествует передача стартовой
посылки, т.е. передача двоичного нуля в течение времени, равного
времени передачи одного бита данных.
- После передачи стартовой посылки обеспечивается
последовательная передача всех разрядов данных, начиная с младшего
разряда. Количество битов может быть 5, 6, 7 или 8.
- После передачи последнего бита данных возможна передача
контрольного разряда, который дополняет сумму по модулю 2
переданных разрядов до четности или нечетности. В некоторых
системах передача контрольного бита не выполняется.
- После передачи контрольного разряда или последнего бита, если
формирование контрольного разряда не предусмотрено, обеспечивается
передача стоповой посылки. Минимальная длительность посылки может
быть равной длительности передачи одного, полутора или двух бит
данных.
Обмен данными по описанным выше принципам требует
предварительного согласования приемника и передатчика по скорости
(длительности бита) (300-115200 бит/с), количеству используемых
разрядов в символе (5, 6, 7 или 8), правилам формирования
контрольного разряда (контроль по четности, по нечетности или
отсутствие контрольного разряда), длительности передачи стоповой
посылки (1 бит, 1,5 бит или 2 бит).
Спецификация RS-232C для электрических
характеристик сигналов определяет, что высокий уровень напряжения от
+3В до +12В (при передаче - до +15В) считается логическим "0", а
низкий уровень напряжения от 3В до 12В (при передаче - до 15В)
считается логическим "1" (рис.
15.1). Диапазон сигналов 3В:+3В обеспечивает защиту от помех и
стабильность передаваемых данных.
Рис.
15.1. Логические уровни интерфейса RS-232C
Интерфейс IEEE 1284
Стандартный интерфейс параллельного порта получил свое
первоначальное название по имени американской фирмы Centronics - производителя принтеров.
Первые версии этого стандарта были ориентированы исключительно на
принтеры, подразумевали передачу данных лишь в одну сторону (от
компьютера к принтеру) и имели невысокую скорость передачи (150-300
Кбайт/с). Такие скорости неприемлемы для современных печатающих
устройств. Кроме того, для работы с некоторыми устройствами
необходима двусторонняя передача данных. Поэтому некоторые фирмы
(Xircom, Intel, Hewlett Packard, Microsoft) предложили несколько
модификаций скоростных параллельных интерфейсов: EPP (Enhanced Parallel Port) - до 2 Мбайт/с,
ECP (Extended Capabilities Port) - до 4
Мбайт/с и др. На основе этих разработок в 1994 году Институтом
инженеров по электронике и электротехнике был принят стандарт IEEE
1284-1994, ныне повсеместно используемый в персональных компьютерах
в качестве стандартного параллельного интерфейса.
Таблица 15.3. Сигналы интерфейса IEEE 1284
Разъем DB25 |
Напряжение |
SPP |
Nibble Mode |
EPP |
ECP |
1 |
O |
STROBE# |
|
WRITE# |
HostClk |
2 |
O (I) |
DATA0 |
|
AD0 |
D0 |
3 |
O (I) |
DATA1 |
|
AD1 |
D1 |
4 |
O (I) |
DATA2 |
|
AD2 |
D2 |
5 |
O (I) |
DATA3 |
|
AD3 |
D3 |
6 |
O (I) |
DATA4 |
|
AD4 |
D4 |
7 |
O (I) |
DATA5 |
|
AD5 |
D5 |
8 |
O (I) |
DATA6 |
|
AD6 |
D6 |
9 |
O (I) |
DATA7 |
|
AD7 |
D7 |
10 |
I |
ACK# |
PtrClk |
Intr# |
PeriphClk |
11 |
I |
BUSY |
D3/D7 |
Wait# |
PeriphAck |
12 |
I |
PE |
D2/D6 |
AckDataReq |
AckReverse# |
13 |
I |
SELECT |
D1/D5 |
XFlag |
XFlag |
14 |
O |
AUTOFD# |
HostBusy |
DataStb# |
HostAck |
15 |
I |
ERROR# |
D0/D4 |
DataAvail# |
PeriphReq# |
16 |
O |
INIT# |
|
Reset# |
ReverseReq# |
17 |
O |
SLCTIN# |
NibbleMode |
AddrStb# |
1284Active |
18-25 |
- |
GND |
GND |
GND |
GND |
Стандарт IEEE 1284 определяет работу параллельного интерфейса в
трех режимах: Standard Parallel Port (SPP), Enhanced Parallel Port (EPP) и Extended Capabilities Port (ECP). Каждый из этих режимов предусматривает
двустороннюю передачу данных между компьютером и периферийным
устройством.
Режим SPP (Стандартный
параллельный порт) используется для совместимости со старыми
принтерами, не поддерживающими IEEE 1284. Режиму SPP соответствуют три программно доступных
регистра:
- порт BASE+0 - SPP Data - регистр
данных,
- порт BASE+1 - SPP Status - регистр состояния,
- порт BASE+2 - SPP Control - регистр управления.
Для устройства LPT1 базовым адресом (BASE) в пространстве портов
ввода-вывода обычно является 378h.
В этом режиме линии DATA[0:7] используются для прямой передачи
данных (от компьютера к периферийному устройству). Сигналы STROBE#,
ACK# и BUSY используются для квитирования. Сигналом STROBE#
компьютер информирует о готовности данных на линиях DATA[0:7]. Если
устройство приняло выставленные компьютером данные, то оно
выставляет сигнал ACK#. Во время приема данных, во время
инициализации, а также при наличии ошибки устройство выставляет
сигнал BUSY. О возникновении ошибочной ситуации сигнализирует линия
ERROR#, а также PE (кончилась бумага). О том, что принтер включен и
готов к работе, сообщается при помощи сигнала SELECT. Для
подтверждения выбора принтера компьютер выставляет сигнал SLCTIN#.
При необходимости очистить буфер принтера и перевести его в исходное
состояние выставляется INIT#. Сигнал AUTOFD# используется при работе
с матричными принтерами в текстовом режиме для продвижения бумаги на
одну строку.
Для организации обратного канала (передача данных от принтера в
компьютер) в режиме SPP возможны два
механизма: механизм двунаправленного порта (впервые представленный в
IBM PS/2 в 1987 г.) и механизм передачи полубайтами (Nibble Mode).
При использовании механизма двунаправленного порта способ
квитирования не декларируется.
Особенностью обратного канала в Nibble Mode является то, что за
один цикл передается только 4 бита данных. Таким образом, скорость в
обратном канале в два раза меньше, чем в прямом канале.
Преимуществом использования Nibble Mode является возможность
программной реализации этого механизма на любом старом параллельном
порту, не поддерживающем IEEE 1284. Сигналом активности этого
механизма является высокий уровень на линии NibbleMode (при прямой
передаче на этой линии выставляется низкий уровень). Для
квитирования используются линии HostBusy (сигнал устанавливается
компьютером в низкий уровень, когда он готов к приему) и PtrClk
(низкий уровень сигнала подтверждает действительность данных
D[0:4]/D[5:7]).
В режиме EPP (Улучшенный
параллельный порт) используется аппаратная реализация сигналов
квитирования, благодаря чему возможно увеличение скорости передачи
до 2 Мбайт/с. Этот режим поддерживает адресацию устройств, благодаря
чему возможно подключение нескольких (до 64) устройств к одному
порту. Генерация цикла чтения или записи на шине IEEE 1284 со всеми
необходимыми сигналами квитирования происходит при обращении к
регистру EPP Address (BASE+3) или EPP Data (BASE+4). При этом
адаптер IEEE 1284 устанавливает сигнал Write# в зависимости от
направления передачи (низкий уровень - прямая передача, высокий
уровень - обратная передача). Для периферийного устройства
информацией о том, являются ли биты на линиях AD[0:7] данными или
адресом, является сигналы DataStb# (строб данных) или AddrStb#
(строб адреса). Периферийное устройство информирует компьютер о
своей готовности принять очередной байт при помощи сигнала Wait#.
Сигнал Reset#, так же как и в режиме SPP
используется для инициализации устройства. Установка периферийным
устройством сигнала Intr# вызывает генерацию прерывания. Сигналы
AckDataReq и DataAvail# используются по усмотрению разработчика,
например, для квитирования в обратном канале.
Режим ECP (Порт расширенных
возможностей) также использует аппаратное квитирование и адресацию
устройств (до 128). Дополнительно ECP
поддерживает распознавание ошибок, согласование скорости и режима
передачи, буферизацию данных в очереди FIFO (с использованием DMA) и
их компрессию по алгоритму RLE (Run Length Encoding), что позволяет
достигать скорость до 4 Мбайт/с.
Признаком активности режима ECP
является высокий уровень сигнала 1284Active. При прямой передаче для
квитирования используются сигналы HostClk и PeriphAck, а сигнал
HostAck указывает на тип передаваемых данных: высокий уровень -
обычные данные, низкий уровень - команда или адрес. Для запроса
обратного канала компьютер выставляет сигнал ReverseReq#, который
устройство подтверждает сигналом AckReverse#. В обратном канале для
квитирования применяются сигналы PeriphClk и HostAck, а сигнал
PeriphAck используется устройством для указания типа передаваемых
данных. Устройство может запросить обслуживание при помощи сигнала
PeriphReq#.
В режиме ECP параллельный порт может
эмулировать работу любого другого режима IEEE 1284, что определяется
в соответствующих битах расширенного регистра управления (ECR) по
адресу BASE+400h:
Таблица 15.4. Режимы работы порта ECP
Номер |
Обозначение |
Описание |
0002 |
SPP |
Режим стандартного
параллельного порта с программным квитированием |
0012 |
Bi-directional mode |
Поддержка обратного канала для
режима SPP, как в IBM PS/2 |
0102 |
Fast Centronics |
Режим стандартного
параллельного порта с аппаратным квитированием |
0112 |
ECP |
Режим ECP с поддержкой FIFO и
RLE |
1002 |
EPP |
Режим EPP |
1012 |
|
Reserved |
1102 |
Test mode |
Режим самотестирования FIFO и
прерываний |
1112 |
Configuration mode |
Режим
конфигурирования |
Инфракрасный интерфейс
В 1994 году Ассоциацией инфракрасной передачи данных (Infra-Red
Data Assotiation) была принята первая версия стандарта IrDA. Интерфейс IrDA позволяет соединяться с периферийным
оборудованием без кабеля при помощи ИК-излучения с длиной волны
850-900 нм (номинально - 880 нм). Порт IrDA дает возможность устанавливать связь на
коротком расстоянии до 1 метра в режиме "точка-точка". Ассоциация
намеренно не пыталась создавать локальную сеть на основе
ИК-излучения, поскольку сетевые интерфейсы очень сложны и требуют
большой мощности, а в цели интерфейса входили низкое
ресурсопотребление и экономичность.
Порт IrDA основан на архитектуре
коммуникационного порта и использует универсальный асинхронный
приемо-передатчик UART (Universal Asynchronous Receiver
Transmitter), позволяющий работать со скоростью передачи данных
2400-115200 бит/с. Данные передаются 10-битными символами: 8 бит
данных, один стартовый бит в начале и один стоповый бит в конце
посылки. Связь в IrDA полудуплексная,
т.к. передаваемый ИК-луч неизбежно засвечивает приемный фотодиод.
Воздушный промежуток между устройствами позволяет принять ИК-энергию
только от одного источника в данный момент. На физическом уровне
стандарт IrDA определяет следующий способ
кодирования: логический "0" передается одиночным ИК-импульсом длиной
от 1,6 мкс до 3/16 периода передачи битовой ячейки, а логическая "1"
передается как отсутствие ИК-импульса. Минимальная мощность
потребления гарантируется при фиксированной длине импульса 1,6 мкс
(рис.
15.2).
Рис.
15.2. Формат пакета IrDA
Описанный способ кодирования (асинхронный) используется на
скоростях до 115200 бит/с. В стандарте IrDA 1.1 этот режим определяется как SIR
(Standard Infra-Red). Кроме того, стандарт IrDA 1.1 допускает реализацию высокоскоростного
ИК-интерфейса до 4 Мбит/с - FIR (Fast Infra-Red). В этом случае
ИК-интерфейс реализуется на основе синхронных протоколов HDLC/SDLC
(High-level Data Link Control / Synchronous Data Link Control) с
использованием на скоростях выше 1 Мбит/с фазоимпульсной модуляции.
В настоящее время существует дополнение к стандарту IrDA - VFIR (Very Fast IR), описывающее обмен
данными на скоростях до 16 Мбит/с.
Т.к. ИК-интерфейс предусматривает только полудуплексный обмен,
стандарт IrDA описывает архитектуру с
одним главным (первичным) и множественными подчиненными (вторичными)
устройствами. Схема обращения устройств представляет собой обычный
протокол обмена данными, где есть фазы запросов (Request) и ответов
(Response). Так, первичное устройство отвечает за организацию
соединения и за обработку ошибок, посланные им кадры называются
управляющими (Command Frames), а пакеты вторичных устройств
именуются ответными (Response Frames). Обмен информацией идет только
с первичным устройством, которое всегда выступает инициатором
соединения, однако его роль может играть любое из устройств,
поддерживающих необходимые для этого функции. По желанию может быть
включен протокол транспортного уровня, позволяющий осуществлять
контроль передачи между приложениями в случае одновременной работы
нескольких приложений на одной физической линии.
Каждое устройство имеет 32-битный адрес, вырабатываемый случайным
образом при установлении соединения. Каждому кадру в пределах
соединения ведущее устройство при старте присваивает 7-битный адрес
соединения. Для возможных, но нежелательных случаев, когда два
устройства имеют одинаковый адрес, предусмотрен такой механизм,
когда ведущее устройство дает команду всем подчиненным устройствам
изменить их адреса.
Кроме протоколов физического уровня, стандарты IrDA определяют стек протоколов программного
уровня (табл.
15.5).
Таблица 15.5. Стек протоколов IrDA
IrLMP-IAS |
IrCOMM |
OBEX |
TinyTP |
IrLMP-MUX |
IrLAP |
IrPHY: SIR /
FIR |
Протокол IrLAP устанавливает правила доступа к ИК-среде,
процедуры открытия канала, согласование абонентов сети, обмена
информацией (разбиение данных на блоки, контроль ошибок) и т.д.
Перед тем, как начать передачу, устройство, не принимающее в данный
момент времени участия в обмене, должно прослушивать канал не менее
500 мс, чтобы убедиться в отсутствии трафика. С другой стороны,
устройство, участвующее в обмене, должна вести передачу не более 500
мс. Максимальный квант передачи может быть равен 100, 200 или 500
мс. Он представляет собой максимальное время, в течение которого
устройство передает данные до того, как перейдет к прослушиванию
подтверждения приема, и зависит от скорости передачи и емкости
буфера в принимающем устройстве. Доступ к среде передачи
регулируется посредством специального бита PF (Poll/Final), который
устанавливается в теле кадра и выполняет функции, аналогичные
маркеру. IrLAP допускает передачи без установления предварительного
соединения. Такая передача является широковещательной и не требует
получения подтверждения станции получателя. Процедура открытия
канала предусматривает обмен идентификационной информацией (ID).
Инициатор широковещательного обмена передает ID предопределенное
количество раз и прослушивает канал в интервалах между слотами.
Станция-получатель случайным образом выбирает слот и посылает в
ответ свой ID. При обнаружении коллизии процедура повторяется и
применяется для согласования параметров функционирования станций
(скорость обмена, максимальная длина пакета). При установлении
соединения обмен данными, объем которых не должен превышать 64
байта, осуществляется со скоростью 9600 бит/с. После того, как
соединение установлено, скорость обмена и величина пакета данных
могут быть увеличены до максимальных. Кроме пакетов с
пользовательскими данными, в обмене участвуют специальные кадры,
служащие для управления потоком, коррекции ошибок и передачи
маркера.
Протокол управления каналом IrLMP (Link Management Protocol)
является обязательным, однако его некоторые особенности могут быть
опциональны. Протокол IrLMP содержит два компонента: LM-IAS (Link
Management Information Access Service) и LM-MUX (Link Management
MUltipleXer).
Каждое устройство IrDA содержит
таблицу сервисов и протоколов, доступных в настоящий момент. Эта
информация может запрашиваться у других устройств. LM-IAS управляет
информационной базой так, что станции могут запросить, какие службы
предоставляются. Эта информация хранится в виде объектов, с каждым
из которых связан набор атрибутов.
LM-MUX выполняет мультиплексирование каналов поверх одного
соединения, устанавливаемого протоколом IrLAP. С этой целью
определяется множество точек доступа канала LSAP (Link Service
Access Point) каждая с уникальным идентификатором (селектором).
Таким образом, каждое из LSAP-соединений определяет логически
различные информационные потоки. LM-MUX функционирует в двух
режимах: мультиплексирования и эксклюзивном. Первый режим позволяет
разделять одно физическое соединение нескольким задачам. В этом
случае управление потоком должно быть обеспечено протоколами
верхнего уровня (например, TinyTP) или непосредственно приложением.
Второй режим отдает все ресурсы одному единственному приложению.
Также IrLMP предусматривает три варианта доступа:
- с установлением предварительного соединения,
- без установления предварительного соединения (Сonnectionless)
и
- режим сбора информации о возможностях, сервисах и приложениях
удаленного устройства (XID_Discovery).
TinyTP (Tiny Transport Protocol) - транспортный протокол,
осуществляющий функции управления потоком для любого LSAP-соединения
независимо. Каждая точка доступа этого протокола (TTPSAP TinyTP
Service Access Point) идентифицируется с единственной точкой доступа
IrLMP и использует единый с ней адрес. TinyTP также управляет
сегментацией и сборкой кадров. На базе TinyTP чаще всего
используются протоколы верхнего уровня IrCOMM и OBEX.
Протокол IrCOMM - это протокол эмуляции последовательного или
параллельного портов. IrCOMM предоставляет пять типов сервисов:
3-Wire Raw, IrLPT, 3-Wire, 9-Wire и Centronics. Сервисы 3-Wire Raw и IrLPT работают
только через одно эксклюзивное соединение (поверх LM-MUX без
использования TinyTP) и применяются, когда необходимо передавать
исключительно данные. Сервис 3-Wire эмулирует 3-проводный интерфейс
RS-232C (сигналы SG, TxD, RxD), используя
возможности TinyTP. Сервис 9-Wire предназначен для более точной
эмуляции интерфейса RS-232C и
обрабатывает, кроме трех вышеупомянутых, еще шесть сигналов (RTS,
CTS, DSR, DTR, CD, RI), что позволяет использовать его для
подключения модемов с ИК-интерфейсом. Сервис Centronics - это не что иное, как виртуальный
параллельный интерфейс на базе TinyTP.
Протокол OBEX (OBject EXchange) обеспечивает обмен объектами
произвольного типа между устройствами (например, объекты vCard,
vCalendar, vNotes и т.п.) В настоящее время OBEX используется поверх
многих беспроводных интерфейсов (например, BlueTooth).
Интерфейс USB
Спецификация периферийной шины USB
была разработана лидерами компьютерной и телекоммуникационной
промышленности (Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern
Telecom) для подключения компьютерной периферии вне корпуса ПК с
автоматическим автоконфигурированием (Plug&Play). Первая версия
стандарта появилась в 1996 г. Агрессивная политика Intel по
внедрению этого интерфейса стимулирует постепенное исчезновение
таких низкоскоростных интерфейсов, как RS 232C, Access.bus и т.п.
Однако для высокоскоростных устройств с более строгими требованиями
к производительности (например, доступ к удаленному накопителю или
передача оцифрованного видео) конкурентом USB является интерфейс IEEE 1394.
Интерфейс USB представляет собой
последовательную, полудуплексную, двунаправленную шину со скоростью
обмена:
- USB 1.1 - 1,5 Мбит/с или 12 Мбит/с;
- USB 2.0 - 480 Мбит/с.
Шина позволяет подключить к ПК до 127 физических устройств.
Каждое физическое устройство может, в свою очередь, состоять из
нескольких логических (например, клавиатура со встроенным
манипулятором-трекболом).
Кабельная разводка USB начинается с
узла (host) (рис.
15.3). Хост обладает интегрированным корневым концентратором
(root hub), который предоставляет несколько разъемов USB для подключения внешних устройств. Затем
кабели идут к другим устройствам USB,
которые также могут быть концентраторами, и функциональным
компонентам (например, модем или акустическая система).
Концентраторы часто встраиваются в мониторы и клавиатуры (которые
являются типичными составными устройствами). Концентраторы могут
содержать до семи "исходящих" портов.
Рис.
15.3. Топология подключения устройств к USB
Для передачи сигналов шина USB
использует четырехпроводной интерфейс. Одна пара проводников ("+5В"
и "общий") предназначена для питания периферийных устройств с
нагрузкой до 500 мА. Данные передаются по другой паре ("D+" "D").
Для передачи данных используются дифференциальные напряжения до 3 В
(с целью снижения влияния шума) и схема кодирования NRZI1)
(что избавляет от необходимости выделять дополнительную пару
проводников под тактовый сигнал).
Интерфейс USB 1.1 декларирует два
режима:
- низкоскоростной подканал (пропускная способность - 1,5
Мбит/с), предназначенный для таких устройств, как мыши и
клавиатуры;
- высокопроизводительный канал, обеспечивающий максимальную
пропускную способность 12 Мбит/с, что может использоваться для
подключения внешних накопителей или устройств обработки и передачи
аудио- и видеоинформации.
Все концентраторы должны поддерживать на своих исходящих портах
устройства обоих типов, не позволяя высокоскоростному трафику
достигать низкоскоростных устройств. Высокопроизводительные
устройства подключаются с помощью экранированного кабеля, длина
которого не должна превышать 3 м. Если же устройство не формулирует
особых требований к полосе пропускания, его можно подключить и
неэкранированным кабелем (который может быть более тонким и гибким).
Максимальная длина кабеля для низкоскоростных устройств - 5 м.
Требования устройства к питанию (диаметр проводников, потребляемая
мощность) могут обусловить необходимость использования кабеля
меньшей длины. Из-за особенностей распространения сигнала по кабелю
число последовательно соединенных концентраторов ограничено шестью
(и семью пятиметровыми отрезками кабеля).
Хост узнает о подключении или отключении устройства из сообщения
от концентратора (эта процедура называется опросом шины - bus
enumeration). Затем хост присваивает устройству уникальный адрес
USB (1:127). После отключения устройства
от шины USB его адрес становится
доступным для других устройств.
Для индивидуального обращения к конкретным функциональным
возможностям составного устройства применяется 4-битное поле
конечной точки. В низкоскоростных устройствах за каждой функцией
закрепляется не более двух адресов конечных точек: нулевая конечная
точка используется для конфигурации и определения состояния USB, а также управления функциональным
компонентом; а другая точка - в соответствии с функциональными
возможностями компонента. Устройства с максимальной
производительностью могут поддерживать до 16 конечных точек,
резервируя нулевую точку для задач конфигурации и управления USB.
Хост опрашивает все устройства и выдает им разрешения на передачу
данных (рассылая для этого пакет-маркер - Token Packet). Таким
образом, устройства лишены возможности непосредственного обмена
данными - все данные проходят через хост. Это условие сильно мешало
внедрению интерфейса USB на рынок
портативных устройств. В результате в конце 2001 года было принято
дополнение к стандарту USB 2.0 -
спецификация USB OTG (On-The-Go),
предназначенная для соединения периферийных USB-устройств друг с
другом без необходимости подключения к хосту (например, цифровая
камера и фотопринтер). Устройство, поддерживающее USB OTG, способно
частично выполнять функции хоста и распознавать, когда оно
подключено к полноценному хосту (на основе ПК), а когда - к другому
периферийному устройству. Спецификация описывает также протокол
согласования выбора роли хоста при соединении двух USB
OTG-устройств.
Данные на шине передаются транзакциями, интервал между которыми
составляет 1 мс. Предусмотрено четыре типа транзакций.
Управляющие передачи используются для конфигурации вновь
подключенных устройств (например, присвоения им адреса USB) и их компонентов. Устройства с
максимальной производительностью могут быть настроены на работу с
конфигурационными сообщениями длиной 8, 16, 32 или 64 байта (по
умолчанию - 8 байт). Устройства с низкой производительностью в
состоянии распознавать управляющие сообщения длиной не более 8
байт.
Групповая передача (bulk) используется для адресной пересылки
данных большого объема (до 1023 байт). В качестве примера можно
привести передачу данных на принтер или от сканера. Устройства с
низкой производительностью не поддерживают этот режим.
Передача данных прерывания, например, введенных с клавиатуры
данных или сведений о перемещении мыши. Эти данные должны быть
переданы достаточно быстро для того чтобы пользователь не заметил
никакой задержки. В соответствии со спецификациями время задержки
USB составляет несколько миллисекунд.
Изохронные передачи (передачи в реальном масштабе времени).
Пропускная способность и задержка доставки оговариваются до начала
передачи данных. К изохронным данным алгоритмы коррекции ошибок
неприменимы (поскольку время на повторную их ретрансляцию превышает
допустимый интервал задержки). За один сеанс в таком режиме может
быть передано до 1023 байт. Устройства с низкой производительностью
не поддерживают этот режим.
Следует также отметить, что разными производителями предлагались
спецификации, описывающие интерфейс различных аппаратных реализаций
контроллера USB. Фирмой Intel была
предложена спецификация UHCI (Universal Host Controller Interface),
которая предусматривает чрезвычайно простую аппаратную реализацию
контроллера USB. В рамках данной
спецификации основные функции контроля и арбитража шины возлагаются
на программный драйвер. Альтернативная спецификация была предложена
компаниями Compaq, Microsoft и National Semiconductor - OHCI (Open
Host Controller Interface). Контроллеры по спецификации OHCI
обладают унифицированным абстрактным интерфейсом, предусматривающим
аппаратную реализацию большинства управляющих функций, что облегчает
их программирование.
Интерфейс IEEE 1394 - FireWire
Группой компаний при активном участии Apple была разработана
технология последовательной высокоскоростной шины, предназначенной
для обмена цифровой информацией между компьютером и другими
электронными устройствами. В 1995 году эта технология была
стандартизована IEEE (стандарт IEEE 1394-1995). Компания Apple
продвигает этот стандарт под торговой маркой FireWire, а компания Sony - под торговой маркой
i-Link.
Интерфейс IEEE 1394 представляет собой дуплексную,
последовательную, общую шину для периферийных устройств. Она
предназначена для подключения компьютеров к таким бытовым
электронным приборам, как записывающая и воспроизводящая видео- и
аудиоаппаратура, а также используется в качестве интерфейса дисковых
накопителей (таким образом, она соперничает с шиной SCSI).
Первоначальный стандарт (1394a) поддерживает скорости передачи
данных 100 Мбит/с, 200 Мбит/с и 400 Мбит/с. Последующие
усовершенствования стандарта (1394b) обеспечивают поддержку скорости
передачи данных 800 и 1600 Мбит/с (FireWire-800, FireWire-1600).
Устройства, которые передают данные на разных скоростях, могут
быть одновременно подключены к кабелю (поскольку пары обменивающихся
данными устройств используют для этого одну и ту же скорость).
Рекомендуемая максимальная длина кабеля между устройствами
составляет 4,5 м. К кабелю общей длиной до 72 м может быть
одновременно подключено до 63 устройств, называемых узлами (nodes).
Для увеличения числа шин вплоть до максимального значения (1023)
могут быть использованы мосты.
Каждое устройство обладает 64-разрядным адресом:
- 6 бит - идентификационный номер устройства на шине,
- 10 бит - идентификационный номер шины,
- 48 бит - используются для адресации памяти (каждое устройство
может адресовать до 256 Тбайт памяти).
Шина предполагает наличие корневого узла, выполняющего некоторые
функции управления. Корневой узел может быть выбран автоматически во
время инициализации шины, либо его атрибут может быть принудительно
присвоен конкретному узлу (скорее всего, ПК). Некорневые узлы
являются или ветвями (если они поддерживают более чем одно активное
соединение), или листьями (если они поддерживают только одно
активное соединение).
Как правило, устройства имеют по 1-3 порта, причем одно
устройство может быть включено в любое другое (с учетом ограничений
на то, что между любыми двумя устройствами может быть не более 16
пролетов и они не могут быть соединены петлей). Допускается
подключение в "горячем" режиме, поэтому устройства могут
подключаться и отключаться в любой момент. При подключении устройств
адреса назначаются автоматически, поэтому присваивать их вручную не
придется.
IEEE 1394 поддерживает два режима передачи данных (каждый из
которых использует пакеты переменной длины).
- Асинхронная передача используется для пересылки данных по
конкретному адресу с подтверждением приема и обнаружением ошибок.
Трафик, который не требует очень высоких скоростей передачи данных
и не чувствителен ко времени доставки, вполне подходит для данного
режима (например, для передачи некоторой управляющей информации).
- Изохронная передача предполагает пересылку данных через равные
промежутки времени, причем подтверждения приема не используются.
Этот режим предназначен для пересылки оцифрованной видео- и
аудиоинформации.
Пакеты данных пересылаются порциям, которые имеют размер, кратный
32 битам, и называются квадлетами (guadlets). При этом пакеты
начинаются, по меньшей мере, с двух квадлетов заголовка, после чего
следует переменное число квадлетов полезной информации. Для
заголовка и полезных данных контрольные суммы (CRC) указываются
отдельно. Длина заголовков асинхронных пакетов составляет, как
минимум, 4 квадлета. У изохронных пакетов может быть заголовок
длиной 2 квадлета, поскольку единственным необходимым при этом
адресом является номер канала.
IEEE 1394 выделяет следующие функции устройств:
- Хозяин цикла (cycle master) - выполняется корневым узлом,
имеет наивысший приоритет доступа к шине, обеспечивает общую
синхронизацию остальных устройств на шине, а также изохронных
сеансов передачи данных.
- Диспетчер шины (bus manager) управляет питанием шины и
выполняет некоторые функции оптимизации.
- Диспетчер изохронных ресурсов (isochronous resource manager)
распределяет временные интервалы среди узлов, собирающихся стать
передатчиками (talkers).
Все функции диспетчеризации могут выполняться одним и тем же либо
различными устройствами. Хозяин цикла посылает синхронизирующее
сообщение о начале цикла через каждые 125 мкс (как правило).
Теоретически 80% цикла (100 мкс) резервируется для изохронного
трафика, а остальная часть становится доступной для асинхронного
трафика. Сначала узлы с изохронными данными для пересылки, а также
те узлы, которым был назначен номер канала, пытаются получить доступ
к шине на время передачи (сразу же после каждого сообщения о начале
цикла), и узел, который ближе всего находится к корневому узлу,
первым получит разрешение на передачу данных. Каждый последующий
узел с назначенным номером канала и изохронным трафиком для
пересылки последовательно получает разрешение на передачу данных.
Затем пытаются получить доступ к шине и узлы с асинхронным
трафиком.
Для подключения к данному интерфейсу применяется 6-контактный
соединитель. Используемый при этом кабель имеет круглую форму и
содержит:
- экранированную витую пару А (ТРА), в которой используется
симметричное, разностное напряжение (для обеспечения требуемой
помехоустойчивости), а данные передаются в обоих направлениях с
помощью схемы кодирования NRZ2).
Фактически напряжение составляет 172-265 мВ;
- экранированную витую пару В (ТРВ), пересылающую стробирующий
сигнал, который изменяет состояние всякий раз, когда два
последовательных разряда данных (на другой паре) одинаковы (т.н.
кодирование данных со стробированием - data-strobe encoding), и
гарантирует изменение состояния в паре для передачи данных либо
стробирующих сигналов по фронту каждого разряда;
- провода, обеспечивающие питание небольших устройств. При этом
по проводу VP подается напряжение 8-40 В, обеспечивающее нагрузку
до 1,5 А, а провод VG заземлен. Впрочем, существуют варианты
соединения, в котором провода питания отсутствуют;
- а также общий экран, который изолирован от экранов пар и
прикреплен к корпусам соединителей.
В IEEE 1394b допускается применять также простые UTP-кабели 5-й
категории, но только на скоростях до 100 Мбит/с. Для достижения
максимальных скоростей на максимальных расстояниях предусмотрено
использование оптоволокна (пластмассового - для длины до 50 метров,
и стеклянного - для длины до 100 метров).
Вопросы для самоконтроля
- Назовите режимы передачи интерфейса SCSI и охарактеризуйте каждый режим.
- Назовите особенности стандартного последовательного интерфейса
RS-232C.
- Как в стандарте RS-232C определены
высокий и низкий уровни напряжения?
- К чему относится понятие Centronics?
- Перечислите последовательные интерфейсы ввода/вывода.
- Назовите протоколы, входящие в стек IrDA, и их назначение.
- Охарактеризуйте топологию интерфейсов USB и FireWire.
- Сравните технические характеристики интерфейсов USB и FireWire.
1)
NRZI (Non-Return to Zero Inverted) - самосохранизующаяся
схема кодирования без возвращения к нулю с инверсией. 2)
NRZ (Non-Return to Zero) - самосинхронизующаяся схема
кодирования без возвращения к нулю. |