5

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

通过 PC 使用 USB 非接触式读卡器,我可以毫不费力地与我扔给它的任何卡进行连接和通信。

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

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

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

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

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

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

4

1 回答 1

4

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

  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 产生的功率最大)。

于 2012-07-09T10:49:32.973 回答