M1卡性能简介及存取控制字节规则详解

M1卡性能简介及存取控制字节规则详解

一、 主要指标

  • 容量为 8K 位 EEPROM
  • 分为 16 个扇区,每个扇区为 4 块,每块 16 个字节,以块为存取单位
  • 每个扇区有独立的一组密码及访问控制
  • 每张卡有唯一序列号,为 32 位
  • 具有防冲突机制,支持多卡操作
  • 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路
  • 数据保存期为 10 年,可改写 10 万次,读无限次
  • 工作温度:-20℃~50℃(湿度为 90%)
  • 工作频率:13.56MHZ
  • 通信速率:106 KBPS
  • 读写距离:10 cm 以内(与读写器有关)

二、 存储结构

  1. M1 卡分为 16 个扇区,每个扇区由 4 块(块 0、块 1、块 2、块 3)组成,(我们也
    将 16 个扇区的 64 个块按绝对地址编号为 0~63,存贮结构如下图所示:
    M1卡存贮结构图
  2. 第 0 扇区的块 0(即绝对地址 0 块),它用于存放厂商代码,已经固化,不可更改。
  3. 每个扇区的块 0、块 1、块 2 为数据块,可用于存贮数据,数据块可作两种应用:
    1)用作一般的数据保存,可以进行读、写操作。
    2)用作数据值,可以进行初始化值、加值、减值、读值操作。
  4. 每个扇区的块 3 为控制块,包括了密码 A、存取控制、密码 B。具体结构如下:
    | A0 A1 A2 A3 A4 A5 | FF 07 80 69 | B0 B1 B2 B3 B4 B5 |
    |----------------------------|------------------|---------------------------|
    |密码 A(6 字节)|存取控制(4 字节)|密码 B(6 字节)|
  5. 每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取
    控制。
    存取控制(4 字节,其中字节 9 为备用字节)结构如下所示:

在这里插入图片描述
例:对块 0 的控制:
在这里插入图片描述

控制位字节bit7bit6bit5bit4bit3bit2bit1bit0
C2XFF1111(取反)1111(取反)
C1X0700000111(取反)
C3X8010000000
预留位69--------

三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如
进行减值操作必须验证 KEY A,进行加值操作必须验证 KEY B,等等)。
6. 数据块(块 0、块 1、块 2)的存取控制如下:
在这里插入图片描述
例如:当块 0 的存取控制位 C10 C20 C30=1 0 0 时,验证密码 A 或密码 B 正确后可读;
验证密码 B 正确后可写;不能进行加值、减值操作。
7. 控制块块 3 的存取控制与数据块(块 0、1、2)不同,它的存取控制如下:
在这里插入图片描述
例如:当块 3 的存取控制位 C13 C23 C33=1 0 0 时,表示:
密码 A:不可读,验证 KEYA 或 KEYB 正确后,可写(更改)。
存取控制:验证 KEYA 或 KEYB 正确后,可读、可写。
密码 B:验证 KEYA 或 KEYB 正确后,可读、可写。

三、 工作原理

  1. 卡片的电气部分只由一个天线和 ASIC 组成。
  2. 天线:卡片的天线是只有几组绕线的线圈,很适于封装到 IS0 卡片中。
  3. ASIC:卡片的 ASIC 由一个高速(106KB 波特率)的 RF 接口,一个控制单元和一个
    8K 位 EEPROM 组成。
  • 工作原理:
    读写器向 M1 卡发一组固定频率的电磁波,卡片内有一个 LC 串联谐振电路,其频率与读写器发射的频率相同,在电磁波的激励下,LC 谐振电路产生共振,从而使电容内有了电荷,在这个电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累的电荷达到 2V 时,此电容可做为电源为其它电路提供工作电压,将卡内数据发射出去或接取读写器的数据。

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

在这里插入图片描述

  1. 复位应答(Answer to request)
    M1 射频卡的通讯协议和通讯波特率是定义好的,当有卡片进入读写器的操作范围时,
    读写器以特定的协议与它通讯,从而确定该卡是否为 M1 射频卡,即验证卡片的卡型。
  2. 防冲突机制 (Anticollision Loop)
    当有多张卡进入读写器操作范围时,防冲突机制会从其中选择一张进行操作,未选中的
    则处于空闲模式等待下一次选卡,该过程会返回被选卡的序列号。
  3. 选择卡片(Select Tag)
    选择被选中的卡的序列号,并同时返回卡的容量代码。
  4. 三次互相确认(3 Pass Authentication)
    选定要处理的卡片之后,读写器就确定要访问的扇区号,并对该扇区密码进行密码校验,
    在三次相互认证之后就可以通过加密流进行通讯。(在选择另一扇区时,则必须进行另一扇
    区密码校验。)
  5. 对数据块的操作
    读 (Read):读一个块;
    写 (Write):写一个块;
    加(Increment):对数值块进行加值;
    减(Decrement):对数值块进行减值;
    存储(Restore):将块中的内容存到数据寄存器中;
    传输(Transfer):将数据寄存器中的内容写入块中;
    中止(Halt):将卡置于暂停工作状态;

五、 控制字节规则详解

  1. 我们知道如果要读取一个扇区的每一块的数据都需要通过KeyA或者KeyB的验证,而厂家生产出来的M1卡默认的控制位为(FF 07 80 69),默认的KeyA和KeyB为(FFFFFFFFFFFF)。但是这样是非常的不安全的,所以我们需要修改原始密码。原始密码的修改是非常的简单的,因为默认的控制位是(FF 07 80 69),对应的每一块的权限表达为:
默认值块3 块2 块1 块0 块3 块2 块1 块0
字节6(0xFF)1 1 1 1 1 1 1 1
字节7(0x07)0 0 0 0 0 1 1 1
字节8(0x80)1 0 0 0 0 0 0 0
字节9(0x69)这个一般不用

2.将值代入表格

字节块3块2块1块0块3块2块1块0
字节6C23_bC22_bC21_bC20_bC13_bC12_bC11_bC10_b
0xFF11111111
字节7C13C12C11C10C33_bC32_bC31_bC30_b
0x0700000111
字节8C33C32C31C30C23C22C21C20
0x8010000000
字节9
  1. 三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如: 进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。因为控制字是由部分控制位取反的来的,由上表C33_b就可知道,所以我们要再取反一次获取原来的控制位,就能得出控制位(_b为取反,比如:C33为1取反后为C33_b为0)
    根据上表得到取反值为:
默认值块3块2块1块0块3块2块1块0
字节6(0xFF)00000000
字节7(0x07)00001000
字节8(0x80)10000000
字节9(0x69)
  1. 最终在存取控制中每个块相应的三个控制位,定义如下:
扇区中控制位对应值
块0C10 C20 C300 0 0
块1C10 C20 C300 0 0
块2C10 C20 C300 0 0
块3C10 C20 C300 0 1

在这里插入图片描述
块0控制位为:0 0 0 权限为: 通过A或者B密码认证后可读,可写,可进行加值和减值操作。
块1控制位为:0 0 0 权限为: 通过A或者B密码认证后可读,可写,可进行加值和减值操作。
块2控制位为:0 0 0 权限为: 通过A或者B密码认证后可读,可写,可进行加值和减值操作。
块3和其他的权限参照表是不一样的,块3对应的权限表为下表:
在这里插入图片描述
块3控制位为: 0 0 1
权限为:A密码不可读,验证A或者B密码后可改写A密码。验证A或者B密码后,可读可改写存取控制 。 验证A密码或者B密码后,可读可改写B密码。

六、 参考链接

链接: M1卡存取控制字节规则详解

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值