71346

Периферийные устройства ЭВМ

Книга

Информатика, кибернетика и программирование

Учебное пособие «Администрирование локальных вычислительных сетей» по дисциплине ЭВМ и телекоммуникации» предназначено для студентов Псковского государственного политехнического института специальности 220100 «Вычислительные машины, комплексы, системы и сети очно-заочной форм обучения.

Русский

2014-11-05

1.1 MB

9 чел.

Министерство образования Российской Федерации

Псковский государственный политехнический институт

А.И. Юдов

Периферийные устройства ЭВМ

УЧЕБНОЕ ПОСОБИЕ

   

Санкт-Петербург/Псков

Издательство СПбГПУ

2005

УДК 681.32

Рекомендовано к изданию

Научно-методическим советом

Псковского государственного  политехнического института (ППИ)

Рецензенты:

-Ильин С.Н., зам. генерального директора ОАО «СКБ ВТ»;

-Юдов А.И., начальник отдела информатизации ППИ.

Юдов А.И. Администрирование локальных вычислительных сетей. Учебное пособие. -СПб/Псков, Изд. СПбГПУ, 2005 - 212 с: ил.

Учебное пособие «Администрирование локальных вычислительных сетей» по дисциплине ЭВМ и телекоммуникации» (ОПД.Ф.010) предназначено для студентов Псковского  государственного политехнического института специальности 220100 «Вычислительные машины, комплексы, системы и сети очно-заочной форм обучения.

В учебном пособии изложены принципы построения информ но-вычислительных сетей, вопросы обеспечения безопасности пер< мых данных и ресурсов ИВС.

Учебное пособие может использоваться студентами родст специальностей и специализаций других форм обучения.

© Псковский  государственный политехнический инстит (ППИ), 2005                         © А.И. Юдов

ъ

ОГЛАВЛЕНИЕ

Раздел 1 «Эволюция периферийных интерфейсов ПК»

    1. Что такое периферийные устройства


    Большинство окружающих нас компьютеров построены по классической схеме Фон-Неймановской машины образца 1945 года. По этой схеме компьютер состоит из централ
ьного процессора (ЦП, CPU), памяти и устройств ввода-вывода. Процессор исполняет программы, находящиеся в памяти; память предназначена для хранения программ и данных, доступных процессору; устройства ввода-вывода (УВВ) предназначены для связи с внешним миром. Время внесло небольшие коррективы в названия этих «трех китов», и сейчас то, что попадало под название УВВ, называют периферийными устройствами. Процессор (один или несколько), память и необходимые элементы, связывающие их между собой и другими устройствами, называют центральной частью компьютера. Периферийные устройства (ПУ)  — это все программно-доступные элементы компьютера, не попавшие в его центральную часть. Их можно разделить по назначению на несколько классов.

  •      Устройства хранения данных (устройства внешней памяти)  — дисковые (магнитные, оптические, магнитооптические), ленточные (стримеры), твердотельные (карты, модули и устройства USB на флэш-памяти). Эти устройства используются для энергонезависимого сохранения информации из памяти и загрузки этой информации в оперативную память. В каком виде хранится информация на этих устройствах, нам не так уж важно (главное  — правильно считать то, что сохранили).
  •      Устройства ввода-вывода, служащие для преобразование информации из внутреннего представления в компьютере (биты и байты) в форму, доступную окружающим, и обратно. Сюда относятся дисплеи (устройства отображения, т.е. вывода), клавиатура и мышь (устройства ввода), принтеры и сканеры, плоттеры и дигитайзеры, джойстики, акустические системы и микрофоны, телевизоры и видеокамеры, устройства телеуправления и телеметрии. Любопытно, что в этих парах обычно лидируют устройства вывода, появляющиеся в компьютерах раньше соответствующих устройств ввода. Под окружающими подразумевается и человек (и другие биологические объекты), и различные технические устройства (компьютер несложно приспособить для управления любым оборудованием, были бы датчики и исполнительные устройства). В какую форму эти устройства преобразуют двоичную информацию — определяется их назначением.
  •      Коммуникационные устройства, служащие для передачи информации между компьютерами и (или) их частями. Сюда относятся модемы (проводные, радио, инфракрасные…), адаптеры локальных и глобальных сетей. Здесь преобразования информации нужны только для преодоления каких-то расстояний.
        Главным действием в компьютере является исполнение программного кода центральным процессором, и ЦП должен иметь возможность взаимодействия с ПУ. Процессор ничего не умеет, кроме того, как обращаться к ячейке (читать или писать байт, слово, двойное слово) пространства памяти или пространства ввода-вывода, а также реагировать на аппаратные прерывания. Таким образом, любое периферийное устройство должно представляться процессору набором регистров (ячеек) и, необязательно, быть источником прерываний.

    2. Как подключаются периферийные устройства


    Между центральной частью компьютера и периферийными устройствами имеется и
ерархия средств подключения, на верху которой стоят шины расширения ввода-вывода. Их самые яркие представители в IBM PC  — шина ISA (отмирающая) и шина PCI (развивающаяся). Через шину расширения проходят все обращения ЦП к периферии, и на этой шине как раз и фигурируют адреса памяти и ввода-вывода, по которым обращается процессор. К шине расширения подключаются контроллеры и адаптеры 1 периферийных устройств или их интерфейсов. Часть ПУ совмещена со своими контроллерами (адаптерами), как, например, сетевой адаптер Ethernet, подключенный к шине PCI. Другие же ПУ подключаются к контроллеру через промежуточный периферийный интерфейс, который и является предметом нашего обсуждения.

    К периферии, подключаемой через промежуточные интерфейсы, относится большинство устройств хранения (дисковые, ленточные), устройств ввода-вывода (клавиатуры, мыши, принтеры, плоттеры), ряд коммуникационных (внешние модемы). Традиционный подход к организации подключения заключался в том, что для каждого такого ПУ к шине расширения подключался свой контроллер интерфейса, к которому подключалось свое устройство  — одно, в лучшем случае  — небольшая группа устройств. Именно так устроен LPT-порт  — адаптер интерфейса, к которому подключается принтер (подключение цепочки устройств к нему придумали с опозданием). Также и к COM-порту можно подключить или модем, или мышь, или другое устройство (одно). Диски ATA можно подключать к контроллеру всего по 1-2 на канал, устройства SCSI  — до 7 или 15  — рекорд множественности традиционных подключений. Для взаимодействия с ПУ процессор обращается к регистрам контроллера, «представляющего интересы» подключенных к нему устройств.
    Для периферийных устройств в процессорах x86, применяемых в PC-совместимых ко
мпьютерах, специально выделено пространство ввода-вывода (I/O Space)  — область, отдельная от памяти. Размер пространства адресов ввода-вывода 64 Кбайт; в этой области могут располагаться регистры периферийных устройств разрядностью 1, 2 или 4 байт и для обращения к ним имеется несколько специальных инструкций процессора. Регистры ПУ могут отображаться и в пространстве памяти  — областях, свободных от оперативной и постоянной памяти. Разные регистры разных устройств не должны пересекаться по адресам в своих пространствах  — в этом заключается требование бесконфликтного распределения ресурсов по адресам..

1 Контроллер отличается от адаптера более высоким уровнем «интеллекта»

   

   3. Как передается информация
    Задача любого из рассматриваемых  интерфейсов заключается в передаче инфо
рмации между какими-либо устройствами. Информация (данные), которую следует передавать, может быть разной природы.

  •  Аналоговая информация, отображающая процесс, непрерывный во времени и по величине (может принимать любое из бесконечного числа значений, пусть и в ограниченном интервале). Пример  — звуки, которые мы слышим (в том числе и речь), представляют собой непрерывное изменение давления. Задача передачи такой информации встает, например, при подключении микрофона (устройства, преобразующего изменения давления в изменения электрического напряжения) к компьютеру.
  •  Дискретная информация, отображающая процесс конечным числом значений. Элементарная единица дискретной информации  — 1 бит, который может принимать лишь одно из двух логических значений: 0 (истина, «да») или 1 (ложь, «нет»). Одним битом, к примеру, можно отобразить состояние кнопки «мыши»: нажата или нет. Дискретная двоичная информация является «родной» для большинства компьютеров, поскольку ее проще всего получать, обрабатывать, хранить и передавать. Цифровая информация, представляющая собой последовательность (набор) чисел, имеющих ограниченную разрядность (и, соответственно, конечное число возможных значений). Пример  — оцифрованный звук, представляющий собой последовательность отсчетов мгновенных значений давления, берущихся через равные интервалы времени.

Дискретную и цифровую информацию не всегда корректно различают (и не всегда это требуется), поскольку «выглядит» она похоже: в двоичной системе и та и другая представляет собой наборы ноликов и единичек. Важным отличием цифровых данных является осмысленность сравнения значений по условиям «больше-меньше». Цифровая информация является особым видом дискретной. Для передачи данных по различным интерфейсам наиболее существенно разделение на аналоговые (непрерывные) и дискретные.

    Для того чтобы передавать данные, их нужно представить в виде сигнала  — физического процесса (электрического, оптического, электромагнитного, хотя возможны и другие). Сигналы могут быть различных типов: аналоговые (непрерывные), дискретные, цифровые. Заметим, что тип сигнала может и не соответствовать типу передаваемых данных. Так, например, аналоговый сигнал телефонного модема несет дискретные (цифровые) данные. Тип и природа используемого сигнала определяется требованиями к интерфейсу: дальность связи, скорость передачи данных, надежность, достоверность, безопасность, стоимость, удобство подключения, энергопотребление и другими.


  
 Параллельные и последовательные интерфейсы


    Для компьютеров и связанных с ним устройств наиболее распространенной я
вляется задача передачи дискретных данных, и, как правило, в значительных количествах (не один бит). Самый распространенный способ представления данных сигналами  — двоичный, например, условно высокому (выше порога) уровню напряжения соответствует логическая единица, низкому  — логический ноль (возможно и обратное представление). Один двоичный сигнал за один квант времени передает один бит информации. Как говорилось выше, процессор с периферийными устройствами обменивается байтами (8 бит)1, словами (в мире x86 — 16 бит), двойными словами (32 бита) данных. Для того чтобы передавать группу бит, существует два подхода к организации интерфейса.

  •  Параллельный интерфейс  — для каждого бита передаваемой группы используется своя сигнальная линия (обычно с двоичным представлением), и все биты группы передаются одновременно за один квант времени, т.е. продвигаются по интерфейсным линиям параллельно. Примеры: параллельный порт подключения принтера (LPT-порт, 8 бит), интерфейс ATA/ATAPI (16 бит), SCSI (8 или 16 бит), шина PCI (32 или 64 бита).
  •  Последовательный интерфейс  — используется лишь одна сигнальная линия, и биты группы передаются друг за другом по очереди; на каждый из них отводится свой квант времени (битовый интервал). Примеры: последовательный коммуникационный порт (COM-порт), последовательные шины USB и FireWire, интерфейсы локальных и глобальных сетей.

На первый взгляд, организация параллельного интерфейса проще и нагляднее (не надо выстраивать биты в очередь на передачу и собирать байты из принятой последовательности бит). Также, на первый взгляд, параллельный интерфейс обеспечивает более быструю передачу данных, поскольку биты передаются сразу пачками. Очевидный недостаток параллельного интерфейса — большое количество проводов и контактов разъемов в соединительном кабеле (по крайней мере, по одному на каждый бит). Отсюда громоздкость и дороговизна кабелей и интерфейсных цепей устройств, с которой мирятся ради вожделенной скорости. У последовательного интерфейса приемопередающие узлы функционально сложнее, зато кабели и разъемы гораздо проще и дешевле. Понятно, что на большие расстояния тянуть многопроводные кабели параллельных интерфейсов неразумно (и невозможно), здесь гораздо уместнее последовательные интерфейсы.

   Cкорость  передачи данных. Очевидно, что она равна числу бит, передаваемых за квант времени, деленному на длительность кванта. Для простоты можно оперировать тактовой частотой интерфейса  — величиной, обратной длительности кванта. Это понятие естественно для синхронных интерфейсов, у которых имеется сигнал синхронизации (clock), который определяет возможные моменты возникновения всех событий (смены состояния). Для асинхронных интерфейсов можно пользоваться эквивалентной тактовой частотой  — величиной, обратной минимальной длительности одного состояния интерфейса. Теперь можно сказать, что максимальная (пиковая) скорость передачи данных равна произведению тактовой частоты на разрядность интерфейса. У последовательного интерфейса разрядность 1 бит, у параллельного  — столько, сколько имеется параллельных сигнальных цепей для передачи битов данных. Остаются вопросы о достижимой тактовой частоте и разрядности. И для последовательного, и для параллельного интерфейсов максимальная тактовая частота определяется достижимым (при разумной цене и затратах энергии) быстродействием приемопередающих цепей устройств и частотными свойствами кабелей. Здесь уже проглядывают выгоды последовательного интерфейса: для него затраты на построение высокоскоростных элементов не приходится умножать на разрядность интерфейса, как это приходится делать для параллельного. В параллельном интерфейсе есть явление перекоса (skew), существенно влияющее на достижимый предел тактовой частоты. Суть его в том, что сигналы, одновременно переданные на одной стороне интерфейсного кабеля, доходят до другого конца не одновременно из-за отклонений характеристик цепей. На время прохождения влияет длина проводов, свойства изоляции, соединительных элементов и т.п. Очевидно, что перекос (разница во времени прибытия) сигналов разных битов должен быть явно меньше кванта времени, иначе биты будут искажаться (путаться с одноименными битами предшествующих и последующих посылок). Вполне понятно, что перекос ограничивает и допустимую длину интерфейсных кабелей: при одной и той же относительной погрешности скорости распространения сигналов на большей длине набегает и больший перекос. Перекос сдерживает и увеличение разрядности интерфейса: чем больше используется параллельных цепей, тем труднее добиться их идентичности. Из-за этого даже приходится «широкий» (многоразрядный) интерфейс разбивать на несколько «узких» групп, для каждой из которых используются свои управляющие сигналы. В 90-х годах в схемотехнике приемопередающих узлов стали осваиваться частоты в сотни МГц и выше, т.е. длительность кванта стала измеряться единицами и долями наносекунд. Достичь соизмеримо малого перекоса можно лишь в пределах жестких компактных конструкций (печатная плата), а для связи отдельных устройств кабелями длиной в десятки сантиметров пришлось остановиться на частотах до десятков МГц. Для того чтобы ориентироваться в числах, отметим, что за 1 наносекунду сигнал пробегает по электрическому проводнику порядка 20-25 сантиметров.

    В последовательном интерфейсе явление перекоса отсутствует, так что повышать тактовую частоту можно вплоть до предела возможностей приемопередающих цепей. Конечно, есть ограничения и по частотным свойствам кабеля, но изготовить хороший кабель для одной сигнальной цепи гораздо проще, чем для группы цепей, да еще и с высокими требованиями к идентичности. А когда электрический кабель уже «не тянет» требуемую частоту и дальность, можно перейти на оптический, у которого есть в этом плане огромные еще не освоенные «запасы прочности». Устраивать же параллельный оптический интерфейс — слишком дорогое удовольствие.2

    Вышеприведенные соображения объясняют тенденцию перехода на последовательный способ передачи данных. В таблице 1 приведены сравнительные характеристики параллельных интерфейсов, ныне используемых для подключения периферийных устройств. Для полноты описания достижений параллельного способа передачи стоит упомянуть параллельные шины подключения процессоров и памяти, разрядность которых достигает 128 бит, а скорость передачи данных  — нескольких Гбайт/с. Однако такие характеристики достигаются лишь на совсем коротких дистанциях (десяток сантиметров, а то и меньше). У последовательного способа в данную таблицу не попали сетевые интерфейсы (Ethernet 10/100/1000/10000 Мбит/с, технологии передач глобальных сетей ATM, SONET, SDH), впечатляющие сочетанием гигабитных скоростей и расстоянием (сотни метров  — десятки и сотни километров). При сравнении скоростей параллельных интерфейсов, выражаемых мегабайтами в секунду, и последовательных с их мегабитами в секунду есть нюансы, о которых речь пойдет позже. Пока что можно ориентировочно мегабиты в секунду делить на 10 (а не на 8), чтобы получать мегабайты в секунду.

   

1 Бывают и не 8-битные байты2 В 10-гигабитной версии технологии Ethernet есть параллельно-последовательный вариант

Таблица 1. Сравнение параллельных и последовательных интерфейсов

Название, разрядность

Назначение

Пределы скорости

Дальность

Перспективы

Параллельные интерфейсы

 

 

 

 

IEEE 1284 (LPT-порт), 8 бит

Подключение принтеров, плоттеров, сканеров и других внешних устройств

2 Мбайт/с

1-10 м

Отказаться от использования, перейти на USB

SCSI, 8/16 бит

Подключение любых внутренних и внешних устройств

10-20-40-80-160-320 Мбайт/с

До 6-12-25 м

Переход на Serial SCSI

ATA/ATAPI, 16 бит

Подключение внутренних и внешних устройств хранения

16-33-66-10-133 Мбайт/с

До 0,5 м

Переход на Serial ATA

ISA, 8/16 бит

Подключение внутренних устройств (карт расширения)

8-16 Мбайт/с

15-20 см
(в пределах печатной платы)

Отказаться от использования

PCI, 32/64 бит

Подключение внутренних устройств (карт расширения)

66-133-266-533 Мбайт/с

10-15 см
(в пределах печатной платы)

Переход на PCI-X

PCI-X,64 бит

Подключение внутренних устройств (карт расширения)

533—4256 Мбайт/с

10-15 см
(в пределах печатной платы)

Переход на Serial PCI

Последовательные интерфейсы

 

 

 

 

RS-232C (COM-порт)

Подключение коммуникационных и других внешних устройств

115200 бит/с (11,5 кбайт/с)

25 м

Отказаться от использования, перейти на USB

RS-422/485

Подключение устройств промышленной автоматики и других

10 Мбит/с

1200 м

 

USB 1.0-1.1

Подключение внешних устройств

1,5-12 Мбит/с  (до 1 Мбайт/с)

25 м

Переход на USB 2.0

USB 2.0

Подключение внешних устройств

1,5-12-480 Мбит/с
(до 24 Мбайт/с)

30 м

 

Serial ATA

Подключение внутренних устройств хранения

1,5 Гбит/с (150 Мбайт/с)

1 м

Освоение более высоких скоростей

Serial SCSI

Подключение внутренних и внешних устройств

3 Гбит/с

6 м

Переход на  6 Гбит/с

Fibre Channel

Подключение внешних устройств

2 Гбит/с

15 м (медный устройств хранения кабель) — 10 км (оптический)

Переход на 4 Гбит/с

Продолжая разговор об интерфейсах, обсудим, какими способами можно передавать информацию (интерфейсными сигналами) между устройствами.

  5.
Сигналы и среда передачи


    Самым «модным» физическим процессом, используемым для передачи сигналов интерфейсов, являются электромагнитные колебания различных частотных диапазонов. Наиболее привычные
электрические сигналы  — это электромагнитные колебания сравнительно низкочастотного диапазона (до десятков и сотен МГц), передаваемые по электрическим проводам. Передатчик такого сигнала посылает в электрическую линию связи (кабель) сигнал в виде определенных уровней напряжения или тока, приемник на другом конце линии получает сигнал, в той или иной степени похожий на переданный. Степень похожести (или непохожести) определяется свойствами кабеля, длиной линии, частотным спектром сигнала и наличием внешних помех. При сочетании высоких частот и большой длины (интересен показатель «Эль-Эф» — произведение длины L на частоту F) приходится учитывать волновые свойства электромагнитного сигнала, такие, как затухание по мере распространения и отражение от неоднородностей в линии. Затухание сигнала связано не только с электрическими потерями (на нагрев кабеля), но и с паразитным излучением  — выходом электромагнитного сигнала за пределы кабеля в открытый радиоэфир. Волновые явления заставляют применять специальные конструкции электрических кабелей, применяемых для передачи сигнала  — коаксиальные кабели, витые (скрученные) пары проводов и некоторые другие. Задача этих конструкций  — максимально сохранить форму передаваемого сигнала, не выпустить его за пределы кабеля и по возможности не впустить внешние помехи. Последние два пункта имеют особое значение для обеспечения безопасности (в смысле конфиденциальности) передачи информации  — недопущения (осложнения) ее «подслушивания» и злонамеренного искажения извне. Проводная передача электрического сигнала используется в подавляющем большинстве интерфейсов периферийных устройств, обеспечивая дальность передачи в единицы, десятки и сотни метров со скоростями до единиц гигабит в секунду; она же доминирует и в компьютерных сетях.
    Электромагнитные колебания с частотами в сотни МГц  — десятки ГГц пригодны и для
беспроводной радиопередачи сигналов. Более низкие частоты для эффективного излучения и приема требуют антенн неприемлемо большого размера; для более высоких частот пока что есть сложности в реализации приемопередатчиков, да и распространение сигнала в этом диапазоне имеет неприятную специфику (например, поглощение туманом и дождем). Первый массовый радиоинтерфейс в компьютерной технике  — Bluetooth  — использует радиоволны микроволнового диапазона 2,4 ГГц. В этом диапазоне радиоволны распространяются по прямой (нет эффекта огибания, свойственного длинным волнам), с некоторым затуханием проходят сквозь стены зданий. Неприятностью является отражение сигнала от различных предметов, так что приемник получает не только прямой сигнал от передатчика, но и отраженные сигналы, приходящие с некоторой задержкой относительного прямого. Из-за этого эффекта многолучевого приема в некоторых точках пространства на определенных частотах связь оказывается невозможной, но достаточно немного сместить приемник (или передатчик) или изменить частоту, как связь появляется. С замираниями сигнала из-за многолучевого приема борются разными способами, в Bluetooth применяют перескоки несущей частоты. В Bluetooth используются ненаправленные антенны, дальность связи в зависимости от мощности передатчика ограничивается десятками или сотнями метров. Беспроводные интерфейсы привлекательны отсутствием кабелей и разъемов, которые нужно прокладывать и соединять для организации связи  — соединяемым устройствам достаточно лишь оказаться в зоне действия. Однако это имеет и обратную сторону  — среда передачи полностью открыта, в том числе и для злоумышленников, которые могут перехватывать сигнал для съема информации и передавать свой для вредоносных действий. Эти проблемы безопасности имеют решения, выходящие за рамки уровня физической передачи сигнала. Еще одна проблема радиоинтерфейса — высокая и постоянно растущая «заселенность» радиоэфира, вызывающая интерференцию (нежелательное взаимодействие) различной аппаратуры, включая беспроводные и сотовые телефоны, аппаратуру беспроводных локальных сетей, микроволновые печи и другие устройства.
    Если двигаться дальше в сторону повышения частоты электромагнитных колебаний, то мы попадаем сначала в инфракрасный диапазон, к которому примыкает и видимый оптический диапазон. Эти диапазоны также используются для оптической передачи сигналов как по проводам (оптоволокну), так и без проводов

    Инфракрасный порт  — стандартный IrDA и его фирменные предшественники HP-SIR и ASK IR  — уже долгие годы используются для беспроводного подключения периферии (принтеров и других устройств) к компьютерам. Особенно эффектно это подключение выглядит с малогабаритными устройствами, размеры которых соизмеримы (а то и меньше) размеров кабелей и разъемов традиционных интерфейсов. Порт IrDA имеет направленные излучатели и приемники с углом охвата 15-30° и дальность действия порядка 1 м, так что для соединения устройств их нужно должным образом приблизить друг к другу и сориентировать.
    Малая (по сравнению с радиоинтерфейсом) зона охвата не всегда является недостатком  — ее проще контролировать на предмет несанкционированных подключений, будучи уверенным, что из-за стенки никто не подключится и не подслушает. Достижимая скорость передачи невелика  — 4 Мбит/с, более высокие скорости проблематичны из-за слабости сигнала, получаемого фотоприемником. Инфракрасная связь используется и в беспроводных локальных сетях (IEEE 802.11 DFIR), где ненаправленные приемопередатчики за счет отражений от стен и потолка позволяют обеспечивать зону охвата порядка 10 м, но скорости еще ниже (1-2 Мбит/с).

    Безусловным лидером по показателю «Эль-Эф» является проводная оптическая связь, где световые импульсы инфракрасного диапазона передаются по оптоволокну, стеклянному или пластиковому. Стеклянное волокно в основном используется в телекоммуникациях, где требуется дальность связи, измеряемая сотнями метров и десятками (и даже сотнями) километров. Определенные типы волокна при подходящей длине волны обеспечивают прохождение сигнала с допустимым затуханием и сохранением формы, дает возможность достигать гигабитных скоростей в сочетании с километровыми расстояниями. Резервом повышения пропускной способности оптической линии является возможность волнового мультиплексирования: по одному волокну может распространяться множество оптических сигналов с различными длинами волн, не мешая друг другу. Аналогичное частотное уплотнение в электрических кабелях имеет куда более скромные возможности. Недостаток стеклянной оптики  — дороговизна оконечных устройств (приемопередатчиков) и соединительной аппаратуры, сам же кабель может быть и дешевле медного. В интерфейсах, не требующих больших расстояний (до десятков метров), с успехом используется пластиковое волокно, для которого и кабели, и разъемы существенно дешевле. Пример оптического интерфейса в современном персональном компьютере  — Toslink, оптическая версия цифрового аудиоинтерфейса S/PDIF. В серверах можно встретить интерфейс Fibre Channel (FCAL), с помощью которого подключают устройства хранения данных, которые могут быть удалены от компьютера хоть на километры при скорости передачи порядка 1 Гбит/с.

    Говоря об оптических интерфейсах, следует отметить, что они обеспечивают полную гальваническую развязку соединяемых устройств. Это означает, что схемы этих устройств не имеют электрической связи друг с другом, их «схемные земли» могут находиться под существенно различающимся потенциалом (хоть до тысяч и даже миллионов вольт). Кроме того, оптический интерфейс нечувствителен к электромагнитным наводкам. В ряде случаев эти свойства играют решающую роль, например, при соединении оборудования на энергетических объектах, в производственных помещениях с сильными источниками помех и т.п. В аудиотехнике гальваническая развязка позволяет избавиться от наводок (помех), приводящих к возникновению фона. Некоторые электрические интерфейсы (например, FireWire) также обладают гальванической развязкой, но параметры этой развязки скромнее (она распространяется только на низкие частоты, да и допустимая разность потенциалов не более 500 В, а в дешевых вариантах  — 60 В). Конечно, гальваническую развязку обеспечивают и любые беспроводные интерфейсы, но в условиях сильных помех радиоинтерфейсы скорее всего не обеспечат высокой скорости и надежности передачи. Проводные оптические интерфейсы  — наиболее защищенные от несанкционированного подключения. Съем информации без механического вмешательства в кабельное хозяйство практически невозможен, при необходимости можно организовать мониторинг состояния линии и своевременно засечь попытку подключения.

  6. Организация и топология интерфейсов


    Рассматриваемые интерфейсы служат для обмена информацией между соединяемыми устройствами; обмен происходит с помощью транзакций.
Интерфейсной транзакцией называется законченная операция по пересылке некоторой порции информации. В каждой транзакции участвует ведущее устройство (инициатор обмена), которое управляет интерфейсом на данном отрезке времени, и ведомое устройство (целевое устройство)  — второй участник транзакции, выбранный ведущим устройством и подчиняющийся ему.
    Транзакция может состоять из последовательности
фаз (состояний, шагов), в каждой из которых решается какая-то элементарная задача. Набор фаз зависит от сложности интерфейса, в простейшем случае он сводится лишь к фазам передачи данных. Протокол интерфейса  — это набор правил взаимодействия ведущих и ведомых устройств, обеспечивающий выполнение транзакций. Сложность протокола зависит от возможного числа участников, их отношений и ряда характеристик обмена, которые должен обеспечить интерфейс.
    Если интерфейс объединяет более двух устройств, то протокол должен решать
задачу адресации  — выбора устройства, которое будет отвечать на данную транзакцию. При этом встает и задача назначения адресов, для каждого устройства уникальных хотя бы в пределах данного объединения. В назначении адресов участие пользователя должно быть минимальным, а лучше  — вообще отсутствовать  — это один из принципов системы PnP (Plug and Play). Современные интерфейсы — шины PCI, USB, FireWire, Bluetooth  — изначально проектировались с учетом полной автоматизации назначения адресов. В ряд старых интерфейсов автоматическое назначение адресов ввели искусственным приемом позже, и они прижились (например, спецификация Microsoft PnP для шины ISA), в других этого не произошло (от попыток автоматизации SCSI довольно быстро отказались).
    Говоря о PnP, следует отметить еще одну задачу  —
автоматическая идентификация подключенных устройств. Устройства, претендующие на роль ведущих, должны иметь возможность узнать, какие именно устройства подключены к их интерфейсу, и поддерживать конфигурационные таблицы  — списки соответствия адресов и идентификаторов устройств. Решение задач автоматической адресации и идентификации позволяет говорить о возможности автоматического конфигурирования, которое может быть статическим и динамическим. Системы со статическим конфигурированием позволяют подключать/отключать устройства только в нерабочем состоянии, после всех изменений конфигурации они требуют перезагрузки. Так ведут себя, например, шины PCI и SCSI, хотя для них есть и специальные варианты с «горячим» подключением (hot plug, hot swap). Системы с динамическим конфигурированием позволяют подключать/отключать устройства на ходу, почти не влияя на работу остальных. Возможность динамического конфигурирования имеют шины USB, FireWire, и, конечно же, беспроводные интерфейсы (Bluetooth, IrDA).
    Отношения между соединяемыми устройствами могут быть равноранговыми или подчиненными. В случае
равнорангового интерфейса любое из устройств (по крайней мере, не одно) может претендовать на роль ведущего и стать им для каких-либо транзакций. Из этого вытекает задача арбитража — определения, какое устройство станет ведущим для очередной транзакции. В случае подчиненных отношений ведущим может быть только одно из устройств, соединенных интерфейсом. Хост-центрический интерфейс означает, что всеми транзакциями управляет один центральный узел, называемый хостом (host, хозяин). Под хостом для интерфейсов системного уровня подразумевается центр компьютера (ЦП и ОЗУ с ближайшим окружением); для периферийного уровня — компьютер с интерфейсным адаптером (контроллером). Шины PCI, FireWire, SCSI  — примеры равноранговых интерфейсов, USB, ATA  — хост-центрического.

    Топология определяет конфигурацию связей между соединяемыми устройствами: двухточечная, шинная, радиальная, смешанная, цепочечная.

    Двухточечная топология, или выделенный интерфейс  — самая простая связь, в которой участвуют только два устройства. Каждое из устройств «знает», что на противоположном конце интерфейса может быть лишь одно устройство, и задачи адресации не возникает. В случае подчиненных отношений в таком интерфейсе не возникает и задачи арбитража. Двухточечный интерфейс с подчиненным устройством будет иметь самый простой протокол. Пример  — LPT-порт компьютера в стандартном варианте, к которому подключено лишь одно устройство (принтер).

    Шинная топология  — объединение нескольких устройств на одной шине. Шина в данном контексте  — совокупность сигнальных линий, соединяющих несколько устройств. Все устройства для обмена информацией пользуются одними и теми же линиями шины, они одновременно «слышат» друг друга. Для успешного обмена на время транзакции только одно устройство на шине может быть ведущим (задатчиком, инициатором); если на шине присутствует более одного устройства, претендующего на роль задатчика, то должен быть реализован протокол и механизм арбитража  — передачи права на управление шиной. Арбитраж может выполняться централизовано специальным выделенным узлом-арбитром шины или распределенно, когда эта функция выполняется всеми потенциальными задатчиками. Арбитраж может быть как простым, так и приоритетным, с различными механизмами управления приоритетом узлов. Пример шин с централизованным арбитражом  — PCI, ISA; с распределенным арбитражом  — SCSI, FireWire.

    Если шиной управляет лишь одно устройство (хост), то арбитраж не нужен; примеры  — шины ATA, USB. Шинные соединения обеспечивают удешевление и конструктивное упрощение, что особенно заметно в параллельных интерфейсах с большим числом сигнальных линий. Однако это достигается ценой усложнения протокола и повышения уязвимости, поскольку отказ одного устройства (или линии связи) может парализовать работу всей шины.

    Радиальная (звездообразная) топология  — способ соединения более двух узлов, при котором к каждому периферийному узлу от центрального идет свой набор интерфейсных линий. Как правило, центральный узел является и единственным ведущим устройством, так что из интерфейсного протокола исключается задача арбитража. Задача адресации решается исключительно средствами центрального узла (звезду можно рассматривать как совокупность двухточечных соединений), что также упрощает протокол. Кроме упрощения протокола, радиальная топология имеет ряд преимуществ: высокая живучесть (отказ одного из периферийных устройств или его линий связи не влияет на остальные); наибольшая дальность связи (для двухточечных соединений легче обеспечивается согласование с линией, нагрузки на передатчики минимальны). Однако при большом числе сигнальных линий радиальные интерфейсы оказываются слишком дороги, так что радиальная топология преимущественно используется в последовательных интерфейсах. Пример радиальной топологии  — новый интерфейс Serial ATA.

    Цепочечная топология (daisy chain1)  — соединение устройств друг за другом, при котором каждое устройство имеет пару разъемов подключения и транслирует интерфейсные сигналы с одного на другой. За физической цепочечной топологией может стоять различная логическая организация. Например, в случае подключения внешних устройств SCSI, цепочка обеспечивает шинное соединение, но с заранее неопределенным числом абонентов, т.е. все узлы одновременно подключаются к одному набору сигнальных линий. Иной случай — подключение к LPT-порту цепочки устройств, например, сканера, за ним  — внешнего винчестера, и, наконец, обычного принтера. Здесь внутренняя логика интерфейсной части «проходных» устройств (стандарт IEEE  1284.3) обеспечивает трансляцию сигналов с одного разъема на другой избирательно, под управлением специального протокола выбора устройства. В результате после отработки этого протокола устанавливается двухточечная связь между хостом и одним из устройств цепочки и обмен между этой парой устройств ведется так, как будто мы имеем лишь одно устройство, подключенное к порту компьютера.

    В ряде интерфейсов наблюдается смесь топологий; так, например, в шине PCI большинство сигнальных линий идут шиной, но часть сигналов к каждому устройству (слоту) подходит радиально от центрального устройства (моста). Шина USB физически (внешне) использует древовидную топологию (соединение звезд, в центре которых находятся хабы USB), но логически хабы обеспечивают связь всех устройств в шину с единственным задатчиком  — хост-контроллером.

7.  Представления о времени и синхронизации

    Теперь обсудим требования, которые могут предъявляться ко времени и темпу выполнения транзакций: асинхронные, синхронные и изохронные передачи данных. Сразу заметим, что связь типов интерфейсов (асинхронных и синхронных) и типов передач не является жестко однозначной.

    В асинхронных передачах данных и интерфейсах участники не имеют друг перед другом никаких особых обязательств по времени: инициатор в любой момент может начать транзакцию, а целевое устройство, как правило, может ее приостановить в случае своей неготовности. Темп инициатора и целевого устройства согласуется с помощью механизмов квитирования2 или (и) управления потоком3. В тех интерфейсах, где имеется квитирование, отдельная задача управления потоком, как правило, не возникает (квитирование обеспечивает и согласование темпов). В последовательных интерфейсах без управления потоком в общем случае не обойтись; в COM-порте имеется даже два варианта протокола управления потоком. Асинхронная передача применима для всех устройств, не связанных с реальным временем: принтеров, сканеров, устройств хранения и т.п.
    В
синхронных интерфейсах участники транзакций по времени связаны жестко. В них присутствует постоянный тактовый сигнал синхронизации, к которому привязаны все события интерфейса: передача бит в последовательных и байт (слов) в параллельных интерфейсах. Тактовый сигнал, как правило, имеет постоянную (и точно поддерживаемую) частоту, хотя есть ряд синхронных интерфейсов и с произвольными периодами тактового сигнала (например, SPI). Сигнал синхронизации имеется и у передатчика, и у приемника; для передачи сигнала синхронизации используется либо специальная линия интерфейса, либо сигнал синхронизации с помощью так называемых самосинхронизирующихся кодов «упаковывается» в общий сигнал вместе с передаваемыми данными. Отдельная линия интерфейса для синхронизации удорожает интерфейс, да и при высоких скоростях возникнет та же проблема перекоса, которая ограничивает скорость параллельных интерфейсов. В современных последовательных интерфейсах (USB, FireWire), как и в сетях передачи данных, используются различные схемы самосинхронизирующегося кодирования, что позволяет добиваться высоких скоростей без оглядки на дальность. Синхронные интерфейсы позволяют обеспечивать как синхронные, так и асинхронные передачи данных; асинхронные интерфейсы для синхронных передач непригодны.    

Синхронная передача данных  — это передача с постоянной мгновенной скоростью. Она требуется, например, для мультимедийных данных, в частности  — для передачи оцифрованного звука в формате ИКМ (он же PCM  — передача отсчетов сигнала через равные промежутки времени). В телефонии отсчеты (8 бит) передаются с частотой 8 кГц (итого  — скорость 64 кбит/с), а для высококачественного звуковоспроизведения в аудио-CD  — с частотой 44,1 кГц по 16 бит на стереоканал (около 1,4 Мбит/с). Нарушение синхронности приведет к потере данных  — искажениям, помехам, провалам звука. Синхронная передача данных требует выделенного синхронного интерфейса для каждого подключаемого устройства (или сложных систем мультиплексирования).

    Изохронная передача данных  — это передача с постоянной средней скоростью: за определенный (фиксированный) интервал времени должно быть передано определенное число данных, но сама скорость (мгновенная), на которой данные передаются, не оговаривается. Конечно, мгновенная скорость должна быть, по крайней мере, не ниже средней. Обычно мгновенная скорость (пропускная способность интерфейса) выбирается намного выше требуемой средней скорости. Это позволяет использовать один интерфейс для подключения множества устройств и организовывать множество одновременных изохронных каналов передачи (с суммарной скоростью несколько меньшей, чем пропускная способность интерфейса). В одном интерфейсе изохронные передачи спокойно уживаются и с асинхронными. Вопросами распределения полосы пропускания интерфейса занимается диспетчер изохронных ресурсов  — отдельная функция программной поддержки. Изохроные передачи используются мультимедийными устройствами  — аудио- и видеоаппаратурой. В устройствах имеется буферная память, в которую складываются поступающие пакеты изохронных передач, а «расходование» этих данных (например, на звуковоспроизведение) внутри устройств происходит уже с постоянной мгновенной скоростью (обратная передача происходит похожим образом). Изохронные передачи удобны и в мультимедийных приложениях с переменной скоростью (когда используется сжатие данных, скорость их поступления может колебаться, но, конечно, известен ее верхний предел). Изохронные передачи поддерживаются шинами USB, FireWire, радиоинтерфейсом Bluetooth; изохронный трафик могут нести и обычные сети передачи данных с достаточно высокой пропускной способностью. Точная синхронизация изохронных устройств имеет свои особенности: устройствам приходится использовать собственные (очень точные!) тактовые генераторы, поскольку непосредственной синхронизации (как в синхронных интерфейсах) у них нет. Для решения задачи синхронизации используются, например, механизмы обратной связи, позволяющие устройствам корректировать уход своих «часов».

    2 Квитирование  — это взаимное подтверждение отдельных шагов протокола обоими участниками транзакции. Квитирование широко применяется в параллельных интерфейсах (в том же LPT-порте, шинах расширения), для чего используются специальные интерфейсные линии.

    3 Управление потоком  — это уведомление источника (передатчика) данных о возможностях их приема противоположной стороной: если приемник не успевает обрабатывать приходящие данные, он «просит» передатчик приостановить передачу на определенное время или до особого разрешения.

 8.   Второе поколение ввода-вывода  — PCI и PCI-X

    Шина PCI, как и ее предшественница EISA, относится ко второму поколению шин ввода-вывода. Основные признаки этого поколения:

  •  Параллельный интерфейс с протоколом обеспечения надежного обмена. Разрядность шины адреса и данных  — 32 бита с возможным расширением до 64 бит; достоверность обеспечивается контролем четности; надежность передачи  — обязательным ответом целевого устройства, благодаря чему инициатор транзакции всегда узнает ее судьбу.
  •  Синхронный интерфейс и пакетные передачи с высокой скоростью. Тактовая частота 33 МГц при разрядности 32 бита позволяет достигать пиковой скорости передачи 133 Мбайт/с; возможно повышение частоты до 66 МГц, что при разрядности 64 бит дает пиковую скорость до 532 Мбайт/с.
  •  Автоматическое конфигурирование устройств, заложенное в спецификации шины. Набор стандартизованных конфигурационных регистров позволяет собирать сведения о потребностях всех устройств в системных ресурсах (адресах и прерываниях), конфигурировать устройства (назначать ресурсы) и управлять их поведением (разрешать работу в качестве целевых устройств и инициаторов транзакций).
  •  Набор команд обращений к ресурсам различных пространств, включая и команды оптимизированного обращения к целым строкам кэш-памяти.

Заметим, что декларированная высокая пропускная способность шины почти достигается лишь при работе активных устройств шины (Bus Master’ов)  — только они способны генерировать длинные пакетные транзакции. Ввод-вывод по шине PCI, выполняемый центральным процессором, дает гораздо более скромные значения реальной пропускной способности.
    Особенность шины PCI  — ограниченное (не более 5-6) число устройств, подключа
емых к шине (в предыдущих шинах такого жесткого ограничения не было). Для подключения большего числа устройств используются мосты PCI, организующие дополнительные шины. Мосты PCI прозрачны  — через них проходят все необходимые транзакции. Однако механизмы буферизации, применяемые в мостах PCI, вносят значительную задержку в выполнение транзакций через мост.

    Слабое место протокола PCI  — операции чтения, особенно если они адресуются к не очень быстрой памяти. Эти операции могут на длительное время непродуктивно занимать шину ожиданием данных.

    Нарекания вызывает и традиционный способ сигнализации аппаратных прерываний на PCI: 4 линии запроса на все устройства всех шин обрекают на их разделяемое использование несколькими устройствами. Хотя электрических противопоказаний (как на ISA) здесь нет, отсутствие стандартизованного признака запроса прерывания затрудняет и замедляет идентификацию устройства, вызвавшего прерывание. Этот стандартный признак появился только в PCI 2.3  — после долгих лет активного использования шины. Правда, начиная с версии 2.2 появился новый механизм оповещения о прерываниях  — MSI, который снимает все проблемы традиционной сигнализации.

    Спецификация PCI стала отправной точкой для создания выделенного интерфейса графического акселератора  — порта AGP. Это синхронный 32-разрядный параллельный двухточечный интерфейс. Здесь при тактовой частоте 66 МГц достигается скорость 264 Мбайт/с (режим 1x), 533 Мбайт/с (2x за счет двойной синхронизации), 1066 Мбайт/с (4x с синхронизацией от источника данных) и в самой последней версии AGP8x  — 2,132 Мбайт/с. Кроме повышения пиковой скорости, в AGP применен более сложный протокол, позволяющий ставить запросы к памяти в очереди. Благодаря этому шина не простаивает в ожидании данных, что положительно сказывается на эффективной производительности. Еще одна особенность AGP  — аппаратная трансляция адресов памяти, позволяющая согласовать «видение» физической памяти со стороны акселератора с виртуальной памятью, в которой работает графическое ПО на центральном процессоре. Порт AGP является специализированным интерфейсом системного уровня  — к нему подключают только графический акселератор (видеокарту).

    В качестве шины общего назначения PCI получила развитие в виде стандарта PCI-X, вышедшего уже и во второй версии. Здесь тоже повышена пиковая скорость: тактовая частота может быть поднята до 133 МГц (варианты PCI-X66, PCI-X100 и PCI-X133). В версии 2.0 появился новый режим Mode 2 с синхронизацией от источника данных, в котором скорость записи в память (и только для этой операции) может подниматься в 2 или 4 раза (PCI-X266 и PCI-X533 соответственно). Таким образом, пиковая скорость записи в память в 64-битном варианте шины может достигать 4 Гбайт/с (чтения — до 1 Гбайт/с). В версии 2.0 определен и 16-битный вариант шины. В PCI-X изменен шинный протокол: введена дополнительная фаза передачи атрибутов транзакции, в которой инициатор сообщает свой идентификатор (на PCI целевое устройство не имеет понятия о том, кто запрашивает транзакцию). Кроме того, сообщается и число байтов, подлежащих передаче  — это позволяет участникам транзакции планировать свои действия. Главное изменение протокола  — возможность расщепленных транзакций: если целевое устройство не способно быстро ответить, оно заставляет инициатора освободить шину, а позже само организует доставку запрошенных данных. Благодаря этому существенно повышается эффективность использования шины  — исключаются простои при ожидании данных. Расщепление транзакций повышает и эффективность работы мостов  — их издержки становятся менее «разорительными».

    В PCI-X 2.0 введен и новый способ коммуникации между устройствами: обмен сообщениями, адресуемыми по идентификаторам устройств (номер шины, устройства и функции), а не по адресам ресурсов (памяти или ввода-вывода). В предыдущих версиях шин такой возможности не было; этот способ коммуникации полезен для повышения «интеллигентности» подсистемы ввода-вывода.

    Интересно, что при всех нововведениях у PCI-X остается совместимость с устройствами и шинами PCI: каждая шина будет работать в режиме, доступном самому слабому участнику  — от PCI с частотой 33 МГц до PCI-X533. Мосты позволяют разным сегментам системы (шинам PCI) работать в разных режимах, так что можно выбрать эффективную конфигурацию, в которой новые устройства, критичные к пропускной способности, будут нормально уживаться со старыми.

Параллельный интерфейcLPT-порт

Порт параллельного интерфейса был введен в PC для подключения принтера — отсюда и пошло его название LPT-порт (Line Prin Ter — построчный принтер). Традиционный, он же стандартный, LPT-порт (так называемый SPP-nopm) ориентирован на вывод данных, хотя, с некоторыми ограничениями, позволяет и вводить данные. Существуют различные модификации LPT-порта — ЕРР, ЕСР и другие, расширяющие его функциональные возможности, повышающие производительность и снижающие нагрузку на процессор. Поначалу они являлись фирменными решениями отдельных производителей, позднее был принят стандарт IEEE 1284.

С внешней стороны порт имеет 8-битную шину данных, 5-битную шину сигналов состояния и 4-битную шину управляющих сигналов, выведенные на разъем-розетку DB-25S. В LPT-порте используются логические уровни ТТЛ, что ограничивает допустимую длину кабеля из-за невысокой помехозащищенности ТТЛ-интерфейса. Гальваническая развязка отсутствует — схемная земля подключаемого устройства соединяется со схемной землей компьютера. Из-за этого порт является уязвимым местом компьютера, страдающим при нарушении правил подключения и заземления устройств. Поскольку порт обычно располагается на системной плате, в случае его «выжигания» зачастую выходит из строя и его ближайшее окружение, вплоть до выгорания всей системной платы.

С программной стороны LPT-порт представляет собой набор регистров, расположенных в пространстве ввода-вывода. Регистры порта адресуются относительно базового адреса порта, стандартными значениями которого являются 3BCh, 378h и 278h. Порт может использовать линию запроса аппаратного прерывания, обычно IRQ7 или IRQ5. В расширенных режимах может использоваться и канал DMA.

Порт имеет поддержку на уровне BIOS — поиск установленных портов во время теста POST и сервисы печати обеспечивают вывод символа (по опросу готовности, не используя аппаратных прерываний), инициализацию интерфейса и принтера, а также опрос состояния принтера.

Практически все современные системные платы имеют встроенный адаптер LPT-порта. К LPT-портам подключают принтеры, плоттеры, сканеры, коммуникационные устройства и устройства хранения данных, а также электронные ключи, программаторы и прочие устройства. Иногда параллельный интерфейс используют для связи между двумя компьютерами — получается сеть, «сделанная на коленке» (LapLink).

       Традиционный LPT-порт

Традиционный, он же стандартный, LPT-порт называется стандартным параллельным портом (Standard Parallel Port, SPP), или SPP-портом, и является однонаправленным портом, через который программно реализуется протокол обмена Centronics  .

Перечислим шаги процедуры вывода байта по интерфейсу Centronics с указанием требуемого количества шинных операций процессора.

  1.  Вывод байта в регистр данных (1 цикл IOWR#).
  2.  Ввод из регистра состояния и проверка готовности устройства (бит SR. 7 —
    сигнал
    Busy). Этот шаг зацикливается до получения готовности или до сраба
    тывания программного тайм-аута (минимум 1 цикл
    IORD#).
  3.  По получению готовности выводом в регистр управления устанавливается
    строб данных, а следующим выводом строб снимается. Обычно, чтобы пере
    ключить только один бит (строб), регистр управления предварительно считы-
    вается, что к двум циклам
    IOWR# добавляет еще один цикл IORD#.

Видно, что для вывода одного байта требуется 4-5 операций ввода-вывода с регистрами порта (в лучшем случае, когда готовность обнаружена по первому чтению регистра состояния). Отсюда вытекает главный недостаток вывода через стандартный порт — невысокая скорость обмена при значительной загрузке процессора. Порт удается разогнать до скоростей 100-150 Кбайт/с при полной загрузке процессора, что недостаточно для печати на лазерном принтере. Другой недостаток функциональный — сложность использования в качестве порта ввода.

Стандартный порт асимметричен — при наличии 12 линий (и бит), нормально работающих на вывод, на ввод работает только 5 линий состояния. Если необходима симметричная двунаправленная связь, на всех стандартных портах работоспособен режим полубайтного обмена Nibble Mode. В этом режиме, называемом также Hewlett Packard Bi-tronics, одновременно принимаются 4 бита данных, пятая линия используется для квитирования. Таким образом, каждый байт передается за два цикла, а каждый цикл требует по крайней мере 5 операций ввода-вывода.Схемотехника выходных буферов данных LPT-портов отличается большим разнообразием. На многих старых моделях адаптеров SPP-порт данных можно использовать и для организации ввода. Если в порт данных записать байт с единицами во всех разрядах, а на выходные линии интерфейса через микросхемы с выходом типа «открытый коллектор» подать какой-либо код (или соединить ключами какие-то линии со схемной землей), то этот код может быть считан из того же регистра данных. Однако выходным цепям передатчика информации придется «бороться» с выходным током логической единицы выходных буферов адаптера. Схемотехника ТТЛ такие решения не запрещает, но если внешнее устройство выполнено на микросхемах КМОП, их мощности может не хватить для «победы» в этом шинном конфликте. Однако современные адаптеры часто имеют в выходной цепи согласующий резистор с сопротивлением до 50 Ом. Выходной ток короткого замыкания выхода на землю обычно не превышает 30 мА. Простой расчет показывает, что даже в случае короткого замыкания контакта разъема на землю при выводе «единицы» на этом резисторе падает напряжение 1,5 В, что входной схемой приемника будет воспринято как «единица». Поэтому нельзя полагать, что такой способ ввода будет работать на всех компьютерах. На некоторых старых адаптерах портов выходной буфер отключается перемычкой на плате. Тогда порт превращается в обыкновенный порт ввода.

1.3. Стандарт IEEE 1284

Стандарт на параллельный интерфейс IEEE 1284, принятый в 1994 году, описывает порты SPP, ЕРР и ЕСР. Стандарт определяет 5 режимов обмена данными, метод согласования режима, физический и электрический интерфейсы. Согласно IEEE 1284, возможны следующие режимы обмена данными через параллельный порт:

  •  Режим совместимости (Compatibility Mode) — однонаправленный прямой 8-
    битный канал с протоколом
    Centronics, программно управляемый хостом. Это
    базовый режим порта — исходное состояние и промежуточный при всех пере
    ходах.
  •  Полубайтный режим (Nibble Mode) — однонаправленный обратный парал
    лельно-последовательный (4-битный) канал, программно управляемый хос
    том. Служит дополнением к
    Compatibility, одновременно с ним работать не
    может, переключение под управлением хоста.
  •  Байтный режим (Byte Mode) — однонаправленный обратный 8-битный канал,
    программно управляемый хостом. Служит дополнением к
    Compatibility, одно
    временно с ним работать не может, переключение под управлением хоста.
  •  Режим ЕРР (ЕРР Mode) — двунаправленный 8-битный канал, управляемый
    процессором; аппаратно реализованное блокирующее квитирование. Отдель
    ные линии стробирования позволяют различать передачу данных и адресов,
  •  Режим ЕСР (ЕСР Mode) — двунаправленный симметричный 8-битный канал,
    аппаратно реализованное блокирующее квитирование. Управляющая линия
    позволяет различать передачу данных и команд; команды могут быть исполь
    зованы для компрессии данных и адресации каналов.

Стандарт определяет способ, по которому ПО может определить режим, доступный и хосту (PC), и периферийному устройству (или присоединенному второму компьютеру). Режимы нестандартных портов, реализующих протокол обмена Centronics аппаратно (Fast Centronics, Parallel Port FIFO Mode), могут и не являться режимами IEEE 1284, несмотря на наличие в них черт ЕРР и ЕСР.

В компьютерах с LPT-портом на системной плате режим — SPP, ЕРР, ЕСР или их комбинация — задается в BIOS Setup. Режим совместимости полностью соответствует SPP-порту. Остальные режимы подробно рассмотрены ниже. При описании режимов обмена фигурируют следующие понятия:

  1.  хост — компьютер, обладающий параллельным портом;
  2.  ПУ — периферийное устройство, подключаемое к этому порту;
  3.  Ptr — в названиях сигналов обозначает Передающее ПУ;
  4.  прямой канал — канал вывода данных от хоста в ПУ;
  5.  обратный канал — канал ввода данных в хост из ПУ.

1.3.1. Полубайтный режим ввода — Nibble Mode

Полубайтный режим предназначен для двунаправленного обмена и может работать на всех стандартных портах. Порты имеют 5 линий ввода состояния, используя которые ПУ может посылать в хост байт тетрадами (nibble — полубайт, 4 бита) за два приема. Сигнал Аск#, вызывающий прерывание, которое может использоваться в данном режиме, соответствует биту 6 регистра состояния, что усложняет программные манипуляции с битами при сборке байта. Сигналы порта приведены в табл. 1.2, временные диаграммы — на рис. 1.1.

Прием байта данных в полубайтном режиме состоит из следующих фаз:

  1.  Хост сигнализирует о готовности приема данных установкой низкого уровня
    на линии
    HostBusy.
  2.  ПУ в ответ помещает тетраду на входные линии состояния.
  3.  ПУ сигнализирует о готовности тетрады установкой низкого уровня на ли
    нии
    PtrClk.

Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость
приемом и обработкой тетрады.

ПУ отвечает установкой высокого уровня на линии PtrClk.

Шаги 1.-5 повторяются для второй тетрады, после чего ПУ может сигнализи
ровать о наличии данных для хоста (
Select) и занятости прямого канала
(
Busy); вызывать прерывание (АСК).

1.3.2. Байтный режим ввода — Byte Mode

В этом режиме данные принимаются с использованием двунаправленного порта, у которого выходной буфер данных может отключаться установкой бита CR. 5=1. Как и предыдущие, режим является программно-управляемым — все сигналы квитирования анализируются и устанавливаются драйвером. , временные диаграммы — на рис. 1.2.

Сигналы действуют в последовательности согласования (см. ниже).

Рис. 1.2. Прием данных в байтном режиме

Фазы приема байта данных перечислены ниже.

  1.  Хост сигнализирует о готовности приема данных установкой низкого уровня
    на линии
    HostBusy.
  2.  ПУ в ответ помещает байт данных на линии Data [0:7].
  3.  ПУ сигнализирует о действительности байта установкой низкого уровня на
    линии
    PtrClk.
  4.  Хост устанавливает высокий уровень на линии HostBusy, указывая на занятость
    приемом и обработкой байта.
  5.  ПУ отвечает установкой высокого уровня на линии PtrClk.
  6.  Хост подтверждает прием байта импульсом HostClk.

Шаги 1—6 повторяются для каждого следующего байта. После подъема HostBusy ПУ может сигнализировать о наличии данных, занятости Прямого канала и вызывать прерывание по готовности данных. Взаимоблокйрующее квитирование парой сигналов HostBusy и PtrClk хост отрабатывает программно (через CR и SR); ПУ может и не использовать сигнал HostClk (это приглашение к выдаче следующего байта). Достижима скорость как у прямого канала (до 150 кбайт/с). Однако режим может работать только на двунаправленных портах; которые раньше применялись в основном на малораспространенных машинах PS/2, но практически все современные порты можно сконфигурировать на двунаправленный режим (в настройках BIOS SetupBi-Di или PS/2).

Режим ЕРР

Протокол ЕРР (Enhanced Parallel Port — улучшенный параллельный порт) был разработан компаниями Intel, Xircom и Zenith Data Systems задолго до принятия стандарта IEEE 1284. Этот протокол предназначен для повышения производительности обмена по параллельному порту, впервые был реализован в чипсете Intel 386SL (микросхема 82360) и впоследствии принят множеством компаний как дополнительный протокол параллельного порта. Версии протокола, реализованные до принятия IEEE 1284, отличаются от нынешнего стандарта (см. ниже).

Протокол ЕРР обеспечивает четыре типа циклов обмена:

  •  запись данных;
  •  чтение данных;
  •  запись адреса;
  •  чтение адреса.

Циклы обмена данными отличаются от адресных циклов применяемыми стробирующими сигналами. Назначение циклов записи и чтения данных очевидно. Выделение адресных циклов позволяет подключать устройство с множеством регистров, организуя мультиплексированную шину адреса и данных. Назначение сигналов порта ЕРР и их связь с сигналами SPP объясняются в табл. 1.4.

' Сигналы действуют в последовательности согласования (см. ниже).

ЕРР-порт имеет расширенный набор регистров (табл. 1.5), который занимаете пространстве ввода-вывода 5-8 смежных байт.

В отличие от программно-управляемых режимов, описанных выше, внешние сигналы ЕРР-порта для каждого цикла обмена формируются аппаратно по одной операции записи или чтения в регистр порта. На рис. 1.3 приведена диаграмма цикла записи данных, иллюстрирующая внешний цикл обмена, вложенный в цикл записи системной шины процессора (иногда эти циклы называют связанными). Адресный цикл записи отличается от цикла данных только стробом внешнего интерфейса.

Цикл записи данных состоит из следующих фаз.

  1.  Программа выполняет цикл вывода (IOWR#) в порт 4 (ЕРР  Data  Port).

Адаптер устанавливает сигнал Write* (низкий уровень), и данные помещают
ся на выходную шину
LPT-порта.

  1.  При низком уровне Wait* устанавливается строб данных.
  2.  Порт ждет подтверждения от ПУ (перевода Wait* в высокий уровень).
  3.  Снимается строб данных — внешний ЕРР-цикл завершается.
  4.  Завершается процессорный цикл вывода.

ПУ устанавливает низкий уровень Wait*, указывая на возможность начала сле
дующего цикла.

Рис. 1.3. Цикл записи данных ЕРР

Пример адресного цикла чтения приведен на рис. 1.4. Цикл чтения данных отличается только применением другого стробирующего сигнала.

Главной отличительной чертой ЕРР является выполнение внешней передачи во время одного процессорного цикла ввода-вывода. Это позволяет достигать высоких скоростей обмена (0,5-2 Мбайт/с). ПУ, подключенное к параллельному порту ЕРР, может работать со скоростью устройства, подключаемого через слот ISA.Протокол блокированного квитирования (interlocked handshakes) позволяет автоматически настраиваться на скорость обмена, доступную и хосту, и ПУ. ПУ может регулировать длительность всех фаз обмена с помощью всего лишь одного сигнала Wait#. Протокол автоматически подстраивается под длину кабеля — вносимые задержки приведут только к удлинению цикла. Поскольку кабели, соответствующие стандарту IEEE 1284 (см. выше), имеют одинаковые волновые свойства для разных линий, нарушения передачи, связанного с «состязаниями» сигналов, происходить не должно. При подключении сетевых адаптеров или внешних дисков к ЕРР-порту можно наблюдать непривычное явление: снижение производительности по мере удлинения интерфейсного кабеля.

Естественно, ПУ не должно «подвешивать» процессор на шинном цикле обмена. Это гарантирует механизм тайм-аутов PC, который принудительно завершает любой цикл обмена, длящийся более 15 мкс. В ряде реализаций ЕРР за тайм-аутом интерфейса следит сам адаптер — если ПУ не отвечает в течение определенного времени (5 мкс), цикл прекращается и в дополнительном (не стандартизованном) регистре состояния адаптера фиксируется ошибка.

Устройства с интерфейсом ЕРР, разработанные до принятия IEEE 1284, отличаются началом цикла: строб DataStb# или AddrStb* устанавливается независимо от состояния WAIT*. Это означает, что ПУ не может задержать начало следующего цикла (хотя может растянуть его на требуемое время). Такая спецификация называется ЕРР 1.7 (предложена Xircom). Именно она применялась в контроллере 82360. Периферия, совместимая с IEEE 1284 ЕРР, будет нормально работать с контроллером ЕРР 1.7, но ПУ в стандарте ЕРР 1.7 может отказаться работать с контроллером ЕРР 1284.

С программной точки зрения контроллер ЕРР-порта выглядит просто (см. табл. 1.5). К трем регистрам стандартного порта, имеющим смещение 0,1 и 2 относительно базового адреса порта, добавлены два регистра (ЕРР Address Port иЕРР Data Port), чтение и запись в которые вызывает генерацию связанных внешних циклов.

Назначение регистров стандартного порта сохранено для совместимости ЕРР-порта с ПУ и ПО, рассчитанными на применение программно-управляемого обмена. Поскольку сигналы квитирования адаптером вырабатываются аппарат-но, при записи в регистр управления CR биты 0, 1 и 3, соответствующие сигналам Strobe*, AutoFeed* и Selectln*, должны иметь нулевые значения. Программное вмешательство могло бы нарушить последовательность квитирования. Некоторые адаптеры имеют специальные средства защиты (ЕРР Protect), при включении которых программная модификация этих бит блокируется.

Использование регистра данных ЕРР позволяет осуществлять передачу блока данных с помощью одной инструкции RE P INSB или RE P OUTSB. Некоторые адаптеры допускают 16/32-битное обращение к регистру данных ЕРР. При этом адаптер просто дешифрует адрес со смещением в диапазоне 4-7 как адрес регистра данных ЕРР, но процессору сообщает о разрядности 8 бит. Тогда 16- или 32-битное обращение по адресу регистра данных ЕРР приведет к автоматической генерации двух или четырех шинных циклов по нарастающим адресам, начиная со смещения 4. Эти циклы будут выполняться быстрее, чем то же количество одиночных циклов. Более «продвинутые» адаптеры для адреса регистра данных ЕРР сообщают разрядность 32 бит и для них до 4 байт может быть передано за один цикл обращения процессора. Таким образом обеспечивается производительность до 2 Мбайт/с, достаточная для адаптеров локальных сетей, внешних дисков, стриммеров и CD-ROM. Адресные циклы ЕРР всегда выполняются только в однобайтном режиме.

Важной чертой ЕРР является то, что обращение процессора к ПУ осуществляется в реальном времени — нет буферизации. Драйвер способен отслеживать состояние и подавать команды в точно известные моменты времени. Циклы чтения и записи могут чередоваться в произвольном порядке или идти блоками. Такой тип обмена удобен для регистро-ориентированных ПУ или ПУ, работающих в реальном времени, например устройств сбора информации и управления. Этот режим пригоден и для устройств хранения данных, сетевых адаптеров, принтеров, сканеров и т. п.

К сожалению, режим ЕРР поддерживается не всеми портами — он отсутствует, к примеру, в ряде блокнотных ПК. Так что при разработке собственных устройств ради большей совместимости с компьютерами приходится ориентироваться на режим ЕСР.

1.3.4. Режим ЕСР

Протокол ЕСР (Extended Capability Port — порт с расширенными возможностями) был предложен Hewlett Packard и Microsoft для связи с ПУ типа принтеров или сканеров. Как и ЕРР, данный протокол обеспечивает высокопроизводительный двунаправленный обмен данными хоста с ПУ.

Протокол ЕСР в обоих направлениях обеспечивает два типа циклов:

циклы записи и чтения данных;

командные циклы записи и чтения.

Командные циклы подразделяются на два типа: передача канальных адресов и передача счетчика RLC (Run-Length Count).В отличие от ЕРР вместе с протоколом ЕСР сразу появился стандарт на программную (регистровую) модель его адаптера, изложенный в документе «The IEEE 1284 Extended Capabilities Port Protocol and ISA Interface Standard» компании Microsoft. Этот документ определяет свойства протокола, не заданные стандартом IEEE 1284:=

компрессия данных хост-адаптером по методу RLE;

буферизация FIFO для прямого и обратного каналов;

применение DMA и программного ввода-вывода.

Компрессия в реальном времени по методу RLE (Run-Length Encoding) позволет достичь коэффициента сжатия 64:1 при передаче растровых изображений, которые имеют длинные строки повторяющихся байт. Компрессию можно использовать, только если ее поддерживают и хост, и ПУ.|

Канальная адресация ЕСР применяется для адресации множества логических устройств, входящих в одно физическое. Например, в комбинированном устройстве факс/принтер/модем, подключаемом только к одному параллельному порту, возможен одновременный прием факса и печать на принтере. В режиме SPP, если принтер установит сигнал занятости, канал будет занят данными, пока принтер их не примет. В режиме ЕСР программный Драйвер просто адресуется к другому логическому каналу того же порта.

.

1 Сигналы действуют в последовательности согласования (см. ниже).

Адаптер ЕСР тоже генерирует внешние протокольные сигналы квитирования аппаратно, но его работа существенно отличается от режима ЕРР.

На рис. 1.5, а приведена диаграмма двух циклов прямой передачи: за циклом данных следует командный цикл. Тип цикла задается уровнем на линии HostAck: в цикле данных — высокий, в командном цикле — низкий. В командном цикле байт может содержать канальный адрес или счетчик RLE. Отличительным признаком является бит 7 (старший): если он нулевой, то биты 0-6 содержат счетчик RLE (0-127), если единичный — то канальный адрес. На рис. 1.5, б показана пара циклов обратной передачи.

В отличие от диаграмм обмена ЕРР, на рис. 1.5 не приведены сигналы циклов системной шины процессора. В данном режиме обмен программы с ПУ разбивается на два относительно независимых процесса, которые связаны через FIFO-буфер. Обмен драйвера с FIFO-буфером может осуществляться как с использованием DMA, так и программного ввода-вывода. Обмен ПУ с буфером аппаратно выполняет адаптер ЕСР. Драйвер в режиме ЕСР не имеет информации о точном состоянии процесса обмена, но обычно важно только то, завершен он или нет.

Прямая передача данных на внешнем интерфейсе состоит из следующих шагов:

  1.  Хост помещает данные на шину канала и устанавливает признак цикла дан
    ных (высокий уровень) или команды (низкий уровень) на линии
    HostAck.
  2.  Хост устанавливает низкий уровень на линии HostClk, указывая на действи
    тельность данных.
  3.  ПУ отвечает установкой высокого уровня на линии PeriphAck.
  4.  Хост устанавливает высокий уровень линии HostClk, и этот перепад может ис
    пользоваться для фиксации данных в ПУ.
  5.  ПУ устанавливает низкий уровень на линии PeriphAck для указания на готов
    ность к приему следующего байта.

Поскольку передача в ЕСР происходит через FIFO-буферы, которые могут присутствовать на обеих сторонах интерфейса, важно понимать, на каком этапе данные можно считать переданными. Данные считаются переданными на шаге 4, когда линия HostClk переходит в высокий уровень. В этот момент модифицируются счетчики переданных и принятых байт. В протоколе ЕСР есть условия, вызывающие прекращение обмена между шагами 3 и 4. Тогда эти данные не должны рассматриваться как переданные.

Передача в режиме ЕСР: а — прямая, б — обратная

Из рис. 1.5 видно и другое отличие ЕСР от ЕРР. Протокол ЕРР позволяет драйве ру чередовать циклы прямой и обратной передачи, не запрашивая подтвержденю на смену направления. В ЕСР смена направления должна быть согласована: хос запрашивает реверс установкой ReverseRequest*, после чего он должен дождать ся подтверждения сигналом AckReverse#. Поскольку предыдущий цикл мог вы подняться по прямому доступу, драйвер должен дождаться завершения прямой доступа или прервать его, выгрузить буфер FIFO, определив точное значение счет чика переданных байт, и только после этого запрашивать реверс.

Обратная передача данных состоит из следующих шагов:

  1.  Хост запрашивает изменение направления канала, устанавливая низкий уро
    вень на линии
    ReverseRequest*.
  2.  ПУ разрешает смену направления установкой низкого уровня на линии
    AckReverse#.
  3.  ПУ помещает данные на шину канала и устанавливает признак цикла данныч
    (высокий уровень) или команды (низкий уровень) на линии
    PeriphAck.
  4.  ПУ устанавливает низкий уровень на линии PeriphClk, указывая на действи
    тельность данных.
  5.  Хост отвечает установкой высокого уровня на линии HostAck.

ПУ устанавливает высокий уровень линии PeriphClk; этот перепад может ис
пользоваться для фиксации данных хостом.

Хост устанавливает низкий уровень на линии HostAck для указания на готов
ность к приему следующего байта.

1.3.7. Физический и электрический интерфейсы

Стандарт IEEE 1284 определяет физические характеристики приемников и передатчиков сигналов,-которые по уровням совместимы с ТТЛ. Спецификации стандартного порта не задавали типов выходных схем, предельных значений величин нагрузочных резисторов и емкости, вносимой цепями и проводниками. На относительно невысоких скоростях обмена разброс этих параметров не вызывал проблем совместимости. Однако расширенные (функционально и по скорости передачи) режимы требуют четких спецификаций. IEEE 1284 определяет два уровня интерфейсной совместимости. Первый уровень (Level I) определен для устройств медленных, но использующих смену направления передачи данных. Второй уровень (Level II) определен для устройств, работающих в расширенных режимах с высокими скоростями и длинными кабелями. К передатчикам предъявляются следующие требования.

Уровни сигналов без нагрузки не должны выходить за пределы -0,5... +5,5 В.

Уровни сигналов при токе нагрузки 14 мА должны быть не ниже +2,4 В для
высокого уровня (
VOH) и не выше +0,4 В для низкого уровня (V0L) на постоян
ном токе.

Выходной импеданс Ro, измеренный на разъеме, должен составлять 50±5 Ом
на уровне
V0H-V0L. Для обеспечения заданного импеданса используют после
довательные резисторы в выходных цепях передатчика. Согласование импе
данса передатчика и кабеля снижает уровень импульсных помех.

Скорость нарастания (спада) импульса должна находиться в пределах 0,05
0,4 В/нс.

Ниже перечислены требования к приемникам.

Допустимые пиковые значения сигналов -2,0...+7,0 В.

Пороги срабатывания должны быть не выше 2,0 В (VIH) для высокого уровня и
не ниже 0,8 В (
V,L) для низкого.

Приемник должен иметь гистерезис в пределах 0,2-1,2 В (гистерезисом обла
дают специальные микросхемы — триггеры Шмитта).

Входной ток микросхемы (втекающий и вытекающий) не должен превышав
20 мкА, входные линии соединяются с шиной питания +5 В резистором 1,2 кОм.

Входная емкость не должна превышать 50 пФ.

Когда появилась спецификация ЕСР, компания Microsoft рекомендовала применение динамических терминаторов на каждую линию интерфейса. Однако в настоящее время следуют спецификации IEEE 1284, в которой динамические терминаторы не применяются. Рекомендованные схемы входных, выходных и двунаправленных цепей приведены на рис. 1.7.

Стандарт IEEE 1284 определяет три типа используемых разъемов. Типы A (DB-25) и В (Centronics-36) характерны для традиционных кабелей подключения принтера, тип С — новый малогабаритный 36-контактный разъем.

Рис. 1.7. Оконечные цепи линий интерфейса IEEE 1284: а — однонаправленные линии,

б — двунаправленные

Традиционные интерфейсные кабели имеют от 18 до 25 проводов, в зависимости от числа проводников цепи GND. Эти проводники могут быть как перевитыми, так и нет. К экранированию кабеля жестких требований не предъявлялось. Такие кабели вряд ли будут надежно работать на скорости передачи 2 Мбайт/с и при длине более 2 м.

Стандарт IEEE 1284 регламентирует свойства кабелей.

♦ Все сигнальные линии должны быть перевитыми с отдельными обратными (общими) проводами.

Каждая пара должна иметь импеданс 62±6 Ом в частотном диапазоне4-16 МГц.

Уровень перекрестных помех между парами не должен превышать 10 %.

Кабель должен иметь экран (фольгу), покрывающий не менее 85 % внешней
поверхности. На концах кабеля экран должен быть окольцован и соединен с
контактом разъема.

Кабели, удовлетворяющие этим требованиям, маркируются надписью «IEEE Std 1284-1994 Compliant». Они могут иметь длину до 10 метров, обозначения типов приведены в табл. 1.10.

1.5. Параллельный порт и РпР

Большинство современных периферийных устройств, подключаемых к LPT-nop-ту, поддерживает стандарт 1284 и функции РпР. Для поддержки этих функций компьютером с аппаратной точки зрения достаточно иметь контроллер интерфейса, соответствующий стандарту 1284. Если подключаемое устройство поддерживает РпР, оно по протоколу согласования режимов 1284 способно «договориться» с портом, представляющим «интересы» компьютера, о возможных режимах обмена. Далее, для работы РпР подключенное устройство должно сообщить операционной системе все необходимые сведения о себе. Как минимум это идентификаторы производителя, модели и набор поддерживаемых команд. Более развернутая информация об устройстве может содержать идентификатор класса, подробное описание и идентификатор устройства, с которым обеспечивается совместимость. В соответствии с принятой информацией для поддержки данного устройства операционная система может предпринять действия по установке требуемого программного обеспечения.

Устройства с поддержкой РпР распознаются ОС на этапе ее загрузки, если, конечно же, они подключены к порту интерфейсным кабелем и у них включено пита-ние. Если ОС Windows обнаруживает подключенное устройство РпР, отличающееся от того, что прописано в ее реестре для данного порта (или просто новое устройство), она пытается установить требуемые для устройства драйверы из дистрибутива ОС или из комплекта поставки нового устройства. Если Windows не желает замечать вновь подключенного устройства РпР, это может свидетельствовать о неисправности порта или кабеля. Система РпР не работает, если устройство подключается дешевым «не двунаправленным» кабелем, у которого отсутствует связь по линии Selectln# (контакт 17 порта LPT и контакт 36 разъема Centronics).

1.6. Применение LPT-порта

Обычно LPT-порт используют для подключения принтера (см. п. 8.3.1), однако этим его применение не исчерпывается.

Для связи двух компьютеров по параллельному интерфейсу применяются различные кабели в зависимости от режимов используемых портов. Самый простой и медленный — полубайтный режим, работающий на всех портах. Для этого режима в кабеле достаточно иметь 10 сигнальных и один общий провод. Распайка разъемов кабеля приведена в табл. 1.11. Связь двух PC данным кабелем поддерживается стандартным ПО типа Interlnk из MS-DOS или Norton Commander.

Высокоскоростная связь двух компьютеров может выполняться и в режиме ЕСР (режим ЕРР неудобен, поскольку требует синхронизации шинных циклов ввода-вывода двух компьютеров).

Подключение сканера к LPT-порту эффективно, только если порт обеспечивает хотя бы двунаправленный режим (Bi-Di), поскольку основной поток — ввод. Лучше использовать порт ЕСР, если этот режим поддерживается сканером (или ЕРР, что маловероятно).

Подключение внешних накопителей (Iomega Zip Drive, CD-ROM и др.), адаптеров ЛВС и других симметричных устройств ввода-вывода имеет свою специфику. В режиме SPP наряду с замедлением работы устройства заметна принципиальная асимметрия этого режима: чтение данных происходит в два раза медленнее, чем (весьма небыстрая) запись. Применение двунаправленного режима (Bi-Di или PS/2 Туре 1) устранит эту асимметрию — скорости сравняются. Только перейдя на ЕРР или ЕСР, можно получить нормальную скорость работы. В режиме ЕРР или ЕСР подключение к LPT-порту почти не уступает по скорости подключению через ISA-контроллер. Это справедливо и при подключении устройств со стандартным интерфейсом шин к LPT-портам через преобразователи интерфейсов (например, LPT - IDE, LPT - SCSI, LPT - PCMCIA). Заметим, что винчестер IDE, подключенный через адаптер к LPT-порту, для системы может быть представлен как устройство SCSI (это логичнее с программной точки зрения).

2. Последовательные интерфейсы

Последовательный интерфейс для передачи данных использует одну сигнальную линию, по которой информационные биты передаются друг за другом последовательно. Отсюда — название интерфейса и порта. Английские термины — Serial Interface и Serial Part (иногда их неправильно переводят как «серийные»). Последовательная передача позволяет сократить количество сигнальных линий и увеличить дальность связи. Характерной особенностью является применение не-ТТЛ сигналов. В ряде последовательных интерфейсов применяется гальваническая развязка внешних (обычно входных) сигналов от схемной земли устройства, что позволяет соединять устройства, находящиеся под разными потенциалами. Ниже будут рассмотрены интерфейсы RS-232C, RS-422А, RS-423A, RS-485, токовая петля, MIDI, а также СОМ-порт.

2.1. Способы последовательной передачи

Последовательная передача данных может осуществляться в асинхронном или синхронном режимах. При асинхронной передаче каждому байту предшествует старт-бит, сигнализирующий приемнику о начале посылки, за которым следуют биты данных и, возможно, бит паритета (четности,). Завершает посылку стоп-бит, гарантирующий паузу между посылками (рис. 2.1). Старт-бит следующего байта посылается в любой момент после стоп-бита, то есть между передачами возможны паузы произвольной длительности. Старт-бит, имеющий всегда строго определенное значение (логический 0), обеспечивает простой механизм синхронизации приемника по сигналу от передатчика. Подразумевается, что приемник и передатчик работают на одной скорости обмена. Внутренний генератор синхронизации приемника использует счетчик-делитель опорной частоты, обнуляемый в момент приема начала старт-бита. Этот счетчик генерирует внутренние стробы, по которым приемник фиксирует последующие принимаемые

биты. В идеале стробы располагаются в середине битовых интервалов, что позволяет принимать данные и при незначительном рассогласовании скоростей приемника и передатчика. Очевидно, что при передаче 8 бит данных, одного контрольного и одного стоп-бита предельно допустимое рассогласование скоростей, при котором данные будут распознаны верно, не может превышать 5%. С учетом фазовых искажений и дискретности работы внутреннего счетчика синхронизации реально допустимо меньшее отклонение частот. Чем меньше коэффициент деления опорной частоты внутреннего генератора (чем выше частота передачи), тем больше погрешность привязки стробов к середине битового интервала, и требования к согласованности частот становятся более строгими. Чем выше частота передачи, тем больше влияние искажений фронтов на фазу принимаемого сигнала. Взаимодействие этих факторов приводит к повышению требований к согласованности частот приемника и передатчика с ростом частоты обмена.

Формат асинхронной посылки позволяет выявлять возможные ошибки передачи:

» Если принят перепад, сигнализирующий о начале посылки, а по стробу старт-бита зафиксирован уровень логической единицы, старт-бит считается ложным и приемник снова переходит в состояние ожидания. Об этой ошибке приемник может и не сообщать.

« Если во время, отведенное под стоп-бит, обнаружен уровень логического нуля, фиксируется ошибка стоп-бита.

Если применяется контроль четности, то после посылки бит данных передается контрольный бит. Этот бит дополняет количество единичных бит данных до четного или нечетного в зависимости от принятого соглашения. Прием байта с неверным значением контрольного бита приводит к фиксации ошибки.

Контроль формата позволяет обнаруживать обрыв линии:

при этом принимаются логический нуль, который сначала трактуется как старт-бит, и нулевые биты данных, потом срабатывает контроль стоп-бита.

Для асинхронного режима принят ряд стандартных скоростей обмена: 50, 75, 110, 150,300,600,1200,2400,4800,9600, 19 200, 38 400, 57 600 и 115 200 бит/с. Иногда вместо единицы измерения «бит/с» используют «бод» (baud), но при рассмотрении двоичных передаваемых сигналов это некорректно. В бодах принято измерять частоту изменения состояния линии, а при недвоичном способе кодирования (широко применяемом в современных модемах) в канале связи скорости передачи бит (бит/с) и изменения сигнала (бод) могут отличаться в несколько раз (подробнее см. в приложении А).

Количество бит данных может составлять 5, 6, 7 или 8 (5- и 6-битные форматы распространены незначительно). Количество стоп-бит может быть 1, 1,5 или 2 («полтора бита» означает только длительность стопового интервала).

Асинхронный обмен в PC реализуется с помощью СОМ-порта с использованием протокола RS-232C.

Синхронный режим передачи предполагает постоянную активность канала связи. Посылка начинается с синхробайта, за которым сразу же следует поток информационных бит. Если у передатчика нет данных для передачи, он заполняет паузу непрерывной посылкой байтов синхронизации. Очевидно, что при передаче больших массивов данных накладные расходы на синхронизацию в данном режиме будут ниже, чем в асинхронном. Однако в синхронном режиме необходима внешняя синхронизация приемника с передатчиком, поскольку даже малое отклонение частот приведет к искажению принимаемых данных. Внешняя синхронизация возможна либо с помощью отдельной линии для передачи сигнала синхронизации, либо с использованием самосинхронизирующего кодирования данных, при котором на стороне приемника из принятого сигнала могут быть выделены импульсы синхронизации. В любом случае синхронный режим требует дорогих линий связи или оконечного оборудования. Для PC существуют специальные платы — адаптеры SDLC (дорогие), поддерживающие синхронный режим обмена. Они используются в основном для связи с большими машинами (mainframes) IBM и мало распространены. Из синхронных адаптеров в настоящее время применяются адаптеры интерфейса V.35.

На физическом уровне последовательный интерфейс имеет различные реализации, различающиеся способом передачи электрических сигналов. Существует ряд родственных международных стандартов: RS-232C, RS-423A, RS-422A и RS-485. На рис. 2.2 приведены схемы соединения приемников и передатчиков, а также показаны ограничения на длину линии (L) и максимальную скорость передачи данных (V).

Несимметричные линии интерфейсов RS-232C и RS-423A имеют самую низкую защищенность от синфазной помехи, хотя дифференциальный вход приемника RS-423A несколько смягчает ситуацию. Лучшие параметры имеет двухточечный интерфейс RS-422A и его магистральный (шинный) аналог RS-485, работающие на симметричных линиях связи. В них для передачи каждого сигнала используются дифференциальные сигналы с отдельной (витой) парой проводов.

В перечисленных стандартах сигнал представляется потенциалом. Существуют последовательные интерфейсы, где информативен ток, протекающий по общей цепи передатчик-приемник — «токовая петля» и MIDI. Для связи на короткие расстояния приняты стандарты беспроводной инфракрасной связи. Наибольшее распространение в PC получил простейший из перечисленных — стандарт RS-232C, реализуемый СОМ-портами. В промышленной автоматике широко применяется RS-485, а также RS-422A, встречающийся и в некоторых принтерах. Существуют преобразователи сигналов для согласования этих родственных интерфейсов.

2.2. Интерфейс RS-232C

Интерфейс предназначен для подключения аппаратуры, передающей или принимающей данные (ООД — оконечное оборудование данных или АПД — аппаратура передачи данных; DTEData Terminal Equipment), к оконечной аппаратуре каналов данных (АКД; DCEData Communication Equipment). В роли АПД может выступать компьютер, принтер, плоттер и другое периферийное оборудование. В роли АКД обычно выступает модем. Конечной целью подключения является соединение двух устройств АПД. Полная схема соединения приведена на рис. 2.3. Интерфейс позволяет исключить канал удаленной связи вместе с парой устройств АПД, соединив устройства непосредственно с помощью нуль-модемного кабеля (рис. 2.4).

Стандарт описывает управляющие сигналы интерфейса, пересылку данных, электрический интерфейс и типы разъемов. В стандарте предусмотрены асинхронный и синхронный режимы обмена, но СОМ-порты поддерживают только асинхронный режим. Функционально RS-232C эквивалентен стандарту МККТТ V.24/ V.28 и стыку С2, но они имеют различные названия сигналов.

2.2.1. Электрический интерфейс

Стандарт RS-232C использует несимметричные передатчики и приемники — сигнал передается относительно общего провода — схемной земли (симметричные дифференциальные сигналы используются в других интерфейсах — например, RS-422). Интерфейс НЕ ОБЕСПЕЧИВАЕТ ГАЛЬВАНИЧЕСКОЙ РАЗВЯЗКИ устройств. Логической единице соответствует напряжение на входе приемника в диапазоне -12...-3 В. Для линий управляющих сигналов это состояние называется ON («включено»), для линий последовательных данных — MARK. Логическому нулю соответствует диапазон +3...+12 В. Для линий управляющих сигналов состояние называется OFF («выключено»), а для линий последовательных данных — SPACE. Диапазон -3...+3 В — зона нечувствительности, обусловливающая гистерезис приемника: состояние линии будет считаться измененным только после пересечения порога (рис. 2.5). Уровни сигналов на выходах передатчиков должны быть в диапазонах -12...-5 В и +5...+12 В для представления единицы и нуля соответственно. Разность потенциалов между схемными землями (SG) соединяемых устройств должна быть менее 2 В, при более высокой разности потенциалов возможно неверное восприятие сигналов. Интерфейс предполагает наличие ЗАЩИТНОГО ЗАЗЕМЛЕНИЯ для соединяемых устройств, если они оба питаются от сети переменного тока и имеют сетевые фильтры.

Подключение и отключение интерфейсных кабелей устройств с автономным питанием должно производиться при отключенном питании. Иначе разность невыровненных потенциалов устройств в момент коммутации может оказаться приложенной к выходным или входным (что опаснее) цепям интерфейса и вывести из строя микросхемы.

Для интерфейса RS-232C специально выпускаются буферные микросхемы приемников (с гистерезисом и передатчиком двуполярного сигнала). При несоблюдении правил заземления и коммутации они обычно являются первыми жертвами «пиротехнических» эффектов. Иногда их устанавливают в «кроватках», что облегчает замену. Цоколевка микросхем формирователей сигналов RS-232C приведена на рис. 2.6. Часто буферные схемы входят прямо в состав интерфейсных БИС. Это удешевляет изделие, экономит место на плате, но в случае аварии оборачивается крупными финансовыми потерями. Вывести из строя интерфейсные микросхемы замыканием сигнальных цепей маловероятно: ток короткого замыкания передатчиков обычно не превосходит 20 мА.

Стандарт RS-232C регламентирует типы применяемых разъемов.

На аппаратуре АПД (в том числе на СОМ-портах) принято устанавливать вилки (male — «папа») DB-25P или более компактный вариант — DB-9P. Девятиштырьковые разъемы не имеют контактов для дополнительных сигналов, необходимых для синхронного режима (в большинстве 25-штырько-вых разъемов эти контакты не используются).

На аппаратуре АКД (модемах) устанавливают розетки (female — «мама») DB-25Swm DB-9S.

Это правило предполагает, что разъемы АКД могут подключаться к разъемам АПД непосредственно или через переходные «прямые» кабели с розеткой и вилкой, у которых контакты соединены «один в один». Переходные кабели могут являться и переходниками с 9- на 25-штырьковые разъемы (рис. 2.7).

Если аппаратура АПД соединяется без модемов, то разъемы устройств (вилки) соединяются между собой нуль-модемным кабелем (Zero-modem или Z-modem), имеющим на обоих концах розетки, контакты которых соединяются перекрестно по одной из схем, приведенных на рис. 2.8.

Если на каком-либо устройстве АПД установлена розетка — это почти стопроцентный признак того, что к другому устройству оно должно подключаться прямым кабелем, аналогичным кабелю подключения модема. Розетка устанавливается обычно на тех устройствах, у которых удаленное подключение через модем не предусмотрено.

В табл. 2.1 приведено назначение контактов разъемов СОМ-портов (и любой другой аппаратуры АПД). Контакты разъема DB-25S определены стандартом EIA/TIA-232-E, разъем DB-9S описан стандартом EIA/ TIA-574. У модемов название цепей и контактов такое же, но роли сигналов (вход-выход) меняются на противоположные.

Подмножество сигналов RS-232C, относящихся к асинхронному режиму, рассмотрим с точки зрения СОМ-порта PC. Следует помнить, что активному состоянию сигнала («включено») и логической единице передаваемых данных соответствует отрицательный потенциал (ниже -3 В) сигнала интерфейса, а состоянию «выключено» и логическому нулю — положительный (выше +3 В). Назначение сигналов интерфейса приведено в табл. 2.2.

1*— шлейф 8-битных мультикарт.

2*— шлейф 16-битных мультикарт и портов на системных платах. 3*— вариант шлейфа портов на системных платах. 4*— широкий шлейф к 25-контактному разъему.

 

2.2.2. Управление потоком данных

Для управления потоком данных (Flow Control) могут использоваться два варианта протокола — аппаратный и программный. Иногда управление потоком путают с квитированием, но это разные методы достижения одной цели — согласования темпа передачи и приема. Квитирование (Handshaking) подразумевает посылку уведомления о получении элемента, в то время как управление потокам предполагает посылку уведомления о невозможности последующего приема данных.

Аппаратный протокол управления потоком RTS/CTS (Hardware Flow Control) использует сигнал CTS, который позволяет остановить передачу данных, если приемник не готов к их приему (рис. 2.9). Передатчик «выпускает» очередной байт только при включенной линии CTS. Байт, который уже начал передаваться, задержать сигналом CTS невозможно (это гарантирует целостность посылки). Аппаратный протокол обеспечивает самую быструю реакцию передатчика на состояние приемника. Микросхемы асинхронных приемопередатчиков имеют не менее двух регистров в приемной части —

сдвигающий, для приема очередной посылки, и хранящий, из которого считывается принятый байт. Это позволяет реализовать обмен по аппаратному протоколу без потери данных.

Аппаратный протокол удобно использовать при подключении принтеров и плоттеров, если они его поддерживают (рис. 2.10). При непосредственном (без модемов) соединении двух компьютеров аппаратный протокол требует перекрестного соединения линий RTSCTS.

Если аппаратный протокол не используется, у передающего терминала должно быть обеспечено состояние «включено» на линии CTS перемычкой RTS — CTS. В противном случае передатчик будет «молчать».

Программный протокол управления потоком XON/XOFF предполагает наличие двунаправленного канала передачи данных. Работает протокол следующим образом: если устройство, принимающее данные, обнаруживает причины, по которым не может их дальше принимать, оно по обратному последовательному каналу посылает байт-символ XOFF (13h). Противоположное устройство, приняв этот символ, приостанавливает передачу. Когда принимающее устройство снова становится готовым к приему данных, оно посылает символ

 XON (llh), приняв который противоположное устройство возобновляет передачу. Время реакции передатчика на изменение состояния приемника по сравнению с аппаратным протоколом увеличивается по крайней мере на время передачи символа (XON или XOFF) плюс время реакции программы передатчика на прием символа (рис. 2.11). Из этого следует, что данные без потерь могут приниматься только приемником, имеющим дополнительный буфер принимаемых данных и сигнализирующим о неготовности заблаговременно (имея в буфере свободное место).

Преимущество программного протокола заключается в отсутствии необходимости передачи управляющих сигналов интерфейса — минимальный кабель для двустороннего обмена может иметь только 3 провода (см. рис. 2.8а). Недостатком, кроме требования наличия буфера и большего времени реакции (снижающего общую производительность канала из-за ожидания сигнала XON), является сложность реализации полнодуплексного режима обмена. В этом случае из потока принимаемых данных должны выделяться (и обрабатываться) символы управления потоком, что ограничивает набор передаваемых символов. Минимальный вариант кабеля для подключения принтера (плоттера) с протоколом XON/XOFF приведен на рис. 2.12.

Кроме этих двух распространенных стандартных протоколов, поддерживаемых и ПУ, и ОС, существуют и другие. Некоторые плоттеры с последовательным интерфейсом используют программное управление, но посылают не стандартные символы XON/XOFF, а слова (ASCII-строки). Такой обмен на уровне системной поддержки протокола практически не поддерживается (эти плоттеры непосредственно«разговаривают» с прикладной программой). Конечно, можно написать драйвер СОМ-порта (перехватчик INT 14h), но необходимость обработки в нем текстовых сообщений от устройства вывода обычно не вызывает восторга у системного программиста. Кабель для подключения совпадает с приведенным на рис. 2.12.

2.3. Интерфейс «токовая петля»

Распространенным вариантом последовательного интерфейса является токовая петля. В ней электрическим сигналом является не уровень напряжения относительно общего провода, а ток в двухпроводной линии, соединяющей приемник и передатчик. Логической единице (состоянию «включено») соответствует протекание тока 20 мА, а логическому нулю — отсутствие тока. Такое представление сигналов для описанного формата асинхронной посылки позволяет обнаружить обрыв линии — приемник заметит отсутствие стоп-бита (обрыв линии действует как постоянный логический нуль).

Токовая петля обычно предполагает гальваническую развязку входных цепей приемника от схемы устройства. При этом источником тока в петле является передатчик (этот вариант называют активным передатчиком). Возможно и питание от приемника (активный приемник), при этом выходной ключ передатчика может быть также гальванически развязан с остальной схемой передатчика. Существуют упрощенные варианты без гальванической развязки, но это уже вырожденный случай интерфейса. Токовая петля с гальванической развязкой позволяет передавать сигналы на расстояния до нескольких километров. Расстояние определяется сопротивлением пары проводов и уровнем помех. Поскольку интерфейс требует пары проводов для каждого сигнала, обычно используют только два сигнала интерфейса. В случае двунаправленного обмена применяются только сигналы передаваемых и принимаемых данных, а для управления потоком используется программный метод XON/XOFF. Если двунаправленный обмен не требуется, используют одну линию данных, а для управления потоком обратная линия задействуется для сигнала CTS (аппаратный протокол) или встречной линии данных (программный протокол).

Преобразовать сигналы RS-232C в токовую петлю можно с помощью несложной схемы (рис. 2.13). Здесь принтер подключается по токовой петле к СОМ-порту с аппаратным управлением потоком. Для получения двуполярного сигнала, требуемого для входных сигналов СОМ-порта, применяется питание от интерфейса.

При надлежащем ПО одной токовой петлей можно обеспечить двунаправленную полудуплексную связь двух устройств. При этом каждый приемник «слышит» как сигналы передатчика на противоположной стороне канала, так и сигналы своего передатчика. Они расцениваются коммуникационными пакетами просто как эхо-сигнал. Для безошибочного приема передатчики должны работать поочередно.

2.4. Интерфейс MIDI

Цифровой интерфейс музыкальных инструментов MIDI (Musical Instrument Digital Interface) является двунаправленным последовательным асинхронным интерфейсом с частотой передачи 31,25 Кбит/с. Этот интерфейс, разработанный в 1983 году, стал фактическим стандартом для сопряжения компьютеров, синтезаторов, записывающих и воспроизводящих устройств, микшеров, устройств специальных эффектов и другой электромузыкальной техники.

В интерфейсе применяется таковая петля 10 мА (возможно 5 мА) с гальванической развязкой входной цепи. Это исключает связь «схемных земель» соединяемых устройств через интерфейсный кабель, устраняя помехи, крайне нежелательные для звуковой техники. Снижению интерференционных помех служит и выбор частоты передачи, которая совпадает с одним из значений частот квантования, принятых в цифровой звукозаписи.

Асинхронная посылка содержит старт-бит, 8 бит информации и 1 стоп-бит, контроль четности отсутствует. Старший бит посылки является признаком «команда/данные». Его нулевое значение указывает на наличие семи бит данных в младших разрядах. При единичном значении биты [6:4] содержат код команды, а биты [3:0] — номер канала. Команды могут быть как адресованными конкретному каналу, так и широковещательными безадресными. К последней группе относятся команды старта, стопа и отметки времени, обеспечивающие синхронизацию устройств (система синхронизации MIDI Sync и МТС - MIDI Time Code).

Интерфейс определяет три типа портов: MIDI-In, MIDI-Out nMIDI-Thru.

Входной порт MIDI-In представляет собой вход интерфейса «токовая петля 10 мА», гальванически развязанного от приемника оптроном с быстродействием не хуже 2 мкс. Устройство отслеживает информационный поток на этом входе и реагирует на адресованные ему команды и данные.

Выходной порт MIDI-Out представляет собой выход источника тока 10 мА, гальванически связанного со схемой уст- ройства. Ограничительные резисторы предохраняют выходные цепи от повреждения при замыкании на землю или источник 5 В. На выход подается информационный поток от данного устройства. В потоке может содержаться и транслированный входной поток.

Транзитный порт MIDI-Thru (не обязателен) служит для ретрансляции входного сигнала.

В качестве разъемов применяются 5-контактные разъемы DIN, распространенные в бытовой звуковой аппаратуре. На всех устройствах устанавливаются розетки, на кабелях — вилки. Все соединительные кабели MIDI унифицированы (рис. 2.14). Контакт 2 — экран кабеля — соединяется с общим проводом только на стороне передатчика (на разъемах MIDI-Out и MIDI-Thru).

В маркировке входов и выходов, указанной около разъемов, бывают разночтения. Одни производители пишут «In» или «Out» в соответствии с функцией разъема данного устройства (и это) правильно), тогда любой кабель соединяет «In» и «Out». Другие считают, что подпись должна обозначать функцию подключаемого устройства. Тогда кабель будет соединять разъемы с обозначениями «In» — «In» и «Out» — «Out».

Интерфейс позволяет объединить группу до 16 устройств в локальную сеть. Топология должна подчиняться правилу:

вход MIDI-In одного устройства должен подключаться к выходу MIDI-Out или MIDI-Thru другого. При планировании MIDI-сети необходимо руководствоваться информационными потоками и связью устройств. Управляющие устройства — клавиатуры, секвенсоры (в режиме воспроиз- ведения), источники синхронизации — должны находиться перед управляемыми. Если устройства нуждаются в двунаправленном обмене, они соединяются в кольцо. Возможно применение специальных мультиплексоров, позволяющих логически коммутировать несколько входных потоков в один выходной. Вырожденным случаем кольца является двунаправленное соединение двух устройств. Несколько вариантов соединения приведено на рис. 2.15.

В PC MIDI-порт имеется на большинстве звуковых адаптеров, его сигналы выведены на неиспользуемые контакты (12 и 15) разъема игрового адаптера. Для подключения устройств MIDI требуется переходной адаптер, реализующий интерфейс «токовая петля». Переходной адаптер обычно встраивается в специальный кабель, схема которого приведена на рис. 2.16. Некоторые модели PC имеют встроенные адаптеры и стандартные 5-штырьковые разъемы MIDI.

В PC для интерфейса MIDI применяются порты, совместимые с контроллером MPU-401 (Roland) в режиме UART. В пространстве ввода/вывода MPU-401 занимает два смежных адреса MPU (обычно 330h) и MPU+1:

Порт DATA (адрес MPU+0) — запись и считывание байт, передаваемых и принимаемых по интерфейсу MIDI. Порт STATUS/COMMAND (адрес MPU+1) - чтение состояния / запись команд (запись — только для интеллектуального режима). В байте состояния определены следующие биты:

Бит 7 - DSR (Data Set Ready) - готовность (DSR-0) принятых данных для чтения. Бит устанавливается в «I», когда все принятые байты считаны из регистра данных.

Бит 6 - DRR (Data Read Ready) - готовность (DRR=0) UART к записи в регистр данных или команд. Условие готовности к записи не возникнет, если приемник имеет непрочитанный байт данных.

На некоторых системных платах применяются БИС контроллеров интерфейсов, в которых UART, используемая для СОМ-порта, конфигурированием через BIOS SETUP может быть переведена в режим MIDI-порта.

2.5. СОМ-порт

Последовательный интерфейс СОМ-порт (Communication Port — коммуникационный порт) появился в первых моделях IBM PC. Он был реализован на микросхеме асинхронного приемопередатчика Intel 8250. Порт имел поддержку BIOS (/Л/Т 74/?), однако широко применялось (и применяется) взаимодействие с портом на уровне регистров. Поэтому во всех PC-совместимых компьютерах для последовательного интерфейса применяют микросхемы приемопередатчиков, совместимые с i8250. В ряде отечественных PC-совместимых (почти) компьютеров для последовательного интерфейса применялась микросхема КР580ВВ51 — аналог i8251. Однако эта микросхема является универсальным синхронно-асинхронным приемопередатчиком (УСАПП или USARTUniversal Asynchronous Receiver-Transmitter). Совместимости с PC на уровне регистров СОМ-порта такие компьютеры не имеют. Хорошо, если у соответствующих компьютеров имеется «честный» драйвер B/OS INT 14h, а не заглушка, возвращающая состояние модема «всегда готов» и ничего не делающая. Совместимость на уровне регистров СОМ-порта считается необходимой. Многие разработчики коммуникационных пакетов предлагают работу и через B/OS INT 14h, однако на высоких скоростях это неэффективно. Говоря о СОМ-порте PC, по умолчанию будем подразумевать совместимость регистровой модели с i8250 и реализацию асинхронного интерфейса RS-232C.

2.5.1. Использование СОМ-портов

СОМ-порты чаще всего применяют для подключения манипуляторов (мышь, трекбол). В этом случае порт используется в режиме последовательного ввода; питание производится от интерфейса. Мышь с последовательным интерфейсом — Serial Mouse —может подключаться к любому исправному порту. Для согласования разъемов порта и мыши возможно применение переходника DB-9S-DB-25P или DB-25S-DB-9P. Для мыши требуется прерывание, для порта СОМ 1 — IRQ4, для COM2 — IRQ3. Жесткая привязка номера IRQ к номеру порта обусловлена свойствами драйверов. Каждое событие — перемещение мыши или нажатие-отпускание кнопки — кодируется двоичной посылкой по интерфейсу RS-232C. Применяется асинхронная передача; двуполярное питание обеспечивается от управляющих линий интерфейса (табл. 2.3).

 Две разновидности Serial Mouse — MS-Mouse и PC-Mouse (Mouse Systems Mouse) — требуют соответствующих драйверов, многие мыши имеют переключатель MS/PC. Мышь с «чужим» драйвером либо не отзывается, либо «скачет» загадочным образом. Эти разновидности используют различные форматы посылок: при одинаковой скорости 1200 бит/с, одном стоп-бите и отсутствии контроля четности Microsoft Mouse использует 7 бит данных, a PC-Mouse — 8 бит. Мышь посылает пакет при каждом изменении состояния — перемещении, нажатии или отпускании кнопки. Пакет, передаваемый MS-Mouse, состоит из трех байт (табл. 2.4). PC-Mouse передает 5 байт (табл. 2.5). Здесь LB (Left Buttom), MB (Middle Buttom) и RB (Right Buttom) означают состояние левой, средней и правой кнопок, Х[7:0] и Y[7:0] — биты относительного перемещения мыши с момента предыдущей посылки по координатам Х и Y. Положительным значениям соответствует перемещение по координате Х вправо, а по координате Y вниз для MS-Mouse и вверх для PC-Mouse. Отсюда становятся понятными беспорядочные перемещения курсора на экране при несоответствии драйвера типу мыши.

Для подключения внешних модемов используется полный (9-проводный) кабель АПД-АКД, схема которого приведена на рис. 2.7. Этот же кабель используется для согласования разъемов (по количеству контактов); возможно применение переходников 9-25, предназначенных для мышей. Для работы коммуникационного ПО обычно требуется использование прерываний, но здесь есть свобода выбора номера (адреса) порта и линии прерывания. Если предполагается работа на скоростях 9600 бит/с и выше, то СОМ-порт должен быть реализован на микросхеме UART 16550A или совместимой. Возможности работы с использованием FIFO-буферов и обмена по каналам DMA зависят от коммуникационного ПО.

Для связи двух компьютеров, удаленных друг от друга на небольшое расстояние, используют и непосредственное соединение их СОМ-портов нуль-модемным кабелем (рис. 2.8). Использование программ типа Norton Commander или Interink MS-DOS позволяет обмениваться файлами со скоростью до 115,2 Кбит/с без применения аппаратных прерываний. Это же соединение может использоваться и сетевым пакетом Lantastic, предоставляющим более развитый сервис.

Подключение принтеров и плоттеров к СОМ-порту требует применения кабеля, соответствующего выбранному протоколу управления потоком: программному XON/XOFF или аппаратному RTS/CTS. Схемы кабелей приведены на рис. 2.10 и 2.12. Аппаратный протокол предпочтительнее. Прерывания при выводе средствами DOS (командами COPY или PRINT) не используются.

СОМ-порт используется для подключения электронных ключей (Security Devices), предназначенных для защиты от нелицензированного использования ПО. Эти устройства могут быть как «прозрачными», позволяя воспользоваться тем же портом для подключения периферии, так и полностью занимающими порт.

СОМ-порт при наличии соответствующей программной поддержки позволяет превратить PC в терминал, эмулируя систему команд распространенных специализированных терминалов (VT-52, VT-100 и т. д.). Простейший терминал получается, если замкнуть друг на друга функции BIOS обслуживания СОМ-порта (INT 14h), телетайпного вывода (/Л/Т 10h) и клавиатурного ввода (INT 16h). Однако такой терминал будет работать лишь на малых скоростях обмена (если, конечно, его делать не на Pentium), поскольку функции BIOS хоть и универсальны, но не слишком быстры.

Интерфейс RS-232C широко распространен в различных ПУ и терминалах. СОМ-порт может использоваться и как двунаправленный интерфейс, у которого имеется 3 программно-управляемые выходные линии и 4 программно-читаемые входные линии с двуполярными сигналами. Их использование определяется разработчиком. Существует, например, схема однобитного широтно-импульсного преобразователя, позволяющего записывать звуковой сигнал на диск PC, используя входную линию СОМ-порта. Воспроизведение этой записи через обычный динамик PC позволяет передать речь. В настоящее время, когда звуковая карта стала почти обязательным устройством PC, это не впечатляет, но когда-то такое решение было интересным.

СОМ-порт используют для беспроводных коммуникаций с применением излучателей и приемников инфракрасного диапазона — IR (Infra Red) Connection. Этот интерфейс позволяет осуществлять связь между парой устройств, удаленных на расстояние, достигающее нескольких метров. Различают инфракрасные системы низкой (до 115,2 Кбит/с), средней (1,152 Мбит/с) и высокой (4 Мбит/с) скорости. Низкоскоростные системы служат для обмена короткими сообщениями, высокоскоростные — для обмена файлами между компьютерами, подключения к компьютерной сети, вывода на принтер, проекционный аппарат и т. п. Ожидаются более высокие скорости обмена, которые позволят передавать «живое видео». В 1993 году создана ассоциация разработчиков систем инфракрасной передачи данных IrDA (Infrared Data Association), призванная обеспечить совместимость оборудования от различных производителей. В настоящее время действует стандарт IrDA 1.1. Имеются собственные системы фирм Hewlett PackardHP-SIR (Hewlett Packard Slow Infra Red) - и Sharp - ASK (Amplitude Shifted Keyed IR). Основные характеристики интерфейсов следующие:

a IrDA SIR (Slow Infra Red), HP-SIR - 9,6-115,2 Кбит/с;

is IrDA MIR (Middle Infra Red) - 1,2 Мбит/с; » IrDA FIR (Fast Infra Red) - 4 Мбит/с;

ж Sharp ASK - 9,6-57,6 Кбит/с.

На скоростях до 115 200 бит/с для инфракрасной связи используются UART, совместимые с 16450/16550. В современных системных платах на использование инфракрасной связи может конфигурироваться порт COM2. В этом случае на переднюю панель компьютера устанавливается внешний приемопередатчик — «инфракрасный глаз», который подключается к разъему IR-Connector системной платы.

На средних и высоких скоростях обмена применяются специализированные микросхемы, ориентированные на интенсивный программно-управляемый обмен или DMA с возможностью прямого управления шиной.

Инфракрасные излучатели не создают помех в радиочастотном диапазоне и обеспечивают конфиденциальность передачи. ИК-лучи не проходят через стены, поэтому зона приема ограничивается небольшим легко контролируемым пространством. Инфракрасная технология привлекательна для связи портативных компьютеров со стационарными компьютерами или док-станциями. Инфракрасный интерфейс имеют некоторые модели принтеров.

2.5.2. Микросхемы асинхронных приемопередатчиков

Преобразование параллельного кода в последовательный для передачи и обратное преобразование при приеме данных выполняют специализированные микросхемы UART (Universal Asynchronous Receiver-Transmitter — универсальный асинхронный приемопередатчик). Эти же микросхемы формируют и обрабатывают управляющие сигналы интерфейса. СОМ-пор-ты IBM PC XT/AT базируются на микросхемах, совместимых на уровне регистров с UART i8250 - 8250/16450/16550А Это семейство представляет собой усовершенствование начальной модели, направленное на повышение быстродействия, снижение потребляемой мощности и загрузки процессора при интенсивном обмене. Отметим следующее:

« 8250 имеет ошибки (появление ложных прерываний), учтенные в XT BIOS. » 8250А — ошибки исправлены, в результате чего потеряна совместимость с BIOS. Работает в некоторых моделях AT, но непригоден для скорости 9600 бит/с.

ж 8250В — исправлены ошибки 8250 и 8250А, восстановлена ошибка в прерываниях — возвращена совместимость с XT BIOS. Работает в AT под DOS (кроме скорости 9600 бит/с).

Микросхемы 8250х имеют невысокое быстродействие по обращениям со стороны системной шины. Они не допускают обращения к своим регистрам в смежных шинных циклах процессора — для корректной работы с ними требуется введение программных задержек между обращениями CPU.

В компьютерах класса AT применяют микросхемы UART следующих модификаций:

а 16450 — быстродействующая версия 8250 для AT. Ошибок 8250 и полной совместимости с XT BIOS не имеет. Требуется для работы OS/2 с СОМ-портами.

ж 16550 — развитие 16450. Может использовать канал DMA для обмена данными. Имеет FIFO-буфер, но некорректность его работы не позволяет им воспользоваться.

я 16550А — имеет работающие 16-байтные FIFO-буферы приема и передачи и возможность использования DMA. Именно этот тип UART должен применяться в AT при интенсивных обменах на скоростях 9600 бит/с и выше. Совместимость с этой микросхемой обеспечивает большинство микросхем контроллеров портов ввода/вывода, входящих в современные чипсеты.

Микросхемы UART 16550А с программной точки зрения представляют собой набор регистров, доступ к которым определяется адресом (смещением адреса регистра относительно базового адреса порта) и значением бита DLAB (бита 7 регистра LCR). В адресном пространстве микросхема занимает 8 смежных адресов. Список регистров UART 16550А и способы доступа к ним приведены в табл. 2.6. Микросхемы 8250 отличаются отсутствием регистра FCR и всех возможностей FIFO и DMA.

* Некоторые биты допускают только чтение. Запись в регистр может привести к сбою протокола.

THR промежуточный регистр данных передатчика (только для записи). Данные, записанные в регистр, будут пересланы в выходной сдвигающий регистр (когда он будет свободен), из которого поступят на выход при наличии разрешающего сигнала CTS. Бит 0 передается (и принимается) первым. При длине посылки менее 8 бит старшие биты игнорируются.

RBR буферный регистр принимаемых данных (только для чтения). Данные, принятые входным сдвигающим регистром, помещаются в регистр RBR, откуда они могут быть считаны процессором. Если к моменту окончания приема очередного символа предыдущий не был считан из регистра, фиксируется ошибка переполнения. При длине посылки менее 8 бит старшие биты в регистре имеют нулевое значение.

DLL регистр младшего байта делителя частоты.

DLM регистр старшего байта делителя частоты. Делитель

определяется по формуле D=115200/V, где V — скорость пе- редачи, бит/с. Входная частота синхронизации 1,8432 МГц делится на заданный коэффициент, после чего получается 16-кратная частота передачи данных.

IER регистр разрешения прерываний. Единичное значение бита разрешает прерывание от соответствующего источника.

Назначение бит регистра IER.

^ Биты 7-4=0 — не используются.

« Бит 3 — Mod IE по изменению состояния модема (любой из линий CTS, DSR, Rl, DCD).

» Бит 2 — RxL IE по обрыву/ошибке линии. * Бит 1 — TxD IE по завершении передачи.

« Бит 0 — RxD IE по приему символа (в режиме FIFO — прерывание по тайм-ауту).

//Я — регистр идентификации (только для чтения) прерываний и признака режима FIFO. Для упрощения программного анализа UART выстраивает внутренние запросы прерывания по четырехуровневой системе приоритетов. Порядок приоритетов (по убыванию): состояние линии, прием символа, освобождение регистра передатчика, состояние модема. При возникновении условий прерывания UART указывает на источник с высшим приоритетом до тех пор, пока он не будет сброшен соответствующей операцией. Только после этого будет выставлен запрос с указанием следующего источника.

Назначение бит регистра IIP:

» Биты [7:6] — признак режима FIFO:

11 - режим FIFO 16550A,

10 - режим FIFO 16550,

00 —обычный.

» Биты [5:4] — не используются. « Бит 3 — прерывание по тайм-ауту (не в режиме FIFO).

» Биты [2:1] — причина прерывания с наивысшим приоритетом (в обычном, не FIFO-режиме):

11 — ошибка/обрыв линии; сброс — чтением регистра состояния линии,


10 — принят символ; сброс — чтением данных, 01 — передан символ (регистр THR пуст); сброс — записью данных,

00 — изменение состояния модема; сброс — чтением регистра состояния модема.

s Бит 0 — признак необслуженного запроса прерывания:

1 — нет запроса, О — есть запрос.

Идентификация прерываний в режиме FIFO, IIR [3:1]:

и Oil — ошибка/обрыв линии; сброс — чтением регистра состояния линии.

« 010 — принят символ; сброс — чтением регистра данных приемника.

я 110 — индикатор тайм-аута (за 4-кратный интервал времени символа не передано и не принято ни одного символа, хотя в буфере имеется по крайней мере один). Сброс — чтением регистра данных приемника.

« 001 — регистр THR пуст; сброс — записью данных.

» 000 — изменение состояния модема (CTS, DSR, RI или DCD), сброс — чтением регистра MSR.

FCR регистр управления FIFO (только для записи). Назначение бит регистра FCR:

s Биты [7:6] — ITL (Interrupt Trigger Level) — уровень заполнения FIFO-буфера, при котором вырабатывается прерывание:

00—1 байт (по умолчанию), 01 —4 байта,

10 -8байт,

11 — Мбайт.

« Биты [5:4] зарезервированы. х Бит 3 — разрешение операций DMA.

» Бит 2 — RESETTFfReset Transmitter FIFO) — сброс счетчика FIFO-передатчика (записью единицы; сдвигающий регистр не сбрасывается). » Бит 1 — RESETRFf Reset Receiver FIFO) — сброс счетчика FIFO-приемника (записью единицы; сдвигающий регистр не сбрасывается).

as Бит О TRFIFOE(Transmit And Receive FIFO Enable) —разрешение (единицей) режима FIFO для передатчика и приемника. При смене режима FIFO-буферы автоматически очищаются.

LCR регистр управления линией (настройки параметров канала).

Назначения бит регистра LCR:

«• Бит 7 — DMB (Divisor Latch Access Bit) — управление доступом к делителю частоты.

« Бит 6 — BRCON( Break Control) — формирование обрыва линии (посылка нулей) при BRCON^i.

ж Бит 5 — STICPARfSticky Parity) — принудительное формирование бита паритета:

О — контрольный бит генерируется в соответствии с паритетом выводимого символа,

1 — постоянное значение контрольного бита: при EVENPAR=i нулевое, при EVENPAR=0 — единичное.

» Бит 4 — EVENPARf Even Parity Select) — выбор типа контроля: 0 — нечетность, 1 — четность.

и Бит 3 — PAREN (Parity Enable) — разрешение контрольного бита:

1 — контрольный бит (паритет или постоянный) разрешен,

О — запрещен. » Бит 2 — STOPS (Stop Bits) — количество стоп-бит:

0—1 стоп-бит,

1—2 стоп-бита (для 5-битного кода стоп-бит будет иметь длину 1,5 бита).

я Биты [1:0] — SERIALDB (Serial Data Bits) — количество бит данных:

00 -5 бит, 01 -6 бит, 10-7 бит, 11 -8 бит. MCR регистр управления модемом. Назначение бит регистра MCR:

ж Биты [7:5]=0 — зарезервированы.

» Бит 4 — LME(Loopback Mode Enable) — разрешение режима диагностики:

О — нормальный режим, 1 — режим диагностики (см. ниже).

ж Бит 3 — IE(Interrupt Enable) — разрешение прерываний с помощью внешнего выхода OUT2; в режиме диагностики поступает на вход MSR. 7:

О — прерывания запрещены, 1 —разрешены.

я Бит 2 — OUT1 С (OUT1 Bit Control) —управление выходным сигналом 1 (не используется); в режиме диагностики поступает на вход MSR. 6.

» Бит 1 — RTSC (Request To Send Control) — управление выходом RTS; в режиме диагностики поступает на вход MSR.4:

1 — активен (-V), О — пассивен (+V).

я Бит 0 — DTRC(Data Terminal Ready Control) —управление выходом DTR; в режиме диагностики поступает на вход MSR.5:

1 — активен (-V), О — пассивен (+V).

LSR регистр состояния линии (точнее, состояния приемопередатчика).

Назначение бит регистра LSR:

s Бит 7 — FIFOEfFIFO Error Status) — ошибка принятых данных в режиме FIFO (буфер содержит хотя бы один символ, принятый с ошибкой формата, паритета или обрывом). В ne-FIFO-режиме всегда 0.

» Бит 6 — TEMPT (Transmitter Empty Status) — регистр передатчика пуст (нет данных для передачи ни в сдвиговом регистре, ни в буферных, THR или FIFO). « Бит 5 THRE (Transmitter Holding Register Empty) —регистр передатчика готов принять байт для передачи. В режиме FIFO указывает на отсутствие символов в FIFO-буфере передачи. Может являться источником прерывания.

« Бит 4 — 5D (Break Detected) — индикатор обрыва линии (вход приемника находится в состоянии 0 не менее, чем время посылки символа).

w. Бит 3 — FE(Framing Error) — ошибка кадра (неверный стоп-бит).

* Бит 2 — РЕ (Parity Error) — ошибка контрольного бита (паритета или фиксированного).

» Бит 1 — ОЕ(Overrun Error) — переполнение (потеря символа). Если прием очередного символа начинается до того, как предыдущий был выгружен из сдвигающего регистра в буферный или FIFO, прежний символ в сдвигающем регистре теряется.

» Бит 0 — DR(Receiver Data Ready) — принятые данные готовы (в DHR или FIFO-буфере). Сброс — чтением приемника.

Индикаторы ошибок — биты [4:1] — сбрасываются после чтения регистра LSR. В режиме FIFO признаки ошибок хранятся в FIFO-буфере вместе с каждым символом. В регистре они устанавливаются (и вызывают прерывание) в тот момент, когда символ, принятый с ошибкой, находится на вершине FIFO (первый в очереди на считывание). В случае обрыва линии в FIFO заносится только один «обрывной» символ, и UART ждет восстановления и последующего старт-бита.

MSR регистр состояния модема. Назначение бит регистра MSR:

ж Бит 7 — DCD(Data Carrier Detect) — состояние линии DCD. » Бит 6 — Rl(Ring Indicator) — состояние линии Rl. » Бит 5 — DSR(Data Set Ready) — состояние линии DSR. « Бит 4 — CTS(Clear To Send) — состояние линии CTS.

« Бит 3 — DDCD (Delta Data Carrier Detect)изменение состояния DCD.

». Бит 2 — TERI (Trailing Edge OfRing Indicator)спад огибающей Rl (окончание звонка). Mi Бит 1 — DDSR(Delta Data Set Ready)изменение состояния DSR.

s Бит 0 — DCTS (Delta Clear To Send) — изменение состояния CTS.

Признаки изменения (биты [3:0]) сбрасываются по чтению регистра.

SCR рабочий регистр (8 бит), на работу UART не влияет, предназначен для временного хранения данных (в 8250 отсутствует).

В диагностическом режиме (при ШЕ=1) внутри UART организуется внутренняя заглушка:

к Выход передатчика переводится в состояние логической 1. « Вход приемника отключается.

» Выход сдвигающего регистра передатчика логически соединяется со входом приемника.

« Входы DSR, CTS, RI и DCD отключаются от входных линий и внутренне управляются битами DTRC, RTSC, OUT1C, 1Е.

« Выходы управления модемом переводятся в пассивное состояние (логический ноль).

Переданные данные в последовательном виде немедленно принимаются, что позволяет проверять внутренний канал данных порта (включая сдвигающие регистры) и отработку прерываний, а также определять скорость работы UART.

2.5.3. Ресурсы и конфигурирование СОМ-портов

Компьютер может иметь до четырех последовательных портов СОМ1-COM4 (для машин класса AT типично наличие двух портов). СОМ-порты имеют внешние разъемы-вилкм DB25P или DB9P, выведенные на заднюю панель компьютера (назначение выводов приведено в табл. 2.1).

СОМ-порты реализуются на микросхемах UART, совместимых с семейством i8250. Они занимают в пространстве ввода/вывода по 8 смежных 8-битных регистров и могут располагаться по стандартным базовым адресам. Порты вырабатывают аппаратные прерывания. Возможность разделяемого использования одной линии запроса несколькими портами (или ее разделения с другими устройствами) зависит от реализации аппаратного подключения и ПО. При использовании портов, установленных на шину ISA, разделяемые прерывания обычно не работают.

Управление последовательным портом разделяется на два этапа — предварительное конфигурирование (Setup) аппаратных средств порта и текущее (оперативное) переключение режимов работы прикладным или системным ПО. Конфигурирование СОМ-порта зависит от его исполнения. Порт на плате расширения конфигурируется джамперами на самой плате. Порт на системной плате конфигурируется через BIOS Setup.

Конфигурированию подлежат следующие параметры:

» Базовый адрес, который может иметь значения 3F8h, 2F8h, 3E8h (3EOh, 338h) или 2E8h (2EOh, 238h). При инициализации BIOS проверяет наличие портов по адресам именно в этом порядке и присваивает обнаруженным портам логические имена СОМ1, COM2, COM3 и COM4. Для PS/2 стандартными для портов СОМЗ-СОМ8 являются адреса 3220h, 3228h, 4220h, 4228h, 5220h и 5228h соответственно.

ss Используемая линия запроса прерывания: для СОМ1 и COM3 обычно используется 1RQ4 или IRQ11, для COM2 и COM4 — IRQ3 или IRQ 10. В принципе номер прерывания можно назначать в произвольных сочетаниях с базовым адресом (номером порта), но некоторые программы и драйверы (например, драйверы последовательной мыши) настроены на стандартные сочетания. Каждому порту, нуждающемуся в аппаратном прерывании, назначают отдельную линию, не совпадающую с линиями запроса прерываний других устройств. Прерывания необходимы для портов, к которым подключаются устройства ввода, UPS или модемы. При подключении принтера или плоттера прерываниями пользуются только многозадачные ОС (не всегда), и этот дефицитный ресурс PC можно сэкономить. Также прерываниями обычно не пользуются при связи двух компьютеров нуль-модемным ss Канал DMA (для UART 16450/16550, расположенных на системной плате) — разрешение использования и номер канала DMA. Режим DMA при работе с СОМ-портами используют редко.

Режим работы порта по умолчанию (2400 бит/с, 7 бит данных, 1 стоп-бит и контроль четности), заданный при инициализации порта во время BIOS POST, может изменяться в любой момент при настройке коммуникационных программ или командой DOS MODE COMx: с указанием параметров.

2.5.4. Неисправности и тестирование СОМ-портов

Неполадки с СОМ-портами случаются (выявляются) при установке новых портов или неудачном подключении внешних устройств.

Проверка конфигурирования

Тестирование последовательных портов (как и параллельных) начинают с проверки их опознавания системой. Список адресов установленных портов обычно появляется в таблице, выводимой BIOS перед загрузкой ОС. Список можно посмотреть с помощью тестовых программ или прямо в BIOS Data AREA с помощью отладчика.

Если BIOS обнаруживает меньше портов, чем установлено физически, вероятно, двум портам присвоен один адрес или установлен нестандартный адрес какого-либо порта. Проблемы могут возникать с адресами портов COM3 и COM4: не все версии BIOS будут искать порты по альтернативным адресам 3EOh, 338h, 2EOh и 238h; иногда не производится поиск по адресам 3E8h и 2E8h. Нумерация найденных портов, отображаемая в заставке, может вводить в заблуждение:

если установлены два порта с адресами 3F8h и 3E8h, в заставке они могут называться СОМ1 и COM2, и по этим именам на них можно ссылаться. Однако те же порты в заставке могут называться и СОМ1 и COM3 (поскольку 3E8h является штатным адресом для COM3), но попытка сослаться на порт COM3 будет неудачной, поскольку в данном случае адрес 3E8h будет находиться в ячейке 0:402h B/OS Data Area, соответствующей порту COM2, а в ячейке порта COM3 (0:404h) будет нуль — признак отсутствия такового порта. «Объяснить» системе, где какой порт, можно вручную любым отладчиком, занеся правильные значения базовых адресов в ячейки B/OS Data Area (это придется делать каждый раз после перезагрузки ОС перед использованием «потерянного» порта). Существуют тестовые утилиты, позволяющие находить порты (например, Port Finder).

Если двум портам назначен один и тот же адрес, тестовая программа обнаружит ошибки порта только с использованием внешней заглушки (External LoopBack). Программное тестирование порта без заглушки не покажет ошибок, поскольку при этом включается диагностический режим (см. описание UART) и конфликтующие (по отдельности исправные) порты будут работать параллельно, обеспечивая совпадение считываемой информации. В реальной жизни нормальная работа конфликтующих портов невозможна. Разбираться с конфликтом адресов удобно, последовательно устанавливая порты и наблюдая за адресами, появляющимися в списке.

Если физически установлен только один порт и его не обнаруживает BIOS, причины те же, что с LPT-портом: либо он отключен при конфигурировании, либо вышел из строя. Неисправность может устраниться при вынимании/вставке платы адаптера в слот системной шины.

При работе с СОМ-портом задействуются соответствующие аппаратные прерывания — их используют при подключении модема, мыши и других устройств ввода. Неработоспособность этих устройств может быть вызвана некорректной настройкой запроса прерывания. Здесь возможны как конфликты с другими устройствами, так и несоответствие номера прерывания адресу порта.

Функциональное тестирование

В первом приближении СОМ-порт можно проверить диагностической программой (Checkit) без использования заглушек. Этот режим тестирования проверяет микросхему UART (внутренний диагностический режим) и вырабатывание прерываний, но не входные и выходные буферные микросхемы, которые являются более частыми источниками неприятностей. Если тест не проходит, причину следует искать или в конфликте адресов/прерываний, или в самой микросхеме UART.

Для более достоверного тестирования рекомендуется использовать внешнюю заглушку, подключаемую к разъему СОМ-порта (рис. 2.17). В отличие от LPT-порта у СОМ-порта количество входных сигналов превышает количество выходных, что позволяет выполнить полную проверку всех цепей. Заглушка соединяет выход приемника со входом передатчика. Обязательная для всех схем заглушек перемычка RTS-CTS позволяет работать передатчику — без нее символы не смогут передаваться. Выходной сигнал DTR обычно используют для проверки входных линий DSR, DCD и RI.

Если тест с внешней заглушкой не проходит, причину следует искать во внешних буферах, их питании или в шлейфах подключения внешних разъемов. Здесь может помочь осциллограф или вольтметр. Последовательность проверки может быть следующей:

1. Проверить наличие двуполярного питания выходных схем передатчиков (этот шаг логически первый, но поскольку он технически самый сложный, его можно отложить на крайний случай, когда появится желание заменить буферные микросхемы).

2. Проверить напряжение на выходах TD, RTS и DTR: после аппаратного сброса на выходе TD должен быть отрицательный потенциал около -12 В (по крайней мере ниже -5 В), а на выходах RTS и DTR — такой же положительный. Если этих потенциалов нет, возможна ошибка подключения разъема к плате через шлейф. Распространенные варианты:

в шлейф не подключен;

« шлейф подключен неправильно (разъем перевернут или вставлен со смещением);

^ раскладка шлейфа не соответствует разъему платы.

Первые два варианта проверяются при внимательном осмотре, третий же может потребовать некоторых усилий. В табл. 2.1 приведены три варианта раскладки 10-проводного шлейфа разъема СОМ-порта, известных автору; для СОМ-портов на системных платах возможно существование и других. Теоретически шлейф должен поставляться в соответствии с разъемом платы, на которой расположен порт.

Если дело в ошибочной раскладке, то эти три выходных сигнала удастся обнаружить на других контактах разъемов (на входных контактах потенциал совсем небольшой). Если эти сигналы обнаружить не удалось, очевидно, вышли из строя буферные формирователи.

3. Соединив контакты линий RTS и CTS (или установив заглушку), следует попытаться вывести небольшой файл на СОМ-порт (например, командой COPYC:\AUTOEXEC. ВАТ СОМ1:). С исправным портом эта команда успешно выполнится за несколько секунд с сообщением об успешном копировании. При этом потенциалы на выходах RTS и DTR должны измениться на отрицательные, а на выходе TD должна появиться пачка двуполярных импульсов с амплитудой более 5 В. Если потенциалы RTS и DTR не изменились, ошибка в буферных формирователях. Если на выходе RTS (и входе CTS) появился отрицательный потенциал, а команда COPY завершается с ошибкой, скорее всего, вышел из строя приемник линии CTS (или опять-таки ошибка в шлейфе). Если команда COPY успешно проходит, а изменения на выходе TD не обнаруживаются (их можно увидеть стрелочным вольтметром, но оценить амплитуду импульсов не удастся), виноват буферный передатчик сигнала TD. Замена микросхем приемников и передатчиков существенно облегчается, если они установлены в «кроватки». Перед заменой следует с помощью осциллографа или вольтметра удостовериться в неисправности конкретной микросхемы. Расположение выводов микросхем приведено на рис. 2.6.

Если буферные элементы включены в состав интерфейсной БИС (что теперь весьма распространено), то такой порт ремонту не подлежит (по крайней мере в обычных условиях). Неисправный СОМ-порт, установленный на системной плате, можно попытаться отключить в BIOS SETUP, но порт мог сгореть и вместе со схемой своего отключения — тогда он останется «живым мертвецом» в карте портов ввода/вывода и прерываний. Иногда он полностью выводит из строя системную плату.

Источниками ошибок могут являться разъемы и кабели. В разъемах встречаются плохие контакты, а кабели кроме возможных обрывов могут иметь плохие частотные характеристики. Частотные свойства кабелей обычно сказываются при большой длине (десятки метров) на высоких скоростях обмена (56 или 115 Кбит/с). При необходимости использования длинных кабелей на высоких скоростях сигнальные провода данных должны быть перевиты с отдельными проводами «схемной земли».

Питание от интерфейса, или Почему может не работать мышь

При подключении к СОМ-порту устройств с небольшим энергопотреблением возникает соблазн использования питания от выходных линий интерфейса. Если линии управления DTR и RTS не используются по прямому назначению, их можно задействовать как питающие с напряжением около 12 В. Ток короткого замыкания на «схемную землю» ограничен буферной микросхемой передатчика на уровне 20 мА. При инициализации порта эти линии переходят в состояние «выключено», то есть вырабатывают положительное напряжение. Линия TD в покое находится в состоянии логической единицы, так что на выходе вырабатывается отрицательное напряжение. Потенциалами линий можно управлять через регистры СОМ-порта (выход TD вырабатывает положительное напряжение, если установить бит BRCON). Двуполярным питанием от линий интерфейса (+V от DTR и RTS, -V от TD) пользуются все манипуляторы, подключаемые к СОМ-портам. Зная это, в случае неработоспособности мыши с данным портом следует проверить напряжения на соответствующих контактах разъема. Бывает, что с конкретным портом не работает только конкретная мышь (модель или экземпляр), хотя другие мыши с этим портом и эти же мыши с другими портами работают нормально. Здесь дело может быть в уровнях напряжений. Стандарт требует от порта выходного напряжения не менее 5 В (абсолютного значения), и, если данный порт обеспечивает только этот минимум, некоторым мышам не хватит мощности для питания светодиодов (главных потребителей энергии).

Порт получает двуполярное питание через системную плату от блока питания компьютера. Отсутствие на выходе блока питания напряжения +12 В обычно обнаружится по неработоспособности дисков. Отсутствие напряжения -12 В «заметят» только устройства, подключенные к СОМ-портам. Блок питания теоретически контролирует наличие этих напряжений на своем выходе (сообщая о неполадках сигналом Power Good, вызывающим аппаратный сброс). Встречаются упрощенные схемы блоков питания, у которых контролируются не все напряжения. Кроме того, возможны плохие контакты в разъеме подключения питания к системной плате.

2.5.5. Функции BIOS для СОМ-портов

В процессе начального тестирования POST BIOS проверяет наличие последовательных портов (регистров UART 8250 или совместимых) по стандартным адресам и помещает базовые адреса обнаруженных портов в ячейки B/OS Data Area 0:0400, 0402, 0404, 0406. Эти ячейки хранят адреса портов с логическими именами СОМ 1-COM4. Нулевое значение адреса является признаком отсутствия порта с данным номером. В ячейки 0:047С, 047D, 047Е, 047F заносятся константы, задающие тайм-аут для портов.

Обнаруженные порты инициализируются на скорость обмена 2400 бит/с, 7 бит данных с контролем на четность (even), 1 стоп-бит. Управляющие сигналы интерфейса DTR и RTS переводятся в исходное состояние («выключено» — положительное напряжение).

Порты поддерживаются сервисом BIOS INT 14h, который обеспечивает следующие функции:

» OOhинициализация (установка скорости обмена и формата посылок, заданных регистром AL; запрет источников прерываний). На сигналы DTR и RTS влияния не оказывает (после аппаратного сброса они пассивны).

« Olhвывод символа из регистра AL (без аппаратных прерываний). Активируются сигналы DTR и RTS, и после освобождения регистра THR в него помещается выводимый символ. Если за заданное время регистр не освобождается, фиксируется ошибка тайм-аута и функция завершается.

ж 02hввод символа (без аппаратных прерываний). Активируется только сигнал DTR (RTS переходит в пассивное состояние), и ожидается готовность принятых данных, принятый символ помещается в регистр AL. Если за заданное время данные не получены, функция завершается с ошибкой тайм-аута.

8 03hопрос состояния модема и линии (чтение регистров MSR и LSR). Эту гарантированно быструю функцию обычно вызывают перед функциями ввода/вывода во избежание риска ожидания тайм-аута.

При вызове INT 14h номер функции задается в регистре АН, номер порта (0-3) — в регистре DX (0 — СОМ1, 1 — COM2...). При возврате из функций 0, 1 и 3 регистр АН содержит байт состояния линии (регистр LSR), AL — байт состояния модема (MSR). При возврате из функции 2 нулевое значение бита 7 регистра АН указывает на наличие принятого символа в регистре AL; ненулевое значение бита 7 — на ошибку приема, которую можно уточнить функцией 3.

Формат байта состояния линии (регистр АН):

и Бит 7 — ошибка тайм-аута (после вызова функции 2 — признак любой ошибки).  я Бит 6 — регистр сдвига передатчика пуст (пауза передачи).

» Бит 5 — промежуточный регистр передатчика пуст (го тов принять символ для передачи).

« Бит 4 — обнаружен обрыв линии.

« Бит 3 — ошибка кадра (отсутствие стоп-бита).

« Бит 2 — ошибка паритета принятого символа.

» Бит 1 — переполнение (потеря символа).

ж Бит 0 — регистр данных содержит принятый символ.

Формат байта состояния модема (регистр AL):

 » Бит 7 — состояние линии DCD.  » Бит 6 — состояние линии RI.  я Бит 5 — состояние линии DSR.  м Бит 4 — состояние линии CTS.  »« Бит 3 — изменение состояния DCD.  » Бит 2 — изменение огибающей RI.  я Бит 1 — изменение состояния DSR.  ss Бит 0 — изменение состояния CTS. Формат регистра AL при инициализации:

» Биты [7:5] — скорость обмена:

000-110; 010-300; 100-1200; 110-4800,

001-150; 011-600; 101-2400; 111-9600 бит/с.  ж Биты [4:3] — контроль паритета:

01 — число единиц нечетное,

11 —четное,

00 и 10 — без контроля.

» Бит 2 — количество стоп-бит: 0—1 бит, 1—2 бита  (на скорости 110 бит/с — 1,5 стоп-бита).

» Биты [1:0] — длина посылки: 00—5 бит, 01—6 бит,  10-7 бот, 11:-8 бит. 2.5.6. СОМ-порт и РпР

Современные ПУ, подключаемые к СОМ-порту, могут поддерживать спецификацию РпР. Основная задача ОС заключается в идентификации подключенного устройства, для чего разработан несложный протокол, реализуемый на любых СОМ-портах чисто программным способом (рис. 2.18):

1. Порт инициализируется с состоянием линий DTR=CW, RTS=OFF, T)(D=Mark состояние покоя (Idle).

2. Некоторое время (0,2 с) ожидается появление сигнала DSR, которое указало бы на наличие устройства, подключенного к порту. В простейшем случае устройство имеет на разъеме перемычку DTR-DSR, обеспечивающую указанный ответ. Если устройство обнаружено, выполняются манипуляции управляющими сигналами DTR и RTS для получения информации от устройства. Если ответ не получен, ОС, поддерживающая динамическое реконфи-гурирование, периодически опрашивает состояние порта для обнаружения новых устройств.

3. Порт программируется на режим 1200 бит/с, 7 бит данных, без паритета, 1 стоп-бит, и на 0,2 с снимается сигнал DTR. После этого устанавливается DTR=1, а еще через 0,2 с устанавливается и RTS=1.

4. В течение 0,2 с ожидается приход первого символа от устройства. По приходе символа начинается прием идентификатора (см. ниже). Если за это время символ не пришел (рис. 2.18), выполняется вторая попытка опроса (см. п. 5), несколько отличающаяся от первой.

5. На 0,2 с снимаются оба сигнала (DTR=0 и RTS=0), после чего они оба устанавливаются (DTR=1 и RTS"!). 6. В течение 0,2 с ожидается приход первого символа от устройства, по приходе символа начинается прием идентификатора (см. ниже). Если за это время символ не пришел, то в зависимости от состояния сигнала DSR переходят к проверке отключения Verify Disconnect (при DSR=0) или в дежурное состояние Connect Idle (при DSR=1).

7. В дежурном состоянии Connect Idle устанавливается DTR=1, RTS=0, порт программируется на режим 300 бит/с, 7 бит данных, без паритета, 1 стоп-бит. Если в этом состоянии обнаружится DSR=0, ОС следует уведомить об отключении устройства.

Посимвольный прием идентификатора устройства имеет ограничения по тайм-ауту в 0,2 с на символ, а также общее ограничение в 2,2 с, позволяющее принять строку длиной до 256 символов. Строка идентификатора РпР должна иметь маркеры начала (28h или 08h) и конца (29h или 09h), между которыми располагается тело идентификатора в стандартизованном формате. Перед маркером начала может находиться до 16 символов, не относящихся к идентификатору РпР. Если за первые 0,2 с ожидания символа (шаг 4 или 6) маркер начала не пришел, или же сработал тайм-аут, а маркер конца не получен, или же какой-либо символ принят с ошибкой, происходит переход в состояние Connect Idle. Если получена корректная строка идентификатора, она передается ОС.

Для проверки отключения (Verify Disconnect) устанавливается DTR°1, RTS=0 и через 5 с проверяется состояние сигнала DSR. При DSR=1 происходит переход в состояние Connect Idle (см. п. 7), при DSR=0 происходит переход в состояние Disconnect Idle, в котором система может периодически опрашивать сигнал DSR для обнаружения подключения устройства.

Описанный механизм разрабатывался фирмой Microsoft с учетом совместимости с не-РпР-устройствами — невозможность их вывода из строя и устойчивость системы к сообщениям, не являющимся РпР-идентификаторами. Например, обычная Microsoft Mouse при включении питания от интерфейса ответит ASCII-символом «М» (трехкнопочная — строкой «МЗ»).

Беспроводные интерфейсы

Беспроводные (wireless) интерфейсы позволяют освободить устройства от связывающих их интерфейсных кабелей, что особенно привлекательно для малогабаритной периферии, по размеру и весу соизмеримой с кабелями. В беспроводных интерфейсах используются электромагнитные волны инфракрасного (IrDA) и радиочастотного (Bluetooth) диапазонов. Кроме этих интерфейсов периферийных устройств существуют и беспроводные способы подключения к локальным сетям (см. [3]).

3.1. Инфракрасный интерфейс IrDA

Применение излучателей и приемников инфракрасного (ИК) диапазона позволяет осуществлять беспроводную связь между парой устройств, удаленных на расстояние до нескольких метров. Инфракрасная связь — IR (Infra Red) Connection безопасна для здоровья, не создает помех в радиочастотном диапазоне и обеспечивает конфиденциальность передачи. ИК-лучи не проходят через стены, поэтому зона приема ограничивается небольшим, легко контролируемым пространством. Инфракрасная технология привлекательна для связи портативных компьютеров со стационарными компьютерами или док-станциями. Инфракрасный интерфейс имеют некоторые модели принтеров, им оснащают многие современные малогабаритные устройства: карманные компьютеры (PDA), мобильные телефоны, цифровые фотокамеры и т. п.

Различают инфракрасные системы низкой (до 115,2 Кбит/с), средней (1,152 Мбит/с) и высокой (4 Мбит/с) скорости. Низкоскоростные системы служат для обмена короткими сообщениями, высокоскоростные — для обмена файлами между компьютерами, подключения к компьютерной сети, вывода на принтер, проекционный аппарат и т. п. Ожидаются более высокие скорости обмена, которые позволят передавать «живое видео». В 1993 году была создана ассоциация разработчиков систем инфракрасной передачи данных IrDA (Infrared Data Association), призванная обеспечить совместимость оборудования от различных производителей. В настоящее время действует стандарт IrDA 1.1, наряду с которым существуют и собственные системы фирм Hewlett PackardHP-SIR (Hewlett Packard Slow Infra Red) и SharpASK IR (Amplitude Shifted Keyed IR). Эти интерфейсы обеспечивают следующие скорости передачи:

• IrDA SIR (Serial Infra Red), HP-SIR - 9,6-115,2 Кбит/с;

IrDA HDLC, известный и как IrDA MIR (Middle Infra Red) - 0,576 и 1,152 Мбит/с;

• IrDA FIR (Fast Infra Red) - 4 Мбит/с;

ASK IR - 9,6-57,6 Кбит/с.

Излучателем для ИК-связи является светодиод, имеющий пик спектральной характеристики мощности 880 нм; светодиод дает конус эффективного излучения с углом около 30°. В качестве приемника используют PIN-диоды, эффективно принимающие ИК-лучи в конусе 15°. Спецификация IrDA определяет требования к мощности передатчика и чувствительности приемника, причем для приемника задается как минимальная, так и максимальная мощность ИК-лучей. Импульсы слишком малой мощности приемник не «увидит», а слишком большая мощность «ослепляет» приемник — принимаемые импульсы сольются в неразличимый сигнал. Кроме полезного сигнала на приемник воздействуют помехи: засветка солнечным освещением и лампами накаливания, дающая постоянную составляющую оптической мощности, и помехи от люминесцентных ламп, дающие переменную (но низкочастотную) составляющую. Эти помехи приходится фильтровать. Спецификация IrDA обеспечивает уровень битовых ошибок (Bit Error Ratio, BER) не более 10"9 при дальности до 1 м и дневном свете (освещенность до 10 клюке). Поскольку передатчик почти неизбежно вызывает засветку своего же приемника, вводя его в насыщение, приходится задействовать полудуплексную связь с определенными временными зазорами при смене направления обмена. Для передачи сигналов используют двоичную модуляцию (есть свет — нет света) и различные схемы кодирования.

Спецификация IrDA определяет многоуровневую систему протоколов, которую рассмотрим снизу вверх.

Ниже перечислены варианты, возможные на физическом уровне IrDA.

IrDA SIR для скоростей 2,4-115,2 Кбит/с используется стандартный асинхронный режим передачи (как в СОМ-портах): старт-бит (нулевой), 8 бит данных и стоп-бит (единичный). Нулевое значение бита кодируется импульсом длительностью 3/16 битового интервала (1,63 мкс на скорости 115,2 Кбит/с), единичное — отсутствием импульсов (режим IrDA SIR-A). Таким образом, в паузе между посылками передатчик не светит, а каждая посылка начинается с импульса старт-бита. В спецификации 1.1 предусмотрен и иной режим — IrDA SIR-B, с фиксированной длительностью импульса 1,63 мкс для всех этих скоростей.

ASKIR для скоростей 9,6-57,6 Кбит/с также используется асинхронный режим, но кодирование иное: нулевой бит кодируется посылкой импульсов с частотой 500 кГц, единичный — отсутствием импульсов. • IrDA HDLC — для скоростей 0,576 и 1,152 Мбит/с используется синхронный режим передачи и кодирование, аналогичное протоколу SIR, но с длительностью импульса 1/4-битового интервала. Формат кадра соответствует протоколу HDLC, начало и конец кадра отмечаются флагами 01111110, внутри кадра эта битовая последовательность исключается путем вставки битов (bit stuffing). Для контроля достоверности кадр содержит 16-битный CRC-код.

IrDA FIR (IrDA4PPM) — для скорости 4 Мбит/с также применяется синхронный режим, но кодирование несколько сложнее. Здесь каждая пара смежных битов кодируется позиционно-импульсным кодом: 00 —> 1000, 01 —> 0100, 10 —> 0010,11 —>0001 (в четверках символов «I» означает посылку импульса в соответствующей четверти двухбитового интервала). Такой способ кодирования позволил вдвое снизить частоту включения светодиода по сравнению с предыдущим. Постоянство средней частоты принимаемых импульсов облегчает адаптацию к уровню внешней засветки. Для повышения достоверности применяется 32-битный CRC-код.

Над физическим уровнем расположен протокол доступа IrLAP (IrDA Infrared Link Access Protocol) — модификация протокола HDLC, отражающая нужды ИК-свя-зи. Этот протокол инкапсулирует данные в кадры и предотвращает конфликты устройств: при наличии более двух устройств, «видящих» друг друга, одно из них назначается первичным, а остальные — вторичными. Связь всегда полудуплексная. IrLAP описывает процедуру установления, нумерации и закрытия соединений. Соединение устанавливается на скорости 9600 бит/с, после чего согласуется скорость обмена по максиму из доступных обоим (9,6,19,2,38,4,57,6 или 115,2 Кбит/с) и устанавливаются логические каналы (каждый канал управляется одним ведущим устройством).

Над IrLAP располагается протокол управления соединением IrLMP (IrDA Infrared Link Management Protocol). С его помощью устройство сообщает остальным о своем присутствии в зоне охвата (конфигурация устройств IrDA может изменяться динамически: для ее изменения достаточно поднести новое устройство или отнести его подальше). Протокол IrLMP позволяет обнаруживать сервисы, предоставляемые устройством, проверять потоки данных и выступать в роли мультиплексора для конфигураций с множеством доступных устройств. Приложения с помощью IrLMP могут узнать, присутствует ли требуемое им устройства в зоне охвата. Однако гарантированной доставки данных этот протокол не обеспечивает.

Транспортный уровень обеспечивается протоколом Tiny TP (IrDA Transport Protocols) — здесь обслуживаются виртуальные каналы между устройствами, обрабатываются ошибки (потерянные пакеты, ошибки данных и т. п.), производится упаковка данных в пакеты и сборка исходных данных из пакетов (протокол напоминает TCP). На транспортном уровне может работать и протокол IrTP.

Протокол IrCOMM позволяет через ИК-связь эмулировать обычное проводное подключение:

• 3-проводное по RS-232C (TXD, RXD и GND);

• 9-проводное по RS-232C (весь набор сигналов СОМ-порта);

Centronics (эмуляция параллельного интерфейса). Протокол IrLAN обеспечивает доступ к локальным сетям, позволяя передавать кадры сетей Ethernet и Token Ring. Для ИК-подключения к локальной сети требуется устройство-провайдер с интерфейсом IrDA, подключенное обычным (проводным) способом к локальной сети, и соответствующая программная поддержка в клиентском устройстве (которое должно войти в сеть). Протокол объектного обмена IrOBEX (Object Exchange Protocol) — простой протокол, определяющий команды PUT и GET для обмена «полезными» двоичными данными между устройствами. Этот протокол располагается над протоколом Tiny ТР. У протокола IrOBEX есть расширение для мобильных коммуникаций, которое определяет передачу информации, относящуюся к сетям GSM (записная книжка, календарь, управление вызовом, цифровая передача голоса и т. п.), между телефоном и компьютерами разных размеров (от настольного до PDA).

Этими протоколами не исчерпывается весь список протоколов, имеющих отношение к ИК-связи. Заметим, что для дистанционного управления бытовой техникой (телевизоры, видеомагнитофоны и т. п.) используется тот же диапазон 880 нм, но иные частоты и методы физического кодирования. Приемопередатчик IrDA может быть подключен к компьютеру различными способами; по отношению к системному блоку он может быть как внутренним (размещаемым на лицевой панели), так и внешним, размещаемым в произвольном месте. Размещать приемопередатчик следует с учетом угла «зрения» (30° у передатчика и 15° у приемника) и расстояния до требуемого устройства (до 1 м).

Внутренние приемопередатчики на скоростях до 115,2 Кбит/с (IrDA SIR, HP-SIR, ASK IR) подключаются через обычные микросхемы UART, совместимые с 16450/ 16550 через сравнительно несложные схемы модуляторов-демодуляторов. В ряде современных системных плат на использование инфракрасной связи (до 115,2 Кбит/с) может конфигурироваться порт COM2. Для этого в дополнение к UART чипсет содержит схемы модулятора и демодулятора, обеспечивающие один или несколько протоколов инфракрасной связи. Чтобы порт COM2 использовать для инфракрасной связи, в CMOS Setup требуется выбрать соответствующий режим (запрет инфракрасной связи означает обычное использование COM2). Существуют внутренние адаптеры и в виде карт расширения (для шин ISA, PCI, PC Card); для системы они выглядят как дополнительные СОМ-порты.

На средних и высоких скоростях обмена применяются специализированные микросхемы контроллеров IrDA, ориентированные на интенсивный программно-управляемый обмен или DMA, с возможностью прямого управления шиной. Здесь обычный приемопередатчик UART непригоден, поскольку он не поддерживает синхронный режим и высокую скорость. Контроллер IrDA FIR выполняется в виде карты расширения или интегрируется в системную плату; как правило, такой контроллер поддерживает и режимы SIR.

Приемопередатчик подключается к разъему IR- Connector системной платы напрямую (если он устанавливается на лицевую панель компьютера) или через промежуточный разъем (mini-DIN), расположенный на скобе-заглушке задней стенки корпуса. К-сожалению, единой раскладки цепей на внутреннем коннекторе нет, и для большей гибкости приемопередатчик (или промежуточный разъем) снабжают кабелем с отдельными контактами разъема. Собрать их в должном порядке предоставляют пользователю; варианты назначения контактов коннектора инфракрасного приемопередатчика приведены в табл. 3.1. Некоторые приемопередатчики, поддерживающие режимы FIR и SIR, имеют раздельные выходы приемников — IRRX (для SIR) и FIRRX (для FIR). Если контроллер поддерживает только один из режимов, один из контактов останется неподключенным.

Внешние ПК-адаптеры вьшускают с интерфейсом RS-232C для подключения к СОМ-порту или же с шиной USB. Пропускной способности USB достаточно даже для FIR, СОМ-порт пригоден только для SIR. Внешний ИК-адаптер IrDA SIR для СОМ-порта не так прост, как казалось бы: для работы модулятора-демодулятора требуется сигнал синхронизации с частотой, равной 16-кратной частоте передачи данных (этот сигнал поступает на синхровход микросхемы UART СОМ-порта). Такого сигнала на выходе СОМ-порта нет и его приходится восстанавливать из асинхронного битового потока. Адаптер ASK IR в этом плане проще — передатчик должен передавать высокочастотные импульсы все время, пока выход TXD находится в высоком состоянии; приемник должен формировать огибающую принятых импульсов.

Для прикладного использования IrDA кроме физического подключения адаптера и трансивера требуется установка и настройка соответствующих драйверов. В ОС Windows 9x/ME/2000 контроллер IrDA попадает в группу Сетевое окружение. Сконфигурированное ПО позволяет устанавливать соединение с Локальной сетью (для выхода в Интернет, использования сетевых ресурсов); передавать файлы между парой компьютеров; выводить данные на печать; синхронизировать данные PDA, мобильного телефона и настольного компьютера; загружать отснятые изображения из фотокамеры в компьютер и выполнять ряд других полезных действий, не заботясь ни о каком кабельном хозяйстве.

3.2. Радиоинтерфейс Bluetooth

Bluetooth (синий зуб) — это фактический стандарт на миниатюрные недорогие средства передачи информации с помощью радиосвязи между мобильными (и настольными) компьютерами, мобильными телефонами и любыми другими


портативными устройствами на небольшие расстояния. Разработкой спецификации занимается группа лидирующих фирм в областях телекоммуникаций, компьютеров и сетей — 3Com, Agere Systems, Ericsson, IBM, Intel, Microsoft, Motorola, Nokia, Toshiba. Эта группа, образовавшая Bluetooth Special Interest Group, и вывела данную технологию на рынок. Спецификация Bluetooth свободно доступна в Сети (www.bluetooth.com), правда, она весьма объемна (около 15 Мбайт PDF-файлов). Открытость спецификации должна способствовать ее быстрому распространению, что уже и наблюдается на практике. Здесь позволим себе сократить название технологии до «ВТ» (это не официальное сокращение). Само название представляет собой прозвище датского короля, объединившего Данию и Норвегию, — намек на всеобщую объединяющую роль технологии.

Каждое устройство ВТ имеет радиопередатчик и приемник, работающие в диапазоне частот 2,4 ГГц. Этот диапазон в большинстве стран отведен для промышленной, научной и медицинской аппаратуры и ле требует лицензирования, что обеспечивает повсеместную применимость устройств. Для ВТ используются радиоканалы с дискретной (двоичной) частотной модуляцией, несущая частота каналов F°2402+k (МГц), где k"0,..., 78. Для нескольких стран (например, Франции, где в этом диапазоне работают военные) возможен сокращенный вариант с F°°2454+k (k=0,..., 22). Кодирование простое — логической единице соответствует положительная девиация частоты, нулю — отрицательная. Передатчики могут быть трех классов мощности, с максимальной мощностью 1, 2,5 и 100 МВт, причем должна быть возможность понижения мощности с целью экономии энергии.

Передача ведется с перескоком несущей частоты с одного радиоканала на другой, что помогает в борьбе с интерференцией и замираниями сигнала. Физический канал связи представляется определенной псевдослучайной последовательностью используемых радиоканалов (79 или 23 возможных частот). Группа устройств, разделяющих один канал (то есть «знающих» одну и ту же последовательность перескоков), образует так называемую пикосеть (piconet), в которую может входить от 2 до 8 устройств. В каждой пикосети имеется одно ведущее устройство и до 7 активных ведомых. Кроме того, в зоне охвата ведущего устройства в его же пикосети могут находиться «припаркованные» ведомые устройства: они тоже «знают» последовательность перескоков и синхронизируются (по перескокам) с ведущим устройством, но не могут обмениваться данными до тех пор, пока ведущее устройство не разрешит их активность. Каждое активное ведомое устройство пикосети имеет свой временный номер (1-7); когда ведомое устройство деакти-вируется (паркуется), оно отдает свой номер для использования другими. При последующей активизации оно уже может получить иной номер (потому-то он и временный). Пикосети могут перекрываться зонами охвата, образуя «разбросанную» сеть (scatternet). При этом в каждой пикосети ведущее устройство только одно, но ведомые устройства могут входить в несколько пикосетей, используя разделение времени (часть времени он работает в одной, часть — в другой пикосети). Более того, ведущее устройство одной пикосети может быть ведомым устройством другой пикосети. Эти пикосети никак не синхронизированы, каждая из них использует свой канал (последовательность перескоков). Канал делится на тайм-слоты длительностью 625 мкс, слоты последовательно нумеруются с цикличностью 227. Каждый тайм-слот соответствует одной частоте, несущей в последовательности перескоков (1600 перескоков в секунду). Последовательность частот определяется адресом ведущего устройства пикосети. Передачи ведутся пакетами, каждый пакет может занимать от 1 до 5 тайм-слотов. Если пакет длинный, то он весь передается на одной частоте несущей, но отсчет слотов по 625 мкс продолжается, и после длинного пакета следующая частота будет соответствовать очередному номеру слота (то есть несколько перескоков будут пропущены). Ведущее и ведомые устройства ведут передачу поочередно: в четных слотах передачу ведет ведущее устройство, а в нечетных — адресованное им ведомое устройство (если ему есть что «сказать»).

Между ведущим и ведомыми устройствами могут устанавливаться физические связи двух типов: синхронные и асинхронные.

Синхронные связи (они же изохронные) с установлением соединения, SCO link (Synchronous Connection-Oriented), используются для передачи изохронного тра-фика (например, оцифрованного звука). Эти связи типа «точка—точка» предварительно устанавливает ведущее устройство с выбранными ведомыми устройствами, и для каждой связи определяется период (в слотах), через который для нее резервируются слоты. Связи получаются симметричные двусторонние. Повторные передачи пакетов в случае ошибок приема не используются. Ведущее устройство может установить до трех связей SCO с одним или разными ведомыми устройствами. Ведомое устройство может иметь до трех связей с одним ведущим устройством или иметь по одной связи SCO с двумя различными ведущими устройствами. По сетевой классификации связи SCO относятся к коммутации цепей.

Асинхронные связи без установления соединения, ACL link (Asynchronous Connection-Less), реализуют коммутацию пакетов по схеме «точка—множество точек» между ведущим устройством и всеми ведомыми устройствами пикосети. Ведущее устройство может связываться с любым из ведомых устройств пикосети в слотах, не занятых под SCO, послав ему пакет и потребовав ответа. Ведомое устройство имеет право на передачу, только получив обращенный к нему запрос ведущего устройства (безошибочно декодировав свой адрес). Для большинства типов пакетов предусматривается повторная передача в случае обнаружения ошибки приема. Ведущее устройство может посылать и безадресные широковещательные пакеты для всех ведомых устройств своей пикосети. С каждым из своих ведомых устройств ведущее устройство может установить лишь одну связь ACL.

Информация передается пакетами, в которых поле данных может иметь длину 0-2745 бит. Для связей ACL предусмотрено несколько типов пакетов с защитой CRC-кодом (в случае обнаружения ошибки предусматривается повторная передача) и 1 беззащитный (без повторных передач). Для связей SCO данные не защищаются CRC-кодом, и следовательно, повторные передачи по ошибке приема не предусмотрены.

Защита данных от искажения и контроль достоверности производится несколькими способами. Данные некоторых типов пакетов защищаются CRC-кодом, и приемник информации должен подтверждать прием правильного пакета или сообщить об ошибке приема. Для сокращения числа повторов применяется избыточное кодирование FEC (Forward Error Correction code). В схеме FEC 1/3 каждый полезный бит передается трижды, что позволяет выбрать наиболее правдоподобный вариант мажорированием. Схема FEC 2/3 несколько сложнее, здесь используется код Хэмминга, что позволяет исправлять все однократные и обнаруживать все двукратные ошибки в каждом 10-битном блоке.

Каждый голосовой канал обеспечивает скорость по 64 Кбит/с в обоих направлениях. В канале может использоваться кодирование в формате РСМ (импульсно-кодовая модуляция) или CVSD (Continuous Variable Slope Delta Modulation — вариант адаптивной дельта импульсно-кодовой модуляции). Кодирование РСМ допускает компрессию по G.711; оно обеспечивает лишь сугубо «телефонное» качество сигнала (имеется в виду цифровая телефония, 8-битные выборки с частотой 8 Кбит/с). Кодер CVSD обеспечивает более высокое качество — он упаковывает входной РСМ-сигнал с частотой выборок 64 Кбит/с, однако и при этом спектральная плотность сигнала в полосе частот 4-32 кГц должна быть незначительной. Для передачи высококачественного аудиосигнала голосовые (речевые) каналы ВТ непригодны, однако сжатый сигнал (например, поток МРЗ) вполне можно передавать по асинхронному каналу передачи данных.

Асинхронный канал может обеспечивать максимальную скорость 723,2 Кбит/с в асимметричной конфигурации (оставляя для обратного канала полосу 57,6 Кбит/с) или же 433,9 Кбит/с в каждую сторону в симметричной конфигурации.

Для обеспечения безопасности в ВТ применяется аутентификация и шифрование данных на уровне связи (link layer), которые, конечно же, могут дополняться и средствами верхних протокольных уровней.

Важной частью ВТ является протокол обнаружения сервисов SDP (Service Discovery Protocol), позволяющий устройству найти «интересного собеседника». В дальнейшем, установив с ним соединение, устройство сможет воспользоваться требуемыми сервисами (например, выводить документы на печать, подключиться к Сети и т. п.).

Протокол RFCOMM обеспечивает эмуляцию последовательного порта (9-провод-ного RS-232) через L2CAP. С его помощью традиционные кабельные соединения устройств (в том числе и нуль-модемные) могут быть легко заменены на радиосвязь, без каких-либо модификаций ПО верхних уровней. Протокол позволяет устанавливать и множественные связи (одного устройства с несколькими), и радиосвязь заменит громоздкие и дорогие мультиплексоры и кабели. Через протокол RFCOMM может работать протокол ОВЕХ, используемый в инфракрасных беспроводных соединениях (в иерархии протоколов IrDA). Через RFCOMM может работать и протокол РРР, над которым стоят протоколы стека TCP/IP, — это открывает дорогу во все приложения для Интернета. Через RFCOMM работают и АТ-команды, управляющие телефонными соединениями и сервисами передачи факсов (эти же команды используются в модемах для коммутируемых линий).

Специальный бит-ориентированный телефонный протокол TCS BIN (Telephony Control protocolBinary), определяющий сигнализацию вызова для связи устройств ВТ (речевой связи и обмена данными), тоже работает через L2CAP. В протоколе имеются и средства управления группами устройств TCS. Интерфейс хост-контроллера HCI (Host Controller Interface) — это единообразный метод доступа к аппаратно-программным средствам нижних уровнбй ВТ. Он предоставляет набор команд для управления радиосвязью, получения информации о состоянии и собственно передачи данных. Через этот интерфейс происходит взаимодействие протокола L2CAP с аппаратурой ВТ. Физически аппаратура ВТ может подключаться к различным интерфейсам: шине расширения (например, PC Card), шине USB, СОМ-порту. Для каждого из этих подключений имеется соответствующий протокол транспортного уровня HCI — прослойка, обеспечивающая независимость HCI от способа подключения. Последовательные шины USB и FireWire

Последовательные шины позволяют объединять множество устройств, используя всего 1-2 пары проводов. Функциональные возможности этих шин гораздо шире, чем у традиционных интерфейсов локальных сетей, — USB и FireWire способны передавать изохронный трафик аудио- и видеоданных. Последовательные шины по своей организации сильно отличаются от параллельных. В последовательных шинах нет отдельных линий для данных, адреса и управления — все протокольные функции приходится выполнять, пользуясь одной или двумя (в FireWire) парами сигнальных проводов. Это накладывает отпечаток на построение шинного протокола, который в последовательных шинах строится на основе пересылок пакетов — определенным образом организованных цепочек бит. Заметим, что в терминологии USB пакеты и кадры имеют несколько иную трактовку, нежели в сетях передачи данных. В параллельных шинах имеются возможности явной синхронизации интерфейсной части ведущих и ведомых устройств; исполнение каждого шага протокола обмена может быть подтверждено, и, при необходимости, некоторые фазы обмена могут продлеваться по «просьбе» не успевающего устройства. В последовательных шинах такой возможности нет — пакет пересылается целиком, а синхронизация возможна только по принимаемому потоку бит. Эти и другие особенности сближают последовательные шины с локальными сетями передачи данных.

Наибольшую популярность имеют шины USB и FireWire, хотя последняя пока что в PC-совместимых компьютерах используется не повсеместно. Последовательные шины FireWire и USB, имея общие черты, являются, тем не менее, существенно различными технологиями. Обе шины обеспечивают простое подключение большого числа ПУ (127 для USB и 63 для FireWire), допуская коммутации и включение/выключение устройств при работающей системе. По структуре топология обеих шин достаточно близка, но FireWire допускает большую свободу и пространственную протяженность. Хабы USB входят в состав многих устройств и для пользователя их присутствие зачастую незаметно. Обе шины имеют линии питания устройств, но допустимая мощность для FireWire значительно выше. Обе шины поддерживают технологию РпР (автоматическое конфигурирование при включении/выключении) и снимают проблему дефицита адресов, каналов DMA и прерываний. Различаются пропускная способность и управление шинами. Шина USB ориентирована на периферийные устройства, подключаемые к PC. Изохронные передачи USB позволяют передавать цифровые аудиосигналы, а шина USB 2.0 способна нести и видеоданные. Все передачи управляются централизованно, и PC является необходимым управляющим узлом, находящимся в корне древовидной структуры шины. Адаптер USB пользователи современных ПК получают почти бесплатно, поскольку он входит в состав всех современных чипсе-тов системных плат. Правда, адаптеры USB 2.0 первое время будут выпускаться в виде карт PCI. Непосредственное соединение нескольких PC шиной USB не предусматривается, хотя выпускаются «активные кабели» для связи пары компьютеров и устройства-концентраторы.

Шина FireWire ориентирована на устройства бытовой электроники, которые с ее помощью могут быть объединены в единую домашнюю сеть. К этой сети может быть подключен компьютер, и даже не один. Принципиальным преимуществом шины 1394 является отсутствие необходимости в специальном контроллере шины ' (компьютере). Любое передающее устройство может получить полосу изохронного графика и начинать передачу по сигналу автономного или дистанционного управления — приемники «услышат» эту информацию. При наличии контроллера соответствующее ПО может управлять работой устройств, реализуя, например, цифровую студию нелинейного видеомонтажа или снабжая требуемыми мульти-медийными данными всех заинтересованных потребителей информации.

4.1. Шина USB

USB (Universal Serial Bus — универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Версия 1.0 была опубликована в начале 1996 года, большинство устройств поддерживает версию 1.1, которая вышла осенью 1998 года, — в ней были устранены обнаруженные проблемы первой редакции. Весной 2000 года опубликована спецификация USB 2.0, в которой предусмотрено 40-кратное повышение пропускной способности шины. Первоначально (в версиях 1.0 и 1.1) шина обеспечивала две скорости передачи информации: полная скорость FS (full speed) — 12 Мбит/с и низкая скорость LS (Low Speed) — 1,5 Мбит/с. В версии 2.0 определена еще и высокая скорость HS (High Speed) — 480 Мбит/с, которая позволяет существенно расширить круг устройств, подключаемых к шине. В одной и той же системе могут присутствовать и одновременно работать устройства со всеми тремя скоростями. Шина с использованием промежуточных хабов позволяет соединять устройства, удаленные от компьютера на расстояние до 25 м. Подробную и оперативную информацию по USB (на английском языке) можно найти по адресу http://www.usb.org.

4.1.1. Организация шины USB

USB обеспечивает обмен данными между хост-компьютером и множеством периферийных устройств (ПУ). Согласно спецификации USB, устройства (devices) могут являться хабами, функциями или их комбинацией. Устройство-дга^ (hub) только обеспечивает дополнительные точки подключения устройств к шине. Устройство-функция (function) USB предоставляет системе дополнительные функциональные возможности, например подключение к ISDN, цифровой джойстик, акустические колонки с цифровым интерфейсом и т. п. Комбинированное устройство (compound device), содержащее несколько функций, представляется как хаб с подключенными к нему несколькими устройствами. Устройство USB должно иметь интерфейс USB, обеспечивающий полную поддержку протокола USB, выполнение стандартных операций (конфигурирование и сброс) и предоставление информации, описывающей устройство. Работой всей системы USB управляет хост-контроллер (host controller), являющийся программно-аппаратной подсистемой ^осот-компьютера. Шина позволяет подключать, конфигурировать, использовать и отключать устройства во время работы хоста и самих устройств.

Шина USB является хост-центрической: единственным ведущим устройством, которое управляет обменом, является хост-компьютер, а все присоединенные к ней периферийные устройства — исключительно ведомые. Физическая топология шины USB — многоярусная звезда. Ее вершиной является хост-контроллер, объединенный с корневым хабом (root hub), как правило, двухпортовым. Хаб является устройством-разветвителем, он может являться и источником питания для подключенных к нему устройств. К каждому порту хаба может непосредственно подключаться периферийное устройство или промежуточный хаб; шина допускает до 5 уровней каскадирования хабов (не считая корневого). Поскольку комбинированные устройства внутри себя содержат хаб, их подключение к хабу 6-го яруса уже недопустимо. Каждый промежуточный хаб имеет несколько нисходящих (downstream) портов для подключения периферийных устройств (или нижележащих хабов) и один восходящий (upstream) порт для подключения к корневому хабу или нисходящему порту вышестоящего хаба. Логическая топология USB — просто звезда: для хост-контроллера хабы создают иллюзию непосредственного подключения каждого устройства. В отличие от шин расширения (ISA, PCI, PC Card), где программа взаимодействует с устройствами посредством обращений по физическим адресам ячеек памяти, портов ввода-вывода, прерываниям и каналам DMA, взаимодействие приложений с устройствами USB выполняется только через программный интерфейс. Этот интерфейс, обеспечивающий независимость обращений к устройствам, предоставляется системным ПО контроллера USB.

В отличие от громоздких дорогих шлейфов параллельных шин АТА и особенно шины SCSI с ее разнообразием разъемов и сложностью правил подключения, кабельное хозяйство USB простое и изящное. Кабель USB содержит одну экранированную витую пару с импедансом 90 Ом для сигнальных цепей и одну неэкранированную для подачи питания (+5 В), допустимая длина сегмента — до 5 м. Для низкой скорости может использоваться невитой неэкранированный кабель длиной до 3 м (он дешевле). Система кабелей и коннекторов USB не дает возможности ошибиться при подключении устройств (рис. 4.1, а и б). Для распознавания разъема USB на корпусе устройства ставится стандартное символическое обозначение (рис. 4.1, в). Гнезда типа «А» устанавливаются только на нисходящих портах хабов, вилки типа «А» — на шнурах периферийных устройств или восходя- щих портов хабов. Гнезда и вилки типа «В» используются только для шнуров, отсоединяемых от периферийных устройств и восходящих портов хабов (от «мелких» устройств — мышей, клавиатур и т. п. кабели, как правило, не отсоединяются). Кроме стандартных разъемов, показанных на рисунке 4.1, применяются и мини-атюрные варианты (рис. 4.2, в, г, д). Хабы и устройства обеспечивают возможность «горячего» подключения и отключения. Для этого разъемы обеспечивают более раннее соединение и позднее отсоединение питающих цепей по отношению к сигнальным, кроме того, предусмотрен протокол сигнализации подключения и отключения устройств. Назначение выводов разъемов USB приведено в табл. 4.1, нумерация контактов показана на рис. 4.2. Все кабели USB «прямые» — в них соединяются одноименные цепи разъемов.

В шине используется дифференциальный способ передачи сигналов D+ и D- по двум проводам. Скорость устройства, подключенного к конкретному порту, определяется хабом по уровням сигналов на линиях D+ и D-, смещаемых нагрузочными резисторами приемопередатчиков: устройства с низкой скоростью «подтягивают» к высокому уровню линию D-, с полной — D+. Подключение устройства HS определяется на этапе обмена конфигурационной информацией — физически на первое время устройство HS должно подключаться как FS. Передача по двум проводам в USB не ограничивается дифференциальными сигналами. Кроме дифференциального приемника, каждое устройство имеет линейные приемники сигналов D+ и D-, а передатчики этих линий управляются индивидуально. Это позволяет различать более двух состояний линии, используемых для организации аппаратного интерфейса.

Введение высокой скорости (480 Мбит/с — всего в 2 раза медленнее, чем Gigabit Ethernet) требует тщательного согласования приемопередатчиков и линии связи. На этой скорости может работать только кабель с экранированной витой парой для сигнальных линий. Для высокой скорости аппаратура USB должна иметь дополнительные специальные приемопередатчики. В отличие от формирователей потенциала для режимов FS и LS, передатчики HS являются источниками тока, ориентированными на наличие резисторов-терминаторов на обеих сигнальных линиях.

Скорость передачи данных (LS, FS или HS) выбирается разработчиком периферийного устройства в соответствии с потребностями этого устройства. Реализация низких скоростей для устройства обходится несколько дешевле (приемопередатчики проще, а кабель для LS может быть и неэкранированной невитой парой). Если в «старой» USB устройства можно было, не задумываясь, подключать в любой свободный порт любого хаба, то в USB 2.0 при наличии устройств и хабов разных версий появились возможности выбора между оптимальными, неоптимальными и неработоспособными конфигурациями.

Хабы USB 1.1 обязаны поддерживать скорости FS и LS, скорость подключенного к хабу устройства определяется автоматически по разности потенциалов сигнальных линий. Хабы USB 1.1 при передаче пакетов являются просто повторителями, обеспечивающими прозрачную связь периферийного устройства с контроллером. Передачи на низкой скорости довольно расточительно расходуют потенциальную пропускную способность шины: за то время, на которое они занимают шину, высокоскоростное устройство может передать данных в 8 раз больше. Но ради упрощения и удешевления всей системы на эти жертвы пошли, а за распределением полосы между разными устройствами следит планировщик транзакций хост-контроллера.

В спецификации 2.0 скорость 480 Мбит/с должна уживаться с прежними, но при таком соотношении скоростей обмены на FS и LS «съедят» возможную полосу пропускания шины без всякого «удовольствия» (для пользователя); Чтобы этого не происходило, хабы USB 2.0 приобретают черты коммутаторов пакетов. Если к порту такого хаба подключено высокоскоростное устройство (или аналогичный хаб), то хаб работает в режиме повторителя, и транзакция с устройством на HS занимает весь канал до хост-контроллера на все время своего выполнения. Если же к порту хаба USB 2.0 подключается устройство или хаб 1.1, то по части канала до контроллера пакет проходит на скорости HS, запоминается в буфере хаба, а к старому устройству или хабу идет уже на его «родной» скорости FS или LS. При этом функции контроллера и хаба 2.0 (включая и корневой) усложняются, поскольку транзакции на FS и LS расщепляются и между их частями вклиниваются высокоскоростные передачи. От старых (1.1) устройств и хабов все эти тонкости скрываются, что и обеспечивает обратную совместимость. Вполне понятно, что устройство USB 2.0 сможет реализовать высокую скорость, только если по пути от него к хост-контроллеру (тоже 2.0) будут встречаться только хабы 2.0. Если это правило нарушить и между ним и контроллером 2.0 окажется старый хаб, то связь может быть установлена только в режиме FS. Если такая скорость устройство и клиентское ПО устроит (к примеру, для принтера и сканера это выльется только в большее время ожидания пользователя), то подключенное устройство работать будет, но появится сообщение о неоптимальной конфигурации соединений. По возможности ее (конфигурацию) следует исправить, благо переключения кабелей USB можно выполнять на ходу. Устройства и ПО, критичные к полосе пропускания шины, в неправильной конфигурации работать откажутся и категорично потребуют переключении. Если же хост-контроллер старый, то все преимущества USB 2.0 окажутся недоступными пользователю. В этом случае придется менять хост-контроллер (менять системную плату или приобретать PCI-карту контроллера). Контроллер и хабы USB 2.0 позволяют повысить суммарную пропускную способность шины и для старых устройств. Если устройства FS подключать к разным портам хабов USB 2.0 (включая и корневой), то для них суммарная пропускная способность шины USB возрастет по сравнению с 12 Мбит/с во столько раз, сколько используется портов высокоскоростных хабов.

Хаб является ключевым элементом системы РпР в архитектуре USB. Хаб выполняет множество функций:

• обеспечивает физическое подключение устройств, формируя и воспринимая сигналы в соответствии со спецификацией шины на каждом из своих портов;

• управляет подачей питающего напряжения на нисходящие порты, причем предусматривается установка ограничения на ток, потребляемый каждым портом;

• отслеживает состояние подключенных к нему устройств, уведомляя хост об изменениях;

• обнаруживает ошибки на шине, выполняет процедуры восстановления и изолирует неисправные сегменты шины;

• обеспечивает связь сегментов шины, работающих на разных скоростях.

Хаб следит за сигналами, генерируемыми устройствами. Неисправное устройство может не вовремя «замолчать» (потерять активность) или, наоборот, что-то «бормотать» (babble). Эти ситуации отслеживает ближайший к устройству хаб и запрещает восходящие передачи от такого устройства не позже, чем по границе (мик-ро)кадра. Благодаря бдительности хабов эти ситуации не позволят неисправному устройству заблокировать всю шину.

Каждый из нисходящих (downstream) портов может быть разрешен или запрещен, а также сконфигурирован на высокую, полную или ограниченную скорость обмена. Хабы могут иметь световые индикаторы состояния нисходящих портов, управляемые автоматически (логикой хаба) или программно (хост-контроллером). Индикатор может представлять собой пару светодиодов — зеленый и желтый (янтарный) или один светодиод с изменяющимся цветом. Состояние порта представляется следующим образом:

• не светится — порт не используется;

• зеленый — нормальная работа;

• желтый — ошибка;

• зеленый мигающий — программа требует внимания пользователя (Software attention);

• желтый мигающий — аппаратура требует внимания пользователя (Hardware attention).

Восходящий (upstream) порт хаба конфигурируется и внешне представляется как полноскоростной или высокоскоростной (только для USB 2.0). При подключении порт хаба USB 2.0 обеспечивает терминацию по схеме FS, в режим HS он переводится только по команде контроллера.

На рис. 4.3 приведен вариант соединения устройств и хабов, где высокоскоростным устройством USB 2.0 является только телекамера, передающая видеопоток без компрессии. Подключение принтера и сканера USB 1.1 к отдельным портам хаба 2.0, да еще и развязка их с аудиоустройствами, позволяет им использовать полосу шины по 12 Мбит/с каждому. Таким образом, из общей полосы 480 Мбит/с на «старые» устройства (USB 1.0) выделяется 3х12=36 Мбит/с. Вообще-то можно говорить и о полосе в 48 Мбит/с, поскольку клавиатура и мышь подключены к отдельному порту хост-контроллера USB 2.0, но эти устройства «освоят» только малую толику из выделенных им 12 Мбит/с. Конечно, можно подключать клавиатуру и мышь к порту внешнего хаба, но с точки зрения повышения надежности системные устройства ввода лучше подключать наиболее коротким (по количеству кабелей, разъемов и промежуточных устройств) способом. Неудачной конфигурацией было бы подключение принтера (сканера) к хабу USB 1.1 — во время работы с аудиоустройствами (если они высокого качества) скорость печати (сканирования) будет падать. Неработоспособной конфигурацией явилось бы подключение телекамеры к порту хаба USB 1.1.

При планировании соединений следует учитывать способ питания устройств: устройства, питающиеся от шины, как правило, подключают к хабам, питающимся от сети. К хабам, питающимся от шины, подключают лишь маломощные устройства — так, к клавиатуре USB, содержащей внутри себя хаб, подключают мышь USB и другие устройства-указатели (трекбол, планшет).

Управление энергопотреблением является весьма развитой функцией USB. Для устройств, питающихся от шины, мощность ограничена. Любое устройство при подключении не должно потреблять от шины ток, превышающий 100 мА. Рабочий ток (не более 500 мА) заявляется в конфигурации. Если хаб не может обеспечить устройству заявленный ток, оно не конфигурируется и, следовательно, не может быть использовано.

Устройство USB должно поддерживать режим приостановки (suspended mode), в котором его потребляемый ток не превышает 500 мкА. Устройство должно автоматически приостанавливаться при прекращении активности шины.

Возможность удаленного пробуждения (remote wakeup) позволяет приостановленному устройству подать сигнал хост-компьютеру, который тоже может находиться в приостановленном состоянии. Возможность удаленного пробуждения описывается в конфигурации устройства. При конфигурировании эта функция может быть запрещена.

4.1.2. Модель передачи данных

Каждое устройство на шине USB (их может быть до 127) при подключении автоматически получает свой уникальный адрес. Логически устройство представляет собой набор независимых конечных точек (endpoint, EP), с которыми хост-контроллер (и клиентское ПО) обменивается информацией. Каждая конечная точка имеет свой номер и описывается следующими параметрами:

• требуемая частота доступа к шине и допустимые задержки обслуживания;

• требуемая полоса пропускания канала;

• требования к обработке ошибок;

• максимальные размеры передаваемых и принимаемых пакетов;

• тип передачи;

• направление передачи (для передач массивов и изохронного обмена). Каждое устройство обязательно имеет конечную точку с номером 0, используемую для инициализации, общего управления и опроса состояния устройства. Эта точка всегда сконфигурирована при включении питания и подключении устройства к шине. Она поддерживает передачи типа «управление» (см. ниже).

Кроме нулевой точки, устройства-функции могут иметь дополнительные точки, реализующие полезный обмен данными. Низкоскоростные устройства могут иметь до двух дополнительных точек, полноскоростные — до 15 точек ввода и 15 точек вывода (протокольное ограничение). Дополнительные точки (а именно они и предоставляют полезные для пользователя функции) не могут быть использованы до их конфигурирования (установления согласованного с ними канала).

Каналом (pipe) в USB называется модель передачи данных между хост-контроллером и конечной точкой устройства. Имеются два типа каналов: потоки и сообщения. Поток (stream) доставляет данные от одного конца канала к другому, он всегда однонаправленный. Один и тот же номер конечной точки может использоваться для двух поточных каналов — ввода и вывода. Поток может реализовывать следующие типы обмена: передача массивов, изохронный и прерывания. Сообщение (message) имеет формат, определенный спецификацией USB. Хост посылает запрос к конечной точке, после которого передается (принимается) пакет сообщения, за которым следует пакет с информацией состояния конечной точки. Последующее сообщение нормально не может быть послано до обработки предыдущего, но при отработке ошибок возможен сброс необслуженных сообщений. Двусторонний обмен сообщениями адресуется к одной и той же конечной точке.

С каналами связаны характеристики, соответствующие конечной точке (полоса пропускания, тип сервиса, размер буфера и т. п.). Каналы организуются при конфигурировании устройств USB. Для каждого включенного устройства существует канал сообщений (Control Pipe 0), по которому передается информация конфигурирования, управления и состояния.

4.1.3. Протокол

Все обмены (транзакции) с устройствами USB состоят из двух-трех пакетов. Каждая транзакция планируется и начинается по инициативе контроллера, который посылает пакет-маркер (token packet). Он описывает тип и направление передачи, адрес устройства USB и номер конечной точки. В каждой транзакции возможен обмен только между адресуемым устройством (его конечной точкой) и хостом. Адресуемое маркером устройство распознает свой адрес и готовится к обмену. Источник данных (определенный маркером) передает пакет данных (или уведомление об отсутствии данных, предназначенных для передачи). После успешного приема пакета приемник данных посылает пакет квитирования (handshake packet). Последовательность пакетов в транзакциях иллюстрирует рис. 4.4.

Хост-контроллер организует обмены с устройствами согласно своему плану распределения ресурсов. Контроллер циклически (с периодом 1,0±0,0005 мс) формирует кадры (frames), в которые укладываются все запланированные транзакции (рис. 4.5). Каждый кадр начинается с посылки маркера SOF (Start Of Frame),

который является синхронизирующим сигналом для всех устройств, включая хабы. В конце каждого кадра выделяется интервал времени EOF (End Of Frame), на время которого хабы запрещают передачу по направлению к контроллеру. В режиме HS пакеты SOF передаются в начале каждого микрокадра (период 125±0,0625 мкс). Хост планирует загрузку кадров так, чтобы в них всегда находилось место для транзакций управления и прерываний. Свободное время кадров может заполняться передачами массивов (bulk transfers). В каждом (микро)кадре может быть выполнено несколько транзакций, их допустимое число зависит от длины поля данных каждой из них.

Для обнаружения ошибок передачи каждый пакет имеет контрольные поля CRC-кодов, позволяющие обнаруживать все одиночные и двойные битовые ошибки. Аппаратные средства обнаруживают ошибки передачи, а контроллер автоматически производит трехкратную попытку передачи. Если повторы безуспешны, сообщение об ошибке передается клиентскому ПО.

Все подробности организации транзакций от клиентского ПО изолируются контроллером USB и его системным программным обеспечением.

4.1.4. Типы передач данных

Архитектура USB допускает четыре базовых типа передачи данных.

Управляющие посылки (control transfers) используются для конфигурирования устройств во время их подключения и для управления устройствами в процессе работы. Протокол обеспечивает гарантированную доставку данных.

Передачи массивов данных (bulk data transfers) — это передачи без каких-либо обязательств по задержке доставки и скорости передачи. Передачи массивов могут занимать всю полосу пропускания шины, свободную от передач других  ипов. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке шины. Доставка гарантированная — при случайной ошибке выполняется повтор. Передачи массивов уместны для обмена данными с принтерами, сканерами, устройствами хранения и т. п.

Прерывания (interrupt) — короткие передачи, которые имеют спонтанный характер и должны обслуживаться не медленнее, чем того требует устройство. Предел времени обслуживания устанавливается в диапазоне 10-255 мс для низкой, 1-255 мс для полной скорости, на высокой скорости можно заказать и 125 мкс. При случайных ошибках обмена выполняется повтор. Прерывания используются, например, при вводе символов с клавиатуры или для передачи сообщения о перемещении мыши.

Изохронные передачи (isochronous transfers) — непрерывные передачи в реальном времени, занимающие предварительно согласованную часть пропускной способности шины с гарантированным временем задержки доставки. Позволяют на полной скорости организовать канал с полосой 1,023 Мбайт/с (или два по 0,5 Мбайт/с), заняв 70 % доступной полосы (остаток можно заполнить и менее емкими каналами). На высокой скорости конечная точка может получить канал до 24 Мбайт/с (192 Мбит/с). В случае обнаружения ошибки изохронные данные не повторяются — недействительные пакеты игнорируются. Изохронные передачи нужны для потоковых устройств: видеокамер, цифровых аудиоустройств (колонки USB, микрофон), устройств воспроизведения и записи аудио- и видеоданных (CD и DVD). Видеопоток (без компрессии) шина USB способна передавать только на высокой скорости.

Полоса пропускания шины делится между всеми установленными каналами. Выделенная полоса закрепляется за каналом, и, если установление нового канала требует такой полосы, которая не вписывается в уже существующее распределение, запрос на выделение канала отвергается.

Архитектура USB предусматривает внутреннюю буферизацию всех устройств, причем чем большей полосы пропускания требует устройство, тем больше должен быть его буфер. Шина USB должна обеспечивать обмен с такой скоростью, чтобы задерж^данных в устройстве, вызванная буферизацией, не превышала нескольких миллисекунд.

4.1.5. Синхронизация при изохронной передаче

Изохронная передача данных связана с синхронизацией устройств, объединяемых в единую систему. Возьмем пример использования USB, когда к компьютеру подключен микрофон USB (источник данных) и колонки USB (приемник данных), и эти аудиоустройства связаны между собой через программный микшер (клиентское ПО). Каждый из этих компонентов может иметь собственные «понятия» о времени и синхронизации: микрофон, к примеру, может иметь частоту выборки 8 кГц и разрядность данных 1 байт (поток 64 Кбит/с), стереоколонки — 44,1 кГц и разрядность 2х2 байта (176,4 Кбит/с), а микшер может работать на частоте выборок 32 кГц. Микшер в этой системе является связующим звеном, и его

 

источник синхронизации будем считать главным (master clock). Программный микшер обрабатывает данные пакетами, сеансы обработки выполняются регулярно с определенным периодом обслуживания (скажем, в 20 мс — частота 50 Гц). В микшере должны быть модули согласования частот выборки, которые объединяют несколько выборок в одну, если входная частота выше выходной, или «сочиняют» (интерполируют) новые промежуточные выборки, если выходная частота выше. В системе с USB приходится иметь дело со следующими частотами:

• частота выборки (sample rate) для источников (source) и приемников (sink) данных;

• частота шины USB — частота кадров (1 кГц) для полной скорости и микрокадров (8 кГц) для высокой (с этой частотой все устройства USB «видят» маркеры начала (микро)кадров SOF);

• частота обслуживания — частота, с которой клиентское ПО обращается к драйверам USB для передачи и приема изохронных данных.

В системе без общего источника синхронизации между парами синхросигналов возможны отклонения следующих типов:

• дрейф (drift) — отклонения формально одинаковых частот от номиналов (не бывает двух абсолютно одинаковых генераторов);

• дрожание (jitter) — колебание частот относительно номинала;

• фазовый сдвиг, если сигналы не связаны системой фазовой автоподстройки ФАПЧ (PLL).

В цифровой системе передачи данных эти отклонения выливаются в то, что у источника или приемника данных может образовываться излишек или недостаток данных, колеблющийся или прогрессирующий во времени. В USB по способу синхронизации конечных точек (источников или получателей данных) с систе- . мой различают асинхронный, синхронный и адаптивный классы устройств (точнее, конечных точек), каждому из которых соответствует свой тип канала USB.

Асинхронные устройства не имеют возможности согласования своей частоты выборок с метками SOF или иными частотами системы USB. Частота передачи данных у них фиксированная или программируемая. Число байт данных, принимаемых за каждый (микро)кадр USB, не является постоянным. Источник данных неявно сообщает свою скорость передачи данных числом выборок, генерируемых им за один (микро)кадр (клиентское ПО будет обрабатывать столько данных, сколько реально поступило). Приемник данных должен обеспечивать обратную связь для адаптивного драйвера клиентского ПО, чтобы согласовать темп выдачи потока (см. ниже). Примерами асинхронного устройства-источника может быть CD-плейер с синхронизацией от кварцевого генератора или приемник спутникового телевещания. Пример приемника — дешевые колонки, работающие от внутреннего источника синхронизации.

Синхронные устройства имеют внутренний генератор, синхронизируемый с метками 50F (системная частота 1 кГц); на высокой частоте передачи более точную синхронизацию обеспечивает связь с микрокадрами. Источники и приемники за каждый (микро)кадр генерируют (потребляют) одинаковое количество байт данных, которое устанавливается на этапе программирования каналов. Примером синхронного источника может быть цифровой микрофон с частотой выборки, синтезируемой по S OF.

Адаптивные устройства имеют возможность подстройки своей внутренней частоты под требуемый поток данных (в определенных границах). Адаптивный источник позволяет менять скорость под управлением приемника, обеспечивающего обратную связь. Для адаптивного приемника информацию о частоте задает входной поток данных. Он определяет мгновенное значение частоты по количеству данных, принятых за некоторый интервал усреднения. Примером адаптивного источника является CD-плейер со встроенным согласователем частоты SRC (sample rate converter) приемника — высококачественные колонки или наушники USB.

Обратная связь позволяет согласовать значения частот устройств с частотой шины. Асинхронный приемник должен явным образом сообщать хост-контроллеру желаемую частоту передачи данных относительно частоты (микро)кадров. Это позволит хост-контроллеру постоянно корректировать число передаваемых байт за каждый (микро)кадр, не допуская переполнения или опустошения буфера устройства-приемника. Адаптивный передатчик должен воспринимать информацию обратной связи, чтобы за каждый (микро)кадр генерировать ровно столько данных, сколько требуется хост-контроллеру. Для обратной связи в устройстве выделяется специальная конечная точка, через которую периодически передается информация о текущем значении желаемой относительной частоты.

В принципе контроллер USB может подстраивать частоту кадров, но, естественно, под частоту внутренней синхронизации только одного устройства. Подстройка осуществляется через механизм обратной связи, который позволяет изменять период кадра в пределах ±1 битового интервала.

4.1.6. Хост

У каждой шины USB должен быть один (и только один!) хост — компьютер с контроллером USB. Хост делится натри основных уровня.

Интерфейс шины USB обеспечивает физический интерфейс и протокол шины. Интерфейс шины реализуется хост-контроллером, имеющим встроенный корневой хаб, обеспечивающий точки физического подключения к шине (гнезда USB типа «А»). Хост-контроллер отвечает за генерацию (микро)кадров. На аппаратном уровне хост-контроллер обменивается информацией с основной памятью компьютера, используя прямое управление шиной (bus-mastering) с целью минимизации нагрузки на центральный процессор.

Система USB, используя хост-контроллер(ы), транслирует клиентское «видение» обмена данными с устройствами в транзакции, выполняемые с реальными устройствами шины. Система отвечает и за распределение ресурсов USB — полосы пропускания и мощности источников питания (для устройств, питающихся от шины). Система состоит из трех основных частей:

Драйвер хост-контроллерз. — HCD (Host Controller Driver) — модуль, привязанный к конкретной модели контроллера, обеспечивающий абстрагирование драйвера USB и позволяющий в одну систему включатьГнесколько разнотипных контроллеров.

Драйвер USB — USBD (USB Driver) — обеспечивает основной интерфейс (USBDI) между клиентами и устройствами USB. Интерфейс HCDI (Host Controller Driver Interface) между USBD и HCD спецификацией USB не регламентируется. Он определяется разработчиками ОС и должен поддерживаться разработчиками хост-контроллеров, желающих иметь поддержку своих изделий конкретными ОС.'Клиенты не могут пользоваться интерфейсом HCDI; для них предназначен интерфейс USBDI. USBD обеспечивает механизм обмена в виде пакетов IRP (I/O Request Packet — пакет запроса •• ввода-вывода), состоящих из запросов на транспортировку данных по заданному каналу. Кроме того, USBD отвечает за некоторое абстрактное представление устройства USB клиенту, которое позволяет выполнять конфигурирование и управление состоянием устройств (включая и стандартное управление через конечную точку «О»). Реализация интерфейса USBDI определяется операционной системой; в спецификации USB излагаются только общие идеи.

Программное обеспечение хоста реализует функции, необходимые для функционирования системы USB в целом: обнаружение подключения и отключения устройств и выполнение соответствующих действий по этим событиям (загрузки требуемых драйверов), нумерацию устройств, распределение полосы пропускания и потребляемой мощности и т. п.

Клиенты USB программные элементы (приложения или системные компоненты), взаимодействующие с устройствами USB. Клиенты могут взаимодействовать с любыми устройствами (их конечными точками), подключенными к системе USB. Однако система USB изолирует клиентов от непосредственного обмена с какими-либо портами (в пространстве ввода-вывода) или ячейками памяти, представляющими интерфейсную часть контроллера USB.

В совокупности уровни хоста имеют следующие возможности:

• обнаружение подключения и отсоединения устройств USB;

• манипулирование потоками управления между устройствами и хостом;

• манипулирование потоками данных;

• сбор статистики активности и состояний устройств;

• управление электрическим интерфейсом между хост-контроллером и устройствами USB, включая управление электропитанием.

Хост-контроллер является аппаратным посредником между устройствами USB и хостом. Программная часть хоста в полном объеме реализуется операционной системой. До загрузки ОС может функционировать лишь усеченная часть 11U USB, поддерживающая только устройства, требующиеся для загрузки. Так, в BIOS современных системных плат имеется поддержка клавиатуры USB, реализующая функции сервиса Int 10h. При загрузке системы USB эта «дозагрузочная» поддержка игнорируется — система начинает работу с контроллером «с чистого листа», то есть со сброса и определения всех подключенных устройств. По окончании работы ОС передача состояния USB «дозагрузочной» поддержке не предусматривается, так что для нее это событие тоже может рассматриваться как первоначальное включение. В спецификации PC'2001 выдвигается требование к BIOS поддержки USB в такой мере, чтобы обеспечивалась загрузка ОС с устройств USB.

USB поддерживает динамическое подключение и отключение устройств. Нумерация (перенумерация) устройств шины идет постоянно, отслеживая изменения физической топологии.

Все устройства подключаются через порты хабов. Хабы определяют подключение и отключение устройств к своим портам и сообщают состояние портов при запросе от контроллера. Хост разрешает работу порта и адресуется к устройству через канал управления, используя нулевой адрес — USB Default Address. При начальном подключении или после сброса все устройства адресуются именно так.

Хост определяет, является новое подключенное устройство хабом или функцией, и назначает ему уникальный адрес USB. Хост создает канал управления (control pipe) с этим устройством, используя назначенный адрес и нулевой номер точки назначения.

Если новое устройство является хабом, хост определяет подключенные к нему устройства, назначает им адреса и устанавливает каналы. Если новое устройство является функцией, уведомление о подключении передается диспетчером USB заинтересованному ПО.

Когда устройство отключается, хаб автоматически запрещает соответствующий порт и сообщает об отключении контроллеру, который удаляет сведения о данном устройстве из всех структур данных. Если отключается хаб, процесс удаления выполняется для всех подключенных к нему устройств. Если отключается функция, уведомление посылается заинтересованному ПО.

4.1.7. Применение шины USB

Благодаря своей универсальности и способности эффективно передавать разнородный трафик, шина USB применяется для подключения к PC самых разнообразных устройств. Она призвана заменить традиционные порты PC — СОМ и LPT, а также порты игрового адаптера и интерфейса MIDI. Спецификация USB 2.0 позволяет говорить и о подключении традиционных «клиентов» шин АТА и SCSI, а также захвате части ниши применения шины FireWire. Привлекательность USB придает возможность подключения/отключения устройств на ходу и возможность их использования практически сразу, без перезагрузки ОС. Удобна и возможность подключения большого количества (до 127) устройств к одной шине, правда, при наличии хабов. Хост-контроллер интегрирован в большинство современных сис- темных плат. Выпускаются и карты расширения с контроллерами USB (обычно для шины PCI). Однако повсеместное применение USB сдерживается недостаточной активностью разработчиков ПО (производителей оборудования): просматривая перечни устройств, мы видим, что для всех указывается поддержка в Windows 98/SE/ME, а вот в графах Linux, MacOS, Unix и даже Windows 2000 часто стоят неприятные пометки N/A (Not Allowed — «не дозволено»).

Для того чтобы система USB заработала, необходимо, чтобы были загружены драйверы хост-контроллера (или контроллеров, если их несколько). При подключении устройства к шине USB ОС Windows выдает сообщение «Обнаружено новое устройство» и, если устройство подключается впервые, предлагает загрузить для него драйверы. Многие модели устройств уже известны системе, и драйверы входят в дистрибутив ОС. Однако может потребоваться и драйвер изготовителя устройства, который должен входить в комплект поставки устройства, или его придется искать в Сети. К сожалению, не все драйверы работают корректно — «сырой» драйвер начальной версии, возможно, потребуется заменить более «правильным», чтобы устройство нормально опознавалось и хорошо работало. Но это общее горе пользователей любых устройств, а не только устройств для шины USB.

Перечислим основные области применения USB.

Устройства ввода — клавиатуры, мыши, трекболы, планшетные указатели и т. п. Здесь USB предоставляет для различных устройств единый интерфейс. Целесообразность использования USB для клавиатуры неочевидна, хотя в паре с мышью USB (подключаемой к порту хаба, встроенного в клавиатуру) сокращается количество кабелей, тянущихся о^гсистемного блока на стол пользователя.

Принтеры. USB 1.1 обеспечивает примерно ту же скорость, что и LPT-порт в режиме ЕСР, но при использовании USB не возникает проблем с длиной кабеля и подключением нескольких принтеров к одному компьютеру (правда, требуются хабы). USB 2.0 позволит ускорить печать в режиме высокого разрешения за счет сокращения времени на передачу больших массивов данных. Однако есть проблема со старым ПО, которое непосредственно работает с LPT-портом на уровне регистров, — на принтер USB оно печатать не сможет.

Сканеры. Применение USB позволяет отказаться от контроллеров SCSI или от занятия LPT-порта. USB 2.0 при этом позволит еще и повысить скорость передачи данных.

Аудиоустройства — колонки, микрофоны, головные телефоны (наушники). USB позволяет передавать потоки аудиоданных, достаточные для обеспечения самого высокого качества. Передача в цифровом виде от самого источника сигнала (микрофона со встроенным преобразователем и адаптером) до приемника и цифровая обработка в хост-компьютере позволяют избавиться от наводок, свойственных аналоговой передачи аудиосигналов. Использование этих аудио-компонентов позволяет в ряде случаев избавиться от звуковой карты компьютера — аудиокодек (АЦП и ЦАП) выводится за пределы компьютера, а все функции обработки сигналов (микшер, эквалайзер) реализуются центральным процессором чисто программно. Аудиоустройства могут и не иметь собственно колонок и микрофона, а ограничиться преобразователями и стандартными гнездами («Джеками») для подключения обычных аналоговых устройств. Музыкальные синтезаторы и MIDI-контроллеры с интерфейсом USB. Шина USB позволяет компьютеру обрабатывать потоки множества каналов MIDI (пропускная способность традиционного интерфейса MIDI уже гораздо ниже возможностей компьютера).

Видео- и фотокамеры. USB 1.1 позволяет передавать статические изображения любого разрешения за приемлемое время, а также передавать поток видеоданных (живое видео) с достаточной частотой кадров (25-30 Кбит/с) только с невысоким разрешением или сжатием данных, от которого, естественно, страдает качество изображения. USB 2.0 позволяет передавать поток видеоданных высокого разрешения без сжатия (и потери качества). С интерфейсом USB выпускают как камеры, так и устройства захвата изображения с телевизионного сигнала и TV-тюнеры.

Коммуникации. С интерфейсом USB выпускают разнообразные модемы, включая кабельные и xDSL, адаптеры высокоскоростной инфракрасной связи (IrDA FIR) — шина позволяет преодолеть предел скорости СОМ-порта (115,2 Кбит/с), не повышая загрузку центрального процессора. Выпускаются и сетевые адаптеры Ethernet, подключаемые к компьютеру по USB. Для соединения нескольких компьютеров в локальную сеть выпускаются специальные устройства, выполняющие коммутацию пакетов между компьютерами. Непосредственно (без дополнительных устройств) портами USB соединить между собой даже два компьютера нельзя — на одной шине может присутствовать лишь один хост-контроллер (см. выше). Специальное устройство для связи пары компьютеров выглядит как «таблетка», врезанная в кабель USB с двумя вилками типа «А» на концах. Объединение более двух компьютеров осложняется и топологическими ограничениями USB: длина одного сегмента кабеля не должна превышать 5 м, а использовать хабы для увеличения дальности неэффективно (каждый хаб дает всего 5 м дополнительного удаления).

Преобразователи интерфейсов позволяют через порт USB, имеющийся теперь практически на всех компьютерах, подключать устройства с самыми разнообразными интерфейсами: Centronics и IEEE 1284 (LPT-порты), RS-232C (эмуляция UART 16550A — основы СОМ-портов) и другие последовательные интерфейсы (RS-422, RS-485, V.35...), эмуляторы портов клавиатуры и даже Game-порта, переходники на шину АТА, ISA, PC Card и любые другие, для которых достаточно производительности. Здесь USB становится палочкой-выручалочкой, когда встает проблема 2-го (3-го) LPT- или СОМ-порта в блокнотном ПК и в других ситуациях. При этом ПО преобразователя может обеспечить эмуляцию классического варианта «железа» стандартных портов IBM PC, но только под управлением ОС защищенного режима. Приложение MS-DOS может обращаться к устройствам по адресам ввода-вывода, памяти, прерываниями, каналами DMA, но только из сеанса MS-DOS, открытого в ОС с поддержкой USB (чаще это Windows). При загрузке «голой» MS-DOS «палочка-выручалочка» не работает. Преобразователи интерфейсов позволяют продлить жизнь устройствам с традиционными интерфейсами, изживаемыми из PC спецификациями PC'99 и PC'2001. Скорость передачи данных через конвертер USB — LPT может оказаться даже выше, чем у реального LPT-порта, работающего в режиме SPP. • Устройства хранения — винчестеры, устройства чтения и записи CD и DVD, стриммеры — при использовании USB 1.1 получают скорость передачи, соизмеримую со скоростью их подключения к LPT, но более удобный интерфейс (как аппаратный, так и программный). При переходе на USB 2.0 скорость передачи данных становится соизмеримой с АТА и SCSI, а ограничений по количеству устройств достичь трудно. Особенно интересно использование USB для электронных устройств энергонезависимого хранения (на флэш-памяти) — такой накопитель может быть весьма компактным (размером с брелок для ключей) и емким (пока 16-256 Мбайт, в перспективах — гигабайт и более). Выпускаются устройства для мобильного подключения накопителей с интерфейсом АТА-ATAPI — по сути, это лишь преобразователи интерфейсов, помещенные в коробку-отсек формата 5" или 3,5", а иногда выполненные прямо в корпусе 36-контактного разъема АТА. Имеются и устройства чтения-записи карт SmartMedia Card и CompactFlash Card.

Игровые устройства — джойстики всех видов (от «палочек» до автомобильных рулей), пульты с разнообразными датчиками (непрерывными и дискретными) и исполнительными механизмами (почему бы не сделать кресло автогонщика с вибраторами и качалками?) — подключаются унифицированным способом. При этом исключается ресурсопожирающий интерфейс старого игрового адаптера (упраздненного уже в спецификации PC'99).

Телефоны — аналоговые и цифровые (ISDN). Подключение телефонного аппарата позволяет превратить компьютер в секретаря с функциями автодозвона, автоответчика, охраны и т. п.

Мониторы — здесь шина USB используется для управления параметрами монитора. Монитор сообщает системе свой тип и возможности (параметры синхронизации) — это делалось и без USB по шине DDC. Однако USB-мониторы позволяют системе еще и управлять ими — регулировки яркости, контраста, цветовой температуры и т. п. могут теперь выполняться программно, а не только от кнопок лицевой панели монитора. В мониторы, как правило, встраивают хабы. Это удобно, поскольку настольную периферию не всегда удобно включать в «подстольный» системный блок.

Электронные ключи — устройства с любым уровнем интеллектуальности защиты — могут быть выполнены в корпусе вилок USB. Они гораздо компактнее и мобильнее аналогичных устройств для СОМ- и LPT-портов.

Конечно же, перечисленными классами устройств сфера применения шины USB не ограничивается.

Хабы USB выпускаются как в виде отдельных устройств, так и встраиваются в периферийные устройства (клавиатуры, мониторы). Как правило, хабы питаются от сети переменного тока (они должны питать подключаемые устройства). Выпускают и хабы, устанавливаемые внутрь системного блока компьютера и питающиеся от его блока питания. Такие хабы дешевле внешних и не требуют дополнительной питающей розетки. Один из вариантов исполнения — установка хаба на скобку, монтируемую в окно для дополнительных разъемов. Доступ к их разъемам со «спины» системного блока не очень удобен для пользователей. Другой вариант — хаб, устанавливаемый в 3"-отсек. Его разъемы легкодоступны, индикаторы состояния портов хорошо видны, но не всегда удобны кабели, выходящие с передней панели системного блока. С другой стороны, для подключения электронных ключей (если их приходится часто менять) или миниатюрных накопителей этот вариант — самый удобный.

Недавно появились и новые вспомогательные устройства, увеличивающие дальность связи (distance extender). Это пара устройств, соединяемых между собой обычным кабелем «витая пара» (или оптоволокном), включаемая между периферийным устройством и хабом. «Удлинитель» со стороны периферии может иметь и хаб на несколько портов. К сожалению, увеличение дистанции упирается в ограничения на время задержки сигнала, свойственные протоколу шины USB, и достижимо лишь удаление до 100 м. Но даже и эта длина позволяет расширить сферу применения USB, например для удаленного видеонаблюдения.

4.1.8. Разработка собственных устройств 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.netohip. corn, www.motorola.com.www.serniconductor.philips. corn, www.natsemi.com, www.intel.com, www.ftdichip.com, www.gigatechnology.com). Немаловажная часть разработки собственных устройств — программное обеспечение для хост-компьютера, которое доносит до пользователя всю пользу устройства. В ряде случаев удается воспользоваться готовыми драйверами (например, драйвером виртуального СОМ-порта для преобразователя интерфейса). В других случаях ПО приходится писать самостоятельно, и хорошо, когда изготовитель микросхем с USB заботится о предоставлении инструментальных средств разработки всех частей ПО.

4.2. Шина 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 расширяет технологию РпР. Система допускает динамическое (горячее) подключение и отключение устройств. Устройства автоматически распознаются и конфигурируются при включении/ отключении. Питание от шины (ток до 1,5 А) позволяет подключенным устройствам общаться с системой даже при отключении их питания. Управлять шиной и другими устройствами могут не только PC, но и другие «интеллектуальные» устройства бытовой электроники.

FireWire по инициативе VESA позиционируется как шина «домашней сети», объединяющей всю бытовую и компьютерную техни1су в единый комплекс. Эта сеть является одноранговой (peer-to-peer), чем существенно отличается от USB.

4.2.1. Физический уровень сети

Кабельная сеть 1394 собирается по простым правилам — все устройства соединяются друг с другом кабелями по любой топологии (древовидной, цепочечной, звездообразной). Каждое «полноразмерное» устройство (узел сети) обычно имеет три равноправных соединительных разъема. Некоторые малогабаритные устройства могут иметь только один разъем, что ограничивает возможные варианты их местоположения. Стандарт допускает и до 27 разъемов на одном устройстве, которое будет играть роль кабельного концентратора. Допускается множество вариантов подключения устройств, но со следующими ограничениями:

• между любой парой узлов может быть не более 16 кабельных сегментов;

• длина сегмента стандартного кабеля не должна превышать 4,5 м;

• суммарная длина кабеля не должна превышать 72 м (применение более качественного кабеля позволяет ослабить влияние этого ограничения);

• топология не должна иметь петель, хотя в последующих ревизиях предполагается автоматическое исключение петель в «патологических» конфигурациях.

Стандартный кабель 1394 содержит 6-проводов, заключенных в общий экран, и имеет однотипные 6-контактные разъемы на концах (рис. 4.6, о). Две витые пары используются для передачи сигналов (ТРА и ТРВ) раздельно для приемника и передатчика, два провода задействованы для питания устройств (8-40 В, до 1,5 А). В стандарте предусмотрена гальваническая развязка устройств, для чего используются трансформаторы (напряжение изоляции развязки до 500 В) или конденсаторы (в дешевых устройствах с напряжением развязки до 60 В относительно общего провода). Некоторые бытовые устройства имеют только один 4-контактный разъем меньшего размера (рис. 4.6, б), у которого реализованы только сигнальные цепи. Эти устройства подключаются к шине через специальный переходной кабель только как оконечные (хотя возможно применение специальных адапте-ров-разветвителей). В кабелях FireWire сигнальные пары соединяются перекрест-но (табл. 4.2), поскольку все порты равноправны.

В грядущей версии, которая пока называется Р1394Ь, предусматриваются и новые варианты среды передачи:

• кабель UTP категории 5 со стандартными коннекторами RJ-45 (используются две пары проводов), длина сегмента до 100 м — дешевый вариант для S100;

• пластиковое оптоволокно (два волокна POF для небольших расстояний и HPCF для больших дистанций) — дешевый вариант для S200;

• многомодовое оптоволокно (два волокна 50 мкм) — более дорогой вариант для будущих скоростей вплоть до S3200.

Каждое устройство, имеющее более одного разъема 1394, является повторителем. Сигнал, обнаруженный на входе приемника с любого разъема, ресинхронизиру-ется по внутреннему тактовому генератору и выводится на передатчики всех остальных разъемов. Таким образом осуществляется доставка сигналов от каждого устройства ко всем остальным и предотвращается накопление «дрожания» (jitter) сигнала, ведущее к потере синхронизации.

Стандарт 1394 определяет две категории шин: кабельные шины и кросс-шины (Backplane). Под кросс-шинами подразумеваются обычно параллельные интерфейсы, объединяющие внутренние подсистемы устройства, подключенного к кабелю 1394. Сеть может состоять из множества шин, соединенных мостами — специальными устройствами, осуществляющими передачу пакетов между шинами, фильтрацию трафика, а для соединения разнородных шин еще и необходимые преобразования интерфейсов. Интерфейсная карта шины FireWire^ra PC представляет собой мост PCI —1394. Мостами являются также соединения кабельной шины 1394 с кросс-шинами периферийных устройств. Мосты могут соединять и кабельные шины, что расширяет топологические возможности соединения устройств. 4.2.2. Протокол 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) вырабатывает и принимает сигналы шины. Он обеспечивает инициализацию и арбитраж, предполагая, что в любой момент времени работает только один передатчик. Уровень передает потоки данных и уровни сигналов последовательной шины вышестоящему уровню. Между этими уровнями возможна гальваническая развязка, при которой микросхемы физического уровня питаются от шины. Гальваническая развязка необходима для предотвращения паразитных контуров общего провода, которые могут появиться через провода защитного заземления блоков питания.

Аппаратная часть FireWire обычно состоит из двух специализированных микросхем — трансиверов физического уровня PHY Transceiver и моста связи с шиной LINK Chip. Связь между ними возможна, например, по интерфейсу IBM-Apple LINK-PHY. Микросхемы уровня связи выполняют все функции своего уровня и часть функций уровня транзакций; остальная часть уровня транзакций выполняется программно.

Для передачи асинхронных сообщений используется 64-битная адресация регистров устройств 1394. В адресе выделяется 16 бит для адресации узлов сети: 6-битное поле идентификатора узла допускает до 63 устройств в каждой шине; 10-битное поле идентификатора шины допускает использование в системе до 1023 шин разного типа (включая внутренние), соединенных мостами. Протокол шины позволяет обращаться к памяти (регистрам) устройств в режиме DMA. В адресном пространстве каждого устройства имеются конфигурационные регистры, в которых содержится вся информация, необходимая для взаимодействия с ним других устройств. Данные передаются пакетами, в начале каждого пакета передаются биты состояния арбитража. Устройство может передавать данные только после успешного прохождения арбитража. Имеются два основных типа передач данных — изохронный, ради которого и строилась шина, и асинхронный. Изохронные передачи обеспечивают гарантированную полосу пропускания и время задержки, асинхронные передачи обеспечивают гарантированную доставку.

Асинхронные сообщения передаются между двумя устройствами. Инициатор посылает запрос требуемому устройству, на который оно сразу (через короткий интервал зазора, в котором шина находится в покое) отвечает подтверждением приема, положительным (АСК) или отрицательным (NACK), если обнаружена ошибка данных. Содержательный ответ на запрос (если требуется) будет передан обратно аналогичным способом (получатель должен послать подтверждение). Если подтверждение АСК не получено, передачи будут повторяться несколько раз до достижения успеха или фиксации ошибки.

Изохронные передачи ведутся широковещательно. В сети может быть организовано до 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), допускает использование нескольких частот в одной шине, в соответствии с возможностями конкретной пары устройств, участвующих в обмене. Иначе при подключении устройств, рассчитанных на разные скорости, все передачи будут происходить на скорости, доступной для всех активных устройств.

4.2.3. Устройства и адаптеры 1394

В РС-совместимом компьютере (в отличие от 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. 4.2.4. Использование 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, например АНА-8940 фирмы Adaptec, может устанавливаться в любой PC (или Мае), имеющий свободный слот PCI. Для редактирования видео хватает мощности рядового современного ПК (минимальные требования — Pentium 133,32 Мбайт ОЗУ, 256 кбайт кэш, желательно быстрый SCSI-диск).

Поддержка 1394 имеется в ряде ОС, среди которых Windows 98, Windows 95 OSR 2.1 и более новые. Для редактирования аудио-видеофайлов (AVI) применимы, например, пакеты Adobe Premiere, Asymetrix Digital Video Producer, Ulead MediaStudio, MGI VideoWave. Кодек-конвертор цифровых видеоданных (DV), передаваемых по шине 1394, в AVI-файл поставляется фирмой Adaptec.

Одной из проблем цифровой передачи мультимедийной информации является защита авторских прав. Пользователь должен иметь возможность высококачественного воспроизведения принимаемых программ или приобретенных дисков, но их авторы (производители) должны иметь возможность защитить свои права, по своему усмотрению вводя ограничения на цифровое копирование. Для этих целей объединение «5С» (5 компаний: Sony, Matsushita, Intel, Hitachi и Toshiba) разрабатывает спецификацию шифрования данных.


 

А также другие работы, которые могут Вас заинтересовать

68899. Динамически подключаемые библиотеки 47 KB
  До сих пор мы использовали множество функций API для создания окон и оконных процедур, рисования, работы с клавиатурой и мышью, ввода-вывода. Все эти функции работали исправно и вы не задумывались над вопросом: где расположены эти функции и каким образом они подключаются к вашей программе.
68900. Представление графической информации 56.5 KB
  Битовый образ это цифровое представление изображения. Каждому пикселю точке изображения соответствует один или более бит битового образа которые определяют цвет пикселя. К достоинствам можно отнести хорошую передачу изображения именно они чаще всего используются для хранения фотографий...
68902. Понятие системного программирования 56 KB
  Например с точки зрения программиста который занимается ядром операционной системы человек создающий компилятор является пользователем системы т. Примеров таких систем можно привести множество: операционная система офисное программное обеспечение системы проектирования и т.
68903. Скелет оконной программы 95.5 KB
  Функцию создания окна. Для его создания необходимо выполнить два шага: регистрацию класса окна и вызвать функцию создания окна. Оба этих действия определяют основные свойства видимые и невидимые характеристики окна.
68904. Понятие контекста устройства 126 KB
  В связи с этим между программой и видео памятью было введено некоторое промежуточное звено получившее название контекста. Благодаря введению контекста процесс вывода информации изменился и имеет следующий вид рис. Программная модель контекста В программе см.
68905. Мышь и таймер 45.5 KB
  Когда пользователь перемещает мышь операционная система перемещает по экрану растровую картинку обычно стрелку которая называется курсор мыши mouse cursor. Курсор мыши имеет вершину картинки hot spot размером в один пиксель...
68906. Клавиатура 59.5 KB
  Таким образом программа получает только адресованные ей сообщения от клавиатуры. Возникает вопрос: Windows многозадачное приложение и одновременно в системе могут работать несколько программ и соответственно открыты несколько окон какое же из окон будет получать сообщения от клавиатуры...