Связь со встроенным планшетом через NFC или WiFi

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

Использование планшетов Android в качестве встроенных компонентов, часть 2

Общение через NFC или WiFi

Джерри Эпплин

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

Возможно, самая сложная задача - выяснить, как связаться с устройством, когда единственный проводной способ сделать это - через USB-порт, который в большинстве случаев должен использоваться для питания устройства.
Как я уже отмечал в первой части этой серии, двухфункциональные USB-порты, которые служат единственным источником питания планшета, обычно имеют ограниченный ток зарядки, так что постоянно включенный дисплей, как правило, разряжает батарею, несмотря на непрерывную зарядку.
Следовательно, с единственным проводным подключением, предназначенным для питания, нужно выбирать среди различных бесконтактных опций, доступных на планшетах Android.

В первой части я рассмотрел использование Bluetooth в качестве альтернативы USB для связи через встроенный планшет.
Bluetooth зрелый, стабильный и хорошо работает на практике для многих приложений.
Ниже мы рассмотрим две другие потенциальные альтернативы USB для беспроводной связи с платой управления системы: WiFi и NFC.
На первый взгляд ни одна из технологий не кажется хорошим выбором для внутренней коммуникации во встроенной системе, но более внимательный взгляд может изменить это впечатление.

Касание NFC

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

  • Последние микросхемы используют возможности NFC далеко за пределами чтения и записи простых данных.
    Здесь я сосредоточусь прежде всего на линейке NAGP NTAG I2C , но у TI есть некоторые похожие чипы .
  • Поддержка Android для NFC довольно хороша.
    В результате, добавление возможности передавать данные в и из компонента, связанного с NFC, в ваше приложение очень просто.

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


Демонстрационный комплект OMX69 NFC от NXP

(щелкните изображение, чтобы увеличить)

Чипы NXP содержат небольшое количество EEPROM (888 байт для версии «1K» и 1904 для «2K»), но более важными являются 64 байта SRAM.


Блок-схема контроллера NXP NT3H1x01 NFC

(щелкните изображение, чтобы увеличить)

Данные могут быть записаны в местоположения SRAM либо со стороны NFC, либо со стороны I2C, а затем считаны с другой стороны, причем все данные координируются через специализированную арбитражную схему.

Эта модель хорошо работает для многих встроенных систем, в которых интерфейс и сервер взаимодействуют через модель с общей памятью;
например, внешний интерфейс указывает пользовательский запрос на конкретную операцию, устанавливая значение «запрос», а затем внутренний конец указывает статус операции, устанавливая значение «статус».
Этот подход хорошо работает в сочетании с простым опрашиваемым механизмом, и интегральные схемы NXP также имеют выходной вывод, который может быть сконфигурирован для помощи, если для стороны I2C требуется схема, управляемая прерываниями.


Использование чипов NXP NT3H1x01 для перемещения данных между I2C и NFC

(щелкните изображение, чтобы увеличить)

Микросхемы также обеспечивают «сквозной» режим, который предназначен для потоковой передачи данных с одной стороны на другую.
С указанной пропускной способностью 106 Кбит / с интерфейс достаточно быстрый для большинства реалистичных встраиваемых систем.


Тестирование пропускной способности демонстрационной платы NXP NFC-to-microcontroller

(щелкните изображение, чтобы увеличить)

Я обнаружил, что пропускная способность NFC-микроконтроллера составляет около 500 байт / с, а в противоположном направлении скорость передачи увеличивается вдвое.
Приложения для сбора данных, в которых вы хотите передавать собранные данные на планшет, могут показаться необычными;
но можно представить, например, приложения для здравоохранения или «количественной оценки», в которых собираются короткие пакеты биометрических данных.
Потоковая передача в противоположном направлении, возможно, даже менее вероятна, но такая возможность есть.

Чипы NXP и TI можно приобрести примерно за 1 доллар даже в небольших количествах, поэтому использование новых чипов NFC выглядит привлекательным вариантом для облегчения связи между планшетом Android и подключенной встроенной системой.

EEPROM, включенный в чипы NXP, также хорош тем, что к нему можно получить доступ через интерфейс RF.
Это позволяет программировать данные конфигурации на вашей плате управления без необходимости использовать отдельный разъем для этой цели;
или даже реализовать встроенное ПО, так как EEPROM может быть запрограммирован напрямую без какого-либо вмешательства встроенного ПО.
Действительно, это можно сделать даже без включения платы, так как чипы используют схему «сбора энергии», которая позволяет им питаться от планшета через NFC.

Все это становится очень привлекательным для оптимизации вашего производственного процесса.
С помощью некоторого простого кода приложения для Android вы можете настроить свои платы для конкретных случаев использования без какого-либо вмешательства со стороны встроенного ПО.
Это очень удобно, даже если использовать возможности NFC во время выполнения.

Поддержка разработки NXP для линейки NTAG I2C особенно хороша.
Демонстрационный комплект поставляется с микросхемой 1k NTAG I2C, микроконтроллером ARM Cortex-M0 +, разъемом JTAG на случай, если вы хотите разработать исходный код с платой, и тремя переключателями и тремя светодиодами для демонстрации и тестирования входов / выходов.
Исходный код прошивки доступен для скачивания [zip-файл] .
Хорошо разработанное приложение для Android доступно в Google Play , или вы можете загрузить [zip-файл] понятный, хорошо написанный исходный код, который может послужить хорошей основой для интерфейсной части вашего приложения для Android.

Безопасность системы, основанной на NFC, может считаться более высокой, чем безопасность Bluetooth, по той простой причине, что для связи с ней необходимо быть очень близко к устройству.
Помимо любого используемого шифрования, злоумышленник должен работать в непосредственной близости от устройства, чтобы быть эффективным.
В моем собственном использовании я должен был расположить чип NFC в очень маленьком объеме вокруг задней части планшета Nexus 7, чтобы он работал вообще.
Как и в случае с любой технологией беспроводной связи, вы всегда можете добавить слой шифрования сверху, если вас беспокоит безопасность.

А как насчет WiFi?

Возможно, менее интуитивно понятным выбором для связи между планшетом и платой управления во встроенной системе является WiFi.
В настоящее время все современные планшеты имеют функцию Wi-Fi, и поддержка Android для него является полной и зрелой, так что, безусловно, сторона планшета хорошо покрыта.

С другой стороны, интерфейсы WiFi традиционно были довольно дорогими по стандартам встроенных системных компонентов, и полные сетевые стеки обычно не были реализованы на недорогих платах управления.
Запуск платы управления с Linux или другой полноценной операционной системой прекрасно позаботился бы о стеке, но при этом у достаточно большого класса систем либо не хватает ОС, либо минимальная.

Есть несколько причин, по которым вы можете начать рассматривать WiFi:

  • Как уже упоминалось, вы уже используете Linux, и ваше оборудование уже имеет интерфейс WiFi, или его можно добавить недорого.
  • Вам необходимо быстро передавать данные на планшет или на какой-либо вышестоящий сервер.
    Возможность непосредственного подключения к какому-либо доступному беспроводному маршрутизатору и потоковой передачи данных может быть полезной, хотя и в довольно ограниченных обстоятельствах.

Если, например, ваш внутренний управляющий процессор представляет собой Linux SBC, к которому вы можете добавить ключ WiFi, вы можете настроить VPN между ним и планшетом Android, а затем обмениваться данными между ними, используя ваш любимый протокол на основе IP;
или, что более вероятно, просто используйте любую доступную защиту на основе WPA.
Этот подход может быть привлекательным, если внутреннему контроллеру требуется доступ к Интернету помимо связи с планшетом.

Можно также рассмотреть один из многих новых модулей, предназначенных для добавления WiFi во встроенные системы.
Те, что основаны на ESP8266, стали популярными, особенно среди любителей.
Они имеют значительно более низкую стоимость, чем предыдущее поколение, и обычно стоят намного дешевле 10 долларов.


Типичный модуль WiFi на базе ESP8266

(нажмите на картинку, чтобы увеличить)

Они также довольно компактны, хотя, конечно, не так микроскопичны, как чипы NFC, на которые я обращался.
Обычно они взаимодействуют с вашей системой через UART и предоставляют синтаксис в стиле AT [pdf-файл] для подключения к сети, подключения к хосту и связи с другой стороной.

Если набор команд содержит необходимые вам функции, и вы не возражаете против сомнительной долгосрочной доступности и плохо переведенной документации этих новых модулей, это может быть хорошим выбором для вашего устройства.
Сам чип ESP8266 представляет собой SoC, который обеспечивает множество других операций ввода-вывода , так что вы можете использовать чип для построения всей системы вокруг него.

Резюме

В зависимости от ваших потребностей, один из более новых чипов NFC или новейших модулей WiFi может быть дешевым и практичным способом создания встроенного дизайна на базе планшета Android.

Об авторе: Джерри Эпплин (Jerry Epplin) разрабатывает программное обеспечение для различных встраиваемых систем, и много лет был частым участником LinuxDevices.com.
Эпплин живет и работает в Сент-Луисе, Миссури, и с ним можно связаться по адресу jerry (at) epplin (dot) com.

Фото предоставлено: миниатюрное изображение киоска в верхней части этого поста распространяется под лицензией Creative Commons Attribution-Share Alike 3.0 Unported .
На нем изображен интернет-киоск в Хемере, Германия, который, как известно, не запускает программное обеспечение Linux или Android.
Другие изображения были получены из документации производителя компонентов.