NFC

Материал из virt2real wiki
Перейти к: навигация, поиск

Содержание

Вступление

NFC - Near Field Communication - технология беспроводной высокочастотной связи малого радиуса действия, которая дает возможность обмена данными между устройствами, находящимися на расстоянии около 10 сантиметров. Эдакий усовершенствованный RFID, короче. Рабочая частота - 13.56 MHz.


Для считывания NFC меток и брелков требуется подключить к Виртурилке NFC-считыватель.


Подключение

NFC считыватели могут быть подключены по шинам SPI, I2C (IIC), UART. Некоторые модели считывателей допускают подключение только к одной из этих шин, а некоторые - к любой из них, в зависимости от настроек.


Подключение к UART

NFC считыватель Виртурилка
GND CON1 (GND)
RX CON2 (UART0_TXD) или CON29 (UART1_TXD)
TX CON3 (UART0_RXD) или CON28 (UART1_RXD)
Vcc +3.3V или +5V (пин PWR_VIN), в зависимости от модели считывателя


Проверенные устройства

Itead PN532 NFC

Itead PN532 NFC


В зависимости от положений двух переключателей на борту может быть подключён к SPI, I2C, UART.

Описание на сайте производителя http://imall.iteadstudio.com/im130625002.html


Работа со считывателем

Тут всё немного сложнее, чем при чтении RFID. Первым делом необходимо установить пакет libfnc.

opkg-cl update
opkg-cl install libnfc

Пакете libnfc пока собран только с поддержкой считывателей на базе чипа PN532, по умолчанию будем использовать режим UART. Предполагаем что считыватель подключён к порту UART1.

В каталоге /etc должен появиться каталог nfc, в котором находится файл дефолтной конфигурации, а в нём каталог devices.d, где находятся конфигурации для разных типов считывателей. Пока там есть только один файл считывателя, pn532_uart.conf с примерно таким содержимым:

name = "Itead PN532 via UART"
connstring = pn532_uart:/dev/ttyS1
allow_intrusive_scan = true
log_level = 3

Попробуем прочитать NFC метку, встроенную в билетик московского метрополитена

Вводим команду nfc-poll, считыватель будет переведён в режим ожидания метки

[root@virt2real devices.d]# nfc-poll
nfc-poll uses libnfc 1.7.0
NFC reader: pn532_uart:/dev/ttyS1 opened
NFC device will poll during 30000 ms (20 pollings of 300 ms for 5 modulations)

Подносим метку, увидим что-то вроде такого:

ISO/IEC 14443A (106 kbps) target:
    ATQA (SENS_RES): 00  44
       UID (NFCID1): 34  38  06  a9  78  d3  56
      SAK (SEL_RES): 00

Более подробно общение с NFC ещё не производил, так что подробности будут позже, когда опробую остальные функции.

Ссылки

http://nfc-tools.org/index.php?title=PN53x

http://nfc-tools.org/index.php?title=Libnfc:nfc-emulate