Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе приведены рекомендации по проектированию и требования к периферийному устройству для участия в сценариях использования Tap and Setup и Tap and Reconnect.
Замечание
Реализация связывания, описанная в этом разделе, в настоящее время поддерживается в Windows 8.1 только для связывания с устройствами принтера.
Windows 10 и более поздних версий поддерживает NFC для Wi-Fi передачи статических подключений через Wi-Fi альянс Wi-Fi запись конфигурации оператора P2P. Дополнительные сведения см. в разделеWi-Fi Alliance.
Прямое связывание периферийного устройства Wi-Fi
Во время касания NFP получает сведения о связывании с устройства подключения. NFP передает сведения о связывании в Windows. Wi-Fi Прямые устройства следуют процедуре связывания Wi-Fi Alliance Out-Of-Band (OOB) и рекомендациям форума NFC. Windows использует проприетарное сообщение для настройки связи, определенное ниже.
Windows предложит пользователю предоставить согласие, и если оно будет дано, Windows попытается подключиться к каждому из адресов по порядку, пока одно из подключений не завершится успешно. Дальнейшего взаимодействия между поставщиком NFP на ПК и подключающимся устройством нет.
Использование NFC в качестве примера, однонаправленная установка выполняется путем хранения сведений о связывании в статическом или пассивном теге NFC (активный тег NFC в режиме статической эмуляции также может использоваться). Windows подписывается на эти сведения о связывании. Поставщик NFP с поддержкой NFC на компьютере получает сведения о подключении из тега и передает их в Windows в качестве подписчика. После получения сведений о подключении Windows выполняет фактическую установку устройства через внутриполосное соединение, используя определенные методы для класса устройств.
Требования к взаимодействию
Чтобы обеспечить совместимость между поставщиками NFP, информация о сопряжении должна быть инкапсулирована в формате сообщения, специфичном для конкретного поставщика.
Как описано в этом документе, нет конкретных требований к технологиям близкого взаимодействия, кроме поставщиков NFP с поддержкой NFC.
Для Windows требуется, чтобы поставщики NFP с поддержкой NFC поддерживали определенный механизм NFC Forum для передачи сведений о связывании Wi-Fi Direct OOB для однонаправленного подключения. Сообщение NDEF содержит первую запись с значением поля TNF 0x01 и полем TYPE, равным "Hs", а также альтернативную запись носителя, указывающую на запись конфигурации прямого канала Wi-Fi. В этом методе будет использоваться только PAYLOAD записи NDEF.
Однонаправленное связывание с помощью NFC для Wi-Fi Direct
В этом разделе содержатся дополнительные сведения о том, как NFC, Wi-Fi Direct и Windows работают вместе для поддержки однонаправленного беспроводного сопряжения для устройств Wi-Fi Direct, таких как принтеры.
Ссылки на поставщиков NFP
Wi-Fi Прямое связывание выполняется с помощью стандартизированного типа сообщения "Выбор соединения" согласно форуму NFC. На рисунке ниже представлен обзор того, как используется сообщение выбора передачи подключения для Wi-Fi прямой привязки устройств, в частности записей NDEF 3 и 4. Сообщение "Выбор переключения" описывает одну или несколько записей "ac" или "Альтернативный оператор". Эти записи следуют за записью выбора передачи последовательно, и каждая из них имеет четко определенный тип. Наконец, сообщение будет содержать определённую Microsoft запись сопряжения устройств, которая предоставляет Windows сведения о том, как обработать процесс сопряжения.
Wi-Fi сообщение о прямом связывании устройств
В примерах вариантов использования, приведенных ниже, теги типа NFC 2 используются в качестве иллюстрации. Если необходимо использовать другой тип тега NFC, сообщение NDEF должно быть правильно инкапсулировано в соответствии с этим определением тега.
| Поле | Ценность | Описание |
|---|---|---|
| TNF | 0x02 | Формат следующего поля Type. Тип носителя, определенный в RFC 2046. |
| Тип | 'application/vnd.ms-windows.wfd.oob' | Новая строка типа, определяемая для этого сценария. |
| Размер данных OOB | СЛОВО | Поддерживается до 64 КБ данных OOB. |
| Wi-Fi данных direct OOB | <BLOB размера, указанного предыдущим полем> | Wi-Fi прямые данные OOB, как описано ниже. |
Wi-Fi формат direct OOB
В следующей таблице описывается формат данных OOB WiFi Direct. Однонаправленные данные OOB могут передаваться любым однонаправленным устройством OOB P2P.
| Атрибуты | Идентификатор атрибута | Обязательный или необязательный | Замечание |
|---|---|---|---|
| Заголовок OOB См. таблицу формата атрибута заголовка. |
Не применимо | Обязательно | Атрибут заголовка OOB должен присутствовать в blob-объекте данных OOB P2P, а для него задано значение типа OOB "Данные подготовки в юнинаправленном формате OOB". |
| Сведения об устройстве OOB См. таблицу формата атрибутов сведений об устройстве OOB. |
1 | Обязательно | Этот атрибут должен присутствовать. Он содержит сведения об этом устройстве P2P. |
| Сведения о подготовке OOB | 2 | Обязательно | Этот атрибут должен присутствовать. Он предоставляет сведения о настройке, которые это устройство P2P ожидает использовать. |
| Время ожидания конфигурации OOB | 5 | Обязательно | Этот атрибут должен присутствовать. Он содержит сведения о том, как долго устройство P2P ожидает ответа по Wi-Fi Direct. |
Формат атрибута заголовка OOB
| Имя поля | Размер (октеты) | Ценность | Описание |
|---|---|---|---|
| Общая длина данных | 2 | Переменная | Длина всего OOB BLOB-объекта данных (включая заголовок). |
| Длина | 2 | Переменная | Длина следующих полей в заголовке OOB. |
| Версия | 1 | 0x10 | Значение, определяющее версию этой записи OOB P2P. |
| Тип OOB | 1 | Переменная | Значение, определяющее тип транзакции OOB. Конкретное значение определяется в таблице типов транзакций OOB . |
| ДА | 0 или 3 | Переменная | OUI для конкретного поставщика. Это необязательное значение. Должно присутствовать только в том случае, если тип OOB специфический для поставщика. |
| Тип OUI | 0 или 1 | Переменная | Тип, зависящий от поставщика. Это необязательное значение. Должно присутствовать только если тип OOB специфичен для поставщика. |
Типы транзакций OOB
| Тип OOB (шестнадцатеричный) | Описание |
|---|---|
| 0x00 | Данные подготовки OOB в юнинаправленном формате |
| 0x01 | Данные слушателя OOB настройки |
| 0x02 | Данные соединителя для первичной настройки OOB |
| 0x03 | Данные повторного вызова OOB |
| 0x04-0xDC | Зарезервировано |
| 0xDD | Специфичный для поставщика |
| 0xDE-0xFF | Зарезервировано |
Формат атрибута сведений об устройстве OOB
| Имя поля | Размер (октеты) | Ценность | Описание |
|---|---|---|---|
| Идентификатор атрибута | 1 | 1 | Определение типа атрибута OOB P2P. Конкретное значение определяется в таблице атрибутов OOB P2P. |
| Длина | 2 | Переменная | Длина следующих полей в атрибуте. |
| Адрес устройства P2P | 6 | Как определено в спецификации P2P. | Идентификатор, используемый для уникальной ссылки на устройство P2P. |
| Методы конфигурации | 2 | Как определено в спецификации P2P. | Методы WSC, поддерживаемые этим устройством. Заметка: Порядок байтов в поле "Методы конфигурации" должен быть порядком старшего байта. |
| Основной тип устройства | 8 | Как определено в спецификации P2P. | Основной тип устройства P2P. Содержит только часть данных атрибута основного типа устройства WSC (исключает поля идентификатора атрибута и длины). Примечание: Порядок байтов в поле «Основной тип устройства» должен быть в формате big-endian. |
| Растровое изображение возможностей устройства | 1 | Как определено в спецификации P2P. | Набор параметров, указывающих возможности устройства P2P. |
| Имя устройства | Переменная | Как определено в спецификации P2P. | Удобочитаемое имя устройства P2P. Содержит полный формат TLV атрибута имени устройства WSC. Заметка: Порядок байтов в поле «Имя устройства» должен быть в порядке big-endian. |
Атрибуты P2P OOB
| Тип OOB (шестнадцатеричный) | Описание |
|---|---|
| 0x00 | Состояние OOB |
| 0x01 | Сведения об устройстве OOB |
| 0x02 | Сведения о подготовке OOB |
| 0x03 | Идентификатор группы OOB |
| 0x04 | Канал прослушивания OOB |
| 0x05 | Время ожидания конфигурации OOB |
| 0x06-0xDC | Зарезервировано |
| 0xDD | Конкретный атрибут поставщика |
| 0xDE-0xFF | Зарезервировано |
Формат атрибута информации о настройке OOB
| Имя поля | Размер (октеты) | Ценность | Описание |
|---|---|---|---|
| Идентификатор атрибута | 1 | 1 | Определение типа атрибута OOB P2P. Конкретное значение определяется в таблице атрибутов OOB P2P . |
| Длина | 2 | Переменная | Длина следующих полей в атрибуте. |
| Растровая карта параметров настройки | 1 | Переменная | Набор параметров настройки, определённых в таблице параметров настройки. |
| Выбранный метод конфигурации | 2 | Как определено в спецификации P2P. | Метод WSC, выбранный этим устройством P2P для настройки. |
| Длина штифта | 1 | 0 - 8 | Число байтов в следующем поле данных ПИН-кода. В этом поле значение 0 указывает на отсутствие дополнительных данных ПИН-кода. |
| Закрепление данных | Переменная | н | Это поле является необязательным. Это поле присутствует только в том случае, если поле длины ПИН-кода не равно 0 и содержит массив октетов, представляющих ПИН-код, используемый для подготовки. |
Параметры настройки
| Биты | Информация | Примечания. |
|---|---|---|
| 0 | Создание новой группы | Бит "Создание новой группы" устанавливается в 1, если эта информация о конфигурировании предназначена для формирования новой группы с целевым P2P-устройством. В противном случае эти данные настройки предназначены для вступления в существующую группу. |
| 1 | Применение параметра типа группы | Бит настройки принудительного типа группы устанавливается в 1, если необходимо принудительно применить бит типа требуемой группы. В противном случае бит типа требуемой группы является просто предпочтением. |
| 2 | Тип требуемой группы | Бит типа требуемой группы должен иметь значение 0, если тип требуемой группы является временным, и должен иметь значение 1, если тип требуемой группы является постоянным. |
| 3 - 7 | Зарезервировано |
Формат атрибута времени ожидания конфигурации OOB
| Имя поля | Размер (октеты) | Ценность | Описание |
|---|---|---|---|
| Идентификатор атрибута | 1 | 5 | Определение типа атрибута OOB P2P. Конкретное значение определяется в таблице атрибутов OOB P2P . |
| Длина | 2 | 1 | Длина следующих полей в атрибуте. |
| Время ожидания настройки прослушивателя | 1 | 0 - 255 | Время, которое устройство P2P проведет в ожидании Wi-Fi прямой связи после передачи данных OOB, в единицах 100 миллисекунд. (Не более 25,5 секунд). |
Запись сопряжения устройств Windows
Запись сопряжения устройств Windows соответствует спецификации NDEF. В нем содержатся дополнительные сведения для Windows о том, как обрабатывать сообщение "Выбор сообщения о передаче подключения". Поля TNF и Type должны быть указаны в соответствии со спецификацией NDEF. Остальные поля ниже будут последовательно перечислены в поле полезных данных записи NDEF.
| Имя поля | Ценность | Значение длины | Описание |
|---|---|---|---|
| TNF | 0x02 | 3 бита | Формат следующего поля Type. Тип носителя, определенный в RFC 2046. |
| Тип | "application/vnd.ms-windows.devicepairing" | 0x28 байт | Новая строка типа, определяемая для этого сценария. |
| Мажорная версия | 0x1 | 2 байта | Требуется, чтобы основная версия была 0x1. |
| Младшая версия | 0x0 | 2 байта | Минорная версия должна быть 0x0. |
| Флаги | 0x0 или 0x01 | 4 байта | Установите значение 0x0, чтобы попробовать все транспорты. Установите значение 0x1, чтобы попытаться выполнить установку последовательно и остановиться после первого успешного выполнения. Предпочтение транспорта указывается последовательностью альтернативных записей перевозчика. Примечание Значения от 0x0002 по 0x0064 зарезервированы. |
| Длина дружественного имени устройства | Длина поля дружественного имени устройства. | 1 байт | Длина удобного имени устройства. |
| Дружественное имя устройства | Строка в кодировке UTF-8 до 255 байт. | Длина понятного пользователю имени устройства | Понятное имя устройства, которое будет отображаться в интерфейсе согласия на клиентском устройстве. |
Wi-Fi Direct просто работает, церемония, формат тега передачи статических подключений
Например, ниже приведена типичная реализация пассивного тега NFC. Это соответствует регистру передачи статических подключений с записью Wi-Fi Direct carrier, принтером общего сетевого ресурса и записью связывания ms-устройств.
Эта первая таблица иллюстрирует формат Wi-Fi части прямого связывания тега.
| Offset | Содержимое | Длина | Объяснение |
|---|---|---|---|
| 0 | 0x91 | 1 | Заголовок записи NDEF: MB=1b, ME=0b, CF=0b, SR=1b, IL=0b, TNF=001b |
| 1 | 0x02 | 1 | Длина типа записи: 2 октета |
| 2 | 0x0A | 1 | Длина типа записи: 10 октетов |
| 3 | 0x48 0x73 | 2 | Тип записи: "Hs" |
| 5 | 0x12 | 1 | Номер версии: старший = 1, младший = 2 |
| 6 | 0xD1 | 1 | Заголовок записи NDEF: MB=1b, ME=1b, CF=0b, SR=1b, IL=0b, TNF=001b |
| 7 | 0x02 | 1 | Длина типа записи: 2 октета |
| 8 | 0x04 | 1 | Длина полезных данных: 4 октета |
| 9 | 0x61 0x63 | 2 | Тип записи: ac |
| 11 | 0x01 | 1 | Флаги переносчика: CPS=1, "активный" |
| 12 | 0x01 | 1 | Длина ссылки на данные оператора: 1 октет |
| 13 (тринадцать) | 0x30 | 1 | Справочник по данным оператора: "0" |
| 14 | 0x00 | 1 | Число вспомогательных ссылок на данные: 0 |
| 15 | 0x1A | 1 | Заголовок записи NDEF: MB=0b, ME=0b, CF=0b, SR=1b, IL=1b, TNF=010b |
| 16 | 0x22 | 1 | Длина имени типа записи: 34 октета |
| 17 | 0x3E | 1 | Длина полезных данных: 62 октетов |
| 18 | 0x01 | 1 | Длина идентификатора: 1 октет |
| 19 |
0x61 0x70 0x70 0x6C 0x69 0x63 0x61 0x74 0x69 0x6F 0x6E 0x2F 0x76 0x6E 0x64 0x2E 0x6D 0x73 0x2D 0x77 0x69 0x6E 0x64 0x6F 0x77 0x73 0x2E 0x77 0x66 0x64 0x2E 0x6F 0x6F 0x62 |
34 | Имя типа записи: application/vnd.ms-windows.wfd.oob |
| 53 | 0x30 | 1 | Идентификатор: "0" |
| 54 | 0x3E 0x00 | 2 | Wi-Fi Длина данных Direct OOB: 62 октетов. Длина считывается как беззнаковое короткое целое и включает весь BLOB. Включает в себя 2 октета длины. Это значение должно храниться в маленьком формате. |
| 56 | 0x02, 0x00 | 2 | Длина заголовка: 2 октета |
| 58 | 0x10 | 1 | Версия: 0x10 |
| 59 | 0x00 | 1 | Тип OOB: 0x00 (однонаправленный) |
| шестьдесят | 0x01 | 1 | Атрибут: 0x01 (атрибут сведений об устройстве) |
| 61 | 0x22 0x00 | 2 | Длина сведений об устройстве: 34 октета |
| 63 |
0x01 0x23 0x34 0xab 0xcd 0xef |
6 | Wi-Fi MAC-адрес устройства Direct P2P: "01:23:34:ab:cd:ef" |
| 69 | 0x01 0x00 | 2 | Тип конфигурации |
| 71 | 0x00 0x01 0x00 0x50 0xF2 0x00 0x00 0x00 |
8 | Основной тип устройства |
| 79 | 0x12 | 1 | Способность |
| 80 | 0x10 0x11 | 2 | Атрибут: имя устройства |
| 82 | 0x00 0x0d | 2 | Длина имени устройства: 13 октетов |
| 84 | 0x43 0x6f 0x6e 0x74 0x6f 0x73 0x6f 0x20 0x4d 0x6f 0x75 0x73 0x65 |
13 (тринадцать) | Дружественное имя устройства в кодировке UTF-8. Обратите внимание, что нулевой символ окончания отсутствует, и в UTF-8 на один символ может приходиться один или несколько байтов. В этом примере указано "Contoso Mouse" |
| 97 | 0x02 | 1 | Атрибут: информация о конфигурировании |
| 98 | 0x0c 0x00 | 2 | Длина информации для настройки: 12 октетов |
| 100 | 0x07 | 1 | Настройка битмапа: новая группа, принудительное сохранение |
| 101 | 0x01 0x00 | 2 | Метод конфигурации: запись пин-кода |
| 103 | 0x08 | 1 | Длина PIN-кода: 8 октетов |
| 104 |
0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 |
8 | ПИН-код: "12345678" |
| 112 | 0x05 | 1 | Атрибут: сведения о времени завершения конфигурации |
| 113 | 0x01 0x00 | 2 | Время тайм-аута конфигурации |
| 115 | 0x64 | 1 | 10 секунд в 100 миллисекундах |
Вторая таблица иллюстрирует формат части тега, относящейся к настройке сетевых принтеров.
| Offset | Содержимое | Длина | Объяснение |
|---|---|---|---|
| 116 | 0x12 | 1 | Заголовок записи NDEF: MB=0b,ME=0b, CF=0b, SR=1b, IL=0b,TNF=010b |
| 117 | 0x29 | 1 | Поле длины типа |
| 118 | 0x19 | 1 | Поле длины полезных данных |
| 119 |
0x61 0x70 0x70 0x6c 0x69 0x63 0x61 0x74 0x69 0x6f 0x6e 0x2f 0x76 0x6e 0x64 0x2e 0x6d 0x73 0x2d 0x77 0x69 0x6e 0x64 0x6f 0x77 0x73 0x2e 0x6e 0x77 0x70 0x72 0x69 0x6e 0x74 0x69 0x6e 0x67 0x2e 0x6f 0x6f 0x62 |
41 | Имя типа записи: application/vnd.ms-windows.nwprinting.oob |
| 160 |
0x5c 0x5c 0x70 0x72 0x69 0x6e 0x74 0x53 0x65 0x72 0x76 0x65 0x72 0x5c 0x70 0x72 0x69 0x6e 0x74 0x65 0x72 0x4e 0x61 0x6d 0x65 |
двадцать пять | Имя принтера: "\printServer\printerName" |
Формат части парного тега MS-Device представлен в третьей таблице.
| Offset | Содержимое | Длина | Объяснение |
|---|---|---|---|
| 185 | 0x52 | 1 | Заголовок записи NDEF: MB=0b, ME=1b, CF=0b, SR=1b, IL=0b,TNF=010b |
| 186 | 0x28 | 1 | Поле длины типа |
| 187 | 0x15 | 1 | Поле длины полезных данных |
| 188 |
0x61 0x70 0x70 0x6c 0x69 0x63 0x61 0x74 0x69 0x6f 0x6e 0x2f 0x76 0x6e 0x64 0x2e 0x6d 0x73 0x2d 0x77 0x69 0x6e 0x64 0x6f 0x77 0x73 0x2e 0x64 0x65 0x76 0x69 0x63 0x65 0x70 0x61 0x69 0x72 0x69 0x6E 0x67 |
40 | Имя типа записи: application/vnd.ms-windows.devicepairing |
| 228 | 0x00 0x01 0x00 0x00 |
4 | Версия: Основная = 1, Минорная = 0 |
| 232 | 0x00 | 1 | Флаги: установите значение 0, попробуйте все транспорты |
| 233 | 0x0F | 1 | Длина понятного пользователю имени устройства |
| 234 | 0x43 0x6f 0x6e 0x74 0x6f 0x73 0x6f 0x20 0x50 0x72 0x69 0x6e 0x74 0x65 0x72 |
15 | Понятное имя устройства, отображаемое пользователю: "Contoso Printer" |
Wi-Fi требования к прямому подключению
Устройства и клиенты должны иметь включенное Wi-Fi радио. В противном случае подключение завершится неудачей.
Обработка краевых случаев
Если пользователь ранее связал устройство, но затем вручную удалил устройство из списка устройств, повторное нажатие приведет к попытке установить или снова связать его.
Если пользователь входит в диапазон активации, но внезапно покидает его перед передачей информации вне полосы (OOB), устройство может стать доступным для подключения, но ПК не будет искать данное устройство. В этом случае окна подтверждения на компьютере не будет, и пользователю потребуется снова нажать. Если устройство уже обнаруживается при повторном нажатии, оно должно оставаться обнаруживаемым и должно сбросить период времени ожидания.
Если радио Wi-Fi отключается, установка не увенчается успехом для прямых устройств Wi-Fi.
Если пользователь касается двух устройств примерно одновременно, будет предпринята попытка установки соединения только для тех данных OOB, которые были получены первыми.
Любая попытка касания устройства в системе под управлением операционной системы, которая не поддерживает нажатие кнопки установки или касания для повторного подключения, может привести к тому, что устройство перейдет в режим подключения, но связывание не будет происходить. Пользователям потребуется использовать пользовательский интерфейс связывания, предоставленный для Bluetooth, и использовать кнопку связывания для запуска связывания.