Обзоры
IrDA: связанные одной нитью
0

IrDA: связанные одной нитью

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

Пионером инфракрасных коммуникаций можно считать Hewlett-Packard, которая оснащала Serial Infrared Port еще свои калькуляторы. Поэтому нет ничего удивительного в том, что корпорация выступила вместе с IBM инициатором образования в 1993 г. организации IrDA (Infrared Data Association), призванной создать стандарт инфракрасной связи. На первом этапе она насчитывала 50 членов, а сегодня их уже более 120. В списке практически все крупные компании, связанные с отраслью мобильных компьютеров, — Palm Computing, Acer, Matsushita, Sony, Motorola, Fujitsu, TI, Intel, Compaq и Microsoft, а также представители некоторых других отраслей — Citizen Watch, CANAL+, Fuji Photo Film, Ricoh и многие другие. Первым плодом совместных усилий стал стандарт SIR Physical Layer Link в сентябре 93-го. А потом завертелось: июнь 1994 г. — опубликована первая версия стандартов, включающая в себя SIR Data Link, а также спецификации Link Access Protocol (IrLAP) и Link Management Protocol (IrLMP). В октябре 1995 г. появилось расширение FastIR, предусматривающее соединения на скорости 4 Mbps. Были анонсированы первые продукты на основе IrDA, и в ноябре Microsoft заявила о поддержке стандарта в ОС Windows 95.

Как сегодня обстоят дела с данной технологией и стандартами? Собственно, об этом статья. А начнем с некоторых фундаментальных моментов, и в частности со…

Спецификации
Физический уровень (Serial Infrared Physical Layer)

Устройство инфракрасного интерфейса подразделяется на два основных блока: преобразователь и кодер/декодер. В блок преобразователя входят модули приемника/детектора и диода с управляющей электроникой. Блоки обмениваются данными по электрическому интерфейсу, в котором в том же виде транслируются через оптическое соединение, за исключением того, что здесь они пакуются в кадры простого формата — стартовый бит, восемь бит данных, стоповый бит. В компьютер информация попадает через UART 16550.

В качестве излучателей используются светодиоды, которые генерируют свет с длиной волны от 0,85 до 0,90 мкм. Соответствующие полному стандарту (Standard-Standard) приемники и передатчики должны поддерживать устойчивое соединение на расстоянии до 1 м. Впрочем, были разработаны и более экономные варианты спецификации: "Standard-Low Power" и "Low Power Option — Low Power" с дальностью действия — 0,3 и 0,2 м соответственно.

Существует две схемы кодирования данных. Для скоростей передачи до 1,152 Mbps включительно применяется самый простой вариант кода RZI (Return-to-Zero-Inverted), когда нулевое значение бита обозначается импульсом, а для соединений на скорости 4 Mbps — код 4 PPM (Pulse Position Modulation), согласно которому каждые два бита, объединенные в "символ данных", представлены четырьмя "временными слотами" в оптическом сигнале, причем импульс присутствует только в одном из них. Фреймы (пакеты), получаемые от более высокоуровневого протокола IrLAP, "вкладываются" (wrapping) в поле данных фреймов SIR согласно используемому методу кодирования. Стандарт не содержит обязательных вариантов реализации этой процедуры (предлагаются в зависимости от скорости соединения асинхронный (ASYNC) — 9,6—115,2 Kbps, синхронный HDLC — 0,576—1,152 Mbps и 4 PPM — 4 Mbps) и допускает варьирование алгоритмов в зависимости от возможностей конкретного оборудования.

IrLAP

Infrared Link Access Protocol базируется на существующих стандартах асинхронной полудуплексной передачи данных HDLC и SDLC. Инфракрасная технология поддерживает только однонаправленную передачу информации. Как следствие полудуплексной природы SIR возникла архитектура с одним главным (первичным) и множественными подчиненными (вторичными) устройствами. Первичное устройство отвечает за организацию соединения, обработку ошибок, а посланные им фреймы называются управляющими (command frames). Фреймы вторичных устройств именуются ответными (response frames). Обмен информацией идет только с первичным устройством, которое всегда выступает инициатором соединения. В принципе, его роль может играть любое из устройств, поддерживающих необходимые для этого функции.

Стандартом предусмотрено два основных состояния: NRM (Normal Response Mode) и NDM (Normal Disconnect Mode). Первое из них — это состояние соединения с распределенными ролями первичного и вторичных устройств. Второе — предусматривает функции детектирования доступных устройств, сбор информации о них, разрешение адресных конфликтов, а также позволяет передавать данные широковещательно, без установления соединения.

В качестве элементарной порции данных используется фрейм (рис. 1). Заголовок фрейма состоит из двух полей по 8 бит: адресного (идентификатор соединения) и управляющего. Управляющее поле характеризует фрейм как ненумерованный (U), супервизорный (S) или данных (I), соответственно существует три формата этого поля. Поле данных присутствует только у первого и последнего вида фреймов, оно не ограничено по длине, но число бит в нем должно быть кратно 8. Формат U используется для операций соединения и разъединения, информирования об ошибках и передачи данных, если нет необходимости в нумерации последовательностей. Супервизорные фреймы применяются для процедуры опрос-подтверждение между первичным и вторичным устройствами. И наконец, I-фреймы предназначены для передачи данных, их командное поле содержит номер фрейма в последовательности, помогающей принимающему устройству отслеживать нарушения очередности. Нумерация организована так, что служит одновременно средством подтверждения приема: S-фрейм и I-фрейм могут нести номер пакета, который ожидается на входе устройства-отправителя. Счетчик позволяет идентифицировать только 8 фреймов, таким образом, номер следующего ожидаемого приемником пакета может высылаться не с каждым фреймом, а только по получении нескольких промежуточных пакетов. Величина, определяющая их количество, называется размером окна. Четвертый бит контрольного поля у фрейма, сгенерированного первичным устройством, означает запрос данных, а в ответном фрейме он играет роль конечного бита (final-bit), сигнализирующего о завершении передачи.

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

VFIR

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

IrLMP

Сам по себе IrLAP не имеет средств разделения ресурсов канала между несколькими приложениями и беспомощен в случае захвата ресурсов одной задачей. Чтобы не дать ПО "поссориться", был создан еще один уровень стека — Infrared Link Management Protocol. В его основе лежит механизм конкурентного доступа к функциям IrLAP, называющийся LM-MUX (LM-Multiplexer). К нему можно получить доступ через LM-IAS (Information Access Services) или напрямую, как это делают транспортные сервисы (рис. 2). IAS предлагает унифицированный интерфейс информирования о возможностях устройства. Транспортные сервисы добавляют еще один уровень абстракции и встраиваются в клиентские приложения или представляют собой обособленное ПО. IrLMP функционирует в двух режимах: мультиплексирования и эксклюзивном. Первый позволяет разделять одно физическое соединение нескольким задачам, второй — отдает все ресурсы одному-единственному приложению. Каждое виртуальное соединение представлено своей Link Service Access Point (LSAP), таким образом, связь происходит на уровне двух LSAP (LSAP Connection). Предусмотрено три варианта доступа: с установлением предварительного соединения, без установления предварительного соединения (connectionless) и XID_Discovery (режим сбора информации о возможностях, сервисах и приложениях удаленного устройства).

Tiny Transport Protocol (TinyTP)

Eсли процесс обработки данных одного мультиплексированного канала находится в зависимости от поступления информации по другому, то не избежать зависаний и потерь данных. Управление потоком, реализованное на уровне IrLAP, не в состоянии удовлетворить требования таких приложений, поскольку находится в полном неведении относительно процессов мультиплексирования/демультиплексирования. С помощью TinyTP удалось сделать функции управления потоком независимыми для любого LSAP-соединения. Каждая точка доступа TTPSAP (TinyTP Service Access Point) идентифицируется с единственной точкой доступа IrLMP и использует единый с ней адрес. TinyTP также ведает сегментацией и сборкой фреймов.

IrCOMM

Эмуляция параллельного и последовательного портов средствами инфракрасной технологии передачи данных открывает доступ к ней пользователям ПО, не готового к взаимодействию с IrDA (рис. 3).

Чтобы достигнуть прозрачной работы с виртуальными портами, приходится решать проблемы, связанные с невозможностью двунаправленного обмена информацией и сложностью эмуляции многоконтактных интерфейсов с помощью единственного канала связи. Многообразие вариантов использования последовательного и параллельного интерфейсов породило различные типы сервиса 3-Wire raw, 3-Wire, 9-Wire и Centronics. Первый работает только через одно, эксклюзивное, соединение и используется, когда необходимо передавать исключительно данные. Второй — эмулирует параллельную передачу по трем каналам (Signal Common, TD, RD) и уже задействует возможности TinyTP, третий предназначен для эмуляции последовательных портов и обрабатывает, помимо трех вышеупомянутых, еще 6 сигналов (RTS, CTS, DSR, DTR, CD, RI). Название Centronics говорит само за себя — виртуальный параллельный интерфейс на базе TinyTP.

IrTran-P

Протокол передачи изображений IrTran-P состоит из трех слоев (SCEP, bFTP, UPF) и пользуется услугами IrCOMM (рис. 4).

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

Point and Shoot

Cпецификация Point and Shoot призвана максимально облегчить использование возможностей инфракрасной технологии. Упростить обмен информацией должна стандартизация ее представления с применением общепринятых объектов: бизнес-карты (vCard), расписания и календари (vCalendar), текстовые записки (vNote), сообщения (vMessage). К ним добавили цифровые изображения (формат JPEG), текстовые файлы (ASCII, CR/LF), форматированные файлы документов (PCL3, PCL5, Postscript, ESC/P) и файлы данных (generic files). Перечисление типов призвано не ограничивать фантазию производителей, но задекларировать минимально необходимый набор объектов. Суть концепции состоит в сведении действий пользователя к выбору типа объекта и нажатию кнопки передачи. ПО, реализующее логику подобных соединений, пользуется протоколом OBEX. Передающее устройство называется Push Server, а принимающее — Push Client (рис. 6). Вышеупомянутый OBEX (OBject EXchange) есть ни что иное, как HTTP-подобная схема обмена объектами.

JetSend

Протокол JetSend предназначен для унифицированного обмена данными между различными типами устройств и представляет собой исключительно частную инициативу компании Hewlett-Packard. Являясь полностью программной технологией, JetSend функционирует как поверх IrDA-стека, так и в любой другой сетевой среде, поддерживающей TCP/IP. Тем не менее ее распространенность и активное участие HP в процессе работы форума сыграли определяющую роль в появлении спецификаций JetSend Digital Photography Application Note и JetSend Point and Shoot Profile. Согласно Jet Send Point and Shoot Profile он заменяет собой слой OBEX, предлагая свою объектную модель, базовой единицей которой является "поверхность" (surface). "Поверхность" кодируется на языке e-material, содержит идентификатор, дескрипторы, описывающие ее атрибуты, и данные.

IrControl (IrBus)

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

Физический уровень обеспечивает передачу данных, закодированных по схеме 16 PSM (Pulse Sequence Modulation — 8 "временных слотов", и только 2 или 4 могут содержать импульс) со скоростью 75 Kbps. Тут импульс означает 1, его отсутствие — 0. Частота несущей равняется 1,5 MHz, а минимальная дальность действия — 5 м. Данные пересылаются в пакетах двух видов: длинные (97 байт данных) и короткие (9 байт). Структура обоих абсолютно идентична (рис. 8) за исключением значения стартового флага, а также разрядности контрольной суммы.

Протокол Media Access Control (MAC) регламентирует процессы взаимодействия множественной периферии с единственным устройством-хостом и обмена информацией между хостами. Существует три режима работы хоста: сна (с низким энергопотреблением), нормальный и сосуществования с IrDA, в котором поддерживаются как соединения IrDA SIR 1.1, так и IrControl. Если от периферии долгое время не поступает никаких данных, то хост автоматически переходит в состояние сна. Периферийное устройство в случае необходимости может самостоятельно перевести его в нормальный режим работы. Хост получает данные путем циклического опроса периферии (polling) с периодом 13,8 мкс, в ходе которого обслуживается до 4 устройств с критическим временем латентности. Для менее требовательной периферии гарантируется период опроса в 69 мкс. Формат пакета MAC показан на рис. 9, где HA — поле адреса хоста, PA — поле адреса периферии, MAC — контрольное поле, значение его структуры зависит от того, хост или периферийное устройство являются "автором" пакета, и содержит вспомогательную системную информацию.

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

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

IrLAN

Назначение этого протокола — обеспечение доступа в локальную сеть с помощью инфракрасного соединения. Главными персонажами в сетевой среде IrLAN являются клиент и провайдер. Провайдер пассивен и ожидает проявления иницативы со стороны клиента, на которого возлагаются все функции по детектированию и конфигурированию соединения. Для этого используется контрольный канал — через него клиент получает необходимые сведения о провайдере из его IAS. Предусмотрено три метода доступа в сеть: через точку доступа (access point), "от-порта-к-порту" (peer-to-peer) и режим "хоста" (hosted). Access point представляет собой специализированное устройство, имеющее как доступ к сети, так и IR-адаптер. При соединении "от-порта-к-порту" два устройства связываются через инфракрасное соединение, а IrLAN лишь эмулирует локальную сеть. В этом случае каждый из участников должен играть роли клиента и провайдера одновременно. В режиме "хоста" компьютер-провайдер не только предоставляет услуги подключения к сети для удаленных устройств, но и сам пользуется ими. Поскольку провайдер и клиент делят один и тот же сетевой адрес, то возникает потребность в специальном маршрутизирующем и фильтрующем ПО.

При инициализации соединения устанавливаются два "виртуальных канала" — данных и контроля, причем оба используют TinyTP. В канале данных в настоящий момент поддерживаются пакеты типов 802.3 (Ethernet) и 802.5 (Token Ring). Формат фрейма данных IrLAN аналогичен формату ретранслируемого сетевого протокола. Драйвер IrLAN обычно не модифицирует содержимое пакетов, за исключением дескрипторов, и лишь в режиме "хоста" определенные изменения могут быть внесены.

В канале контроля обмен осуществляется на основе фреймов другого формата. В первом его поле, длиной в 1 байт, содержится команда, в следующем, такой же длины, — количество сопутствующих параметров, а далее идут собственно сами параметры, под которые отводится от 0 до 1020 байт.

Чем плох IrDA

Одним из первых и немногих, кто "осмелился" на критику, был Дональд Беккер (Donald Becker), прочувствовавший все недостатки стандарта в процессе написания собственного IrLAP-стека. Большая часть его замечаний относится к качеству документации. Например, некоторые важнейшие понятия, касающиеся процесса согласования параметров устройств на начальной стадии (discovery), не описаны вообще. Также Беккер указывает на чересчур сложную структуру документов, отсутствие обязательного в таких случаях указателя, множество опечаток. Помимо этого, многие вопросы, относящиеся к взаимодействию в сети, состоящей более чем из двух устройств, не рассмотрены, а намеченный раздел "Point-To-Multipoint" так и остается пустым по сегодняшний день. И вряд ли его удастся наполнить реальным содержанием, поскольку для этого потребуются серьезные изменения всего протокола IrLAP в целом. Естественно, возникает вопрос — зачем столь переусложнены процедуры инициализации соединения, когда на практике стандарт не регламентирует организацию полноценной сетевой среды? Помимо всего, Беккер считает сам факт использования "сложной, трудной во внедрении и нерабочей" сетевой модели ISO в качестве основы — серьезным недостатком.

IrDA vs. Bluetooth

Bluetooth — относительно новая технология беспроводной связи в радиодиапазоне на небольшие расстояния. Она может быть внедрена в персональные и портативные компьютеры, устройства доступа к локальной сети, модемы, мобильные телефоны и пейджеры. По целому ряду параметров Bluetooth превосходит своего инфракрасного "собрата": дальность действия от 10 см до 100 м, стены и мебель не всегда являются препятствиями для соединения, нет необходимости контролировать взаимную ориентацию приемника и передатчика, изначальная поддержка сетевой среды с многочисленными узлами (point-to-multipoint), до 8 устройств на одном канале.

Однако некоторые достоинства радиотехнологии иногда работают против нее. Например, когда два пользователя мобильных ПК пожелают обменяться визитными карточками, в их взаимодействие невольно вмешаются все Bluetooth-совместимые устройства, находящиеся вокруг в радиусе 10 м. При этом процесс инициализации может замедлиться или вообще не состояться, а конфиденциальность пересылки целиком зависит от используемого протокола. При подключении к точкам доступа в локальную сеть проявляется еще одно превосходство IrDA — высокая скорость передачи данных, 4 или 16 Mbps по сравнению с 1 Mbps "протискивающихся" через радиоканал. И наконец, не всегда техническое превосходство может обеспечить безболезненное внедрение — Bluetooth утилизирует так называемый "нелицензируемый" диапазон частот, однако в некоторых странах (например, во Франции и Японии) существуют определенные ограничения. К тому же не следует забывать о той "форе" в 50 миллионов устройств, поддерживающих инфракрасную связь сегодня.

Неупомянутое (в качестве послесловия)

В этом обзоре были рассмотрены только основные и наиболее общие протоколы и технологии. Ограниченные рамки журнальной публикации не позволили уделить должного внимания спецификациям IrDA Plug&Play, IrDA Mobile Communications, IrDA Dongle Interface, IrDA Infrared for Wrist Watches, а также результатам работы ряда упомянутых в начале статьи практических конференций. Инфракрасная технология передачи данных все еще имеет огромный потенциал по увеличению быстродействия, уже в 1997 г. в ходе экспериментов были установлены соединения на скорости 50 Mbps. Ведутся работы по расширению угла уверенного приема, созданию диффузных излучателей и специальных приемников. Все это вселяет уверенность в том, что у IrDA большое будущее.


Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: