iso/iec14443协议浅谈

yizhihongxing

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日

相关文章

  • js正则排除某个单词

    在JavaScript中,可以使用正则表达式来匹配和替换字符串。有时候,我们需要排除某个单词,即不匹配该单词。下面是JS正则表达式排除某个单词的完整略,包括两个示例说明。 方法一:使用负向预查 负向预查是一种零宽度断言,用于匹配不符合某种模式的字符串。在JS正则表达式中,可以使用负向预查来排除某个单词。面是一个示例,用于演示如何使用负向预查排除单词: con…

    other 2023年5月9日
    00
  • 微信小程序 配置文件详细介绍

    下面是“微信小程序配置文件详细介绍”的完整攻略。 微信小程序配置文件详细介绍 引言 在微信小程序开发中,配置文件十分重要。配置文件可用于配置小程序的全局变量、页面路径、底部tabbar等功能,可以帮助我们更好的管理和维护小程序。接下来,我们将详细介绍微信小程序配置文件的使用。 全局配置文件 小程序的全局配置文件为 app.json,用于配置全局性的属性,如小…

    other 2023年6月25日
    00
  • .net获取本机公网IP地址示例

    获取本机公网IP地址示例攻略 简介 在.NET中获取本机公网IP地址可以通过使用第三方API或者直接访问网络接口来实现。下面将提供两个示例来说明如何获取本机公网IP地址。 示例一:使用第三方API 首先,我们需要选择一个可靠的第三方API来获取公网IP地址。一个常用的选择是ipify,它提供了一个简单的HTTP接口来获取公网IP地址。 在.NET中,我们可以…

    other 2023年7月31日
    00
  • Spring中@Autowired注解在不同方法的写法示例

    Spring中@Autowired注解在不同方法的写法示例 @Autowired注解是Spring框架中用于自动装配依赖的注解。它可以用于不同的方法上,以实现依赖注入。下面是两个示例说明@Autowired注解在不同方法上的写法。 1. 构造方法上的@Autowired注解 @Service public class UserService { privat…

    other 2023年8月6日
    00
  • mpvueecharts

    mpvueecharts mpvueecharts是一个基于mpvue和echarts的小程序图表组件库,它可以帮助开发者快速地在小程序中集成echarts图表。 安装 您可以使用npm装mpvueecharts: npm install mpvueecharts –save 使用 以下是使用mpvuearts的步骤: 在需要图表的页面中引入mpvueec…

    other 2023年5月6日
    00
  • oracle中除数为0的两种解决办法(decode与nullif)

    以下是详细讲解“Oracle中除数为0的两种解决办法(DECODE与NULLIF)”的完整攻略,过程中至少包含两条示例说明的标准Markdown格式文本: Oracle中除数为0的两种解决办法(DECODE与NULLIF) 在Oracle中,当除数为0时,会抛出“除数0”的异常。为了避免这种异常,可以使用DECODE函数和NULLIF函数来处理除数为0的情况…

    other 2023年5月10日
    00
  • ahb总线协议(二)

    ahb总线协议(二) 简介 在我们之前的文章中,我们已经了解了AHB总线协议的基本概念和组成部分。在本篇文章中,我们将深入了解AHB总线协议的更多细节和工作原理。 内容 信号传输 时钟和同步 地址和数据 总线访问类型 单次传输 带宽限制传输 周期传输 总线控制信号 状态信号 主从标识信号 传输类型信号 错误检测信号 总线操作 总线闲置状态 主设备请求 从设备…

    其他 2023年3月28日
    00
  • Python字符串对象实现原理详解

    Python字符串对象是Python中的一种数据类型,它封装了字符串的相关操作,并提供了丰富的内置函数供我们使用。 1. 字符串对象的内部结构 Python字符串对象的内部结构由两个部分组成,即字符串头和字符串体。字符串头是一个结构体,它主要记录了字符串的长度、引用计数以及字符串的类型等信息。而字符串体则是一个字符数组,用来存储实际的字符串内容。 下面是一个…

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