【问题标题】:How come I do not recieve a response from the SIM (ISO-7816)?为什么我没有收到来自 SIM (ISO-7816) 的响应?
【发布时间】:2013-08-28 18:18:28
【问题描述】:

我有一个连接到我的微控制器的 SIM 卡。 rst、i/o 和 clck 引脚接线正确。我的板上有一个硬件 UART,但由于它是全双工而不是半双工,所以我将 RX/TX 跳到一起。

到目前为止,我根据 ISO-7816 切换 RST,我的 UART 缓冲区充满了 sim 卡响应的 ATR。收到 ATR 后,我将 UART 更改为 TX 模式并向其发送 PPS。发送后,我将 UART 改回 RX only 模式。它遵循 ISO-7816 中所述的正确格式,但我没有收到来自 sim 的确认字节。确认应该是我发送的设置的重复。

【问题讨论】:

  • 卡发回东西了吗?戴上存储范围并找出答案。
  • 用示波器看了看,卡在 ATR 之后没有发回任何东西。

标签: embedded smartcard avr uart


【解决方案1】:

我想您的问题与我在使用 gsm 调制解调器时遇到的问题相同。 发送命令你会得到设备的确认,然后发送下一个命令,获取确认等等。迟早设备会挂断。

关键是对确认的解释。 您可能认为确认意味着命令被接受并执行。但是 - 至少在我知道的所有 gsm 调制解调器上 - 它不再意味着命令被接受并被解释 - 但没有被执行。如果执行耗时的命令,则在执行上一个命令期间发送下一个命令。您这样做是因为您可能认为确认意味着命令已完成 - 但事实并非如此。 设备可能会或可能不会缓冲累积命令,但迟早会耗尽资源并挂起。

我对您使用的设备没有经验,但现象似乎是一样的。

【讨论】:

    【解决方案2】:

    虽然我不是协议专家,但在我看来,最可能的原因是您过早发送 PPS——“发送后”在现代微控制器上很容易为时过早。 ISO 7816-3 规定,保护时间照常适用,等待时间为 9600 etu。 太早发送 PPS 意味着卡还没有收听,这完美地解释了根本没有收到任何响应。错误的格式会导致错误块,它也应该在范围上可见,这支持了我的假设。

    【讨论】:

      猜你喜欢
      • 2014-12-16
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 2013-01-03
      • 2020-06-24
      相关资源
      最近更新 更多