ISO 7816(SIM 卡)协议

Posted

技术标签:

【中文标题】ISO 7816(SIM 卡)协议【英文标题】:ISO 7816 (SIM CARD ) Protocol 【发布时间】:2014-12-16 07:53:06 【问题描述】:

我正在尝试与使用 ISO 7816 协议且 T=1 的设备通信。我的硬件设置是使用 SIM 卡模式下配置的 USART 的微控制器。我已阅读相关文档,但不清楚 ATR 后会发生什么。

    据我了解,输入频率在 ATR 中使用初始 F=372、D=1。因此,如果我的输入频率为 3.571MHz,ATR 响应将以 9600 波特返回。这是我在示波器和监控 USART 的 TTL 电缆上看到的。这是正确的吗?

    查看 ATR 的结果时,它显示 F=372,D=12。这是否意味着与卡通信的波特率仍然是 9600 波特,或者我应该在收到 ATR @ 返回的波特率参数(即 115 kbaud)后发送所有消息? PPS 似乎在 9600 波特下工作,但这没有任何意义,为什么返回的 F 和 D 的波特率与卡实际运行的接口不同。

    答案很可能是否定的,但 PPS 和 ATR 运行的波特率是否与 ISO7816 的其他命令不同?

【问题讨论】:

【参考方案1】:

    是的,ATR 以 9600 波特率发送。

    波特率保持在 9600 波特,除非您发送 PPS 请求以更改它。这必须是发送到卡的第一个命令。 ATR 中的 F 和 D 参数是卡支持的最大值——您可以选择较低的值。 (但卡没有义务支持所有可能的中间值——如果它通过返回带有空 INF 字段的 PPS 响应来拒绝这些较低的值,您可以继续以 9600 波特,或重置卡并尝试不同的值。) PPS 响应以 9600 波特率发送,下一条命令以新的波特率发送到卡。

    否(或仅当您通过 PPS 请求更改波特率时)。

【讨论】:

感谢您的回复,这似乎证实了我在我的环境中看到的内容。

以上是关于ISO 7816(SIM 卡)协议的主要内容,如果未能解决你的问题,请参考以下文章

银行卡(芯片卡)协议是啥

使用 SAM 模块存储安全密钥

通过 CCID 的 ISO/IEC 7816 命令

SIM卡通信协议

是否可以使用 Android 设备模拟 felica 卡?

使用 ISO 7816-4 APDU 的 DESFire 卡中的外部身份验证