Delen via


Verwerking van NFC CX-sequentie

De meeste niet-standaard NCI-functies en -extensies die door de NFCC-firmware van verschillende leveranciers zijn geïmplementeerd, hebben betrekking op de chipsetconfiguratie, het downloaden van firmware en het afstemmen van hardware. Deze niet-standaarduitbreidingen kunnen worden ondersteund door het NFC-clientstuurprogramma door zich te registreren voor specifieke stuurprogrammareeksen die beschikbaar worden gesteld door de NFC CX. Het clientstuurprogramma registreert zich voor specifieke reekshandlers via de functie NfcCxRegisterSequenceHandler . Dit wordt meestal gedaan tijdens de initialisatie en moet worden aangeroepen na NfcCxDeviceInitialize. Deze handlers worden niet geregistreerd door NfcCxUnRegisterSequenceHandler aan te roepen tijdens het afsluiten van het apparaat. Nadat de callback van de sequence handler van het clientstuurprogramma is aangeroepen, geeft het NFC CX-stuurprogramma geen NCI-opdrachten uit totdat het NFC-clientstuurprogramma de verwerking heeft voltooid. Deze callbacks van de sequence handler zijn ontworpen om asynchroon te zijn, waardoor de client een willekeurig aantal I/O-aanvragen kan uitgeven aan de controller voordat de NFC CX wordt geïnformeerd over de voltooiing ervan. NFC CX maakt gebruik van een watchdog-timermechanisme om vastgelopen statussen te bepalen. Als de watchdog-timer verloopt voordat de sequentie-afhandelingsroutine door de client is voltooid, wordt er een foutcontrole geactiveerd en wordt het UMDF-hostproces beëindigd door het UMDF-framework.

Hier volgen de vereisten voor het NFC-clientstuurprogramma bij het implementeren van aanvullende logica als onderdeel van de sequence-handler:

  • Alle NCI-opdrachten die door de NFC-client worden verzonden bij het verwerken van deze reeksen, moeten ervoor zorgen dat de integriteit van de huidige status zoals opgegeven door de NFC CX niet wordt geschonden. Daarom moet de NFC-client aan deze vereiste voldoen om ervoor te zorgen dat het NFC-apparaat goed functioneert. Als voorbeeld, bij het afhandelen van de voltooide initialisatiesequentie, mag het clientstuurprogramma geen NCI CORE_RESET_CMD uitgeven om de chipset opnieuw in te stellen.
  • Het NFC-clientstuurprogramma moet ervoor zorgen dat NCI-antwoorden en meldingen die worden gegenereerd door de NCI-opdrachten die naar de controller worden verzonden, niet worden verzonden naar de NFC CX-functie NfcCxNciReadNotification . Dit is vereist omdat anders de NFC CX NCI-statusmachine uit de synchronisatie raakt met de opdrachten die het uitwisselt met de NFCC.