浅谈Mifare ultralight原理
1.概述
UltraLight卡是一种512位非接触式IC卡。
2.电气特性
容量为512位,分为16块,每块4个字节
每页可编程锁定只读功能
32位用户可定义的一次性编程区域
384位用户读、写区域
数据可保留2年,可循环改写1000次
唯一的7字节序列号
工作频率:13.56MHZ
通信速率:106KB波特率
防 冲 突:同一时间可处理多张卡
读写距离:在100mm以内(与天线有关)
卡内无需电源
3.存储结构
UltraLight卡共512位,分为16块,每块为4个字节。存储结构如下:
块号 |
字节0 |
字节1 |
字节2 |
字节3 |
说明 |
0 |
SN0 |
SN1 |
SN2 |
BCC0 |
Serial Number |
1 |
SN3 |
SN4 |
SN5 |
SN6 |
Serial Number |
2 |
BCC1 |
保留 |
Lock0 |
Lock1 |
保留/Lock |
3 |
OTP0 |
OTP1 |
OTP2 |
OTP3 |
OTP |
4 |
Data0 |
Data1 |
Data2 |
Data3 |
Data read/write |
5 |
Data4 |
Data5 |
Data6 |
Data7 |
Data read/write |
6 |
Data8 |
Data9 |
Data10 |
Data11 |
Data read/write |
7 |
Data12 |
Data13 |
Data14 |
Data15 |
Data read/write |
8 |
Data16 |
Data17 |
Data18 |
Data19 |
Data read/write |
9 |
Data20 |
Data21 |
Data22 |
Data23 |
Data read/write |
10 |
Data24 |
Data25 |
Data26 |
Data27 |
Data read/write |
11 |
Data28 |
Data29 |
Data30 |
Data31 |
Data read/write |
12 |
Data32 |
Data33 |
Data34 |
Data35 |
Data read/write |
13 |
Data36 |
Data37 |
Data38 |
Data39 |
Data read/write |
14 |
Data40 |
Data41 |
Data42 |
Data43 |
Data read/write |
15 |
Data44 |
Data45 |
Data46 |
Data47 |
Data read/write |
(1) 第0、1块存放着卡的序列号等信息,只可读。依据ISO/IEC14443-3 校验位计算如下:
BCC0=CT⊕SN0⊕SN1⊕SN2
BCC1=SN3⊕SN4⊕SN5⊕SN6
(2) 第2块为LOCK BYTES, 设置字节2和字节3对应的位可以将从第3块到15块单独地锁定为只读区域。
Lock0
L 7 |
L 6 |
L 5 |
L 4 |
L OTP |
BL 15-10 |
BL 9-4 |
BL OTP |
Lock1
L 15 |
L 14 |
L 13 |
L 12 |
L 11 |
L 10 |
L 9 |
L 8 |
Lx 锁定X块为只读
BLX 锁定对应的Lx位
注意:一旦block-locking(BLX)位被设置为锁定配置,对应的内存区域将被冻结。如:BL15-10 设置为1,则L15到L10再也不能改变。
Lock0和Lock1可以通过写命令来设置,写入的内容与当前内容进行位或操作得到新的内容,初始值为0。该过程是不可逆转的。如果有一个位被置为1,就再也不能置为0。
(3) 第3页为OTP,即一次性编程,初始值为0。可以通过写命令来改变它的值,写入的值和当前值进行位或操作得到新的值。这个过程是不可逆转的。如果一个位被置为1,将再也不能置回0。
注意:该内存区域可以用作最大值为32的一次性计数器。
(4) 第4到15块为用户读/写区域,初始值为0。
下面我们来规划例子程序的MifareUltraLight标签存储。
本例子程序是把MifareUltraLight标签用来存储商品信息,为了简单起见,只包括商品名称,商品单价,销售状态。商品名称设计最长为16个中文字,商品单价设计为整数部分4位,小数部分4位。
销售状态有未售状态和已售状态,初始为未销售,初始值为”0000”,用”1111”来表示已售状态,如果未售状态读商品标签,读成功后,就把已售状态标记”1111”写进标签里。
商品名称前8个汉字存储在标签的块4至块7里。(表2黄色部分)
商品名称后8个汉字存储在标签的块8至块11里。(表2鲜绿色部分)
商品单价整数部分存储在标签的块12里。(表2红色部分)
商品单价小数部分存储在标签的块13里。(表2粉红色部分)
商品销售状态存储在块14里。(表2灰色部分)
块号 |
字节0 |
字节1 |
字节2 |
字节3 |
说明 |
0 |
SN0 |
SN1 |
SN2 |
BCC0 |
Serial Number |
1 |
SN3 |
SN4 |
SN5 |
SN6 |
Serial Number |
2 |
BCC1 |
保留 |
Lock0 |
Lock1 |
保留/Lock |
3 |
OTP0 |
OTP1 |
OTP2 |
OTP3 |
OTP |
4 |
Data0 |
Data1 |
Data2 |
Data3 |
Data read/write |
5 |
Data4 |
Data5 |
Data6 |
Data7 |
Data read/write |
6 |
Data8 |
Data9 |
Data10 |
Data11 |
Data read/write |
7 |
Data12 |
Data13 |
Data14 |
Data15 |
Data read/write |
8 |
Data16 |
Data17 |
Data18 |
Data19 |
Data read/write |
9 |
Data20 |
Data21 |
Data22 |
Data23 |
Data read/write |
10 |
Data24 |
Data25 |
Data26 |
Data27 |
Data read/write |
11 |
Data28 |
Data29 |
Data30 |
Data31 |
Data read/write |
12 |
Data32 |
Data33 |
Data34 |
Data35 |
Data read/write |
13 |
Data36 |
Data37 |
Data38 |
Data39 |
Data read/write |
14 |
Data40 |
Data41 |
Data42 |
Data43 |
Data read/write |
15 |
Data44 |
Data45 |
Data46 |
Data47 |
Data read/write |
表2
浅谈Mifare ultralight原理相关推荐
- 浅谈:Spring Boot原理分析,切换内置web服务器,SpringBoot监听项目(使用springboot-admin),将springboot的项目打成war包
浅谈:Spring Boot原理分析(更多细节解释在代码注释中) 通过@EnableAutoConfiguration注解加载Springboot内置的自动初始化类(加载什么类是配置在spring.f ...
- 浅谈前端路由原理hash和history
浅谈前端路由原理hash和history
- 浅谈“三层结构”原理与用意(转帖)
浅谈"三层结构"原理与用意 序 在刚刚步入"多层结构"Web应用程序开发的时候,我阅读过几篇关于"asp.net三层结构开发"的文章.但其多 ...
- svc的参考文献_浅谈SVC的原理及作用
浅谈 SVC 的原理及作用 超(特)高压运行检修公司 自贡中心 涂洪骏 摘要: 介绍了静止补偿器 (SVC) 的工作特性.基本原理.运行方式,重点针对 SVC 的作用进行了分析. 关键词 :静止补偿器 ...
- 浅谈Wi-Fi渗透--原理篇
浅谈Wi-Fi渗透–原理篇 在这个手机比人多的移动时代,无线网络Wi-Fi遍布每个角落,殊不知隐藏其中的风云涌动 广义上无线网络应用类型如下,今天的文章就聚焦于 WLAN的一种无线局域网技术--Wi- ...
- 浅谈会话劫持原理及实践
<监视你的一举一动> ---浅谈会话劫持原理及实践 前言 通常,大家所说的入侵,都是针对一台主机,在获得管理员权限后,就很是得意:其实,真正的入侵是占领整个内部网络.针对内部网络的攻击方法 ...
- 浅谈实时数据库系统原理及其应用
浅谈实时数据库系统原理及其应用 孙俊彦 苏州大学计算机科学与技术学院 摘要: 现代的工程和时间关键型应用对数据库的实时性和对数据直接分析和处理的能力要求特别高,单纯的传统关系数据库已经不能满足需要 ...
- 浅谈Openstack网络原理(openstack无法上网?)
浅谈Openstack网络 本版本为Stein版本,采用OVS网络 测试环境:1控制节点,2个计算节点 目录 浅谈Openstack网络 一.网络结构图 二.OVS分析 三.DHCP服务 四.Rout ...
- 独家 | 浅谈强化学习原理(附代码链接)
作者:Michel Kana 翻译:王琦 校对:王雨桐 本文约4900字,建议阅读15分钟. 本文介绍了强化学习的基本原理,并通过代码实例来讲解如何找到最优策略. Google在2017年年底发布了A ...
最新文章
- Uber准备放弃自动驾驶,转手卖给前谷歌无人车CTO,估值曾被孙正义炒到72.5亿美元...
- 真惨!连各大编程语言都摆起地摊了!
- C#基础——密码加密
- P2085 最小函数值 堆
- Java的学习与java大数运算
- java 8 排序反转_Java 8 排序小结
- linux打开文件int open,Linux下C语言open函数打开或创建文件与read,write函数详细讲解...
- js中prototype用法
- codeblock socket 编译错误_在 Go 中使用 Websockets 和 Socket.IO
- 将 EndNote 文献信息导出成 BibTeX 格式(可根据label排序)以及出现三个问号
- Mac. 修改bash_file
- 解决方法:python下载慢,pycharm下载慢,anaconda下载慢,百度网盘链接分享给你备用
- 《经济学原理》——读书笔记(二)
- 基于QT的科学计算器
- 爱奇艺内容中台数据中心的设计与实现
- 跟着我学习 AI丨语音识别:将语音转为数字信号
- 位运算--异或运算XOR
- 云更新服务器更新不了最新游戏,成都领沃_云更新官方网站
- 语音信号处理频域语谱图matlab实验,语音信号的频域分析
- eeglab下载和配置
热门文章
- 2022安全员-B证考试练习题及模拟考试
- RESTful API接口设计规范
- matlab .mat转.txt
- 【CVPR 2021】Joint Generative and Contrastive Learning for Unsupervised Person Re-identification
- LIO-SAM源码解析(七):utility.h
- Q8BERT: Quantized 8Bit BERT
- 阿里云云盾证书(HTTPS 证书) 的免费续费操作流程
- 【QT】详解 *.pro、*.pri、*.prf、*.prl文件
- scrcpy 安卓投屏、录屏工具
- 代码修炼之路——木桶布局