NXP PN7160 NCI řadiče NFC Pokyny

Informace o dokumentu 

Informace Obsah
Klíčová slova PN7160, PN7220, NCI, EMVCo, NFC Forum, Android, NFC
Abstraktní Tento dokument popisuje, jak portovat společné vydání middlewaru PN7160/PN7220 na Android 14.

Tato příručka obsahuje podrobné pokyny, jak integrovat řadiče NFC založené na NXP NCI, PN7160 a PN7220, do prostředí Android. Tento proces zahrnuje instalaci potřebného ovladače jádra a konfiguraci MW (viz [1]). Další informace naleznete na stránce produktu pro PN7160 [2] a PN7220 [3]. Android Open Source Project (AOSP) byl aktualizován tak, aby zahrnoval podporu pro řadiče NFC PN7160 i PN7220.

PN7220 se dodává ve dvou konfiguracích: single-host a dual-host. Zásobník je obecně stejný pro oba. V režimu dual-host je přidán SMCU, což znamená, že všechny úlohy související s EMVCo jsou prováděny na SMCU. V singlehost se EMVCo provádí ve vyhrazeném zásobníku EMVCo MW

Android MW stack

Obrázek 1 znázorňuje architekturu zásobníku Android NFC PN7220.

  • NXP I2C Driver je modul jádra, který umožňuje přístup k hardwarovým prostředkům PN7220.
  • Modul HAL je implementací hardwarové abstraktní vrstvy NXP NFC specifické pro řadič.
  • LibNfc-Nci je nativní knihovna, která poskytuje funkce NFC.
  • NFC JNI funguje jako most mezi třídami Java a Native.
  • NFC a EMVCo Framework je modul aplikačního rámce, který umožňuje přístup k funkcím NFC a EMVCo.

Obrázek 2 ukazuje architekturu zásobníku Android NFC PN7160. 


Obrázek 2. PN7160 Android MW stack 

  • NXP I2C Driver je modul jádra, který umožňuje přístup k hardwarovým prostředkům PN7160.
  • Modul HAL je implementací hardwarové abstraktní vrstvy NXP NFC specifické pro řadič.
  • LibNfc-nci je nativní knihovna, která poskytuje funkce NFC.
  • NFC JNI funguje jako most mezi třídami Java a Native.
  • NFC je modul aplikačního rámce, který umožňuje přístup k funkcím NFC.
  • Zdrojový kód MW je stejný pro PN7160 a PN7220, ale existuje několik omezení.

Tabulka 1 ukazuje nepodporované funkce každého ovladače NFC. 

Tabulka 1. Nepodporované funkce 

NFC ovladač Nepodporované funkce
PN7160
  • EMVCo MW zásobník
  • SMCU
  • Funkce CT
PN7220
  • NFCEE_NDEF

Poznámka: Od Androidu 14 a novější není na PN2 podporován ani P7160P.

Ovladač jádra

K navázání spojení s PN7220 nebo PN7160 používá zásobník Android ovladač jádra nxpnfc. Lze jej nalézt v [4].

Podrobnosti o ovladači

PN7220 podporuje fyzické rozhraní I2C, zatímco PN7160 podporuje fyzické rozhraní I2C nebo SPI. Po instalaci do jádra je ovladač vystaven prostřednictvím uzlu zařízení v /dev/nxpnfc.

Poznámka: PN7160 a PN7220 používají dva různé ovladače, výběr správného ovladače je vyžadován na základě typu čipu.

Získání zdrojového kódu ovladače PN7160

Zkopírujte úložiště ovladačů nfcandroid_platform_drivers/drivers/pn7160/nfc do adresáře jádra a nahraďte stávající implementaci. Viz [4] pro jádro files.

$rm -rf ovladače/nfc
$git klon “https://github.com/nxp-nfc-infra/nfcandroid_platform_drivers.git” -b
br_ar_14_comm_infra_dev

To skončí tím, že složka drivers/nfc obsahuje následující files:

  • README.md: informace o úložišti
  • Makefile: značka záhlaví řidičefile
  • Kconfig: konfigurace ovladače file
  • Licence: Podmínky řidičského oprávnění
  • nfc podsložka obsahující:
    • commoc.c: implementace obecného ovladače
    • common.h: obecná definice rozhraní ovladače
    • i2c_drv.c: Implementace specifického ovladače i2c
    • – i2c_drv.h: definice rozhraní ovladače specifické pro i2c
    • spi_drv.c: implementace ovladače specifického pro spi
    • spi_drv.h: definice rozhraní ovladače specifické pro spi
    • Makefile: udělatfile která je součástí provedenífile řidiče
    • Kbuild => build file
    • Kconfig => konfigurace ovladače file
Získání zdrojového kódu ovladače PN7220

Zkopírujte nfcandroid_platform_drivers/drivers/pn7220cs/nfc (případ použití jednoho hostitele) nebo nfcandroid_platform_ drivers/drivers/pn7220cms/nfc (případ použití dvou hostitelů) do adresáře jádra drivers/nfc a nahraďte stávající ovladač. Viz [4] pro jádro files.

$rm -rf drivers/nfc$git klon “https://github.com/nxp-nfc-infra/nfcandroid_platform_drivers.git” -bbr_ar_14_comm_infra_dev

Po tomto příkazu obsahuje složka drivers/nfc následující files:

  • README.md: informace o úložišti
  • Makefile: značka záhlaví řidičefile
  • Kconfig: konfigurace ovladače file
  • Licence: Podmínky řidičského oprávnění
  • nfc podsložka obsahující:
    • commoc.c: implementace obecného ovladače
    • common.h: obecná definice rozhraní ovladače
    • i2c_drv.c: Implementace specifického ovladače i2c
    • i2c_drv.h: Definice rozhraní ovladače specifické pro i2c
    • Makefile: udělatfile která je součástí provedenífile řidiče
    • Kbuild => build file
    • Kconfig => konfigurace ovladače file
Stavba ovladače

Strom zařízení je zodpovědný za přidání ovladače do jádra a jeho načtení při spouštění zařízení.

Po upgradu specifikace stromu zařízení je nutné strom zařízení související s platformou znovu sestavit. NXP doporučuje používat jádro verze 5.10, protože poskytuje komplexní ověření.

Chcete-li sestavit ovladač, musíte provést následující kroky:

  1. Získejte ovladač jádra
  2. Získejte zdrojový kód ovladače
  3. Upravte definici stromu zařízení, která je jedinečná pro používané zařízení.
  4. Sestavte ovladač:

A. Pomocí procedury menuconfig přidejte cílový ovladač do sestavení.

Po přebudování dokončeného jádra bude ovladač zahrnut do obrazu jádra. Všechny nové obrazy jádra musí být zkopírovány do sestavení AOSP.

Adaptace AOSP

NXP přidává úpravy do kódu AOSP. To znamená, že kód AOSP je použit jako základ, ale rozšířen o funkce specifické pro NXP. [5] je aktuální AOSP tag používá NXP. Po získání sestavení AOSP je třeba nahradit stávající kód AOSP a použít řadu oprav.

Poznámka: Lze použít jinou verzi kódu AOSP, ale je třeba provést dodatečné úpravy.

Sestavení AOSP

Získejte zdrojový kód AOSP.

$ repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r2 $ repo synchronizace

Poznámka: Nástroj repo musí být nainstalován v systému. Pokyny naleznete v [6].

Vytvořte zdrojový kód.

$cd Android_AROOT
$source build/envsetup.sh
$lunch select_target #target je DH, kterou chceme použít napřampsoubor: evk_8mn-userdebug
$make -j

Zkopírujte všechna úložiště NXP do cílového umístění.

Tabulka 2. Větev pro konkrétní verzi Androidu

Verze pro Android Větev
Android 14 br_ar_14_comm_infra_dev

Poznámka: Při klonování je důležité vybrat správnou větev.

Tabulka 3. Klonovací úložiště

AOSP Repos NXP GitHub Repos
„$ANDROID_ROOT“/balíčky/ aplikace/Nfc https://github.com/nxp-nfc-infra/nxp_nci_hal_nfc/tree/br_ar_14_comm_infra_dev
„$ANDROID_ROOT“/system/nfc https://github.com/nxp-nfc-infra/nxp_nci_hal_libnfc-nci/tree/br_ar_14_comm_infra_dev
„$ANDROID_ROOT“/hardware/ nxp/nfc https://github.com/nxp-nfc-infra/nfcandroid_nfc_hidlimpl/tree/br_ar_14_comm_infra_dev
„$ANDROID_ROOT“/vendor/nxp/ rámce https://github.com/nxp-nfc-infra/nfcandroid_frameworks/tree/br_ar_14_comm_infra_dev
„$ANDROID_ROOT“/hardware/ nxp/emvco https://github.com/nxp-nfc-infra/nfcandroid_emvco_aidlimpl/tree/ br_ar_14_comm_infra_dev
„$ANDROID_ROOT“ https://github.com/nxp-nfc-infra/nfcandroid_platform_reference/tree/ br_ar_14_comm_infra_dev

Tabulka 4. Klonování úložišť pro testovací aplikace a podporu TDA 

Složka na GitHubu AOSP Repos NXP GitHub Podporováno IC
test_apps/SMCU_Switch „$ANDROID_ROOT“/

balíčky/aplikace/

https://github.com/ nxp-nfc-infra/

nfcandroid_infra_test_apps

PN7220
test_apps/EMVCoMode SwitchApp „$ANDROID_ROOT“/

balíčky/aplikace/Nfc/

https://github.com/ nxp-nfc-infra/

nfcandroid_infra_test_apps

PN7220
testovací_aplikace/Kokpit „$ANDROID_ROOT“/

hardware/nxp/nfc/

https://github.com/ nxp-nfc-infra/

nfcandroid_infra_test_apps

PN7220
test_apps/SelfTest „$ANDROID_ROOT“/

hardware/nxp/nfc/

https://github.com/ nxp-nfc-infra/

nfcandroid_infra_test_apps

PN7220
test_apps/SelfTest_pn7160 „$ANDROID_ROOT“/

hardware/nxp/nfc/

https://github.com/ nxp-nfc-infra/

nfcandroid_infra_test_apps

PN7160
test_apps/load_unload „$ANDROID_ROOT“/

hardware/nxp/nfc/

https://github.com/ nxp-nfc-infra/

nfcandroid_infra_test_apps

PN7220
test_apps/SelfTestAidl „$ANDROID_ROOT“/

hardware/nxp/nfc/

https://github.com/ nxp-nfc-infra/

nfcandroid_infra_test_apps

PN7220
nfc_tda „$ANDROID_ROOT“/system/ https://github.com/ nxp-nfc-infra/

nfcandroid_infra_comm_libs

PN7220
emvco_tda „$ANDROID_ROOT“/

hardware/nxp/emvco/

https://github.com/ nxp-nfc-infra/

nfcandroid_infra_comm_libs

PN7220
emvco_tda_test „$ANDROID_ROOT“/

hardware/nxp/emvco/

https://github.com/ nxp-nfc-infra/

nfcandroid_infra_comm_libs

PN7220
NfcTdaTestApp „$ANDROID_ROOT“/

balíčky/aplikace/Nfc/

https://github.com/ nxp-nfc-infra/nfcandroid_infra_comm_libs PN7220

Aplikujte náplasti

Tabulka 5. Aplikujte záplaty

Místo pro aplikaci Náplast k aplikaci Umístění náplasti
„$ANDROID_ROOT“/sestavení/ bazel/ AROOT_build_bazel. náplast https://github.com/nxp-nfc-infra/nfcandroid_platform_reference/ tree/br_ar_14_comm_infra_dev/build_cfg/build_pf_patches/
„$ANDROID_ROOT“/sestavení/ udělat/ AROOT_build_make. náplast https://github.com/nxp-nfc-infra/nfcandroid_platform_reference/ tree/br_ar_14_comm_infra_dev/build_cfg/build_pf_patches/
„$ANDROID_ROOT“/sestavení/ brzy/ AROOT_build_soong. náplast https://github.com/nxp-nfc-infra/nfcandroid_platform_reference/ tree/br_ar_14_comm_infra_dev/build_cfg/build_pf_patches/
„$ANDROID_ROOT“/

frameworks/base/

AROOT_frameworks_ základ.náplast https://github.com/nxp-nfc-infra/nfcandroid_platform_reference/ tree/br_ar_14_comm_infra_dev/build_cfg/build_pf_patches/
„$ANDROID_ROOT“/

frameworky/nativní/

AROOT_frameworks_ nativní.náplast https://github.com/nxp-nfc-infra/nfcandroid_platform_reference/ tree/br_ar_14_comm_infra_dev/build_cfg/build_pf_patches/
„$ANDROID_ROOT“/

systém/logování/

AROOT_system_logging. náplast https://github.com/nxp-nfc-infra/nfcandroid_platform_reference/ tree/br_ar_14_comm_infra_dev/build_cfg/build_pf_patches/
„$ANDROID_ROOT“/

balíčky/moduly/ bluethooth/

AROOT_packages_ modules_Bluethooth. náplast https://github.com/nxp-nfc-infra/nfcandroid_platform_reference/ tree/br_ar_14_comm_infra_dev/build_cfg/build_pf_patches/
„$ANDROID_ROOT“/

framework/proto_logging/

AROOT_framework_ proto_logging.patch https://github.com/nxp-nfc-infra/nfcandroid_platform_reference/ tree/br_ar_14_comm_infra_dev/build_cfg/build_pf_patches/

Poznámka: Po použití opravy zkontrolujte výstup, pokud během opravy nebyl zaznamenán nějaký problém.

Přidejte knihovny FW. FW viz [8].

Poznámka: Není povinné. FW lze vždy aktualizovat.

Pro PN7160: 

$git klon https://github.com/NXP/nfc-NXPNFCC_FW.git
$cp -r nfc-NXPNFCC_FW/InfraFW/pn7220/64-bit/libpn7160_fw.so AROOT/vendor/
nxp/7160/firmware/lib64/libpn7160_fw.so
$cp -r nfc-NXPNFCC_FW/InfraFW/pn7220/32-bit/libpn7160_fw.so AROOT/vendor/
nxp/7160/firmware/lib/libpn7160_fw.so

Pro PN7220: 

$git klon https://github.com/NXP/nfc-NXPNFCC_FW.git
$cp -r nfc-NXPNFCC_FW/InfraFW/pn7220/64-bit/libpn7220_64bit.so AROOT/vendor/nxp/
pn7220/firmware/lib64/libpn72xx_fw.so

Přidání NFC do sestavení

V zařízení.mk makefile (napřample, device/brand/platform/device.mk), zahrnují konkrétní značkufiles:

$(call inherit-product, vendor/nxp/nfc/device-nfc.mk) 

V souboru BoardConfig.mkfile (napřample, device/brand/platform/BoardConfig.mk), obsahovat konkrétní značkufile:

-zahrnout vendor/nxp/nfc/BoardConfigNfc.mk 

Přidání aplikace DTA

$git klon https://github.com/NXPNFCProject/NXPAndroidDTA.git $patch -p1 nfc-dta.patch #umístěný na https://github.com/nxp-nfc-infra/ nfcandroid_platform_reference/tree/br_ar_14_comm_infra_dev/buil build_mw_patches/db845c $ cp -r nfc-dta /system/nfc-dta $/system/nfc-dta/$ mm -j

Sestavte AOSP se změnami:

$cd framework/base
$ mm
$cd ../..
$cd vendor/nxp/frameworks
$mm #po tomto by com.nxp.emvco.jar a com.nxp.nfc.jar měly být naruby/
cíl/produkt/xxxx/systém/rámec/
$cd ../../..
$cd hardware/nxp/nfc
$ mm
$cd ../../..
$make -j

Nyní flashujte zařízení novými obrázky Android.

Aplikace Android NFC a Lib na cíle

Po sestavení musí být vytvořené knihovny nainstalovány na cílovém zařízení. Část 4.2 specifikuje umístění projektu, odpovídající knihovnu a umístění cílového zařízení, kam se má nainstalovat.

Poznámka: Binární soubory EMVCo jsou použitelné pouze s PN7220.

Tabulka 6. Sestaveno files s cílem zařízení 

Umístění projektu Sestaveno Files Komentáře Umístění v cílovém zařízení
„$ANDROID_ROOT“/

balíčky/aplikace/Nfc

NfcNci.odex NfcNci.vdex lib/NfcNci.apk oat/libnfc_nci_jni.so   /system/app/NfcNci/ oves/rameno64/

/system/app/NfcNci/ oves/rameno64/

/system/app/NfcNci/

/system/lib64/

„$ANDROID_ROOT“/

systém/nfc

libnfc_nci.so   /system/lib64/
„$ANDROID_ROOT“/

system/nfc_tda”

nfc_tda.so Použitelné pouze pro funkci CT. /system/lib64/
„$ANDROID_ROOT“/

hardware/nxp/nfc

nfc_nci_nxp_pn72xx.so android.hardware.nfc_72xx@1.2-service android.hardware.nfc_72xx@1.2-service.rc android.hardware.nfc@1.0.so android.hardware.nfc@1.1.so android.hardware.nfc@1.2.so prodejce.nxp.nxpnfc@2.0.so prodejce.nxp.nxpnfc@1.0.so   /vendor/lib64

/vendor/bin/hw/

/vendor/etc/init

/system/lib64/

/system/lib64/

/system/lib64/

/vendor/lib64/

/vendor/lib64/

„$ANDROID_ROOT/

hardware/rozhraní/nfc”

android.hardware.nfc-V1-ndk.so android.hardware.nfc@1.0.so android.hardware.nfc@1.1.so android.hardware.nfc@1.2.so android.hardware.nfc@1.0.so android.hardware.nfc@1.1.so android.hardware.nfc@1.2.so   /system\/ib64/

/system/lib64/

/system/lib64/

/system/lib64/

/vendor/lib64/

/vendor/lib64/

/vendor/lib64/

„$ANDROID_ROOT“/

vendor/nxp/frameworks

com.nxp.emvco.jar (PN7220) com.nxp.nfc.jar   /system/framework

/system/framework

„$ANDROID_ROOT“/

hardware/nxp/emvco

emvco_poller.so (PN7220) vendor.nxp.emvco-V1-ndk.so vendor.nxp.emvco-V2-ndk.so vendor.nxp.emvco-V2-ndk.so vendor.nxp.emvco-service vendor.nxp. emvco-service.rc   /vendor/lib64/

/system/lib64/

/system/lib64/

/vendor/lib64/

/vendor/bin/hw/

/vendor/etc/init/

„$ANDROID_ROOT/

hardware/nxp/emvco_tda”

emvco_tda.so Použitelné pouze pro funkci CT. /vendor/lib64/
Mapování bloků

Mapování názvu bloku z oddílu 1 na cílové umístění v kódu AOSP.

Tabulka 7. Umístění opravy v zásobníku NFC 

Název bloku Umístění v kódu AOSP
NFC HAL a EMVCo HAL hardware/rozhraní/
Zásobník NFC hardware/nxp/nfc/
Vrstva výměny dat EMVCo L1 = zásobník EMVCo hardware/nxp/emvco/
LibNfc-Nci systém/nfc/
NFC JNI packages/apps/nfc/
Služba NFC packages/apps/nfc/
NFC Framework frameworks/base/
Rámec EMVCo vendor/nxp/frameworks/
EMVCo AP

Zásobník PN7220 MW rozšiřuje kód AOSP o zásobník EMVCo MW. Tato část popisuje rozhraní API EMVCo.

Poznámka: API lze volat pouze při použití PN7220 IC. Pokud jej voláte pomocí PN7160 IC, API nefunguje. EMVCo Profile Objev. Tato rozhraní API lze použít s kontaktními a bezkontaktními profesionályfiles.

registerEMVCoEventListener()

  • ndk::ScopedAStatus registerEMVCoEventListener ( const std::shared_ptr< INxpEmvcoClientCallback > & in_clientCallback, bool * in_aidl_return)
  • Popis: Zaregistrujte funkci zpětného volání EMVCo pro příjem událostí z naslouchacího zařízení
  • Poznámka: Tato funkce se musí spustit před vyvoláním jakéhokoli jiného rozhraní API.
  • Parametry:
    • [in] *in_clientCallback: má zpětné volání HAL klienta EMVCo
    • [in] *in_aidl_return: označuje stav registru zpět pro volajícího
  • Návraty
    • boolean vrací true, pokud je úspěšný, a vrací false, pokud se registrace nezdařila

získat aktuální režim zjišťování () 

  • ndk::ScopedAStatus getCurrentDiscoveryMode(::aidl::vendor::nxp::emvco::NxpDiscoveryMode * _aidl_return)
  • Popis: vrátí aktuálního aktivního profíkafile typ.
  • Návraty
    • NxpDiscoveryMode – NFC/EMVCo/Neznámé

onNfcStateChange() 

  • ndk::ScopedAStatus onNfcStateChange(NxpNfcState in_nfcState)
  • Popis: aktualizoval stav NFC na EMVCo HAL.
  • Parametry:
    • [in] in_nfcState: určuje stav NFC
  • Vrácení:
    • prázdnota

registerNFCStateChangeCallback()

  • ndk::ScopedAStatus registerNFCStateChangeCallback ( const std::shared_ptr< ::aidl::vendor::nxp::emvco::INxpNfcStateChangeRequestCallback > & in_nfcStateChangeRequestCallback, bool_turn * _aidl
  • Popis: Zaregistrujte funkci zpětného volání NFC, abyste mohli přijímat události z naslouchacího zařízení.
  • Poznámka: Tuto funkci je nutné volat před vyvoláním jakéhokoli jiného rozhraní API.
  • Parametry:
    • [in] in_nfcStateChangeCallback: INxpNfcStateChangeRequestCallback funkce zpětného volání události, kterou má předat volající. Mělo by implementovat zapnutí/vypnutí NFC na základě přijatého požadavku.
  • Vrací: boolean vrátí true, pokud je úspěšný, a vrátí false, pokud se registrace nezdařila.

setByteConfig()

ndk::ScopedAStatus setByteConfig ( ::aidl::vendor::nxp::emvco::NxpConfigType
in_type,
int32_t in_length,
int8_t in_value,
::aidl::vendor::nxp::emvco::NxpEmvcoStatus * _aidl_return

setEMVCoMode()

ndk::ScopedAStatus setEMVCoMode ( int8_t in_disc_mask,
bool in_isStartEMVCo )

  • Popis: Spustí režim EMVCo pomocí zařízení Device-Controller. Jakmile je vytvořen aplikační datový kanál, může aplikace odeslat režim EMVCo pomocí ovladače zařízení.
  • Parametry:
    • [in] in_disc_mask EMVCo: technologie dotazování se konfigurují prostřednictvím tohoto parametru
    • [in]in_isStartEMVCo: určuje spuštění nebo zastavení režimu EMVCo
  • Vrácení:
    • prázdnota

setLed()

ndk::ScopedAStatus setLed ( ::aidl::vendor::nxp::emvco::NxpLedControl
in_ledControl,
::aidl::vendor::nxp::emvco::NxpEmvcoStatus * emvco_status)

Pro Contact EMVCo lze kromě předchozích použít následující API.

closeTDA()

ndk::ScopedAStatus closeTDA ( int8_t in_tdaID, bool in_standBy )

  • Popis: Zavře čipovou kartu připojenou přes TDA
  • Parametry:
    • [v] tdaID: ID slotu tda, který má být uzavřen
  • Výjimky:
    • EMVCO_STATUS_INVALID_PARAMETER, pokud je zadané tdaID neplatné
    • EMVCO_STATUS_FEATURE_NOT_SUPPORTED, když funkce kontaktní karty není podporována.
  • Vrácení:
    • prázdnota

discoverTDA()

ndk::ScopedAStatus discoverTDA
( std::vector<::aidl::vendor::nxp::emvco::NxpEmvcoTDAInfo > * emvcoTDAInfo )

Popis: discoverTDA poskytuje všechny podrobnosti o čipové kartě připojené přes TDA

  • Parametry:
    • [in]*in_clientCallback: poskytuje stav EMVCo a stav TDA jako zpětné volání
  • Výjimky:
    •  EMVCO_STATUS_FEATURE_NOT_SUPPORTED, když funkce kontaktní karty není podporována.
  • Vrácení:
    • NxpEmvcoTDAInfo[] vrátí všechny čipové karty připojené přes TDA. platné emvcoTDAInfo je přijato pouze tehdy, když je stav EMVCO_STATUS_OK

openTDA()

ndk::ScopedAStatus openTDA ( int8_t in_tdaID, bool in_standBy, int8_t * out_connID )

Popis: otevře čipovou kartu připojenou přes TDA

  • Parametry:
    • [in]tdaID: ID tda čipové karty přijaté prostřednictvím discoverTDA
  • Výjimky:
    • EMVCO_STATUS_INVALID_PARAMETER, pokud je zadané tdaID neplatné
    • EMVCO_STATUS_FEATURE_NOT_SUPPORTED, když funkce kontaktní karty není podporována.
  • Vrácení:
    • byte vrátí ID připojení čipové karty. platné ID připojení přijato pouze tehdy, když je stav EMVCO_STATUS_OK

registerEMVCoCTListener() 

ndk::ScopedAStatus registerEMVCoCTListener ( const std::shared_ptr<::aidl::vendor::nxp::emvco::INxpEmvcoTDACallback > & in_in_clientCallback, bool * _aidl_return)

  • Popis: registruje zpětné volání EMVCoCT do zásobníku EMVCo
  • Parametry:
    • [in]*in_in_clientCallback: poskytuje stav EMVCo a stav TDA jako zpětné volání
  • Vrácení:
    • prázdnota 

transceive() 

ndk::ScopedAStatus transceive (const std::vector< uint8_t > & in_cmd_data, std::vector< uint8_t > * out_rsp_data )

  • Popis: odesílá data aplikace s ovladačem zařízení a přijímá data odezvy z ovladače
  • Poznámka: ID připojení TDA by mělo být přidáno jako součást hlavičky NCI.
  • Parametry:
    • [in]in_cmd_data: Vyrovnávací paměť dat příkazů aplikace
  • Výjimky:
    • EMVCO_STATUS_INVALID_PARAMETER, pokud je zadané ID připojení neplatné
    • EMVCO_STATUS_FEATURE_NOT_SUPPORTED, když funkce kontaktní karty není podporována.
  • Vrácení:
    • Odezva APDU přijatá z řadiče. platná odpověď APDU přijata pouze tehdy, když je stav EMVCO_STATUS_OK

Pro bezkontaktní EMVCo lze volat následující API:

registerEMVCoEventListener()

ndk::ScopedAStatus registerEMVCoEventListener ( const std::shared_ptr< INxpEmvcoClientCallback > & in_clientCallback, bool * _aidl_return )

  • Popis: Zaregistrujte funkci zpětného volání EMVCo pro příjem událostí z naslouchacího zařízení.
  • Poznámka: Tuto funkci je nutné volat před vyvoláním jakéhokoli jiného rozhraní API.
  • Parametry:
    • [in]*in_clientCallback: má zpětné volání HAL klienta EMVCo
    • [in]*in_aidl_return: označuje stav registru zpět pro volajícího
  • Vrácení:
    • boolean vrací true, pokud je úspěšný, a vrací false, pokud se registrace nezdařila

setEMVCoMode()

ndk::ScopedAStatus setEMVCoMode ( int8_t in_config, bool in_isStartEMVCo )

  • Popis: Spustí režim EMVCo pomocí zařízení Device-Controller. Jakmile je vytvořen aplikační datový kanál, může aplikace odeslat režim EMVCo pomocí ovladače zařízení.
  • Parametry:
    • [in]in_config: Technologie dotazování EMVCo se konfigurují prostřednictvím tohoto parametru
    • [in]in_isStartEMVCo: určuje spuštění nebo zastavení režimu EMVCo
  • Vrácení:
    • prázdnota

StopRFDisovery()

ndk::ScopedAStatus stopRFDisovery
( ::aidl::vendor::nxp::emvco::NxpDeactivationType in_deactivationType, ::aidl::vendor::nxp::emvco::NxpEmvcoStatus * emvco_status )

  • Popis: zastaví RF pole a přejde do určeného deaktivačního stavu.
  • Parametry:
    • [in]in_deactivationType: určuje stav, ve kterém se má nacházet po deaktivaci RF
  • Vrácení:
    • NxpEmvcoStatus vrátí EMVCO_STATUS_OK, pokud je příkaz úspěšně zpracován, a vrátí EMVCO_STATUS_FAILED, pokud příkaz není zpracován z důvodu neplatného stavu. Pro volání tohoto rozhraní API by měl být režim EMVCo zapnutý

transceive()

ndk::ScopedAStatus transceive ( const std::vector< uint8_t > & in_data, int32_t * _aidl_return )

  • Popis: odeslat data aplikace pomocí zařízení Device-Controller.
  • Poznámka: V případě, že selže odeslání dat, aplikace před vyvoláním tohoto API znovu vyvolá open().
  • Parametry:
    • (v]in_data: Vyrovnávací paměť dat aplikace
  • Vrácení:
    • NxpEmvcoStatus udávající stav provedení
Konfigurace files PN7160

Pro PN7160 existují dvě různé konfigurace files.

  1. libnfc-nci.conf
  2. libnfc-nxp.conf

Poznámka: Konfigurace files poskytovanými NXP jsou exampsoubory související s demonstrační deskou ovladače NFC. Tyto files musí být přijata podle cílené integrace.

Konfigurace files musí být umístěny v cílovém místě (viz tabulka 8).

Tabulka 8. Umístění konfigurace files 

Název konfigurace file Umístění v zařízení
libnfc-nci.conf systém / atd
libnfc-nxp.conf prodejce/atd

Chcete-li získat více informací o konfiguraci files, viz [9].

Konfigurace files PN7220

Pro PN7220 existuje pět různých konfigurací files.

  1. libemvco-nxp.conf
  2. libnfc-nci.conf
  3. libnfc-nxp.conf
  4. libnfc-nxp-eeprom.conf
  5. libnfc-nxp-rfExt.conf

Poznámka: Konfigurace files poskytovanými NXP jsou exampsoubory související s demonstrační deskou ovladače NFC. Tyto files musí být přijata podle cílené integrace

Konfigurace files je třeba umístit do cílového umístění (viz Tabulka 9).

Tabulka 9. Umístění konfigurace files 

Název konfigurace file Umístění v zařízení
libemvco-nxp.conf prodejce/atd
libnfc-nci.conf systém / atd
libnfc-nxp.conf prodejce/atd
libnfc-nxp-eeprom.conf prodejce/atd
libnfc-nxprfExt.conf prodejce/atd

Chcete-li získat více informací o konfiguraci files, viz [9]. 

Aplikace DTA

K povolení certifikačního testování NFC Forum je k dispozici aplikace pro testování zařízení. Skládá se z několika komponent v různých vrstvách Androidu, které musí být vytvořeny a zahrnuty do obrazu Android.

Chcete-li odeslat aplikaci DTA, je třeba provést následující kroky:

  1. Zkopírujte všechny DTA files na jedno místo
    $cp -rf “out/target/product/hikey960/system/lib64/libosal.so” /DTA-PN7220
    $cp -rf “out/target/product/hikey960/system/lib64/libmwif.so” /DTA-PN7220
    $cp -rf “out/target/product/hikey960/system/lib64/libdta.so” /DTA-PN7220
    $cp -rf “out/target/product/hikey960/system/lib64/libdta_jni.so” /DTA-PN7220
    $cp -rf “out/target/product/hikey960/system/app/NxpDTA/NxpDTA.apk” /DTAPN7220
  2. Zatlačte binární soubory do zařízení, jak je uvedeno níže
    adb shell mkdir /system/app/NxpDTA/
    adb push libosal.so /system/lib64/
    adb push libdta.so /system/lib64/
    adb push libdta_jni.so /system/lib64/
    adb push libmwif.so /system/lib64/
    adb push NxpDTA.apk /system/app/NxpDTA/

Po flashnutí cíle by pak měla být aplikace DTA přítomna v seznamu nainstalovaných aplikací. Podrobný popis použití aplikace naleznete v [7].

Zkratky

Tabulka 10. Zkratky 

Akronym Popis
APDU datová jednotka aplikačního protokolu
AOSP Projekt Android Open Source
DH hostitel zařízení
HAL vrstva hardwarové abstrakce
FW firmware
I2C Inter-Integrated Circuit
LPCD detekce karty s nižším výkonem
NCI rozhraní ovladače NFC
NFC komunikace v blízkém poli
MW middleware
PLL fáze Locked Loop
P2P peer to peer
RF rádiová frekvence
SDA sériová data
SMCU bezpečný mikrokontrolér
SW software

Reference

  1. Úložiště GitHub – PN7160 a PN7220 Společné MW: (odkaz)
  2. Web strana – PN7160 – NFC Plug and Play Controller s integrovaným firmwarem a rozhraním NCI (odkaz)
  3. Web strana – PN7220 – NFC kontrolér kompatibilní s EMV L1 s rozhraním NCI podporující aplikace fóra EMV a NFC (odkaz)
  4. Úložiště GitHub – ovladač jádra PN7160 a PN7220: (odkaz)
  5. Zdroje – AOSP r2 tag (odkaz)
  6. Zdroje – nástroje pro řízení zdrojů (odkaz)
  7. Uživatelská příručka – UG10068 – PN7220 – Průvodce rychlým startem (odkaz)
  8. Úložiště GitHub – umístění FW PN7160 a PN7220: (odkaz)
  9. Aplikační poznámka – konfigurace AN14431 – PN7160/PN7220 files (odkaz)

Poznámka ke zdrojovému kódu v dokumentu

ExampKód zobrazený v tomto dokumentu má následující autorská práva a licenci BSD-3-Clause:

Copyright 2024 NXP Redistribuce a použití ve zdrojové a binární formě, s úpravami nebo bez nich, jsou povoleny za předpokladu, že jsou splněny následující podmínky

  1. Redistribuce zdrojového kódu musí obsahovat výše uvedené upozornění na autorská práva, tento seznam podmínek a následující prohlášení o vyloučení odpovědnosti.
  2. Redistribuce v binární formě musí reprodukovat výše uvedenou poznámku o autorských právech, tento seznam podmínek a následující prohlášení o vyloučení odpovědnosti v dokumentaci a/nebo jiných materiálech musí být poskytnuty s distribucí.
  3. Ani jméno držitele autorských práv ani jména jeho přispěvatelů nesmí být použita k podpoře nebo propagaci produktů odvozených z tohoto softwaru bez předchozího výslovného písemného povolení.

TENTO SOFTWARE POSKYTUJÍ DRŽITELÉ AUTORSKÝCH PRÁV A PŘISPĚVATELÉ „TAK, JAK JE“, A JAKÉKOLI VÝSLOVNÉ NEBO PŘEDPOKLÁDANÉ ZÁRUKY, VČETNĚ, ALE NE OMEZENÉ, PŘEDPOKLÁDANÝCH ZÁRUK OBCHODOVATELNOSTI A VHODNOSTI PRO KONKRÉTNÍ NÁKUP. V ŽÁDNÉM PŘÍPADĚ NEBUDE DRŽITEL AUTORSKÝCH PRÁV NEBO PŘISPĚVATELÉ ODPOVĚDNÍ ZA JAKÉKOLI PŘÍMÉ, NEPŘÍMÉ, NÁHODNÉ, ZVLÁŠTNÍ, EXEMPLÁRNÍ NEBO NÁSLEDNÉ ŠKODY (VČETNĚ, ALE NE VÝHRADNĚ, ZAJIŠTĚNÍ NÁHRADNÍCH SLUŽEB, NÁHRADNÍHO ZBOŽÍ; ZISKY NEBO PŘERUŠENÍ OBCHODNÍ ČINNOSTI) JAK JSOU ZPŮSOBENÉ A NA JAKÉKOLI TEorii ODPOVĚDNOSTI, AŤ VE SMLOUVĚ, PŘÍSNÉ ODPOVĚDNOSTI NEBO PŘEČINU (VČETNĚ NEDBALOSTI ČI JINAK), VZNIKLÝM JAKÝKOLIV ZPŮSOBEM Z POUŽITÍ TOHOTO POUŽITÍ. POŠKOZENÍ.

Historie revizí

Tabulka 11. Historie revizí 

ID dokumentu Datum vydání Popis
AN14430 v.1.0 03. září 2024 • Počáteční verze

Právní informace

Definice

Koncept — Stav konceptu na dokumentu označuje, že obsah je stále pod interní revizíview a podléhá formálnímu schválení, které může vést k úpravám nebo doplnění. NXP Semiconductors neposkytuje žádná prohlášení ani záruky ohledně přesnosti nebo úplnosti informací obsažených v pracovní verzi dokumentu a nenese žádnou odpovědnost za důsledky použití takových informací.

Vyloučení odpovědnosti

Omezená záruka a odpovědnost — Informace v tomto dokumentu jsou považovány za přesné a spolehlivé. Společnost NXP Semiconductors však neposkytuje žádná prohlášení ani záruky, vyjádřené nebo předpokládané, pokud jde o přesnost nebo úplnost takových informací, a nenese žádnou odpovědnost za důsledky použití takových informací. NXP Semiconductors nenese žádnou odpovědnost za obsah tohoto dokumentu, pokud je poskytnut informačním zdrojem mimo NXP Semiconductors.

Společnost NXP Semiconductors v žádném případě nenese odpovědnost za jakékoli nepřímé, náhodné, trestné, zvláštní nebo následné škody (včetně – bez omezení – ušlého zisku, ušlých úspor, přerušení podnikání, nákladů souvisejících s odstraněním nebo výměnou jakýchkoli produktů nebo nákladů na přepracování), ať už nebo takové škody nejsou založeny na protiprávním jednání (včetně nedbalosti), záruce, porušení smlouvy nebo jiné právní teorii.

Bez ohledu na jakékoli škody, které by mohly zákazníkovi z jakéhokoli důvodu vzniknout, bude souhrnná a kumulativní odpovědnost NXP Semiconductors vůči zákazníkovi za produkty popsané v tomto dokumentu omezena v souladu s podmínkami komerčního prodeje NXP Semiconductors.

Právo na změny — NXP Semiconductors si vyhrazuje právo kdykoli a bez upozornění provádět změny informací zveřejněných v tomto dokumentu, včetně, bez omezení, specifikací a popisů produktů. Tento dokument nahrazuje a nahrazuje všechny informace poskytnuté před jeho zveřejněním.

Vhodnost pro použití — Produkty NXP Semiconductors nejsou navrženy, autorizovány nebo zaručeny tak, aby byly vhodné pro použití v systémech nebo zařízeních pro podporu života, život kritických nebo kritických systémech nebo zařízeních, ani v aplikacích, kde lze důvodně očekávat selhání nebo nesprávnou funkci produktu NXP Semiconductors. způsobit zranění, smrt nebo vážné poškození majetku nebo životního prostředí. Společnost NXP Semiconductors a její dodavatelé nepřijímají žádnou odpovědnost za zahrnutí a/nebo použití produktů NXP Semiconductors v takovém zařízení nebo aplikacích, a proto je takové zahrnutí a/nebo použití na vlastní riziko zákazníka.

Aplikace — Zde popsané aplikace pro kterýkoli z těchto produktů slouží pouze pro ilustrativní účely. NXP Semiconductors neposkytuje žádné prohlášení ani záruku, že takové aplikace budou vhodné pro specifikované použití bez dalšího testování nebo úprav.

Zákazníci jsou zodpovědní za návrh a provoz svých aplikací a produktů využívajících produkty NXP Semiconductors a NXP Semiconductors nepřijímá žádnou odpovědnost za jakoukoli pomoc s aplikacemi nebo návrhem zákaznických produktů. Je výhradní odpovědností zákazníka určit, zda je produkt NXP Semiconductors vhodný a vhodný pro zákazníkovy aplikace a plánované produkty, jakož i pro plánovanou aplikaci a použití zákazníkem (zákazníků) jako třetí strana. Zákazníci by měli poskytnout vhodné konstrukční a provozní záruky, aby minimalizovali rizika spojená s jejich aplikacemi a produkty.

NXP Semiconductors nepřijímá žádnou odpovědnost související s jakýmkoli selháním, poškozením, náklady nebo problémem, který je založen na jakékoli slabosti nebo selhání v aplikacích nebo produktech zákazníka nebo v aplikaci nebo použití zákazníkem (zákazníky třetí strany) zákazníka. Zákazník je odpovědný za provedení všech nezbytných testů pro aplikace a produkty zákazníka využívající produkty NXP Semiconductors, aby se zabránilo selhání aplikací a produktů nebo aplikace nebo použití zákazníkem (zákazníky třetí strany) zákazníka. NXP nenese v tomto ohledu žádnou odpovědnost.

Podmínky komerčního prodeje — Produkty NXP Semiconductors se prodávají v souladu se všeobecnými podmínkami komerčního prodeje, jak jsou zveřejněny na https://www.nxp.com/profile/podmínkách, není-li v platné písemné individuální smlouvě dohodnuto jinak. V případě uzavření individuální smlouvy platí pouze podmínky příslušné smlouvy. Společnost NXP Semiconductors tímto výslovně nesouhlasí s uplatňováním všeobecných obchodních podmínek zákazníka s ohledem na nákup produktů NXP Semiconductors zákazníkem.

Kontrola exportu — Tento dokument, stejně jako položky zde popsané, mohou podléhat předpisům o kontrole vývozu. Vývoz může vyžadovat předchozí povolení od příslušných orgánů.

Vhodnost pro použití v produktech nekvalifikovaných pro automobilový průmysl — Pokud tento dokument výslovně neuvádí, že tento konkrétní produkt NXP Semiconductors je kvalifikovaný pro automobilový průmysl, není tento produkt vhodný pro použití v automobilech. Není kvalifikován ani testován v souladu s automobilovým testováním nebo aplikačními požadavky. Společnost NXP Semiconductors nenese žádnou odpovědnost za zahrnutí a/nebo použití jiných než automobilových kvalifikovaných produktů v automobilovém vybavení nebo aplikacích.

V případě, že zákazník použije produkt pro návrh a použití v automobilových aplikacích podle automobilových specifikací a norem, zákazník (a) použije produkt bez záruky NXP Semiconductors na produkt pro takové automobilové aplikace, použití a specifikace a ( b) kdykoli zákazník použije produkt pro automobilové aplikace nad rámec specifikací NXP Semiconductors, takové použití bude výhradně na vlastní riziko zákazníka, a (c) zákazník plně odškodní společnost NXP Semiconductors za jakoukoli odpovědnost, škody nebo neúspěšné nároky na produkt, které z toho vyplývají. od zákaznického návrhu a použití produktu pro automobilové aplikace nad rámec standardní záruky NXP Semiconductors a specifikace produktu NXP Semiconductors

HTML publikace — HTML verze tohoto dokumentu, pokud je k dispozici, je poskytnuta jako laskavost. Definitivní informace jsou obsaženy v příslušném dokumentu ve formátu PDF. Pokud existuje nesrovnalost mezi dokumentem HTML a dokumentem PDF, má prioritu dokument PDF.

Překlady — Neanglická (přeložená) verze dokumentu, včetně právních informací v tomto dokumentu, je pouze orientační. V případě jakéhokoli rozporu mezi přeloženou a anglickou verzí má přednost anglická verze.

Zabezpečení — Zákazník chápe, že všechny produkty NXP mohou být předmětem neidentifikovaných zranitelností nebo mohou podporovat zavedené bezpečnostní standardy nebo specifikace se známými omezeními. Zákazník je odpovědný za návrh a provoz svých aplikací a produktů během jejich životního cyklu, aby se snížil účinek těchto zranitelností na aplikace a produkty zákazníka. Odpovědnost zákazníka se vztahuje také na další otevřené a/nebo proprietární technologie podporované produkty NXP pro použití v zákaznických aplikacích. NXP nenese žádnou odpovědnost za jakoukoli zranitelnost. Zákazník by měl pravidelně kontrolovat aktualizace zabezpečení z NXP a patřičně je sledovat. Zákazník si vybere produkty s bezpečnostními prvky, které nejlépe vyhovují pravidlům, předpisům a standardům zamýšlené aplikace a bude činit konečná rozhodnutí o designu týkající se svých produktů a je výhradně odpovědný za shodu se všemi právními, regulačními a bezpečnostními požadavky týkajícími se jeho produktů, bez ohledu na jakékoli informace nebo podporu, kterou může NXP poskytnout.

NXP má tým PSIRT (Product Security Incident Response Team) (dostupný na adrese PSIRT@nxp.com), který řídí vyšetřování, hlášení a uvolňování řešení bezpečnostních zranitelností produktů NXP.

NXP B.V. — NXP B.V. není provozní společností a nedistribuuje ani neprodává produkty.

licence

Nákup integrovaných obvodů NXP s technologií NFC — Nákup integrovaného obvodu NXP Semiconductors, který je v souladu s jedním ze standardů Near Field Communication (NFC) ISO/IEC 18092 a ISO/IEC 21481, nezahrnuje předpokládanou licenci na žádné patentové právo porušené implementací kteroukoli z těchto norem. Nákup IC NXP Semiconductors nezahrnuje licenci k žádnému patentu NXP (nebo jinému právu IP) pokrývajícímu kombinace těchto produktů s jinými produkty, ať už jde o hardware nebo software.

ochranné známky

Oznámení: Všechny odkazované značky, názvy produktů, názvy služeb a ochranné známky jsou majetkem příslušných vlastníků. NXP — slovo a logo jsou ochranné známky společnosti NXP BV I2C-bus — logo je ochranná známka společnosti NXP BV

Uvědomte si prosím, že důležitá upozornění týkající se tohoto dokumentu a zde popsaných produktů byla zahrnuta v části „Právní informace“.

© 2024 NXP BV Všechna práva vyhrazena.
Další informace naleznete na adrese: https://www.nxp.com

 

Dokumenty / zdroje

NXP PN7160 NCI řadiče NFC [pdfPokyny
PN7160, PN7220, PN7160 NFC řadiče založené na NCI, PN7160, řadiče NFC založené na NCI, řadiče založené na NFC, řadiče NFC, řadiče

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *