我正在开发一个Android NFC应用程序。
此应用程序可以扫描NFC标签(这里我有一个恩智浦NTAG 5 boost标签,这是一个NFC论坛类型5标签)。
根据UID,我已经知道如何使用this document解码IC制造商,这是第二个字节。
现在,我想解码IC类型,就像恩智浦的TagInfo应用程序一样,看看扫描的标签是NTAG 5 boost还是NTAG I2C plus。
以下是恩智浦TagInfo应用程序显示的图像:
你知道我在哪里可以找到IC类型寄存器,这样我就可以解码这部分UID了吗?
发布于 2021-05-04 00:50:40
只有制造商被编码到UID中,其他任何东西都没有编码到UID中。
应用程序如何确定IC类型可能有多种可能的方式。
一些近场通信芯片在底层协议上提供了一些数据,如NfcA的ATQA和SAK,用于识别标签的类型和大小,这主要是在Mifare Classic系列芯片上。
最有可能的是,对于恩智浦芯片,您已经确定大多数恩智浦芯片具有originality signature
命令,例如在https://www.nxp.com/docs/en/data-sheet/NTA5332.pdf 8.2.4.7节中,此签名用于检查IC类型。
不幸的是,如何解码和检查originality signature
是隐藏在保密协议后面的。当然,您展示的应用程序是由恩智浦编写的,因此他们可以访问解码此签名所需的数据,并了解其中包含的内容。(有一个提示,不同的键在不同的芯片上使用,所以如果你知道这个过程和键是如何映射到IC的,这会告诉你IC的类型)。
发布于 2021-05-10 22:20:53
实际上答案更简单..首先,你需要了解有不同的NFC协议,Android支持TagTechnologies NFC-A、NFC-B、NFC-V和ISO-DEP。NTAG 2xx,含NTAG I2C属于NFC-A类别,而NTAG5 IC则属于NFC-V技术。此外,例如,NTAG 21x IC支持Get_Version命令(60h),该命令将返回主要和次要产品版本以及内存大小。例如,参见https://www.nxp.com/docs/en/data-sheet/NTAG213_215_216.pdf中的表28和https://www.nxp.com/docs/en/data-sheet/NT3H2111_2211.pdf中的表21
https://stackoverflow.com/questions/67371050
复制相似问题