【问题标题】:Determining the power requirements for a contactless smartcard in Java.在 Java 中确定非接触式智能卡的电源要求。
【发布时间】:2012-07-04 06:35:22
【问题描述】:

我正在用 Java 编写一个向智能卡发送命令并通过 NFC 接口解析响应的应用程序。此应用程序可在 Android 和 PC 上使用。

通过 PC 使用 USB 非接触式读卡器,我可以毫无问题地连接我扔给它的任何卡并与之通信。

Android 是另一回事。通过 Nexus S 使用应用程序会产生不太理想的结果,具体取决于卡。

有些卡会以 100% 的成功率连接和通信。我尝试使用的大多数卡都很难建立连接,更不用说与之通信了。

Nexus S 上的 NFC 服务正在尝试与卡连接。它发出连续的低脉冲声音,表明它无法建立牢固的连接(据我所知)。

我目前的想法是 Nexus S 的 NFC 芯片比我正在使用的 USB PC 读卡器的功率更低。从我读过的其他文章看来,不同的卡似乎有不同的功率要求才能使用它们。

如何确定为卡供电所需的功率级别?它是否隐藏在 ATR 中的某个地方?

如何确定特定 NFC 芯片的功率级别?这是在某处记录的吗?

【问题讨论】:

  • 第一个问题你应该阅读 ISO 7816
  • 我想你应该知道NFC芯片的确切型号,这样你就可以下载包含此类信息的数据表

标签: java android nfc nexus-s


【解决方案1】:

此类问题通常由以下任何一种(组合)引起:

  1. 卡中的天线调谐不良
  2. 需要大量功率的微控制器卡
  3. NFC 手机产生的弱射频场

这会导致手机和卡之间的天线耦合不良,从而导致通信不良或无法通信。桌面阅读器通常不会出现此类问题,因为它会生成更强大的字段。手机中的 NFC 功率非常低,它产生的射频场通常处于 ISO 14443 仍然允许的范围内。Nexus S 中的 NFC 芯片,NXP PN544,会产生一个微弱的射频场。但是,这是手机中的 NFC 芯片和 NFC 天线的功能。根据我的经验,B 型卡经常会引起问题(有传言说它们通常需要更多功率)。另一个例子是电子护照:通常有不太理想的天线。

卡所需的最低功率水平:它不在 ATR 中。 ISO 14443 卡没有 ATR(他们可能有 EF.ATR 文件,但我从未见过)。 ATS(选择答案)响应未指示所需的功率水平。卡可以在 ISO 14443-4 S-Block 的 CID 字段中指示功率水平是否足够(当卡存在并支持时)。不过,我从未见过这样做的卡片。

要确定特定 NFC 芯片与特定天线(和调谐电路)组合的功率水平,您可以使用频谱分析仪进行测量。我测量了几款都包含 PN544 的 Android NFC 手机(Galaxy Nexus、Nexus S、Galaxy S3、One X)。结果因手机而异,足以在某些情况下产生影响(S3 产生的功率最大)。

【讨论】:

  • 我在 SO 上经常见到你。 :) 感谢您的回答。
  • 不客气。我快速浏览了一些我拥有的韩国 B 型卡(EZ-Link 和 T-Money),它们不适用于 Nexus S 和 Galaxy Nexus。我发现他们确实可以使用 S3。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
  • 1970-01-01
相关资源
最近更新 更多