សេចក្តីណែនាំអំពីឧបករណ៍បញ្ជា NFC ផ្អែកលើ NXP PN7160
ព័ត៌មានឯកសារ
ព័ត៌មាន | មាតិកា |
ពាក្យគន្លឹះ | PN7160, PN7220, NCI, EMVCo, វេទិកា NFC, ប្រព័ន្ធប្រតិបត្តិការ Android, NFC |
អរូបី | ឯកសារនេះពិពណ៌នាអំពីរបៀបច្រក PN7160/PN7220 ការចេញផ្សាយឧបករណ៍កណ្តាលទូទៅទៅ Android 14 ។ |
មគ្គុទេសក៍នេះផ្តល់នូវការណែនាំលម្អិតអំពីរបៀបបញ្ចូលឧបករណ៍បញ្ជា NFC ដែលមានមូលដ្ឋានលើ NXP NCI, PN7160 និង PN7220 ទៅក្នុងបរិស្ថាន Android ។ ដំណើរការនេះពាក់ព័ន្ធនឹងការដំឡើងកម្មវិធីបញ្ជាខឺណែលចាំបាច់ និងការកំណត់រចនាសម្ព័ន្ធ MW (សូមមើល [1]) ។ សម្រាប់ព័ត៌មានបន្ថែម សូមមើលទំព័រផលិតផលសម្រាប់ PN7160 [2] និង PN7220 [3] ។ គម្រោងប្រភពបើកចំហរបស់ Android (AOSP) ត្រូវបានធ្វើបច្ចុប្បន្នភាពដើម្បីបញ្ចូលការគាំទ្រសម្រាប់ទាំងឧបករណ៍បញ្ជា NFC PN7160 និង PN7220 ។
PN7220 មាននៅក្នុងការកំណត់រចនាសម្ព័ន្ធពីរ៖ ម៉ាស៊ីនតែមួយ និងម៉ាស៊ីនពីរ។ ជង់ជាទូទៅគឺដូចគ្នាសម្រាប់ទាំងពីរ។ នៅក្នុងរបៀបម៉ាស៊ីនពីរ SMCU ត្រូវបានបន្ថែមដែលមានន័យថារាល់កិច្ចការដែលទាក់ទងនឹង EMVCo ត្រូវបានប្រតិបត្តិនៅលើ SMCU ។ នៅក្នុង singlehost EMVCo ត្រូវបានប្រតិបត្តិក្នុងជង់ EMVCo MW ដែលខិតខំប្រឹងប្រែង
ជង់ Android MW
រូបភាពទី 1 បង្ហាញពីស្ថាបត្យកម្មនៃ PN7220 Android NFC stack ។
- កម្មវិធីបញ្ជា NXP I2C គឺជាម៉ូឌុលខឺណែលដែលអនុញ្ញាតឱ្យចូលប្រើធនធានផ្នែករឹងរបស់ PN7220 ។
- ម៉ូឌុល HAL គឺជាការអនុវត្តនៃស្រទាប់អរូបីផ្នែករឹងជាក់លាក់របស់ឧបករណ៍បញ្ជា NXP NFC ។
- LibNfc-Nci គឺជាបណ្ណាល័យដើមដែលផ្តល់មុខងារ NFC ។
- NFC JNI ដើរតួជាស្ពានរវាងថ្នាក់ Java និង Native ។
- NFC និង EMVCo Framework គឺជាម៉ូឌុលនៃក្របខ័ណ្ឌកម្មវិធីដែលអនុញ្ញាតឱ្យចូលប្រើមុខងារ NFC និង EMVCo ។
រូបភាពទី 2 បង្ហាញពីស្ថាបត្យកម្មនៃជង់ PN7160 Android NFC ។
រូបភាពទី 2. ជង់ PN7160 Android MW
- កម្មវិធីបញ្ជា NXP I2C គឺជាម៉ូឌុលខឺណែលដែលអនុញ្ញាតឱ្យចូលប្រើធនធានផ្នែករឹងរបស់ PN7160 ។
- ម៉ូឌុល HAL គឺជាការអនុវត្តនៃស្រទាប់អរូបីផ្នែករឹងជាក់លាក់របស់ឧបករណ៍បញ្ជា NXP NFC ។
- LibNfc-nci គឺជាបណ្ណាល័យដើមដែលផ្តល់មុខងារ NFC ។
- NFC JNI ដើរតួជាស្ពានរវាងថ្នាក់ Java និង Native ។
- NFC គឺជាម៉ូឌុលនៃក្របខ័ណ្ឌកម្មវិធីដែលអនុញ្ញាតឱ្យចូលប្រើមុខងារ NFC ។
- កូដប្រភព MW គឺដូចគ្នាសម្រាប់ PN7160 និង PN7220 ប៉ុន្តែមានដែនកំណត់មួយចំនួន។
តារាងទី 1 បង្ហាញពីលក្ខណៈពិសេសដែលមិនគាំទ្រនៃឧបករណ៍បញ្ជា NFC នីមួយៗ។
តារាងទី 1. មុខងារដែលមិនគាំទ្រ
ឧបករណ៍បញ្ជា NFC | មុខងារមិនគាំទ្រ |
PN7160 |
|
PN7220 |
|
ចំណាំ៖ ចាប់ពី Android 14 តទៅ P2P ក៏មិនត្រូវបានគាំទ្រនៅលើ PN7160 ដែរ។
កម្មវិធីបញ្ជាខឺណែល។
ដើម្បីបង្កើតការតភ្ជាប់ជាមួយ PN7220 ឬ PN7160 ជង់ Android ប្រើកម្មវិធីបញ្ជាខឺណែល nxpnfc ។ វាអាចត្រូវបានរកឃើញនៅក្នុង [4] ។
ព័ត៌មានលម្អិតអំពីអ្នកបើកបរ
PN7220 គាំទ្រចំណុចប្រទាក់រូបវន្ត I2C ខណៈពេលដែល PN7160 គាំទ្រចំណុចប្រទាក់រូបវន្ត I2C ឬ SPI ។ នៅពេលដំឡើងទៅក្នុងខឺណែល អ្នកបើកបរត្រូវបានលាតត្រដាងតាមរយៈថ្នាំងឧបករណ៍នៅក្នុង /dev/nxpnfc ។
ចំណាំ៖ PN7160 និង PN7220 ប្រើកម្មវិធីបញ្ជាពីរផ្សេងគ្នា ការជ្រើសរើសកម្មវិធីបញ្ជាត្រឹមត្រូវគឺត្រូវបានទាមទារដោយផ្អែកលើប្រភេទបន្ទះឈីប។
ទទួលបានកូដប្រភពកម្មវិធីបញ្ជា PN7160
ចម្លងឃ្លាំងកម្មវិធីបញ្ជា nfcandroid_platform_drivers/drivers/pn7160/nfc ទៅក្នុងថតខឺណែល ដោយជំនួសការអនុវត្តដែលមានស្រាប់។ សូមមើល [4] សម្រាប់ខឺណែល។ files.
$rm -rf drivers/nfc
ក្លូន $git “https://github.com/nxp-nfc-infra/nfcandroid_platform_drivers.git” -b
br_ar_14_comm_infra_dev
វាបញ្ចប់ដោយ folder drivers/nfc ដែលមានដូចខាងក្រោម files:
- README.md៖ ព័ត៌មានឃ្លាំង
- ធ្វើfile៖ ក្បាលអ្នកបើកបរធ្វើឱ្យfile
- Kconfig៖ ការកំណត់រចនាសម្ព័ន្ធកម្មវិធីបញ្ជា file
- អាជ្ញាប័ណ្ណ៖ លក្ខខណ្ឌអាជ្ញាប័ណ្ណអ្នកបើកបរ
- ថតរង nfc ដែលមាន៖
- commoc.c: ការអនុវត្តកម្មវិធីបញ្ជាទូទៅ
- common.h: និយមន័យចំណុចប្រទាក់កម្មវិធីបញ្ជាទូទៅ
- i2c_drv.c: ការអនុវត្តកម្មវិធីបញ្ជាជាក់លាក់ i2c
- – i2c_drv.h: i2c និយមន័យចំណុចប្រទាក់កម្មវិធីបញ្ជាជាក់លាក់
- spi_drv.c: ការអនុវត្តកម្មវិធីបញ្ជាជាក់លាក់ spi
- spi_drv.h៖ និយមន័យចំណុចប្រទាក់កម្មវិធីបញ្ជាជាក់លាក់ spi
- ធ្វើfile៖ ធ្វើfile ដែលត្រូវបានរួមបញ្ចូលនៅក្នុងការបង្កើតfile របស់អ្នកបើកបរ
- Kbuild => ស្ថាបនា file
- Kconfig => ការកំណត់រចនាសម្ព័ន្ធកម្មវិធីបញ្ជា file
ទទួលបានកូដប្រភពកម្មវិធីបញ្ជា PN7220
ចម្លង nfcandroid_platform_drivers/drivers/pn7220cs/nfc (single-host usecase) ឬ nfcandroid_platform_ drivers/drivers/pn7220cms/nfc (dual-host usecase) ទៅក្នុង kernel directory drivers/nfc. ជំនួសកម្មវិធីបញ្ជាដែលមានស្រាប់។ សូមមើល [4] សម្រាប់ខឺណែល។ files.
$rm -rf drivers/nfc$git ក្លូន “https://github.com/nxp-nfc-infra/nfcandroid_platform_drivers.git” -bbr_ar_14_comm_infra_dev
ដោយធ្វើតាមពាក្យបញ្ជានេះ folder drivers/nfc មានដូចខាងក្រោម files:
- README.md៖ ព័ត៌មានឃ្លាំង
- ធ្វើfile៖ ក្បាលអ្នកបើកបរធ្វើឱ្យfile
- Kconfig៖ ការកំណត់រចនាសម្ព័ន្ធកម្មវិធីបញ្ជា file
- អាជ្ញាប័ណ្ណ៖ លក្ខខណ្ឌអាជ្ញាប័ណ្ណអ្នកបើកបរ
- ថតរង nfc ដែលមាន៖
- commoc.c: ការអនុវត្តកម្មវិធីបញ្ជាទូទៅ
- common.h: និយមន័យចំណុចប្រទាក់កម្មវិធីបញ្ជាទូទៅ
- i2c_drv.c: i2 c ការអនុវត្តកម្មវិធីបញ្ជាជាក់លាក់
- i2c_drv.h: i2 c និយមន័យចំណុចប្រទាក់កម្មវិធីបញ្ជាជាក់លាក់
- ធ្វើfile៖ ធ្វើfile ដែលត្រូវបានរួមបញ្ចូលនៅក្នុងការបង្កើតfile របស់អ្នកបើកបរ
- Kbuild => ស្ថាបនា file
- Kconfig => ការកំណត់រចនាសម្ព័ន្ធកម្មវិធីបញ្ជា file
ការកសាងអ្នកបើកបរ
devicetree ទទួលខុសត្រូវចំពោះការបន្ថែមកម្មវិធីបញ្ជាទៅខឺណែល ហើយផ្ទុកវានៅពេលចាប់ផ្ដើមឧបករណ៍។
បន្ទាប់ពីការអាប់ដេតការបញ្ជាក់ devicetree នោះ devicetree ដែលទាក់ទងនឹង platform ត្រូវតែត្រូវបានសាងសង់ឡើងវិញ។ NXP ណែនាំឱ្យប្រើខឺណែលកំណែ 5.10 ព្រោះវាផ្តល់សុពលភាពយ៉ាងទូលំទូលាយ។
ដើម្បីបង្កើតកម្មវិធីបញ្ជា ជំហានខាងក្រោមត្រូវធ្វើ៖
- ទទួលបានកម្មវិធីបញ្ជាខឺណែល។
- ទទួលបានកូដប្រភពសម្រាប់អ្នកបើកបរ
- កែប្រែនិយមន័យរបស់ devicetree ដែលមានលក្ខណៈប្លែកពីឧបករណ៍ដែលកំពុងប្រើប្រាស់។
- បង្កើតអ្នកបើកបរ៖
ក. តាមរយៈនីតិវិធី menuconfig បន្ថែមកម្មវិធីបញ្ជាគោលដៅទៅក្នុង build ។
បន្ទាប់ពីបង្កើតខឺណែលដែលបានបញ្ចប់ឡើងវិញ កម្មវិធីបញ្ជានឹងត្រូវបានបញ្ចូលក្នុងរូបភាពខឺណែល។ រូបភាពខឺណែលថ្មីទាំងអស់ត្រូវតែចម្លងទៅក្នុង AOSP build។
ការសម្របសម្រួល AOSP
NXP បន្ថែមការកែប្រែទៅកូដ AOSP ។ នេះមានន័យថាលេខកូដ AOSP ត្រូវបានប្រើជាមូលដ្ឋានគ្រឹះ ប៉ុន្តែត្រូវបានពង្រីកសម្រាប់លក្ខណៈពិសេសជាក់លាក់របស់ NXP ។ [5] គឺជា AOSP បច្ចុប្បន្ន tag ប្រើដោយ NXP ។ បន្ទាប់ពីទទួលបាន AOSP build លេខកូដ AOSP ដែលមានស្រាប់ត្រូវតែត្រូវបានជំនួស ហើយបំណះមួយចំនួនត្រូវតែអនុវត្ត។
ចំណាំ៖ កំណែផ្សេងគ្នានៃកូដ AOSP អាចត្រូវបានប្រើ ប៉ុន្តែការកែប្រែបន្ថែមត្រូវតែត្រូវបានអនុវត្ត។
ការបង្កើត AOSP
ទទួលបានកូដប្រភព AOSP ។
$repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r2 $ repo sync
ចំណាំ៖ ឧបករណ៍ repo ត្រូវតែត្រូវបានដំឡើងនៅលើប្រព័ន្ធ។ សូមមើល [6] សម្រាប់ការណែនាំ។
បង្កើតកូដប្រភព។
$cd Android_AROOT
$source build/envsetup.sh
$lunch select_target #target គឺ DH ដែលយើងចង់ប្រើសម្រាប់អតីតample: evk_8mn-userdebug
$ បង្កើត -j
ចម្លងឃ្លាំង NXP ទាំងអស់ទៅក្នុងទីតាំងគោលដៅ។
តារាង 2 ។ សាខាសម្រាប់កំណែ Android ជាក់លាក់
កំណែ Android | សាខា |
ប្រព័ន្ធប្រតិបត្តិការ Android 14 | br_ar_14_comm_infra_dev |
ចំណាំ៖ ខណៈពេលដែលក្លូនវាមានសារៈសំខាន់ក្នុងការជ្រើសរើសសាខាត្រឹមត្រូវ។
តារាងទី 3. ឃ្លាំងក្លូន
AOSP Repos | NXP GitHub Repos |
“$ANDROID_ROOT”/កញ្ចប់/ កម្មវិធី/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”/ផ្នែករឹង/ nxp/nfc | https://github.com/nxp-nfc-infra/nfcandroid_nfc_hidlimpl/tree/br_ar_14_comm_infra_dev |
“$ANDROID_ROOT”/vendor/nxp/ ក្របខ័ណ្ឌ | https://github.com/nxp-nfc-infra/nfcandroid_frameworks/tree/br_ar_14_comm_infra_dev |
“$ANDROID_ROOT”/ផ្នែករឹង/ 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 |
តារាងទី 4. ឃ្លាំងក្លូនសម្រាប់កម្មវិធីសាកល្បង និងការគាំទ្រ TDA
ថតឯកសារនៅក្នុង GitHub | AOSP Repos | NXP GitHub | IC គាំទ្រ |
test_apps/SMCU_Switch | “$ANDROID_ROOT”/
កញ្ចប់/កម្មវិធី/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/EMVCoMode SwitchApp | “$ANDROID_ROOT”/
កញ្ចប់/កម្មវិធី/Nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/Cockpit | “$ANDROID_ROOT”/
ផ្នែករឹង/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/តេស្តខ្លួនឯង | “$ANDROID_ROOT”/
ផ្នែករឹង/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/SelfTest_pn7160 | “$ANDROID_ROOT”/
ផ្នែករឹង/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7160 |
test_apps/load_unload | “$ANDROID_ROOT”/
ផ្នែករឹង/nxp/nfc/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
test_apps/SelfTestAidl | “$ANDROID_ROOT”/
ផ្នែករឹង/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”/
ផ្នែករឹង/nxp/emvco/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
emvco_tda_test | “$ANDROID_ROOT”/
ផ្នែករឹង/nxp/emvco/ |
https://github.com/ nxp-nfc-infra/ | PN7220 |
NfcTdaTestApp | “$ANDROID_ROOT”/
កញ្ចប់/កម្មវិធី/Nfc/ |
https://github.com/ nxp-nfc-infra/nfcandroid_infra_comm_libs | PN7220 |
អនុវត្តបំណះ
តារាង 5. អនុវត្តបំណះ
ចំណាំ៖ ពិនិត្យលទ្ធផលបន្ទាប់ពីអនុវត្តបំណះ ប្រសិនបើបញ្ហាណាមួយត្រូវបានគេសង្កេតឃើញក្នុងអំឡុងពេលបំណះ។
បន្ថែមបណ្ណាល័យ FW ។ សូមមើល [8] សម្រាប់ FW ។
ចំណាំ៖ មិនចាំបាច់ទេ។ FW អាចធ្វើបច្ចុប្បន្នភាពជានិច្ច។
សម្រាប់ PN7160៖
ក្លូន $git https://github.com/NXP/nfc-NXPNFCC_FW.git
$cp -r nfc-NXPNFCC_FW/InfraFW/pn7220/64-bit/libpn7160_fw.so AROOT/អ្នកលក់/
nxp/7160/firmware/lib64/libpn7160_fw.so
$cp -r nfc-NXPNFCC_FW/InfraFW/pn7220/32-bit/libpn7160_fw.so AROOT/អ្នកលក់/
nxp/7160/firmware/lib/libpn7160_fw.so
សម្រាប់ PN7220៖
ក្លូន $git 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
ការបន្ថែម NFC ទៅក្នុងការបង្កើត
នៅក្នុង device.mk ធ្វើfile (សម្រាប់ឧample, device/brand/platform/device.mk), រួមបញ្ចូលការបង្កើតជាក់លាក់files:
$(ហៅមរតក-ផលិតផល, អ្នកលក់/nxp/nfc/device-nfc.mk)
នៅក្នុង BoardConfig.mk បង្កើតfile (សម្រាប់ឧample, device/brand/platform/BoardConfig.mk), រួមបញ្ចូលការបង្កើតជាក់លាក់មួយ។file:
-រួមបញ្ចូលអ្នកលក់/nxp/nfc/BoardConfigNfc.mk
ការបន្ថែមកម្មវិធី DTA
ក្លូន $git https://github.com/NXPNFCProject/NXPAndroidDTA.git $patch -p1 nfc-dta.patch #located in 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
បង្កើត AOSP ជាមួយនឹងការផ្លាស់ប្តូរ៖
$cd framework/base
$mm
$cd ../..
$cd vendor/nxp/frameworks
$mm #បន្ទាប់ពីមួយនេះ com.nxp.emvco.jar និង com.nxp.nfc.jar គួរតែស្ថិតនៅខាងក្រៅ/
គោលដៅ/ផលិតផល/xxxx/system/framwework/
$cd ../../..
$cd hardware/nxp/nfc
$mm
$cd ../../..
$ បង្កើត -j
ឥឡូវនេះ សូមបញ្ចេញពន្លឺឧបករណ៍ជាមួយនឹងរូបភាព Android ថ្មី។
កម្មវិធី Android NFC និង Lib នៅលើគោលដៅ
បន្ទាប់ពីការស្ថាបនា បណ្ណាល័យដែលបានបង្កើតត្រូវតែត្រូវបានដំឡើងនៅលើឧបករណ៍គោលដៅ។ ផ្នែកទី 4.2 បញ្ជាក់ទីតាំងគម្រោង បណ្ណាល័យដែលត្រូវគ្នា និងទីតាំងឧបករណ៍គោលដៅដែលត្រូវដំឡើង។
ចំណាំ៖ ប្រព័ន្ធគោលពីរ EMVCo អាចអនុវត្តបានតែជាមួយ PN7220 ប៉ុណ្ណោះ។
តារាងទី 6. ចងក្រង files ជាមួយនឹងគោលដៅឧបករណ៍
ទីតាំងគម្រោង | ចងក្រង Files | មតិយោបល់ | ទីតាំងនៅក្នុងឧបករណ៍គោលដៅ |
“$ANDROID_ROOT”/
កញ្ចប់/កម្មវិធី/Nfc |
NfcNci.odex NfcNci.vdex lib/NfcNci.apk oat/libnfc_nci_jni.so | /system/app/NfcNci/ oat/arm64/
/system/app/NfcNci/ oat/arm64/ /system/app/NfcNci/ /system/lib64/ |
|
“$ANDROID_ROOT”/
ប្រព័ន្ធ/nfc |
libnfc_nci.so | /system/lib64/ | |
“$ANDROID_ROOT”/
ប្រព័ន្ធ/nfc_tda” |
nfc_tda.so | អនុវត្តសម្រាប់តែមុខងារ CT ប៉ុណ្ណោះ។ | /system/lib64/ |
“$ANDROID_ROOT”/
ផ្នែករឹង/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 អ្នកលក់.nxp.nxpnfc@2.0.so អ្នកលក់.nxp.nxpnfc@1.0.so | /vendor/lib64
/vendor/bin/hw/ /vendor/etc/init /system/lib64/ /system/lib64/ /system/lib64/ /អ្នកលក់/lib64/ /អ្នកលក់/lib64/ |
|
“$ANDROID_ROOT/
ផ្នែករឹង/ចំណុចប្រទាក់/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/ /អ្នកលក់/lib64/ /អ្នកលក់/lib64/ /អ្នកលក់/lib64/ |
|
“$ANDROID_ROOT”/
អ្នកលក់/nxp/frameworks |
com.nxp.emvco.jar (PN7220) com.nxp.nfc.jar | / ប្រព័ន្ធ / ក្របខ័ណ្ឌ
/ ប្រព័ន្ធ / ក្របខ័ណ្ឌ |
|
“$ANDROID_ROOT”/
ផ្នែករឹង/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 | /អ្នកលក់/lib64/
/system/lib64/ /system/lib64/ /អ្នកលក់/lib64/ /vendor/bin/hw/ /អ្នកលក់/etc/init/ |
|
“$ANDROID_ROOT/
ផ្នែករឹង/nxp/emvco_tda” |
emvco_tda.so | អនុវត្តសម្រាប់តែមុខងារ CT ប៉ុណ្ណោះ។ | /អ្នកលក់/lib64/ |
រារាំងការធ្វើផែនទី
ការគូសផែនទីឈ្មោះប្លុកពីផ្នែកទី 1 ទៅទីតាំងគោលដៅនៅក្នុងកូដ AOSP ។
តារាង 7. ទីតាំងបំណះនៅក្នុង NFC Stack
ឈ្មោះប្លុក | ទីតាំងនៅក្នុងលេខកូដ AOSP |
NFC HAL និង EMVCo HAL | ផ្នែករឹង/ចំណុចប្រទាក់/ |
ជង់ NFC | ផ្នែករឹង/nxp/nfc/ |
ស្រទាប់ផ្លាស់ប្តូរទិន្នន័យ EMVCo L1 = ជង់ EMVCo | ផ្នែករឹង/nxp/emvco/ |
LibNfc-Nci | ប្រព័ន្ធ/nfc/ |
NFC JNI | កញ្ចប់/កម្មវិធី/nfc/ |
សេវា NFC | កញ្ចប់/កម្មវិធី/nfc/ |
ក្របខ័ណ្ឌ NFC | ក្របខ័ណ្ឌ/មូលដ្ឋាន/ |
ក្របខ័ណ្ឌ EMVCo | អ្នកលក់/nxp/frameworks/ |
EMVCo AP
ជង់ PN7220 MW ពង្រីកកូដ AOSP ជាមួយជង់ EMVCo MW ។ ផ្នែកនេះពិពណ៌នាអំពី EMVCo APIs ។
ចំណាំ៖ API អាចត្រូវបានហៅតែពេលប្រើ PN7220 IC ប៉ុណ្ណោះ។ ប្រសិនបើហៅវាជាមួយ PN7160 IC នោះ API មិនដំណើរការទេ។ EMVCo Profile ការរកឃើញ។ APIs ទាំងនោះអាចប្រើជាមួយ contactless និង contactless profiles.
ចុះឈ្មោះEMVCoEventListener()
- ndk::ScopedAStatus registerEMVCoEventListener ( const std::shared_ptr< INxpEmvcoClientCallback > & in_clientCallback, bool * in_aidl_return)
- ការពិពណ៌នា៖ ចុះឈ្មោះមុខងារហៅត្រឡប់ EMVCo ដើម្បីទទួលបានព្រឹត្តិការណ៍ពីឧបករណ៍ស្តាប់
- ចំណាំ៖ មុខងារនេះត្រូវតែដាក់បាល់ មុនពេលហៅ api ផ្សេងទៀត។
- ប៉ារ៉ាម៉ែត្រ៖
- [in] *in_clientCallback៖ មាន EMVCo client HAL callback
- [in] *in_aidl_return៖ បង្ហាញពីស្ថានភាពចុះឈ្មោះក្នុងការត្រឡប់ទៅអ្នកហៅចូល
- ត្រឡប់មកវិញ
- boolean ត្រឡប់ពិត ប្រសិនបើជោគជ័យ និងត្រឡប់មិនពិត ប្រសិនបើបរាជ័យក្នុងការចុះឈ្មោះ
ទទួលបានមុខងារ Discovery បច្ចុប្បន្ន ()
- ndk::ScopedAStatus getCurrentDiscoveryMode(::aidl::vendor::nxp::emvco::NxpDiscoveryMode * _aidl_return)
- ការពិពណ៌នា៖ ត្រឡប់ប្រូសកម្មបច្ចុប្បន្នfile ប្រភេទ។
- ត្រឡប់មកវិញ
- NxpDiscoveryMode – NFC/EMVCo/មិនស្គាល់
onNfcStateChange()
- ndk::ScopedAStatus onNfcStateChange(NxpNfcState in_nfcState)
- ការពិពណ៌នា៖ បានធ្វើបច្ចុប្បន្នភាពស្ថានភាព NFC ទៅ EMVCo HAL ។
- ប៉ារ៉ាម៉ែត្រ៖
- [in] in_nfcState៖ បញ្ជាក់ស្ថានភាព NFC
- ត្រឡប់៖
- ទុកជាមោឃៈ
ចុះឈ្មោះNFCStateChangeCallback()
- ndk::ScopedAStatus registerNFCStateChangeCallback ( const std::shared_ptr< ::aidl::vendor::nxp::emvco::INxpNfcStateChangeRequestCallback > & in_nfcStateChangeRequestCallback, bool * _aidl
- ការពិពណ៌នា៖ ចុះឈ្មោះមុខងារហៅត្រឡប់ NFC ដើម្បីទទួលបានព្រឹត្តិការណ៍ពីឧបករណ៍ស្តាប់។
- ចំណាំ៖ មុខងារនេះត្រូវតែហៅមុនពេលហៅ api ផ្សេងទៀត។
- ប៉ារ៉ាម៉ែត្រ៖
- [in] in_nfcStateChangeCallback: INxpNfcStateChangeRequestCallback មុខងារ callback ព្រឹត្តិការណ៍ដែលត្រូវឆ្លងកាត់ដោយអ្នកហៅចូល។ វាគួរតែអនុវត្តដើម្បីបើក/បិទ NFC ដោយផ្អែកលើសំណើដែលបានទទួល។
- ត្រឡប់៖ boolean ត្រឡប់ពិត ប្រសិនបើជោគជ័យ និងត្រឡប់មិនពិត ប្រសិនបើបរាជ័យក្នុងការចុះឈ្មោះ។
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 )
- ការពិពណ៌នា៖ ចាប់ផ្តើមរបៀប EMVCo ជាមួយឧបករណ៍បញ្ជាឧបករណ៍។ នៅពេលដែលបណ្តាញទិន្នន័យកម្មវិធីត្រូវបានបង្កើតឡើង កម្មវិធីអាចផ្ញើការចាប់ផ្តើមរបៀប EMVCo ជាមួយឧបករណ៍បញ្ជាឧបករណ៍។
- ប៉ារ៉ាម៉ែត្រ៖
- [in] in_disc_mask EMVCo៖ បច្ចេកវិទ្យាបោះឆ្នោតត្រូវបានកំណត់រចនាសម្ព័ន្ធតាមរយៈប៉ារ៉ាម៉ែត្រនេះ
- [in]in_isStartEMVCo៖ បញ្ជាក់ដើម្បីចាប់ផ្តើម ឬបញ្ឈប់របៀប EMVCo
- ត្រឡប់៖
- ទុកជាមោឃៈ
setLed()
ndk::ScopedAStatus setLed ( ::aidl::vendor::nxp::emvco::NxpLedControl
in_ledControl,
::aidl::vendor::nxp::emvco::NxpEmvcoStatus * emvco_status)
សម្រាប់ទំនាក់ទំនង EMVCo APIs ខាងក្រោមអាចត្រូវបានប្រើនៅលើកំពូលនៃកម្មវិធីមុនៗ។
closeTDA()
ndk::ScopedAStatus closeTDA (int8_t in_tdaID, bool in_standBy)
- ការពិពណ៌នា៖ បិទកាតឆ្លាតវៃដែលភ្ជាប់តាមរយៈ TDA
- ប៉ារ៉ាម៉ែត្រ៖
- [ក្នុង] tdaID៖ លេខសម្គាល់នៃរន្ធដោត tda ដែលត្រូវបិទ
- ករណីលើកលែង៖
- EMVCO_STATUS_INVALID_PARAMETER ប្រសិនបើបានផ្តល់ tdaID មិនត្រឹមត្រូវ
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED នៅពេលដែលមុខងារកាតទំនាក់ទំនងមិនត្រូវបានគាំទ្រ។
- ត្រឡប់៖
- ទុកជាមោឃៈ
រកឃើញTDA()
ndk::ScopedAStatus discoverTDA
( std::vector<::aidl::vendor::nxp::emvco::NxpEmvcoTDAIInfo > * emvcoTDAIinfo )
ការពិពណ៌នា៖ discoverTDA ផ្តល់ព័ត៌មានលម្អិតទាំងអស់នៃកាតឆ្លាតវៃដែលភ្ជាប់តាមរយៈ TDA
- ប៉ារ៉ាម៉ែត្រ៖
- [in]*in_clientCallback៖ ផ្តល់ស្ថានភាព EMVCo និង TDA ជាការហៅត្រឡប់មកវិញ
- ករណីលើកលែង៖
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED នៅពេលដែលមុខងារកាតទំនាក់ទំនងមិនត្រូវបានគាំទ្រ។
- ត្រឡប់៖
- NxpEmvcoTDAinfo[] ត្រឡប់កាតឆ្លាតវៃទាំងអស់ដែលបានភ្ជាប់តាមរយៈ TDA ។ emvcoTDAIInfo ត្រឹមត្រូវត្រូវបានទទួលតែនៅពេលដែលស្ថានភាពគឺ EMVCO_STATUS_OK ប៉ុណ្ណោះ។
openTDA()
ndk::ScopedAStatus openTDA (int8_t in_tdaID, bool in_standBy, int8_t * out_connID)
ការពិពណ៌នា៖ បើកកាតឆ្លាតវៃដែលភ្ជាប់តាមរយៈ TDA
- ប៉ារ៉ាម៉ែត្រ៖
- [in]tdaID៖ tda id នៃ smart card ដែលបានទទួលតាមរយៈ discoverTDA
- ករណីលើកលែង៖
- EMVCO_STATUS_INVALID_PARAMETER ប្រសិនបើបានផ្តល់ tdaID មិនត្រឹមត្រូវ
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED នៅពេលដែលមុខងារកាតទំនាក់ទំនងមិនត្រូវបានគាំទ្រ។
- ត្រឡប់៖
- byte ត្រឡប់លេខសម្គាល់ការតភ្ជាប់នៃកាតឆ្លាតវៃ។ លេខសម្គាល់ការតភ្ជាប់ត្រឹមត្រូវបានទទួលតែនៅពេលដែលស្ថានភាពគឺ EMVCO_STATUS_OK
ចុះឈ្មោះEMVCoCTListener()
ndk::ScopedAStatus registerEMVCoCTListener ( const std::shared_ptr<::aidl::vendor::nxp::emvco::INxpEmvcoTDACallback > & in_in_clientCallback, bool * _aidl_return)
- ការពិពណ៌នា៖ ចុះឈ្មោះ EMVCoCT ហៅត្រឡប់ទៅជង់ EMVCo
- ប៉ារ៉ាម៉ែត្រ៖
- [in]*in_in_clientCallback៖ ផ្តល់ស្ថានភាព EMVCo និង TDA ជាការហៅត្រឡប់មកវិញ
- ត្រឡប់៖
- ទុកជាមោឃៈ
transceive()
ndk::ScopedAStatus transceive ( const std::vector< uint8_t > & in_cmd_data, std::vector< uint8_t > * out_rsp_data )
- ការពិពណ៌នា៖ ផ្ញើទិន្នន័យកម្មវិធីជាមួយឧបករណ៍បញ្ជាឧបករណ៍ និងទទួលទិន្នន័យឆ្លើយតបពីឧបករណ៍បញ្ជា
- ចំណាំ៖ លេខសម្គាល់ការតភ្ជាប់នៃ TDA គួរតែត្រូវបានបន្ថែមជាផ្នែកមួយនៃបឋមកថា NCI ។
- ប៉ារ៉ាម៉ែត្រ៖
- [in]in_cmd_data៖ សតិបណ្ដោះអាសន្នទិន្នន័យពាក្យបញ្ជាកម្មវិធី
- ករណីលើកលែង៖
- EMVCO_STATUS_INVALID_PARAMETER ប្រសិនបើលេខសម្គាល់ការតភ្ជាប់ដែលបានផ្តល់មិនត្រឹមត្រូវ
- EMVCO_STATUS_FEATURE_NOT_SUPPORTED នៅពេលដែលមុខងារកាតទំនាក់ទំនងមិនត្រូវបានគាំទ្រ។
- ត្រឡប់៖
- ការឆ្លើយតប APDU បានទទួលពីឧបករណ៍បញ្ជា។ ការឆ្លើយតបត្រឹមត្រូវ APDU បានទទួលតែនៅពេលដែលស្ថានភាពគឺ EMVCO_STATUS_OK ប៉ុណ្ណោះ។
សម្រាប់ EMVCo contactless APIs ខាងក្រោមអាចត្រូវបានគេហៅថា៖
ចុះឈ្មោះEMVCoEventListener()
ndk::ScopedAStatus registerEMVCoEventListener ( const std::shared_ptr< INxpEmvcoClientCallback > & in_clientCallback, bool * _aidl_return )
- ការពិពណ៌នា៖ ចុះឈ្មោះមុខងារហៅត្រឡប់ EMVCo ដើម្បីទទួលបានព្រឹត្តិការណ៍ពីឧបករណ៍ស្តាប់។
- ចំណាំ៖ មុខងារនេះត្រូវតែហៅមុនពេលហៅ api ផ្សេងទៀត។
- ប៉ារ៉ាម៉ែត្រ៖
- [in]*in_clientCallback៖ មាន EMVCo client HAL callback
- [in]*in_aidl_return៖ បង្ហាញពីស្ថានភាពចុះឈ្មោះត្រឡប់ទៅអ្នកហៅទូរសព្ទ
- ត្រឡប់៖
- boolean ត្រឡប់ពិត ប្រសិនបើជោគជ័យ និងត្រឡប់មិនពិត ប្រសិនបើបរាជ័យក្នុងការចុះឈ្មោះ
setEMVCoMode()
ndk::ScopedAStatus setEMVCoMode ( int8_t in_config, bool in_isStartEMVCo )
- ការពិពណ៌នា៖ ចាប់ផ្តើមរបៀប EMVCo ជាមួយឧបករណ៍បញ្ជាឧបករណ៍។ នៅពេលដែលបណ្តាញទិន្នន័យកម្មវិធីត្រូវបានបង្កើតឡើង កម្មវិធីអាចផ្ញើការចាប់ផ្តើមរបៀប EMVCo ជាមួយឧបករណ៍បញ្ជាឧបករណ៍។
- ប៉ារ៉ាម៉ែត្រ៖
- [in]in_config៖ បច្ចេកវិទ្យាបោះឆ្នោត EMVCo ត្រូវបានកំណត់រចនាសម្ព័ន្ធតាមរយៈប៉ារ៉ាម៉ែត្រនេះ
- [in]in_isStartEMVCo៖ បញ្ជាក់ដើម្បីចាប់ផ្តើម ឬបញ្ឈប់របៀប EMVCo
- ត្រឡប់៖
- ទុកជាមោឃៈ
StopRFDisovery()
ndk::ScopedAStatus stopRFDisovery
( ::aidl::vendor::nxp::emvco::NxpDeactivationType in_deactivationType, ::aidl::vendor::nxp::emvco::NxpEmvcoStatus * emvco_status )
- ការពិពណ៌នា៖ បញ្ឈប់វាល RF ហើយផ្លាស់ទីទៅក្នុងស្ថានភាពបិទដំណើរការដែលបានបញ្ជាក់។
- ប៉ារ៉ាម៉ែត្រ៖
- [in]in_deactivationType៖ បញ្ជាក់ស្ថានភាពដែលនឹងស្ថិតនៅក្រោយការបិទ RF
- ត្រឡប់៖
- NxpEmvcoStatus ត្រឡប់ EMVCO_STATUS_OK ប្រសិនបើពាក្យបញ្ជាដំណើរការដោយជោគជ័យ ហើយត្រឡប់ EMVCO_STATUS_FAILED ប្រសិនបើពាក្យបញ្ជាមិនត្រូវបានដំណើរការដោយសារស្ថានភាពមិនត្រឹមត្រូវ។ របៀប EMVCo គួរតែបើក ដើម្បីហៅ API នេះ។
transceive()
ndk::ScopedAStatus transceive ( const std::vector< uint8_t > & in_data, int32_t * _aidl_return )
- ការពិពណ៌នា៖ ផ្ញើទិន្នន័យកម្មវិធីជាមួយឧបករណ៍បញ្ជាឧបករណ៍។
- ចំណាំ៖ ក្នុងករណីប្រសិនបើការផ្ញើទិន្នន័យត្រូវបានបរាជ័យ កម្មវិធីនឹងហៅម្តងទៀត open() មុនពេលហៅ API នេះ។
- ប៉ារ៉ាម៉ែត្រ៖
- (in]in_data៖ សតិបណ្ដោះអាសន្នទិន្នន័យកម្មវិធី
- ត្រឡប់៖
- NxpEmvcoStatus បង្ហាញពីស្ថានភាពប្រតិបត្តិ
ការកំណត់រចនាសម្ព័ន្ធ files PN7160
សម្រាប់ PN7160 មានការកំណត់ពីរផ្សេងគ្នា files.
- libnfc-nci.conf
- libnfc-nxp.conf
ចំណាំ៖ ការកំណត់រចនាសម្ព័ន្ធ files ដែលផ្តល់ដោយ NXP គឺឧamples ទាក់ទងនឹងបន្ទះបង្ហាញឧបករណ៍បញ្ជា NFC ។ ទាំងនេះ files ត្រូវតែត្រូវបានអនុម័តដោយយោងទៅតាមការរួមបញ្ចូលគោលដៅ។
ការកំណត់រចនាសម្ព័ន្ធ files ត្រូវតែដាក់នៅក្នុងទីតាំងគោលដៅ (សូមមើលតារាងទី 8) ។
តារាងទី 8. ទីតាំងនៃការកំណត់រចនាសម្ព័ន្ធ files
ឈ្មោះនៃការកំណត់រចនាសម្ព័ន្ធ file | ទីតាំងនៅក្នុងឧបករណ៍ |
libnfc-nci.conf | ប្រព័ន្ធ / ល |
libnfc-nxp.conf | អ្នកលក់/ល។ |
ដើម្បីទទួលបានព័ត៌មានបន្ថែមអំពីការកំណត់រចនាសម្ព័ន្ធ files សូមមើល [9] ។
ការកំណត់រចនាសម្ព័ន្ធ files PN7220
សម្រាប់ PN7220 មានការកំណត់រចនាសម្ព័ន្ធប្រាំផ្សេងគ្នា files.
- libemvco-nxp.conf
- libnfc-nci.conf
- libnfc-nxp.conf
- libnfc-nxp-eeprom.conf
- libnfc-nxp-rfExt.conf
ចំណាំ៖ ការកំណត់រចនាសម្ព័ន្ធ files ដែលផ្តល់ដោយ NXP គឺឧamples ទាក់ទងនឹងបន្ទះបង្ហាញឧបករណ៍បញ្ជា NFC ។ ទាំងនេះ files ត្រូវតែត្រូវបានអនុម័តដោយយោងទៅតាមការរួមបញ្ចូលគោលដៅ
ការកំណត់រចនាសម្ព័ន្ធ files ចាំបាច់ត្រូវដាក់នៅទីតាំងគោលដៅ (សូមមើលតារាងទី 9) ។
តារាងទី 9. ទីតាំងនៃការកំណត់រចនាសម្ព័ន្ធ files
ឈ្មោះនៃការកំណត់រចនាសម្ព័ន្ធ file | ទីតាំងនៅក្នុងឧបករណ៍ |
libemvco-nxp.conf | អ្នកលក់/ល។ |
libnfc-nci.conf | ប្រព័ន្ធ / ល |
libnfc-nxp.conf | អ្នកលក់/ល។ |
libnfc-nxp-eeprom.conf | អ្នកលក់/ល។ |
libnfc-nxprfExt.conf | អ្នកលក់/ល។ |
ដើម្បីទទួលបានព័ត៌មានបន្ថែមអំពីការកំណត់រចនាសម្ព័ន្ធ files សូមមើល [9] ។
កម្មវិធី DTA
ដើម្បីអនុញ្ញាតឱ្យធ្វើតេស្តវិញ្ញាបនប័ត្រវេទិកា NFC កម្មវិធីសាកល្បងឧបករណ៍ត្រូវបានផ្តល់ជូន។ វាត្រូវបានផ្សំឡើងដោយសមាសធាតុជាច្រើននៅក្នុងស្រទាប់ Android ផ្សេងៗគ្នា ដែលត្រូវតែបង្កើត និងរួមបញ្ចូលនៅក្នុងរូបភាព Android ។
ដើម្បីជំរុញកម្មវិធី DTA ជំហានខាងក្រោមត្រូវតែអនុវត្ត៖
- ចម្លង DTA ទាំងអស់។ files ទៅទីតាំងមួយ។
$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 - រុញប្រព័ន្ធគោលពីរទៅឧបករណ៍ដូចខាងក្រោម
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 ជំរុញ NxpDTA.apk /system/app/NxpDTA/
បន្ទាប់ពីបង្ហាញគោលដៅ កម្មវិធី DTA គួរតែមានវត្តមាននៅក្នុងបញ្ជីកម្មវិធីដែលបានដំឡើង។ សូមមើល [7] សម្រាប់ការពិពណ៌នាលម្អិតអំពីរបៀបប្រើកម្មវិធី។
អក្សរកាត់
តារាង 10. អក្សរកាត់
អក្សរកាត់ | ការពិពណ៌នា |
APDU | ឯកតាទិន្នន័យពិធីការកម្មវិធី |
AOSP | គម្រោងប្រភពបើកចំហរបស់ Android |
DH | ម៉ាស៊ីនឧបករណ៍ |
ហាល | ស្រទាប់អរូបីផ្នែករឹង |
FW | កម្មវិធីបង្កប់ |
I2C | សៀគ្វីរួមបញ្ចូលគ្នាអន្តរ |
LPCD | ការរកឃើញកាតដែលមានថាមពលទាប |
NCI | ចំណុចប្រទាក់ឧបករណ៍បញ្ជា NFC |
ប្រព័ន្ធ NFC | នៅជិតវាលគមនាគមន៍ |
MW | ឧបករណ៍កណ្តាល |
PLL | រង្វិលជុំចាក់សោដំណាក់កាល |
P2P | peer to peer |
RF | ប្រេកង់វិទ្យុ |
អេសឌីអេ | ទិន្នន័យសៀរៀល |
SMCU | microcontroller សុវត្ថិភាព |
SW | កម្មវិធី |
ឯកសារយោង
- ឃ្លាំង GitHub - PN7160 និង PN7220 MW ទូទៅ៖ (តំណ)
- Web ទំព័រ – PN7160 – ឧបករណ៍បញ្ជា NFC Plug and Play ជាមួយនឹងកម្មវិធីបង្កប់រួមបញ្ចូលគ្នា និងចំណុចប្រទាក់ NCI (តំណ)
- Web ទំព័រ – PN7220 – EMV L1 អនុលោមតាមឧបករណ៍បញ្ជា NFC ជាមួយនឹងចំណុចប្រទាក់ NCI គាំទ្រ EMV និងកម្មវិធីវេទិកា NFC (តំណ)
- ឃ្លាំង GitHub - កម្មវិធីបញ្ជាខឺណែល PN7160 និង PN7220៖ (តំណ)
- ធនធាន – AOSP r2 tag (តំណ)
- ធនធាន - ឧបករណ៍ត្រួតពិនិត្យប្រភព (តំណ)
- ការណែនាំអ្នកប្រើប្រាស់ – UG10068 – PN7220 – ការណែនាំអំពីការចាប់ផ្តើមរហ័ស (តំណ)
- ឃ្លាំង GitHub – PN7160 និង PN7220 FW ទីតាំង៖ (តំណ)
- កំណត់ចំណាំកម្មវិធី - ការកំណត់រចនាសម្ព័ន្ធ AN14431 - PN7160/PN7220 files (តំណ)
ចំណាំអំពីកូដប្រភពនៅក្នុងឯកសារ
Example កូដដែលបង្ហាញក្នុងឯកសារនេះមានសិទ្ធិរក្សាសិទ្ធិ និង BSD-3-Clause ដូចខាងក្រោម៖
រក្សាសិទ្ធិ 2024 NXP ការចែកចាយឡើងវិញ និងការប្រើប្រាស់ក្នុងទម្រង់ប្រភព និងប្រព័ន្ធគោលពីរ ដោយមានឬគ្មានការកែប្រែ ត្រូវបានអនុញ្ញាត ផ្តល់ថាលក្ខខណ្ឌខាងក្រោមត្រូវបានបំពេញ
- ការចែកចាយឡើងវិញនៃកូដប្រភពត្រូវតែរក្សាការជូនដំណឹងអំពីការរក្សាសិទ្ធិខាងលើ បញ្ជីលក្ខខណ្ឌ និងការបដិសេធខាងក្រោម។
- ការចែកចាយឡើងវិញក្នុងទម្រង់គោលពីរត្រូវតែបង្កើតឡើងវិញនូវការជូនដំណឹងអំពីការរក្សាសិទ្ធិខាងលើ បញ្ជីនៃលក្ខខណ្ឌ និងការមិនទទួលខុសត្រូវខាងក្រោមនៅក្នុងឯកសារ និង/ឬសម្ភារៈផ្សេងទៀតត្រូវតែផ្តល់ជូនជាមួយនឹងការចែកចាយ។
- ទាំងឈ្មោះនៃម្ចាស់កម្មសិទ្ធិបញ្ញា ឬឈ្មោះអ្នករួមចំណែករបស់វាមិនអាចត្រូវបានប្រើដើម្បីគាំទ្រ ឬផ្សព្វផ្សាយផលិតផលដែលទទួលបានពីកម្មវិធីនេះដោយគ្មានការអនុញ្ញាតជាលាយលក្ខណ៍អក្សរជាមុនជាក់លាក់ណាមួយឡើយ។
កម្មវិធីនេះត្រូវបានផ្តល់ដោយអ្នកកាន់កាប់សិទ្ធិអ្នកនិពន្ធ និងអ្នករួមវិភាគទាន "ដូចដែលមាន" និងការធានាណាមួយដែលបញ្ជាក់ ឬដោយប្រយោល រួមទាំង ប៉ុន្តែមិនកំណត់ចំពោះ ការធានាដោយអត្ថន័យនៃទំនិញគ្រប់គ្រាន់ ត្រូវបានបដិសេធ។ ក្នុងករណីណាក៏ដោយ អ្នកកាន់កាប់សិទ្ធិថតចម្លង ឬអ្នករួមចំណែកត្រូវទទួលខុសត្រូវចំពោះការខូចខាតដោយផ្ទាល់ ប្រយោល ចៃដន្យ ពិសេស គំរូ ឬការខូចខាតជាលទ្ធផល (រួមទាំង ប៉ុន្តែមិនកំណត់ចំពោះផ្នែករដ្ឋបាល សេវាកម្ម ការបាត់បង់ការប្រើប្រាស់ ទិន្នន័យ ឬប្រាក់ចំណេញ ឬការរំខានអាជីវកម្ម) ទោះជាបណ្តាលមកពី និងលើទ្រឹស្ដីទំនួលខុសត្រូវណាមួយ ទោះជាក្នុងកិច្ចសន្យា ទំនួលខុសត្រូវយ៉ាងតឹងរ៉ឹង ឬការបង្ខិតបង្ខំ (រួមទាំងការបិទសិទ្ធិប្រើប្រាស់)។ ការប្រើប្រាស់កម្មវិធីនេះ ទោះបីជាមានការណែនាំអំពីលទ្ធភាពនៃការខូចខាតបែបនេះក៏ដោយ។
ប្រវត្តិនៃការពិនិត្យឡើងវិញ
តារាង 11. ប្រវត្តិនៃការពិនិត្យឡើងវិញ
លេខសម្គាល់ឯកសារ | កាលបរិច្ឆេទចេញផ្សាយ | ការពិពណ៌នា |
AN14430 v.1.0 | ថ្ងៃទី 03 ខែកញ្ញាឆ្នាំ 2024 | • កំណែដំបូង |
ព័ត៌មានផ្លូវច្បាប់
និយមន័យ
សេចក្តីព្រាង - ស្ថានភាពព្រាងនៅលើឯកសារបង្ហាញថាខ្លឹមសារនៅតែស្ថិតក្រោមការកែប្រែផ្ទៃក្នុងview និងស្ថិតនៅក្រោមការយល់ព្រមជាផ្លូវការ ដែលអាចបណ្តាលឱ្យមានការកែប្រែ ឬបន្ថែម។ NXP Semiconductors មិនផ្តល់ការតំណាង ឬការធានាណាមួយអំពីភាពត្រឹមត្រូវ ឬពេញលេញនៃព័ត៌មានដែលរួមបញ្ចូលនៅក្នុងកំណែព្រាងនៃឯកសារ ហើយនឹងមិនទទួលខុសត្រូវចំពោះផលវិបាកនៃការប្រើប្រាស់ព័ត៌មាននោះទេ។
ការបដិសេធ
ការធានា និងការទទួលខុសត្រូវមានកំណត់ — ព័ត៌មាននៅក្នុងឯកសារនេះត្រូវបានគេជឿថាមានភាពត្រឹមត្រូវ និងអាចទុកចិត្តបាន។ ទោះជាយ៉ាងណាក៏ដោយ NXP Semiconductors មិនផ្តល់ការតំណាង ឬការធានាណាមួយដែលបានបង្ហាញ ឬបង្កប់ន័យចំពោះភាពត្រឹមត្រូវ ឬពេញលេញនៃព័ត៌មាននោះទេ ហើយនឹងមិនទទួលខុសត្រូវចំពោះផលវិបាកនៃការប្រើប្រាស់ព័ត៌មាននោះទេ។ NXP Semiconductors មិនទទួលខុសត្រូវចំពោះខ្លឹមសារនៅក្នុងឯកសារនេះទេ ប្រសិនបើផ្តល់ដោយប្រភពព័ត៌មាននៅខាងក្រៅ NXP Semiconductors។
នៅក្នុងព្រឹត្តិការណ៍ណាមួយ NXP Semiconductors នឹងមិនទទួលខុសត្រូវចំពោះការខូចខាតដោយប្រយោល ចៃដន្យ ការដាក់ទណ្ឌកម្ម ពិសេស ឬជាផលវិបាក (រួមទាំង - ដោយគ្មានដែនកំណត់ - ការបាត់បង់ប្រាក់ចំណេញ ការសន្សំដែលបាត់បង់ ការរំខានអាជីវកម្ម ការចំណាយទាក់ទងនឹងការដកចេញ ឬការជំនួសផលិតផល ឬថ្លៃការងារឡើងវិញ) ថាតើ ឬមិនមែនការខូចខាតបែបនេះគឺផ្អែកលើទារុណកម្ម (រួមទាំងការធ្វេសប្រហែស) ការធានា ការបំពានកិច្ចសន្យា ឬទ្រឹស្តីច្បាប់ផ្សេងទៀត។
ទោះបីជាការខូចខាតណាមួយដែលអតិថិជនអាចកើតឡើងដោយហេតុផលណាមួយក៏ដោយ ទំនួលខុសត្រូវសរុបរបស់ NXP Semiconductors ចំពោះអតិថិជនចំពោះផលិតផលដែលបានពិពណ៌នានៅទីនេះ នឹងត្រូវកំណត់ដោយអនុលោមតាមលក្ខខណ្ឌនៃការលក់ពាណិជ្ជកម្មរបស់ NXP Semiconductors ។
សិទ្ធិធ្វើការផ្លាស់ប្តូរ — NXP Semiconductors រក្សាសិទ្ធិដើម្បីធ្វើការផ្លាស់ប្តូរព័ត៌មានដែលបានបោះពុម្ពផ្សាយនៅក្នុងឯកសារនេះ រួមទាំងដោយគ្មានការកំណត់ជាក់លាក់ និងការពិពណ៌នាអំពីផលិតផល នៅពេលណាក៏បាន និងដោយគ្មានការជូនដំណឹងជាមុន។ ឯកសារនេះជំនួស និងជំនួសព័ត៌មានទាំងអស់ដែលបានផ្តល់មុនការបោះពុម្ពផ្សាយនៅទីនេះ។
ភាពស័ក្តិសមសម្រាប់ការប្រើប្រាស់ — ផលិតផល NXP Semiconductors មិនត្រូវបានរចនា អនុញ្ញាត ឬធានាឱ្យមានលក្ខណៈសមរម្យសម្រាប់ការប្រើប្រាស់ក្នុងការគាំទ្រជីវិត ប្រព័ន្ធ ឬឧបករណ៍ដែលមានសារៈសំខាន់សម្រាប់ជីវិត ឬសុវត្ថិភាព ឬនៅក្នុងកម្មវិធីដែលការបរាជ័យ ឬដំណើរការខុសប្រក្រតីនៃផលិតផល NXP Semiconductors អាចត្រូវបានរំពឹងទុកដោយហេតុផល។ បណ្តាលឱ្យមានរបួសផ្ទាល់ខ្លួន ការស្លាប់ ឬទ្រព្យសម្បត្តិធ្ងន់ធ្ងរ ឬការខូចខាតបរិស្ថាន។ NXP Semiconductors និងអ្នកផ្គត់ផ្គង់របស់ខ្លួនមិនទទួលខុសត្រូវចំពោះការដាក់បញ្ចូល និង/ឬការប្រើប្រាស់ផលិតផល NXP Semiconductors នៅក្នុងឧបករណ៍ ឬកម្មវិធីនោះទេ ដូច្នេះការដាក់បញ្ចូល និង/ឬការប្រើប្រាស់បែបនេះគឺស្ថិតក្នុងហានិភ័យផ្ទាល់ខ្លួនរបស់អតិថិជន។
កម្មវិធី - កម្មវិធីដែលត្រូវបានពិពណ៌នានៅទីនេះសម្រាប់ផលិតផលណាមួយនេះគឺសម្រាប់គោលបំណងបង្ហាញតែប៉ុណ្ណោះ។ NXP Semiconductors មិនធ្វើតំណាង ឬការធានាថាកម្មវិធីបែបនេះនឹងសាកសមសម្រាប់ការប្រើប្រាស់ដែលបានបញ្ជាក់ដោយមិនចាំបាច់ធ្វើតេស្ត ឬកែប្រែបន្ថែម។
អតិថិជនត្រូវទទួលខុសត្រូវចំពោះការរចនា និងប្រតិបត្តិការនៃកម្មវិធី និងផលិតផលរបស់ពួកគេដោយប្រើប្រាស់ផលិតផល NXP Semiconductors ហើយ NXP Semiconductors មិនទទួលខុសត្រូវចំពោះជំនួយណាមួយជាមួយកម្មវិធី ឬការរចនាផលិតផលរបស់អតិថិជនឡើយ។ វាជាទំនួលខុសត្រូវតែមួយគត់របស់អតិថិជនក្នុងការកំណត់ថាតើផលិតផល NXP Semiconductors មានលក្ខណៈសមរម្យ និងសមនឹងកម្មវិធី និងផលិតផលរបស់អតិថិជនដែលបានគ្រោងទុក ក៏ដូចជាសម្រាប់កម្មវិធីដែលបានគ្រោងទុក និងការប្រើប្រាស់អតិថិជនភាគីទីបីរបស់អតិថិជនផងដែរ។ អតិថិជនគួរតែផ្តល់នូវការរចនា និងការការពារប្រតិបត្តិការសមស្រប ដើម្បីកាត់បន្ថយហានិភ័យដែលទាក់ទងនឹងកម្មវិធី និងផលិតផលរបស់ពួកគេ។
NXP Semiconductors មិនទទួលយកទំនួលខុសត្រូវណាមួយដែលទាក់ទងនឹងលំនាំដើម ការខូចខាត ការចំណាយ ឬបញ្ហាដែលផ្អែកលើភាពទន់ខ្សោយ ឬលំនាំដើមណាមួយនៅក្នុងកម្មវិធី ឬផលិតផលរបស់អតិថិជន ឬកម្មវិធី ឬការប្រើប្រាស់ដោយអតិថិជនភាគីទីបីរបស់អតិថិជននោះទេ។ អតិថិជនមានទំនួលខុសត្រូវក្នុងការធ្វើតេស្តចាំបាច់ទាំងអស់សម្រាប់កម្មវិធី និងផលិតផលរបស់អតិថិជនដោយប្រើផលិតផល NXP Semiconductors ដើម្បីជៀសវាងការបរាជ័យនៃកម្មវិធី និងផលិតផល ឬនៃកម្មវិធី ឬប្រើប្រាស់ដោយអតិថិជនភាគីទីបីរបស់អតិថិជន។ NXP មិនទទួលយកការទទួលខុសត្រូវណាមួយក្នុងន័យនេះទេ។
ល័ក្ខខ័ណ្ឌនៃការលក់ពាណិជ្ជកម្ម — ផលិតផល NXP Semiconductors ត្រូវបានលក់តាមលក្ខខណ្ឌទូទៅនៃការលក់ពាណិជ្ជកម្ម ដូចដែលបានចុះផ្សាយនៅ https://www.nxp.com/profile/លក្ខខណ្ឌ លុះត្រាតែមានការយល់ព្រមផ្សេងពីនេះក្នុងកិច្ចព្រមព្រៀងបុគ្គលដែលមានសុពលភាព។ ក្នុងករណីកិច្ចព្រមព្រៀងបុគ្គលត្រូវបានបញ្ចប់ មានតែលក្ខខណ្ឌនៃកិច្ចព្រមព្រៀងរៀងៗខ្លួនប៉ុណ្ណោះដែលត្រូវអនុវត្ត។ NXP Semiconductors សម្តែងការជំទាស់ចំពោះការអនុវត្តលក្ខខណ្ឌទូទៅរបស់អតិថិជនទាក់ទងនឹងការទិញផលិតផល NXP Semiconductors ដោយអតិថិជន។
ការត្រួតពិនិត្យការនាំចេញ - ឯកសារនេះក៏ដូចជាធាតុដែលបានពិពណ៌នានៅទីនេះអាចជាកម្មវត្ថុនៃបទប្បញ្ញត្តិត្រួតពិនិត្យការនាំចេញ។ ការនាំចេញអាចទាមទារការអនុញ្ញាតជាមុនពីអាជ្ញាធរមានសមត្ថកិច្ច។
ភាពស័ក្តិសមសម្រាប់ការប្រើប្រាស់នៅក្នុងផលិតផលដែលមិនមានគុណភាពសម្រាប់រថយន្ត — លុះត្រាតែឯកសារនេះបញ្ជាក់យ៉ាងច្បាស់ថាផលិតផល NXP Semiconductors ជាក់លាក់នេះមានលក្ខណៈសម្បត្តិគ្រប់គ្រាន់សម្រាប់យានយន្តនោះ ផលិតផលនេះមិនស័ក្តិសមសម្រាប់ការប្រើប្រាស់រថយន្តទេ។ វាមិនមានលក្ខណៈសម្បត្តិគ្រប់គ្រាន់ ឬត្រូវបានសាកល្បងដោយអនុលោមតាមការធ្វើតេស្តរថយន្ត ឬតម្រូវការកម្មវិធី NXP Semiconductors មិនទទួលខុសត្រូវចំពោះការរួមបញ្ចូល និង/ឬការប្រើប្រាស់ផលិតផលដែលមិនមានគុណភាពសម្រាប់រថយន្តនៅក្នុងឧបករណ៍ ឬកម្មវិធីរថយន្ត។
ក្នុងករណីដែលអតិថិជនប្រើប្រាស់ផលិតផលសម្រាប់ការរចនា និងប្រើប្រាស់ក្នុងកម្មវិធីរថយន្តទៅនឹងលក្ខណៈបច្ចេកទេស និងស្តង់ដាររថយន្ត អតិថិជន (ក) ត្រូវប្រើប្រាស់ផលិតផលដោយគ្មានការធានារបស់ NXP Semiconductors នៃផលិតផលសម្រាប់កម្មវិធីរថយន្ត ការប្រើប្រាស់ និងលក្ខណៈបច្ចេកទេស និង ( ខ) រាល់ពេលដែលអតិថិជនប្រើប្រាស់ផលិតផលសម្រាប់កម្មវិធីរថយន្តលើសពីលក្ខណៈបច្ចេកទេសរបស់ NXP Semiconductors ការប្រើប្រាស់បែបនេះត្រូវប្រឈមមុខនឹងហានិភ័យផ្ទាល់របស់អតិថិជន ហើយ (គ) អតិថិជននឹងសងសំណងទាំងស្រុងនូវ NXP Semiconductors សម្រាប់ការទទួលខុសត្រូវ ការខូចខាត ឬការទាមទារផលិតផលដែលបរាជ័យដែលបណ្តាលមកពីការរចនា និងការប្រើប្រាស់របស់អតិថិជន។ ផលិតផលសម្រាប់កម្មវិធីរថយន្តលើសពីការធានាស្តង់ដាររបស់ NXP Semiconductors និងផលិតផលជាក់លាក់របស់ NXP Semiconductors
ការបោះពុម្ព HTML - កំណែ HTML នៃឯកសារនេះត្រូវបានផ្តល់ជូនជាការគួរសម។ ព័ត៌មានច្បាស់លាស់មាននៅក្នុងឯកសារដែលអាចអនុវត្តបានជាទម្រង់ PDF ។ ប្រសិនបើមានភាពមិនស្របគ្នារវាងឯកសារ HTML និងឯកសារ PDF នោះឯកសារ PDF មានអាទិភាព។
ការបកប្រែ - កំណែដែលមិនមែនជាភាសាអង់គ្លេស (បកប្រែ) នៃឯកសារ រួមទាំងព័ត៌មានផ្លូវច្បាប់នៅក្នុងឯកសារនោះ គឺសម្រាប់ជាឯកសារយោងតែប៉ុណ្ណោះ។ កំណែជាភាសាអង់គ្លេសនឹងមានសុពលភាពក្នុងករណីមានភាពខុសគ្នារវាងកំណែដែលបានបកប្រែ និងភាសាអង់គ្លេស។
សុវត្ថិភាព - អតិថិជនយល់ថាផលិតផល NXP ទាំងអស់អាចទទួលរងនូវភាពងាយរងគ្រោះដែលមិនស្គាល់អត្តសញ្ញាណ ឬអាចគាំទ្រស្តង់ដារសុវត្ថិភាពដែលបានបង្កើតឡើង ឬជាក់លាក់ជាមួយនឹងដែនកំណត់ដែលគេស្គាល់។ អតិថិជនទទួលខុសត្រូវចំពោះការរចនា និងប្រតិបត្តិការនៃកម្មវិធី និងផលិតផលរបស់ខ្លួនពេញមួយវដ្តជីវិតរបស់ពួកគេ ដើម្បីកាត់បន្ថយឥទ្ធិពលនៃភាពងាយរងគ្រោះទាំងនេះលើកម្មវិធី និងផលិតផលរបស់អតិថិជន។ ទំនួលខុសត្រូវរបស់អតិថិជនក៏ពង្រីកដល់បច្ចេកវិទ្យាបើកចំហ និង/ឬកម្មសិទ្ធិផ្សេងទៀតដែលគាំទ្រដោយផលិតផល NXP សម្រាប់ប្រើប្រាស់ក្នុងកម្មវិធីរបស់អតិថិជន។ NXP មិនទទួលខុសត្រូវចំពោះភាពងាយរងគ្រោះណាមួយឡើយ។ អតិថិជនគួរតែពិនិត្យមើលការអាប់ដេតសុវត្ថិភាពពី NXP ជាទៀងទាត់ ហើយតាមដានដោយសមរម្យ។ អតិថិជនត្រូវជ្រើសរើសផលិតផលដែលមានលក្ខណៈពិសេសសុវត្ថិភាពដែលសមស្របបំផុតនឹងច្បាប់ បទប្បញ្ញត្តិ និងស្តង់ដារនៃកម្មវិធីដែលមានបំណង ហើយធ្វើការសម្រេចចិត្តរចនាចុងក្រោយទាក់ទងនឹងផលិតផលរបស់ខ្លួន ហើយទទួលខុសត្រូវទាំងស្រុងចំពោះការអនុលោមតាមតម្រូវការច្បាប់ និយតកម្ម និងសុវត្ថិភាពទាំងអស់ទាក់ទងនឹងផលិតផលរបស់ខ្លួន ដោយមិនគិតពី នៃព័ត៌មាន ឬជំនួយដែលអាចត្រូវបានផ្តល់ដោយ NXP ។
NXP មានក្រុមឆ្លើយតបឧប្បត្តិហេតុសុវត្ថិភាពផលិតផល (PSIRT) (អាចទាក់ទងបាននៅ PSIRT@nxp.com) ដែលគ្រប់គ្រងការស៊ើបអង្កេត ការរាយការណ៍ និងការចេញផ្សាយដំណោះស្រាយចំពោះភាពងាយរងគ្រោះផ្នែកសុវត្ថិភាពនៃផលិតផល NXP ។
NXP B.V. — NXP B.V. មិនមែនជាក្រុមហ៊ុនប្រតិបត្តិការទេ ហើយវាមិនចែកចាយ ឬលក់ផលិតផលទេ។
អាជ្ញាប័ណ្ណ
ការទិញ NXP ICs ជាមួយបច្ចេកវិទ្យា NFC — ការទិញ IC NXP Semiconductors IC ដែលអនុលោមតាមស្តង់ដារ Near Field Communication (NFC) មួយក្នុងចំណោមស្តង់ដារ ISO/IEC 18092 និង ISO/IEC 21481 មិនបង្ហាញពីអាជ្ញាប័ណ្ណដែលបង្កប់ក្រោមសិទ្ធិប៉ាតង់ណាមួយដែលត្រូវបានរំលោភបំពានដោយការអនុវត្ត ណាមួយនៃស្តង់ដារទាំងនោះ។ ការទិញ NXP Semiconductors IC មិនរួមបញ្ចូលអាជ្ញាប័ណ្ណចំពោះប៉ាតង់ NXP ណាមួយ (ឬសិទ្ធិ IP ផ្សេងទៀត) ដែលគ្របដណ្តប់ការបញ្ចូលគ្នានៃផលិតផលទាំងនោះជាមួយផលិតផលផ្សេងទៀត មិនថាផ្នែករឹង ឬផ្នែកទន់នោះទេ។
ពាណិជ្ជសញ្ញា
សេចក្តីជូនដំណឹង៖ ម៉ាកដែលបានយោងទាំងអស់ ឈ្មោះផលិតផល ឈ្មោះសេវាកម្ម និងពាណិជ្ជសញ្ញា គឺជាកម្មសិទ្ធិរបស់ម្ចាស់រៀងៗខ្លួន។ NXP — និមិត្តសញ្ញាពាក្យ និងនិមិត្តសញ្ញាគឺជាពាណិជ្ជសញ្ញារបស់ NXP BV I2C-bus — និមិត្តសញ្ញាគឺជាពាណិជ្ជសញ្ញារបស់ NXP BV
សូមជ្រាបថា ការជូនដំណឹងសំខាន់ៗទាក់ទងនឹងឯកសារនេះ និងផលិតផលដែលបានពិពណ៌នានៅទីនេះ ត្រូវបានដាក់បញ្ចូលក្នុងផ្នែក 'ព័ត៌មានផ្លូវច្បាប់'។
© 2024 NXP BV រក្សាសិទ្ធិគ្រប់យ៉ាង។
សម្រាប់ព័ត៌មានបន្ថែម សូមចូលទៅកាន់៖ https://www.nxp.com
ឯកសារ/ធនធាន
![]() |
ឧបករណ៍បញ្ជា NFC ផ្អែកលើ NXP PN7160 NCI [pdf] សេចក្តីណែនាំ PN7160, PN7220, PN7160 ឧបករណ៍បញ្ជា NFC ផ្អែកលើ NCI, PN7160, ឧបករណ៍បញ្ជា NFC ផ្អែកលើ NCI, ឧបករណ៍បញ្ជា NFC ដែលមានមូលដ្ឋាន, ឧបករណ៍បញ្ជា NFC, ឧបករណ៍បញ្ជា |