Как Android опрашивает устройства NFC

Я работаю с бесконтактным считывателем для связи с моим устройством Android.

Я заметил, что в любой момент времени я не могу подключиться к своему устройству Android с помощью P2P. Если я хочу подключиться, чтобы инициировать передачу Android Beam, я должен постоянно пытаться подключиться к устройству несколько раз в течение одной секунды.

Android-устройство NFC может обнаруживать бесконтактные карты, цели NFC P2P и инициаторы NFC P2P, т. е. 3 различных режима. Я начинаю думать, что за кулисами происходит какой-то опрос, который очень быстро переключается между тремя режимами.

Это означает, что в любой момент времени, когда я пытаюсь подключиться к телефону, он может быть в правильном режиме, а может и нет, и произойдет сбой. Вот почему мне нужно попробовать несколько подключений.

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

Мой вопрос: как Android обнаруживает несколько режимов NFC, использует ли он алгоритм переключения, и если да, то каковы особенности алгоритма?

Спасибо.


person jim    schedule 23.07.2013    source источник


Ответы (1)


Я начинаю думать, что за кулисами происходит какой-то опрос, который очень быстро переключается между тремя режимами.

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

  • Считыватель ISO14443 А
  • Считыватель ISO14443 B
  • Считыватель FeliCa (он же тип тега 3)
  • Читатель ISO15693
  • Эмуляция карты ISO14443 A
  • Эмуляция карты ISO14443 B
  • Эмуляция карты Фелика

В одноранговом режиме в качестве инициатора используется Reader A, Reader FeliCa. Эмуляция карты A и эмуляция карты Felica также используются в качестве технологии режима Peer-to-Peer Target.

Точное время проведения опроса не разглашается, и вы не найдете об этом ничего в исходном коде. За это отвечает встроенный NFC-чип.

person Nils Pipenbrinck    schedule 24.07.2013
comment
Отличный ответ, чтобы подтвердить мои подозрения, спасибо. Вы не возражаете, если я спрошу, откуда вы это знаете? Есть ли у вас какие-либо справочные ссылки, которые я мог бы отсканировать? Спасибо. - person jim; 24.07.2013
comment
Что ж, я знаю каждый NFC-чип вдоль и поперек, потому что по своей работе я разрабатываю чипы и промежуточное ПО NFC. (часть команды дела). Если чипы не работают и возникают проблемы с подключением, часто моя работа заключается в том, чтобы подключить радиочастотный трассировщик, зафиксировать, что происходит, и докопаться до битового уровня, где возникла проблема. Так что я вижу цикл опроса каждый день. - person Nils Pipenbrinck; 24.07.2013