Verwerking van NFC CX-sequentie

De meeste niet-standaard NCI-functies en -extensies die door NFCC-firmware van verschillende leveranciers worden geïmplementeerd, hebben betrekking op chipsetconfiguratie, firmwaredownload en hardwareafstemming. Het NFC-clientstuurprogramma kan deze niet-standaardextensies ondersteunen door zich te registreren voor specifieke stuurprogrammareeksen die de NFC CX beschikbaar maakt. Het clientstuurprogramma registreert zich voor specifieke reekshandlers via de functie NfcCxRegisterSequenceHandler . Normaal gesproken registreert u reekshandlers tijdens de initialisatie en roept u deze functie aan na NfcCxDeviceInitialize. Roep NfcCxUnRegisterSequenceHandler aan om de registratie van deze handlers ongedaan te maken 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 asynchroon, dus de client kan een willekeurig aantal I/O-aanvragen aan de controller uitgeven voordat de client de NFC CX op de hoogte stelt van 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 het naar de controller verzendt, niet naar de NFC CX-functie NfcCxNciReadNotification worden verzonden. Deze vereiste bestaat omdat anders de NFC CX NCI-statusmachine niet meer synchroon raakt met de opdrachten die het uitwisselt met de NFCC.