Приветствую, Habr! В данной статье рассмотрен процесс разработки Wireless Sensor Network (WSN) шлюза для передачи данных от беспроводных датчиков на сервер через мобильную связь. В качестве начинки будем использовать Sub-1GHz SoC CC1310 и программируемый модуль WP8548 от Sierra Wireless. AirPrime WP8548 - это промышленный модуль LGA-239. Его беспроводной модем обеспечивает передачу данных в сетях HSPA, WCDMA, EDGE и GPRS, а также прием GPS сигнала.
Конечно, данную задачу можно было бы решить путем применения микроконтроллера CC1310 в связке с 3G модемом от SIMCOM или Quectel, но: модуль WP8548 лежит у меня в столе уже несколько лет. Рациональное применение данному модулю из-за его стоимости ($60, DigiKey) я так и не нашел, но зуд попробовать его на деле до сих пор мучает меня. Предупреждаю сразу:
Решение дороже аналогичных с Aliexpress
Я не решаю конкретную задачу, а пытаюсь оценить возможности данного модуля
Самый скучный этап проектирования схемы будущего устройства. Но отложим все свои вздохи и посмотрим параметры питания основных компонентов схемы. Открываем страницу 26 документации и видим, что диапазон напряжения питания WP8548 от 3.4 до 4.3 вольт (напрашивается питание от литиевого аккумулятора). CC1310 работает при напряжении питания от 1.8 до 3.8 вольт. Давайте предъявим к будущему устройству общие требования:
Работа от литиевого аккумулятора + его зарядка
Повышающий преобразователь на 5В для питания внешних устройств от литиевго аккумулятора.
Возможность отключения питания части схемы при переходе в спящий режим
Размер печатной платы не больше кредитной карты, конечно
Для начала прикинем, что у нас в целом будет на плате. WP8548 имеет возможнсть работы с MicroSD картой, которая требует 2,95В для своего питания. Логический уровень GPIO у модуля 1.8В, что не очень удобно для домашних поделок. Будем использовать микросхемы согласования уровня, которые требуют для своего питания напряжения 1.8В и 3.3В. Кроме того модуль имеет HSIC интерфейс. К нему будем подключать микросхему USB3503 (имеет внутренние LDO) для обеспечения работы с внешними USB устройствами.
Для зарядки используем микросхему BQ24292. С ней мы получаем возможность использовать источник напряжения до 17В на случай, если захотим подключить наш шлюз к солнечной батарее с 12В АКБ. Ток заряда до 4А, что теоретически позволит нам заправлять параллельно два аккумулятора из PowerBank'ов на 20А.
В качестве повышающего преобразователя мне понравилась микросхема TPS63802. Для запуска нужно всего 6 компонентов, а с учетом корпуса микросхемы и частоты преобразования в 2МГц мы получим минимальный по площади (и пригодный для ручной пайки) buck-boost конвертер.
Микроконтроллер CC1310 будет выступать в качестве программируемого PMIC, то есть напряжение 3.3В на него будет подаваться всегда. Все остальные напряжения делаем отключаемыми.
Итого нам надо:
1.8В для микросхемы согласования (отключаемое)
3.3В для микросхемы согласования (отключаемое)
2.95В для MicroSD (отключаемое)
3.3В для CC1310 (всегда включено)
Будем использовать программируемую (ADJ) микросхему линейного регулятора TPS79301 для всех четырех напряжений, чтобы не увеличивать количество позиций в перечне элементов.
Суммарно имеем следующее:
Процесс проектирования схемы расписывать я не буду, а лишь оставлю некоторые части схемы с комментариями. В конце статьи будет ссылка на полную схему.
Схема заряда
Зарядка осуществляется от внешнего адаптера питания напряжением до 17В. При подключении питания по USB (высокий уровень на PSEL от +VBUS), микросхема BQ24292 будет ограничивать ток заряда так, чтобы не перегрузить USB порт ПК.
Часть схемы согласования уровней
Предполагается отключение U5 и U10 при переходе в спящий режим. Для включения WP8548 необходимо кратковременно подать логический 0 на вывод PWR_ON, который имеет внутренний pull-up резистор. По сути, VT1 и VT2 включены по схеме с открытым коллектором для запуска и сброса модуля. Open-drain в CC1310 не используется для этих целей с точки зрения защиты от случайной перегрузки по напряжению.
Питание MicroSD, питание CC1310, USB
USB необходимо для настройки и прошивки WP8548, дополнительно обеспечиваем для него ESD защиту.
И вот мы добираемся до трассировки платы. По классике жанра, берем кредитку и с линейкой переносим ее контур на слой keep-out. Затем импортируем схему и приступаем к разводке.
Верхний слой. Как видно, корпус модуля довольно неприятный для пайки феном. К счастью, у меня есть домашняя печка для групповой пайки SMD компонентов. Что посоветовать тому, кто собрался паять данный модуль без печки - увы, не знаю.
А вот и сам модуль с сокетом. Паять мы будем сокет.
3D модель платы.
Что касается пайки. Я не заказывал трафарет для паяльной пасты, дабы сэкономить на его стоимости. Поэтому аккуратно наносим припой паяльником, наносим флюс, расставляем компоненты и отправляем плату в печку.
Когда я собираю первую версию платы, то не паяю все компоненты сразу, а начинаю пайку с узлов питания. Например, паяю понижающий DC-DC преобразователь c 12В до 5В. Запускаю и с осциллографом проверяю, что всё работает корректно. Затем продолжаю пайку и собираю понижающий преобразователь с 5В до 2.8В и снова проверяю плату. И так далее, пока не будут собраны и проверены все цепи питания. Если пайка осуществляется на заводе, то на схеме между источниками и потребителями достаточно заложить перемычки.
Делается это для безопасного запуска первой версии устройства и устранения повышенного/пониженного напряжения на цифровых микросхемах в случае неисправности. Возможно, такой подход к отладке спорный, но рабочий.
Отмывочной ванны у меня нет. Всё что смог оттереть щеткой со спиртом - оттёр :) Видим, что горит красный светодиод справа - модуль поймал сеть, синий светодиод слева - идет зарядка аккумулятора. Отлично, подключаем плату к ПК и видим три виртуальных COM-порта.
Кроме того в системе появляется сетевой интерфейс. Пробуем пинговать модуль по адресу 192.168.2.2
Здорово, пробуем подключиться по SSH к модулю. Пользователь root, пароль не требуется.
Видим, что модуль определил SIM-карту на втором слоте, сигнал сети сильный.
Отлично, первый шаг к реализации шлюза сделан. В следующий раз будем писать прошивку для CC1310 и начнем собирать данные от беспроводных устройств.
Ссылка на схему устройства тут.
Не буду дальше продолжать интригу, а скажу сразу, что компания называется CommScope и производит она телекоммуникационное оборудование и в частности беспроводные маршрутизаторы Ruckus, о которых я и хочу рассказать.
На лого у них лающая собака, наверное, раздающая беспроводную связь.
Лого беспроводных систем RuckusДисклеймер
Скажу сразу, что это не рекламная
статья, к сожалению, CommScope мне ничего не
занесли. Цель статьи поделиться с вами полезной информацией, ну и
еще я уже устал рассказывать своим знакомым коллегам из ИТ про
данные маршрутизаторы. Теперь просто буду отправлять ссылку на
статью.
Также статья не является полноценным техническим обзором, я просто делюсь впечатлениями о продукте. Более подробно о технических решениях в данном оборудовании вы можете прочитать в двух статьях, ссылки на которорые я привожу ниже.
Узнал про данные устройства я случайно
На
youtube иногда смотрю образовательные видео в сфере ИТ технологий,
и умные алгоритмы google мне предлагают тематический ИТ контент. И
вот я щелкнул на видео, где был обзор систем Ruckus. Из видео 2011
года стало понятно, что это навороченная беспроводная система со
своим контроллером, который обеспечивает беспроводной роуминг и
другие фишки корпоративных систем что-то там было про "ведение
клиента" и направленный усиленный пучок сигнала за счет
интерференции и так далее.
После просмотра видео я подумал, что, наверное, подобные решения стоят как чугунный саратовский мост. Но все же решил поискать дополнительную информацию в сети чисто из профессионального интереса. Чем больше я читал, тем больше понимал, что устройства очень крутые. И как оказалось для современных моделей Ruckus с приставкой unleashed не нужен контроллер! А ведь именно дорогущий контроллер чаще всего останавливает от покупки профессионального беспроводного решения.
Чем больше я погружался в информацию о точках доступа Ruckus, тем меньше у меня оставалось вариантов удержаться от покупки. В интернет магазинах цены на младшие модели r3xx начинаются от 22 000 рублей (у официальных представителей от 42 000 рублей), но мне хотелось более производительное решение. И в итоге я нашел за полцены (35 000 рублей) новый, но распакованный роутер Ruckus ZoneFlex R510 Unleashed.
Домой я его ставить не стал, а поставил в компанию, чтобы испытать под нагрузкой.
Пришел в офис, выключил четыре микротИка, на которых была построена беспроводная сеть нашей компании, и через 30 минут точка уже работала в продакшен среде, раздавая вайфай по 802.11ac с настроенной WPA3-Enterprise (802.1x EAP) авторизацией и распределением всех клиентов по WLAN.
Физически точку я разместил не по середине офиса, а положил ее на шкаф в одном из его концов, тем самым усложнив для нее задачу. Я прекрасно понимаю, что качество работы wifi зависит не только от мощности точки, но и от мощности вашего wifi устройства. Но, за точкой остается выбор частоты и других параметров передачи, чтобы это было наиболее эффективно.
Тесты показали пинг 2-3мс и 200-300мб/c из любой точки офиса с
телефона, при включенной закачке торрентов с других двух
компьютеров подключенных к wifi.
Причем было понятно, что точка "ведет тебя", и подстраивает сигнал
за счет технологии beamfoarming. Так как сигнал при передвижении
может гаснуть, но потом опять увеличивается после подстройки самой
точкой. (но могу ошибаться в данном эффекте. необходимо тестировать
более серьезно). Подробнее про beamfoarming на wiki.
Beamforming доступен и на других роутерах, но у Ruckus (как уверяет
производитель) работает механизм BeamFlex+ использующий
многолучевые диаграммы направленности антенны, за счет их
конструкции и расположения. Также точка поддерживает MU-MIMO что
позволяет ей "вести" сразу много клиентов и для каждого
индивидуально подбирать параметры приема и передачи сигнала
используя запатентованные технологии Ruckus.
Основные технические характеристики точки Ruckus
ZoneFlex R510 Unleashed
Внешний вид:
Вид без крышки:
Связь:
IEEE 802.11a/b/g/n/ac Wave 2
802.11ac: 6.5 to 867Mbps (MCS0 to MCS9, NSS = 1 to 2 for VHT20/40/80)
802.11n: 6.5 Mbps to 300Mbps (MCS0 to MCS15)
802.11a/g: 54, 48, 36, 24, 18, 12, 9 , 6Mbps
802.11b: 11, 5.5, 2 and 1 Mbps
MIMO:2x2 SU-MIMO/2x2 MU-MIMO
Скорость: 867 Мбит/с, поддержка до 512 клиентов
Безопасность: WPA-PSK, WPA-TKIP, WPA2 AES, WPA3, 802.11i, Dynamic PSK, WIPS/WIDS
Аутентификация: 802.1X, RADIUS,LDAP и ActiveDirectory
Интерфейсы: 2 x 1 Gbps RJ45 с поддержкой PoE 802.3af, 11 x USB 2.0 для BLE и датчиков
4 x 3 dBi адаптивные антенны, обеспечивающие до 64 уникальных диаграмм направленности для каждого радиоканала, полное разнесение по поляризации во всех направлениях. Усиление при использовании технологии BeamFlex до 4 dB. Подавление помех до 10 dB. Чувствительность -103 dBm. Улучшенная пропускная способность за счет технологии ChannelFly
Мощность и ширина канала:26 dBm @ 2.4 ГГц, 25 dBm @ 5 ГГц, 20/40/80 МГц
Протоколы:IPv4, IPv6, dual-stack VLAN: 802.1Q, Port-based 802.1X L2TP 802.11e/WMM, Web, CLI (Telnet/SSH), SNMP v1, 2, 3
Дополнительно: WMM, Power Save, Tx Beamforming, LDPC, STBC, 802.11r/k/v, Hotspot, Hotspot 2.0, Captive Portal, WISPr
Внешне точка имеет спорный дизайн, но для такого технического шедевра это вообще не проблема, так как технические характеристики сводят для меня данный субъективный недостаток к нулю.
Использование и управление
Управлять точкой можно как через веб так и при помощи мобильного
приложения. За счет облачного сервиса управлять точкой можно из
любой части Интернет.
В интерфейсе управления все хорошо продумано. Очень нравится, когда
часто используемые настройки ты видишь сразу, а для более тонких
настроек продвинуться в глубь интерфейса.
Сам по себе интерфейс очень шустрый, никаких подвисаний, все очень
быстро можно настроить без лишних перезагрузок устройства.
Что особенно понравилось
Можно создать политики безопасности и политики распознавания
типов трафика и применять их для определенных типов клиентов или
сетей. У точки обширные возможности по созданию гостевых сетей с
captive portal. Оператор, который раздает гостевой доступ может
генерировать одноразовые (с ограничением по времени) гостевые
пароли и отправлять их по sms или email. Точка может определять
MAC-spoofing, обнаруживать поддельный DHCP, обнаруживать
SSID-spoofing и присылать об всех событиях безопасности уведомления
на email или в мобильное приложение.
Также есть инструменты диагностики беспроводного соединения для
клиентов. Точка в виде диаграмм показывает все этапы соединения и
можно легко понять, почему клиент испытывает трудности с
подключением к сети.
С интерфейса одной точки можно управлять другими точками, также в
последних прошивках поддерживается управление коммутаторами
Ruckus.
Где и как купить?
Если хотите купить лично для себя, то достаточно дешево можно
купить на торговых площадках.
Например, на авито я и нашел свою. Но, внимание! Не нарвитесь на
мошенников, никогда не переводите предоплат. Сначала стулья, а
потом деньги!
Нашел статью, где человек
рассказывает как и что покупать. Если созреете для покупки, то
прочитайте обязательно. Есть ньюансы в выборе моделей.
Есть точки Xclaim, их, кстати, продают на авито начиная от 19 000
рублей. Насколько я понял аппаратно это те же Ruckus, но только с
программными ограничениями.
На них можно установить прошивку без ограничений и вы получите
Ruckus, но это я не проверял.
Заключение
Сначала мне было как-то не по
себе, что я не знал про данные точки доступа (маршрутизаторы). Ведь
я постоянно стараюсь узнать информацию о самых новых и эффективных
решениях в ИТ.
Но как оказалось, большинство моих знакомых ИТ профессионалов
слышат про них в первые, когда я начинаю рассказывать свой опыт
общения с данными девайсами.
Почему так?
Плохая работа маркетологов CommScope? Или им
просто все равно? Данная компания пришла в Россию официально в 2012
году.
Надеюсь, данный мини-обзор был вам интересен и полезен.
Под статьей Хабр вам предложит узнать, что он сам знает про
Ruckus.
Статьи не большие, но достаточно интересные.
Спасибо!
Всем добра!