2013-03-07 2 views
2

Я пытаюсь понять связь между двумя телефонами NFC, где я обменялся контактом.NDEF в P2P (LLCP)

Так что я получил:

B2 4D DD D5 07 03 13 20 00 10 02 00 00 00 D0 D2 0C C1 74 65 78 74 2F 78 2D 76 43 61 72 64 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31 

B24D является SyncCode, ДД LEN, D5 является CMD0, 07 является CMD1 (это DEP_RES) и 03 PFB. Все нормально.

Итак, теперь у нас есть все остальные байты:

13 20 00 10 02 00 00 00 D0 D2 0C C1 74 65 78 74 2F 78 2D 76 43 61 72 64 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31 

Эти байты являющиеся LLCP I PDU.

13 20 00 - DSAP (0x04), PTYPE (0x0C), SSAP (0x20) и последовательность (0x00).

Итак, теперь у нас есть только данные Байты.

10 02 00 00 00 D0 D2 0C C1 74 65 78 74 2F 78 2D 76 43 61 72 64 42 45 47 49 4E 3A 56 43 41 52 44 0D 0A 56 45 52 53 49 4F 4E 3A 32 2E 31 0D 0A 4E 3A 3B 

Мы можем легко понять, что ЦНК начинаются в D2 (D2 является флаги, 0C длина тип, ...)

Так что вопрос здесь, каковы первые байты этих данных?

10 02 00 00 00 D0 

Это как инициализация, и я думаю, что 10 - это номер версии, а D0 - длина. Но из какой документации эта инициализация? Я не нашел информацию в любой документации NFC Forum.

There is the comunication

Спасибо за вашу помощь.

ответ

1

Хорошо, после нескольких часов работы Google я нашел ответ на свой вопрос.

Когда сообщение NDEF передается по протоколу LLC, существует уровень SNEP.

Так заголовок SNEP является: Version - Put - длина (по 4 байта)

В моем случае, версия 1.0 (0x10), Put (0x02), а длина D0 (0x00 0x00 0x00 0xD0).