将 RFID 标签的十六进制值解码为十进制序列号

Decode RFID tag Hexadecimal values to Decimal Serial Number

我有大约 10k+ 台设备,每台设备的标签上都印有一个可见的序列号,还有一个 RFID tag 可以从中读取序列号。我的问题是,当我读取 RFID 标签时,我得到了一堆十六进制值,但我无法从中检索到实际的序列号值,因为它不是直接从十进制到十六进制的编码。

这是我用 Android App "NFC Tools" 扫描 RFID tag 时得到的一些信息:
- 标签类型ISO 15693 NXP - ICODE SLIX
- 可用技术NfcV, Ndef
- 序列号3C:FB:88:14:50:01:04:E0
- DSFID: 0x00
- 数据格式: Unknown
- 尺码38 / 106 Bytes
- 可写: Yes
- 可以设为只读No

我注意到每个 RFID tag 都包含相同的 'header' 50:01:04:E0,所以这意味着应该有一种方法可以从 3C:FB:88:14 中检索我的序列号.在此特定实例中,序列号为 11926214

我已经手动扫描了大约 30 个单元,但我想避免扫描所有 10,000 个单元,因为记下十六进制值和相应的序列号很容易出错。有没有可能根据以上信息弄清楚?

芯片数据表第 9.2.1 节可能有所帮助 https://www.nxp.com/docs/en/data-sheet/SL2S2002_SL2S2102.pdf

某些应用程序可能会像此应用程序一样首先显示最高有效位(即与更正常的方向相反)

这实际上把 3C:FB:88:14:50 作为 IC manufacturer serial number 或制造商定义的 50:14:88:FB:3C

我尝试了各种十六进制到十进制的转换,例如 https://www.rapidtables.com/convert/number/hex-to-decimal.html,但无法获得任何组合和重要的位方向来转换为设备序列号。

这些芯片也有用户定义的内存,应用程序的还没有被读取,设备序列号可以存储在这里,与标签的序列号无关。 (由于 RFID 序列号是在制造时由恩智浦编程的,因此不太可能也是设备序列号)

我建议实际使用 NXP 的 App TagInfo,因为这是由芯片制造商提供的,可以向您展示所有原始内存块(它可以在我使用的卡类型上)

但是 NXP 似乎最近删除了 TagInfo 应用程序:-(

更新: 看来您可以从 https://apkpure.com/nfc-taginfo-by-nxp/com.nxp.taginfolite 侧加载 APK(存在相关风险)

当然你可以使用链接的数据表编写自己的应用程序来读取可能存储设备序列号的用户内存区域。