NanoNET модуль с интерфейсом USB
Введение
Скорость передачи данных в системах, построенных на основе электрических и оптических кабелей, обычно превышает соответствующие показатели в беспроводных сетях. Поэтому при построении гетерогенной системы коммуникаций именно сегмент радиосвязи является местом с наименьшей пропускной способностью.
В последнее время в связи с бурным развитием технологий беспроводной связи малого радиуса действия и сравнительно небольшой стоимости, таких как Wireless USB, Bluetooth 2.0 EDR, ZigBee, nanoNET и т. д., разработчики встают перед выбором аппаратного интерфейса, который можно было бы использовать для передачи данных из радиоканала в оконечное устройство (DTE). Поскольку во многих случаях этим устройством является компьютер, выбор невелик: либо стандартный набор — COM-порт, параллельный порт и USB, либо подключение радиомодуля непосредственно к внутренним шинам компьютера через специальную плату-адаптер. Первый способ более универсален, второй однозначно дает выигрыш в скорости передачи данных, но более сложен в реализации.
Технические способы реализации nanoNET-модулей
Основой любого небольшого коммуникационного устройства является микроконтроллер. Современные чипы на аппаратном уровне поддерживают не только интерфейсы RS-232 и RS-485, но и USB и др. В предыдущих работах по изучению технологии nanoNET [1, 2, 3, 4, 5] авторы в основном тестировали только характеристики радиосвязи, не анализируя пропускную способность всей системы, включающей источник данных и место их хранения.
Простейшая схема экспериментов приведена на рис. 1.
Автономный радиомодуль состоял из трансивера nanoPAN 5361, выпускаемого компанией Nanotron Technologies (www.nanotron.com), и управляющего микроконтроллера ATmega32L серии AVR производства Atmel.
Передача данных осуществлялась между двумя модулями, первичный сбор данных и анализ качества связи производились микроконтроллером (на рис. 1 MCU слева), и лишь затем обработанная информация поступала в компьютер по интерфейсу RS-232. Характеристики асинхронных приемопередатчиков контроллеров USART, встроенных в используемые ATmega32L, и их конфигурация не позволяли в режиме реального времени достигнуть высоких скоростей передачи данных от правого на рис. 1 микроконтроллера MCU до компьютера слева.
В 2007 году компания Nanotron Technologies представила новый радиомодуль, оснащенный интерфейсом USB (рис. 2). В нем для повышения скорости передачи данных между приемопередатчиком nanoNET и персональным компьютером используется микросхема преобразователя интерфейсов FT2232L производства FTDI (www.ftdichip.com). С одной стороны она подключена к шине USB, с другой — напрямую к модулю nanoPAN 5361. Таким образом, она использовалась в режиме моста USB — SPI. Такое решение нельзя назвать оптимальным, так как на прикладную программу, выполняющуюся на персональном компьютере, ложится низкоуровневое управление приемопередающим модулем (инициализация, задание необходимых параметров, запуск приемапередачи и т. д.), что ведет к суммарному снижению максимальной скорости передачи данных.
Авторам во время тестирования этого USB-модуля не удалось продемонстрировать скорость передачи данных более 200 кбит/с даже после глубокой оптимизации процедур программы. Очевидно, что проблема здесь кроется в слишком длительных (для этой задачи) тайм-слотах шины USB и менеджера задач операционной системы Windows XP (работа модуля в среде Unix не тестировалась), а также в необходимости частых смен направлений передачи (ввод/вывод) в режиме эмуляции взаимодействия с модулем nanoPAN по SPI.
Для того чтобы процедуры отправки и приема кадров выполнялись намного быстрее, было предложено возложить контроль этих функций на встроенный микроконтроллер (рис. 3). Таким образом, компьютер оперирует лишь с потоком байтов в обоих направлениях, а микроконтроллер занимается формированием кадров, определением момента приемапередачи данных, сменой режимов радиопередачи и другими низкоуровневыми процедурами.
К тому же, выбранная в качестве моста USB — MCU микросхема FT245RL производства FTDI, включенная в режиме параллельного порта (8 линий данных и 5 линий управления), обеспечивает более высокую скорость обмена данными между MCU и внутренними буферами FT245RL. Использование чипов производства FTDI в обоих решениях обусловлено легкостью их применения, поскольку разработчик избавлен от необходимости вникать в тонкости функционирования интерфейса USB. Преобразователи FT2232L и FT245RL содержат аппаратные FIFO-буферы для принимаемых и передаваемых данных. Таким образом, использование данных микросхем в связке со свободно распространяемыми драйверами и библиотекой от FTDI, содержащей высокоуровневые функции, позволяет сделать полностью прозрачный для прикладного ПО высокоскоростной обмен данными с подключаемыми по USB устройствами.
FTDI предлагает для данных микросхем два типа драйверов: D2XX Direct Drivers — драйвер с библиотекой функций, позволяющий достигать скоростей до 8 Мбит/с, и VCP Drivers — драйвер виртуального COM-порта. После его установки USB-устройство определяется системой как скоростной COM-порт. Максимальная скорость в этом случае составляет 2,4 Мбит/с. Данные драйверы под разные типы операционных систем свободно доступны на сайте FTDI; там же можно скачать документацию, примеры программ и специальную утилиту MProg (рис. 4) для конфигурирования преобразователей интерфейсов.
Микросхема FT245RL содержит в себе EEPROM, хранящее сведения о конфигурации (максимальный ток, потребляемый устройством от контроллера USB, тип питания, серийный номер устройства, тип автоматически подгружаемого драйвера и др.), передаваемые в компьютер при подключении устройства.
USB-радиомодуль nanoNET, разработанный в Lab127
В соответствии с предложенной блок-схемой, приведенной на рис. 3, было разработано устройство, которое содержит модуль nanoPAN 5361, микроконтроллер ATmega32L, осуществляющий низкоуровневое управление модулем приемопередатчика и выполняющий обработку кадров и обмен информацией с компьютером через преобразователь интерфейсов FT245RL (рис. 5).
Микроконтроллер тактируется с помощью внешнего кварцевого генератора на 8 МГц. На разъемы выведены сигналы шины SPI, RX и TX универсального приемопередатчика, а также предусмотрена возможность подключения внешнего источника питания (например, во время программирования микроконтроллера). ATmega32L и nanoPAN5631 получают питание +3 В от стабилизатора напряжения ADP3330, который, в свою очередь, подключен к шине USB +5 В. Антенный разъем — SMA female.
Программное обеспечение и результаты экспериментов
Разработанный USB-радиомодуль тестировался двумя способами: в режиме сбора данных с одного модуля датчика и в режиме установления двунаправленного канала связи между двумя компьютерами.
В первом случае схема эксперимента соответствовала представленной на рис. 1, за исключением того, что данные в компьютер поступали через интерфейс USB. Slave-модуль в непрерывном режиме осуществлял генерацию тестовых пакетов размером 128 байт. Master-модуль передавал через USB все корректно принятые пакеты в компьютер, где они анализировались прикладной программой. В радиоканале были отключены ретрансмиссия кадров и подтверждение приема (Ack). В таких условиях удалось достичь скорости передачи данных ~620 кбит/с.
Во втором эксперименте для измерения скорости передачи данных с использованием пары USB-модулей была разработана программа для микроконтроллера ATmega32L, которая с одной стороны ожидала поступления данных из компьютера по шине USB, формировала пакеты и отправляла их по шине SPI трансиверу, а в обратном направлении считывала содержимое полученных по радиоэфиру кадров и отправляла их в компьютер. Обнаружение возможности считывания данных, поступающих в прямом и обратном направлениях, происходило путем циклического опроса состояния готовности контроллера FT245RL и регистров статуса nanoPAN по шине SPI.
Встроенное программное обеспечение USB-радиомодулей было практически идентично (код для ATmega32L различался только МАС-адресами, назначаемыми трансиверам).
USB-радиомодули были подключены к разным компьютерам; на каждом из них были установлены драйверы FTDI для работы с микросхемой FT245RL в режиме Virtual Com Port и запущена стандартная программа Windows Hyper Terminal. После запуска терминалов символы, вводимые с клавиатуры на одной стороне, передавались по эфиру и автоматически выводились на другом компьютере.
В процессе тестирования для передачи большого количества данных (zip-архив) использовалась функция программы Hyper Terminal «Отправить файл» и был выбран протокол «Z-модем с восстановлением после сбоя». Корректность передачи информации была подтверждена успешной проверкой целостности архива. Максимальная скорость в этом случае составила более 720 кбит/с (рис. 6). Тестирование происходило в режиме, когда на обоих модулях было включено подтверждение приема (Ack) и повторная передача испорченных пакетов до трех попыток включительно.
Анализ полученных цифр (~620 и >720 кбит/с) приводит к заключению, что в первом случае встроенный код был недостаточно оптимальным. И действительно, у программиста есть выбор, какой интерфейс (USB или SPI) чаще опрашивать микроконтроллеру. Скорость опроса трансивера nanoPAN на пару порядков более медленная [1], но иногда, когда не ожидаются данные из USB, приходится реализовывать именно такой режим: постоянно опрашивать трансивер, затрачивая на цикл более 100 мкс, и лишь изредка проверять состояние контроллера USB.
Все подпрограммы микроконтроллера были созданы на аппаратно-независимом языке (Си), часть из них может быть переведена на аппаратно-зависимый язык (Ассемблер AVR), что приведет к небольшому увеличению скорости передачи. Применение более быстрого, чем ATmega32L, микроконтроллера, использование аппаратных прерываний для отказа от программного опроса готовности, а также передача данных длинными (более 128 байт) кадрами позволит достигнуть скоростей, близких к битовым в каналах радиопередачи (проблема уже обсуждалась в публикациях [1, 4]).
Заключение
Разработанная технология и модули могут быть использованы не только для передачи потоков данных между двумя компьютерами и в сетях датчиков, но и, например, для создания анализатора беспроводного трафика в сети nanoNET, необходимость в котором часто возникает при выявлении проблем с ка чеством связи и конфликтов. Дело в том, что существующие до настоящего времени USB-радиомодули производства компании Nanotron Technologies не позволяли передавать на компьютер, а затем обрабатывать весь сетевой трафик. Ограничением была именно низкая пропускная способность канала между трансивером и компьютером. Разработка встроенного программного обеспечения, использующего режим promiscuous, позволит в ближайшей перспективе создать такой анализатор на базе созданных USB-радиомодулей.
Благодарности
Данное исследование проведено в рамках проекта «Научно-образовательный центр по фундаментальным проблемам приложений физики низкотемпературной плазмы» (RUX0-013-PZ-06), поддерживаемого Министерством образования и науки РФ, Американским фондом гражданских исследований и развития (CRDF) и Правительством Республики Карелия, а также частично финансировалось Техническим Научно-исследовательским Центром Финляндии (VTT) в рамках договорных работ.
- Мощевикин А. П. Исследование скорости передачи данных в беспроводных сетях nanoNET // Беспроводные технологии. 2006. № 3.
- Жиганов Е. Д., Красков С. Е., Мощевикин А. П. Исследование условий применимости приемопередатчиков стандарта nanoNET в беспроводных сетях датчиков // Беспроводные технологии. 2007. № 1, 2.
- Жиганов Е. Д., Мощевикин А. П. Аппаратная коррекция ошибок (FEC) в сетях стандарта nanoNET (IEEE 802.15.4a) // Беспроводные технологии. 2007. № 3.
- Мощевикин А. П., Чухарев А. Л. Передача длинных кадров в сетях стандарта nanoNET (IEEE 802.15.4a) // Беспроводные технологии. 2007. № 3.
- Жиганов Е. Д., Мощевикин А. П. Беспроводные сети датчиков на основе технологии nanoNET // Информационные технологии. 2007. № 11.