zoukankan      html  css  js  c++  java
  • S50非接触式IC卡 学习笔记

    S50非接触式IC卡性能简介(M1

    一、 主要指标

    l 容量为8K位EEPROM(1K 字节)

    l 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位

    l 每个扇区有独立的一组密码及访问控制

    l 每张卡有唯一序列号,为32位

    l 具有防冲突机制,支持多卡操作

    l 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路

    l 数据保存期为10年,可改写10万次,读无限次

    l 工作温度:-20℃~50℃(湿度为90%)

    l 工作频率:13.56MHZ

    l 通信速率:106 KBPS

    l 读写距离:10 cm以内(与读写器有关)

    三、存储结构

    MF1卡分为16个扇区,每区有4块(块0~块3),共64块,按块号编址为0~63。第0扇区的块0(即绝对地址块0)用于存放芯片商、卡商相关代码,已经固化不可更改。其他各扇区的块0、块1、块2为数据块,用于存贮用户数据;块3为各扇区控制块,用于存放密码A、存取控制条件设置、密码B。各区控制块结构相同,如图1所示容量 = 16区 * 4块 * 16字节 = 1024字节。

    1、存贮结构如下图所示:

             
     

    块0

    IC卡厂家信息

    数据块

    0

    扇区0

    块1

     

    数据块

    1

     

    块2

     

    数据块

    2

     

    块3

    密码A 存取控制 密码B

    控制块

    3

     

    块0

     

    数据块

    4

    扇区1

    块1

     

    数据块

    5

     

    块2

     

    数据块

    6

     

    块3

    密码A 存取控制 密码B

    控制块

    7

       

       
     

    0

     

    数据块

    60

    扇区15

    1

     

    数据块

    61

     

    2

     

    数据块

    62

     

    3

    密码A 存取控制 密码B

    控制块

    63

    2、第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。

    3、每个扇区的块0、块1、块2为数据块,可用于存贮数据。

    数据块可作两种应用:

    ★ 用作一般的数据保存,可以进行操作。

    ★ 用作数据值,可以进行初始化值、加值、减值、读值操作。

    4、每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下:

    clip_image002

    密码A(6字节) 存取控制(4字节) 密码B(6字节)

    5、每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:

    块0: C10 C20 C30

    块1: C11 C21 C31

    块2: C12 C22 C32

    块3: C13 C23 C33

    例如C10中的C代码这是控制位,1代表第一位,0代表是块0的控制位

    三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如

    进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制

    clip_image004

    1、"()"内容为M1卡出厂默认值;

    2、红色代表在使用(查表)时需要取反;

    3、控制位以取反(0-3bit)和非取反(4-7bit)两个种值存储

    6、数据块(块0、块1、块2)的存取控制如下:

    控制位(X=0..2)

    访 问 条 件 (对数据块 0、1、2)

    C1X

    C2X

    C3X

    Read

    Write

    Increment

    Decrement, transfer,

    Restore

    0

    0

    0

    KeyA|B

    KeyA|B

    KeyA|B

    KeyA|B

    0

    1

    0

    KeyA|B

    Never

    Never

    Never

    1

    0

    0

    KeyA|B

    KeyB

    Never

    Never

    1

    1

    0

    KeyA|B

    KeyB

    KeyB

    KeyA|B

    0

    0

    1

    KeyA|B

    Never

    Never

    KeyA|B

    0

    1

    1

    KeyB

    KeyB

    Never

    Never

    1

    0

    1

    KeyB

    Never

    Never

    Never

    1

    1

    1

    Never

    Never

    Never

    Never

    (KeyA|B 表示密码A或密码B,Never表示任何条件下不能实现)

    例如:当块0的存取控制位C10 C20 C30=1 0 0时,验证密码A或密码B正确后可读;

    验证密码B正确后可写;不能进行加值、减值操作。

    7、控制块块3的存取控制与数据块(块0、1、2)不同,它的存取控制如下:

         

    密码A

    存取控制

    密码B

    C13

    C23

    C33

    Read

    Write

    Read

    Write

    Read

    Write

    0

    0

    0

    Never

    KeyA|B

    KeyA|B

    Never

    KeyA|B

    KeyA|B

    0

    1

    0

    Never

    Never

    KeyA|B

    Never

    KeyA|B

    Never

    1

    0

    0

    Never

    KeyB

    KeyA|B

    Never

    Never

    KeyB

    1

    1

    0

    Never

    Never

    KeyA|B

    Never

    Never

    Never

    0

    0

    1

    Never

    KeyA|B

    KeyA|B

    KeyA|B

    KeyA|B

    KeyA|B

    0

    1

    1

    Never

    KeyB

    KeyA|B

    KeyB

    Never

    KeyB

    1

    0

    1

    Never

    Never

    KeyA|B

    KeyB

    Never

    Never

    1

    1

    1

    Never

    Never

    KeyA|B

    Never

    Never

    Never

    例如:当块3的存取控制位C13 C23 C33=1 0 0时,表示:

    密码A:不可读,验证KEYA或KEYB正确后,可写(更改)。

    存取控制:验证KEYA或KEYB正确后,可读、可写。

    密码B:验证KEYA或KEYB正确后,可读、可写。

    二、 工作原理

    卡片的电气部分只由一个天线和ASIC组成。

    天线:卡片的天线是只有几组绕线的线圈,很适于封装到IS0卡片中。

    ASIC:卡片的ASIC由一个高速(106KB波特率)的RF接口,一个控制单元和一个

    8K位EEPROM组成。

    工作原理:读写器向M1卡发一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,LC谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到2V时,此电容可做为电源为其它电路提供工作电压,将卡内数据发射出去或接取读写器的数据。

    三、 M1射频卡与读写器的通讯

    image

    复位应答(Answer to request)

    M1射频卡的通讯协议和通讯波特率是定义好的,当有卡片进入读写器的操作范围时,读写器以特定的协议与它通讯,从而确定该卡是否为M1射频卡,即验证卡片的卡型。

    防冲突机制 (Anticollision Loop)

    当有多张卡进入读写器操作范围时,防冲突机制会从其中选择一张进行操作,未选中的则处于空闲模式等待下一次选卡,该过程会返回被选卡的序列号。

    选择卡片(Select Tag)

    选择被选中的卡的序列号,并同时返回卡的容量代码。

    三次互相确认(3 Pass Authentication)

    选定要处理的卡片之后,读写器就确定要访问的扇区号,并对该扇区密码进行密码校验,在三次相互认证之后就可以通过加密流进行通讯。(在选择另一扇区时,则必须进行另一扇区密码校验。)

    对数据块的操作

    (Read):读一个块;

    (Write):写一个块;

    (Increment):对数值块进行加值;

    (Decrement):对数值块进行减值;

    存储(Restore):将块中的内容存到数据寄存器中;

    传输(Transfer):将数据寄存器中的内容写入块中;

    中止(Halt):将卡置于暂停工作状态;

  • 相关阅读:
    使用Sed抽取MySQL安装文档的目录及行号
    [MySQL]关于Com_状态
    [译]理解对象存储如何工作
    [译]OpenStack Object Storage Monitoring
    通过设置swift中container的ACL提供匿名访问及用户授权读取服务
    使用swift命令遭遇503错误
    swift-get-nodes简单使用
    修改虚拟硬盘的大小
    php-fpm重启
    Windows学习"Network Analysis in Python"
  • 原文地址:https://www.cnblogs.com/worldsing/p/3068256.html
Copyright © 2011-2022 走看看