NXP PN7160 NCI Kulingana na Vidhibiti vya NFC Maagizo
Taarifa za hati
Habari | Maudhui |
Maneno muhimu | PN7160, PN7220, NCI, EMVCo, NFC Forum, Android, NFC |
Muhtasari | Hati hii inaeleza jinsi ya kuweka toleo la kawaida la PN7160/PN7220 kwenye Android 14. |
Mwongozo huu unatoa maelekezo ya kina kuhusu jinsi ya kuunganisha vidhibiti vya NFC vya NXP NCI, PN7160 na PN7220, kwenye mazingira ya Android. Mchakato unahusisha kusakinisha kiendeshi muhimu cha kernel na usanidi wa MW (ona [1]). Kwa maelezo zaidi, rejelea ukurasa wa bidhaa wa PN7160 [2] na PN7220 [3]. Mradi wa Android Open Source (AOSP) umesasishwa ili kujumuisha usaidizi kwa vidhibiti vya PN7160 na PN7220 NFC.
PN7220 inakuja katika usanidi mbili: mwenyeji mmoja na mwenyeji-mbili. Rafu kwa ujumla ni sawa kwa zote mbili. Katika hali ya mwenyeji-wawili, SMCU inaongezwa ambayo inamaanisha kuwa kazi zote zinazohusiana na EMVCo zinatekelezwa kwenye SMCU. Katika singlehost EMVCo inatekelezwa katika safu maalum ya EMVCo MW
Rafu ya MW ya Android
Kielelezo cha 1 kinaonyesha usanifu wa rafu ya PN7220 Android NFC.
- Dereva ya NXP I2C ni moduli ya kernel ambayo inaruhusu ufikiaji wa rasilimali za maunzi za PN7220.
- Moduli ya HAL ni utekelezaji wa safu ya uondoaji ya maunzi mahususi ya NXP NFC.
- LibNfc-Nci ni maktaba asilia ambayo hutoa utendaji wa NFC.
- NFC JNI hufanya kama daraja kati ya Java na madarasa ya Asilia.
- Mfumo wa NFC na EMVCo ni sehemu ya mfumo wa programu inayoruhusu ufikiaji wa utendaji wa NFC na EMVCo.
Kielelezo cha 2 kinaonyesha usanifu wa rafu ya PN7160 Android NFC.
Kielelezo 2. PN7160 Android MW stack
- Dereva ya NXP I2C ni moduli ya kernel ambayo inaruhusu ufikiaji wa rasilimali za maunzi za PN7160.
- Moduli ya HAL ni utekelezaji wa safu ya uondoaji ya maunzi mahususi ya NXP NFC.
- LibNfc-nci ni maktaba asilia ambayo hutoa utendaji wa NFC.
- NFC JNI hufanya kama daraja kati ya Java na madarasa ya Asilia.
- NFC ni sehemu ya mfumo wa programu inayoruhusu ufikiaji wa utendakazi wa NFC.
- Msimbo wa chanzo wa MW ni sawa kwa PN7160 na PN7220, lakini kuna vikwazo vichache.
Jedwali la 1 linaonyesha vipengele visivyotumika vya kila kidhibiti cha NFC.
Jedwali 1. Vipengele visivyotumika
Kidhibiti cha NFC | Vipengele visivyotumika |
PN7160 |
|
PN7220 |
|
Kumbuka: Kuanzia Android 14 na kuendelea P2P pia haitumiki kwenye PN7160.
Dereva wa Kernel
Kuanzisha muunganisho na PN7220 au PN7160, rundo la Android hutumia kiendesha kernel cha nxpnfc. Inaweza kupatikana katika [4].
Maelezo ya dereva
PN7220 inaauni kiolesura halisi cha I2C, ilhali PN7160 inaauni kiolesura halisi cha I2C au SPI. Inapowekwa kwenye kernel, dereva hufichuliwa kupitia nodi ya kifaa katika /dev/nxpnfc.
Kumbuka: PN7160 na PN7220 hutumia madereva mawili tofauti, uteuzi wa dereva sahihi unahitajika kulingana na aina ya chip.
Kupata msimbo wa chanzo cha dereva PN7160
Nakili hazina ya dereva ya nfcandroid_platform_drivers/pn7160/nfc kwenye saraka ya kernel, ikibadilisha utekelezaji uliopo. Rejelea [4] kwa punje files.
$rm -rf madereva/nfc
$git clone “https://github.com/nxp-nfc-infra/nfcandroid_platform_drivers.git” -b
br_ar_14_comm_infra_dev
Hii inaisha na viendeshi vya folda/nfc iliyo na yafuatayo files:
- README.md: habari ya hazina
- Tengenezafile: tengeneza kichwa cha derevafile
- Kconfig: usanidi wa dereva file
- Leseni: masharti ya leseni ya udereva
- folda ndogo ya nfc iliyo na:
- commoc.c: utekelezaji wa kiendeshi wa jumla
- common.h: ufafanuzi wa kiolesura cha kiendeshi cha jumla
- i2c_drv.c: utekelezaji wa kiendeshaji wa i2c mahususi
- – i2c_drv.h: ufafanuzi wa kiolesura mahususi cha i2c
- spi_drv.c: utekelezaji wa kiendeshi maalum wa spi
- spi_drv.h: ufafanuzi wa kiolesura mahususi cha spi
- Tengenezafile: fanyafile ambayo imejumuishwa katika utengenezajifile ya dereva
- Kujenga => kujenga file
- Kconfig => usanidi wa dereva file
Kupata msimbo wa chanzo cha dereva PN7220
Nakili nfcandroid_platform_drivers/drivers/pn7220cs/nfc (kesi ya matumizi ya mwenyeji mmoja) au nfcandroid_platform_ drivers/drivers/pn7220cms/nfc (usecase ya mwenyeji-mbili) kwenye saraka ya viendeshi vya kernel/nfc, ikichukua nafasi ya kiendeshi kilichopo. Rejelea [4] kwa punje files.
$rm -rf drivers/nfc$git clone “https://github.com/nxp-nfc-infra/nfcandroid_platform_drivers.git” -bbr_ar_14_comm_infra_dev
Kufuatia amri hii, folda drivers/nfc ina zifuatazo files:
- README.md: habari ya hazina
- Tengenezafile: tengeneza kichwa cha derevafile
- Kconfig: usanidi wa dereva file
- Leseni: masharti ya leseni ya udereva
- folda ndogo ya nfc iliyo na:
- commoc.c: utekelezaji wa kiendeshi wa jumla
- common.h: ufafanuzi wa kiolesura cha kiendeshi cha jumla
- i2c_drv.c: i2 c utekelezaji wa kiendeshi mahususi
- i2c_drv.h: ufafanuzi wa kiolesura mahususi cha i2 c
- Tengenezafile: fanyafile ambayo imejumuishwa katika utengenezajifile ya dereva
- Kujenga => kujenga file
- Kconfig => usanidi wa dereva file
Kujenga dereva
Mti wa kifaa unawajibika kwa kuongeza kiendeshi kwenye kernel na kuipakia kwenye buti ya kifaa.
Baada ya kusasisha vipimo vya mti wa kifaa, mti wa kifaa unaohusiana na jukwaa lazima uundwe upya. NXP inapendekeza kutumia toleo la kernel 5.10 kwani hutoa uthibitisho wa kina.
Ili kuunda dereva, hatua zifuatazo lazima zifanyike:
- Pata kiendesha kernel
- Pata msimbo wa chanzo wa dereva
- Rekebisha ufafanuzi wa mti wa kifaa, ambao ni wa kipekee kwa kifaa kinachotumika.
- Tengeneza dereva:
a. Kupitia utaratibu wa menuconfig, ongeza kiendeshi kinacholengwa kwenye muundo.
Baada ya kujenga upya kernel iliyokamilishwa, dereva atajumuishwa kwenye picha ya kernel. Picha zote mpya za kernel lazima zinakiliwe kwenye muundo wa AOSP.
Marekebisho ya AOSP
NXP inaongeza marekebisho kwenye msimbo wa AOSP. Hii inamaanisha kuwa msimbo wa AOSP unatumika kama msingi, lakini umepanuliwa kwa vipengele mahususi vya NXP. [5] ndiyo AOSP ya sasa tag inatumiwa na NXP. Baada ya kupata muundo wa AOSP, msimbo uliopo wa AOSP lazima ubadilishwe, na idadi ya viraka lazima itumike.
Kumbuka: Toleo tofauti la msimbo wa AOSP linaweza kutumika, lakini marekebisho ya ziada lazima yafanyike.
Muundo wa AOSP
Pata msimbo wa chanzo wa AOSP.
$ repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r2 $ repo sync
Kumbuka: Chombo cha repo lazima kisakinishwe kwenye mfumo. Rejelea [6] kwa maagizo.
Jenga msimbo wa chanzo.
$cd Android_AROOT
$source build/envsetup.sh
$lunch select_target #target ni DH tunayotaka kutumia kwa mfanoample: evk_8mn-userdebug
$tengeneza -j
Nakili hazina zote za NXP kwenye eneo lengwa.
Jedwali 2. Tawi la toleo mahususi la Android
Toleo la Android | Tawi |
Android 14 | br_ar_14_comm_infra_dev |
Kumbuka: Wakati cloning, ni muhimu kuchagua tawi sahihi.
Jedwali 3. Hifadhi za Clone
Marejeleo ya AOSP | Marudio ya NXP GitHub |
“$ANDROID_ROOT”/packages/ programu/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”/vifaa/ nxp/nfc | https://github.com/nxp-nfc-infra/nfcandroid_nfc_hidlimpl/tree/br_ar_14_comm_infra_dev |
“$ANDROID_ROOT”/vendor/nxp/ mifumo | https://github.com/nxp-nfc-infra/nfcandroid_frameworks/tree/br_ar_14_comm_infra_dev |
“$ANDROID_ROOT”/vifaa/ 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 |
Jedwali la 4. Hifadhi za nakala za programu za majaribio na usaidizi wa TDA
Folda kwenye GitHub | Marejeleo ya AOSP | NXP GitHub | IC Inaungwa mkono |
test_apps/SMCU_Switch | “$ANDROID_ROOT”/
vifurushi/programu/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/EMVCoMode SwitchApp | “$ANDROID_ROOT”/
vifurushi/programu/Nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/Cockpit | “$ANDROID_ROOT”/
vifaa/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/SelfTest | “$ANDROID_ROOT”/
vifaa/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/SelfTest_pn7160 | “$ANDROID_ROOT”/
vifaa/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7160 |
test_apps/load_unload | “$ANDROID_ROOT”/
vifaa/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/SelfTestAidl | “$ANDROID_ROOT”/
vifaa/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
nfc_tda | “$ANDROID_ROOT”/system/ | https://github.com/ nxp-nfc-infra/ | PN7220 |
emvco_tda | “$ANDROID_ROOT”/
vifaa/nxp/emvco/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
emvco_tda_test | “$ANDROID_ROOT”/
vifaa/nxp/emvco/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
NfcTdaTestApp | “$ANDROID_ROOT”/
vifurushi/programu/Nfc/ |
https://github.com/ nxp-nfc-infra/nfcandroid_infra_comm_libs | PN7220 |
Weka viraka
Jedwali 5. Weka patches
Kumbuka: Angalia matokeo baada ya kutumia kiraka, ikiwa suala lolote lilizingatiwa wakati wa kuweka.
Ongeza maktaba za FW. Rejelea [8] kwa FW.
Kumbuka: Si lazima. FW inaweza kusasishwa kila wakati.
kwa PN7160:
$git clone 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
kwa PN7220:
$git clone 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
Inaongeza NFC kwenye muundo
Katika kifaa.mk tengenezafile (kwa mfanoample, kifaa/brand/platform/device.mk), inajumuisha make maalumfiles:
$(piga simu ya kurithi-bidhaa, vendor/nxp/nfc/device-nfc.mk)
Katika BoardConfig.mk makefile (kwa mfanoample, kifaa/brand/platform/BoardConfig.mk), inajumuisha utengenezaji mahususifile:
-jumuisha muuzaji/nxp/nfc/BoardConfigNfc.mk
Inaongeza programu ya DTA
$git clone https://github.com/NXPNFCProject/NXPAndroidDTA.git $patch -p1 nfc-dta.patch #iko katika https://github.com/nxp-nfc-infra/ nfcandroid_platform_reference/tree/br_ar_14_comm_infra_dev/ build_mw_patches/db845c $ cp -r nfc-dta /system/nfc-dta $/system/nfc-dta/$ mm -j
Jenga AOSP na mabadiliko:
$ cd mfumo/msingi
$mm
$cd ../..
$ cd muuzaji/nxp/frameworks
$mm #baada ya hii, com.nxp.emvco.jar na com.nxp.nfc.jar zinapaswa kuwa ndani nje/
lengo/bidhaa/xxxx/mfumo/mfumo/
$cd ../../..
$cd maunzi/nxp/nfc
$mm
$cd ../../..
$tengeneza -j
Sasa, angaza kifaa na picha mpya za Android.
Android NFC Apps na Lib juu ya malengo
Baada ya ujenzi, maktaba zilizoundwa lazima zisanikishwe kwenye kifaa kinacholengwa. Sehemu ya 4.2 inabainisha eneo la mradi, maktaba inayolingana, na eneo la kifaa lengwa ambapo kitasakinishwa.
Kumbuka: Nambari za jozi za EMVCo zinatumika tu na PN7220.
Jedwali 6. Imeundwa files yenye lengo la kifaa
Mahali pa mradi | Imekusanywa Files | Maoni | Mahali katika kifaa lengwa |
“$ANDROID_ROOT”/
vifurushi/apps/Nfc |
NfcNci.odex NfcNci.vdex lib/NfcNci.apk oat/libnfc_nci_jni.so | /mfumo/app/NfcNci/ oat/mkono64/
/mfumo/app/NfcNci/ oat/mkono64/ /mfumo/app/NfcNci/ /mfumo/lib64/ |
|
“$ANDROID_ROOT”/
mfumo/nfc |
libnfc_nci.so | /mfumo/lib64/ | |
“$ANDROID_ROOT”/
system/nfc_tda” |
nfc_tda.so | Inatumika kwa kipengele cha CT pekee. | /mfumo/lib64/ |
“$ANDROID_ROOT”/
vifaa/nxp/nfc |
nfc_nci_nxp_pn72xx.so android.hardware.nfc_72xx@1.2-huduma 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 mchuuzi.nxp.nxpnfc@2.0.so mchuuzi.nxp.nxpnfc@1.0.so | /vendor/lib64
/muuzaji/bin/hw/ /vendor/etc/init /mfumo/lib64/ /mfumo/lib64/ /mfumo/lib64/ /muuzaji/lib64/ /muuzaji/lib64/ |
|
“$ANDROID_ROOT/
vifaa/violesura/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 | /mfumo\/ib64/
/mfumo/lib64/ /mfumo/lib64/ /mfumo/lib64/ /muuzaji/lib64/ /muuzaji/lib64/ /muuzaji/lib64/ |
|
“$ANDROID_ROOT”/
muuzaji/nxp/mifumo |
com.nxp.emvco.jar (PN7220) com.nxp.nfc.jar | /mfumo/mfumo
/mfumo/mfumo |
|
“$ANDROID_ROOT”/
vifaa/nxp/emvco |
emvco_poller.so (PN7220) muuzaji.nxp.emvco-V1-ndk.so muuzaji.nxp.emvco-V2-ndk.so muuzaji.nxp.emvco-V2-ndk.so muuzaji.nxp.emvco-huduma.nxp. emvco-service.rc | /muuzaji/lib64/
/mfumo/lib64/ /mfumo/lib64/ /muuzaji/lib64/ /muuzaji/bin/hw/ /muuzaji/nk/init/ |
|
“$ANDROID_ROOT/
hardware/nxp/emvco_tda” |
emvco_tda.so | Inatumika kwa kipengele cha CT pekee. | /muuzaji/lib64/ |
Zuia uchoraji ramani
Kuchora jina la kizuizi kutoka kwa Sehemu ya 1 ili kulenga eneo katika msimbo wa AOSP.
Jedwali 7. Mahali pa kuweka kwenye NFC Stack
Zuia jina | Mahali katika msimbo wa AOSP |
NFC HAL na EMVCo HAL | maunzi/violesura/ |
Rafu ya NFC | vifaa/nxp/nfc/ |
EMVCo L1 Data Exchange Tabaka = EMVCo Stack | vifaa/nxp/emvco/ |
LibNfc-Nci | mfumo/nfc/ |
NFC JNI | vifurushi/programu/nfc/ |
Huduma ya NFC | vifurushi/programu/nfc/ |
Mfumo wa NFC | mifumo/msingi/ |
Mfumo wa EMVCo | muuzaji/nxp/mifumo/ |
EMVCo AP
Rafu ya PN7220 MW huongeza msimbo wa AOSP kwa rafu ya EMVCo MW. Sehemu hii inafafanua API za EMVCo.
Kumbuka: API zinaweza kuitwa tu wakati wa kutumia PN7220 IC. Ikiwa unaiita na PN7160 IC, API haifanyi kazi. EMVCo Profile Ugunduzi. API hizo zinaweza kutumika kwa mawasiliano na mtaalamu asiye na mawasilianofiles.
sajiliEMVCoEventListener()
- ndk::ScopedAStatus registerEMVCoEventListener ( const std::shared_ptr< INxpEmvcoClientCallback > & in_clientCallback, bool * in_aidl_return)
- Maelezo: Sajili kitendaji cha kurudi nyuma kwa EMVCo ili kupokea matukio kutoka kwa kifaa cha msikilizaji
- Kumbuka: Kitendaji hiki ni lazima kipige mpira kabla ya kutumia api nyingine yoyote.
- Vigezo:
- [katika] *in_clientCallback: ina mteja wa EMVCo HAL callback
- [katika] *in_aidl_return: inaonyesha hali ya usajili kwa kurudisha mpiga simu
- Inarudi
- boolean inarejesha kweli, ikiwa imefaulu na inarejesha sivyo, ikiwa imeshindwa kujiandikisha
pata Hali ya Sasa ya Ugunduzi ()
- ndk::ScopedAStatus getCurrentDiscoveryMode(::aidl::vendor::nxp::emvco::NxpDiscoveryMode * _aidl_return)
- Maelezo: inarejesha pro ya sasa inayotumikafile aina.
- Inarudi
- NxpDiscoveryMode – NFC/EMVCo/Haijulikani
onNfcStateChange()
- ndk::ScopedAStatus onNfcStateChange(NxpNfcState in_nfcState)
- Maelezo: imesasisha hali ya NFC hadi EMVCo HAL.
- Vigezo:
- [katika] in_nfcState: inabainisha hali ya NFC
- Inarudi:
- utupu
sajiliNFCstateChangeCallback()
- ndk::ScopedAStatus registerNFCstateChangeCallback ( const std::shared_ptr< ::aidl::vendor::nxp::emvco::INxpNfcStateChangeRequestCallback > & in_nfcStateChangeRequestCallback, bool * _aidl_re
- Maelezo: Sajili kitendakazi cha kupiga simu cha NFC ili kupokea matukio kutoka kwa kifaa cha msikilizaji.
- Kumbuka: Chaguo hili la kukokotoa ni lazima lipige simu kabla ya kutumia api nyingine yoyote.
- Vigezo:
- [in] in_nfcStateChangeCallback: INxpNfcStateChangeRequestCallback kitendakazi cha kupiga simu tena cha tukio kupitishwa na mpigaji. Inapaswa kutekeleza KUWASHA/ZIMA NFC kulingana na ombi lililopokelewa.
- Hurejesha: boolean hurejesha kweli, ikiwa imefaulu na inarejesha sivyo, ikiwa imeshindwa kujisajili.
setByteConfig()
ndk::ScopedAStatus setByteConfig ( ::aidl::muuzaji::nxp::emvco::NxpConfigType
katika_aina,
int32_t in_length,
int8_t katika_thamani,
::aidl::muuzaji::nxp::emvco::NxpEmvcoHali * _aidl_return
setEMVCoMode()
ndk::ScopedAStatus setEMVCoMode ( int8_t in_disc_mask,
bool in_isStartEMVCo )
- Maelezo: Huanzisha hali ya EMVCo na Kidhibiti cha Kifaa. Baada ya Kituo cha Data ya Maombi kuanzishwa, Programu inaweza kutuma modi ya EMVCo na Kidhibiti cha Kifaa.
- Vigezo:
- [katika] in_disc_mask EMVCo: teknolojia za upigaji kura zimesanidiwa kupitia kigezo hiki
- [katika]in_isStartEMVCo: inabainisha kuanzisha au kusimamisha modi ya EMVCo
- Inarudi:
- utupu
setLed()
ndk::ScopedAStatus setLed ( ::aidl::muuzaji::nxp::emvco::NxpLedControl
in_ledControl,
::aidl::muuzaji::nxp::emvco::NxpEmvcoHali * emvco_status)
Kwa Mawasiliano EMVCo, API zifuatazo zinaweza kutumika juu ya zilizotangulia.
closeTDA()
ndk::ScopedAStatus closeTDA ( int8_t in_tdaID, bool in_standBy )
- Maelezo: Hufunga kadi mahiri iliyounganishwa kupitia TDA
- Vigezo:
- [katika] tdaID: kitambulisho cha nafasi ya tda itakayofungwa
- Vighairi:
- EMVCO_STATUS_INVALID_PARAMETER, ikiwa tdaID iliyotolewa ni batili
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED wakati kipengele cha kadi ya mawasiliano hakitumiki.
- Inarudi:
- utupu
discoverTDA()
ndk::ScopedAStatus discoverTDA
( std::vector<::aidl::vendor::nxp::emvco::NxpEmvcoTDAInfo > * emvcoTDAInfo )
Maelezo: discoverTDA hutoa maelezo yote ya kadi mahiri iliyounganishwa kupitia TDA
- Vigezo:
- [katika]*in_clientCallback: hutoa hali ya EMVCo na hali ya TDA kama upigaji simu
- Vighairi:
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED wakati kipengele cha kadi ya mawasiliano hakitumiki.
- Inarudi:
- NxpEmvcoTDAInfo[] hurejesha kadi mahiri iliyounganishwa kupitia TDA. emvcoTDAInfo halali hupokelewa tu wakati hali ni EMVCO_STATUS_OK
openTDA()
ndk::ScopedAStatus openTDA ( int8_t in_tdaID, bool in_standBy, int8_t * out_connID )
Maelezo: hufungua kadi mahiri iliyounganishwa kupitia TDA
- Vigezo:
- [katika]tdaID: tda id ya kadi mahiri iliyopokelewa kupitia discoverTDA
- Vighairi:
- EMVCO_STATUS_INVALID_PARAMETER, ikiwa tdaID iliyotolewa ni batili
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED wakati kipengele cha kadi ya mawasiliano hakitumiki.
- Inarudi:
- byte hurejesha kitambulisho cha muunganisho cha kadi mahiri. kitambulisho halali cha muunganisho kilipokelewa tu wakati hali ni EMVCO_STATUS_OK
sajiliEMVCoCTListener()
ndk::ScopedAStatus registerEMVCoCTListener ( const std::shared_ptr<::aidl::vendor::nxp::emvco::INxpEmvcoTDACCallback > & in_in_clientCallback, bool * _aidl_return)
- Maelezo: husajili upigaji simu wa EMVCoCT kwenye rafu ya EMVCo
- Vigezo:
- [katika]*in_in_clientCallback: hutoa hali ya EMVCo na hali ya TDA kama upigaji simu
- Inarudi:
- utupu
transceive()
ndk::ScopedAStatus transceive ( const std::vector< uint8_t > & in_cmd_data, std::vector< uint8_t > * out_rsp_data )
- Maelezo: hutuma data ya programu na Kidhibiti-Kifaa na kupokea data ya majibu kutoka kwa kidhibiti
- Kumbuka: kitambulisho cha unganisho cha TDA kinapaswa kuongezwa kama sehemu ya kichwa cha NCI.
- Vigezo:
- [katika]katika_cmd_data: Akiba ya data ya amri ya programu
- Vighairi:
- EMVCO_STATUS_INVALID_PARAMETER, ikiwa kitambulisho cha muunganisho kimetolewa ni batili
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED wakati kipengele cha kadi ya mawasiliano hakitumiki.
- Inarudi:
- Jibu la APDU limepokelewa kutoka kwa kidhibiti. Jibu halali la APDU lilipokelewa tu wakati hali ni EMVCO_STATUS_OK
Kwa EMVCo bila mawasiliano, API zifuatazo zinaweza kuitwa:
sajiliEMVCoEventListener()
ndk::ScopedAStatus registerEMVCoEventListener ( const std::shared_ptr< INxpEmvcoClientCallback > & in_clientCallback, bool * _aidl_return )
- Maelezo: Sajili kitendakazi cha kupiga simu cha EMVCo ili kupokea matukio kutoka kwa kifaa cha msikilizaji.
- Kumbuka: Chaguo hili la kukokotoa ni lazima lipige simu kabla ya kutumia api nyingine yoyote.
- Vigezo:
- [katika]*in_clientCallback: ina mteja wa EMVCo HAL callback
- [katika]*in_aidl_return: inaonyesha hali ya kujiandikisha kwa kurejesha mpiga simu
- Inarudi:
- boolean inarejesha kweli, ikiwa imefaulu na inarejesha sivyo, ikiwa imeshindwa kujiandikisha
setEMVCoMode()
ndk::ScopedAStatus setEMVCoMode ( int8_t in_config, bool in_isStartEMVCo )
- Maelezo: Huanzisha hali ya EMVCo na Kidhibiti cha Kifaa. Baada ya Kituo cha Data ya Maombi kuanzishwa, Programu inaweza kutuma modi ya EMVCo na Kidhibiti cha Kifaa.
- Vigezo:
- [katika]katika_config: Teknolojia za upigaji kura za EMVCo zimesanidiwa kupitia kigezo hiki
- [katika]in_isStartEMVCo: inabainisha kuanzisha au kusimamisha modi ya EMVCo
- Inarudi:
- utupu
StopRFDisovery()
ndk::ScopedAStatus stopRFDisovery
( ::aidl::vendor::nxp::emvco::NxpDeactivationType in_deactivationType, ::aidl::vendor::nxp::emvco::NxpEmvcoStatus * emvco_status )
- Maelezo: husimamisha uga wa RF na kuingia katika hali maalum ya kulemaza.
- Vigezo:
- [katika]in_deactivationType: hubainisha hali itakayokuwa baada ya kuzima kwa RF
- Inarudi:
- NxpEmvcoStatus hurejesha EMVCO_STATUS_OK amri ikichakatwa kwa mafanikio na kurejesha EMVCO_STATUS_FAILED, ikiwa amri haijachakatwa kwa sababu ya hali batili. Hali ya EMVCo inapaswa KUWASHWA ili kupiga API hii
transceive()
ndk::ScopedAStatus transceive ( const std::vector< uint8_t > & in_data, int32_t * _aidl_return )
- Maelezo: tuma data ya programu na Kidhibiti-Kifaa.
- Kumbuka: Ikiwa data ya kutuma itashindikana, Programu itaomba tena open() kabla ya kutumia API hii.
- Vigezo:
- (katika]katika_data: Bafa ya data ya programu
- Inarudi:
- NxpEmvcoHali inayoonyesha hali ya utekelezaji
Usanidi fileSehemu ya PN7160
Kwa PN7160, kuna usanidi mbili tofauti files.
- libnfc-nci.conf
- libnfc-nxp.conf
Kumbuka: Usanidi filezilizotolewa na NXP ni exampinayohusiana na bodi ya onyesho ya kidhibiti cha NFC. Haya filelazima ichukuliwe kulingana na ujumuishaji unaolengwa.
Usanidi files lazima iwekwe katika eneo lengwa (tazama Jedwali 8).
Jedwali 8. Maeneo ya usanidi files
Jina la usanidi file | Mahali kwenye kifaa |
libnfc-nci.conf | mfumo / nk |
libnfc-nxp.conf | muuzaji/nk |
Ili kupata habari zaidi juu ya usanidi files, tazama [9].
Usanidi fileSehemu ya PN7220
Kwa PN7220, kuna usanidi tano tofauti files.
- libemvco-nxp.conf
- libnfc-nci.conf
- libnfc-nxp.conf
- libnfc-nxp-eeprom.conf
- libnfc-nxp-rfExt.conf
Kumbuka: Usanidi filezilizotolewa na NXP ni exampinayohusiana na bodi ya onyesho ya kidhibiti cha NFC. Haya filelazima ichukuliwe kulingana na ujumuishaji unaolengwa
Usanidi files haja ya kuwekwa katika eneo lengwa (tazama Jedwali 9).
Jedwali 9. Maeneo ya usanidi files
Jina la usanidi file | Mahali kwenye kifaa |
libemvco-nxp.conf | muuzaji/nk |
libnfc-nci.conf | mfumo / nk |
libnfc-nxp.conf | muuzaji/nk |
libnfc-nxp-eeprom.conf | muuzaji/nk |
libnfc-nxprfExt.conf | muuzaji/nk |
Ili kupata habari zaidi juu ya usanidi files, tazama [9].
Maombi ya DTA
Ili kuruhusu majaribio ya uidhinishaji wa Mijadala ya NFC, programu ya majaribio ya kifaa imetolewa. Inaundwa na vipengele kadhaa katika tabaka tofauti za Android, ambazo lazima zijengwe na zijumuishwe kwenye picha ya Android.
Ili kusukuma programu ya DTA, hatua zifuatazo lazima zitekelezwe:
- Nakili DTA zote files kwa eneo moja
$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 - Sukuma jozi kwenye kifaa kama chini
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/
Baada ya kuangaza lengo, programu ya DTA inapaswa kuwapo kwenye orodha ya programu zilizosakinishwa. Rejelea [7] kwa maelezo ya kina ya jinsi ya kutumia programu.
Vifupisho
Jedwali 10. Vifupisho
Kifupi | Maelezo |
ADU | kitengo cha data ya itifaki ya programu |
AOSP | Mradi wa Android Open Source |
DH | mwenyeji wa kifaa |
HAL | safu ya uondoaji wa vifaa |
FW | firmware |
I2C | Mzunguko Uliounganishwa |
LPCD | utambuzi wa kadi yenye nguvu ya chini |
NCI | Kiolesura cha kidhibiti cha NFC |
NFC | mawasiliano ya karibu |
MW | vyombo vya kati |
PLL | awamu ya-imefungwa kitanzi |
P2P | rika kwa rika |
RF | masafa ya redio |
SDA | data ya serial |
SMCU | salama microcontroller |
SW | programu |
Marejeleo
- Hazina ya GitHub - PN7160 na PN7220 MW ya Kawaida: (kiungo)
- Web ukurasa - PN7160 - Programu-jalizi ya NFC na Kidhibiti Cheza chenye Firmware Iliyounganishwa na Kiolesura cha NCI (kiungo)
- Web ukurasa - PN7220 - Kidhibiti cha NFC kinachozingatia EMV L1 chenye Kiolesura cha NCI Kinachosaidia EMV na Maombi ya Mijadala ya NFC (kiungo)
- Hifadhi ya GitHub - PN7160 na dereva wa kernel wa PN7220: (kiungo)
- Rasilimali - AOSP r2 tag (kiungo)
- Rasilimali - Zana za kudhibiti chanzo (kiungo)
- Mwongozo wa mtumiaji - UG10068 - PN7220 - Mwongozo wa kuanza haraka (kiungo)
- GitHub hazina - PN7160 na PN7220 FW eneo: (kiungo)
- Ujumbe wa maombi - AN14431 - usanidi wa PN7160/PN7220 files (kiungo)
Kumbuka kuhusu msimbo wa chanzo katika hati
Exampmsimbo ulioonyeshwa katika hati hii una hakimiliki ifuatayo na leseni ya Kifungu cha BSD-3:
Hakimiliki 2024 NXP Ugawaji na matumizi katika vyanzo na fomu za binary, pamoja na au bila marekebisho, inaruhusiwa mradi masharti yafuatayo yametimizwa.
- Ugawaji upya wa msimbo wa chanzo lazima uhifadhi notisi ya hakimiliki iliyo hapo juu, orodha hii ya masharti na kanusho lifuatalo.
- Ugawaji upya katika mfumo wa mfumo wa jozi lazima uzalishe notisi ya hakimiliki iliyo hapo juu, orodha hii ya masharti na kanusho lifuatalo katika hati na/au nyenzo zingine lazima zitolewe kwa usambazaji.
- Si jina la mwenye hakimiliki wala majina ya wachangiaji wake yanayoweza kutumika kuidhinisha au kukuza bidhaa zinazotokana na programu hii bila ruhusa mahususi iliyoandikwa hapo awali.
SOFTWARE HII IMETOLEWA NA WENYE HAKI NA WACHANGIAJI "KAMA ILIVYO" NA DHAMANA ZOZOTE ZILIZOONEKANA AU ZILIZODHANISHWA, IKIWEMO, LAKINI SI KIKOMO, DHAMANA ILIYOHUSIKA YA UUZAJI NA KUFAA KWA MADHUMUNI MAALUM. KWA MATUKIO YOYOTE MWENYE HAKI YA HAKI AU WACHANGIAJI ATAWAJIBIKA KWA MOJA KWA MOJA, MOJA KWA MOJA, TUKIO, MAALUM, MIFANO, AU UHARIBIFU WOWOTE (pamoja na, LAKINI SI KIKOMO, UNUNUZI WA HUDUMA, HUDUMA, HUDUMA, HASARA; FAIDA ; UHARIBIFU.
Historia ya marekebisho
Jedwali 11. Historia ya marekebisho
Kitambulisho cha Hati | Tarehe ya kutolewa | Maelezo |
AN14430 v.1.0 | Tarehe 03 Septemba mwaka wa 2024 | • Toleo la awali |
Taarifa za kisheria
Ufafanuzi
Rasimu - Hali ya rasimu kwenye hati inaonyesha kuwa maudhui bado yako chini ya urekebishaji wa ndaniview na kulingana na idhini rasmi, ambayo inaweza kusababisha marekebisho au nyongeza. NXP Semiconductors haitoi uwakilishi au dhamana yoyote kuhusu usahihi au ukamilifu wa taarifa iliyojumuishwa katika toleo la rasimu ya hati na haitakuwa na dhima kwa matokeo ya matumizi ya habari kama hiyo.
Kanusho
Dhima na dhima ndogo - Taarifa katika hati hii inaaminika kuwa sahihi na ya kuaminika. Hata hivyo, NXP Semiconductors haitoi uwakilishi au dhamana yoyote, iliyoelezwa au kudokezwa, kuhusu usahihi au ukamilifu wa taarifa kama hizo na haitakuwa na dhima kwa matokeo ya matumizi ya habari hiyo. NXP Semiconductors haiwajibikii maudhui katika hati hii ikiwa yametolewa na chanzo cha habari nje ya NXP Semiconductors.
Kwa hali yoyote, Semiconductors za NXP hazitawajibika kwa uharibifu wowote usio wa moja kwa moja, wa bahati mbaya, wa adhabu, maalum au wa matokeo (pamoja na - bila kikomo - faida iliyopotea, akiba iliyopotea, usumbufu wa biashara, gharama zinazohusiana na kuondolewa au uingizwaji wa bidhaa zozote au malipo ya kurekebisha upya) iwe au sio uharibifu kama huo unatokana na tort (ikiwa ni pamoja na uzembe), dhamana, uvunjaji wa mkataba au nadharia nyingine yoyote ya kisheria.
Bila kujali uharibifu wowote ambao mteja anaweza kupata kwa sababu yoyote ile, jumla ya Waendeshaji Semiconductors wa NXP na dhima limbikizi kwa mteja kwa bidhaa zilizofafanuliwa hapa zitapunguzwa kwa mujibu wa Sheria na Masharti ya uuzaji wa kibiashara wa Semiconductors za NXP.
Haki ya kufanya mabadiliko — NXP Semiconductors inahifadhi haki ya kufanya mabadiliko kwa habari iliyochapishwa katika hati hii, ikijumuisha bila vikwazo na maelezo ya bidhaa, wakati wowote na bila taarifa. Hati hii inachukua nafasi na kuchukua nafasi ya maelezo yote yaliyotolewa kabla ya kuchapishwa kwake.
Kufaa kwa matumizi - Bidhaa za NXP za Semiconductors hazijaundwa, hazijaidhinishwa au hazijaidhinishwa kufaa kutumika katika usaidizi wa maisha, mifumo au vifaa muhimu vya maisha au muhimu sana, au katika matumizi ambapo kutofaulu au utendakazi wa bidhaa ya NXP Semiconductors inaweza kutarajiwa ipasavyo. kusababisha majeraha ya kibinafsi, kifo au uharibifu mkubwa wa mali au uharibifu wa mazingira. NXP Semiconductors na wasambazaji wake hawakubali dhima yoyote ya kujumuishwa na/au matumizi ya bidhaa za NXP Semiconductors katika vifaa au programu kama hizo na kwa hivyo kujumuishwa na/au matumizi ni kwa hatari ya mteja mwenyewe.
Maombi - Maombi ambayo yamefafanuliwa humu kwa bidhaa yoyote kati ya hizi ni kwa madhumuni ya kielelezo pekee. Semiconductors ya NXP haitoi uwakilishi au dhamana kwamba programu kama hizo zitafaa kwa matumizi maalum bila majaribio zaidi au marekebisho.
Wateja wanawajibika kwa muundo na uendeshaji wa programu na bidhaa zao kwa kutumia bidhaa za NXP Semiconductors, na NXP Semiconductors haikubali dhima yoyote kwa usaidizi wowote wa programu au muundo wa bidhaa za mteja. Ni jukumu la mteja pekee kubainisha ikiwa bidhaa ya NXP Semiconductors inafaa na inafaa kwa programu na bidhaa zilizopangwa za mteja, na vile vile kwa utumaji uliopangwa na matumizi ya mteja(wateja wengine). Wateja wanapaswa kutoa muundo unaofaa na ulinzi wa uendeshaji ili kupunguza hatari zinazohusiana na programu na bidhaa zao.
NXP Semiconductors haikubali dhima yoyote inayohusiana na chaguo-msingi, uharibifu, gharama au tatizo lolote ambalo linatokana na udhaifu wowote au chaguo-msingi katika programu au bidhaa za mteja, au maombi au matumizi ya mteja/wateja wengine. Mteja ana wajibu wa kufanya majaribio yote yanayohitajika kwa ajili ya maombi na bidhaa za mteja kwa kutumia bidhaa za NXP Semiconductors ili kuepuka chaguo-msingi la programu na bidhaa au programu au matumizi ya mteja/watu wengine. NXP haikubali dhima yoyote katika suala hili.
Sheria na Masharti ya uuzaji wa kibiashara - Bidhaa za NXP Semiconductors zinauzwa kulingana na sheria na masharti ya jumla ya uuzaji wa kibiashara, kama ilivyochapishwa katika https://www.nxp.com/profile/masharti, isipokuwa ikiwa imekubaliwa vinginevyo katika makubaliano halali ya maandishi ya mtu binafsi. Ikiwa makubaliano ya mtu binafsi yamehitimishwa tu sheria na masharti ya makubaliano husika yatatumika. NXP Semiconductors inapinga waziwazi kutumia sheria na masharti ya jumla ya mteja kuhusu ununuzi wa bidhaa za NXP Semiconductors na mteja.
Udhibiti wa kuuza nje - Hati hii pamoja na bidhaa zilizoelezwa humu zinaweza kuwa chini ya kanuni za udhibiti wa usafirishaji nje. Usafirishaji unaweza kuhitaji idhini ya awali kutoka kwa mamlaka husika.
Inafaa kwa matumizi ya bidhaa zisizo za magari - Isipokuwa waraka huu unasema waziwazi kuwa bidhaa hii mahususi ya NXP Semiconductors ina sifa za ugari, bidhaa hiyo haifai kwa matumizi ya magari. Haijahitimu wala kujaribiwa kwa mujibu wa majaribio ya magari au mahitaji ya maombi. NXP Semiconductors haikubali dhima ya kujumuishwa na/au matumizi ya bidhaa zisizo za kigari zilizohitimu katika vifaa vya magari au programu.
Iwapo mteja atatumia bidhaa kwa ajili ya kubuni na kutumia katika programu za magari kwa vipimo na viwango vya magari, mteja (a) atatumia bidhaa bila dhamana ya NXP ya Semiconductors ya bidhaa kwa ajili ya maombi hayo ya magari, matumizi na vipimo, na ( b) wakati wowote mteja anapotumia bidhaa kwa ajili ya maombi ya magari zaidi ya vipimo vya NXP Semiconductors matumizi kama hayo yatakuwa kwa hatari ya mteja mwenyewe, na (c) mteja anafidia kikamilifu Semiconductors za NXP kwa dhima yoyote, uharibifu au madai ya bidhaa yaliyofeli kutokana na muundo na matumizi ya mteja. bidhaa kwa ajili ya maombi ya magari zaidi ya udhamini wa kiwango cha NXP Semiconductors na vipimo vya bidhaa vya NXP Semiconductors
machapisho ya HTML - Toleo la HTML, kama linapatikana, la waraka huu limetolewa kwa hisani. Maelezo mahususi yamo katika hati inayotumika katika umbizo la PDF. Ikiwa kuna tofauti kati ya hati ya HTML na hati ya PDF, hati ya PDF ina kipaumbele.
Tafsiri - Toleo lisilo la Kiingereza (lililotafsiriwa) la hati, pamoja na maelezo ya kisheria katika waraka huo, ni kwa ajili ya marejeleo pekee. Toleo la Kiingereza litatumika iwapo kutatokea hitilafu yoyote kati ya matoleo yaliyotafsiriwa na ya Kiingereza.
Usalama - Mteja anaelewa kuwa bidhaa zote za NXP zinaweza kuwa chini ya udhaifu usiojulikana au zinaweza kusaidia viwango vilivyowekwa vya usalama au vipimo vilivyo na vikwazo vinavyojulikana. Mteja anawajibika kwa muundo na uendeshaji wa programu na bidhaa zake katika maisha yake yote ili kupunguza athari za udhaifu huu kwenye programu na bidhaa za mteja. Wajibu wa Mteja pia unaenea hadi kwa teknolojia zingine huria na/au za umiliki zinazoungwa mkono na bidhaa za NXP kwa matumizi katika programu za mteja. NXP haikubali dhima yoyote ya athari yoyote. Mteja anapaswa kuangalia mara kwa mara masasisho ya usalama kutoka NXP na kufuatilia ipasavyo. Mteja atachagua bidhaa zilizo na vipengele vya usalama ambavyo vinakidhi vyema sheria, kanuni na viwango vya matumizi yaliyokusudiwa na kufanya maamuzi ya mwisho ya muundo kuhusu bidhaa zake na anawajibika kikamilifu kwa kufuata mahitaji yote ya kisheria, udhibiti na usalama yanayohusiana na bidhaa zake, bila kujali. habari au usaidizi wowote ambao unaweza kutolewa na NXP.
NXP ina Timu ya Kujibu Matukio ya Usalama wa Bidhaa (PSIRT) (inayoweza kufikiwa katika PSIRT@nxp.com) ambayo inadhibiti uchunguzi, kuripoti na kutolewa kwa suluhisho kwa udhaifu wa usalama wa bidhaa za NXP.
NXP BV — NXP BV si kampuni inayofanya kazi na haisambazi au kuuza bidhaa.
Leseni
Ununuzi wa NXP IC kwa teknolojia ya NFC — Ununuzi wa NXP Semiconductors IC ambayo inatii mojawapo ya viwango vya Near Field Communication (NFC) ISO/IEC 18092 na ISO/IEC 21481 haitoi leseni iliyodokezwa chini ya haki yoyote ya hataza inayokiukwa na utekelezaji wa yoyote ya viwango hivyo. Ununuzi wa NXP Semiconductors IC haijumuishi leseni ya hataza yoyote ya NXP (au IP nyingine kulia) inayojumuisha mchanganyiko wa bidhaa hizo na bidhaa nyingine, iwe maunzi au programu.
Alama za biashara
Notisi: Chapa zote zinazorejelewa, majina ya bidhaa, majina ya huduma na chapa za biashara ni mali ya wamiliki husika. NXP — neno na nembo ni alama za biashara za NXP BV I2C-bus — nembo ni chapa ya biashara ya NXP BV
Tafadhali fahamu kwamba arifa muhimu kuhusu hati hii na bidhaa/bidhaa zilizofafanuliwa hapa, zimejumuishwa katika sehemu ya 'Maelezo ya Kisheria'.
© 2024 NXP BV Haki zote zimehifadhiwa.
Kwa habari zaidi, tafadhali tembelea: https://www.nxp.com
Nyaraka / Rasilimali
![]() |
NXP PN7160 NCI Kulingana na vidhibiti vya NFC [pdf] Maagizo PN7160, PN7220, PN7160 NCI Based NFC controller, PN7160, NCI Based NFC controller, Based NFC controller, NFC controllers |