
ЭВМ лекции
.pdf
и BUSY используются для квитирования1. Сигналом STROBE# компьютер информирует о готовности данных на линиях DATA[0:7]. Если устройство приняло выставленные компьютером данные, то оно выставляет сигнал ACK#. Во время приема данных, во время инициализации, а также при наличии ошибки устройство выставляет сигнал BUSY. О возникновении ошибочной ситуации сигнализирует линия ERROR#, а также PE (кончилась бумага). О том, что принтер включен и готов к работе, сообщается при помощи сигнала SELECT. Для подтверждения выбора принтера компьютер выставляет сигнал SLCTIN#. При
необходимости очистить буфер принтера и перевести его в исходное состояние выставляется INIT#. Сигнал AUTOFD# используется при работе с матричными принтерами в текстовом режиме для продвижения бумаги на одну строку.
Для организации обратного канала (передача данных от принтера в компьютер) в режиме SPP возможны два механизма: механизм двунаправленного порта (впервые представленный в IBM PS/2 в 1987 г.) и механизм передачи полубайтами (Nibble Mode). При использовании механизма двунаправленного порта способ квитирования не декларируется.
Особенностью обратного канала в Nibble Mode является то, что за один цикл передается только 4 бита данных. Таким образом, скорость в обратном канале в два раза меньше, чем в прямом канале. Преимуществом использования Nibble Mode является возможность программной реализации этого механизма на любом старом параллельном порту, не поддерживающем IEEE 1284. Сигналом активности этого механизма является высокий уровень на линии NibbleMode (при прямой передаче на этой линии выставляется низкий уровень). Для квитирования используются линии HostBusy (сигнал устанавливается компьютером в низкий уровень, когда он готов к приему) и PtrClk (низкий уровень сигнала подтверждает действительность данных D[0:4]/D[5:7]).
В режиме EPP (Улучшенный параллельный порт) используется аппаратная реализация сигналов квитирования, благодаря чему возможно увеличение скорости передачи до 2 Мбайт/с. Этот режим поддерживает адресацию устройств, благодаря чему возможно подключение нескольких (до 64) устройств к одному
1 Квитирование – подтверждение приёма-передачи структурной единицы информации
311
порту. Генерация цикла чтения или записи на шине IEEE 1284 со всеми
необходимыми сигналами квитирования происходит при обращении к регистру
EPP Address (BASE+3) или EPP Data (BASE+4). При этом адаптер IEEE 1284
устанавливает сигнал Write# в зависимости от направления передачи (низкий уровень – прямая передача, высокий уровень – обратная передача). Для периферийного устройства информацией о том, являются ли биты на линиях AD[0:7] данными или адресом, является сигналы DataStb# (строб данных) или AddrStb# (строб адреса). Периферийное устройство информирует компьютер о своей готовности принять очередной байт при помощи сигнала Wait#. Сигнал Reset#, так же как и в режиме SPP используется для инициализации устройства. Установка периферийным устройством сигнала Intr# вызывает генерацию прерывания. Сигналы AckDataReq и DataAvail# используются по усмотрению разработчика, например, для квитирования в обратном канале.
Режим ECP (Порт расширенных возможностей) также использует аппаратное квитирование и адресацию устройств (до 128). Дополнительно ECP поддерживает распознавание ошибок, согласование скорости и режима передачи, буферизацию данных в очереди FIFO (с использованием DMA) и их компрессию по алгоритму RLE (Run Length Encoding), что позволяет достигать скорость до 4 Мбайт/с.
Признаком активности режима ECP является высокий уровень сигнала 1284Active. При прямой передаче для квитирования используются сигналы HostClk и PeriphAck, а сигнал HostAck указывает на тип передаваемых данных: высокий уровень – обычные данные, низкий уровень – команда или адрес. Для запроса обратного канала компьютер выставляет сигнал ReverseReq#, который устройство подтверждает сигналом AckReverse#. В обратном канале для квитирования применяются сигналы PeriphClk и HostAck, а сигнал PeriphAck используется устройством для указания типа передаваемых данных. Устройство может запросить обслуживание при помощи сигнала PeriphReq#.
В режиме ECP параллельный порт может эмулировать работу любого другого режима IEEE 1284, что определяется в соответствующих битах расширенного регистра управления (ECR) по адресу BASE+400h:
312
|
|
Таблица 28.3. Режимы работы порта ECP |
|
Номер |
Обозначение |
Описание |
|
0002 |
SPP |
Режим стандартного параллельного порта с программным квитированием |
|
0012 |
Bi-directional mode |
Поддержка обратного канала для режима SPP, как в IBM PS/2 |
|
0102 |
Fast Centronics |
Режим стандартного параллельного порта с аппаратным квитированием |
|
0112 |
ECP |
Режим ECP с поддержкой FIFO и RLE |
|
1002 |
EPP |
Режим EPP |
|
1012 |
|
Reserved |
|
1102 |
Test mode |
Режим самотестирования FIFO и прерываний |
|
1112 |
Configuration mode |
Режим конфигурирования |
|
Инфракрасный интерфейс
В 1994 году Ассоциацией инфракрасной передачи данных (Infra-Red Data Assotiation) была принята первая версия стандарта IrDA. Интерфейс IrDA
позволяет соединяться с периферийным оборудованием без кабеля при помощи ИК-излучения с длиной волны 850-900 нм (номинально - 880 нм). Порт IrDA дает возможность устанавливать связь на коротком расстоянии до 1 метра в режиме "точка-точка". Ассоциация намеренно не пыталась создавать локальную сеть на основе ИК-излучения, поскольку сетевые интерфейсы очень сложны и требуют большой мощности, а в цели интерфейса входили низкое ресурсопотребление и экономичность.
Порт IrDA основан на архитектуре коммуникационного порта и использует универсальный асинхронный приемо-передатчик UART (Universal Asynchronous Receiver Transmitter), позволяющий работать со скоростью передачи данных 2400-115200 бит/с. Данные передаются 10-битными символами: 8 бит данных, один стартовый бит в начале и один стоповый бит в конце посылки. Связь в IrDA полудуплексная, т.к. передаваемый ИК-луч неизбежно засвечивает приемный фотодиод. Воздушный промежуток между устройствами позволяет принять ИК- энергию только от одного источника в данный момент. На физическом уровне стандарт IrDA определяет следующий способ кодирования: логический "0" передается одиночным ИК-импульсом длиной от 1,6 мкс до 3/16 периода передачи битовой ячейки, а логическая "1" передается как отсутствие ИК- импульса.
Описанный способ кодирования (асинхронный) используется на скоростях до 115200 бит/с. В стандарте IrDA 1.1 этот режим определяется как SIR (Standard Infra-Red). Стандарт IrDA 1.1 допускает реализацию высокоскоростного ИК-
313
интерфейса до 4 Мбит/с – FIR (Fast Infra-Red). В этом случае ИК-интерфейс реализуется на основе синхронных протоколов HDLC/SDLC (High-level Data Link Control / Synchronous Data Link Control) с использованием на скоростях выше 1
Мбит/с фазоимпульсной модуляции. В настоящее время существует дополнение к стандарту IrDA – VFIR (Very Fast IR), описывающее обмен данными на скоростях до 16 Мбит/с.
Т.к. ИК-интерфейс предусматривает только полудуплексный обмен, стандарт IrDA описывает архитектуру с одним главным (первичным) и множественными подчиненными (вторичными) устройствами. Схема обращения устройств представляет собой обычный протокол обмена данными, где есть фазы запросов (Request) и ответов (Response). Так, первичное устройство отвечает за организацию соединения и за обработку ошибок, посланные им кадры называются управляющими (Command Frames), а пакеты вторичных устройств именуются ответными (Response Frames). Обмен информацией идет только с первичным устройством, которое всегда выступает инициатором соединения, однако его роль может играть любое из устройств, поддерживающих необходимые для этого функции. По желанию может быть включен протокол транспортного уровня, позволяющий осуществлять контроль передачи между
приложениями в случае одновременной работы нескольких приложений на одной физической линии.
Каждое устройство имеет 32-битный адрес, вырабатываемый случайным образом при установлении соединения. Каждому кадру в пределах соединения ведущее устройство при старте присваивает 7-битный адрес соединения. Для возможных, но нежелательных случаев, когда два устройства имеют одинаковый адрес, предусмотрен такой механизм, когда ведущее устройство дает команду всем подчиненным устройствам изменить их адреса.
Протокол IrLAP устанавливает правила доступа к ИК-среде, процедуры открытия канала, согласование абонентов сети, обмена информацией (разбиение данных на блоки, контроль ошибок) и т.д. Перед тем, как начать передачу, устройство, не принимающее в данный момент времени участия в обмене, должно прослушивать канал не менее 500 мс, чтобы убедиться в отсутствии
314
трафика. С другой стороны, устройство, участвующее в обмене, должно вести передачу не более 500 мс. Максимальный квант передачи может быть равен 100, 200 или 500 мс. Он представляет собой максимальное время, в течение которого устройство передает данные до того, как перейдет к прослушиванию подтверждения приема, и зависит от скорости передачи и емкости буфера в принимающем устройстве. Доступ к среде передачи регулируется посредством специального бита PF (Poll/Final), который устанавливается в теле кадра и выполняет функции, аналогичные маркеру. IrLAP допускает передачи без установления предварительного соединения. Такая передача является широковещательной и не требует получения подтверждения станции получателя.
Процедура открытия канала предусматривает обмен идентификационной информацией (ID). Инициатор широковещательного обмена передает ID
предопределенное количество раз и прослушивает канал в интервалах между слотами. Станция-получатель случайным образом выбирает слот и посылает в ответ свой ID. При обнаружении коллизии процедура повторяется и применяется для согласования параметров функционирования станций (скорость обмена, максимальная длина пакета). При установлении соединения обмен данными, объем которых не должен превышать 64 байта, осуществляется со скоростью 9600 бит/с. После того, как соединение установлено, скорость обмена и величина пакета данных могут быть увеличены до максимальных. Кроме пакетов с пользовательскими данными, в обмене участвуют специальные кадры, служащие для управления потоком, коррекции ошибок и передачи маркера.
Протокол управления каналом IrLMP (Link Management Protocol) является обязательным, однако его некоторые особенности могут быть опциональны.
Протокол IrLMP содержит два компонента: LM-IAS (Link Management Information Access Service) и LM-MUX (Link Management MUltipleXer).
Каждое устройство IrDA содержит таблицу сервисов и протоколов, доступных в настоящий момент. Эта информация может запрашиваться у других устройств. LM-IAS управляет информационной базой так, что станции могут запросить, какие службы предоставляются. Эта информация хранится в виде объектов, с каждым из которых связан набор атрибутов.
315
LM-MUX выполняет мультиплексирование каналов поверх одного соединения, устанавливаемого протоколом IrLAP. С этой целью определяется множество точек доступа канала LSAP (Link Service Access Point) каждая с уникальным идентификатором (селектором). Таким образом, каждое из LSAP- соединений определяет логически различные информационные потоки. LM-MUX функционирует в двух режимах: мультиплексирования и эксклюзивном. Первый режим позволяет разделять одно физическое соединение нескольким задачам. В
этом случае управление потоком должно быть обеспечено протоколами верхнего уровня (например, TinyTP) или непосредственно приложением. Второй режим отдает все ресурсы одному единственному приложению. Также IrLMP предусматривает три варианта доступа:
∙с установлением предварительного соединения;
∙без установления предварительного соединения (Сonnectionless);
∙режим сбора информации о возможностях, сервисах и приложениях удаленного устройства (XID_Discovery).
TinyTP (Tiny Transport Protocol) – транспортный протокол,
осуществляющий функции управления потоком для любого LSAP-соединения независимо. Каждая точка доступа этого протокола (TTPSAP TinyTP Service Access Point) идентифицируется с единственной точкой доступа IrLMP и использует единый с ней адрес. TinyTP также управляет сегментацией и сборкой кадров. На базе TinyTP чаще всего используются протоколы верхнего уровня
IrCOMM и OBEX.
Протокол IrCOMM – это протокол эмуляции последовательного или параллельного портов. IrCOMM предоставляет пять типов сервисов: 3-Wire Raw, IrLPT, 3-Wire, 9-Wire и Centronics. Сервисы 3-Wire Raw и IrLPT работают только через одно эксклюзивное соединение (поверх LM-MUX без использования TinyTP) и применяются, когда необходимо передавать исключительно данные. Сервис 3-Wire эмулирует 3-проводный интерфейс RS-232C (сигналы SG, TxD, RxD), используя возможности TinyTP. Сервис 9-Wire предназначен для более точной эмуляции интерфейса RS-232C и обрабатывает, кроме трех вышеупомянутых, еще шесть сигналов (RTS, CTS, DSR, DTR, CD, RI), что
316
позволяет использовать его для подключения модемов с ИК-интерфейсом. Сервис Centronics – это не что иное, как виртуальный параллельный интерфейс на базе
TinyTP.
Протокол OBEX (OBject EXchange) обеспечивает обмен объектами произвольного типа между устройствами (например, объекты vCard, vCalendar, vNotes и т.п.) В настоящее время OBEX используется поверх многих беспроводных интерфейсов (например, BlueTooth).
Интерфейс USB
Спецификация периферийной шины USB была разработана лидерами компьютерной и телекоммуникационной промышленности (Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom) для подключения компьютерной
периферии вне корпуса ПК с автоматическим автоконфигурированием (Plug&Play). Первая версия стандарта появилась в 1996 г. Агрессивная политика Intel по внедрению этого интерфейса стимулирует постепенное исчезновение таких низкоскоростных интерфейсов, как RS 232C, Access bus и т.п. Однако для
высокоскоростных устройств с более строгими требованиями к производительности (например, доступ к удаленному накопителю или передача оцифрованного видео) конкурентом USB является интерфейс IEEE 1394.
Интерфейс USB представляет собой последовательную, полудуплексную, двунаправленную шину со скоростью обмена:
USB 1.1 - 1,5 Мбит/с или 12 Мбит/с; USB 2.0 - 480 Мбит/с.
Шина позволяет подключить к ПК до 127 физических устройств. Каждое физическое устройство может, в свою очередь, состоять из нескольких логических (например, клавиатура со встроенным манипулятором-трекболом).
Кабельная разводка USB начинается с узла (host). Хост обладает интегрированным корневым концентратором (root hub), который предоставляет несколько разъемов USB для подключения внешних устройств. Затем кабели идут к другим устройствам USB, которые также могут быть концентраторами, и функциональным компонентам (например, модем или акустическая система). Концентраторы часто встраиваются в мониторы и клавиатуры (которые являются
317

типичными составными устройствами). Концентраторы могут содержать до семи "исходящих" портов.
Рис. 28. 3 Топология подключения устройств к USB
Для подключения периферийных устройств к шине USB используется четырёхпроводный кабель, при этом два провода (витая пара) в дифференциальном включении используются для приёма и передачи данных, а два провода — для питания периферийного устройства. Благодаря встроенным линиям питания, USB позволяет подключать периферийные устройства без собственного источника питания (максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать 500 мА).
Спецификация USB-интерфейса регламентирует два типа разъёмов: A — на стороне контроллера или концентратора USB и B — на стороне периферийного устройства. Впоследствии были разработаны миниатюрные разъёмы для применения USB в переносных и мобильных устройствах, получившие название Mini-B. Новая версия миниатюрных разъёмов, называемых Micro-USB, была представлена USB Implementers Forum 4 января 2007 года.
В отличие от многих других стандартных типов разъёмов, для USB характерны долговечность и механическая прочность.
318
а)б)
в)
Рис. 28. 4 Разъемы: а)USB Тип A — 4x12 мм, б)USB Тип B — 7x8 мм, в) USB mini B — 2x7 мм.
Сигналы USB передаются по двум проводам четырёхпроводного кабеля.
|
|
Таблица 28.4. Размещение проводников |
|
|
|
|
|
Номер контакта |
Обозначение |
|
Цвет провода |
1 |
V BUS |
|
красный |
2 |
D− |
|
белый |
3 |
D+ |
|
зелёный |
4 |
GND |
|
чёрный |
Здесь GND — цепь «корпуса» для питания периферийных устройств, VBus
– +5 В, так же для цепей питания. Данные передаются по проводам D+ и D− дифференциально (состояния 0 и 1 (в терминологии официальной документации diff0 и diff1 соответственно) определяются по разности потенциалов межу линиями более 0,2 В и при условии, что на одной из линий (D− в случае diff0 и D+ при diff1) потенциал относительно GND выше 2,8 В. Дифференциальный способ передачи является основным, но не единственным (например, при инициализации устройство сообщает хосту о режиме, поддерживаемом устройством (Full-Speed или Low-Speed), подтягиванием одной из линий данных к V_BUS через резистор 1.5 кОм (D− для режима Low-Speed и D+ для режима Full-Speed, устройства, работающие в режиме Hi-Speed, ведут себя на этой стадии как устройства в режиме Full-Speed). Также иногда вокруг провода присутствует
волокнистая обмотка для защиты от физических повреждений Интерфейс USB 1.1 декларирует два режима:
∙низкоскоростной подканал (пропускная способность - 1,5 Мбит/с), предназначенный для таких устройств, как мыши и клавиатуры;
∙высокопроизводительный канал, обеспечивающий максимальную пропускную способность 12 Мбит/с, что может использоваться для
319
подключения внешних накопителей или устройств обработки и передачи аудио- и видеоинформации.
Все концентраторы должны поддерживать на своих исходящих портах устройства обоих типов, не позволяя высокоскоростному трафику достигать низкоскоростных устройств. Высокопроизводительные устройства подключаются с помощью экранированного кабеля, длина которого не должна превышать 3 м. Если же устройство не формулирует особых требований к полосе пропускания, его можно подключить и неэкранированным кабелем (который может быть более тонким и гибким). Максимальная длина кабеля для низкоскоростных устройств - 5 м. Требования устройства к питанию (диаметр проводников, потребляемая мощность) могут обусловить необходимость использования кабеля меньшей длины. Из-за особенностей распространения сигнала по кабелю число последовательно соединенных концентраторов ограничено шестью (и семью пятиметровыми отрезками кабеля).
Хост узнает о подключении или отключении устройства из сообщения от концентратора (эта процедура называется опросом шины - bus enumeration). Затем хост присваивает устройству уникальный адрес USB (1:127). После отключения устройства от шины USB его адрес становится доступным для других устройств.
Для индивидуального обращения к конкретным функциональным возможностям составного устройства применяется 4-битное поле конечной точки.
В низкоскоростных устройствах за каждой функцией закрепляется не более двух адресов конечных точек: нулевая конечная точка используется для конфигурации и определения состояния USB, а также управления функциональным компонентом; а другая точка – в соответствии с функциональными возможностями компонента. Устройства с максимальной производительностью могут поддерживать до 16 конечных точек, резервируя нулевую точку для задач конфигурации и управления USB.
Хост опрашивает все устройства и выдает им разрешения на передачу данных (рассылая для этого пакет-маркер – Token Packet). Таким образом, устройства лишены возможности непосредственного обмена данными – все данные проходят через хост. Это условие сильно мешало внедрению интерфейса
320