HDG104

Модули Wi-Fi компании H&D Wireless

№ 2’2011
PDF версия
Статья посвящена новым модулям Wi-Fi компании H&D Wireless. Рассмотрены решения, анонсированные во втором полугодии 2010 г.

Одним из основных преимуществ беспроводной технологии Wi-Fi является легкая интеграция устройств как в локальные сети, так и в Интернет. Это дает возможность удаленного доступа к устройству из любой части света, с любого ПК, коммуникатора, мобильного телефона. Такая особенность актуальна для широкого класса устройств Embedded Ethernet, применяемых в промышленных системах сбора информации с датчиков, цифровых мультимедийных устройствах, медицинском оборудовании, системах пожарной и охранной сигнализации. Другим важным преимуществом данной технологии является высокая скорость передачи данных; например, в стандарте 802.11n при одновременном использовании четырех антенн скорость может достигать 600 Мбит/с. Это делает технологию Wi-Fi практически единственным выбором для систем беспроводной передачи видео (беспроводные веб-камеры, видеокамеры для охранных систем и т. д.).

Однако, несмотря на столь широкие возможности приложения, в настоящий момент на рынке практически отсутствуют Wi-Fi-модули, которые сочетали бы в себе такие особенности, как минимальное энергопотребление, малые размеры, наличие поддержки программным обеспечением. Данная статья посвящена обзору линейки модулей Wi-Fi компании H&D Wireless, в полной мере отвечающих всем вышеперечисленным требованиям.

Компания H&D Wireless AB (Стокгольм, Швеция) имеет 25-летний опыт разработки беспроводных коммуникационных устройств. В настоящее время эта фирма предлагает ряд Wi-Fi-решений, базирующихся на высокоинтегрированной Wi-Fi-микросборке HDG104, которая является одной из самых миниатюрных в мире — 7×8 мм. H&D Wireless является официальным партнером компании Atmel, которая предлагает свободно распространяемую библиотеку, реализующую стек Wi-Fi в трех вариантах исполнения соответственно для трех категорий встраиваемых микроконтроллеров Atmel:

  • AVR8 XMEGA;
  • AVR32 UC3;
  • ARM SAM9.

Такой универсальный подход дает разработчикам возможность использовать модули H&D Wireless для самых различных приложений — от миниатюрных беспроводных датчиков до устройств беспроводной передачи речи и видео. В рамках данной статьи будут рассматриваться вопросы совместного применения Wi-Fi-модулей с AVR-микроконтроллерами (руководство по использованию можно найти на сайте компании H&D Wireless) [1].

 

Основные характеристики микросборки HDG104

Микросборка HDG104 представляет собой полнофункциональную систему в корпусе (System In Package, SIP), разработанную специально для встраиваемых приложений. HDG104 обеспечивает беспроводную связь в стандарте 802.11b/g.

Микросборка содержит ВЧ-приемопередатчик, процессор обработки сигнала и доступа к среде, энергонезависимую память EEPROM для хранения MAC-адреса и калибровочных коэффициентов, оперативную память данных и программ для загрузки ПО (firmware, FW) встроенного процессора. Такое сочетание сводит к минимуму количество необходимых внешних компонентов, упрощает монтаж и отладку. Для связи с внешним хост-процессором имеются интерфейсы SDIO/UART и SPI.

 

Основные характеристики модулей, выполненных на базе микросборки HDG104

В таблице 1 представлены основные конструктивные особенности и внешний вид Wi-Fi-модулей компании H&D Wireless.

Таблица 1 . Ассортимент Wi-Fi-модулей компании H&D Wireless
Ассортимент Wi-Fi-модулей компании H&D Wireless

Модули SPB104, SPB105 и SPB106 — это три варианта конструктивного исполнения Wi-Fi-модуля на базе микросборки HDG104. Они содержат кварцевый резонатор и набор необходимых фильтрующих пассивных компонентов. Обмен данными с хост-процессором осуществляется по интерфейсам SDIO и SPI. Данные модули поставляются как со встроенной антенной, так и с разъемом U.FL для подключения внешней антенны.

Модуль SPB104 выполнен в формате SD-карты, на внешний разъем выведены контакты интерфейса SDIO. Модуль SPB105 имеет 10-контактный разъем, для обмена данными с хост-процессором используется интерфейс SPI. Модуль SPB106 предназначен для поверхностного монтажа.

Структурная схема модуля SPB800

Рис. 1. Структурная схема модуля SPB800

Модуль SPB800, выполненный на базе микросборки HDG104 и 32-битного микроконтроллера AVR32 UC3 (рис. 1), обеспечивает беспроводной доступ к Интернету или к локальной сети любому устройству с интерфейсом UART. SPB800 легко интегрировать с любым 8-битным или 32-битным процессором. Модуль поставляется с прошитым программным обеспечением, реализующим адаптер последовательного порта, а также поддерживает командный интерфейс SDK oWL Pico (эквивалент AT-команд). Таким образом, у разработчика есть возможность использовать модуль SPB800 двумя различными способами. В первом варианте, не требующем никаких изменений в программном обеспечении хост-процессора, SPB800 выступает в роли моста Serial-Wi-Fi. В этом случае необходимые параметры задаются при помощи простого набора команд, перечень которых приведен в таблице 2. После завершения конфигурирования параметры сохраняются в энергонезависимой памяти модуля.

Таблица 2. Команды для настройки параметров модуля SPB800
Параметр Значения Команда
IP-параметры
IP-адрес IPv4 address db set /net/ip <ip>
Шлюз по умолчанию IPv4 address db set /net/gw <gw>
Сетевая маска IPv4 address db set /net/mask <mask>
Разрешение DHCP Boolean db set /net/dhcp <0 или 1>
Параметры беспроводной сети    
SSID String db set /wl/ssid <ssid>
Тип используемого ключа none, wep, wpa db set /wl/key type <none, wep или wpa>
Ключ WEP, WPA/WPA2 String db set /wl/key <key>
Параметры интерфейса RS-232
Скорость передачи 9600, 38400, 57600, 115200, 230400 db set /uart/baudrate <rate>
Количество битов данных 5, 6,7 или 8 битов db set /uart/databits <5,6,7 или 8>
Бит четности even, odd, none db set /uart/parity <even, odd или none>
Стоповые биты 1, 2 db set /uart/stopbits <1 или 2>
Контроль потока Boolean db set /uart/rtscts <0 или 1>
Параметры приложения
Включить oWL-pico none, pico db set /proto/active none (для режима «адаптер RS232-Wi-Fi» всегда должно быть установлено значение none)
TCP-сокет String db set /proto/none/port
Сервер/клиент tcp-server, tcp-client db set /proto/none/mode
IP-адрес сервера IPv4 address db set /proto/none/host <ip>

Во втором варианте, добавив в ПО внешнего микроконтроллера функциональность интерфейса oWL Pico (размер его исходного кода составляет всего лишь 2 кбайт), разработчик получает широкие возможности управления IP-параметрами и параметрами безопасности модуля. Перечень API-функций интерфейса oWL Pico приведен в таблице 3.

Таблица 3. Перечень API-функций интерфейса oWL Pico
Команда API-функция интерфейса oWL Pico Описание
Команды канального уровня
linkup <ssid> [key] [wep] wlp_linkup(ssid, key, wep) Присоединиться к точке доступа
linkdown wlp_linkdown() Отсоединиться от точки доступа
get_hwaddr wlp_get_hwaddr() Запрос MAC-адреса устройства
get_network wlp_get_network() Запрос информации о текущей точке доступа
Команды сетевого уровня
set ipaddr <ip> [mask] [gw] [dns] wlp set ipaddr(ip, mask, gw, dns) Установить статический IP-адрес
get ipaddr wlp get ipaddr() Запрос текущего IP-адреса
set_dhcp <enable> wlp_set_dhcp(enable) Вкл/выкл DHCP
get_dhcp wlp_get_dhcp() Запрос текущего состояния DHCP
get hostbyname <host> wlp get hostbyname(host) Поиск IP-адреса по данному DNS
Команды работы с сокетами
socket <type> [protocol] wlp_socket(type, protocol) Создать сокет
bind <socket> <ip> <port> wlp_bind(socket, ip, port) Присвоить сокету локальный адрес
listen <socket> wlp_listen(socket) Ожидать входящие соединения
connect <socket> <ip> <port> wlp_connect(socket, ip, port) Присоединиться к удаленному хосту
close <socket> wlp close(socket) Закрыть сокет
send <socket> <data> wlp_send(socket, data, len) Отправить данные в адрес присоединенного сокета
get_peeraddr <socket> wlp_get_peeraddr(socket, &peer) Запрос имени присоединенного сокета

Модуль SPB800 содержит полнофункциональный стек IP-протоколов. Имеется возможность использования внутренней или внешней антенны.

В настоящее время вышеперечисленные Wi-Fi-модули могут работать как клиенты в инфраструктурном режиме, то есть когда сеть состоит из точки доступа (сервера) и некоторого набора беспроводных станций (клиентов). Кроме того, анонсирован выход версии 1.2.0 firmware для микросборки HDG104, которая будет поддерживать режим работы ad-hoc, то есть простую сеть, в которой связь между станциями устанавливается напрямую, без использования специальной точки доступа.

Компания Atmel предлагает широкий ассортимент отладочных плат для различных типов микроконтроллеров, поддерживающих совместную работу с Wi-Fi-модулями H&D Wireless (табл. 4). Все отладочные платы семейства EVK110x имеют слот для подключения SD-карт, что позволяет работать с модулем SPB104. На платах EVK1104 и EVK1105 имеется также разъем для подключения модуля SPB105. Для тестирования SPB800 предназначены отладочные комплекты HDA800 (в этом случае в качестве хост-процессора выступает персональный компьютер) и ATAVRXPLAIN (в качестве хост-процессора используется 8-битный микроконтроллер компании Atmel).

Таблица 4. Отладочные платы компании Atmel,
поддерживающие совместную работу
с Wi-Fi-модулями компании H&D Wireless
Отладочные платы компании Atmel, поддерживающие совместную работу с Wi-Fi-модулями компании H&D Wireless

Помимо отладочных средств, H&D Wireless и Atmel предоставляют полную программную поддержку своей продукции. В состав каркаса приложений UC3 Software Framework включены примеры проектов для различных Wi-Fi-модулей и отладочных плат.

 

Структура пакета UC3 Software Framework

Пакет UC3 Software Framework предоставляет набор драйверов и библиотек для построения приложений на базе микроконтроллеров AVR32 UC3. Эти микроконтроллеры ориентированы на широкий круг задач, в которых требуется применение малопотребляющего быстродействующего 32-разрядного микроконтроллера с высокой степенью интеграции, снабженного Flash-памятью и ОЗУ [2]. Микроконтроллеры AVR32 привносят новый смысл в понятие «ультранизкое энергопотребление», которое теперь включает не только низкий потребляемый ток на каждый мегагерц тактовой частоты, но и выполнение максимального числа операций за каждый такт, обеспеченное слаженной работой ядра, памяти и системы команд. Микроконтроллеры с ядром AVR32 UC3 предлагаются на замену микросхемам с ядром ARM7 и Cortex-M3 как более современное, производительное и малопотребляющее решение.

Пакет UC3 Software Framework был спроектирован таким образом, чтобы максимально облегчить процесс разработки и объединения в одном проекте различных компонентов программного обеспечения. Данный пакет состоит из драйверов микроконтроллеров AVR UC3, драйверов внешних компонентов, программных сервисов, утилит и демонстрационных приложений. Каждый программный модуль предоставляется полностью в исходных кодах, содержит примеры, подробную документацию и готовые к использованию проекты для компиляторов IAR EWAVR32 и GNU GCC. Пакет UC3 Software Framework предоставляется в двух вариантах: автономная версия, с которой можно работать из командной строки, и встроенная в среду разработки AVR32 Studio. Встроенная версия позволяет пользователю выбирать, какие драйверы и компоненты необходимо импортировать в проект.

Все части пакета UC3 Software Framework организованы в виде групп. Различные группы обычно связаны друг с другом как многоуровневая структура. Эти связи отображены стрелками на рис. 2. Он не отображает детальную структуру пакета UC3 Software Framework, но дает ясное представление о его внутренней организации.

Структура UC3 Software Framework

Рис. 2. Структура UC3 Software Framework

Элементами пакета UC3 Software Framework являются:

  • Drivers: драйверы периферийных узлов микроконтроллера, таких, например, как UART, SPI, USB.
  • Boards: заголовочные файлы, содержащие описание отладочной платы, например evk1104.h. В этих файлах определяются тактовые частоты кварцевых резонаторов, задаются выводы микроконтроллера для связи с внешними устройствами, светодиодами и т. д.
  • Components: драйверы для внешних компонентов; обычно базируются на драйвере более низкого уровня (например, DataFlash, SD-карты, RAM).

К этой же группе относится и программный интерфейс oWL API компании H&D Wireless, предназначенный для работы с модулями, реализующими стандарт 802.11 (Wi-Fi).

  • Services: подпрограммы высокого уровня, такие как USB- и Ethernet-стеки, аудиоде-кодеры и файловые системы.
  • Utils: утилиты, представляющие собой определения стандартных типов данных, функции их преобразования и макросы, которые используются повсеместно во всех частях пакета UC3 Software Framework.
  • Приложения: программы, которые применяются в Software Framework для создания конечного приложения. В состав UC3 Software Framework входят несколько демонстрационных приложении, использующих различные его составные части. Они могут быть использованы как отправная точка для создания конечного приложения пользователя.

 

Программный интерфейс (o)WL API

(o)WL API является полнофункциональным интерфейсом для тех встраиваемых приложений, которым необходим беспроводной доступ. При создании (o)WL API его разработчики ставили перед собой следующие основные цели:

  • Легкость в применении.
  • Минимальные размеры: интерфейс может применяться даже в условиях очень ограниченных ресурсов.
  • Портативность: (o)WL API можно использовать на любой платформе со стандартным C-компилятором.
  • Независимость от операционной системы: интерфейс может применяться как в операционных системах реального времени (RTOS), так и на «голом железе» (т. е. в отсутствие какой-либо ОС).

Интерфейс (o)WL API реализован в виде двух библиотек (рис. 3). Библиотека ядра создана для аппаратной части и является независимой от операционной системы; она содержит всю функциональность стандарта Wi-Fi; поддерживается набором транспортных библиотек, реализующих уровень аппаратного соединения и являющихся специфическими для различных типов интерфейсов, которые используются для обмена данными между хост-процессором и Wi-Fi-модулем. Например, существуют библиотеки для интерфейсов SPI и SDIO. Только библиотека ядра имеет открытый интерфейс (заголовочный файл wl_api.h), в то время как приложению необходимо взаимодействовать как с библиотекой ядра, так и с транспортной библиотекой — в соответствии с конкретной конфигурацией аппаратной части.

Архитектура интерфейса (o)WL API

Рис. 3. Архитектура интерфейса (o)WL API

 

Набор протоколов lwIP

В состав пакета UC3 Software Framework входит облегченная реализация набора протоколов TCP/IP — стек lwIP (рис. 2). Основной его особенностью является уменьшение используемого объема памяти микроконтроллера с сохранением всех возможностей протокола TCP. Для стека lwIP требуется около 40 кбайт ROM, что делает его оптимальным решением для встраиваемых систем.

В UC3 Software Framework включены три версии данного стека:

  • автономная;
  • версия для работы с FreeRTOS;
  • Wi-Fi-версия компании H&D Wireless.

Автономная версия за счет принудительного использования программного интерфейса приложения (API) низкого уровня обеспечивает высокую пропускную способность сети. Данная версия предназначена в основном для пользователей, разрабатывающих собственные приложения, не базирующиеся на каких-либо RTOS.

Версия FreeRTOS обеспечивает высокий уровень интеграции и переносимости в среде операционной системы реального времени. При этом API низкого уровня также остается доступным для ситуаций, требующих высокой пропускной способности сети.

Версия компании H&D Wireless обеспечивает совместимость Wi-Fi-стандартов 802.11b/g с 32-битными AVR-микроконтроллерами, а также предоставляет функции обеспечения безопасности Wi-Fi, такие как WEP и WPA.

В состав стека lwIP входят следующие элементы:

  • IP (протокол Интернет), включая пересылку пакетов через различные сетевые интерфейсы;
  • ICMP (протокол управляющих сообщений Интернета) для поддержки сети и устранения неисправностей;
  • UDP (протокол датаграмм пользователя);
  • TCP (протокол управления передачей);
  • специализированный API низкого уровня для улучшения производительности;
  • дополнительно доступен BSD-сокет API;
  • DHCP (протокол динамического конфигурирования узла);
  • PPP (протокол соединения «точка-точка»);
  • ARP (протокол определения адреса) для сети Ethernet;
  • также доступны дополнительные протоколы высоких уровней, такие как FTP, HTTP, SSL и Telnet.

Физический и канальный уровни стека (рис. 4) реализованы на встроенном процессоре микросборки HDG104 (соответствующая прошивка в виде исполняемого файла входит в состав пакета UC3 Software Framework). Более высокие уровни реализуются на хост-процессоре. Все протоколы прикладного, транспортного и сетевого уровней доступны полностью в исходных кодах, что дает возможность в зависимости от требований конкретного приложения работать на наиболее подходящем уровне абстракции.

Структура стека lwIP

Рис. 4. Структура стека lwIP

В состав пакета UC3 Software Framework входят демонстрационные приложения, позволяющие реализовать http-сервер на основе отладочных плат EVK110x и модулей SPB104/SPB105. Данные приложения находятся в директории AVR32COMPONENTSWIFIHDEXAMPLE. Аналогичное по функциональности приложение доступно на сайте H&D Wireless для модуля SPB800 [8]. Кроме того, доступно приложение для передачи потоковых данных с использованием UDP-протокола.

Подводя итог, отметим, что основным достоинством Wi-Fi-модулей компании H&D Wireless является всесторонняя их поддержка как аппаратными средствами разработки, так и программным обеспечением, что делает данные модули решением, подходящим для широкого круга беспроводных приложений.

 
Литература
  1. Описание работы с Wi-Fi-модулями H&D Wireless на встраиваемых платформах, использующих Linux. http://linux.hd-wireless.se/bin/view/Linux/WebHome. /ссылка утерена/
  2. Курилин А. Микроконтроллеры AT32UC3: новое семейство с большим потенциалом // Компоненты и технологии. 2009. № 7.
  3. Описание программного интерфейса oWL Pico: http://linux.hd-wireless.se/bin/view/Pico/. /ссылка утерена/
  4. Data sheet HDG104 WiFi SIP component. H&D Wireless AB. 2010.
  5. Data sheet SPB104 WiFi Evaluation Kit. H&D Wireless AB. 2010.
  6. Data sheet SPB105 WiFi Evaluation Kit. H&D Wireless AB. 2010.
  7. Data sheet SPB106 WiFi SMD Board. H&D Wireless AB. 2010.
  8. Data sheet SPB800 WiFi SMD Board. H&D Wireless AB. 2010.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *