Mifare S50和Mifare S70又常被称为Mifare Standard、Mifare Classic、MF1,是遵守ISO14443A标准的卡片中应用最为广泛、影响力最大的的一员。而Mifare S70的容量是S50的4倍,S50的容量是1K字节,S70的容量为4K字节。读写器对卡片的操作时序和操作命令,二者完全一致。

Mifare S50和Mifare S70的每张卡片都有一个4字节的全球唯一序列号,卡上数据保存期为10年,可改写10万次,读无限次。一般的应用中,不用考虑卡片是否会被读坏写坏的问题,当然暴力硬损坏除外。

Mifare S50和Mifare S70的区别主要有两个方面。一是读写器对卡片发出请求命令,二者应答返回的卡类型(ATQA)字节不同。Mifare S50的卡类型(ATQA)是0004H,Mifare S70的卡类型(ATQA)是0002H。另一个区别就是二者的容量和内存结构不同。

Mifare S50把1K字节的容量分为16个扇区(Sector0-Sector15),每个扇区包括4个数据块(Block0-Block3,我们也将16个扇区的64个块按绝对地址编号为0~63),每个数据块包含16个字节(Byte0-Byte15),64*16=1024。

如下表所示:

扇区号

块号

块类型

总块号

扇区0

块0

厂商代码

厂商块

0

块1

数据块

1

块2

数据块

2

块3

密码A   存取控制   密码B

控制块

3

扇区1

块0

数据块

4

 

块1

数据块

5

块2

数据块

6

块3

密码A   存取控制   密码B

控制块

7

...

...

...

...

...

扇区15

块0

数据块

60

块1

数据块

61

块2

数据块

62

块3

密码A    存取控制   密码B

控制块

63

Mifare S70把4K字节的容量分为40个扇区(Sector0-Sector39),其中前32个扇区(Sector0-Sector31)的结构和Mifare S50完全一样,每个扇区包括4个数据块(Block0-Block3),后8个扇区每个扇区包括16个数据块(Block0-Block15)。我们也将40个扇区的256个块按绝对地址编号为0~255),每个数据块包含16个字节(Byte0-Byte15),256*16=4096。如下表所示:

扇区号

块号

块类型

总块号

扇区0

块0

厂商代码

厂商块

0

块1

数据块

1

块2

数据块

2

块3

密码A   存取控制   密码B

控制块

3

…

…

…

…

…

扇区31

块0

数据块

124

块1

数据块

125

块2

数据块

126

块3

密码A   存取控制   密码B

控制块

127

扇区32

块0

数据块

128

块1

数据块

129

…

…

数据块

…

块14

数据块

142

块15

密码A   存取控制   密码B

控制块

143

…

…

…

…

…

扇区39

块0

数据块

240

块1

数据块

241

…

…

数据块

…

块14

数据块

254

块15

密码A   存取控制   密码B

控制块

255

每个扇区都有一组独立的密码及访问控制,放在每个扇区的最后一个Block,这个Block又被称为区尾块,S50是每个扇区的Block3,S70的前32个扇区也是Block3,后8个扇区是Block15。

S50和S70的0扇区0块(即绝对地址0块)用于存放厂商代码,已经固化,不可更改,卡片序列号就存放在这里。除了厂商块和控制块,卡片中其余的块都是数据块,可用于存贮数据。数据块可作两种应用:

(1)用作一般的数据保存,可以进行读、写操作。

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

数据块和值块有什么区别呢?无论块中的内容是什么,你都可以把他看成普通数据,即使它是一个值块。但是并不是任何数据都可以看成是值,因为值块有一个比较严格的格式要求。值块中值的长度为4个字节的补码,其表示的范围(-2147483648~2147483647),值块的存储格式如下:

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

addr

addr

addr

addr

VALUE

VALUE

VALUE

带下划线表示取反。VALUE是值的补码,addr是块号(0-63).只有具有上述格式,才被认为是值块,否则就是普通的数据块。

每个扇区的区尾块为控制块,包括了6字节密码A、4字节存取控制、6字节密码B。例如一张新出厂的卡片控制块内容如下:

A0 A1 A2 A3 A4 A5   FF 07 80 69     B0 B1 B2 B3 B4 B5

密码A               存取控制         密码B

新卡的出厂密码一般是密码A为A0A1A2A3A4A5,密码B为B0B1B2B3B4B5,或者密码A和密码B都是6个FF。存取控制用以设定扇区中各个块(包括控制块本身)的存取条件,这部分有点复杂,后面将专文介绍。

读写器与S50和S70的通讯流程如下图所示:


    卡片选择和三次相互认证在前面已经介绍过。其他操作如下:

    (1)读 (Read):读取一个块的内容,包括普通数据块和值块;

    (2)写 (Write):写数据到一个块,包括普通数据块和值块,值块中写入了非法格式的数据,值块就变成了普通数据块;

    (3)加(Increment):对值块进行加值,只能对值块操作;

    (4)减(Decrement):对值块进行减值,只能对值块操作;

   (5)中止(Halt):将卡置于睡眠工作状态,只有使用WAKE-UP命令才能唤醒。

事实上加值和减值操作并不是直接在Mifare的块中进行的。这两个命令先把Block中的值读出来,然后进行加或减,加减后的结果暂时存放在卡上的易失性数据寄存器(RAM)中,然后再利用另一个命令传输(Transfer)将数据寄存器中的内容写入块中。与传输(Transfer)相对应的命令是存储(Restore),作用是将块中的内容存到数据寄存器中,不过这个命令很少用到。

射频识别技术漫谈(13)——Mifare S50与Mifare S70的更多相关文章

  1. 射频识别技术漫谈(13)——Mifare S50与S70【worldisng笔记】

    Mifare S50和Mifare S70又常被称为Mifare Standard.Mifare Classic.MF1,是遵守ISO14443A标准的卡片中应用最为广泛.影响力最大的的一员.而Mif ...

  2. 射频识别技术漫谈(11)——Mifare系列卡的共性【worldsing笔记】

    Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfi ...

  3. 射频识别技术漫谈(11)——Mifare系列卡的共性

    Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfi ...

  4. 射频识别技术漫谈(10)——识别号的格式变化【worldsing笔记】

    从事RDID行业的朋友经常会遇到这样的情况,同一张ID卡,在不同厂家生产的读卡器上读出的识别号完全不一样,有时甚至差之千里.ID卡的识别号一般是在出厂时被固化在卡片的ROM里,本身是不会改变的,问题出 ...

  5. Mifare S50与Mifare S70

    转自http://blog.sina.com.cn/s/blog_9ed067ad0100zyjx.html Mifare S50和Mifare S70又常被称为Mifare Standard.Mif ...

  6. 射频识别技术漫谈(16)——Mifare UltraLight

    Mifare UltraLight又称为MF0,从UltraLight(超轻的)这个名字就可以看出来,它是一个低成本.小容量的卡片.低成本,是指它是目前市场中价格最低的遵守ISO14443A协议的芯片 ...

  7. 射频识别技术漫谈(6)——通讯协议概述【worldsing笔记】

    通讯协议是通讯的双方或多方在交流时遵守的规矩,包括谁先发起通讯,先交流什么,后交流什么,一方如何问,另一方如何答等.在这里通迅的双方指的是读写器和卡片. 首先是谁先发起通讯,很显然有两种,读写器先发言 ...

  8. 射频识别技术漫谈(1)——概念、分类

    现代社会智能卡已经渗透到生活的方方面面,公交卡.考勤卡.身份证.手机卡等等数不胜数.    智能卡按使用时是否和读卡器接触可分为接触式智能卡和非接触式智能卡,接触式智能卡上有6-8个触点,使用时插在卡 ...

  9. 射频识别技术漫谈(28)——基于MF1射频卡的酒店门锁设计

    电子门锁是现代星级酒店管理电子化.智能化的重要电子设备.相较于传统的机械锁,基于RFID技术的电子门锁使用方便,易于管理,安全性高,可实现对开锁用户的分优先级自动管理,对房间入住信息实现自动统计与报表 ...

随机推荐

  1. 脚本化css

    html文档的视觉显示包含很多变量:字体.颜色.间距等.css标准列举了这些变量.我们称之为样式属性.css定义了这些属性以指定字体.颜色.外边距.边框.背景.图片.文本对齐方式.元素尺寸和元素位置. ...

  2. Ext.Net 使用总结之查询条件中的起始日期

    2.关于查询条件中起始日期的布局方式 首先上一张图,来展示一下我的查询条件的布局,如下: 大多数时候,我们的查询条件都是一个条件占一个格子,但也有不同的时候,如:查询条件是起始日期,则需要将这两个条件 ...

  3. 关于SVM一篇比较全介绍的博文

    转自:http://blog.csdn.net/v_july_v/article/details/7624837 支持向量机通俗导论(理解SVM的三层境界) 前言 动笔写这个支持向量机(support ...

  4. javascript操作JSON对象,增加 删除 修改

    JS只能输入数字,数字和字母等的正则表达式 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace( ...

  5. JQuery初识

    一.什么是JQuery       JQuery官方网站上是这样解释的:JQuery是一个快速简洁的JavaScript库,它可以简化HTML文档的元素遍历.事件处理.动画及Ajax交互,快速开发We ...

  6. 第三条:私有化构造器或者枚举类型强化Singleton属性

    1.5版本之前,我们通常实现单例模式有两种方式: 两种方法前提都是私有化构造器,然后通过不同的方式获取对象. 第一种:通过公共的静态变量获取 public class Elivs{ // 私有化构造器 ...

  7. fafu 1100 线段树

    题目链接 单点更新, 区间查询. 这题空间好小.... #include <iostream> #include <vector> #include <cstdio> ...

  8. :last-child的诡异的问题!!

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. android小知识之中如何获取当前时间

    百度整理过来的 [java] view plaincopyprint? import    java.text.SimpleDateFormat; SimpleDateFormat    format ...

  10. rsyslog 直接读取日志,当日志截断后,不会继续发送

    rsyslog web机器上日志被截断,那么就不会发送到rsyslog服务器 因为imfile记录了offset,然后你直接>导致offset还没到