Wi-Fi модули Microchip

Компания Microchip Technology Inc. производит несколько Wi-Fi модулей стандарта 802.11b и 802.11b/g с ультра низким потреблением предназначенных для встраиваемых приложений. Эти сертифицированные Wi-Fi модули позволяют разработчикам быстро добавить связь с интернетом или с локальной сетью в свои изделия. Модули имеют небольшие размеры, большую функциональность и низкое потребление, что делает их отличным выбором для мобильных беспроводных приложений, таких как системы мониторинга, датчики, батарейные устройства.

Встраиваемый Wi-Fi

Компания Microchip предлагает два семейства модулей: серий RNххх и MRFххх. Основное отличие модулей заключается в расположении TCP/IP стека по отношению к модулю. Модули RNxxx имеют встроенный процессор с TCP/IP стеком, а для модулей MRF24W нужен стек во внешнем микроконтроллере.

Рис. 1. WiFi модули серии RN и MRF.

Модули серии RN разработаны компанией Roving Networks (сейчас Roving Networks является частью компании Microchip Technology Inc.) для предоставления разработчикам наипростейшего способа коммуникации с помощью Wi-Fi. Модули содержат встроенный стек протоколов и для разработчика выглядят как «беспроводной последовательный кабель». Все что нужно пользовательскому приложению это использовать UART интерфейс для связи с Wi-Fi. Модули RN предоставляют быстрый способ коммуникаций практически любых 8-, 16- и 32- битных микроконтроллеров через Wi-Fi соединения. Модули серии MRF требуют наличия большей части стека во внешнем PIC® микроконтроллере, который так же может содержать пользовательское приложение. Это является более сложным в реализации для разработчика, но обеспечивает больше возможностей по доступу к стеку и оптимизации стоимости конечного изделия за счет исключения неиспользуемых сервисов TCP/IP стека. Для поддержки разработок на модулях MRF компания Microchip предоставляет бесплатный стек протоколов TCP/IP в исходных кодах для 16- и 32- разрядных PIC® микроконтроллеров.

Wi-Fi модули серии RN

Управление модулями серии RNxxx, так же известных как WiFly® модули, основано на идее управления аппаратурой с помощью AT команд, которые исторически используются для управления работой модемов. Но команды управления модулями Roving используют английские слова (set, get, show, open, close и т.п.), что предоставляет более понятный и простой в освоении интерфейс.

Модули WiFly предоставляют разработчику простой механизм передачи данных через Wi-Fi в виде «коммуникационного туннеля» или «беспроводного последовательного кабеля», освобождая программиста обрамлять передаваемые данные служебной информацией. Для программиста передача данных через WiFly выглядит как работа через обычное последовательное проводное соединение. Модули WiFly работают в двух режимах: режим данных (data mode) и режим управления (control mode).

Режим данных это простой режим приема и передачи данных. Данные принятые UART модуля будут переданы через Wi-Fi и данные принятые через Wi-Fi будут отосланы в UART. Специальная последовательность символов ($$$) переводит модуль в командный режим, в котором передаваемые данные в UART или даже в Wi-Fi, если соответствующая возможность разрешена, используются для управления и конфигурации WiFly модуля, например задания имени и пароля Wi-Fi сети, установка скорости и др.

Рис. 2. Взаимодействие с WiFly модулем.

Модули RN131 соответствуют стандарту 802.11 b/g и представляют собой завершенное встраиваемое решение c ультра низким потреблением. Потребление модуля 35мА в активном режиме (прием данных) и 4мкА в режиме энергосбережения позволяет применить Wi-Fi решения в батарейных устройствах и создавать новые изделия класса «интернет-вещей». Комбинация низкого потребления и возможности пробуждения, подключения к сети, передачи данных и возврата в режим экономии энергии за время менее 100 миллисекунд, позволяют модулям RN131 работать долгое время от одного комплекта батарей. Модули RN131 доступны в двух вариантах – RN131G с температурным диапазоном -40C … +85C и RN131C с температурным диапазоном от 0 до +85C.

Модуль RN171, как и RN131 это встраиваемый 802.11 b/g Wi-Fi модуль с ультранизким потреблением. Модуль RN-171 отличается от RN-131 меньшим форм-фактором и отсутствием чип-антенны. Основные отличия модулей приведены в таблице 1.

Рис. 3. Структура WiFly модулей RN131 и RN171.

Особенности WiFly модулей:

  • Wi-Fi сертифицированные 2,4ГГц IEEE 802.11 b/g приемопередатчики
  • FCC/ETSI/IC сертификаты.
  • Ультра низкое потребление:
  • * Интеллектуальное, интегрированное управление питанием с программируемым пробуждением
  • * RN131: 4 мкА в Sleep, 35 мА в приеме (Rx), 210мА в передаче (Tx) при выходной мощности 18 dBm (мощность передатчика не настраивается)
  • * RN171: 4 мкА в Sleep, 35 мА в приеме (Rx), 185мА в передаче (Tx) при 12 dBm (мощность передатчика настраивается)
  • Антенны:
  • * RN131: керамическая чип-антенна и U.FL разъем для подключения внешней антенны
  • * RN171: подключение внешней антенны
  • Аппаратные возможности:
  • * Встроенный 32-битный процессор, 8Мб Flash памяти, 128Kб ОЗУ, 2Кб ПЗУ; 2Кб ОЗУ с возможностью сохранения данных от резервной батареи.
  • * Цифровые порты ввода/вывода (General-purpose digital I/O – GPIO). RN131: 10 GPIO, RN171: 14 GPIO
  • * 8 аналоговых входов (14 бит, 1.2 В)
  • * Часы реального времени (Real-Time Clock – RTC) для вывода и входа в Sleep, для установки временных отметок.
  • Поддержка сетевых сервисов:
  • * Встроенный TCP/IP стек
  • * Поддержка режимов Access Point (AP), ad hoc, и infrastructure
  • * Поддержка WPS подключения к сетям
  • * возможность обновления прошивки по воздуху (через FTP сервер)
  • * аппаратная поддержка WEP, WPA-PSK (TKIP), WPA2-PSK (AES) и Enterprise Security
  • * Конфигурирование через UART с применением простых ASCII команд
  • * Встроенное web- приложение для беспроводного конфигурирования через Wi-Fi.
  • * Встроенная поддержка: DHCP client, DNS client, ARP, ICMP ping, FTP client, TELNET, HTTP, UDP и TCP

Таблица 1

RN171 RN131
размеры 26 х 18 х 3.1мм 37 х 20 х 4мм
Мощность передатчика 0 … 12 dBm (программируемая) 18 dBm (фиксированная)
Точный Sleep таймер Нет (точность ±10%) Да (32кГц)
Доступные GPIO 14, GPIO1 – GPIO14 10, GPIO4 – GPIO13
Каналы АЦП / диапазон 8 / 0 - 400 mV 8 / 0 - 400 mV
Антенна Внешняя Чип-антенна и u.FL разъем
Температурный диапазон –40 … +85ºС RN131G: –40 … +85ºС
RN131C: 0 … +85ºС
Вопрос: В чем отличие модулей 802.11 b/g и совместимых с 802.11 b/g?
Ответ: Часто путают два этих понятия. 
Отличия «совместимых с 802.11 b/g» устройств от «802.11 b/g» кроются в том, как устройства 802.11b подключаются к 802.11g сетям. 
Модули 802.11 b/g в ‘g’ сетях обеспечивают полную, максимально возможную скорость передачи данных, в то время как «совместимые 802.11 b/g» модули могут работать с «b- скоростью» 
и ‘g’ сеть будет работать медленнее. 
Все WiFly модули соответствуют стандарту 802.11 b/g и работают с полными скоростями передачи данных указанного стандарта.

Все Wi-Fi модули от Roving Networks имеют FCC, CE, ICS сертификацию и аппаратную поддержку AES и TKIP (WEP, WPA, WPA2, Enterprise Security.

Безопасность

WEP Устаревший стандарт.
Запрещен к использованию Советом по стандартам безопасности индустрии платежных карт (Payment card industry security standards council, PCI SSC) c 2008 года
WPAv1 Аналогичен WEP, но использует TKIP (протокол целостности временного ключа).
TKIP отвечает за увеличение длины ключа и замену одного статического WEP ключа генерируемыми сервером аутентификации ключами.
WPAv2 Использует CMPP протокол шифрования с алгоритмом AES. С 2006 года поддержка WPA2 является обязательной для сертификации Wi-Fi устройств.
Обеспечивает надежное шифрование данных, хотя имеет некоторые уязвимости
WPA/WPA2 Enterprise Обеспечивает защиту данных корпоративного уровня.
Обеспечивает надежное шифрование данных. Пока нет информации об успешных атаках на WPA2-Enterprise
Замечания по обеспечению безопасности.

Шифрование WEP не обеспечивает безопасность данных: сеть может быть взломана в течение нескольких секунд, поэтому применение WEP равносильно использованию сети в открытом режиме. Microchip рекомендует использовать как минимум WPA аутентификацию из-за её большей безопасности. Протокол TKIP (протокол целостности временного ключа), который используется в WPAv1, также имеет уязвимость (хотя требуется больше времени для нарушения данных или разрыва соединения).

Стандартами предусматривается, что точки доступа как минимум используют либо WPA1-PSK с TKIP или WPA2-PSK с AES (CCMP – протокол блочного шифрования с кодом аутентичности сообщения).

Режим установления связи Wi-Fi Protected Setup (WPS) использует WPA2-PSK с шифрованием AES.

Типы поддерживаемых Wi-Fi сетей

Модули WiFly RN171 и RM131 поддерживают следующие типы WiFi сетей.

Инфраструктура

Wi-Fi узлы общаются через сеть, создаваемую точкой доступа (Access Point) Наиболее распространенный тип соединения.

Adhoc

Соединение типа точка-точка Каждый модуль соединяется с другим Примечание 1. Модули WiFly с последними прошивками не поддерживают режим AdHoc. Если вам нужна поддержка AdHoc, то нужно загрузить прошивку версии 2.38, которая доступна для скачивания с сайта www.microchip.com Примечание 2. Android устройства не поддерживают Adhoc.

SoftAP

Модуль работает как Точка Доступа (AP) AP модуль является центральным координатором сети Предоставляет базовое управление сетью (DHCP, routing, gateway redirection)

Методы подключения к Wi-Fi сетям

Модули RN131 и RN171 поддерживают настройку и установку соединения через WPS, CLI и web-интерфейс.

WPS – Wi-Fi Protected Setup

Установка соединения и настройка с помощью WPS (Wi-Fi Protected Setup) дает возможность настройки сети тем пользователям, кто далек от знаний как конфигурировать сеть и устанавливать защищенное Wi-Fi соединение. Метод WPS предоставляет способ автоматического конфигурирования новой Wi-Fi сети, добавлять устройства в сеть и устанавливать защищенные соединения.

Рис. 4. Авторизация WiFi устройств с помощью WPS.

Наиболее распространенный режим подключения WPS это режим запуска по кнопке (Push Button Mode – PBC), в котором пользователь нажимает кнопке WPS на Wi-Fi точке доступа и на беспроводном клиенте (модуле WiFly в нашем случае). Модуль WiFly начиная с версии прошивки 2.28 поддерживает два способа запуска WPS режима:

  • через командный режим с помощью команды wps или run wps
  • с помощью изменения состояния вывода GPIO9 (лог. «0» → «1»)

Перед тем как использовать запуск WPS по кнопке (вывод GPIO9), нужно разрешить этот вариант запуска с помощью команд

set sys launch_string wps_app 	// Запуск WPS по изменению 
// GPIO9 для WiFly 4.xx

или

set system trigger 0x10		// Запуск WPS по изменению GPIO9

Когда запущен процесс установки связи с помощью WPS, то модуль договаривается с точкой доступа об имени SSID и коде доступа к сети и перезагружается для установления связи с новыми сетевыми настройками. Необходимо обратить внимание, что если GPIO9 остается в высоком состоянии во время перезагрузки модуля, то модуль запуститься в режиме создания своей сети: в режиме точки доступа или ad hoc (в зависимости от версии прошивки). Поэтому, чтобы после перезагрузки подключиться к ассоциированной WPS точке доступа, нужно чтобы до перезагрузки модуля GPIO9 был в низком состоянии. На отладочных платах с модулями RN131 и RN171 есть светодиоды, отображающие состояние модуля. Когда красный светодиод начинает мигать, то это индицирует сканирование точек доступа с инициированным процессом установки связи WPS. В это время необходимо отпустить кнопку, подключенную к GPIO9.

Web Server

Модули WiFly содержат конфигурационный web-сервер, при запуске которого модуль переключается в режим точки доступа (AP), что дает возможность подключиться созданной Wi-Fi сети и конфигурировать модуль через браузер. В режиме web сервера можно увидеть доступные сети, изменить режим подключения к сети и режимы безопасности.

Рис. 5. Конфигурирование WiFly модуля через встроенный web-сервер.

CLI (Command Line Interface)

Конфигурирование модулей WiFly в командном режиме доступно через UART или SPI интерфейс и может осуществляться любым микроконтроллером или компьютером.

Рис. 6. Установка связи WiFly модуля через командный режим.

Возможности модулей WiFly

Модули WiFly имеют массу возможностей, рассмотрим некоторые из них.

Режим точки доступа

Помимо возможности подключения к готовой Wi-Fi сети (infrastructure), модули WiFly могут создавать свою сеть и работать в режиме точки доступа (Access Point, AP). Режим точки доступа заменил поддержку Adhoc в версии 2.45 и старше.

Достоинства AP режима:

  • возможность создания защищенной сети (Adhoc поддерживал только открытое соединение), в версии прошивки 4.40 режим точки доступа получил поддержку WPA2-PSK;
  • подключение до 7 клиентов (Adhoc поддерживает только соединения типа «точка-точка»);
  • поддержка подключений iOS, Android и др. устройств (Android не поддерживает Adhoc);
  • поддержка DHCP сервера и выдача IP адресов подключенным клиентам, что намного быстрее чем установка связи в Adhoc;
  • поддержка маршрутизации между клиентами.

Запуск режима точки доступа возможен аппаратно (удержание GPIO9 в высоком состоянии при перезагрузке модуля) и программно с помощью командного режима.

Если модуль запущен в режиме точки доступа, то любое клиентское устройство может быть подключено к созданной сети. При подключении клиента к сети DHCP сервер модуля WiFly назначает IP адрес подключенному клиенту (до 7 подключений). По умолчанию срок аренды IP адреса составляет 1 день, т. е. 86 400 секунд, но возможно это время изменить с помощью команды set dhcp lease <value>, где <value> это время в секундах. С помощью команды show lease можно просмотреть список ассоциированных с точкой доступа клиентов.

Режим точки доступа поддерживает монитор подключений (link monitor), который позволяет определить какие клиенты активны и находятся в зоне досягаемости модуля. Монитор подключений имеет таймер, который отсчитывает время от любого пакета, прошедшего от ассоциированных устройств. Если время таймера истекает (время настраивается), то точка доступа деавторизует клиента от сети, тем самым обеспечивается отключение устройств, которые долгое время не посылают данные через Wi-Fi.

Режим точки доступа поддерживает маршрутизацию между клиентами. Любой клиент, подключенный к точке доступа, может передавать UDP и TCP пакеты любому другому клиенту в сети.

Конфигурационный web-сервер

Модули имеют конфигурационный web-сервер, который запускается по команде run web_app или по изменению состояния GPIO9 (с лог. «0» в лог. «1»). При запуске встроенного web-сервера модуль переключается в режим точки доступа (AP), что дает возможность подключиться созданной Wi-Fi сети и конфигурировать модуль через web-браузер (модуль доступен по адресу config).

Рис. 7. Пример конфигурационного сервера.

Через Web-интерфейс можно сканировать доступные сети и ассоциировать модуль с одной из них с заданием типа шифрования и пароля доступа к сети. Выбранные параметры вступают в силу после сохранения и перезагрузки модуля (кнопка Save & Reboot).

Для полной конфигурации модуля доступен WiFly терминал (WiFly Terminal), с помощью которого можно осуществлять все настройки, так же доступные через UART интерфейс (CLI интерфейс).

Часы реального времени

Модули WiFly имеют часы реального времени (RTC), которые считают время от включения питания модуля и точное время, когда модули подключены к интернету и синхронизированы с sNTP сервером. При синхронизации с сервером времени модуль считает время с 1970г, что соответствует UNIX формату представления времени.

Часы RTC обеспечивают функции программируемого управления режимами энергосбережения (вход/выход в Sleep, функции auto-Sleep), возможности установки временных меток. Модули имеют следующие таймера:

  • Sleep timer – это 32-х битный таймер, используется для ввода модуля в спящий режим. Управляется командой set sys sleep <value>
  • Wake timer – это 22-х битный таймер используется для пробуждения модуля. Максимальное устанавливаемое время 1165 часов. Управляется командой set sys wake <value>
  • Auto-connect timer – используется для автоматического открытия TCP соединения
  • Idle timer – используется для автоматического закрытия TCP соединения

Помимо выхода из Sleep по часам реального времени, модуль может быть разбужен поступлением команды по UART или изменением состояния вывода GPIO.

HTML клиент

Модули WiFly имеют встроенный HTML клиент, с помощью которого получают или отправляют данные на web сервер, при этом процессы могут быть автоматизированы и не требовать участия внешнего микроконтроллера. К примеру, можно отправлять данные с датчиков (входов АЦП модуля, портов В/В) и/или данные получаемые через UART интерфейс на удаленный web-сервер. Эта возможность позволяет использовать модули WiFly и добавлять Wi-Fi в такие приложения, как навигационные GPS/ГЛОНАСС системы, удаленные датчики, погодные станции и т.п. При отправке на сервер необходимо передавать данные в ASCII формате. Если данные в UART поступают в бинарном формате, то модуль WiFly может сам преобразовать их в ASCII.

Соединение с FTP сервером

Модули WiFly позволяют соединяться с ftp-сервером для загрузки обновлений прошивки. Однако можно настроить связь со своим ftp сервером для считывания файла с сервера или создания и загрузки файла на сервер. При считывания файла с ftp сервера модуль не сохраняет его в памяти модуля: модуль выступает в качестве транспорта и выдает файл через UART интерфейс.

ftp get <filename> - чтение файла с ftp сервера
ftp put <filename> - запись файла на ftp сервер

Передача данных через UDP протокол

Протокол UDP не предполагает установление связи между устройствами и приемник не посылает подтверждение после получении UDP пакетов. Поэтому протокол UDP не гарантирует правильность данных. Однако этот протокол широко применяется в задачах, где необходима минимальная задержка и допускаются некоторые ошибки в данных, например UDP используется при передаче звука/голоса или видео.

Для использования UDP нужно его разрешить с помощью команды set ip proto 1. Так же необходимо задать адрес удаленного хоста и номера локального и удаленного портов, которые используются для обмена UDP пакетами.

Так как UDP является протоколом без установки соединения, то данные могут начинать приниматься и передаваться сразу после перезагрузки модуля. В отличие от TCP соединения, не нужно посылать команду открытия соединения для установки связи. Модуль выглядит как «коммуникационный туннель»: данные посланные в UART пересылаются через Wi-Fi и данные принятые через Wi-Fi посылаются в UART.

В режиме UDP имеется возможность автоматического ассоциирования с удаленным хостом: «UDP auto-pairing». Если такой режим разрешен, то модуль сохраняет временно в ОЗУ IP-адрес хоста, который первый послал UDP пакет модулю. Эта возможность позволяет не программировать IP-адрес хоста и обмениваться данными с любым удаленным устройством, обратившимся к WiFly модулю. Адрес такого удаленного устройства храниться в ОЗУ до перехода модуля в спящий режим или выключения питания.

В режиме UDP с включенной опцией «UDP auto-pairing» модули WiFly удобно использовать как преобразователи «Wi-Fi ↔ UART». По умолчанию для UART задана скорость 9600 бод, Пользователю доступно изменение этого значения от 2400 до 921600 бод. В режиме UDP данные из UART сразу поступают в Wi-Fi, но если необходимо отсылать данные пакетами и для коммуникации используется медленный микроконтроллер или клавиатура, то можно настроить «flush-таймер»: если в течение заданного времени не пришло новых данных, то модуль транслирует ранее накопленное. Для пакетной передачи данных так же можно использовать отправку данных по заполнению буфера (задается размер до 1460 байт) или при приеме конкретного символа (например: признака конца строки).

Другой возможностью модуля является формирование UDP повтора (UDP Retry), что позволяет повысить надежность UDP без добавления «громоздкости» TCP протокола. Если UDP-повтор разрешен, то модуль ждет ответ (любую UDP посылку) на каждый посланный им пакет. Если модуль в течение примерно 250мс не получает подтверждения, то он отправляет снова предыдущий пакет. Этот процесс повторяется модулем пока он не получит ответ или новый пакет не будет послан и подтвержден.

Широковещательные UDP пакеты

Модуль WiFly можно настроить в режим автоматической, с заданными интервалами, генерации широковещательных UDP пакетов (UDP Broadcast). Это полезно для следующих случаев:

  • некоторые точки доступа разрывают связь с неактивными устройствами. Широковещательный UDP пакет будет автоматически оповещать точку доступа о том, что модуль активен.
  • использование UDP Broadcast пакетов для автоматического нахождения и конфигурирования модуля. В широковещательном пакете передаются такие данные, как IP-адрес и номер порта, которые могут быть использованы для подключения к модулю и для его удаленного конфигурирования.
  • присутствующие в пакете MAC адреса ассоциированных точек доступа, номер канала и значение RSSI могут использоваться для определения положения модуля в пространстве и реализации функций мониторинга.

Настройка передачи и состав пакета UDP Broadcast осуществляется командами set broadcast. В состав пакета включены данные о MAC адресе точки доступа, номер канала, RSSI, значение времени внутренних часов реального времени (RTC), напряжение батареи/питания, значение GPIO, ASCII время, версия модуля, идентификатор модуля (может задаваться пользователем), время с момента включения, а так же можно включить в пакет значения напряжений на аналоговых входах модуля.

Некоторые другие режимы и возможности модулей WiFly

Вывод 9 порта GPIO имеет несколько вариантов использования. Удержание GPIO9 в высоком состоянии при загрузке модуля (подаче питания) запускает модуль в режиме точки доступа и создания своей сети.

Начиная с версии прошивки 4.00 изменение состояния GPIO9 с уровня лог. «0» в лог. «1» может запустить конфигурационный web-сервер или запустить режим WPS подключения к сети. Какое из приложений будет запускаться по изменению состояния GPIO9 определяется конфигурацией модуля. Пример выбора запуска приложения:

set sys launch_string web_app 	// Запуск web сервера //(режим по умолчанию)
set sys launch_string wps_app 	// Запуск WPS приложения

Вывод GPIO9 так же может использоваться как обычный порт общего назначения.

Команда set wlan rate <value> устанавливает скорость передачи данных через Wi-Fi. От 1 до 54 Mbps. Чем меньше скорость, тем больше возможная дальность связи.

Команда set wlan tx <value> устанавливает выходную мощность передатчика от 1 до 12 dBm.

Команда show io возвращает состояние портов GPIO.

show q <value> – возвращает значение напряжение на аналоговом входе, номер которого определяется значением <value> . Разрядность АЦП 14 бит, диапазон измеряемого напряжения от 0 до 400мВ.

show q 0x1<mask> аналогично предыдущей команде, но возвращает значения по нескольким каналам АЦП.

Полный список команд и примеры их применения можно найти в руководстве пользователя [1].

Обновление прошивки

Все модули WiFly поставляются с последней версией прошивки 4.00 которая имеет такие усовершенствования обновленный конфигурационный web сервер, улучшенную безопасность (Enterprise Security), режим точки доступа (AP Mode), добавлен secondary UDP broadcast пакет для передачи сообщений «UDP discovery message» на вторичный secondary сервер и др. Добавлена возможность отображения числа клиентов, ассоциированных с модулем в режиме точки доступа (soft AP). Полный список улучшений доступен на сайте www.microchip.com.

Обновление прошивки производится «по воздуху» с ftp сервера Microchip. Для обновления прошивки необходимо, чтобы модуль WiFly имел доступ в интернет. Пример команд для обновления прошивки:

set wlan ssid XXX		// XXX = SSID of access point
set wlan pass XXX		// XXX = Passphrase of access point
set wlan join 1		// auto join feature is enabled
save 				// сохранение изменений 
reboot 
ftp update wifly7-400.img
ftp update wifly7-400.mif
reboot 
$$$ 
factory R 
reboot

В конце 2013 года вышло обновление прошивки до версии 4.40, которое дает следующие дополнительные функции: возможность дальнейших обновлений прошивки через UART (XMODEM 1K); добавлен режим безопасности WPA2-PSK при работе модуля как программной точки доступа (soft AP); обновлен конфигурационный сервер; а так же другие обновления и исправление обнаруженных ошибок.

Кастомизация встроенного конфигурационного web-сервера

С обновлением версии прошивки модуля 4.40 появилась возможность изменять страницу конфигурации модуля для придания своего стиля изделиям на базе модулей WiFly: поменять логотип и стиль, изменить возможности конфигурации, добавить страницу помощи и описания и т.п.. Для этого Microchip предоставляет утилиту RN Wi-Fi MIF Generator Tool (рис.8). Сформированный утилитой файл .mif (Multiple Image Format) можно «залить» в модуль через UART или собственный FTP сервер.

Исходные .html файлы конфигурационного сервера так же можно скачать с сайта компании (архив wifly.zip).

Рис. 8. Окно утилиты «Microchip MIF Wizard».
Рис. 9. Изменение конфигурационного сервера.
Обновление прошивки через протокол XMODEM 1K

Рассмотрим пример обновления прошивки модуля WiFly с помощью HiperTerminal (или любой другой терминальной программы).

  • Подключить модуль к ПК и открыть терминальную программу
  • Для увеличения скорости обновления рекомендуется увеличить скорость UART модуля WiFly:
set uart baud 230400 	//set baud rate to 230400
set uart flow 1 		//enable UART flow control
save
reboot
  • Изменить скорость в терминальной программе и разрешить аппаратное управление потоком
  • Подать команду на включение режима обновления прошивки через протокол XMODEM 1K: xmodem <option> <filename>

где: <option> это u – загрузить прошивку и сделать загрузочным образ <filename> (имя прошивки с расширением .img или .mif) c – очистить файловую систему модуля перед загрузкой новой прошивки. Так же будет удалены все файлы из файловой системы, включая пользовательские конфигурационные (†) файлы, за исключением текущего загрузочного образа и заводской прошивки (сектор # 2)

Пример команды обновления:

xmodem cu wifly7-441.mif

(†) примечание.
Пользовательские конфигурационные файлы можно предварительно скачать и сохранить через конфигурационный web-сервер.
Рис. 10. Обновление прошивки через XMODEM 1K протокол.

WebScan

Специально разработанная прошивка WebScan™ для модулей WiFly позволяет реализовывать системы определения положения в реальном времени (RTLS – Real-Time Location System).

Прошивка WebScan разработана для применения в WiFi тагах, которые при просыпании измеряют уровень сигнала RSSI от окружающих точек доступа, соединяются с ассоциированной точкой доступа. Вычисленные значения RSSI отсылается на управляющий сервер TCP пакетом. С помощью алгоритма триангуляции программное обеспечение сервера может оценить положение тага в пространстве и, например, отобразить на карте.

Таг может выйти из Sleep разными способами: по таймеру, измерительному входу или от сигнала внешнего RFID ридера (например рамок ридеров в торговых центрах). Признак того как таг вышел из режима сохранения энергии может так же передаваться на сервер, тем самым добавляя точности в определении координат.

Рис. 11. Пример использования WebScan.

Примеры конфигурации модулей

Есть несколько способов использования модулей WiFly, наиболее близкий к встраиваемым системам пример соединения это использование CLI интерфейса, который может легко смоделирован с помощью терминала и telnet клиента.

Терминальное приложение показывает трафик через последовательный порт, а telnet сессия показывает трафик через Wi-Fi. Несколько простых шагов для установки соединения:

А) подключаем WiFly модуль к компьютеру через последовательный порт (преобразователь UART в RS-232 или UART в USB)

Б) конфигурируем WiFly модуль в режим точки доступа (AP):

$$$				// вход в командный режим
set wlan join 7		// режим AP (точки доступа)
set wlan ssid my_net		// задаем имя сети
set ip addr 192.168.206.167	// адрес модуля
set ip dhcp 4			// включение DHCP сервера

В) подключаем компьютер к созданной модулем WiFly сети

Г) открываем telnet соединение с модулем WiFly (используем порт 2000)

Д) передаем данные из терминала в telnet и обратно При подключении к модулю в телнет сессии появится сообщение *HELLO*, а в терминальной - *OPEN*. Теперь все вводимые символы в терминале (UART) будут отображаться в telnet (Wi-Fi) и наоборот.

Быстрый старт

Подключение к существующей сети

Для подключения к сети нужно задать имя сети и ключ доступа. Пример последовательности команд:

show net			// просмотр доступных сетей 
set wlan ssid XXX	// XXX = SSID имя точки доступа
set wlan pass XXX	// XXX = пароль к сети
set wlan join 1	// включение автоматического подключения к сети
save 			// сохранение конфигурации
reboot			// перезагрузка модуля
Использование часов RTC

Для примера рассмотрим случай, когда нужно сконфигурировать модуль в следующий режим: просыпаться каждые 2 минуты, подключаться к сети и быть доступным для установки TCP соединения в течение 30 секунд.

set wlan ssid my_net	// имя сети
set wlan passphrase pass	// пароль к сети
set sys sleep 30		// заснуть после 30с активности
set sys wake 90		// проснуться через 90с
save					// сохранить настройки
reboot				// перезагрузка

Модуль может считать текущее время и осуществлять синхронизацию часов с sNTP сервером. По умолчанию для модуля WiFly задан временной пояс 7 (Zone = 7, Тихоокеанское время в США).

Пример конфигурации часов

set time zone 20	// установка часового пояса Москва
set time enable 10	// синхронизировать время каждые 10 минут
// 0 – синхронизация выключена
// 1 – синхронизация при включении
// N – синхронизация каждые N минут
time			// синхронизировать время с sNTP

тогда команда show time (или show time t для выдачи полных данных) даст ответ в виде:

<4.41> show time t
Time=13:58:33
UpTime=12590 s
RTC=1391162402
Restarts=1
Wake=1
RAW=2975ba116bf8
Управление портами В/В

Модули WiFly имеют порты ввода/вывода, которыми можно управлять через UART или WiFi. На отладочной плате к выводам GPIO подключены светодиоды, которые отображают состояние модуля, но могут управляться внешними командами.

Несколько простых действий для управления состоянием GPIO:

А) войти в командный режим ($$$)

Б) с помощью команды set с параметром sys выбрать необходимый порт GPIO

set sys iofunc <mask>

Значение 0x00 маски обозначает, что все GPIO управляются модулем WiFly, тогда как нам нужно установить значения GPIO независимо от программы модуля WiFly (альтернативная функция GPIO). Например, нужно управлять GPIO4. В соответствии с таблицей TABLE 3-11: GPIO PIN ALTERNATE FUNCTION BITMASK руководства пользователя «WiFly Command Reference, Advanced Features & Applications User’s Guide» нужно установить маску на 0-й бит, тогда команда будет иметь вид:

set sys iofunc 0x01

В) далее изменить состояние порта GPIO4. Это можно сделать с помощью команды

set sys output <mask1> <mask2> 

Данная команда устанавливает вывод GPIO в высокое или низкое состояние. Маска mask1 это номер бита (см. TABLE 3-10: GPIO PIN USAGE, DEFAULT STATE & FUNCTIONALITY). Опциональный параметр mask2 устанавливает поддиапазон GPIO. Для установки GPIO4 в высокое состояние команда set sys output 0x10

В итоге, для перевода GPIO4 в пользовательский режим и установки его в высокое состояние нужно выполнить команды:

set sys iofunc 0x01    // GPIO4 в пользовательское управление
set sys output 0x10    // выставить лог «1» в GPIO4

Средства отладки и примеры применения

Для поддержки разработчиков Microchip предлагает несколько отладочных плат с модулями RN131 и RN171.

Отладочные комплекты RN-131-EK и RN-171-EK имеют распаянный модуль, кнопку сброса и конфигурируемую кнопку на GPIO9 (запуск режима точки доступа, WPS или конфигурационного веб сервера), светодиоды для отображения режима работы, преобразователь интерфейсов USB-UART, стабилизатор питания. Все аналоговые и цифровые порты В/В выведены на контактные площадки. Отладочный комплект RN-171-EK имеет PCB антенну и батарейный отсек под две батарейки ААА.

rn-131-ek-hi-res.jpg rn-175-hi-res.jpg
Рис. 12. Отладочные платы RN-131-EK и RN-171-EK.

Итоги. Модули RN (WiFly)

Модули WiFly компании Roving Networks, принадлежащей Microchip, идеально подходят для задач преобразования последовательного интерфейса связи в Wi-Fi и обратно. Модули могут работать под управлением внешнего микроконтроллера, но так же отлично справляются с рядом простых функций, которые может выполнять в автономном режиме. Благодаря низкому потреблению тока, часам реального времени, возможностью управления выходной мощностью и скоростью передачи данных можно гибко управлять потреблением энергии и применять WiFi в батарейных устройствах.

Дискуссия

pickit2, 27/06/2014.12:41

Вопросы? :)

all_articles/wifi_rn.txt · Последние изменения: 27/11/2022.20:47 (внешнее изменение)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0