zoukankan      html  css  js  c++  java
  • 智能IC卡与终端(读卡器)之间的传输协议

    1.有两种协议

    T=0,异步半双工字符传输协议

    T=1,异步半双工块传输协议

    终端一般都支持这两种协议,IC卡可以选择支持其中的一种。(因为终端可能需要面对各种类型的卡片,所以必须两种协议都支持,而卡片则不然了

    2.如何判断卡片支持哪种传输协议?

    在ATR值得TD1字段中规定了后续传输中所采用的传输协议,T=0或T=1,如果ATR中不存在ATR的话,则假定采用T=0

    如果在ATR之后卡片与终端之间没有参数协商的PTS过程的话(详细细节可参考ISO7816相关部分),由IC卡指定的协议将在复位应答之后立即被采用。


    3.两种协议在物理层并没有任何的区别,区别在于数据链路层

    4.APDU指令

        命令由终端应用层(Terminal Application Layer,简称TAL)发出,它包括一个由5Byte组成的命令头。每个命令头由5个连续字节CLA、INS、P1、P2和P3组成。

       * CLA(Class Byte of the Command Message)表示命令类别。
       * INS(Instruction Byte of the Command Message)表示指令代码。
       * P1(Parameter 1)和P2(Parameter 2)表示命令的两个附加参数。
       * 根据不同的INS,P3(Parameter 3)指明了发送给IC卡的命令的字节长度或者期待IC卡回送响应的最大数据长度。

        对于T=0,这些字节和通过命令发送的数据一起构成命令传输协议数据单元(Command Transport Protocol Data Unit,简称C-TPDU),命令应用协议数据单元(Command Application Protocol Data Unit,简称C-APDU)到C-TPDU的映射将在后续文章中学习。

        终端传输层(Terminal Transport Layer,简称TTL)传送发送5Byte的命令头给IC卡并等待一个过程字节。

       过程字节(有点类似于响应码

        IC卡接收到命令头以后,向TTL回送一个过程字节。过程字节向TTL指明了下一步该做什么,其编码与TTL行为的对应关系如下所示:

        终端对过程字节的响应:

            过程字节值                  步骤
         1  与INS字节值相同            所有余下的数据将要由TTL传送或者准备接收所有来自IC卡的数据。
         2  与INS字节值的补码相同      下一个数据字节将由TTL传送或者准备接收来自IC卡的下一下数据字节。
         3  0x60                       TTL提供根据额外的工作等待时间。
         4  0x6X或者0x9X(除0x60以外) TTL将等待下一个过程字节或者状态码SW2。

        在情况1、2、3中,操作完成后TTL将等待另一个过程字节。

        在情况4中,第二个过程字节或状态码SW2已被收到后,TTL将要做如下事情。

       * 如果过程字节为0x61,TTL将向IC卡发送一个最大长度为0xXX的Get Response命令头,XX为SW2值。
       * 如果过程字节为0x6C,TTL将立即向IC卡重发一个命令的命令头,其长度为XX,XX是SW2的值。
       * 如果过程字节为0x6X(除0x60、0x61、0x6C以外)或者0x9X(即状态),TTL将在响应APDU中向TAL回送状态码,并等待下一个C-APDU。

        TTL与IC卡之间交换命令和数据时,TTL和IC卡必须清楚地知道数据流向和I/O的驱动者,即是终端向IC卡发送数据还是IC卡向终端发送数据。(数据流的方向

      


  • 相关阅读:
    EXT2
    Ext.DomQuery

    spring.net+nhibernate
    网址
    一句代码就解决一个开发中常见的小bug....
    Swift 已经正式开源了! 你了解到了吗?
    [知识点随笔] UIView--transform 属性
    懒加载(延迟加载)之后,在使用数据过程中容易出现的bug
    java设计模式
  • 原文地址:https://www.cnblogs.com/ttss/p/4293278.html
Copyright © 2011-2022 走看看