
Avdeev
.pdf
182
Для выбора устройства и конечной точки (КТ) в нем используется 7-битный адрес устройства и 4-битный номер КТ. Поле адреса предназначено для ввода (вывода) данных и установочных опознавателей. При сбросе или отключении питания адрес устройства принимает значение 0 и затем программируется хостом. Низкоскоростные устройства содержат до двух точек, а высокоскоростные – до 16 конечных точек. Поле адреса и номера КТ защищены 5-битовым контрольным циклическим кодом (КЦК). Циклический избыточный контроль состоит в том, что биты поля КЦК представляют собой коэффициенты двоичного полинома (5-битовый эквивалент), а байты контроля ошибок получаются путем деления этого полинома на заданный 16-битный полином. По двоичному коду остатка определяют наличие или отсутствие ошибки.
Пакет поля данных состоит из 8-битного поля ИД, поля данных (0-1023 байтов) и 16-битного поля КЦК (рис.7.14).
80 - 1023 16
Идентификатор Данные КЦК
Рис.7.14. Формат пакета данных
Существует два пакета данных (Данные(0) и Данные(1)) с различными идентификаторами, необходимые для поддержания соответствующей синхронизации. Данные в пакете представлены в виде последовательности байтов.
Пакет квитирования содержит только поле ИД и предназначен для проверки успешности передачи данных. Различают три типа этого пакета: ACK (подтверждение) – пакет данных получен без ошибок и пакет ИД верен (пакет применяется при передаче данных); NAK (неподтверждение) – пакет, показывающий на невозможность устройством принять данные от хоста (временный отказ) или устройство не имеет данных для передачи хосту (кроме того, пакет используется для сообщения о временной паузе в передаче или приеме данных устройством); STALL – ответный пакет, говорящий о постоянном отказе и необходимости вмешательства программы хоста.

183
Опознавательный пакет SOF (начало фрейма) позволяет хабам или устройствам идентифицировать начало фрейма и синхронизировать их внутренние таймеры с таймером главной ЭВМ. Формат опознавательного пакета показан на рис.7.15.
8 |
11 |
5 |
Идентификатор |
Номер фрейма |
КЦК |
|
|
|
Рис.7.15. Формат опознавательного пакета
Фрейм состоит из ряда транзакций (действий на шине), имеющих начало от одного SOF-маркера, и продолжается до начала следующего SOF-маркера. Устройство или хаб определяют начало фрейма по 8-битному ИД SOF-пакета.
Существуют следующие транзакции: массива данных, управления, прерывания и изохронного типа.
Транзакциямассиваданныхпривводеданныхвхостсостоитизопознавательного пакета с запросом ввода, пакета данных (Данные (0/1)) из устройства и пакета квитирования (NAK или STALL), посылаемого устройством вслед за данными. Если пакет данных принят верным, то хост отвечает устройству пакетом ACK.
При вводе данных из хоста в устройство хост направляет опознавательный пакет с запросом вывода, а затем пакет данных. Устройство отвечает хосту одним из трех пакетов квитирования (ACK, NAK или STALL).
Последовательность действий хоста и устройства при передачи массивов данных показана на рис.7.16.
Хост |
Ввод |
|
Вывод |
Устройство |
Хост |
Устройство |
|
Ожидание |
Ожидание |
||
|
Ввод |
|
Вывод |
Данные(0)/Данные(1) |
Данные(0)/Данные(1) |
||
|
NAK/STALL |
ACK/NAK/STALL |
|
|
ACK |
|
Ожидание |
|
|
|
|
|
Ожидание |
|
|
Рис.7.16. Последовательность действий хоста и устройства

184
На рис.7.17 представлена последовательность идентификаторов при записи и чтении массива данных.
Запись |
|
|
|
. . . |
|
|
Вывод 0 |
|
Вывод 1 |
Вывод 0/1 |
|
||
массива |
|
|
|
|
|
|
|
|
|
|
|
|
|
Чтение |
|
|
|
. . . |
|
|
Ввод 0 |
|
Ввод 1 |
Ввод 0/1 |
|
||
массива |
|
|
|
|
|
|
Данные (0) |
|
Данные (1) |
|
Данные (0/1) |
||
|
|
|
Рис.7.17. Последовательность идентификаторов при записи и чтении массива данных
С целью синхронизации компонентов шины USB выполняется чередование пакетов с идентификатором Данные(0) и пакетов с идентификатором Данные(1). Переключение пакетов данных в передатчике выполняется после получения пакета квитирования ACK, а в приемнике – после получения очередного пакета.
Переходы управления содержат две стадии: Установка и Состояние, между которыми может присутствовать информационная стадия. Во время стадии Установки выполняется передача данных только с форматом поля ИД Данные(0) к конечной точке управления устройства.
Транзакция Установки изображена на рис.7.18.
Хост |
Устройство |
ОжиданиеВвод |
|
Данные(0)/Данные(1)
АСК
Ожидание
Рис.7.18. Транзакция Установки
Сигнал квитирования ACK не выдается, если данные являются неверными. При наличии стадии данных выполняется их передача в одном направлении в соответствии с требованиями протокола. Эта стадия может состоять из нескольких транзакций ввода и вывода и размер массива данных задается в пакете Установка.
Стадия Состояния является последней в рассматриваемой последовательности и использует идентификатор Данные 0.

185
На рис.7.19 показана очередность транзакций и идентификаторов данных для управления чтением или записью.
Управление |
Установка 0 |
Вывод 1 |
Вывод 0 . . . |
Вывод 0/1 |
Ввод 1 |
записью |
Данные (0) |
Данные (1) |
Данные (0) |
Данные (0/0) |
Данные (1) |
|
Стадия |
|
Стадия данных |
|
Стадия |
|
установки |
|
|
|
состояния |
Управление |
|
|
|
|
|
|
. . . |
|
|
|
|
|
Установка 0 |
|
Ввод 1 |
|
Ввод 1 |
|
Ввод 0/1 |
|
Вывод 1 |
||
чтением |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Данные (0) |
|
Данные (1) |
|
Данные (0) |
|
|
Данные (0/1) |
|
Данные (1) |
Управление |
|
|
|
|
|
|
|
|
|
|
|
|
Установка 0 |
|
Ввод 1 |
|
|
|
|
|
|
|
|
без данных |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Данные (0) |
|
Данные (1) |
|
|
|
|
|
|
|
|
Стадия установки |
|
Стадия состояния |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
Рис.7.19. Очередность транзакций и ИД данных
В стадии Состояние от устройства к хосту передается следующая информация: устройство выполнило задачу (ACK), устройство не содержит ошибок (STALL) и устройство занято (NACK).
Транзакции прерываний содержат опознаватели ввода. На рис.7.20 изображены последовательности транзакций прерываний.
Хост |
Устройство |
Хост |
Устройство |
Ожидание Ввод |
|
Ожидание Ввод |
|
Данные(0)/Данные(1) |
|
NAK/STALL |
|
АСК |
|
|
Ожидание |
|
Ожидание |
|
|
|
|
|
Рис.7.20. Последовательности транзакций прерываний
Если устройство получает опознаватель ввода, то оно выдает данные по прерыванию в виде пакета и получает ACK или передает NACK/STALL. Пакет квитирования NAK направляется устройством, когда оно не содержит информации для

186
нового прерывания, а пакет квитирования STALL – устройством, если оно временно приостановило работу.
Изохронные транзакции не имеют стадии квитирования. На рис.7.21 представлены стадии изохронных транзакций.
Хост |
Устройство |
Хост |
Устройство |
ОжиданиеВвод |
ОжиданиеВывод |
||
|
Данные(0)/Данные(1) |
|
Данные(0)/Данные(1) |
|
Ожидание |
|
Ожидание |
Рис.7.21. Стадии изохронных транзакций
При выполнении изохронного режима меняется поочередно пакеты данных с соответствующими идентификаторами, т.е. сначала следует пакет данных Данные(0), а за ним – пакет Данные(1) и т.д.
7.2. Последовательная шина IEEE1394
Высокоэффективная последовательная шина IEEE1394 предназначена для подключения жестких дисков и видеосистем, требующих передачи данных со скоростью более 100 Мбит/с. Шина IEEE1394 обеспечивает передачу данных со скоростью 200 и 400 Мбит/с и разрабатываются ее модификации со скоростью передачи 1600 Мбит/с. Поэтому шина 1394 получила название «огневой провод» (FIRE WIRE). Шина IEEE1394 объединяет устройства в древовидную структуру (домашнюю сеть) без петель и предусматривает применение мостов, концентраторов и повторителей. Мосты позволяют соединить несколько древовидных структур вместе, концентраторы (узлы) – несколько ветвей, а повторители используются для усиления сигналов, если длина кабеля превышает стандартный размер сегмента (4,5 м). Общая длина кабеля структуры равна 72 м и расстояние между двумя узлами не должно превышать более 12 кабельных сегментов. В шине используется 6-жильный кабель, в котором 2 провода применяются для подачи питания, а две экранированные витые пары – для последовательной дуплексной передачи. Напряжение питания
187
определятся диапазоном от 7,5 В до 40 В. Предусматривается гальваническая развязка компонентов и кабеля шины. Каждый узел структуры содержит не-
сколько одинаковых разъемов, к которым с помощью специальных соединителей подключаются другие компоненты.
Шина IEEE1394 позволяет подключить до 63 устройств. Адрес пакета содержит 64 бита, из которых 10 бит используются для выбора сети, 6 бит – на выбор устройства (адрес 63 зарезервирован) и 48 бит – на выбор порта внутри устройства. При подключении (отключении) устройства к шине или включения питания обеспечивается автоматическое конфигурирование системы.
Узел, обнаруживший изменение конфигурации, формирует сигнал сброса, который по длительности больше чем длительность фрейма. Затем диспетчер устанавливает топологию дерева, образованного подключенными устройствами, выделяются идентификационные номера узлам, требуемые каналы и полосы. После этого выполняется работа шины, связанная с передачей данных.
Работа интерфейса разбивается на временные отрезки по 125 мкс, которые называются фреймами,используемыедляпередачипакетов.Каждомуустройству на этапе инициализации может быть отведено несколько логических каналов и требуемое время из общего количества фреймов. Протокол шины IEEE1394 поддерживает изохронную и асинхронную передачи данных, причем для изохронной передачи (передачи без подтверждения получения данных целью) используется начальная часть фрейма, а для асинхронной передачи данных (команд) – остаток фрейма. При асинхронной передаче от передатчика к приемнику направляется пакет, содержащий их адрес и данные. После этого приемник возвращает пакет подтверждения, в котором отмечается достоверность передачи.
Если должна выполняться изохронная передача, то соответствующий объект запрашивает у диспетчера выделение полосы (пропускной способности). Диспетчер изохронных ресурсов выделяет каждому ресурсу номер канала (0-63), который является идентификатором соответствующего пакета. После завершения передачи освобождается канал и полоса.
Стандарт IEEE1394 описываетсся на трех уровнях: транзакции, связи и физическом.

188
На уровне транзакции выполняется протокол запросов (ответов) и обеспечивается минимизация аппаратных средств, необходимых для сопряжения шины IEEE1394 с параллельными шинами компьютера. На уровне связи выполняется формирование пакетов, их передача и прием, а также управление и контроль изохронными предачами.
На физическом уровне осуществляется инициализация, арбитраж, кодирование и декодирование данных.
На рис. 7.22 показан один из вариантов структуры интерфейса IEEE1394.
шина PCI
Ко
Кон |
Ада |
З |
C |
Н |
Н |
189
Рис. 7.22. Один из вариантов структуры интерфейса IEEE1394
Фирмой ADAPTEC выпускается котроллер, имеющий слот для соединения с шиной PCI, содержащий 2 порта шины IEEE1394 (200 Мбит/с) и один порт шины SCSI. Разрабатываются микросхемы для подключения к шине IEEE1394, например, CD ROM или IDE-контроллеров НЖМД.
В заключение отметим отличительные признаки шины IEEE1394 при сравнении ее с шиной USB: более высокая пропускная способность и возможность децентрализованного принципа обмена данными устройств, подключенных к шине.

8.1.Коды ASCII и расширенные коды
Вбольшинстве ПК широко используются Американские стандартные коды для обмена информацией (коды ASCII).
Стандарт ASCII содержит лишь 128 символов, 7-разрядные коды которых обозначаются 0–127. В ПК обычно используется вдвое больше символов. Поэтому
внастоящее время программистами принято считать стандартные коды 0–127 и 128–255 8-разрядными кодами ASCII, хотя это и не совсем правильно.
Стандартные коды ASCII (0–127) состоят из двух частей. Первая часть включает 32 символа с кодами 0–31, которые используются для управления периферийными устройствами и не выводятся на экран дисплея. Например, для управления устройством печати используется код 13 (возврат каретки), код 10 (перевод строки), код 12 (перевод страницы) и т.д.
Вторая часть содержит коды 32–127, соответствующие буквам алфавита, цифрам и знакам препинания. Причем, для одинаковых букв верхнего и нижнего регистра соотносятся разные коды (например, В соответствует код 66, а b – код 98).
Дополнительными кодами 128–255 ASCII обозначены специальные (иностранные, научные и графические) символы. К группе иностранных символов (коды 128–154 и 160–167) относятся символы, применяемые в европейских языках, символы изображения знаков валюты разных стран и символы знаков пунктуации.
8.2. Типы клавиш
194
Клавиатура РС/ХТ имеет 83 клавиши. Клавиатура АТ содержит 84 клавиши. Ее основное отличие от клавиатуры РС то, что она стала доступной со стороны системного процессора. Это техническое усовершенствование делает клавиатуру АТ несовместимой с клавиатурой РС, хотя и используются одни и те же разъемы.
Кроме того, фирма IBM изготавливает улучшенную клавиатуру, количество клавиш которой равно 101 (102). Эта клавиатура является модернизацией клавиатуры АТ, но также остается несовместимой с клавиатурой РС/ХТ. В улучшенной клавиатуре используется другое размещение клавиш.
Каждая клавиша имеет порядковый номер, и при ее нажатии клавиатурой генерируется однобайтное число, называемое скэн-кодом и соответствующее номеру клавиши. Например, в клавиатуре РС клавиша Esc имеет номер 1, клавиша цифры 1
– номер 2, ..., клавиша Del – номер 83.
Всю совокупность клавиш можно разделить на два типа. Клавишам первого типа послепреобразования скэн-кодов соответствуют кодыASCII (клавиши ASCII), а клавишам второго типа – расширенные коды (специальные клавиши и их комбинации).
При одновременном нажатии клавиш Alt+F1 генерируется 2-байтный расширенный код 0:104. Младший байт расширенного кода всегда содержит нуль, а старший байт – скэн-код (код сканирования) клавиши. Каждой клавише (комбинации клавиш) поставлен в соответствие номер, по которому формируется скэн-код. Например, клавиша F1 имеет номер 59 и ей соответствует расширенный код 0:59. Функциональные клавиши наиболее часто используются командами операционной системы.
Каждая клавиша содержит переключатель, который может быть механического (мембранного) типа или бесконтактного типа. В механических (контактного типа) клавишах возникает эффект дребезга контакта, требующий своего устранения. В бесконтактных клавишах используется емкостная или индуктивная технология. При нажатии клавиши в емкостной клавиатуре изменяется емкость этой клавиши. Допустим, в отпущенном состоянии емкость равна 20–24 пФ, а при нажатии уменьшается до 2–6 пФ. Изменение емкости вызывает поток заряда в цепях, связанных с