Модули Wi-Fi компании H&D Wireless
Одним из основных преимуществ беспроводной технологии 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
Модули SPB104, SPB105 и SPB106 — это три варианта конструктивного исполнения Wi-Fi-модуля на базе микросборки HDG104. Они содержат кварцевый резонатор и набор необходимых фильтрующих пассивных компонентов. Обмен данными с хост-процессором осуществляется по интерфейсам SDIO и SPI. Данные модули поставляются как со встроенной антенной, так и с разъемом U.FL для подключения внешней антенны.
Модуль SPB104 выполнен в формате SD-карты, на внешний разъем выведены контакты интерфейса SDIO. Модуль SPB105 имеет 10-контактный разъем, для обмена данными с хост-процессором используется интерфейс SPI. Модуль SPB106 предназначен для поверхностного монтажа.
Модуль SPB800, выполненный на базе микросборки HDG104 и 32-битного микроконтроллера AVR32 UC3 (рис. 1), обеспечивает беспроводной доступ к Интернету или к локальной сети любому устройству с интерфейсом UART. SPB800 легко интегрировать с любым 8-битным или 32-битным процессором. Модуль поставляется с прошитым программным обеспечением, реализующим адаптер последовательного порта, а также поддерживает командный интерфейс SDK oWL Pico (эквивалент AT-команд). Таким образом, у разработчика есть возможность использовать модуль SPB800 двумя различными способами. В первом варианте, не требующем никаких изменений в программном обеспечении хост-процессора, SPB800 выступает в роли моста Serial-Wi-Fi. В этом случае необходимые параметры задаются при помощи простого набора команд, перечень которых приведен в таблице 2. После завершения конфигурирования параметры сохраняются в энергонезависимой памяти модуля.
Параметр | Значения | Команда |
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.
Команда | 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
Помимо отладочных средств, 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 являются:
- 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), в то время как приложению необходимо взаимодействовать как с библиотекой ядра, так и с транспортной библиотекой — в соответствии с конкретной конфигурацией аппаратной части.
Набор протоколов 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). Более высокие уровни реализуются на хост-процессоре. Все протоколы прикладного, транспортного и сетевого уровней доступны полностью в исходных кодах, что дает возможность в зависимости от требований конкретного приложения работать на наиболее подходящем уровне абстракции.
В состав пакета UC3 Software Framework входят демонстрационные приложения, позволяющие реализовать http-сервер на основе отладочных плат EVK110x и модулей SPB104/SPB105. Данные приложения находятся в директории AVR32COMPONENTSWIFIHDEXAMPLE. Аналогичное по функциональности приложение доступно на сайте H&D Wireless для модуля SPB800 [8]. Кроме того, доступно приложение для передачи потоковых данных с использованием UDP-протокола.
Подводя итог, отметим, что основным достоинством Wi-Fi-модулей компании H&D Wireless является всесторонняя их поддержка как аппаратными средствами разработки, так и программным обеспечением, что делает данные модули решением, подходящим для широкого круга беспроводных приложений.
- Описание работы с Wi-Fi-модулями H&D Wireless на встраиваемых платформах, использующих Linux. http://linux.hd-wireless.se/bin/view/Linux/WebHome. /ссылка утерена/
- Курилин А. Микроконтроллеры AT32UC3: новое семейство с большим потенциалом // Компоненты и технологии. 2009. № 7.
- Описание программного интерфейса oWL Pico: http://linux.hd-wireless.se/bin/view/Pico/. /ссылка утерена/
- Data sheet HDG104 WiFi SIP component. H&D Wireless AB. 2010.
- Data sheet SPB104 WiFi Evaluation Kit. H&D Wireless AB. 2010.
- Data sheet SPB105 WiFi Evaluation Kit. H&D Wireless AB. 2010.
- Data sheet SPB106 WiFi SMD Board. H&D Wireless AB. 2010.
- Data sheet SPB800 WiFi SMD Board. H&D Wireless AB. 2010.