SIM卡通信协议

Posted 项海龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SIM卡通信协议相关的知识,希望对你有一定的参考价值。

SIM卡通信过程分为4个步骤

  1. SIM卡连接和激活
  2. SIM卡复位
  3. SIM卡和ME之间的命令和响应过程
  4. SIM卡释放

1 SIM卡的连接和激活

  正确连接ME和SIM卡后,ME按照如下的顺序激活SIM卡

  •   置RST为低电平
  •       给Vcc供电
  •       ME和SIM卡的IO口均设置为接收状态
  •       CLK上有稳定的时钟信号

2 SIM卡的复位

  在激活SIM卡后,ME会冷复位和热复位SIM卡。随后,SIM卡应该复位内部数据并且发起ATR过程。ME根据ATR的信息,有可能发起PTS过程来进一步商议通信协议和波特率。这些都成功后,ME和SIM卡就可以进行APDU交互过程。

 

2.1 SIM卡冷复位

  正确连接SIM卡后,ME就会立刻对SIM卡进行冷复位,复位时序如下

 

  

  注:SIM卡应当在RST被拉高后的400到40000个时钟周期内发起ATR过程。

 

2.2 SIM卡热复位

  ME可以在SIM卡被激活后的任何时间里随时对SIM卡进行复位,这叫热复位。热复位时,RST会仙贝拉低40000个时钟周期,然后被拉高,SIM卡应答跟冷复位相同。

  

  注:SIM卡应当在RST被拉高后的400到40000个时钟周期内发起ATR过程。

2.3 字符帧传输

  1.SIM卡和ME之间使用IO的半双工通信(一般为异步),IO上的信息被打包成字符帧来传输。PTS和APDU都是这种方式。

  2.字符帧的结构如下图

    

    S是开始位,低电平。

    Bi是i字节的有效数据据。

      C 是奇偶校验位。

    P是保护时间

    S是停止位。

  3.字符帧的时序

    字符帧内每一位的持续时间定义为基本时间单元(etu),他依赖与时钟频率(f),时钟转换因子(f),比特调整因子(D),

          etu = F/(f*D)秒

    保护时间P一般为2+N etu

    参数F,D,N可以在ATR和PTS过程中由SIM和ME商榷确定。默认值为F=372,D=1,N=0。

 

 

2.4 ATR过程

  ATR过程使用默认参数F=372,D=1,N=0,若CLK上是3.579HZ 那么etu = 372/2.579波特率为1/etu=9600bps。

  ATR 过程包含如下信息:传输协议的类型,控制参数,和识别信息。ATR过程由一系列字符组成。应该遵循如下格式

  

     TS    :初始字符(必须传输)

   TO   :格式字符(必须传输)

   TAi~TBi :  接口字符(可选)

   TCK   :奇偶校字符

 

   字符具体含义和编码参考GSM11.11文档

2.5 PTS过程

  在协商模式下,ATR过程默认使用的参数所表明的协议会一直用下去,直到一个成功的PTS过程完成。GSM11.11规定,如果TA1不等于‘11’那么ME就会发起PTS过程。

  PTS过程包括ME的PTS请求和SIM卡的PTS应答。他们一般由4个字符组成。

  •   PTSS初始字符 总为FF
  •       PTS0格式字符 高四位分别表示后面字符的存在,低4位表示协议类型
  •       PTS1参数字符 高半字节代表FI,低半字节代表DI.(与TA1匹配)
  •       PCK校验字符

  

 

SIM卡和ME之间的APDU交互过程。

  SIM卡在复位,ATR过程,PTS过程正常结束后就可以正式接收ME的各种命令APDU应该使用T=0来传输,正常的APDU分为命令和响应两部分,响应的编码如下

  APDU命令格式

  

  APDU响应格式

  

  

  详细状态参考GSM11.11第9章。

 

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

ISO 7816(SIM 卡)协议

[android] android通信协议

NBIOT模块连接巴法云实践(SIM7020)

NBIOT模块连接巴法云实践(SIM7020)

NBIOT模块连接巴法云实践(SIM7020)

NBIOT模块连接巴法云实践(SIM7020)