Ульяновский государственный университет
Опубликован: 18.05.2006 | Доступ: свободный | Студентов: 4227 / 1362 | Оценка: 4.05 / 4.02 | Длительность: 15:15:00
Специальности: Разработчик аппаратуры
Лекция 15:

Интерфейсы периферийных устройств

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

В 1994 году Ассоциацией инфракрасной передачи данных (Infra-Red Data Assotiation) была принята первая версия стандарта IrDA. Интерфейс IrDA позволяет соединяться с периферийным оборудованием без кабеля при помощи ИК-излучения с длиной волны 850-900 нм (номинально - 880 нм). Порт IrDA дает возможность устанавливать связь на коротком расстоянии до 1 метра в режиме "точка-точка". Ассоциация намеренно не пыталась создавать локальную сеть на основе ИК-излучения, поскольку сетевые интерфейсы очень сложны и требуют большой мощности, а в цели интерфейса входили низкое ресурсопотребление и экономичность.

Порт IrDA основан на архитектуре коммуникационного порта и использует универсальный асинхронный приемо-передатчик UART (Universal Asynchronous Receiver Transmitter), позволяющий работать со скоростью передачи данных 2400-115200 бит/с. Данные передаются 10-битными символами: 8 бит данных, один стартовый бит в начале и один стоповый бит в конце посылки. Связь в IrDA полудуплексная, т.к. передаваемый ИК-луч неизбежно засвечивает приемный фотодиод. Воздушный промежуток между устройствами позволяет принять ИК-энергию только от одного источника в данный момент. На физическом уровне стандарт IrDA определяет следующий способ кодирования: логический "0" передается одиночным ИК-импульсом длиной от 1,6 мкс до 3/16 периода передачи битовой ячейки, а логическая "1" передается как отсутствие ИК-импульса. Минимальная мощность потребления гарантируется при фиксированной длине импульса 1,6 мкс (рис. 15.2).

Формат пакета IrDA

Рис. 15.2. Формат пакета IrDA

Описанный способ кодирования (асинхронный) используется на скоростях до 115200 бит/с. В стандарте IrDA 1.1 этот режим определяется как SIR (Standard Infra-Red). Кроме того, стандарт IrDA 1.1 допускает реализацию высокоскоростного ИК-интерфейса до 4 Мбит/с - FIR (Fast Infra-Red). В этом случае ИК-интерфейс реализуется на основе синхронных протоколов HDLC/SDLC (High-level Data Link Control / Synchronous Data Link Control) с использованием на скоростях выше 1 Мбит/с фазоимпульсной модуляции. В настоящее время существует дополнение к стандарту IrDA - VFIR (Very Fast IR), описывающее обмен данными на скоростях до 16 Мбит/с.

Т.к. ИК-интерфейс предусматривает только полудуплексный обмен, стандарт IrDA описывает архитектуру с одним главным (первичным) и множественными подчиненными (вторичными) устройствами. Схема обращения устройств представляет собой обычный протокол обмена данными, где есть фазы запросов (Request) и ответов (Response). Так, первичное устройство отвечает за организацию соединения и за обработку ошибок, посланные им кадры называются управляющими (Command Frames), а пакеты вторичных устройств именуются ответными (Response Frames). Обмен информацией идет только с первичным устройством, которое всегда выступает инициатором соединения, однако его роль может играть любое из устройств, поддерживающих необходимые для этого функции. По желанию может быть включен протокол транспортного уровня, позволяющий осуществлять контроль передачи между приложениями в случае одновременной работы нескольких приложений на одной физической линии.

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

Кроме протоколов физического уровня, стандарты IrDA определяют стек протоколов программного уровня (табл. 15.5).

Таблица 15.5. Стек протоколов IrDA
IrLMP-IAS IrCOMM OBEX
TinyTP
IrLMP-MUX
IrLAP
IrPHY: SIR / FIR

Протокол IrLAP устанавливает правила доступа к ИК-среде, процедуры открытия канала, согласование абонентов сети, обмена информацией (разбиение данных на блоки, контроль ошибок) и т.д. Перед тем, как начать передачу, устройство, не принимающее в данный момент времени участия в обмене, должно прослушивать канал не менее 500 мс, чтобы убедиться в отсутствии трафика. С другой стороны, устройство, участвующее в обмене, должна вести передачу не более 500 мс. Максимальный квант передачи может быть равен 100, 200 или 500 мс. Он представляет собой максимальное время, в течение которого устройство передает данные до того, как перейдет к прослушиванию подтверждения приема, и зависит от скорости передачи и емкости буфера в принимающем устройстве. Доступ к среде передачи регулируется посредством специального бита PF (Poll/Final), который устанавливается в теле кадра и выполняет функции, аналогичные маркеру. IrLAP допускает передачи без установления предварительного соединения. Такая передача является широковещательной и не требует получения подтверждения станции получателя. Процедура открытия канала предусматривает обмен идентификационной информацией (ID). Инициатор широковещательного обмена передает ID предопределенное количество раз и прослушивает канал в интервалах между слотами. Станция-получатель случайным образом выбирает слот и посылает в ответ свой ID. При обнаружении коллизии процедура повторяется и применяется для согласования параметров функционирования станций (скорость обмена, максимальная длина пакета). При установлении соединения обмен данными, объем которых не должен превышать 64 байта, осуществляется со скоростью 9600 бит/с. После того, как соединение установлено, скорость обмена и величина пакета данных могут быть увеличены до максимальных. Кроме пакетов с пользовательскими данными, в обмене участвуют специальные кадры, служащие для управления потоком, коррекции ошибок и передачи маркера.

Протокол управления каналом IrLMP (Link Management Protocol) является обязательным, однако его некоторые особенности могут быть опциональны. Протокол IrLMP содержит два компонента: LM-IAS (Link Management Information Access Service) и LM-MUX (Link Management MUltipleXer).

Каждое устройство IrDA содержит таблицу сервисов и протоколов, доступных в настоящий момент. Эта информация может запрашиваться у других устройств. LM-IAS управляет информационной базой так, что станции могут запросить, какие службы предоставляются. Эта информация хранится в виде объектов, с каждым из которых связан набор атрибутов.

LM-MUX выполняет мультиплексирование каналов поверх одного соединения, устанавливаемого протоколом IrLAP. С этой целью определяется множество точек доступа канала LSAP (Link Service Access Point) каждая с уникальным идентификатором (селектором). Таким образом, каждое из LSAP-соединений определяет логически различные информационные потоки. LM-MUX функционирует в двух режимах: мультиплексирования и эксклюзивном. Первый режим позволяет разделять одно физическое соединение нескольким задачам. В этом случае управление потоком должно быть обеспечено протоколами верхнего уровня (например, TinyTP) или непосредственно приложением. Второй режим отдает все ресурсы одному единственному приложению. Также IrLMP предусматривает три варианта доступа:

  • с установлением предварительного соединения,
  • без установления предварительного соединения (Сonnectionless) и
  • режим сбора информации о возможностях, сервисах и приложениях удаленного устройства (XID_Discovery).

TinyTP (Tiny Transport Protocol) - транспортный протокол, осуществляющий функции управления потоком для любого LSAP-соединения независимо. Каждая точка доступа этого протокола (TTPSAP TinyTP Service Access Point) идентифицируется с единственной точкой доступа IrLMP и использует единый с ней адрес. TinyTP также управляет сегментацией и сборкой кадров. На базе TinyTP чаще всего используются протоколы верхнего уровня IrCOMM и OBEX.

Протокол IrCOMM - это протокол эмуляции последовательного или параллельного портов. IrCOMM предоставляет пять типов сервисов: 3-Wire Raw, IrLPT, 3-Wire, 9-Wire и Centronics. Сервисы 3-Wire Raw и IrLPT работают только через одно эксклюзивное соединение (поверх LM-MUX без использования TinyTP) и применяются, когда необходимо передавать исключительно данные. Сервис 3-Wire эмулирует 3-проводный интерфейс RS-232C (сигналы SG, TxD, RxD), используя возможности TinyTP. Сервис 9-Wire предназначен для более точной эмуляции интерфейса RS-232C и обрабатывает, кроме трех вышеупомянутых, еще шесть сигналов (RTS, CTS, DSR, DTR, CD, RI), что позволяет использовать его для подключения модемов с ИК-интерфейсом. Сервис Centronics - это не что иное, как виртуальный параллельный интерфейс на базе TinyTP.

Протокол OBEX (OBject EXchange) обеспечивает обмен объектами произвольного типа между устройствами (например, объекты vCard, vCalendar, vNotes и т.п.) В настоящее время OBEX используется поверх многих беспроводных интерфейсов (например, BlueTooth).

Виктория Монахова
Виктория Монахова
Евгений Коваленко
Евгений Коваленко