Pull to refresh

Wiren Board — встраиваемый компьютер с Wi-Fi, GPRS, GPS, NFC и Ethernet из коробки

Reading time 9 min
Views 89K


update: Мы ещё живы и наконец-то открыли продажи!готовим первую партию к продаже конце сентября.
Новая версия стала куда лучше и выглядит теперь вот так:


Подробности в нашем блоге.
/update

TL;DR (Abstract)


Мы сделали маленький «одноплатный» встраиваемый компьютер с хорошим набором периферии, в основном беспроводной (GSM/GPRS, NFC, Wi-Fi, GPS, Ethernet, etc). Рабочее название — Wiren Board (от Wireless Enabled)

Предполагается, что использоваться он будет для всяческой автоматизации — то есть в качестве «мозга» для оборудования. Если вы хотите сделать умное устройство, не разрабатывая целиком собственное сложное железо, то это для вас. Впрочем, для DIY наш компьютер тоже весьма полезен, и об этом направлении мы не забыли при разработке. Если понадобится дополнить чем-то специфическим — функциональность можно расширять готовыми модулями. Что ещё приятно, стоимость компьютера мы планируем сделать всего около $100.

Первая версия уже готова, открыт предзаказ.

Что привело нас к разработке встраиваемого компьютера, через какие этапы мы прошли, и что в итоге получилось — читайте дальше.


Зачем?


История весьма банальна: прошлой осенью мы начали думать, как сделать некое устройство.
В процессе мы придумали, что писать софт и подключать всякую периферию к устройству с Linux несравненно проще, чем к устройству с микроконтроллерами, при почти одинаковой стоимости железа. Устройство мы планировали массовое и дешёвое, поэтому ставить raspberry pi с примотанным синей изолентой usb-хабом мы за решение не считали. Разработка своей платы с нуля казалась сложнее, чем всё остальное вместе взятое, а ничего готового за приемлемую цену на рынке не было.

Мы думали, как было бы здорово иметь плату, которая бы удовлетворяла нашим задачам, стоила бы как raspberry pi, а не как боинг с пассажирами и, главное, была бы доступна для покупки в любом количестве. Купить одну, повертеть в руках и купить тысячу, если понадобится. В таких мечтах и родилась концепция нашего будущего продукта: платы, которая объединяет в себе комплект разработчика, массогабаритный макет и готовый продукт. Короче говоря, чтобы разрабатывать, как будто это raspberry pi, но чтобы никакой изоленты.

Плата должна была гибко конфигурироваться — в первую очередь, для снижения цены при массовом применении. С другой стороны, плата в максимальной комплектации должна быть доступна для немедленной розничной покупки и разработки, причём не должна существенно отличаться от серийного решения по габаритам и железу. Серийный экземпляр может получаться за счёт расширения функциональности базовой платы нужными компактными модулями, либо наоборот — за счёт урезания лишнего функционала.

Ниша, казалось, была почти свободна: несмотря на бум ардуино, а потом и одноплатных компьютеров всех видов, ничего подобного для индустрии или для более или менее серьёзных DIY применений так и не появилось. Совсем печально обстояли дела с беспроводными коммуникациями всех видов.

Как?


Если вы хотите сделать устройство с нормальным процессором и Linux на борту, то у вас есть несколько вариантов. Вы можете разработать плату-расширение к вашему любимому одноплатному компьютеру (r-pi), вы можете использовать готовый процессорный модуль, либо разработать всё с нуля.

Каждый из этих вариантов имеет свои плюсы и минусы.
Плата-расширение — самое простое решение, однако цена, размеры и вообще гибкость такого решения оставляют желать лучшего. Кроме этого, почти все одноплатные компьютеры ориентированы на “настольное” применение: довольно сложно поставить, к примеру, raspberry pi на квадрокоптер или автомобиль. С другой стороны, сделать такую плату можно ЛУТом дома на коленке.

Использование System on Module (например Carambola, Aria) стало весьма популярно в последнее время. Суть заключается в том, что вы используете на своей плате готовый модуль, содержащий процессор (точнее SoC) и память. Модуль может вставляться в сокет либо припаиваться к плате. В этом случае вы избавлены от головной боли, связанной с разводкой процессора и памяти, и можете спроектировать гораздо более компактное устройство и дешёвое устройство. Недостатки такого подхода вытекают из его достоинств: на своей “материнской” плате вы теперь должны реализовать схему питания, вывести наружу разъёмы интерфейсов и т.д. Кроме этого, вы всё ещё ограничены возможностями конкретного модуля. Другая проблема — цена таких решений. Если производство вашей платы вы можете значительно удешевлять при росте объёмов производства, то цена готового SoM остаётся почти постоянной.

Последний вариант — разработка платы с нуля. Вы сами разводите на своей плате процессор, память и всё необходимую конкретно вам периферию. Отличный пример такого подхода к разработке — наши конкуренты. Разрабатывая плату, вы столкнётесь со всеми прелестями разводки высокочастотных компонентов, проектирования многослойных плат, со сложностями в поставке чипов и в организации производства. Достигнутый результат может быть прекрасным, но и время уже не вернуть.

Нас очень беспокоило всё написанное выше, и мы мучительно думали, что нам делать.


В итоге, мы наткнулись на замечательную компанию Olimex и их не менее замечательный одноплатный компьютер. Использвание Olinuxino Micro в качестве SoM в нашей плате имеет множество преимуществ.



Во-первых Olinuxino Micro — это не совсем SoM, а скорее полноценный одноплатный компьютер, который легко интегрировать в своё железо. Он уже имеет слот micro-SD карт, разъём питания и т.д. При этом используемый процессор Freescale i.mx233 хоть и не очень свежий, но полностью удовлетворяет нашим потребностям: он industrial-grade, поддерживается производителем, будет производится до 2017 г., на него открыта вся документация, он полностью поддерживается ядром Linux, его без проблем можно купить, и стоит он смешные $5.5 в больших партиях.

Во-вторых, Olinuxino Micro дешёв и легко доступен для покупки. Но главное — это Open Hardware проект, а значит производитель предоставляет полные схемы, и мы всегда можем модифицировать Olinuxino под наши нужды и наладить самостоятельный выпуск. Более того, в этой модели не используются BGA-чипы, и плата разведена на двух сторонах. Это значительно снижает стоимость производства по сравнению многослойными платами с BGA и позволяет нам производить платы даже в России без затруднений.

Итак, чтобы разработка нашей платы не продлилась годы, мы приняли следующий поэтапный план развития:

  1. Используем готовый Olinuxino Micro на нашей плате
  2. Налаживаем самостоятельное производство Olinuxino Micro для оптимизации цены
  3. Модифицируем его под свои нужды.


Такой подход позволил нам за несколько месяцев сделать готовое к массовому производству устройство, которое мы и представляем вашему вниманию.



Процесс работы


Наверняка многим интересно, какие этапы мы прошли от идеи до готовой платы. И действительно, наш путь не был прямым. Ниже опишу самые интересные ситуации из процесса разработки.

Как делать платы


Чтобы сделать плату с кучей модулей, сначала мы делали по отдельной отладочной плате для каждого чипа. Заказывать производство такие простых плат — пустая трата времени и денег, так что первые варианты мы делали сами дома. Выбирали между двумя технологиями — ЛУТом и листовым фоторезистом. Выбор пал на фоторезист как на более технологичный метод, не зависящий от мастерства владения утюгом.

В процессе мы узнали много интересных вещей:

  • как избавиться от зернистости заливки чёрных зон на фотошаблоне
  • как обеспечить качественную печать узких дорожек (0.25 мм)
  • что платы с уже нанесённым двухсторонним фоторезистом, продающиеся в России без всякой маркировки, сделаны с применением положительного фоторезиста, и требуют применения других реактивов в отличие от плёночного отрицательного фоторезиста.

Фотографии наших (ужасных) отладочных плат, сделанных на коленке с листовым фоторезистом:



NFC


Из всех современных RFID-чипов, поддерживающих NFC и peer-to-peer соединения, мы выбрали чип NXP PN532. Семейство RFID-чипов NXP/Philips проверено временем и аппаратно поддерживает наиболее распространённые проприетарные карточки стандарта Mifare. Кроме того, чип поддерживается активно развивающейся библиотекой libnfc .

Чипы PN53x поддерживают подключение по шинам USB, UART, I2C и SPI. Порты UART и USB весьма дефицитны, поэтому мы подключили чип по шине SPI. Все SPI устройства используют общую шину для передачи данных, и только по одному GPIO-выводу тратится на то, чтобы выбирать, с каким устройством обмениваться данными в данный момент.

“Железная часть” подключения прошла без сюрпризов, а вот софт заставил поднапрячься — вышеупомянутая библиотека libnfc не поддерживала работу по SPI.

В процессе реализации поддержки SPI выяснилось, что реализация SPI в чипе от товарищей из NXP не очень совместима со стандартом и принципами работы с SPI в Linux. Пришлось применять, так сказать, нестандартные технические решения, использующие недокументированные особенности работы чипа.

WiFi


Цена — основное, что определило выбор Wi-Fi модуля. Но здесь и была хитрость. Cамый дешёвый Wi-Fi-модуль на Digikey стоит $17. Но такая цена вступает в лёгкое противоречие с существованием дешёвых китайских донглов за $3. Нет, всё понятно: китайская сборка, большие объёмы — но не в 5 же раз! И это даже без учёта того, что во втором случае предлагают готовое устройство. Тогда мы обратились к опыту уже знакомых товарищей из Olimex: www.olimex.com/Products/Modules/Ethernet/MOD-WIFI-RTL8188. В описании к модулю есть интересное название: RTL8188. Оказалось, китайцы выпускают множество готовых модулей на этом чипсете Realtek, которые в основном используются в китайских же планшетах и, например, внутри широко известного китайского медиа-центра MK802. Модули бывают разных размеров, с встроенной антенной и без, для разного крепления на плату. Мы использовали самые компактные модули — без встроенной антенны, с контактами под пайку на плату — как раз такие, как используются в MK802 (на фотографии справа внизу).

Все модули поставляются исключительно на китайский рынок, найти нам удалось их только на taobao. К сожалению, говорить по-английски там не принято, но можно понять, что стоит модуль (в рознице!) 12,5 юаней, или 63 рубля 60 копеек по текущему курсу.

Купить эти модули в Китае было не очень просто, но в итоге мы их всё-таки получили.

Антенны


Есть беспроводные модули — нужны антенны. Первое, что пришло в голову — рисовать антенны дорожками прямо на плате. Но здесь есть свои подводные камни: во-первых, необходимо контролировать импеданс дорожек-антенн, а во-вторых, вокруг них возникает “зона отчуждения”, куда нельзя помещать другие компоненты и дорожки — иначе коэффициент усиления значительно падает. В итоге получаем значительное увеличение размеров платы при неопределённом коэффициенте усиления.

Второй вариант — чип-антенны, устанавливающиеся на плату. Они заметно компактнее, но всё ещё занимают драгоценное место на плате, а коэффициент усиления невелик.

Поэтому мы решили использовать простое решение — установку рядом с беспроводными модулями u.FL-разъёмов. Вот таких:



В них подключаются или сами антенны (на рисунке сверху — простейшая антенна для диапазона 2.4 ГГц), или тонкие коаксильные кабели, которые идут к антеннам. Саму антенну тогда можно установить в любом месте внутри или вне корпуса устройства.

Причём при помощи переходника u.FL — SMA для монтажа на корпус можно подключить большую антенну с полноразмерным SMA разъёмом, например, такую:



Установка u.FL рядом с соответствующими модулями заметно удобнее, чем установка разъёмов SMA непосредственно на плате, так как к последним требуется проводить по плате линию с контролируемым волновым сопротивлением, что очень сложно и занимает много места на плате.

А в конце нами было открыто забавное и приятное свойство — Wi-Fi внутри квартиры и GSM в городе ловятся и без какой-либо антенны, просто на u.FL-разъём и подходящую к нему дорожку =)

UEXT



По сути, UEXT-разъём — главный козырь компании olimex. Придумав совместить три популярных последовательных интерфейса — SPI, I2C и UART, а также питание в одном разъёме, olimex создала удобный способ добавить практически любой проводной или беспроводной интерфейс или датчик к своим отладочным платам для разных микроконтроллеров и микропроцессоров. Чем и воспользовалась, наплодив несколько десятков устройств расширения — www.olimex.com/Products/Modules

Мы же, хоть и создаём “устройство без изоленты”, понимаем, что некоторые специфические модули иногда всё таки проще подключить снаружи — особенно если они невелики, или для них необходимо специальное положение в готовом устройстве — как, например, www.olimex.com/Products/Modules/Interface/MOD-IRDA. Поэтому на нашей плате мы сделали целых два UEXT разъёма.

Разные фотографии готовой платы и прототипов можно посмотреть в галерее .

Технические характеристики Wiren Board


Вот что у нас получилось на сегодняшний день:
  • Двухэтажный компьютер, размеры 50мм x 100мм x 23мм.
  • Первый этаж: плата нашей разработки с периферией, беспроводными и проводными интерфейсами:
    • GSM/GPRS модуль SIMCOM SIM900R. Разъём для micro-SIM (или embedded-SIM модуль). Модуль может выступать в качестве модема, отправлять СМС, а также поддерживает кучу расширений, вроде определения местоположения по вышкам, встроенной памяти или удалённого управления через СМС. Гнездо u.FL для антенны.
    • Wi-Fi на чипе RTL8188SU 802.11b/g/n. Гнездо u.FL для антенны.
    • Ethernet 10/100 на чипе ENC424J600, 8P8C-сокет HanRun с встроенными трансформаторами и светодиодами состояния
    • GPS/GLONASS модуль SIM68V на новом чипсете MediaTek MT3333: TTFF 28 с., поддержка скачанных эфемерид, выбор режима работы GPS/GPS+GLONASS/GLONASS. Гнездо u.FL для антенны.
    • NFC на чипе PN532 — чтение/запись карт ISO/IEC 14443A/MIFARE, поддержка эмуляции Mifare, поддержка NFC Peer-to-Peer, NFCIP-1. Встроенная антенна на плате.
    • 2 разъёма UEXT для подключения плат расширения — uart, spi, i2c или 7 gpio
  • Второй этаж — Olinuxino Micro
    • iMX233 ARM926J processor at 454Mhz
    • 64 MB RAM
    • Слот micro-SD
    • 19 свободных GPIO, разведённых под стандартную 2.54мм гребёнку
    • JTAG и SJTAG
    • Linux 3.7.1, Debian 6.0, все необходимые драйверы и примеры приложений


Первый этаж Wiren Board с двух сторон:



Мы не собираемся зарабатывать на розничных продажах для DIY, по крайней мере сейчас, и хотели бы установить на первую партию минимально возможную при производстве в России цену. Цена производства даже в России значительно зависит от объёмов, поэтому мы открываем предзаказ, чтобы представлять в каких количествах нам надо производить плату.

Цена также значительно зависит от комплектации; мы отдаём себе отчёт в том, что далеко не всем нужны все модули сразу. Мы проанализируем ваши заказы и сделаем несколько вариантов платы.

На странице предзаказа также есть модули, про которые в статье не говорилось (DC-DC 7-40V, USB-host, RS232/RS485/RS422, реле, etc...) — их мы тестировали отдельно и ещё можем добавить в первую версию платы, если они будут востребованы.

На этом пока всё. Будем рады услышать ваши советы и предложения и ответить на вопросы в комментариях!
Tags:
Hubs:
+105
Comments 75
Comments Comments 75

Articles

Information

Website
contactless.ru
Registered
Founded
Employees
2–10 employees
Location
Россия