AN10833-MIFARE type identification procedure.pdf

news2024/7/7 15:44:46

 

1.2范围
本文档描述了如何区分MIFARE接口卡IC系列的成员。ISO/IEC 14443-3描述了类型A的初始化和防冲突程序,该程序为所有MIFARE卡提供卡类型信息。
MIFARE卡与ISO/IEC 14443-3兼容。因此,已经存在的应用可以很容易地扩展到分别使用较新的MIFARE芯片和所有其他兼容ISO/IEC 14443-3的PICC来操作。
本文档提供了一个简单的指南,即ISO/IEC 14443兼容PCD应如何处理MIFARE卡,以及如何区分不同可用类型的MIFARE板卡。

 

2.1使用GetVersion命令准确识别IC
MIFARE Ultralight EV1、MIFARE Plus EV1、MIFARE Plus EV 2、MIFARE DESFire EV2、MIFARE DESFire EV3和MIFARE DESFire Light支持“GetVersion”命令以准确识别IC。
建议仅使用GetVersion命令来识别读卡器上当前存在的IC类型。
GetVersion命令规范以及GetVersion响应可以在MIFARE产品的相应数据表中找到。通常,GetVersion响应的第二个字节的较低半字节给出MIFARE产品系列,在许多情况下,这是所需的最重要的信息。上半字节定义设备是本机MIFARE IC(0x0)、实现(0x8)、Java卡上的小程序(0x9)还是MIFARE 2GO(0xA)。

下图1显示了一个流程图,可用于区分使用GetVersion命令当前可用的所有当前MIFARE和NTAG产品,以及旧一代的ATQA/SA K方法

 

 

 

1.此“卡激活”需要在防碰撞环路之前进行适当的REQA/ATQA。
2.ISO/IEC 14443的位编号以LSB=bit1开始!
3.安全级别3的MIFARE Plus完全支持ISO/IEC 14443-4。
4.SAK比特2被保留以供将来使用,即比特2=1可能给所有其他比特赋予不同的含义
SAK位。
图1。 MIFARE卡激活示例

*具体产品的详细信息可以在具体产品的数据表中找到。
注意:由于可能发生冲突,不建议使用ATQA来确定板卡参数。
注:整个MIFARE超轻系列使用相同的ATQA和SAK。
注:SL3中的MIFARE Plus使用ATS或卡功能来区分不同的卡类型。
注:仅适用于较老一代产品,以下部分应用于类型识别。对于MIFARE DESFire EV3和MIFARE Plus EV2,ATQA和SAK是可配置的,因此任何ISO保角值都是可能的,因此不能再用于类型识别。

2.2使用ISO激活参数-不推荐!
注:不建议使用类型的ISO激活参数
识别PCD通常在现场轮询PICC。这是通过REQA完成的。当PICC在PCD的操作范围内并接收到REQA时,任何MIFARE PICC返回ATQA。
ATQA的内容在实际应用中应该被忽略,尽管根据ISO/IEC 14443,它表明PICC支持防冲突方案。
注:如果两个或多个MIFARE PICC同时在PCD的操作字段中,则接收到的(组合的)ATQA可能包含“冲突”。这意味着无论如何都可能没有明确的内容。
完整的卡激活序列如图2和图3所示。SAK中的位6指示PICC是否符合ISO/IEC14443-4。然而,它并不一定指示PICC是否支持MIFARE协议。有关选择不同类型的MIFARE卡的更多详细信息,请参阅应用说明“AN10834 MIFARE ISO/IEC 14443 PICC选择”(AN10834)。
重要提示:不建议使用ATQA和SAK或任何其他协议相关参数来识别PICC。如果系统基于协议相关参数而不是应用程序特定参数(FCI/GetVersion/AID等)接受或拒绝PICC,则很可能未来的技术无法在该系统中使用。在新一代PICC上,激活参数已经是可变的,因此无论如何都不可能有唯一的标识。一般情况下,协议和应用程序数据不得混合使用。有关阅读器实现的更多建议,请参阅[2]

应答选择编码(ATS)
由于不同MIFARE IC的ATS可以定制,因此依靠ATS来区分IC类型当然是不可取的。恩智浦建议保留ATS的默认值,以避免任何基于ATS中信息的隐私攻击

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/669018.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

017、数据库管理之监控

监控工具 TiDB数据库的监控体系TiDB Dashboard数据库监控系统数据流转监控系统访问地址 报警系统报警级别指标系统常用监控指标Service Port Status 常用监控指标PD的常用监控指标TiDB-Server的常用监控指标TiKV 的常用监控指标Dashboard的常用指标 实验: 通过监控工…

Flink 学习六 Flink 窗口计算API

Flink 学习六 Flink 窗口计算API 1.窗口 (window)概念和分类 窗口 window 是处理无限流的核心就是把无界的数据流,按照一定的规则划分成一段一段的有界的数据流(桶),然后再这个有界的数据流里面去做计算; 2.分类体系 2.1 滚动窗口 相邻窗口之间是没有数据重合 window 大小…

Geocomputation (2)Attribute data operations

Geocomputation (2)Attribute data operations 属性数据操作 来源:https://github.com/geocompx/geocompy 1.准备 #| echo: false import pandas as pd import matplotlib.pyplot as plt pd.options.display.max_rows 6 pd.options.disp…

chatgpt赋能python:Python搜索函数:快速、高效的搜索利器

Python 搜索函数:快速、高效的搜索利器 如果你经常使用 Python 编程语言,那么你应该知道搜索数据集的重要性。用于搜索的函数在 Python 中是关键而常用的工具。Python 搜索函数是一种高效、快速的搜索利器,它可以让你轻松地找到你需要的数据…

C生万物 | 聊聊枚举与联合体的用法

文章目录 枚举1、枚举类型的定义2、枚举的使用3、枚举的优点 联合体1、联合体类型的定义2、联合体的特点3、联合体大小的计算一道经典面试题:判断当前计算机的大小端存储 总结与提炼 本文,我们就来谈谈C语言中的枚举和联合体,因为这两块知识点…

6月21日第壹简报,星期三,农历五月初四

6月21日第壹简报,星期三,农历五月初四坚持阅读,静待花开1. 中国LPR“对称降息”10个基点,房贷迎今年首次“降息”。2. 孟加拉国正式申请加入金砖国家,中方:欢迎更多伙伴早日加入金砖大家庭。3. 历时近2年波…

7、DuiLib动态创建控件

文章目录 1、动态创建控件2、纯代码方式动态创建控件3、基于构建好的 XML 动态创建控件(CDialogBuilder) 1、动态创建控件 在实际业务场景中,并不是所有界面元素都可以通过 XML 预先定义好的,有时候我们需要根据数据库或者服务器…

【计算机组成原理】主存储器

目录 一、存储体系基本概念 二、主存储器的基本组成 三、SRAM和DRAM 四、只读存储器ROM 五、主存储器与CPU的连接 六、双端口RAM和多模块存储器 一、存储体系基本概念 一个二进制位(bit)是构成存储器的最小单位;字节(8bit&…

总结uwsgi的安装、配置与设置开机自启

一、uwsgi的安装与测试 1、uwsgi安装 pip install uwsgi# 查看uwsgi版本号 uwsgi –version 如果服务器安装anconda,有可能安装不上去,建议使用以下命令: conda install -c conda-forge uwsgi 2、测试uwsgi 创建test.py文件,并写下以下…

C++基础(2)——函数高级和函数对象

前言 本文主要介绍了C中函数高级相关的内容 3.1:函数默认参数 在函数定义的时候可以给形参赋初值,如果函数在调用的时候有传入参数,就使用传入的参数,如果没有就用默认的。 注意事项 1:如果某个参数有了默认值&…

Scilab安装与入门

说明:Scilab主要是用于信号处理,我本次用它来进行滤波仿真 地址: Scilab 2023.1.0 | Scilab https://www.scilab.org/download/scilab-2023.1.0 下载好了,进行安装看看 下一步,接受许可协议 选择安装路径到D盘下了…

chatgpt赋能python:Python数值互换:让你的编程更加高效

Python数值互换:让你的编程更加高效 Python是一种高级编程语言,其灵活性和易于学习的特点使其在科学计算、数据分析和人工智能等领域变得非常流行。作为Python的用户,很多时候你可能需要将数值类型之间进行转换,这样可以提高你的…

第6章 面向对象

第6章 面向对象 6.1. Scala包 ​ 包的命名 ​ 包的导入 Scala中基本的import导入语法和Java完全一致 import java.util.List import java.util._ // Scala中使用下划线代替Java中的星号Java中import导入的语法比较单一,Scala对此进行扩展,Scala中的im…

Cadence Allegro PCB设计88问解析(二十八) 之 Allegro中使用Anti Etch分割平面

一个学习信号完整性仿真的layout工程师 最近看到关于Anti Etch的设置,因为本人之前在layout设计是使用过这个命令。后来去到别的公司就不用了,从网上看到说这个命令是用来负片设计的。在这里在说下正片和负片的概念: 正片:是指在a…

Git团队代码规范

Git团队代码规范 1. 分支的定义2. 约束2.1 远程命名2.2 拉取代码2.3 新建Issues2.3 代码规范2.4 MR提交 本文章讲解Git代码管理中团队应该遵守的一些规则,让大家可以愉快的一起开发工作。 本篇文章需要结合Git代码提交规范-实践篇 一起食用哟~ 上一节我们已经讲了如…

Vue----Vue属性绑定

【原文链接】Vue----Vue属性绑定 通过v-bind:xxx 的方式即可实现Vue的属性绑定&#xff0c;比如如下代码&#xff0c;为div标签增加class属性&#xff0c;class的属性值通过msg变量提供 <template><div v-bind:class"msg">测试属性绑定</div> &l…

Java XML

目录 XML简介 XML文档结构 XML组成部分 XML规范 解析XML DOM4J解析实战 1.XML简介 &#xff08;1&#xff09;定义&#xff1a;可扩展标记语言 &#xff08;2&#xff09;特点&#xff1a;跨平台&#xff0c;跨语言/系统 &#xff08;3&#xff09;作用&#xff1a;传…

windows编译运行es源码1

一. 基础搭载环境 win10 jdk 11 \ jdk8 idea 2022 gradle 8.1.1 【建议4.5.1以上】 elasticsearch 7.8.0 源码及安装包 二. 安装gradle 1. 官网下载链接&#xff1a;https://gradle.org/releases/ 2. 解压设置环境变量 (1) GRADLE_HOME 环境变量指向你的 Gradle…

利用jmeter java sample端口转发实现对远程数据库的压力测试

1 需求背景 对数据库进行压力测试时&#xff0c;需要模拟同一时间大量的sql请求发送&#xff0c;借助于jmeter的 sql请求可以实现&#xff0c;但是对RDS来说&#xff0c;需要进行端口映射(跳板机)访问远程数据库,对于单线程手工测试来说&#xff0c;可以直接通过CRT进行端口跳转…

chatgpt赋能python:Python支持一行多写,让你的代码更简洁高效

Python支持一行多写&#xff0c;让你的代码更简洁高效 Python是一种简洁而又灵活的编程语言&#xff0c;它支持一行多写代码&#xff0c;让你的代码更加简洁高效。当你需要在一行代码中写入多个语句时&#xff0c;使用一行多写可以让你的代码更加易读和易维护。这篇文章将介绍…