码迷,mamicode.com
首页 > 其他好文 > 详细

SIM通信协议-传输协议

时间:2017-12-13 23:32:08      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:传输层   时序   term   表示   ges   编码   UI   sim卡   组成   

概述

1.SIM卡传输协议架构类似与TCP/IP的OSI模型。分为5层

  • 物理层
  • 数据链路层
  • 传输层
  • USAT层
  • 应用层

 

1.1物理层

通过IO口传输二进制数据。

1.2数据链路层

定义字符交换的时序和差错处理。数据链路层定义了T=0和T=1两种传输方式。他们都是半双工传输,T=0是基于字节传输。T=1是基于块传输。

1.21 T=0传输方式(面向字节)

传输从一个命令头开始,该命令头由CLA,INS,P1,P2,P3组成。终端向UICC(智能卡)发送字节头,UICC就会响应一个字节的结果给终端。该结果有以下几种定义。

  1. 如果该字节等于命令头的INS,那么终端从UICC获取剩余的数据,或者UICC从终端获取剩余的数据。
  2. 如果该字节等于命令头的补码,那么终端从UICC读取另一次数据,或者UICC从终端读取另一次数据。
  3. 如果该字节等于‘60’,没有额外的数据需要传输,终端只能等待传输过程字节。
  4. 如果该字节等于‘61’,终端要等待第二个过程字节,并且发送P3为最大长度的GET RESPONSE 头给UICC。
  5. 如果该字节等于‘6C’,终端需要等待第二个过程字节,并且发送P3位最大长度的与之前相同的头给UICC。

命令结束过,UICC返回给终端一个2个字节的状态SW1和SW2.(详细常考GSM手册。)

 

1.22 T=1传输方式(面向块)

一个块的架构如下图所示。

技术分享图片

NAD:块地址字节(必须)

PCB:控制协议字节(必须)

INF:  0~256bit的信息字节(可选)

T=0协议定义了三种类型的块

  1. I-Bolck:在应用层传输数据,还包含该数据是否需要响应的标志。
  2. R-Block:用于传输响应。
  3. S-Block:用于传输控制信息。

 

1.3 传输层

该层协议协定了APDU到TPDU的映射关系,以及TPDU与卡如何完成数据交互。终端要与UICC进行通信,那么必须将应用协议数据单元APDU映射为传输协议数据单元TPDU。

1.31 APDU COMMAND

技术分享图片

APDUCOMMAND由Command header 和 Command body两部分组成。其中CLA INS P1 P2 和之前介绍的一样。只是P3变为了可变长度的Command body,Command 的Lc(期望发送的数据长度)和Le(期望接收的数据长度)两个域是可选的,于是乎我们的APDU COMMAND就有以下几种组合方式。

技术分享图片

 

1.32 APDU COMMAND的编码

技术分享图片

以上为APDU的编码。我们根据Case 1-Case 4来分别分析这四种组合的编码。

  • Case 1 编码:包括Command header。
  • Case 2 编码:包括Command header 和Le,这里Le编码可以为一个字节和三个字节
    •   当Le为一个字节时,所希望接收字节是 1到256
    •       当Le为三个字节时,那么第一个字节为‘00’,后面两个字节所指示的所希望接收字节范围是1-65536
  • Case 3 编码:包括Command header Lc data,Lc和上面的Le编码和意义差不多表示期望发送的字节。
  • Case 4 编码:包括Command header Lc data Le。

1.33 APDU COMMAND 到TPDU COMMAND映射

这里映射也分为4种情况

  1. Case 1:技术分享图片

     

  2. Case 2: 技术分享图片
  3. Case 3:技术分享图片

  4.  Case 4:技术分享图片

 

 1.4 USAT层

USAT层使用应用状态字来指示

  • 终端主动命令的可用性‘91XX’。
  • 用于响应终端Envelope命令的可用数据(‘9000’,‘62XX’,‘63XX’)。
  • 暂时无法使用USAT去处理Envelope(‘9300’)。

1.41 主动命令

当状态字SW1-SW2 为‘9000’,这卡可以通过回复‘91XX’来指示接下来有主动命令要发送。终端通过FETCH-APDU来获取卡的主动命令。终端通过TERMINAL RESPONSE来回复卡。

技术分享图片

1.42 ENVELOPE 命令

该命令用于传输数据到USAT。

 

1.5 应用层

应用层则包括UICC的文件系统,以及UICC的安全机制,应用交互机制。

 

 

 

 

 

  

 

SIM通信协议-传输协议

标签:传输层   时序   term   表示   ges   编码   UI   sim卡   组成   

原文地址:http://www.cnblogs.com/a-lai/p/8034795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!