Интеллектуальный беспроводной модем для надежной беспроводной передачи данных в ISM диапазонах (433 МГц, 868 МГц и 902 МГц)
Введение. Беспроводная передача данных
В отличие от диапазона 2,4 ГГц, единого глобального стандарта, регламентирующего работу устройств в более низких ISM УВЧ-диапазонах, нет. Поэтому разработчики должны проектировать свои системы таким образом, чтобы они могли адаптироваться к регламентам конкретного региона. Эта задача в значительной степени упростилась с появлением трансиверов диапазона ISM с гибкими возможностями, таких как ADF7020 [3], который способен работать в диапазоне частот от 433 до 960 МГц.
К сожалению, полностью избавиться от проблемы помех и совместимости, перейдя на работу в более низких УВЧ-диапазонах, невозможно. В них уже работает множество других систем. При наложении мешающего сигнала на полезный сигнал значение отношения «сигнал/шум» (ОСШ) в приемнике может упасть ниже требуемого, что приведет к искажению принимаемых данных. Традиционный способ решения этой проблемы заключается в применении метода обнаружения ошибок, основанного на проверке при помощи циклического избыточного кода (CRC, cyclic redundancy check). CRC позволяет обнаруживать повреждения сигнала до определенного уровня и запрашивать повторную передачу пакетов, содержавших ошибки (обычно это называется автоматическим запросом повторной передачи (АЗПП). Платой за это является значительная задержка и потери производительности в системах реального времени.
Необходимость повторной передачи поврежденных пакетов не всегда обременительна в системах с низкой пропускной способностью, например в системах, где удаленный датчик посылает пакеты данных раз в несколько минут. Однако для таких высокоскоростных приложений, как беспроводная передача аудио- или видеосигналов, задержка, вносимая АЗПП, может быть неприемлемой. АЗПП также представляет проблемы в промышленных телеметрических системах и системах управления процессами, где должен поддерживаться определенный уровень пропускной способности в зашумленной среде без необходимости многократной повторной передачи. Кроме того, возрастающее время передачи также приводит к увеличению суммарного потребления мощности системой.
Эффективное решение этой дилеммы кроется в применении методов прямого исправления ошибок (FEC, forward error correction), которые способны обнаруживать и исправлять ошибки в достаточно большом количестве битов, компенсируя таким образом частичную потерю пакетов и гарантируя качество обслуживания. Методы исправления ошибок, такие как сверточное кодирование со скремблированием и перемежением битов — это сложные алгоритмы, и для обеспечения с их помощью скорости передачи данных более 100 кбит/с при вероятности ошибки менее 10–6 требуется быстродействие, измеряемое в миллионах команд в секунду (MIPS, millions instructions per second). Для реализации подобных методов может использоваться недорогой, но мощный процессор семейства Blackfin [4] ADSPBF531 [5].
Используя процессор Blackfin в связке с интегральной схемой приемопередатчика ISM-диапазона ADF7020, типичная дальность действия которого составляет порядка нескольких сотен метров (в пределах прямой видимости), разработчик может перейти от своей проводной системы к беспроводной без потерь в качестве обслуживания. Кроме того, благодаря высокому быстродействию (400 MIPS и 800 MMACS — миллионов операций умножения с накоплением в секунду), на процессоре ADSPBF531 могут быть реализованы протоколы для поддержки различных конфигураций и топологий беспроводных сетей (точка-точка, многоточечные и широковещательные системы), а также сложные алгоритмы шифрования и кодирования/декодирования источника, такие как Motion JPEG (MJPEG).
На рис. 1 показана подробная блок-схема беспроводного цифрового модема, построенного на базе приемопередатчика ISM-диапазона ADF7020 и выполняющего роль контроллера ADSPBF531. Эти два кристалла питаются от одного источника напряжения (2,3 В < VCC < 3,6 В), а операции управления и обмена данными между ними осуществляются через непосредственные связи с помощью флагов (цифрового порта ввода/вывода общего назначения) и синхронного последовательного порта (SPORT0) процессора ADSPBF531.
Передача данных в модем и прием данных от него осуществляется либо асинхронно по порту UART, либо синхронно по оставшемуся незадействованным втором порту SPORT.
Приемопередатчик с гибкими возможностями
Интегральная схема ADF7020 — это полнофункциональный полупроводниковый радиотрансивер, изготавливаемый по технологии КМОП 0,25 мкм. Он способен работать в европейских ISM-диапазонах 433 и 868 МГц (регламентируются стандартом ETSI EN300 220-1 [6]) и североамериканском диапазоне 902–928 МГц (регламентируется нормами FCC Part 15 [7]). Для функционирования ADF7020 достаточно небольшого количества внешних компонентов. Микросхема обладает большой степенью гибкости, что позволяет пользователю конфигурировать ее с учетом требований конкретного приложения. Например, имеется возможность выбора из нескольких форматов модуляции — частотной манипуляции (FSK), гауссовой частотной манипуляции (GFSK), амплитудной манипуляции (ASK и OOK). Пользователь также может варьировать соотношение между чувствительностью и избирательностью, что весьма полезно для систем, в которых предъявляются жесткие требования к линейности. Максимальная скорость передачи данных ADF7020 составляет 200 кбит/с; родственная микросхема ADF7025 [8] имеет еще большую скорость передачи — 384 кбит/с.
Как и в большинстве современных трансиверов диапазона передачи данных ISM, в ADF7020 применяется синтезатор с фазовой автоподстройкой частоты (ФАПЧ) с дробным коэффициентом деления, который позволяет выбирать каналы на частоте 433 МГц и в диапазоне от 868 до 928 МГц с разрешением, превышающим 1 кГц. Такая гибкость установки частоты дает возможность использовать ADF7020 как в системах со скачкообразной перестройкой частоты в соответствии с американскими нормами FCC Part 15, так и на постоянной частоте в американском диапазоне при выходной мощности не более –1,5 дБм.
Синтезатор с дробным коэффициентом деления также является составной частью оригинальной схемы автоматического управления частотой (AFC, automatic frequency-control), которая компенсирует погрешности входной частоты и позволяет использовать более дешевые резонаторы с не самыми хорошими показателями погрешности. Блок-схема ADF7020 показана на рис. 2. Для нахождения номиналов компонентов фильтра контура ФАПЧ можно воспользоваться программным обеспечением моделирования ADIsimPLL [9], которое доступно на веб-сайте компании Analog Devices.
Прямое исправление ошибок при помощи процессора Blackfin
Применение высокопроизводительного процессора в связке с высокочастотными микросхемами широко распространено в цифровых системах сотовой связи, однако для задачи построения недорогого цифрового модема такой подход на первый взгляд кажется неподходящим. С другой стороны, для реализации прямого исправления ошибок (FEC) при скоростях передачи, составляющих несколько сотен килобит в секунду, от процессора требуется высокая производительность в задачах цифровой обработки сигналов, сравнимая с производительностью процессора Blackfin ADSPBF531. Стандартные микропроцессоры на базе ядра 8051 или ARM способны справиться с задачами организации пользовательского интерфейса, стека протоколов, управления ВЧ трансивером и схемой питания, но они не обладают достаточными вычислительными мощностями для выполнения алгоритма FEC. Вычислительная мощность процессора ADSPBF531 помимо реализации на нем функций управления позволяет также увеличить эффективную скорость передачи, уменьшить задержку связи, организовать компенсацию изменений условий распространения в канале для поддержания качества связи и выполнение алгоритмов, гарантирующих защищенность канала.
На рис. 3 показаны различные операции, осуществляемые в канале передачи данных, включая функции обработки, выполняемые как при передаче (Tx), так и при приеме (Tx). Процессор Blackfin на приемной стороне организует управление скоростью данных и разбивает их на пакеты, передаваемые с квазипостоянной скоростью. Перед подачей на модулятор пакеты данных подвергаются кодированию по алгоритму FEC. Кодирование заключается в добавлении избыточных битов, которые приемник использует для обнаружения и исправления ошибок. Добавление битов к поступающим пакетам естественным образом приводит к увеличению необходимой ширины полосы при заданной частоте битов в информационном потоке.
Существует целый ряд возможных схем FEC. Одна из них — сверточное кодирование — достаточно просто реализуется на практике, обеспечивая хорошую защиту от гауссова шума в канале и удовлетворяя критерию минимального расстояния Хэмминга. Сверточный кодер представляет собой конечный автомат, состоящий из L-каскадного регистра сдвига, N сумматоров по модулю 2 и мультиплексора для преобразования выходных значений в последовательный поток битов. Связи между выходами регистра сдвига и входами сумматоров определяют полиномиальный код. Ядро процессора Blackfin очень эффективно реализует описанную выше схему при помощи двух специальных команд.
На другом конце канала передачи программа декодера реализует алгоритм Витерби с принятием жестких решений (hard-input/hard-output). Декодер Витерби обеспечивает декодирование по критерию максимума правдоподобия, сравнивая кодовый вектор со всеми возможными кодовыми последовательностями. Выбор делается в пользу той кодовой последовательности, которая дает минимальное расстояние Хэмминга относительно принятой последовательности. При использовании кода вида (1/2, 7, 371, 247) с длиной кодового ограничения K = L+1, равной 7, декодер способен исправлять до шести смежных ошибочных битов. В зависимости от требований конкретной беспроводной системы, алгоритм кодирования, исполняемый в процессоре ADSPBF531, должен работать с длинами кодового ограничения от 5 до 9.
Однако даже применение сверточного кода с длиной кодового ограничения, равной 9, не защищает от импульсной помехи, которая может поражать передаваемые пакеты на протяжении более длительных периодов времени. Поэтому необходимо использовать также дополнительные методы защиты, основанные на временн м перемежении. Временнуе перемежение, которое заключается в разнесении битов или символов сообщения во времени, улучшает показатели системы связи с кодированием в условиях многолучевости, фэйдинга и импульсных помех. Оно приводит к снижению вероятности повреждения сразу нескольких битов, следующих друг за другом. Достичь этой цели можно при помощи скремблирования и простого перемежения блоков без применения более сложных корректирующих кодов (наподобие кодов Рида-Соломона). Как и в случае с передатчиком, в процессоре ADSPBF531 есть две специальные векторные команды, позволяющие увеличить скорость декодирования: одна для вычисления решеток Витерби, а другая — для операции поиска пути (обратного прослеживания).
Кодированные данные подаются в каскад передатчика ADF7020, в котором выполняется дополнительная фильтрация и Гауссова частотная манипуляция (GFSK). Достоинством GFSK является сокращение занимаемой спектральной полосы, что весьма актуально в свете требований, предъявляемых к помехе в смежном канале в европейских диапазонах на частоте 868 МГц.
На приемной стороне обработка начинается с очень важной задачи — синхронизации пакетов, которая решается с помощью внутренней схемы отслеживания преамбулы в ADF7020. Эта схема позволяет распознавать или идентифицировать программируемое слово синхронизации (преамбулу пакета), длина которого может составлять 12, 16, 20 или 24 бита, без участия процессора ADSPBF531. При совпадении преамбулы схема отслеживания выставляет сигнал на выводе INT/LOCK ADF7020, который сигнализирует о начале передачи нового пакета в последовательный порт (соединен с линией RFS0) и запускает декодер Витерби. Эта уникальная схема в определенной степени устойчива к ошибкам — она позволяет выявлять достоверную преамбулу даже при трех ошибочных битах. Преамбула пакета не кодируется, следовательно, от ошибок не защищена, и применение этой схемы уменьшает количество пакетов, теряемых вследствие несовпадения преамбул. Для дальнейшего сокращения потерь пакетов приемник использует один из 32-битных таймеров процессора ADSPBF531 в качестве сторожевого таймера, генерирующего ожидаемый импульс на линии RFS0 в случае, когда сигнал INT/LOCK не появляется после нескольких битов. Такой аппаратный механизм извлечения маркеров синхронизации пакетов был выбран из-за значительного сокращения большого числа операций, выполняемых процессором, по сравнению с реализацией, включающей программный анализ и слежение.
Реальное приложение — беспроводная передача видеоизображений в ISM-диапазоне
Как уже отмечалось ранее, для достижения эффективной беспроводной передачи цифровых видеоизображений требуется устойчивость к сбоям в канале связи. Превосходным примером области применения интеллектуальных надежных беспроводных модемов на базе процессора Blackfin являются видеокодеки. С учетом ограничений полосы канала в ISM диапазонах для доставки изображений определенного размера с ожидаемой частотой кадров, требуемым качеством и небольшими задержками требуется сравнительно высокий коэффициент сжатия изображения. К сожалению, для работы с Motion JPEG и другими видеокодеками требуются очень малые значения частоты ошибок при передаче (как правило, 10–6), поскольку в ходе кодирования источника устраняется б льшая часть избыточной информации. Это, в частности, распространяется на некоторые эффективные статистические кодеры, такие как кодер Хаффмана, для которых даже одиночный ошибочный бит делает невозможным декодирование исходных данных. Требование к частоте ошибок в битах (BER, bit-error rate) менее 10–6 накладывает очень строгие ограничения на радиоканал, однако оно может быть выполнено при использовании схемы кодирования канала, подобной описанной выше.
Очень низкое значение BER еще не гарантирует того, что все пакеты данных будут корректно декодированы статистическим декодером. Для повышения качества изображения необходимо обеспечить механизм, который бы скрывал часть изображения, если количество поврежденных битов в пакете очень мало. По этой причине каждый пакет сегментируется и подвергается статистическому кодированию по отдельности. После выявления переданного с ошибками сегмента или блока его содержимое отбрасывается. В зависимости от типа потерянной информации постоянная составляющая и два первых переменных коэффициента дискретного косинусного преобразования (DCT, discrete cosine transform) оцениваются на основании коэффициентов соседних блоков. Сгладить результирующие искажения позволяет заключительный каскад двумерного фильтра нижних частот 3×3, который устраняет побочные эффекты DCT, вызванные разбиением на блоки.
Вычислительной мощности процессора ADSPBF531 более чем достаточно для выполнения как кодирования (декодирования) MJPEG, так и алгоритма FEC. При работе с кадрами видеоизображений формата 4:2:2 и разрешением вплоть до QCIF (176 пикселей на 144 пикселя) внешней памяти не требуется. Обработка кадров с более высоким разрешением возможна при использовании внешней SDRAM, которая также может использоваться для хранения сжатых видеоизображений. Этот очень недорогой процессор может взаимодействовать напрямую с недорогими сенсорами видеоизображений стандарта CCIR-656 или TFT-дисплеями через свой параллельный периферийный интерфейс [10]. Для организации цифровой передачи речи или аудиосигналов к свободному последовательному порту SPORT1 можно подключать стандартные недорогие малопотребляющие ИКМ-аудиокодеки. Процессор также может выполнять кодирование и декодирование речевых сигналов с умеренной задержкой при помощи программного кодека, схожего с кодеком FRGSM (13 кбит/с).
При исходной скорости данных, равной 200 кбит/с, можно обеспечить передачу «базового» изображения MJPEG в ISM-диапазоне с частотой порядка четырех цветных кадров в секунду QCIF 4:2:2, и при этом еще 20 кбит/с останется для передачи речи. Такое качество приемлемо для некоторых недорогих бытовых устройств, таких как «видеоняни», видеодомофоны или беспроводные домашние камеры слежения. Функциональная схема подобной системы передачи видеоизображений по принципу «точка-точка» (видеоняня) показана на рис. 4. Суммарная стоимость комплектующих для такой системы составляет около $75, и самым дорогим компонентом является 2,5-дюймовый TFT-дисплей.
Код программы, на основе которой работает система, показанная на рис. 4, может быть приобретен у компании Arbos Ingenierie [11] — французского партнера компании Analog Devices.
Заключение
Уникальная комбинация трансивера диапазона ISM ADF7020 и процессора Blackfin ADSPBF531 дает превосходные показатели качества радиоканала при очень привлекательной цене. Подобная схема обладает очевидной гибкостью и может применяться в самых разнообразных цифровых системах беспроводной передачи данных в диапазоне ISM. Дальнейшего усовершенствования показанной схемы можно будет достичь с микросхемами ВЧ-трансиверов ADF702x следующего поколения и при использовании дополнительных программных модулей кодирования канала и источника.
- http://www.bluetooth.com
- http://grouper.ieee.org/groups/802/11/main.html
- http://www.analog.com/en/prod/0,2877,ADF7020,00.html
- http://www.analog.com/processors/blackfin/index.html
- http://www.analog.com/en/prod/0,2877,ADSPBF531,00.html /утерянная ссылка/
- http://www.linxtechnologies.com/documents/EN300220-1_2000.pdf /утерянная ссылка/
- http://www.fcc.gov/oet/info/rules
- http://www.analog.com/en/prod/0,2877,ADF7025,00.html
- http://www.analog.com/en/content/0,2886,770_850_16127,00.html /утерянная ссылка/
- http://www.analog.com/library/analogdialogue/archives/39-01/lcd_drive.html
- http://www.arbos-dsp.com /утерянная ссылка/