Delen via


Wi-Fi implementatie van directe koppeling

In deze sectie vindt u ontwerprichtlijnen en vereisten voor een randapparaat om deel te nemen aan de gebruiksscenario's Tap en Setup en Tap en Opnieuw verbinden.

Opmerking

De koppelings-implementatie die in dit onderwerp wordt beschreven, wordt momenteel ondersteund in Windows 8.1, alleen voor het koppelen aan printerapparaten.

Windows 10 en later ondersteunt NFC voor Wi-Fi directe statische verbindingsoverdracht via de Wi-Fi alliantie's Wi-Fi P2P Carrier Configuration Record. Zie Wi-Fi Alliance voor meer informatie.

Randapparaat Wi-Fi directe apparaatkoppeling

Tijdens de tik ontvangt NFP koppelingsgegevens van het verbindingsapparaat. NFP geeft de koppelingsgegevens door aan Windows. Wi-Fi Direct apparaten volgen de koppelingsprocedure Wi-Fi Alliance Out-Of-Band (OOB) en de aanbevelingen van het NFC Forum. Windows is afhankelijk van een eigen koppelingsbericht zoals hieronder is gedefinieerd.

Windows vraagt de gebruiker om toestemming en als deze wordt gegeven, probeert Windows verbinding te maken met elk van de adressen, in de volgorde, totdat één slaagt. Er is geen verdere interactie tussen een NFP-provider op de pc en het verbindingsapparaat.

Als u NFC als voorbeeld gebruikt, wordt een unidirectionele installatie uitgevoerd door de koppelingsgegevens op te slaan in een statische of passieve NFC-tag (een actieve NFC-tag in de statische emulatiemodus kan ook worden gebruikt). Windows abonneert zich op deze koppelingsgegevens. Een NFP-provider met NFC-functionaliteit op de pc ontvangt de verbindingsgegevens van de tag en geeft dit door aan Windows als abonnee. Na ontvangst van de verbindingsgegevens voert Windows de daadwerkelijke installatie van het apparaat in band uit met behulp van specifieke technieken voor apparaatklassen.

Vereisten voor interoperabiliteit

Om de interoperabiliteit tussen NFP-providers te waarborgen, moeten de koppelingsgegevens worden ingekapseld in een providerspecifieke berichtindeling.

Zoals elders in dit document is beschreven, zijn er geen specifieke vereisten voor nabijheidstechnologieën anders dan voor NFP-providers met NFC-functionaliteit.

Windows vereist dat NFC-aanbieders voor nabijveldcommunicatie (NFP) ondersteuning bieden voor een door het NFC Forum gedefinieerd mechanisme voor het overdragen van de Wi-Fi Direct Out-of-Band koppelingsinformatie voor eenrichtingskoppeling. Het NDEF-bericht bevat een eerste record met een TNF-veldwaarde van 0x01 en een veld TYPE dat gelijk is aan 'Hs', en een alternatieve providerrecord die verwijst naar een Wi-Fi Direct Carrier Configuration Record. In deze methode wordt alleen de PAYLOAD van de NDEF-record gebruikt.

Unidirectioneel koppelen met NFC voor Wi-Fi Direct

In deze sectie vindt u meer informatie over hoe NFC, Wi-Fi Direct en Windows samenwerken om unidirectionele draadloze koppeling te ondersteunen voor Wi-Fi Direct-apparaten zoals printers.

Verwijzingen naar NFP-providers

Wi-Fi Direct koppeling wordt tot stand gebracht met behulp van een NFC Forum gestandaardiseerd Connection Handover Select-berichttype. In de onderstaande afbeelding ziet u een overzicht van hoe een bericht voor het selecteren van overdracht van verbinding wordt toegepast op Wi-Fi rechtstreekse apparaatkoppeling, met name NDEF-records 3 en 4. In het bericht "Handover Select" worden een of meer records beschreven als 'ac' of 'Alternate Carrier'. Deze records volgen de handover Select-record sequentieel en hebben elk een goed gedefinieerd type. Ten slotte bevat het bericht een door Microsoft gedefinieerde record voor het koppelen van apparaten, die Windows informatie biedt over het verwerken van de koppelingsbewerking.

verbinding overdracht selectiebericht.

Wi-Fi direct bericht voor koppelen van apparaten

In de voorbeeldgebruiksvoorbeelden die volgen, worden NFC-type 2-tags gebruikt als een illustratief voorbeeld. Als het nodig is om een ander NFC-tagtype te gebruiken, moet het NDEF-bericht correct worden ingekapseld volgens die tagdefinitie.

Veld Waarde Beschrijving
Tumor Necrose Factor (TNF) 0x02 Opmaak van het veld Type dat volgt. Mediatype zoals gedefinieerd in RFC 2046.
Typologie 'application/vnd.ms-windows.wfd.oob' Nieuwe typetekenreeks die we voor dit scenario definiëren.
Grootte van OOB-gegevens WOORD Maximaal 64 kB aan ondersteunde OOB-gegevens.
Wi-Fi Direct OOB-gegevens <blob van grootte aangegeven door het vorige veld> Wi-Fi Directe OOB-gegevens zoals hieronder zijn gedefinieerd.

Wi-Fi Direct OOB-indeling

In de volgende tabel wordt de indeling van de WiFi Direct OOB-gegevens beschreven. OOB Unidirectionele gegevens kunnen worden verzonden door een unidirectioneel P2P OOB-apparaat.

Kenmerken Kenmerk-ID Vereist/optioneel Opmerking
OOB-header

Zie de tabel met OOB-headerattributen.
Niet van toepassing. Verplicht Het kenmerk OOB-header moet aanwezig zijn in P2P OOB-gegevensblob en de waarde van het OOB-type moet zijn ingesteld op 'OOB Unidirectional Provisioning Data'.
OOB-apparaatinformatie

Zie de tabel met het formaat van het OOB-apparaatkenmerk.
1 Verplicht Dit kenmerk moet aanwezig zijn. Het bevat informatie over dit P2P-apparaat.
OOB-inrichtingsgegevens 2 Verplicht Dit kenmerk moet aanwezig zijn. Het biedt inrichtingsinformatie die dit P2P-apparaat verwacht te gebruiken.
Time-out voor OOB-configuratie 5 Verplicht Dit kenmerk moet aanwezig zijn. Het bevat informatie over hoe lang dit P2P-apparaat wacht op een reactie via Wi-Fi Direct.

Indeling van OOB-koptekstkenmerk

Veldnaam Grootte (octetten) Waarde Beschrijving
Totale gegevenslengte 2 Veranderlijk Lengte van volledige OOB-gegevensblob (inclusief koptekst).
Lengte 2 Veranderlijk Lengte van de volgende velden in de OOB-header.
Versie 1 0x10 Waarde die de versie van deze P2P OOB-record identificeert.
OOB-type 1 Veranderlijk Waarde die het type OOB-transactie aangeeft. De specifieke waarde wordt gedefinieerd in de tabel OOB-transactietypen .
JA 0 of 3 Veranderlijk Leverancierspecifieke OUI. Dit is een optionele waarde. Mag alleen aanwezig zijn wanneer het OOB-type leverancierspecifiek is.
OUI-type 0 of 1 Veranderlijk Leverancierspecifiek type. Dit is een optionele waarde. Mag alleen aanwezig zijn wanneer het OOB-type leverancierspecifiek is.

OOB-transactietypen

OOB-type (hex) Beschrijving
0x00 OOB Unidirectionele inrichtingsgegevens
0x01 OOB-provisioning luistergegevens
0x02 Gegevens van de OOB-inrichtingsconnector
0x03 OOB Reinvoke-gegevens
0x04-0xDC Gereserveerd
0xDD Leverancierspecifiek
0xDE-0xFF Gereserveerd

Indeling van de OOB-apparaatgegevenskenmerken

Veldnaam Grootte (octetten) Waarde Beschrijving
Kenmerk-ID 1 1 Het identificeren van het type P2P OOB-kenmerk. De specifieke waarde wordt gedefinieerd in de tabel P2P OOB-kenmerken.
Lengte 2 Veranderlijk Lengte van de volgende velden in het kenmerk.
P2P-apparaatadres 6 Zoals gedefinieerd in P2P Spec. Een id die wordt gebruikt om uniek te verwijzen naar een P2P-apparaat.
Configuratiemethoden 2 Zoals gedefinieerd in P2P Spec. De WSC-methoden die door dit apparaat worden ondersteund.

Notitie: Bytevolgorde binnen het veld Configuratiemethoden moet big-endian zijn.
Primair apparaattype 8 Zoals gedefinieerd in P2P Spec. Primair apparaattype van het P2P-apparaat. Bevat alleen het gegevensgedeelte van het kenmerk Primair apparaattype van WSC (exclusief kenmerk-id en lengtevelden).

Notitie: Bytevolgorde binnen het veld Primair apparaattype moet big-endian zijn.
Bitmap apparaatcapaciteit 1 Zoals gedefinieerd in P2P Spec. Een set parameters die de mogelijkheden van het P2P-apparaat aangeven.
Apparaatnaam Veranderlijk Zoals gedefinieerd in P2P Spec. Beschrijvende naam van het P2P-apparaat. Bevat de volledige TLV-indeling van het WSC-apparaatnaamkenmerk.

Notitie: Bytevolgorde binnen het veld Apparaatnaam moet big-endian zijn.

P2P OOB-kenmerken

OOB-type (hex) Beschrijving
0x00 OOB-status
0x01 OOB-apparaatgegevens
0x02 OOB-inrichtingsgegevens
0x03 OOB-groep-ID
0x04 OOB Listen-kanaal
0x05 Time-out voor OOB-configuratie
0x06-0xDC Gereserveerd
0xDD Leverancierspecifiek kenmerk
0xDE-0xFF Gereserveerd

Indeling van OOB-inrichtingsgegevenskenmerk

Veldnaam Grootte (octetten) Waarde Beschrijving
Kenmerk-ID 1 1 Het identificeren van het type P2P OOB-kenmerk. De specifieke waarde wordt gedefinieerd in de tabel P2P OOB-kenmerken .
Lengte 2 Veranderlijk Lengte van de volgende velden in het kenmerk.
Bitmap voorzieningsinstellingen 1 Veranderlijk Een set opties voor inrichtingsinstellingen, zoals gedefinieerd in de tabel Inrichtingsinstellingen .
Geselecteerde configuratiemethode 2 Zoals gedefinieerd in P2P Spec. De WSC-methode die is geselecteerd door dit P2P-apparaat voor voorziening.
Pinnenlengte 1 0 - 8 Het aantal bytes in het volgende veld Pincodegegevens. Dit veld is ingesteld op 0 geeft geen extra pincodegegevens aan.
Gegevens vastpinnen Veranderlijk n Dit veld is optioneel. Dit veld is alleen aanwezig als het veld Lengte pincode niet 0 is en een matrix met octetten bevat die een pincode vertegenwoordigen die moet worden gebruikt voor inrichting.

Voorzieningsinstellingen

Bits(en) Gegevens Opmerkingen
0 Nieuwe groep maken De bit Nieuwe groep maken is ingesteld op 1 als deze inrichtingsgegevens zijn bedoeld voor het vormen van een nieuwe groep met het P2P-doelapparaat. Overigens is deze voorzieningsinformatie bedoeld voor het toetreden tot een bestaande groep.
1 Groepstypeinstelling toepassen De bit groepstype afdwingen is ingesteld op 1 als de gewenste groepstype-bit moet worden afgedwongen, anders is de gewenste groepstype-bit gewoon een voorkeur.
2 Gewenst groepstype Bit gewenst groepstype moet worden ingesteld op 0 als gewenst groepstype tijdelijk is en wordt ingesteld op 1 als gewenst groepstype permanent is.
3 - 7 Gereserveerd  

Formaat van tijdslimietkenmerken voor OOB-configuratie

Veldnaam Grootte (octetten) Waarde Beschrijving
Kenmerk-ID 1 5 Het identificeren van het type P2P OOB-kenmerk. De specifieke waarde wordt gedefinieerd in de tabel P2P OOB-kenmerken .
Lengte 2 1 Lengte van de volgende velden in het kenmerk.
Time-out voor listenerconfiguratie 1 0 - 255 De hoeveelheid tijd die dit P2P-apparaat besteedt aan het wachten op Wi-Fi Directe communicatie na OOB-gegevensoverdracht, in eenheden van 100 milliseconden. (Maximaal 25,5 seconden).

Koppelingsrecord voor Windows-apparaten

De koppelingsrecord voor Windows-apparaten volgt de NDEF-specificatie. Het biedt aanvullende informatie aan Windows over hoe het bericht 'Verbinding Handover Selecteren' verwerkt moet worden. De velden TNF en Type moeten worden opgegeven volgens de NDEF-specificatie. De andere onderstaande velden worden opeenvolgend weergegeven in het veld Payload van de NDEF-record.

Veldnaam Waarde Lengtewaarde Beschrijving
Tumor Necrose Factor (TNF) 0x02 3 bits Opmaak van het veld Type dat volgt. Mediatype zoals gedefinieerd in RFC 2046.
Typologie application/vnd.ms-windows.devicepairing 0x28 bytes Nieuwe typetekenreeks die we voor dit scenario definiëren.
GroteVersie 0x1 2 bytes Primaire versie moet worden 0x1.
Kleine Versie 0x0 2 bytes Kleine versie moet zijn 0x0.
Vlaggen 0x0 of 0x01 4 bytes Ingesteld op 0x0 om alle transporten uit te proberen.

Ingesteld op 0x1 om de installatie sequentieel uit te voeren en na het eerste succes te stoppen. De voorkeur voor transporten wordt aangegeven door een reeks alternatieve vervoerdersrecords.

Notitie Waarden 0x0002 via 0x0064 zijn gereserveerd.
Lengte van apparaatvriendelijke naam Lengte van het veld voor gebruikersvriendelijke apparaatnaam. 1 byte Lengte van de vriendelijke apparaatnaam.
Vriendelijke naam voor apparaat UTF-8 gecodeerde tekenreeks tot 255 bytes. Lengte van apparaatvriendelijke naam Beschrijvende naam voor het apparaat dat wordt weergegeven in de toestemmingsinterface op de client.

Wi-Fi Direct werkt alleen ceremonie, tag-indeling voor statische verbinding

Als voorbeeld is het volgende een typische implementatie voor een passieve NFC-tag. Dit komt overeen met een handover-case voor statische verbindingen met een Wi-Fi Direct Carrier-record, een netwerkshareprinter en de koppelingsrecord ms-device.

In deze eerste tabel ziet u de indeling van het Wi-Fi Direct-koppelingsgedeelte van de tag.

Afstand Inhoud Lengte Uitleg
0 0x91 1 NDEF-recordkop:

MB=1b, ME=0b, CF=0b, SR=1b, IL=0b, TNF=001b
1 0x02 1 Lengte recordtype: 2 octetten
2 0x0A 1 Recordtypelengte: 10 octetten
3 0x48 0x73 2 Recordtype: "Hs"
5 0x12 1 Versienummer: Major = 1, Minor = 2
6 0xD1 1 NDEF-recordkop:

MB=1b, ME=1b, CF=0b, SR=1b, IL=0b, TNF=001b
7 0x02 1 Lengte recordtype: 2 octetten
8 0x04 1 Lengte nettolading: 4 octetten
9 0x61 0x63 2 Recordtype: "ac"
11 0x01 1 Vlaggen van de vervoerder: CPS=1, "actief"
12 0x01 1 Referentielengte van providergegevens: 1 octet
13 0x30 1 Verwijzing naar carriergegevens: "0"
14 0x00 1 Aantal hulpgegevensverwijzingen: 0
15 0x1A 1 NDEF-Recordkop:

MB=0b, ME=0b, CF=0b, SR=1b, IL=1b, TNF=010b
16 0x22 1 Lengte recordtypenaam: 34 octetten
zeventien 0x3E 1 Lengte nettolading: 62 octetten
18 0x01 1 Id-lengte: 1 octet
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 Recordtypenaam: 'application/vnd.ms-windows.wfd.oob'
53 0x30 1 Id: "0"
54 0x3E 0x00 2 Wi-Fi Direct OOB-gegevenslengte: 62 octetten. De lengte wordt gelezen als een niet-ondertekend kort en is inclusief de hele blob. Inclusief 2 octetten van lengte. Deze waarde moet worden opgeslagen in het little-endian-formaat.
56 0x02, 0x00 2 Koptekstlengte: 2 octetten
58 0x10 1 Versie: 0x10
59 0x00 1 OOB-type: 0x00 (eenrichtingsverkeer)
60 0x01 1 Kenmerk: 0x01 (Apparaatgegevenskenmerk)
61 0x22 0x00 2 Lengte van apparaatgegevens: 34 octetten
63

0x01 0x23 0x34 0xab 0xcd 0xef
6 Wi-Fi Mac-adres van direct P2P-apparaat: "01:23:34:ab:cd:ef"
69 0x01 0x00 2 Configuratietype
71 0x00 0x01 0x00 0x50

0xF2 0x00 0x00 0x00
8 Primair apparaattype
79 0x12 1 Vermogen
80 0x10 0x11 2 Kenmerk: Apparaatnaam
82 0x00 0x0d 2 Lengte van apparaatnaam: 13 octetten
84 0x43 0x6f 0x6e 0x74

0x6f 0x73 0x6f 0x20

0x4d 0x6f 0x75 0x73

0x65
13 Apparaatvriendelijke naam in UTF-8. Houd er rekening mee dat er geen NULL-eindteken is en dat UTF-8 één of twee bytes per teken kan zijn. In dit voorbeeld wordt 'Contoso Mouse' gelezen
97 0x02 1 Kenmerk: inrichtingsgegevens
98 0x0c 0x00 2 Lengte van inrichtingsgegevens: 12 octetten
100 0x07 1 Bitmap instellen: nieuwe groep, permanent afdwingen
101 0x01 0x00 2 Configuratiemethode: pincodevermelding
103 0x08 1 Lengte van speld: 8 octetten
104

0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08
8 Pincode: "12345678"
112 0x05 1 Kenmerk: time-out-informatie voor configuratie
113 0x01 0x00 2 Time-outlengte voor configuratie
115 0x64 1 10 seconden, in eenheden van 100 milliseconden

In deze tweede tabel ziet u de indeling van het netwerkprinterpaargedeelte van de tag.

Afstand Inhoud Lengte Uitleg
116 0x12 1 NDEF-recordheader:
MB=0b, ME=0b, CF=0b, SR=1b, IL=0b, TNF=010b
117 0x29 1 Typelengteveld
118 0x19 1 Veld nettolading lengte
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 Recordtypenaam: "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
25 Printernaam: "\printServer\printerName"

In deze derde tabel ziet u de indeling van het MS-Device koppelingsgedeelte van de tag.

Afstand Inhoud Lengte Uitleg
185 0x52 1 NDEF-recordheader:

MB=0b, ME=1b, CF=0b, SR=1b, IL=0b, TNF=010b
186 0x28 1 Typelengteveld
187 0x15 1 Veld nettolading lengte
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 Recordtypenaam: "application/vnd.ms-windows.devicepairing"
228 0x00 0x01 0x00

0x00
4 Versie: Major = 1, Minor = 0
232 0x00 1 Vlaggen: Instellen op 0, probeer alle vervoermiddelen
233 0x0F 1 Lengte van apparaatvriendelijke naam
234

0x43 0x6f 0x6e 0x74 0x6f 0x73 0x6f 0x20 0x50 0x72 0x69 0x6e 0x74 0x65 0x72



15 De vriendelijke naam van het apparaat die de gebruiker ziet: 'Contoso Printer'

vereisten voor directe connectiviteit Wi-Fi

Apparaten en clients moeten de Wi-Fi radio hebben ingeschakeld. Als dat niet lukt, mislukt het koppelen.

Randgevallen afhandelen

Als een gebruiker eerder een apparaat heeft gekoppeld, maar vervolgens het apparaat handmatig verwijdert uit de lijst met apparaten, resulteert tikken opnieuw in een poging om het apparaat te installeren of te koppelen.

Als een gebruiker binnenkomt in het activeringsbereik, maar plotseling vertrekt voordat de out-of-band-informatie (OOB) wordt overgedragen, kan het apparaat verbindbaar worden, maar de pc zoekt niet naar het apparaat. Uit de pc komt er in dit geval geen toestemmingsvenster, en de gebruiker moet opnieuw drukken. Als het apparaat al detecteerbaar is wanneer het opnieuw wordt getikt, moet het detecteerbaar blijven en moet de time-outperiode opnieuw worden ingesteld.

Voor Wi-Fi Direct-apparaten, als de Wi-Fi radio wordt uitgeschakeld, is de installatie niet gelukt.

Als een gebruiker op twee apparaten tegelijk tikt, wordt alleen geprobeerd de koppeling voor de eerste ontvangen OOB-gegevens te koppelen.

Elke poging om op het apparaat op een systeem te tikken waarop een besturingssysteem wordt uitgevoerd dat geen ondersteuning biedt voor Tap to Setup of Tap om opnieuw verbinding te maken, kan ertoe leiden dat het apparaat in de verbindingsmodus wordt gezet, maar koppelen niet plaatsvindt. Gebruikers moeten een koppelingsinterface gebruiken die is opgegeven voor Bluetooth en de koppelingsknop gebruiken om koppelen te initiëren.