1

我正在开展一个将pn532与 nfc 电话连接的学校项目。我正在使用 seeedstudio nfc 控制器和他们拥有的库,并添加了一些代码。我的问题与协议的连接和发现阶段有关。

问题1:发起者向DSAP = 1 “发现服务”发送CONNECT命令时响应什么。下面我解释协议的结果。

用于测试的手机是(gs4,注 2):

情况一:

  • 电话向我发送05 20 06这是对接收设备中 SAP =1 的 CONNECT 命令,然后我以 CC 命令81 84 2 2 0 78进行响应。
  • 然后他们在前台向我发送一个带有应用程序 URI 的 IPDU,我继续按照 nfc 论坛中的 llcp-snep 协议发送命令,一切都结束了。*问题是我不希望前台应用程序的 URI,而是需要该应用程序的NDEF 消息数据。*

情况2:

  • 电话发送到 pn532 11 20,这是对接收设备中 SAP =4 的 CONNECT 命令,然后我用命令CC 81 84 2 2 0 78响应。
  • 在此之后,电话按原样向我发送 NDEF 数据。

    现在我的问题是:

为什么有时电话向我发送 CONNECT 命令到 SAP =1,有时又向我发送 SAP=4?

我必须对05 20 06响应什么命令?

4

2 回答 2

2

当一个 CONNECT 命令被发送到 SAP 1 时,这意味着发送者想要在一个步骤中执行服务发现和连接设置。在这种情况下,CONNECT 命令中的必需信息是服务名称。如果该服务存在并且是可连接的,则响应将是一个 CC(连接完成)PDU,发送到从其接收 CONNECT 的 SAP 以及从命名服务绑定到的 SAP。如果具有请求名称的服务不存在,则答案必须是具有适当原因代码的断开连接模式 (DM) PDU。

不幸的是,您没有提供有关在 SAP 1 上收到的 CONNECT 命令的完整信息,至少缺少服务名称长度字节和名称本身。正如所写,CONNECT PDU 只是无效的,不应被确认。

于 2014-01-17T10:00:15.950 回答
1

As expected the whole problem was solved. After the request for connection of the undesired service I sent the DM with reason 02 command and everything went normal. It took me some time to get the library to work with all phones together but finally I fixed it. Thanks for all the feedback

于 2014-01-22T03:14:16.467 回答