iso/iec14443协议浅谈

iso/iec14443协议浅谈

ISO/IEC 14443是一种近场通信(NFC)协议,用于智能卡和读卡器之间的通信。本文将提供一个完整的攻略,包括协议概述、通信过程、示例说明等。

1. 协议概述

ISO/IEC 14443协议定义了智能卡和读卡器之间的物理层和数据链路层通信规范。该议使用13.56MHz的无线电频率进行通信,支持两种通信式:主动模式和被动模式。

在主动模式下,智能卡主动发送数据,读卡器被动接收数据。在被动模式下,读卡器主动发送数据,智能卡被动接收数据。

ISO/IEC 14443协议定义四个部分:物理层数据路层、初始化和防冲突。其中,物理层定义了通信的无线电频率、调方式和数据传输速率。数据路层定义了数据帧的格式和传输协议。初始化和防冲突是在通信开始之前进行的协商过程,以确保通信的稳定性和可靠性。

2. 通信过程

ISO/IEC 14443协议的通信过程包括初始化、防冲突、选择和数据传输四个步骤。

2.1 初始化

初始化是指读卡器向智能卡发送一个请求命令,以启动通信。智能卡接收到请求命令后,会返回一个应答命令,表示已准备好进行通信。

2.2 防冲突

防冲突是指在多个智能卡同时进入通信范围时,读卡器如何选择要与之通信的智能卡。在防冲突过程中,读卡器会向所有智能卡发送一个防冲突命令,智能卡会返回一个唯一的序列号。读卡器根据序列号的不同,选择要与之通信的智能卡。

2.3 选择

选择是指读卡器向智能卡发送一个选择命令,以选择要进行通信的应用程序。智能卡接收到选择命令后,会返回一个应答命令,表示已准备好进行数据传输。

2.4 数据传输

数据传输是指读卡器向智能卡发送数据,智能卡接收数据并进行处理后,返回一个应答数据。数据传输过程中,读卡器和智能卡会进行多次数据交换,直到通信结束。

3. 示例说明

以下是两个示例,演示如何使用ISO/IEC 14443协议进行通信:

示例1

假设我们有一个智能卡和一个卡器,要使用ISO/IEC 14443协议进行通信。以下是通信过程:

  1. 读卡器向智能卡发送一个初始化命令。
  2. 智能卡返回一个应答命令。
  3. 读卡器向智能卡发送一个防冲突命令。
  4. 智能卡返回一个唯一的序列号。
  5. 读卡器根据序列号选择要与之通信的智能卡。
  6. 读卡器向智能卡发送一个选择命令。
  7. 智能卡返回一个应答命令。
  8. 读卡器向智能卡发送数据。
  9. 智能卡接收数据并进行处理。
  10. 智能卡返回一个应答数据。
  11. 读卡器接收应答数据。

示例2

假设我们要使用ISO/IEC 14443协议进行门禁系统的身份验证。以下是通信过程:

  1. 用户将智能卡靠读卡器。
  2. 读卡器向智能卡发送一个初始化命令。
  3. 智能卡返回一个应答命令。
  4. 读卡器向智能卡发送一个防冲突命令。
  5. 智能卡返回一个唯一的序列号。
  6. 读卡器根据序列号选择要与之通信的智能卡。
  7. 读卡器向智能卡发送一个选择命令,选择门禁系统应用程序8. 智能卡返回一个应答命令。
  8. 读卡器向智能卡发送一个身份验证命令,包括用户ID和密码。
  9. 智能卡接收身份验证命令并进行处理,验证用户身份。
  10. 智能卡一个应答数据,表示身份验证成功或失败。
  11. 读卡器接收应答数据,如果身份验证成功,则开启门禁系统。

结论

以上就是ISO/IEC 14443协议浅谈,包括协议概、通信过程、示例说明等。ISO/IEC 14443协议是智能卡和读卡器之间的通信规范,使用13.56MHz的无线电频率进行通信,支持主动模式和被动模式。在实际应用中,我们可以使用ISO/IEC 14443协议进行身份验证、门禁系统等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:iso/iec14443协议浅谈 - Python技术站

(0)
上一篇 2023年5月8日
下一篇 2023年5月8日

相关文章

  • 打印机只能复印不能打印该怎么办? 三种常见的解决办法

    针对“打印机只能复印不能打印该怎么办”这个问题,一般来说有以下三种常见的解决办法: 解决方法一:检查打印机连接情况 首先,我们需要检查一下打印机的连接情况,是否存有松动或连接错误等情况。 1.检查数据线是否松动:将数据线插头拔出再插入一遍,确保连接紧密。 2.检查电源线是否松动:如果打印机是电源接口较小的圆形接口,我们需要特别留意是否插紧。 3.检查网络连接…

    other 2023年6月27日
    00
  • Win10 2004中要使用本计算机用户必须输入用户名和密码选项不见了如何恢复?

    问题描述: Win10 2004版本更新后,要使用本计算机用户必须输入用户名和密码选项不见了,该怎么恢复? 解决步骤: 步骤一:进入计算机管理 1.右键单击“此电脑/我的电脑”,选择“管理”,进入“计算机管理”页面。 2.在左侧导航栏中选择“本地用户和组”,再在右侧单击“用户”选项卡,找到你要设置的用户。 3.右键单击该用户,选择“属性”,进入该用户的属性配…

    other 2023年6月27日
    00
  • 玩转Git入门篇

    玩转Git入门篇的完整攻略 本文将为您详细讲解Git的入门知识,包括Git的基本概念、常用命令和示例说明等内容。 Git的基本概念 Git是一种分布式版本控制系统,它可以记录文件的修改历史,并支持多人协作开发。Git的基本概念包括: 仓库(Repository):用于存储文件的修改历史和版本信息。 分支(Branch):用于管理不同的版本和修改历史。 提交(…

    other 2023年5月6日
    00
  • Android中XUtils3框架使用方法详解(一)

    Android中XUtils3框架使用方法详解(一) 简介 XUtils3是一款在Android开发中常用的开源框架,它提供了许多方便的工具和功能,可以简化开发过程并提高效率。本攻略将详细介绍XUtils3框架的使用方法。 步骤一:导入XUtils3库 首先,我们需要在项目中导入XUtils3库。可以通过以下步骤完成导入: 在项目的build.gradle文…

    other 2023年9月6日
    00
  • 关于List、Map、Stream初始化方式

    下面我来详细讲解下关于List、Map、Stream初始化方式的完整攻略。 初始化List 1. 使用List接口的实现类实例化 List接口有多个实现类,可以通过这些实现类来创建不同类型的List。比如,ArrayList、LinkedList、Vector等。 List<String> list1 = new ArrayList<&gt…

    other 2023年6月20日
    00
  • 微信小程序Echarts动态使用及图表层级踩坑解决方案

    微信小程序Echarts动态使用及图表层级踩坑解决方案 背景 微信小程序是一款便捷的开发平台,而Echarts又是一款非常强大的数据可视化工具,将二者结合起来可以展现出更加生动、形象的数据图表。但是在实际的开发中,我们可能会遇到一些问题,例如动态使用Echarts和图表层级问题等。 动态使用Echarts 在小程序开发中,我们希望在不同的页面中使用不同的图表…

    other 2023年6月26日
    00
  • Java Web项目部署在Tomcat运行出错与解决方法示例

    下面将详细讲解Java Web项目部署在Tomcat运行出错的常见问题及解决方法,包含两个示例说明。 1. 问题1:404 Not Found错误 1.1 错误现象描述 在 Tomcat 运行 Java Web 项目时,当用户访问某个页面时,浏览器显示 404 Not Found 错误页面,而在本地项目调试中却正常访问。 1.2 解决方法 该问题的主要原因是…

    other 2023年6月27日
    00
  • java基础之java的四大特性

    以下是“Java基础之Java的四大特性”的完整攻略: Java的四大特性 Java是一种面向对象的编程语言,具有四大特性,即封装、继承、多态和抽象。这些特性使Java成为一种强大的程语言,可以用于开发各种类型的应用程序。 1. 封装 封装是一种将数据和方法组合在一起的机制,以便将其视为一个单元。Java中,封装可以通过使用访问修饰符来实现。以下是一个封装示…

    other 2023年5月7日
    00
合作推广
合作推广
分享本页
返回顶部