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

Интерфейс L-SVC дает доступ к функциям протокола IrLAP.
Устройства, соответствующие стандарту IrDA, перед началом передачи должны в первую очередь попытался выявить (прочитать) нет ли в ближайшей окрестности активности в ИК-диапазоне, установить не ведется ли какая-либо передача в пределах его досягаемости. Если такая активность обнаружена, то программе, выдающей запрос, посылается соответствующее сообщение, а сам блок откладывает передачу. Поскольку оба соединяющихся устройства могут быть компьютерами (а не компьютер и принтер, или клавиатура, мышь), то любое из них может быть ведущим. Выбор зависит от того, какое устройство первым проявит инициативу.
Каждое устройство имеет 32bit адрес, вырабатываемый случайным образом при установлении соединения. Каждому кадру в пределах соединения ведущее устройство при старте присваивает 7bit-адрес соединения. Для возможных, но нежелательных случаев, когда два устройства имеют одинаковый адрес, предусмотрен такой механизм, когда ведущее устройство дает команду всем подчиненным устройствам изменить их адреса. В процессе установления связи два устройства "договариваются" о максимальной скорости, с которой они оба могут работать. Все первичные передачи, выполняемые до фазы переговоров, по умолчанию ведутся на скорости 9.6Kbps.
Максимальный квант передачи может быть равен 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 (процедура договора устройств о параметрах синхронизации).

Под максимальным циклом (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).

Centronics – это не что иное, как виртуальный параллельный интерфейс на базе TinyTP).


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



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. В качестве второго примера можно привести схему (также не прилагается) внешнего модуля, который можно подключить к имеющемуся СОМ-порту любого компьютера. Этот модуль очень компактен и расположен в конце метрового кабеля, свободно ориентируемого в пространстве.
Автор: Максим Лень
Источник: www.ixbt.ru
//

По всем вопросам просьба писать мне на icenet@narod.ru