Mifare S50与Mifare S70
转自http://blog.sina.com.cn/s/blog_9ed067ad0100zyjx.html
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),作用是将块中的内容存到数据寄存器中,不过这个命令很少用到。
Mifare S50与Mifare S70的更多相关文章
- 射频识别技术漫谈(13)——Mifare S50与Mifare S70
Mifare S50和Mifare S70又常被称为Mifare Standard.Mifare Classic.MF1,是遵守ISO14443A标准的卡片中应用最为广泛.影响力最大的的一员.而Mif ...
- 射频识别技术漫谈(13)——Mifare S50与S70【worldisng笔记】
Mifare S50和Mifare S70又常被称为Mifare Standard.Mifare Classic.MF1,是遵守ISO14443A标准的卡片中应用最为广泛.影响力最大的的一员.而Mif ...
- NXP Mifare S50标准IC卡- 访问位(Access Bits) 分析
Mifare S50 标准IC卡有1K 字节的EEPROM,主要用来存储数据和控制信息.1K 字节的EEPROM分成16 个区,每区又分成4 段,每1段中有16 个字节.每个区的最后一个段叫“尾部&q ...
- 射频识别技术漫谈(14)——Mifare S50与S70的存取控制
存取控制指符合什么条件才能对卡片进行操作. S50和S70的块分为数据块和控制块,对数据块的操作有“读”.“写”.“加值”.“减值(含传输和存储)”四种,对控制块的操作只有“读”和“写”两种. S50 ...
- Mifare系列1-简介(转)
文章转自 文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38079827 感谢原创作者的辛勤,对您再次表达感谢! 随着社会的发展, ...
- MIFARE系列1《MIFARE简介》
随着社会的发展,智能卡在很多领域得到了广泛的应用.特别是非接触卡,由于使用方便以及功能强大的特点,在管理.公交.工作证.身份识别等领域得到了快速的普及和推广. 非接触卡已经逐步发展成为一个独立的跨学科 ...
- 射频识别技术漫谈(11)——Mifare系列卡的共性【worldsing笔记】
Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfi ...
- 射频识别技术漫谈(11)——Mifare系列卡的共性
Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfi ...
- 进监狱全攻略之 Mifare1 Card 破解
补充新闻:程序员黑餐馆系统 给自己饭卡里充钱 ,技术是双刃剑,小心,小心! 前言 从M1卡的验证漏洞被发现到现今,破解设备层出不穷,所以快速傻瓜式一键破解不是本文的重点,年轻司机将从本文中获得如下技能 ...
随机推荐
- Confluence5.1 最新版的安装&破解&汉化
转自 博客 http://seanzhou.iteye.com/blog/1287016 亲自基本上按照这个教程装了一遍,成功运行. 1.介绍 Atlassian Confluence(简称Confl ...
- POJ 3384 Feng Shui 半平面交
题目大意:一个人很信"Feng Shui",他要在房间里放两个圆形的地毯. 这两个地毯之间可以重叠,可是不能折叠,也不能伸到房间的外面.求这两个地毯可以覆盖的最大范围.并输出这两个 ...
- poj 3422 (费用流)
从左上角到有下角k次能获得的最大值. 跟hdu 2686一样的题目,这题一个点可以重复走,只能得到一次值. #include<stdio.h> #include<string.h&g ...
- android shape的使用详解以及常用效果(渐变色、分割线、边框、半透明阴影效果等)
shape使用.渐变色.分割线.边框.半透明.半透明阴影效果. 首先简单了解一下shape中常见的属性.(详细介绍参看 api文档 ) 转载请注明:Rflyee_大飞: http://blog.cs ...
- python-增删改查
###增删改查 names = ["zhangding","wangxu","wudong","cheng"] #增 n ...
- C#解leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal
Given inorder and postorder traversal of a tree, construct the binary tree. Note:You may assume that ...
- session在登录中的使用
package action.exam; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com. ...
- java编程思想-泛型思维导图
- mysql set names.
SET NAMES utf8 相当于 SET character_set_client = utf8 --用来设置客户端送给MySQL服务器的数据的 字符集 SET character_set_res ...
- iOS开发中的常用宏定义
在iOS开发的过程中合理的使用宏定义能够极大提高编码的速度,下面是一些常用的宏定义,部分内容来自互联网 Log // 调试状态, 打开LOG功能 #ifdef DEBUG #define GLLog( ...