Инфракрасный протокол связи ? IrDA

Летом 1993 года компания Hewlett-Packard организовала общепромышленное совещание, чтобы обсудить будущее ИК (инфракрасный) передачи данных. Многообразие несовместимых стандартов было печальной реальностью, причинявшей массу неудобств всем от того, что устройства от разных производителей были несовместимы. Телевизоры, видеомагнитофоны, другая бытовая техника с ИК управлением сегодня встречается на "каждом углу", однако в них используются несовместимые физические и программные интерфейсы. Целью совещания было обсуждение путей, которыми промышленность может пойти к общему стандарту, способному совместимость всех устройств, использующих ИК порт. На совещании был сформирован консорциум всех ведущих компаний, названных Ассоциацией инфракрасной передачи данных и вскоре (в июне 1994 года) была объявлена первая одноименная версия стандарта, включающая физический и программный протоколы — IrDA 1.0. Текущая версия — 1.1. В настоящей статье будут описаны основные моменты действующего ныне стандарта.

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

Устройство инфракрасного интерфейса подразделяется на два основных блока: преобразователь (модули приемника-детектора и диода с управляющей электроникой) и кодер-декодер. Блоки обмениваются данными по электрическому интерфейсу, в котором в том же виде транслируются через оптическое соединение, за исключением того, что здесь они пакуются в кадры простого формата — данные передаются 10bit символами, с 8bit данных, одним старт-битом в начале и одним стоп-битом в конце данных.

Сам порт IrDA основан на архитектуре коммуникационного СОМ-порта ПК, который использует универсальный асинхронный приемо-передатчик UART (Universal Asynchronous Receiver Transmitter) и работает со скоростью передачи данных 2400–115200 bps.

Связь в IrDA полудуплексная, т.к. передаваемый ИК-луч неизбежно засвечивает соседний PIN-диодный усилитель приемника. Воздушный промежуток между устройствами позволяет принять ИК-энергию только от одного источника в данный момент.

Рассмотрим физические основы IrDA. Передающую часть. Байт, который требуется передать, посылается в блок UART из CPU командой записи ввода-вывода. UART добавляет старт-стоп биты и передает символ последовательно, начиная с младшего значения бита. Стандарт IrDA требует, чтобы все последовательные биты кодировались таким образом: логический "0" передается одиночным ИК-импульсом длиной от 1.6m s до 3/16 периода передачи битовой ячейки, а логическая "1" передается как отсутствие ИК-импульса. Минимальная мощность потребления гарантируется при фиксированной длине импульса 1.6m s.

По окончании кодирования битов необходимо возбудить один или несколько ИК-светодиодов током соответствующего уровня, чтобы выработать ИК-импульс требуемой интенсивности. Стандарт IrDA требует, чтобы интенсивность излучения в конусе ± 30° была в диапазоне 40–50 m W/Sr, причем ИК-светодиод должен иметь длину волны 880nm, как уже отмечалось ранее. Радиальная чувствительность приемника и длины связи диктуются, исходя из требований самой спецификации IrDA.

Приемная часть. Переданные ИК-импульсы поступают на PIN-диод, преобразующий импульсы света в токовые импульсы, которые усиливаются, фильтруются и сравниваются с пороговым уровнем для преобразования в логические уровни. ИК-импульс в активном состоянии генерирует "0", при отсутствии света генерируется логическая "1". Протокол IrDA требует, чтобы приемник точно улавливал ИК-импульсы мощностью от 4m W/sm2 до 500mW/sm2 в угловом диапазоне ± 15°.

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

Стандарт IrDA включает в себя стек протоколов трех согласованных обязательных уровней: IrPL (Physical Layer), IrLAP (Link Access Protocol) и IrLMP (Link Management Protocol).

Физический уровень (Physical Layer). Спецификация этого протокола устанавливает стандарты для Ir-трансиверов, методов модуляции и схемы кодирования/декодирования, а также ряд физических параметров. Стандарт предусматривает использование длины волны в диапазоне 850–900 nm. Минимальная и максимальная интенсивность передатчика (как уже говорилось) составляет 40–50 m W/Sr соответственно внутри 30° конуса. Для стандарта IrDA (скорость передачи данных 115.2Kbps) схема кодирования аналогична используемой в традиционной UART: бит старта ("0") и стоп-бит ("1") добавляются перед и после каждого байта соответственно. Но вместо схемы NZR (Non-Return to Zero) используется кодировка, подобная RZ (Return to Zero), т.е. двоичный "0" кодируется единичным импульсом, а "1" — его отсутствием. Кадры отделяются друг от друга байтами Escape-последовательности, содержащимися в теле самого кадра. Для определения ошибок (EDt — Error Detection) используется 16bit циклическая контрольная сумма. Например, уже в стандарте IrDA 1.1 для протокола обмена 1.152Mbps (синхронизация выполняется как в протоколе HDLP — High-level Data Link Protocol высокого уровня) и 4Mbps (использование 4-PPM — Pulse-Phase Modulation) старт-бит и стоп-бит не применяются. Так, фреймы, получаемые от более высокоуровневого протокола IrLAP, вкладываются в поле данных фреймов SIR, согласно используемому методу кодирования. Стандарт не содержит обязательных вариантов реализации этой процедуры и допускает варьирование алгоритмов в зависимости от возможностей конкретного оборудования. В зависимости от скорости соединения предлагаются методы кодирования: асинхронный (ASYNC, 9600–115200 bps), синхронный (HDLC, 0.576–1.152 Mbps) и 4-PPM (4Mbps).

Программный протокол. Он включает в себя: IrLAP (Link Access Protocol), занимающийся разбиением данных на блоки, контролем ошибок и другими функциями низкого уровня, и IrLMP (Link Management Protocol), позволяющий по одной ИК-линии обмениваться данными между несколькими приложениями. Данный протокол базируется на существующих стандартах асинхронной полудуплексной передачи данных HDLC и SDLC. Инфракрасная технология поддерживает только однонаправленную передачу информации, поэтому, в следствие полудуплексной природы SIR, возникла архитектура с одним главным (первичным) и множественными подчиненными (вторичными) устройствами. Схема обращения устройств представляет собой обычный протокол обмена данными, где есть фазы запросов (Request) и ответов (Response). Так, первичное устройство отвечает за организацию соединения, обработку ошибок, и посланные им фреймы называются управляющими (Command Frames), а пакеты вторичных устройств именуются ответными (Response Frames). Обмен информацией идет только с первичным устройством, которое всегда выступает инициатором соединения, однако его роль может играть любое из устройств, поддерживающих необходимые для этого функции. По желанию может быть включен протокол транспортного уровня, позволяющий осуществлять контроль передачи между приложениями в случае одновременной работы нескольких приложений на одной физической линии. Для разных уровней имеется три интерфейса. Служебные примитивы уровня LM-SVC позволяют одному из устройств IrDA узнать какие сервис и протоколы зарегистрированы на другом устройстве. Примитивы доступа к уровню M-SVC управляют режимом связи, открытием и закрытием независимых соединений между клиентами, а так же отправкой и приемом данных. Интерфейс L-SVC дает доступ к функциям протокола IrLAP.

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

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

Максимальный квант передачи может быть равен 100, 200 или 500 ms. Он представляет собой максимальное время, в течение которого устройство передает данные до того, как перейдет к прослушиванию подтверждения приема и зависит от скорости передачи, емкости буфера в принимающем устройстве. Минимальная длительность передачи определяется неспособностью передающего устройства перейти к приему данных сразу после выдачи последнего бита. Дело в том, что усилитель PIN-диода в передающем устройстве входит в состояние насыщения от собственной передачи. Время восстановления приемника — переменная величина, составляющая 0.001–10 ms. Этот параметр для данного устройства должен быть заранее известен и учитывается в фазе переговоров об установлении соединения. Процедуры расширенного восстановления включают в себя функцию сброса, которая прерывает связь, но потом восстанавливает активное состояние с параметрами соединения, используемые по умолчанию.

Стандартом предусмотрено два основных состояния: NRM (Normal Response Mode) и NDM (Normal Disconnect Mode). Первое — это состояние соединения с распределенными ролями первичного и вторичных устройств. Второе предусматривает функции детектирования доступных устройств, сбор информации о них, разрешение адресных конфликтов, а также позволяет передавать данные широковещательно, без установления соединения. В протоколе IrLAP используется три типа кадров по аналогии с HDLC. Поле данных присутствует только у первого и последнего вида фреймов, оно не ограничено по длине, но число бит в нем должно быть кратно 8. Ненумерованные (U-кадры) используются для установления связи: операции соединения и разъединения, информирования об ошибках и передачи данных, если нет необходимости в нумерации последовательностей. Информационные (I-кадры) используются для передачи информации и предназначены для передачи данных. Их командное поле содержит номер фрейма в последовательности, помогающей принимающему устройству отслеживать нарушения очередности. Нумерация организована так, что служит одновременно средством подтверждения приема: S- и I-фреймы могут нести номер пакета, который ожидается на входе устройства-отправителя. Счетчик позволяет идентифицировать только 8 фреймов, таким образом, номер следующего ожидаемого приемником пакета может высылаться не с каждым фреймом, а только по получении нескольких промежуточных пакетов. Величина, определяющая их количество, называется размером окна. Четвертый бит контрольного поля у фрейма, сгенерированного первичным устройством, означает запрос данных, а в ответном фрейме он играет роль конечного бита, сигнализирующего о завершении передачи. Супервизорные (S-кадры) используются для функций handshaking (процедура договора устройств о параметрах синхронизации).

Договариваясь о соединении, устройства обмениваются информацией о скорости, максимальной и минимальной длительности цикла, максимальной величине фрейма, размере окна, количестве дополнительных флагов BOF (Beginning Of Frame) и пороговом времени разрыва соединения (промежуток, в течение которого не было принято ни одного корректного фрейма). Под максимальным циклом (maximum turn-around time) подразумевается отрезок времени, по истечении которого устройство должно установить в своем фрейме конечный бит, а под минимальным — длительность паузы, начиная с момента отсылки последнего байта последнего фрейма, запрошенного передающим устройством, чтобы подготовиться к приему данных. BOF выполняет роль задержки перед посылкой очередного фрейма устройствам с большей задержкой. Предусмотрена команда смены ролей XCHG, позволяющая передавать право называться первичным устройством, как эстафету. Для проверки правильности передачи фрейма к нему в конце дописывается поле FCS (Frame Check Sequence), которое содержит контрольную сумму формата CRC-CCITT.

Протокол IrLAP устанавливает правила доступа к ИК-среде, процедуры открытия канала, согласование абонентов сети, обмена информацией и т.д. Хотя IrLAP и обязательный уровень IrDA, но не все его особенности являются таковыми. Любая станция, не принимающая в данный момент времени участия в обмене, перед тем как начать передачу, должна прослушивать канал не менее 500ms, чтобы убедиться в отсутствии трафика. С другой стороны, станция, участвующая в обмене, должна вести передачу не более 500ms. Доступ к среде передачи регулируется посредством специального бита PF (Poll/Final), который устанавливается в теле кадра и выполняет функции, аналогичные маркеру. IrLAP допускает передачи без установления предварительного соединения. По своей природе такая передача является широковещательной и не требует получения подтверждения станции получателя. Процедура открытия канала в этом случае предусматривает обмен идентификационной информацией (ID). Инициатор широковещательного обмена передает ID предопределенное количество раз и прослушивает канал в интервалах между ссылками (слот, Slot). Станция-получатель случайным образом выбирает слот и посылает в ответ свой ID. При обнаружении коллизии процедура повторяется и применяется для согласования операционных параметров станций (скорость посылки бит, максимальная длина пакета). При установлении соединения обмен данными, объем которых не должен превышать 64 байта, осуществляется со скоростью 9.6Kbps. После того, как соединение установлено, скорость обмена и величина пакета данных могут быть по "договоренности" увеличены до максимальных. Кроме пакетов с пользовательскими данными, в обмене участвуют специальные, служащие для управления потоком, коррекции ошибок и передачи маркера. Связь может осуществляться в режиме "1:1" или "1:n". В процессе обмена одна станция является первичной, а остальные — вторичными. Помимо описанных процедур существуют и другие: разрешение конфликтов адресов, изменение роли станции "первичная-вторичная" и т.д.

Протокол управления каналом IrLMP является обязательным, однако его некоторые особенности могут быть опциональны. Каждое устройство IrDA содержит таблицу сервисов и протоколов, доступных в настоящий момент. Эта информация может запрашиваться у других устройств. Мультиплексор администратора соединений и его схема управления позволяют нескольким приложениям обмениваться данными по одному физическому соединению. Протокол IrLMP содержит два компонента: LM-IAS (Link Management Information Access Service) и LM-MUX (Link Management MUltipleXed). LM-IAS управляет информационной базой так, что станции могут запросить, какие службы предоставляются. Эта информация храниться как ряд объектов, с каждым из которых связан набор атрибутов. Например, Device является обязательным и имеет атрибуты DeviceName, IrLMPSupport (номер версии протокола, поддержка ISA и MUX). LM-MUX выполняет мультиплексирование каналов поверх одного соединения, устанавливаемого протоколом IrLAP. С этой целью в Ir-станции определяется множество точек доступа канала — LSAP (Link Service Access Point) — каждая с уникальным селектором. Таким образом каждое из LSAP-соединений определяет логически различные информационные потоки. Протокол LM-MUX обеспечивает передачу данных между точками доступа как внутри одной, так и между другими станциями. Он может работать в одном из двух режимах: эксклюзивном (активизируется только одно соединение LSAP) и мультиплексивном (несколько соединений LSAP могут разделять один канал IrLAP). В этом случае управление потоком должно быть обеспечено протоколами верхнего уровня или непосредственно приложением. Итак, IrLMP функционирует в двух режимах: мультиплексирования и эксклюзивном. Первый позволяет разделять одно физическое соединение нескольким задачам, второй отдает все ресурсы одному-единственному приложению. Каждое виртуальное соединение представлено своей LSAP, таким образом, связь происходит на уровне двух LSAP (LSAP Connection). Также предусмотрено три варианта доступа: с установлением предварительного соединения, без установления предварительного соединения (Сonnectionless) и режим сбора информации о возможностях, сервисах и приложениях удаленного устройства (XID_Discovery).

IrDA TP (Transport Protocol) работает над использованием в качестве транспортного протокола ISO-8073. Его применение позволяет пропускать по линии IrDA несколько потоков данных, с собственным управлением для каждого. Но использование этого протокола не обязательно. TinyTP (Tiny Transport Protocol) — транспортный протокол, осуществляющий функции управления потоком независимыми для любого LSAP-соединения. Каждая точка доступа этого протокола (TTPSAP — TinyTP Service Access Point) идентифицируется с единственной точкой доступа IrLMP и использует единый с ней адрес. TinyTP также ведает сегментацией и сборкой фреймов). IrCOMM — протокол эмуляции последовательного и параллельного портов, основанный на четырех типах сервиса: 3-Wire Raw, 3-Wire, 9-Wire и Centronics. Первый работает только через одно эксклюзивное соединение и используется, когда необходимо передавать исключительно данные. Второй эмулирует параллельную передачу по трем каналам (Signal Common, TD, RD), используя возможности TinyTP, Девятипроводный предназначен для эмуляции последовательных портов и обрабатывает, помимо трех вышеупомянутых, еще шесть сигналов (RTS, CTS, DSR, DTR, CD, RI). Centronics — это не что иное, как виртуальный параллельный интерфейс на базе TinyTP).

Протокол IrTran-P, введенный для передачи изображений, состоит из трех слоев (SCEP, bFTP, UPF) и пользуется услугами упоминавшегося ранее IrCOMM. Назначение SCEP (Simple Command Execute Protocol) — изоляция вышележащих уровней от реалий конкретного интерфейса. Благодаря высокому уровню абстракции удалось спроектировать протокол bFTP (binary File Transfer Protocol) таким образом, что он может единообразно обслуживать нужды самых разных устройств в самых разных конфигурациях соединения. Имя файла упаковывается вместе с данными в единый блок, предусмотрены функции опроса удаленного устройства и согласования параметров представления информации, что максимально автоматизирует процесс. UPF (Uni Picture Format) обеспечивает гарантированное воспроизведение изображений, переданных с одного устройства на другое. UPF основывается на формате JPEG и позволяет сохранять, помимо изображения, еще и все дополнительные сведения о нем, обычно фиксируемые цифровыми камерами (дата, ориентация, уровень белого, уровень черного и т. д.). Чтобы устройства, содержащие аппаратно-зафиксированные алгоритмы обработки изображений, могли адекватно воспринимать модифицированный формат, вся расширенная информация вынесена в заголовок, а само изображение остается нетронутым.

VFIR (Very Fast IR) — дополнение к стандарту IrDA, позволяющее повысить скорость передачи данных до 16Mbps. Введен новый формат фрейма, в котором первым идет поле преамбулы (Preamble), состоящее из 240bit или слотов, после IrLAP-фрейма и контрольной суммы — поле FB (Flush Byte — 8 нулевых бит), в конце — поле Null (24 нулевых бита). Вся переданная информация кодируется по алгоритму HHH, обеспечивающему от 1 до 13 пустых слотов между импульсами. Конечно, необходимые изменения были сделаны и в протоколе IrLAP: добавлено обозначение для скорости 16Mbps в поле Baud Rate, а также увеличен максимально возможный размер окна с 7 до 127 фреймов.

IrBus (IrControl). Спецификация, регулирующая вопросы, связанные с подключением различной периферии, требующей взаимодействия с системными контроллерами. Ее положения применимы также к устройствам удаленного управления ПК, телевизорами высокой четкости (HDTV) и бытовыми приборами.

Физический уровень обеспечивает передачу данных, закодированных по схеме модуляции последовательными импульсами 16-PSM (Pulse Sequence Modulation — 8 слотов, где только 2 или 4 могут содержать импульс) со скоростью 75Kbps. Однако, при использовании такой схемы кодирования, импульс означает "1", его отсутствие — "0". Частота несущей основного сигнала — 1.5MHz с минимальной дальностью действия 5м. Данные пересылаются в пакетах двух видов: длинные (776bit) и короткие (72bit), структура которых абсолютно идентична за исключением значения стартового флага, а также разрядности контрольной суммы. Так, протокол MAC (Media Access Control) регламентирует процессы взаимодействия множественной периферии с единственным основным устройством (Host) и обмена информацией между ними.

Существует три режима работы ведущего устройства: сон (с низким энергопотреблением), нормальный и сосуществование с IrDA (поддержка IrDA SIR 1.1 и IrControl). Если от периферии долгое время не поступает никаких данных, то Host автоматически переходит в состояние сна, причем само периферийное устройство в случае необходимости может самостоятельно перевести его в нормальный режим работы. Host получает данные путем циклического опроса периферии (Poll) с периодом 13.8m s, в ходе которого обслуживается до четырех устройств с критическим временем латентности (для менее требовательной периферии гарантируется период опроса в 69m s). Формат MAC-пакета состоит из поля адреса основного устройства (HA — Host Address), поля адреса периферии (PA — Peripheral Address) и контрольного поля (MAC). Значение структуры MAC зависит от того, основное или периферийное устройство являются "автором" пакета, и содержит вспомогательную системную информацию.

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

В режиме сосуществования основное устройство в первые 50m s отводит на осуществление IrDA SIR 1.1-коммуникаций, а следующие 10m s производит опрос периферии. Устройства, чувствительные к времени задержки, не могут получить в этом режиме надлежащего обслуживания, да и количество некритичного к циклу опроса оборудования уменьшается до двух устройств. Над уровнем MAC располагается слой LLC (Logical Link Control), функции которого сводятся к обеспечению надежного соединения для вышележащих уровней. Именно LLC ведает пересылкой подтверждений об успешной доставке пакетов. Каждому устройству тут присваивается четыре оконечные точки (Endpoints): первая обслуживает "виртуальное" контрольное соединение, вторая и третья — входное и выходное соединения соответственно, а четвертая является опциональной и может служить для еще одного входного или выходного соединения. На прикладном же уровне определено только два стандартных, обслуживающих LLC, протокола — HA (Home Appliances) и HID (Human Interface Device). Последний поддерживает подключение USB-периферии с помощью IrDA Control Transceiver Module (IRB-TM), также являющегося USB-устройством и функционирующего как хаб (Hub).

IrLAN. Протокол обеспечивает доступ в локальную сеть с помощью инфракрасного соединения (сетевая среда IrLAN), где основными являются клиент и провайдер. Провайдер пассивен и ожидает проявления иницативы со стороны клиента, на которого возлагаются все функции по детектированию и конфигурированию соединения. Для этого используется контрольный канал — через него клиент получает необходимые сведения о провайдере из его IAS. Предусмотрено три метода доступа в сеть: через точку доступа (Access Point), типа "порт–порт" (Peer-to-Peer) и режим основного функционирования (Hosted). Access point представляет собой специализированное устройство, имеющее как доступ к сети, так и IR-адаптер. При соединении "порт–порт" два устройства связываются через инфракрасное соединение, а IrLAN лишь эмулирует локальную сеть. В этом случае каждый из участников должен играть роли клиента и провайдера одновременно. В режиме "хост" компьютер-провайдер не только предоставляет услуги подключения к сети для удаленных устройств, но и сам пользуется ими, потому что провайдер и клиент делят один и тот же сетевой адрес и возникает потребность в специальном маршрутизирующем и фильтрующем ПО. При инициализации соединения устанавливаются два "виртуальных канала" — данных и контроля, причем оба используют TinyTP. В канале данных в настоящий момент поддерживаются пакеты типов 802.3 (Ethernet) и 802.5 (Token Ring). Формат фрейма данных IrLAN аналогичен формату ретранслируемого сетевого протокола. Драйвер IrLAN обычно не модифицирует содержимое пакетов, за исключением дескрипторов, и лишь в режиме Hosted могут быть внесены определенные изменения. В канале контроля обмен осуществляется на основе фреймов другого формата. В первом его 8bit-поле содержится команда, в таком же следующем — количество сопутствующих параметров, а дальше идут сами параметры, которые "укладываются" в промежуток 0–8160 bit.

Практически, сегодня уже нет мало-мальски уважающей компании, которая бы не производила компоненты для ИК портов. Например, компания Crystal Semiconductor выпускает микросхему ИК приемопередатчика серии CS8130. Этот прибор является интерфейсом между блоком UART, излучающим светодиодом и светочувствительным PIN-диодом. Он работает в форматах IrDA, ASK и TV формате беспроводного управления, имеет функции программирования мощности передачи и порога срабатывания приемника. Микросхема выполнена в корпусе типа SSOP очень малого размера (5х7 mm).

В качестве примера "интеграции" можно рассмотреть интерфейс IrDA, добавленного на материнскую плату обычного ПК (в связи со сложностью схемы она не прилагается). Блок UART, имеющийся на плате, можно использовать как для того, чтобы управлять проводным СОМ-портом интерфейса RS-232, используя, например, преобразователь напряжения МАХ562, так и для управления ИК-портом, соответствующим стандарту IrDA, используя трансивер CS8130. Внешний вывод PWRDN# микросхемы CS8130 используется для перевода в третье состояние линий RXD и FORM/BSY, что позволит использовать UART. И наоборот, с помощью выводов EN и SHDN# можно перевести в третье состояние выходы R2OUT и R3OUT микросхемы МАХ562, передавая управление UART трансиверу CS8130. В качестве второго примера можно привести схему (также не прилагается) внешнего модуля, который можно подключить к имеющемуся СОМ-порту любого компьютера. Этот модуль очень компактен и расположен в конце метрового кабеля, свободно ориентируемого в пространстве. Более подробно с конкретными реализациями интерфейса IrDA можно в документах, указанных в "списке дополнительных источников"…

Список основных источников

  1. Infrared Data Association Control Specification (Formerly IrBus). IrDA CIR (Control IR) Standard, www.irda.org
  2. Infrared Data Association Minimal Protocol Implementation (IrDA Lite), www.irda.org
  3. Infrared Data Association Serial Interface Physical Layer Specification, www.irda.org
  4. Infrared Data Association LAN Access Extensions for Link Management Protocol (IrLAN), www.irda.org
  5. IrDA Serial Infrared Link Access Protocol Specification for 16Mbps Addition (VFIR), www.irda.org
  6. Infrared Data Association Serial Infrared Link Access Protocol (IrLAP), www.irda.org
  7. Infrared Data Association Link Management Protocol (IrLMP), www.irda.org
  8. Infrared Data Association Specification for IR Mobile Communications (IrMC), www.irda.org
  9. Infrared Data Association Object Exchange Protocol (IrOBEX), www.irda.org
  10. Infrared Data Association Plug-and-Play Extension for Link Management Protocol (IrPnP), www.irda.org
  11. Infrared Data Association TinyTP: A Flow-Control Mechanism for use with IrLMP, www.irda.org
  12. IrTran-P (Infrared Transfer Picture) Specification IrDA Application for Consumer Digital Cameras, www.irda.org
  13. JetSend Protocol for IrDA, www.irda.org
  14. ETSI: Radio Equipment and Systems Methods of Measurement for Mobile Radio Equipment (ETR027)

Список дополнительных источников

  1. EMI: Stability Against. Electromagnetic Interference, www.vishay.de
  2. About IrDA Compatible Data Transmission: Physical Layer, www.vishay.de
  3. Quality & Reliability Information, www.vishay.de
  4. IrDA Recommended Circuits, www.vishay.de
  5. IrDA Recommended Design Boards, www.vishay.de
  6. IrDA: Infrared Dongle Interface, www.vishay.de
  7. About IrDA Compatible Data Transmission: Software Protocol, www.vishay.de
  8. TFDx4x00 Serial Infrared Transceiver Module Family (SIR, 115.2Kbps), www.vishay.de
  9. TFDx5x02 Serial Infrared Transceiver Module Family (MIR, 1Mbps), www.vishay.de
  10. TFDx6x0x Serial Infrared Transceiver Module Family (FIR, 4Mbps), www.vishay.de




6 июля 2000 Г.

Инфракрасный протокол связи - IrDA

Инфракрасный протокол связи — IrDA

Летом 1993 года компания Hewlett-Packard организовала общепромышленное совещание, чтобы обсудить будущее ИК (инфракрасный) передачи данных. Многообразие несовместимых стандартов было печальной реальностью, причинявшей массу неудобств всем от того, что устройства от разных производителей были несовместимы. Телевизоры, видеомагнитофоны, другая бытовая техника с ИК управлением сегодня встречается на "каждом углу", однако в них используются несовместимые физические и программные интерфейсы. Целью совещания было обсуждение путей, которыми промышленность может пойти к общему стандарту, способному совместимость всех устройств, использующих ИК порт. На совещании был сформирован консорциум всех ведущих компаний, названных Ассоциацией инфракрасной передачи данных и вскоре (в июне 1994 года) была объявлена первая одноименная версия стандарта, включающая физический и программный протоколы — IrDA 1.0. Текущая версия — 1.1. В настоящей статье будут описаны основные моменты действующего ныне стандарта.

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

Устройство инфракрасного интерфейса подразделяется на два основных блока: преобразователь (модули приемника-детектора и диода с управляющей электроникой) и кодер-декодер. Блоки обмениваются данными по электрическому интерфейсу, в котором в том же виде транслируются через оптическое соединение, за исключением того, что здесь они пакуются в кадры простого формата — данные передаются 10bit символами, с 8bit данных, одним старт-битом в начале и одним стоп-битом в конце данных.

Сам порт IrDA основан на архитектуре коммуникационного СОМ-порта ПК, который использует универсальный асинхронный приемо-передатчик UART (Universal Asynchronous Receiver Transmitter) и работает со скоростью передачи данных 2400–115200 bps.

Связь в IrDA полудуплексная, т.к. передаваемый ИК-луч неизбежно засвечивает соседний PIN-диодный усилитель приемника. Воздушный промежуток между устройствами позволяет принять ИК-энергию только от одного источника в данный момент.

Рассмотрим физические основы IrDA. Передающую часть. Байт, который требуется передать, посылается в блок UART из CPU командой записи ввода-вывода. UART добавляет старт-стоп биты и передает символ последовательно, начиная с младшего значения бита. Стандарт IrDA требует, чтобы все последовательные биты кодировались таким образом: логический "0" передается одиночным ИК-импульсом длиной от 1.6m s до 3/16 периода передачи битовой ячейки, а логическая "1" передается как отсутствие ИК-импульса. Минимальная мощность потребления гарантируется при фиксированной длине импульса 1.6m s.

По окончании кодирования битов необходимо возбудить один или несколько ИК-светодиодов током соответствующего уровня, чтобы выработать ИК-импульс требуемой интенсивности. Стандарт IrDA требует, чтобы интенсивность излучения в конусе ± 30° была в диапазоне 40–50 m W/Sr, причем ИК-светодиод должен иметь длину волны 880nm, как уже отмечалось ранее. Радиальная чувствительность приемника и длины связи диктуются, исходя из требований самой спецификации IrDA.

Приемная часть. Переданные ИК-импульсы поступают на PIN-диод, преобразующий импульсы света в токовые импульсы, которые усиливаются, фильтруются и сравниваются с пороговым уровнем для преобразования в логические уровни. ИК-импульс в активном состоянии генерирует "0", при отсутствии света генерируется логическая "1". Протокол IrDA требует, чтобы приемник точно улавливал ИК-импульсы мощностью от 4m W/sm2 до 500mW/sm2 в угловом диапазоне ± 15°.

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

Стандарт IrDA включает в себя стек протоколов трех согласованных обязательных уровней: IrPL (Physical Layer), IrLAP (Link Access Protocol) и IrLMP (Link Management Protocol).

Физический уровень (Physical Layer). Спецификация этого протокола устанавливает стандарты для Ir-трансиверов, методов модуляции и схемы кодирования/декодирования, а также ряд физических параметров. Стандарт предусматривает использование длины волны в диапазоне 850–900 nm. Минимальная и максимальная интенсивность передатчика (как уже говорилось) составляет 40–50 m W/Sr соответственно внутри 30° конуса. Для стандарта IrDA (скорость передачи данных 115.2Kbps) схема кодирования аналогична используемой в традиционной UART: бит старта ("0") и стоп-бит ("1") добавляются перед и после каждого байта соответственно. Но вместо схемы NZR (Non-Return to Zero) используется кодировка, подобная RZ (Return to Zero), т.е. двоичный "0" кодируется единичным импульсом, а "1" — его отсутствием. Кадры отделяются друг от друга байтами Escape-последовательности, содержащимися в теле самого кадра. Для определения ошибок (EDt — Error Detection) используется 16bit циклическая контрольная сумма. Например, уже в стандарте IrDA 1.1 для протокола обмена 1.152Mbps (синхронизация выполняется как в протоколе HDLP — High-level Data Link Protocol высокого уровня) и 4Mbps (использование 4-PPM — Pulse-Phase Modulation) старт-бит и стоп-бит не применяются. Так, фреймы, получаемые от более высокоуровневого протокола IrLAP, вкладываются в поле данных фреймов SIR, согласно используемому методу кодирования. Стандарт не содержит обязательных вариантов реализации этой процедуры и допускает варьирование алгоритмов в зависимости от возможностей конкретного оборудования. В зависимости от скорости соединения предлагаются методы кодирования: асинхронный (ASYNC, 9600–115200 bps), синхронный (HDLC, 0.576–1.152 Mbps) и 4-PPM (4Mbps).

Программный протокол. Он включает в себя: IrLAP (Link Access Protocol), занимающийся разбиением данных на блоки, контролем ошибок и другими функциями низкого уровня, и IrLMP (Link Management Protocol), позволяющий по одной ИК-линии обмениваться данными между несколькими приложениями. Данный протокол базируется на существующих стандартах асинхронной полудуплексной передачи данных HDLC и SDLC. Инфракрасная технология поддерживает только однонаправленную передачу информации, поэтому, в следствие полудуплексной природы SIR, возникла архитектура с одним главным (первичным) и множественными подчиненными (вторичными) устройствами. Схема обращения устройств представляет собой обычный протокол обмена данными, где есть фазы запросов (Request) и ответов (Response). Так, первичное устройство отвечает за организацию соединения, обработку ошибок, и посланные им фреймы называются управляющими (Command Frames), а пакеты вторичных устройств именуются ответными (Response Frames). Обмен информацией идет только с первичным устройством, которое всегда выступает инициатором соединения, однако его роль может играть любое из устройств, поддерживающих необходимые для этого функции. По желанию может быть включен протокол транспортного уровня, позволяющий осуществлять контроль передачи между приложениями в случае одновременной работы нескольких приложений на одной физической линии. Для разных уровней имеется три интерфейса. Служебные примитивы уровня LM-SVC позволяют одному из устройств IrDA узнать какие сервис и протоколы зарегистрированы на другом устройстве. Примитивы доступа к уровню M-SVC управляют режимом связи, открытием и закрытием независимых соединений между клиентами, а так же отправкой и приемом данных. Интерфейс L-SVC дает доступ к функциям протокола IrLAP.

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

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

Максимальный квант передачи может быть равен 100, 200 или 500 ms. Он представляет собой максимальное время, в течение которого устройство передает данные до того, как перейдет к прослушиванию подтверждения приема и зависит от скорости передачи, емкости буфера в принимающем устройстве. Минимальная длительность передачи определяется неспособностью передающего устройства перейти к приему данных сразу после выдачи последнего бита. Дело в том, что усилитель PIN-диода в передающем устройстве входит в состояние насыщения от собственной передачи. Время восстановления приемника — переменная величина, составляющая 0.001–10 ms. Этот параметр для данного устройства должен быть заранее известен и учитывается в фазе переговоров об установлении соединения. Процедуры расширенного восстановления включают в себя функцию сброса, которая прерывает связь, но потом восстанавливает активное состояние с параметрами соединения, используемые по умолчанию.

Стандартом предусмотрено два основных состояния: NRM (Normal Response Mode) и NDM (Normal Disconnect Mode). Первое — это состояние соединения с распределенными ролями первичного и вторичных устройств. Второе предусматривает функции детектирования доступных устройств, сбор информации о них, разрешение адресных конфликтов, а также позволяет передавать данные широковещательно, без установления соединения. В протоколе IrLAP используется три типа кадров по аналогии с HDLC. Поле данных присутствует только у первого и последнего вида фреймов, оно не ограничено по длине, но число бит в нем должно быть кратно 8. Ненумерованные (U-кадры) используются для установления связи: операции соединения и разъединения, информирования об ошибках и передачи данных, если нет необходимости в нумерации последовательностей. Информационные (I-кадры) используются для передачи информации и предназначены для передачи данных. Их командное поле содержит номер фрейма в последовательности, помогающей принимающему устройству отслеживать нарушения очередности. Нумерация организована так, что служит одновременно средством подтверждения приема: S- и I-фреймы могут нести номер пакета, который ожидается на входе устройства-отправителя. Счетчик позволяет идентифицировать только 8 фреймов, таким образом, номер следующего ожидаемого приемником пакета может высылаться не с каждым фреймом, а только по получении нескольких промежуточных пакетов. Величина, определяющая их количество, называется размером окна. Четвертый бит контрольного поля у фрейма, сгенерированного первичным устройством, означает запрос данных, а в ответном фрейме он играет роль конечного бита, сигнализирующего о завершении передачи. Супервизорные (S-кадры) используются для функций handshaking (процедура договора устройств о параметрах синхронизации).

Договариваясь о соединении, устройства обмениваются информацией о скорости, максимальной и минимальной длительности цикла, максимальной величине фрейма, размере окна, количестве дополнительных флагов BOF (Beginning Of Frame) и пороговом времени разрыва соединения (промежуток, в течение которого не было принято ни одного корректного фрейма). Под максимальным циклом (maximum turn-around time) подразумевается отрезок времени, по истечении которого устройство должно установить в своем фрейме конечный бит, а под минимальным — длительность паузы, начиная с момента отсылки последнего байта последнего фрейма, запрошенного передающим устройством, чтобы подготовиться к приему данных. BOF выполняет роль задержки перед посылкой очередного фрейма устройствам с большей задержкой. Предусмотрена команда смены ролей XCHG, позволяющая передавать право называться первичным устройством, как эстафету. Для проверки правильности передачи фрейма к нему в конце дописывается поле FCS (Frame Check Sequence), которое содержит контрольную сумму формата CRC-CCITT.

Протокол IrLAP устанавливает правила доступа к ИК-среде, процедуры открытия канала, согласование абонентов сети, обмена информацией и т.д. Хотя IrLAP и обязательный уровень IrDA, но не все его особенности являются таковыми. Любая станция, не принимающая в данный момент времени участия в обмене, перед тем как начать передачу, должна прослушивать канал не менее 500ms, чтобы убедиться в отсутствии трафика. С другой стороны, станция, участвующая в обмене, должна вести передачу не более 500ms. Доступ к среде передачи регулируется посредством специального бита PF (Poll/Final), который устанавливается в теле кадра и выполняет функции, аналогичные маркеру. IrLAP допускает передачи без установления предварительного соединения. По своей природе такая передача является широковещательной и не требует получения подтверждения станции получателя. Процедура открытия канала в этом случае предусматривает обмен идентификационной информацией (ID). Инициатор широковещательного обмена передает ID предопределенное количество раз и прослушивает канал в интервалах между ссылками (слот, Slot). Станция-получатель случайным образом выбирает слот и посылает в ответ свой ID. При обнаружении коллизии процедура повторяется и применяется для согласования операционных параметров станций (скорость посылки бит, максимальная длина пакета). При установлении соединения обмен данными, объем которых не должен превышать 64 байта, осуществляется со скоростью 9.6Kbps. После того, как соединение установлено, скорость обмена и величина пакета данных могут быть по "договоренности" увеличены до максимальных. Кроме пакетов с пользовательскими данными, в обмене участвуют специальные, служащие для управления потоком, коррекции ошибок и передачи маркера. Связь может осуществляться в режиме "1:1" или "1:n". В процессе обмена одна станция является первичной, а остальные — вторичными. Помимо описанных процедур существуют и другие: разрешение конфликтов адресов, изменение роли станции "первичная-вторичная" и т.д.

Протокол управления каналом IrLMP является обязательным, однако его некоторые особенности могут быть опциональны. Каждое устройство IrDA содержит таблицу сервисов и протоколов, доступных в настоящий момент. Эта информация может запрашиваться у других устройств. Мультиплексор администратора соединений и его схема управления позволяют нескольким приложениям обмениваться данными по одному физическому соединению. Протокол IrLMP содержит два компонента: LM-IAS (Link Management Information Access Service) и LM-MUX (Link Management MUltipleXed). LM-IAS управляет информационной базой так, что станции могут запросить, какие службы предоставляются. Эта информация храниться как ряд объектов, с каждым из которых связан набор атрибутов. Например, Device является обязательным и имеет атрибуты DeviceName, IrLMPSupport (номер версии протокола, поддержка ISA и MUX). LM-MUX выполняет мультиплексирование каналов поверх одного соединения, устанавливаемого протоколом IrLAP. С этой целью в Ir-станции определяется множество точек доступа канала — LSAP (Link Service Access Point) — каждая с уникальным селектором. Таким образом каждое из LSAP-соединений определяет логически различные информационные потоки. Протокол LM-MUX обеспечивает передачу данных между точками доступа как внутри одной, так и между другими станциями. Он может работать в одном из двух режимах: эксклюзивном (активизируется только одно соединение LSAP) и мультиплексивном (несколько соединений LSAP могут разделять один канал IrLAP). В этом случае управление потоком должно быть обеспечено протоколами верхнего уровня или непосредственно приложением. Итак, IrLMP функционирует в двух режимах: мультиплексирования и эксклюзивном. Первый позволяет разделять одно физическое соединение нескольким задачам, второй отдает все ресурсы одному-единственному приложению. Каждое виртуальное соединение представлено своей LSAP, таким образом, связь происходит на уровне двух LSAP (LSAP Connection). Также предусмотрено три варианта доступа: с установлением предварительного соединения, без установления предварительного соединения (Сonnectionless) и режим сбора информации о возможностях, сервисах и приложениях удаленного устройства (XID_Discovery).

IrDA TP (Transport Protocol) работает над использованием в качестве транспортного протокола ISO-8073. Его применение позволяет пропускать по линии IrDA несколько потоков данных, с собственным управлением для каждого. Но использование этого протокола не обязательно. TinyTP (Tiny Transport Protocol) — транспортный протокол, осуществляющий функции управления потоком независимыми для любого LSAP-соединения. Каждая точка доступа этого протокола (TTPSAP — TinyTP Service Access Point) идентифицируется с единственной точкой доступа IrLMP и использует единый с ней адрес. TinyTP также ведает сегментацией и сборкой фреймов). IrCOMM — протокол эмуляции последовательного и параллельного портов, основанный на четырех типах сервиса: 3-Wire Raw, 3-Wire, 9-Wire и Centronics. Первый работает только через одно эксклюзивное соединение и используется, когда необходимо передавать исключительно данные. Второй эмулирует параллельную передачу по трем каналам (Signal Common, TD, RD), используя возможности TinyTP, Девятипроводный предназначен для эмуляции последовательных портов и обрабатывает, помимо трех вышеупомянутых, еще шесть сигналов (RTS, CTS, DSR, DTR, CD, RI). Centronics — это не что иное, как виртуальный параллельный интерфейс на базе TinyTP).

Протокол IrTran-P, введенный для передачи изображений, состоит из трех слоев (SCEP, bFTP, UPF) и пользуется услугами упоминавшегося ранее IrCOMM. Назначение SCEP (Simple Command Execute Protocol) — изоляция вышележащих уровней от реалий конкретного интерфейса. Благодаря высокому уровню абстракции удалось спроектировать протокол bFTP (binary File Transfer Protocol) таким образом, что он может единообразно обслуживать нужды самых разных устройств в самых разных конфигурациях соединения. Имя файла упаковывается вместе с данными в единый блок, предусмотрены функции опроса удаленного устройства и согласования параметров представления информации, что максимально автоматизирует процесс. UPF (Uni Picture Format) обеспечивает гарантированное воспроизведение изображений, переданных с одного устройства на другое. UPF основывается на формате JPEG и позволяет сохранять, помимо изображения, еще и все дополнительные сведения о нем, обычно фиксируемые цифровыми камерами (дата, ориентация, уровень белого, уровень черного и т. д.). Чтобы устройства, содержащие аппаратно-зафиксированные алгоритмы обработки изображений, могли адекватно воспринимать модифицированный формат, вся расширенная информация вынесена в заголовок, а само изображение остается нетронутым.

VFIR (Very Fast IR) — дополнение к стандарту IrDA, позволяющее повысить скорость передачи данных до 16Mbps. Введен новый формат фрейма, в котором первым идет поле преамбулы (Preamble), состоящее из 240bit или слотов, после IrLAP-фрейма и контрольной суммы — поле FB (Flush Byte — 8 нулевых бит), в конце — поле Null (24 нулевых бита). Вся переданная информация кодируется по алгоритму HHH, обеспечивающему от 1 до 13 пустых слотов между импульсами. Конечно, необходимые изменения были сделаны и в протоколе IrLAP: добавлено обозначение для скорости 16Mbps в поле Baud Rate, а также увеличен максимально возможный размер окна с 7 до 127 фреймов.

IrBus (IrControl). Спецификация, регулирующая вопросы, связанные с подключением различной периферии, требующей взаимодействия с системными контроллерами. Ее положения применимы также к устройствам удаленного управления ПК, телевизорами высокой четкости (HDTV) и бытовыми приборами.

Физический уровень обеспечивает передачу данных, закодированных по схеме модуляции последовательными импульсами 16-PSM (Pulse Sequence Modulation — 8 слотов, где только 2 или 4 могут содержать импульс) со скоростью 75Kbps. Однако, при использовании такой схемы кодирования, импульс означает "1", его отсутствие — "0". Частота несущей основного сигнала — 1.5MHz с минимальной дальностью действия 5м. Данные пересылаются в пакетах двух видов: длинные (776bit) и короткие (72bit), структура которых абсолютно идентична за исключением значения стартового флага, а также разрядности контрольной суммы. Так, протокол MAC (Media Access Control) регламентирует процессы взаимодействия множественной периферии с единственным основным устройством (Host) и обмена информацией между ними.

Существует три режима работы ведущего устройства: сон (с низким энергопотреблением), нормальный и сосуществование с IrDA (поддержка IrDA SIR 1.1 и IrControl). Если от периферии долгое время не поступает никаких данных, то Host автоматически переходит в состояние сна, причем само периферийное устройство в случае необходимости может самостоятельно перевести его в нормальный режим работы. Host получает данные путем циклического опроса периферии (Poll) с периодом 13.8m s, в ходе которого обслуживается до четырех устройств с критическим временем латентности (для менее требовательной периферии гарантируется период опроса в 69m s). Формат MAC-пакета состоит из поля адреса основного устройства (HA — Host Address), поля адреса периферии (PA — Peripheral Address) и контрольного поля (MAC). Значение структуры MAC зависит от того, основное или периферийное устройство являются "автором" пакета, и содержит вспомогательную системную информацию.

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

В режиме сосуществования основное устройство в первые 50m s отводит на осуществление IrDA SIR 1.1-коммуникаций, а следующие 10m s производит опрос периферии. Устройства, чувствительные к времени задержки, не могут получить в этом режиме надлежащего обслуживания, да и количество некритичного к циклу опроса оборудования уменьшается до двух устройств. Над уровнем MAC располагается слой LLC (Logical Link Control), функции которого сводятся к обеспечению надежного соединения для вышележащих уровней. Именно LLC ведает пересылкой подтверждений об успешной доставке пакетов. Каждому устройству тут присваивается четыре оконечные точки (Endpoints): первая обслуживает "виртуальное" контрольное соединение, вторая и третья — входное и выходное соединения соответственно, а четвертая является опциональной и может служить для еще одного входного или выходного соединения. На прикладном же уровне определено только два стандартных, обслуживающих LLC, протокола — HA (Home Appliances) и HID (Human Interface Device). Последний поддерживает подключение USB-периферии с помощью IrDA Control Transceiver Module (IRB-TM), также являющегося USB-устройством и функционирующего как хаб (Hub).

IrLAN. Протокол обеспечивает доступ в локальную сеть с помощью инфракрасного соединения (сетевая среда IrLAN), где основными являются клиент и провайдер. Провайдер пассивен и ожидает проявления иницативы со стороны клиента, на которого возлагаются все функции по детектированию и конфигурированию соединения. Для этого используется контрольный канал — через него клиент получает необходимые сведения о провайдере из его IAS. Предусмотрено три метода доступа в сеть: через точку доступа (Access Point), типа "порт–порт" (Peer-to-Peer) и режим основного функционирования (Hosted). Access point представляет собой специализированное устройство, имеющее как доступ к сети, так и IR-адаптер. При соединении "порт–порт" два устройства связываются через инфракрасное соединение, а IrLAN лишь эмулирует локальную сеть. В этом случае каждый из участников должен играть роли клиента и провайдера одновременно. В режиме "хост" компьютер-провайдер не только предоставляет услуги подключения к сети для удаленных устройств, но и сам пользуется ими, потому что провайдер и клиент делят один и тот же сетевой адрес и возникает потребность в специальном маршрутизирующем и фильтрующем ПО. При инициализации соединения устанавливаются два "виртуальных канала" — данных и контроля, причем оба используют TinyTP. В канале данных в настоящий момент поддерживаются пакеты типов 802.3 (Ethernet) и 802.5 (Token Ring). Формат фрейма данных IrLAN аналогичен формату ретранслируемого сетевого протокола. Драйвер IrLAN обычно не модифицирует содержимое пакетов, за исключением дескрипторов, и лишь в режиме Hosted могут быть внесены определенные изменения. В канале контроля обмен осуществляется на основе фреймов другого формата. В первом его 8bit-поле содержится команда, в таком же следующем — количество сопутствующих параметров, а дальше идут сами параметры, которые "укладываются" в промежуток 0–8160 bit.

Практически, сегодня уже нет мало-мальски уважающей компании, которая бы не производила компоненты для ИК портов. Например, компания Crystal Semiconductor выпускает микросхему ИК приемопередатчика серии CS8130. Этот прибор является интерфейсом между блоком UART, излучающим светодиодом и светочувствительным PIN-диодом. Он работает в форматах IrDA, ASK и TV формате беспроводного управления, имеет функции программирования мощности передачи и порога срабатывания приемника. Микросхема выполнена в корпусе типа SSOP очень малого размера (5х7 mm).

В качестве примера "интеграции" можно рассмотреть интерфейс IrDA, добавленного на материнскую плату обычного ПК (в связи со сложностью схемы она не прилагается). Блок UART, имеющийся на плате, можно использовать как для того, чтобы управлять проводным СОМ-портом интерфейса RS-232, используя, например, преобразователь напряжения МАХ562, так и для управления ИК-портом, соответствующим стандарту IrDA, используя трансивер CS8130. Внешний вывод PWRDN# микросхемы CS8130 используется для перевода в третье состояние линий RXD и FORM/BSY, что позволит использовать UART. И наоборот, с помощью выводов EN и SHDN# можно перевести в третье состояние выходы R2OUT и R3OUT микросхемы МАХ562, передавая управление UART трансиверу CS8130. В качестве второго примера можно привести схему (также не прилагается) внешнего модуля, который можно подключить к имеющемуся СОМ-порту любого компьютера. Этот модуль очень компактен и расположен в конце метрового кабеля, свободно ориентируемого в пространстве. Более подробно с конкретными реализациями интерфейса IrDA можно в документах, указанных в "списке дополнительных источников"…

Список основных источников

  1. Infrared Data Association Control Specification (Formerly IrBus). IrDA CIR (Control IR) Standard, www.irda.org
  2. Infrared Data Association Minimal Protocol Implementation (IrDA Lite), www.irda.org
  3. Infrared Data Association Serial Interface Physical Layer Specification, www.irda.org
  4. Infrared Data Association LAN Access Extensions for Link Management Protocol (IrLAN), www.irda.org
  5. IrDA Serial Infrared Link Access Protocol Specification for 16Mbps Addition (VFIR), www.irda.org
  6. Infrared Data Association Serial Infrared Link Access Protocol (IrLAP), www.irda.org
  7. Infrared Data Association Link Management Protocol (IrLMP), www.irda.org
  8. Infrared Data Association Specification for IR Mobile Communications (IrMC), www.irda.org
  9. Infrared Data Association Object Exchange Protocol (IrOBEX), www.irda.org
  10. Infrared Data Association Plug-and-Play Extension for Link Management Protocol (IrPnP), www.irda.org
  11. Infrared Data Association TinyTP: A Flow-Control Mechanism for use with IrLMP, www.irda.org
  12. IrTran-P (Infrared Transfer Picture) Specification IrDA Application for Consumer Digital Cameras, www.irda.org
  13. JetSend Protocol for IrDA, www.irda.org
  14. ETSI: Radio Equipment and Systems Methods of Measurement for Mobile Radio Equipment (ETR027)

Список дополнительных источников

  1. EMI: Stability Against. Electromagnetic Interference, www.vishay.de
  2. About IrDA Compatible Data Transmission: Physical Layer, www.vishay.de
  3. Quality & Reliability Information, www.vishay.de
  4. IrDA Recommended Circuits, www.vishay.de
  5. IrDA Recommended Design Boards, www.vishay.de
  6. IrDA: Infrared Dongle Interface, www.vishay.de
  7. About IrDA Compatible Data Transmission: Software Protocol, www.vishay.de
  8. TFDx4x00 Serial Infrared Transceiver Module Family (SIR, 115.2Kbps), www.vishay.de
  9. TFDx5x02 Serial Infrared Transceiver Module Family (MIR, 1Mbps), www.vishay.de
  10. TFDx6x0x Serial Infrared Transceiver Module Family (FIR, 4Mbps), www.vishay.de