代码之家  ›  专栏  ›  技术社区  ›  Matt

将RFID数据从iPhone传递到RC522

  •  0
  • Matt  · 技术社区  · 4 年前

    我目前有一个 Mifare RC522 module 我可以使用它成功地读取/写入标签和卡片,但我无法成功地让它读取我通过NFC手机应用程序写入的数据。只需将RC522模块靠近,即可让其读取iPhone上的数据,这只会打开Apple Pay菜单。我做错了什么吗?数据是否需要以某种方式编码,或者该模块是否毫无用处,我可能需要PN532之类的东西?我基本上只是想要一个可以读取我从iPhone/Android设备广播的NFC数据的模块

    0 回复  |  直到 4 年前
        1
  •  4
  •   Andrew    4 年前

    在NFC通信中,有两个部分,发起者(更通用的术语是阅读器)和目标(标签/卡的更通用术语)以及无源和有源设备。

    发起者启动通信,目标做出响应。

    有源设备有电源,无源设备不提供自己的电源。

    无源设备不能是发起者的,因为它们需要电源来启动通信,并且可能需要为目标设备供电。

    因此,像NTAG 21x标签这样的普通NFC标签是一个被动目标。

    硬件级别的设备,如iPhone/Android,能够作为发起者和目标设备,并为被动设备供电。

    RC522模块只是一个启动器设备,可以为无源设备供电。

    当iPhone/Android等设备作为目标设备(标签/卡)时,这被称为主机卡仿真或HCE(它们在软件中仿真卡硬件)。

    因此,由于RC522只是发起者(读取器),其他设备必须是目标。

    不幸的是,在iOS中,只有苹果公司被允许为Apple Pay进行主机卡模拟(成为目标),在那里,他们假装是非接触式银行卡,而非接触式的银行终端只是发起者的终端。
    这就是Apple Pay出现的原因,因为这是它对发起者做出回应的唯一方式。

    在Android上,普通开发人员可以使用主机卡仿真。

    因此,基本上,RC522阅读器和iPhone无法实现您所尝试的功能。

    因此,是的,PN532是可能的,因为该芯片提供芯片上的卡仿真模式或直通模式,在该模式下,主机卡在连接的微控制器上进行仿真。这是因为对于普通开发者来说,iPhone只能是一个阅读器(启动器)设备。