NXP PN7160 NCI Based NFC controller Instructions
Informasi dokumen
Informasi | Isi |
Tembung kunci | PN7160, PN7220, NCI, EMVCo, NFC Forum, Android, NFC |
Abstrak | Dokumen iki nerangake carane port PN7160/PN7220 rilis middleware umum menyang Android 14. |
Pandhuan iki menehi instruksi rinci babagan cara nggabungake pengontrol NFC berbasis NXP NCI, PN7160 lan PN7220, menyang lingkungan Android. Proses kasebut kalebu nginstal driver kernel lan konfigurasi MW sing dibutuhake (pirsani [1]). Kanggo informasi luwih lengkap, waca kaca produk kanggo PN7160 [2] lan PN7220 [3]. Proyek Sumber Terbuka Android (AOSP) wis dianyari kanggo nggabungake dhukungan kanggo pengontrol NFC PN7160 lan PN7220.
PN7220 kasedhiya ing rong konfigurasi: siji-host lan dual-host. Tumpukan umume padha kanggo loro. Ing mode dual-host, SMCU ditambahake tegese kabeh tugas sing gegandhengan karo EMVCo dieksekusi ing SMCU. Ing singlehost EMVCo dieksekusi ing tumpukan EMVCo MW khusus
Tumpukan Android MW
Gambar 1 nggambarake arsitektur tumpukan PN7220 Android NFC.
- NXP I2C Driver minangka modul kernel sing ngidini akses menyang sumber daya hardware PN7220.
- Modul HAL minangka implementasi saka lapisan abstraksi hardware khusus pengontrol NXP NFC.
- LibNfc-Nci minangka perpustakaan asli sing nyedhiyakake fungsi NFC.
- NFC JNI tumindak minangka jembatan antarane kelas Jawa lan Native.
- Kerangka NFC lan EMVCo minangka modul kerangka aplikasi sing ngidini akses menyang fungsi NFC lan EMVCo.
Figure 2 nuduhake arsitektur PN7160 Android NFC tumpukan.
Gambar 2. PN7160 Android MW tumpukan
- NXP I2C Driver minangka modul kernel sing ngidini akses menyang sumber daya hardware PN7160.
- Modul HAL minangka implementasi saka lapisan abstraksi hardware khusus pengontrol NXP NFC.
- LibNfc-nci minangka perpustakaan asli sing nyedhiyakake fungsi NFC.
- NFC JNI tumindak minangka jembatan antarane kelas Jawa lan Native.
- NFC minangka modul kerangka aplikasi sing ngidini akses menyang fungsi NFC.
- Kode sumber MW padha kanggo PN7160 lan PN7220, nanging ana sawetara watesan.
Tabel 1 nuduhake fitur sing ora didhukung saben pengontrol NFC.
Tabel 1. Fitur sing ora didhukung
pengontrol NFC | Fitur sing ora didhukung |
PN7160 |
|
PN7220 |
|
Cathetan: Saka Android 14 terus P2P uga ora didhukung ing PN7160.
Pembalap kernel
Kanggo nggawe sambungan karo PN7220 utawa PN7160, tumpukan Android nggunakake driver kernel nxpnfc. Bisa ditemokake ing [4].
Rincian driver
PN7220 ndhukung antarmuka fisik I2C, nalika PN7160 ndhukung antarmuka fisik I2C utawa SPI. Nalika diinstal ing kernel, driver katon liwat simpul piranti ing /dev/nxpnfc.
Cathetan: PN7160 lan PN7220 nggunakake rong pembalap beda, pilihan saka driver bener dibutuhake adhedhasar jinis chip.
Njupuk kode sumber driver PN7160
Nyalin repositori driver nfcandroid_platform_drivers/drivers/pn7160/nfc menyang direktori kernel, ngganti implementasine sing wis ana. Rujuk [4] kanggo kernel files.
$rm -rf drivers/nfc
$git clone "https://github.com/nxp-nfc-infra/nfcandroid_platform_drivers.git" -b
br_ar_14_comm_infra_dev
Iki rampung karo driver folder / nfc sing ngemot ing ngisor iki files:
- README.md: informasi repositori
- Gawefile: sopir judhul nggawefile
- Kconfig: konfigurasi driver file
- Lisensi: syarat lisensi driver
- nfc subfolder ngemot:
- commoc.c: implementasine driver umum
- common.h: definisi antarmuka driver umum
- i2c_drv.c: implementasi driver tartamtu i2c
- - i2c_drv.h: definisi antarmuka driver khusus i2c
- spi_drv.c: spi implementasine driver tartamtu
- spi_drv.h: definisi antarmuka driver tartamtu spi
- Gawefile: gawefile sing kalebu ing gawefile saka sopir
- Kbuild => mbangun file
- Kconfig => konfigurasi driver file
Njupuk kode sumber driver PN7220
Salin nfcandroid_platform_drivers/drivers/pn7220cs/nfc (single-host usecase) utawa nfcandroid_platform_ drivers/drivers/pn7220cms/nfc (dual-host usecase) menyang driver direktori kernel/nfc, ngganti driver sing ana. Rujuk [4] kanggo kernel files.
$rm -rf drivers/nfc$git clone "https://github.com/nxp-nfc-infra/nfcandroid_platform_drivers.git" -bbr_ar_14_comm_infra_dev
Sawise printah iki, driver folder / nfc ngemot ing ngisor iki files:
- README.md: informasi repositori
- Gawefile: sopir judhul nggawefile
- Kconfig: konfigurasi driver file
- Lisensi: syarat lisensi driver
- nfc subfolder ngemot:
- commoc.c: implementasine driver umum
- common.h: definisi antarmuka driver umum
- i2c_drv.c: i2 c implementasine driver tartamtu
- i2c_drv.h: definisi antarmuka driver tartamtu i2 c
- Gawefile: gawefile sing kalebu ing gawefile saka sopir
- Kbuild => mbangun file
- Kconfig => konfigurasi driver file
Nggawe driver
Devicetree tanggung jawab kanggo nambah driver menyang kernel lan mbukak ing boot piranti.
Sawise nganyarke spesifikasi devicetree, devicetree sing gegandhengan karo platform kudu dibangun maneh. NXP nyaranake nggunakake versi kernel 5.10 amarga menehi validasi lengkap.
Kanggo mbangun driver, langkah-langkah ing ngisor iki kudu ditindakake:
- Entuk driver kernel
- Entuk kode sumber kanggo driver
- Ngowahi definisi devicetree, sing unik kanggo piranti sing digunakake.
- Nggawe driver:
a. Liwat prosedur menuconfig, tambahake driver target menyang mbangun.
Sawise mbangun maneh kernel sing wis rampung, driver bakal dilebokake ing gambar kernel. Kabeh gambar kernel anyar kudu disalin menyang mbangun AOSP.
adaptasi AOSP
NXP nambah modifikasi menyang kode AOSP. Iki tegese kode AOSP digunakake minangka dhasar, nanging ditambahi kanggo fitur NXP-tartamtu. [5] yaiku AOSP saiki tag digunakake dening NXP. Sawise entuk mbangun AOSP, kode AOSP sing ana kudu diganti, lan sawetara patch kudu ditrapake.
Cathetan: Versi kode AOSP sing beda bisa digunakake, nanging modifikasi tambahan kudu ditindakake.
AOSP mbangun
Entuk kode sumber AOSP.
$ repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r2 $ sinkronisasi repo
Cathetan: Alat repo kudu diinstal ing sistem. Rujuk [6] kanggo pitunjuk.
Mbangun kode sumber.
$cd Android_AROOT
$sumber mbangun/envsetup.sh
$nedha awan select_target #target punika DH kita arep digunakake kanggo Example: evk_8mn-userdebug
$gawe -j
Salin kabeh repositori NXP menyang lokasi target.
Tabel 2. Branche kanggo versi Android tartamtu
versi Android | Cabang |
Android 14 | br_ar_14_comm_infra_dev |
Cathetan: Nalika kloning, penting kanggo milih cabang sing bener.
Tabel 3. Klone repositori
AOSP Repos | NXP GitHub Repos |
“$ANDROID_ROOT”/paket/ aplikasi/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”/perangkat keras/ nxp/nfc | https://github.com/nxp-nfc-infra/nfcandroid_nfc_hidlimpl/tree/br_ar_14_comm_infra_dev |
“$ANDROID_ROOT”/vendor/nxp/ kerangka | https://github.com/nxp-nfc-infra/nfcandroid_frameworks/tree/br_ar_14_comm_infra_dev |
“$ANDROID_ROOT”/perangkat keras/ 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 |
Tabel 4. Klone repositori kanggo aplikasi test lan support TDA
Folder ing GitHub | AOSP Repos | NXP GitHub | IC Didhukung |
test_apps/SMCU_Switch | “$ANDROID_ROOT”/
paket/aplikasi/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/EMVCoMode SwitchApp | “$ANDROID_ROOT”/
paket/aplikasi/Nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/Cockpit | “$ANDROID_ROOT”/
hardware/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/SelfTest | “$ANDROID_ROOT”/
hardware/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/SelfTest_pn7160 | “$ANDROID_ROOT”/
hardware/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7160 |
test_apps/load_unload | “$ANDROID_ROOT”/
hardware/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/SelfTestAidl | “$ANDROID_ROOT”/
hardware/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
nfc_tda | “$ANDROID_ROOT”/sistem/ | https://github.com/ nxp-nfc-infra/ | PN7220 |
emvco_tda | “$ANDROID_ROOT”/
hardware/nxp/emvco/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
emvco_tda_test | “$ANDROID_ROOT”/
hardware/nxp/emvco/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
NfcTdaTestApp | “$ANDROID_ROOT”/
paket/aplikasi/Nfc/ |
https://github.com/ nxp-nfc-infra/nfcandroid_infra_comm_libs | PN7220 |
Aplikasi tembelan
Tabel 5. Aplikasi patch
Cathetan: Priksa output sawise nglamar patch, yen ana masalah sing diamati nalika patching.
Tambah perpustakaan FW. Waca [8] kanggo FW.
Cathetan: Ora wajib. FW bisa tansah dianyari.
Kanggo 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
Kanggo 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
Nambahake NFC kanggo mbangun
Ing piranti.mk nggawefile (kanggo example, piranti / merek / platform / piranti.mk), kalebu nggawe tartamtufiles:
$(telpon inherit-product, vendor/nxp/nfc/device-nfc.mk)
Ing BoardConfig.mk nggawefile (kanggo example, piranti/brand/platform/BoardConfig.mk), kalebu make tartamtufile:
-kalebu vendor / nxp / nfc / BoardConfigNfc.mk
Nambahake aplikasi DTA
$git clone https://github.com/NXPNFCProject/NXPAndroidDTA.git $patch -p1 nfc-dta.patch #dumunung ing https://github.com/nxp-nfc-infra/ nfcandroid_platform_reference/tree/br_ar_14_comm_infra_dev/build_cfg/ build_mw_patches/db845c $ cp -r nfc-dta /system/nfc-dta $/system/nfc-dta/$ mm -j
Mbangun AOSP kanthi owah-owahan:
$cd kerangka/basis
$mm
$cd../..
$cd vendor/nxp/frameworks
$mm #sawise iki, com.nxp.emvco.jar lan com.nxp.nfc.jar kudu nang njaba/
target/produk/xxxx/sistem/kerangka/
$cd ../../..
$cd hardware/nxp/nfc
$mm
$cd ../../..
$gawe -j
Saiki, kerlip piranti nganggo gambar Android anyar.
Aplikasi Android NFC lan Lib ing target
Sawise mbangun, perpustakaan sing digawe kudu diinstal ing piranti target. Bagean 4.2 nemtokake lokasi proyek, perpustakaan sing cocog, lan lokasi piranti target sing bakal diinstal.
Cathetan: Binari EMVCo mung ditrapake karo PN7220.
Tabel 6. Disusun files karo target piranti
Lokasi proyek | Disusun Files | Komentar | Lokasi ing piranti target |
“$ANDROID_ROOT”/
paket / aplikasi / Nfc |
NfcNci.odex NfcNci.vdex lib/NfcNci.apk oat/libnfc_nci_jni.so | /system/app/NfcNci/ oat/lengan 64/
/system/app/NfcNci/ oat/lengan 64/ /system/app/NfcNci/ /system/lib64/ |
|
“$ANDROID_ROOT”/
sistem/nfc |
libnfc_nci.so | /system/lib64/ | |
“$ANDROID_ROOT”/
system/nfc_tda” |
nfc_tda.so | Ditrapake mung kanggo fitur 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 vendor.nxp.nxpnfc@2.0.so vendor.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/antarmuka/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 | /sistem\/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 | Ditrapake mung kanggo fitur CT. | /vendor/lib64/ |
Pemetaan blok
Pemetaan jeneng blok saka Bagean 1 menyang target lokasi ing kode AOSP.
Tabel 7. Patch lokasi ing NFC Stack
Jeneng blok | Lokasi ing kode AOSP |
NFC HAL lan EMVCo HAL | hardware/antarmuka/ |
Tumpukan NFC | hardware/nxp/nfc/ |
EMVCo L1 Data Exchange Layer = EMVCo Stack | hardware/nxp/emvco/ |
LibNfc-Nci | sistem/nfc/ |
NFC JNI | paket/aplikasi/nfc/ |
Layanan NFC | paket/aplikasi/nfc/ |
NFC Framework | kerangka/dasar/ |
Kerangka EMVCo | vendor/nxp/frameworks/ |
EMVCo AP
PN7220 MW tumpukan ngluwihi kode AOSP karo EMVCo MW tumpukan. Bagean iki nggambarake API EMVCo.
Cathetan: API bisa diarani mung nalika nggunakake IC PN7220. Yen nelpon karo IC PN7160, API ora bisa. EMVCo Profile Penemuan. API kasebut bisa digunakake karo pro kontak lan tanpa kontakfiles.
registerEMVCoEventListener()
- ndk::ScopedAStatus registerEMVCoEventListener ( const std:: shared_ptr< INxpEmvcoClientCallback > & in_clientCallback, bool * in_aidl_return)
- katrangan: Ndhaptar fungsi callback EMVCo kanggo nampa acara saka piranti pamireng
- Cathetan: Fungsi iki kudu bola sadurunge njaluk api liyane.
- Parameter:
- [ing] *in_clientCallback: wis EMVCo klien HAL callback
- [ing] *in_aidl_return: nuduhake status ndhaptar minangka bali menyang panelpon
- wangsul
- boolean bali bener, yen sukses lan bali palsu, yen gagal kanggo ndhaftar
entuk Mode Penemuan Saiki ()
- ndk::ScopedAStatus getCurrentDiscoveryMode(::aidl::vendor::nxp::emvco::NxpDiscoveryMode * _aidl_return)
- katrangan: ngasilake pro aktif saikifile jinis.
- wangsul
- NxpDiscoveryMode - NFC / EMVCo / Ora dingerteni
onNfcStateChange()
- ndk::ScopedAStatus onNfcStateChange(NxpNfcState in_nfcState)
- katrangan: dianyari negara NFC kanggo EMVCo HAL.
- Parameter:
- [ing] in_nfcState: nemtokake status NFC
- bali:
- kekosongan
registerNFCStateChangeCallback()
- ndk:: ScopedAStatus registerNFCStateChangeCallback ( const std:: shared_ptr< :: aidl::vendor::nxp::emvco::INxpNfcStateChangeRequestCallback > & in_nfcStateChangeRequestCallback, bool * _aidl_return
- katrangan: Ndhaptar fungsi callback NFC kanggo nampa acara saka piranti pamireng.
- Cathetan: Fungsi iki kudu nelpon sadurunge nggunakake api liyane.
- Parameter:
- [ing] in_nfcStateChangeCallback: INxpNfcStateChangeRequestCallback fungsi callback acara sing bakal dilewati dening panelpon. Sampeyan kudu ngetrapake kanggo ngaktifake / mateni NFC adhedhasar panjaluk sing ditampa.
- Ngasilake: boolean ngasilake bener, yen sukses lan bali palsu, yen gagal ndhaftar.
setByteConfig()
ndk::ScopedAStatus setByteConfig ( :: aidl::vendor::nxp::emvco::NxpConfigType
ing_type,
int32_t in_length,
int8_t ing_nilai,
:: aidl::vendor::nxp::emvco::NxpEmvcoStatus * _aidl_return
setEMVCoMode()
ndk::ScopedAStatus setEMVCoMode ( int8_t in_disc_mask,
bool in_isStartEMVCo )
- katrangan: Miwiti mode EMVCo karo Device-Controller. Sawise Saluran Data Aplikasi ditetepake, Aplikasi bisa ngirim miwiti mode EMVCo karo Piranti-Controller.
- Parameter:
- [ing] in_disc_mask EMVCo: teknologi polling dikonfigurasi liwat parameter iki
- [ing] in_isStartEMVCo: nemtokake kanggo miwiti utawa mungkasi mode EMVCo
- bali:
- kekosongan
setLed()
ndk::ScopedAStatus setLed ( :: aidl::vendor::nxp::emvco::NxpLedControl
ing_ledControl,
:: aidl::vendor::nxp::emvco::NxpEmvcoStatus * emvco_status)
Kanggo Kontak EMVCo, API ing ngisor iki bisa digunakake ing ndhuwur sing sadurunge.
closeTDA()
ndk::ScopedAStatus closeTDA ( int8_t in_tdaID, bool in_standBy )
- katrangan: Nutup kertu pinter sing disambungake liwat TDA
- Parameter:
- [ing] tdaID: id saka slot tda bakal ditutup
- Pangecualian:
- EMVCO_STATUS_INVALID_PARAMETER, yen diwenehi tdaID ora valid
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED nalika fitur kertu kontak ora didhukung.
- bali:
- kekosongan
discoverTDA()
ndk:: ScopedAStatus discoverTDA
( std::vektor<::aidl::vendor::nxp::emvco::NxpEmvcoTDAInfo > * emvcoTDAInfo )
katrangan: discoverTDA nyedhiyakake kabeh rincian kertu pinter sing disambungake liwat TDA
- Parameter:
- [ing]*in_clientCallback: nyedhiyakake status EMVCo lan negara TDA minangka callback
- Pangecualian:
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED nalika fitur kertu kontak ora didhukung.
- bali:
- NxpEmvcoTDAInfo [] ngasilake kabeh kertu pinter sing disambungake liwat TDA. emvcoTDAInfo bener ditampa mung nalika status EMVCO_STATUS_OK
openTDA()
ndk::ScopedAStatus openTDA ( int8_t in_tdaID, bool in_standBy, int8_t * out_connID )
katrangan: mbukak kertu pinter disambungake liwat TDA
- Parameter:
- [ing] tdaID: tda id saka kertu pinter ditampa liwat discoverTDA
- Pangecualian:
- EMVCO_STATUS_INVALID_PARAMETER, yen diwenehi tdaID ora valid
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED nalika fitur kertu kontak ora didhukung.
- bali:
- bait ngasilake id sambungan saka kertu pinter. id sambungan sing bener ditampa mung nalika status EMVCO_STATUS_OK
registerEMVCoCTListener()
ndk::ScopedAStatus registerEMVCoCTListener (const std::shared_ptr<::aidl::vendor::nxp::emvco::INxpEmvcoTDACallback > & in_in_clientCallback, bool * _aidl_return)
- katrangan: ndhaptar callback EMVCoCT menyang tumpukan EMVCo
- Parameter:
- [ing]*in_in_clientCallback: nyedhiyakake status EMVCo lan negara TDA minangka callback
- bali:
- kekosongan
transceive()
ndk:: ScopedAStatus transceive ( const std :: vektor< uint8_t > & in_cmd_data, std :: vektor< uint8_t > * out_rsp_data )
- katrangan: ngirim data aplikasi karo Piranti-Controller lan nampa data respon saka controller
- Cathetan: id sambungan saka TDA kudu ditambahake minangka bagéan saka header NCI.
- Parameter:
- [ing]in_cmd_data: Buffer data printah aplikasi
- Pangecualian:
- EMVCO_STATUS_INVALID_PARAMETER, yen diwenehake id sambungan ora valid
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED nalika fitur kertu kontak ora didhukung.
- bali:
- Respon APDU ditampa saka controller. APDU Response bener ditampa mung nalika status EMVCO_STATUS_OK
Kanggo EMVCo tanpa kontak, API ing ngisor iki bisa diarani:
registerEMVCoEventListener()
ndk::ScopedAStatus registerEMVCoEventListener ( const std:: shared_ptr< INxpEmvcoClientCallback > & in_clientCallback, bool * _aidl_return )
- katrangan: Ndhaptar fungsi callback EMVCo kanggo nampa acara saka piranti pamireng.
- Cathetan: Fungsi iki kudu nelpon sadurunge nggunakake api liyane.
- Parameter:
- [ing]*in_clientCallback: wis EMVCo klien HAL callback
- [ing]*in_aidl_return: nuduhake status ndhaptar minangka bali menyang panelpon
- bali:
- boolean bali bener, yen sukses lan bali palsu, yen gagal kanggo ndhaftar
setEMVCoMode()
ndk::ScopedAStatus setEMVCoMode ( int8_t in_config, bool in_isStartEMVCo )
- katrangan: Miwiti mode EMVCo karo Device-Controller. Sawise Saluran Data Aplikasi ditetepake, Aplikasi bisa ngirim miwiti mode EMVCo karo Piranti-Controller.
- Parameter:
- [ing] in_config: Teknologi polling EMVCo dikonfigurasi liwat parameter iki
- [ing] in_isStartEMVCo: nemtokake kanggo miwiti utawa mungkasi mode EMVCo
- bali:
- kekosongan
StopRFDisovery()
ndk:: ScopedAStatus stopRFDisovery
( :: aidl::vendor::nxp::emvco::NxpDeactivationType in_deactivationType, :: aidl::vendor::nxp::emvco::NxpEmvcoStatus * emvco_status )
- katrangan: mandheg lapangan RF lan pindhah menyang negara mateni sing ditemtokake.
- Parameter:
- [ing]in_deactivationType: nemtokake status sawise mateni RF
- bali:
- NxpEmvcoStatus ngasilake EMVCO_STATUS_OK yen printah kasil diproses lan ngasilake EMVCO_STATUS_FAILED, yen printah ora diproses amarga ora bener. Mode EMVCo kudu ON kanggo nelpon API iki
transceive()
ndk:: ScopedAStatus transceive ( const std:: vektor< uint8_t > & in_data, int32_t * _aidl_return )
- katrangan: ngirim data aplikasi karo Piranti-Controller.
- Cathetan: Ing kasus yen ngirim data gagal, Aplikasi bakal mbukak maneh () sadurunge invoking API iki.
- Parameter:
- (ing]in_data: Buffer data aplikasi
- bali:
- NxpEmvcoStatus sing nuduhake status eksekusi
Konfigurasi files PN7160
Kanggo PN7160, ana rong konfigurasi sing beda files.
- libnfc-nci.conf
- libnfc-nxp.conf
Cathetan: Konfigurasi files diwenehake dening NXP sing examples related kanggo Papan demo controller NFC. Iki files kudu diadopsi miturut integrasi diangkah.
Konfigurasi files kudu diselehake ing lokasi target (ndeleng Tabel 8).
Tabel 8. Lokasi konfigurasi files
Jeneng konfigurasi file | Lokasi ing piranti |
libnfc-nci.conf | sistem / lsp |
libnfc-nxp.conf | vendor / lsp |
Kanggo entuk informasi luwih lengkap babagan konfigurasi files, ndeleng [9].
Konfigurasi files PN7220
Kanggo PN7220, ana limang konfigurasi beda files.
- libemvco-nxp.conf
- libnfc-nci.conf
- libnfc-nxp.conf
- libnfc-nxp-eeprom.conf
- libnfc-nxp-rfExt.conf
Cathetan: Konfigurasi files diwenehake dening NXP sing examples related kanggo Papan demo controller NFC. Iki files kudu diadopsi miturut integrasi diangkah
Konfigurasi files kudu diselehake ing lokasi target (ndeleng Tabel 9).
Tabel 9. Lokasi konfigurasi files
Jeneng konfigurasi file | Lokasi ing piranti |
libemvco-nxp.conf | vendor / lsp |
libnfc-nci.conf | sistem / lsp |
libnfc-nxp.conf | vendor / lsp |
libnfc-nxp-eeprom.conf | vendor / lsp |
libnfc-nxprfExt.conf | vendor / lsp |
Kanggo entuk informasi luwih lengkap babagan konfigurasi files, ndeleng [9].
aplikasi DTA
Kanggo ngidini tes sertifikasi Forum NFC, aplikasi tes piranti diwenehake. Iku dumadi saka sawetara komponen ing lapisan Android beda, kang kudu dibangun lan klebu ing gambar Android.
Kanggo push aplikasi DTA, langkah-langkah ing ngisor iki kudu ditindakake:
- Nyalin kabeh DTA files menyang siji lokasi
$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 "metu/target/produk/hikey960/system/lib64/libdta.so" /DTA-PN7220
$cp -rf “metu/target/produk/hikey960/system/lib64/libdta_jni.so” /DTA-PN7220
$cp -rf "metu/target/produk/hikey960/system/app/NxpDTA/NxpDTA.apk" /DTAPN7220 - Push binar menyang piranti kaya ing ngisor iki
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/
Sawise sumunar target, aplikasi DTA banjur kudu ana ing dhaptar aplikasi sing diinstal. Waca [7] kanggo katrangan rinci babagan cara nggunakake aplikasi kasebut.
Singkatan
Tabel 10. Cekakan
Akronim | Katrangan |
APDU | unit data protokol aplikasi |
AOSP | Proyek Sumber Terbuka Android |
DH | host piranti |
HAL | lapisan abstraksi hardware |
FW | firmware |
I2C | Inter-Integrated Circuit |
LPCD | deteksi kertu powered ngisor |
NCI | Antarmuka pengontrol NFC |
NFC | komunikasi cedhak lapangan |
MW | middleware |
PLL | fase-locked loop |
P2P | peer to peer |
RF | frekuensi radio |
SDA | data serial |
SMCU | mikrokontroler aman |
SW | piranti lunak |
Referensi
- Repositori GitHub - PN7160 lan PN7220 MW Umum: (pranala)
- Web kaca – PN7160 – NFC Plug and Play Controller karo Integrated Firmware lan NCI Interface (pranala)
- Web kaca – PN7220 – EMV L1 NFC Controller karo NCI Interface Ndhukung EMV lan NFC Forum Aplikasi (pranala)
- Repositori GitHub - driver kernel PN7160 lan PN7220: (pranala)
- Sumber Daya – AOSP r2 tag (pranala)
- Sumber Daya - Alat kontrol sumber (pranala)
- Pandhuan pangguna – UG10068 – PN7220 – Pandhuan wiwitan cepet (pranala)
- Repositori GitHub - lokasi PN7160 lan PN7220 FW: (pranala)
- Cathetan aplikasi - AN14431 - konfigurasi PN7160/PN7220 files (pranala)
Wigati babagan kode sumber ing dokumen kasebut
ExampKode sing ditampilake ing dokumen iki nduweni hak cipta lan lisensi BSD-3-Clause:
Hak Cipta 2024 NXP Distribusi lan digunakake ing sumber lan formulir binar, kanthi utawa tanpa modifikasi, diidini yen syarat-syarat ing ngisor iki ditindakake
- Distribusi ulang kode sumber kudu njaga kabar hak cipta ing ndhuwur, dhaptar kahanan iki lan wewaler ing ngisor iki.
- Distribusi ulang ing wangun binar kudu ngasilake kabar hak cipta ing ndhuwur, dhaptar kahanan iki lan wewaler ing ngisor iki ing dokumentasi lan / utawa bahan liyane kudu diwenehake karo distribusi kasebut.
- Jeneng sing nduwèni hak cipta utawa jeneng kontributoré ora bisa digunakake kanggo nyetujui utawa promosi produk sing asalé saka piranti lunak iki tanpa idin tinulis khusus.
SOFTWARE IKI DISEDIAKAN DENING SING nduwèni HAK CIPTA lan kontributor "AS IS" LAN ANY JAMINAN EXPRESS UTAWA TERSIRAT, Klebu, nanging ora winates kanggo, JAMINAN TERSIRAT saka MERCHANTABILITY lan FITNESS kanggo tujuan tartamtu. Ora ana sing nduwèni hak cipta utawa kontributor TANGGUNG JAWAB LANGSUNG, LANGSUNG, INCIDENTAL, KHUSUS, EXEMPLARY, UTAWA KERUSAKAN KONSEKUENSIAL (kalebu, nanging ora winates kanggo, pengadaan barang substitusi utawa layanan, layanan, layanan; UTAWA GANGGUAN BISNIS) Nanging nyebabake lan ing sembarang teori tanggung jawab, apa ing kontrak, TANGGUNG JAWAB STRICT, UTAWA TORT (kalebu teledor UTAWA liyane) njedhul ing sembarang cara metu saka nggunakake piranti lunak iki, sanajan saka saran saka saran.
Riwayat revisi
Tabel 11. Riwayat revisi
Dokumen ID | Tanggal rilis | Katrangan |
AN14430 v.1.0 | 03 September 2024 | • Versi wiwitan |
Informasi hukum
Definisi
Draft - A konsep status ing document nuduhake yen isi isih ing re internalview lan tundhuk persetujuan resmi, sing bisa nyebabake modifikasi utawa tambahan. NXP Semiconductors ora menehi perwakilan utawa garansi babagan akurasi utawa kelengkapan informasi sing kalebu ing versi draf dokumen lan ora duwe tanggung jawab kanggo akibat saka panggunaan informasi kasebut.
Penafian
Garansi lan tanggung jawab winates - Informasi ing dokumen iki dipercaya akurat lan dipercaya. Nanging, NXP Semiconductors ora menehi perwakilan utawa jaminan, sing ditulis utawa diwenehake, babagan akurasi utawa jangkep informasi kasebut lan ora duwe tanggung jawab kanggo akibat saka panggunaan informasi kasebut. NXP Semiconductors ora tanggung jawab kanggo isi ing dokumen iki yen diwenehake dening sumber informasi ing njaba NXP Semiconductors.
NXP Semiconductors ora bakal tanggung jawab kanggo karusakan ora langsung, insidental, punitive, khusus utawa konsekuensial (kalebu - tanpa watesan - bathi sing ilang, tabungan sing ilang, gangguan bisnis, biaya sing ana gandhengane karo penghapusan utawa panggantos produk utawa biaya kerja ulang) utawa ora karusakan kuwi adhedhasar tort (kalebu teledor), babar pisan, nerbitake kontrak utawa teori legal liyane.
Senadyan karusakan apa wae sing bisa ditindakake dening pelanggan kanthi alasan apa wae, tanggung jawab agregat lan kumulatif NXP Semikonduktor marang pelanggan kanggo produk sing diterangake ing kene bakal diwatesi miturut Katentuan lan kahanan adol komersial NXP Semikonduktor.
Hak kanggo nggawe owah-owahan - NXP Semikonduktor nduweni hak kanggo ngganti informasi sing diterbitake ing dokumen iki, kalebu tanpa watesan spesifikasi lan deskripsi produk, kapan wae lan tanpa kabar. Dokumen iki ngganti lan ngganti kabeh informasi sing diwenehake sadurunge diterbitake.
Kesesuaian kanggo panggunaan - Produk NXP Semiconductors ora dirancang, sah utawa dijamin cocog kanggo digunakake ing dhukungan urip, sistem utawa peralatan sing kritis urip utawa safety-kritis, utawa ing aplikasi sing gagal utawa malfungsi produk NXP Semikonduktor bisa uga diarepake. nyebabake ciloko pribadi, pati utawa properti abot utawa karusakan lingkungan. NXP Semikonduktor lan panyedhiya ora tanggung jawab kanggo inklusi lan/utawa nggunakake produk NXP Semiconductors ing peralatan utawa aplikasi kasebut lan mulane kalebu lan/utawa panggunaan kasebut tanggung jawab kanggo pelanggan.
Aplikasi - Aplikasi sing diterangake ing kene kanggo produk iki mung kanggo ilustrasi. NXP Semiconductors ora menehi perwakilan utawa garansi manawa aplikasi kasebut cocog kanggo panggunaan sing ditemtokake tanpa tes utawa modifikasi luwih lanjut.
Pelanggan tanggung jawab kanggo desain lan operasi aplikasi lan produk sing nggunakake produk NXP Semiconductors, lan NXP Semiconductors ora tanggung jawab kanggo bantuan karo aplikasi utawa desain produk pelanggan. Tanggung jawab tunggal pelanggan kanggo nemtokake manawa produk NXP Semiconductors cocok lan pas kanggo aplikasi lan produk sing direncanakake, uga kanggo aplikasi sing direncanakake lan panggunaan pelanggan pihak katelu. Pelanggan kudu menehi desain lan perlindungan operasi sing cocog kanggo nyilikake risiko sing ana gandhengane karo aplikasi lan produk.
NXP Semiconductors ora nampa tanggung jawab sembarang related kanggo gawan sembarang, karusakan, biaya utawa masalah kang adhedhasar sembarang kekirangan utawa gawan ing aplikasi utawa produk customer, utawa aplikasi utawa digunakake dening customer pihak katelu (e). Pelanggan tanggung jawab kanggo nindakake kabeh tes sing dibutuhake kanggo aplikasi lan produk pelanggan nggunakake produk NXP Semiconductors supaya ora dadi standar aplikasi lan produk utawa aplikasi utawa digunakake dening pelanggan pihak katelu. NXP ora nanggung tanggung jawab babagan iki.
Katentuan lan katemtuan adol komersial - Produk NXP Semiconductors didol tundhuk karo syarat lan kahanan umum adol komersial, kaya sing diterbitake ing https://www.nxp.com/profile/ syarat, kajaba digunakake sarujuk ing persetujuan individu ditulis bener. Ing kasus persetujuan individu rampung mung syarat lan katemtuan saka persetujuan pamilike bakal ditrapake. NXP Semiconductors kanthi iki kanthi tegas mbantah kanggo ngetrapake syarat lan kahanan umum pelanggan babagan tuku produk NXP Semiconductors dening pelanggan.
Kontrol ekspor - Dokumen iki uga item (e) sing diterangake ing kene bisa uga tundhuk karo peraturan kontrol ekspor. Ekspor bisa uga mbutuhake wewenang sadurunge saka panguwasa sing kompeten.
Kesesuaian kanggo digunakake ing produk non-otomotif sing nduweni kualifikasi - Kajaba dokumen iki kanthi tegas nyatakake yen produk NXP Semiconductors tartamtu iki nduweni kualifikasi otomotif, produk kasebut ora cocok kanggo panggunaan otomotif. Ora qualified utawa dites sesuai karo tes otomotif utawa syarat aplikasi. NXP Semiconductors ora tanggung jawab kanggo inklusi lan / utawa nggunakake produk qualified non-otomotif ing peralatan otomotif utawa aplikasi.
Yen pelanggan nggunakake produk kanggo desain lan digunakake ing aplikasi otomotif kanggo spesifikasi lan standar otomotif, pelanggan (a) kudu nggunakake produk kasebut tanpa jaminan NXP Semikonduktor kanggo produk kasebut kanggo aplikasi, panggunaan lan spesifikasi otomotif kasebut, lan ( b) nalika pelanggan nggunakake produk kanggo aplikasi otomotif ngluwihi spesifikasi NXP Semikonduktor, panggunaan kasebut mung dadi resiko pelanggan dhewe, lan (c) pelanggan menehi ganti rugi kanthi lengkap NXP Semikonduktor kanggo tanggung jawab, kerusakan utawa klaim produk sing gagal amarga desain lan panggunaan pelanggan. produk kanggo aplikasi otomotif ngluwihi garansi standar NXP Semiconductors lan spesifikasi produk NXP Semiconductor
publikasi HTML - Versi HTML, yen kasedhiya, dokumen iki diwenehake minangka sopan santun. Informasi definitif ana ing dokumen sing ditrapake ing format PDF. Yen ana bedo antarane dokumen HTML lan dokumen PDF, dokumen PDF duwe prioritas.
Terjemahan — Versi non-Inggris (diterjemahake) saka dokumen, kalebu informasi hukum ing dokumen kasebut, mung kanggo referensi. Versi Inggris bakal ditrapake yen ana bedo antarane versi terjemahan lan Inggris.
Keamanan - Pelanggan ngerti manawa kabeh produk NXP bisa uga ana kerentanan sing ora dingerteni utawa bisa uga ndhukung standar keamanan utawa spesifikasi sing wis ditemtokake kanthi watesan sing dingerteni. Pelanggan tanggung jawab kanggo desain lan operasi aplikasi lan produk sajrone siklus urip kanggo nyuda efek saka kerentanan kasebut ing aplikasi lan produk pelanggan. Tanggung jawab pelanggan uga ngluwihi teknologi mbukak lan/utawa eksklusif liyane sing didhukung produk NXP kanggo digunakake ing aplikasi pelanggan. NXP ora tanggung jawab kanggo kerentanan apa wae. Pelanggan kudu rutin mriksa nganyari keamanan saka NXP lan tindakake kanthi tepat. Pelanggan kudu milih produk kanthi fitur keamanan sing paling cocog karo aturan, peraturan, lan standar aplikasi sing dituju lan nggawe keputusan desain sing paling penting babagan produk lan tanggung jawab mung kanggo netepi kabeh syarat legal, peraturan, lan keamanan babagan produke, preduli informasi utawa dhukungan sing bisa diwenehake dening NXP.
NXP duwe Product Security Incident Response Team (PSIRT) (bisa digayuh ing PSIRT@nxp.com) sing ngatur investigasi, laporan, lan release solusi kanggo kerentanan keamanan produk NXP.
NXP BV - NXP BV dudu perusahaan operasi lan ora nyebarake utawa ngedol produk.
Lisensi
Tuku IC NXP kanthi teknologi NFC - Tuku IC Semikonduktor NXP sing tundhuk karo salah sawijining standar Near Field Communication (NFC) ISO / IEC 18092 lan ISO / IEC 21481 ora menehi lisensi sing diwenehake miturut hak paten sing dilanggar dening implementasine samubarang standar kasebut. Tuku NXP Semiconductors IC ora kalebu lisensi kanggo paten NXP (utawa hak IP liyane) sing kalebu kombinasi produk kasebut karo produk liyane, apa hardware utawa piranti lunak.
merek dagang
Kabar: Kabeh merek sing dirujuk, jeneng produk, jeneng layanan, lan merek dagang minangka properti sing nduweni. NXP — wordmark lan logo iku merek dagang saka NXP BV I2C-bus — logo iku merek dagang saka NXP BV
Wigati dimangerteni manawa kabar penting babagan dokumen iki lan produk sing diterangake ing kene, wis kalebu ing bagean 'Informasi hukum'.
© 2024 NXP BV Kabeh hak dilindhungi undhang-undhang.
Kanggo informasi luwih lengkap, bukak: https://www.nxp.com
Dokumen / Sumber Daya
![]() |
NXP PN7160 NCI Based NFC pengontrol [pdf] Pandhuan PN7160, PN7220, PN7160 NCI Based NFC controllers, PN7160, NCI Based NFC controllers, Based NFC controllers, NFC controllers, controllers |