首页 > 其他分享 >GSM7816工作原理分析(新手笔记)

GSM7816工作原理分析(新手笔记)

时间:2023-10-03 15:01:51浏览次数:38  
标签:字符 RST 协议 -- 笔记 复位 GSM7816 新手 时钟

7816协议

初学者刚上手7816,感觉有些吃力,但经过几天的死磕,终于也是大概了解整体的框架,所以打算记录一下理解过程。

首先要明白几个大的IC卡功能,无非就是接口设备(读卡器)与卡片的通信过程所需要的几个重要功能。

  1. 上电复位:在卡片接触读卡器后会自动通电,同时需要对卡片进行一次冷复位,防止上一次通讯的残留数据造成干扰。
  2. 复位应答:在读卡器发出复位信号后,卡片需要对该信号进行应答,并且传输一些参数,如时钟频率。
  3. 交换命令(正式通信阶段):通过一些协议对卡片的数据进行访问。

1. 上电复位

7816协议有8个触电,而激活卡片只需要4个出点,分别是VCC,CLK,RST,I/O

1.1 冷复位(上电激活后自动)

  • VCC上电
  • CLK给时钟信号
  • RST置L
  • I/O置接收
  • 200个时钟周期内I/O置H
  • RST保持L至少400个时钟周期
  • I/O复位应答在RST置H后400-40000个时钟周期内开始(否则去激活) 具体如图所示 激活复位图

1.2 热复位(手动复位)

  • VCC、CLK保持,RST置L至少400个时钟周期
  • RST置L后,200周期内I/O置接收(置H)
  • RST保持L,400个时钟周期后置H
  • RST置H后400-40000个时钟周期内复位应答 热复位

二、复位应答

下面是复位应答的字符帧

TS T0 TAi ...TDi Tk TCK
协议类型 格式字符 数据字符 历史字符 校验和

下面列举一些比较重要的字节位进行介绍

  • TS(指明协议比特的含义) 只能是 (H)LHHL LLL LLH(H) :反向约定(低电平L代表1,高电平H代表0)大端(最先得到的为最高位b8) (H)LHHL HHH LLH(H):正向约定(高电平H代表1,低电平L代表0)小端(最先得到的为最低位b1)

  • T0格式字符

Y1 K
b8-b5 b4-b1
指明TA1、TB1、TC1、TD1存在 历史字符个数
  • TA1
F D
时钟频率因子 比特调节因子
  • TA2 决定操作模式 存在:专用模式 不存在:协商模式
  • TDi
Y(i+1) T
指明下一项TA(i+1)...TD(i+1)存在 传输类型
PS: 
·	T=0 异步半双工字符传输协议
·	T=1 异步半双工块传输协议
  • Tk 历史字符 指明通用信息 e.g. 制造商、芯片、文件状态
  • TCK校验和 奇偶校验

三、交换命令

基本格式如下表所示 image.png

  • CLA指令类别
  • INS指令类别中的指令代码(最低有效位为0)
  • P1P2参数指令
  • P3具体协议传输的数据

3.1 PTS(协议类型选择)(在协商模式下使用)

flowchart LR
A[PTSS] -->B[PTS0] --> C[PTS1]
subgraph 参数字符
C --> D[PTS2]-->E[PTS3]
end
E-->F[PCK]
  • PTSS 初始化字符(固定为FF)
  • PTS0格式字符(b5,b6,b7指明PTS1,2,3的存在,b4-b1为协议类型T,b8=0)
  • PTS1(FI、DI调整时钟频率)
  • PTS2、PTS3 留未来使用
  • PCK校验字符

3.1 PPS(协议参数选择)|协商模式后

flowchart LR
A[PPS] -->B[PPS0] --> C[PPS1]
subgraph .
C --> D[PPS2]-->E[PPS3]
end
E-->F[PCK]
  • PPSS 定义请求回复,固定为FF(与APDU区分)
  • PPS0 格式字符(b5,b6,b7指明PPS1,2,3的存在,b4-b1为协议类型T,b8=0)
  • PPS1 Fd,Dd
  • PPS2 是否使用SPU
  • PPS3 RFU
  • PCK 校验和

3.2 T=0(字符传输协议)

image.png

3.3 T=1(块传输协议)

image.png

3.4 APDU(应用协议数据单元)

image.png

标签:字符,RST,协议,--,笔记,复位,GSM7816,新手,时钟
From: https://blog.51cto.com/u_15415020/7693243

相关文章

  • 10月1日《需求分析与系统设计》阅读笔记一
    《需求分析与系统设计》阅读笔记一软件工程的本质问题体现在软件本身所有的困难中,我们只能承认这些困难。Brooks认为软件工程的本质问题是由软件固有的复杂性、一致性、可变性和不可见性所致的。一些重要的软件特征不易受人为因素的影响,因此在软件项目中都保持不变。软件本......
  • 列表与字典学习笔记
    python中要想用对象做某种处理,需要这个对象的名字(变量名),然后是一个点,再后面是要对对象做的操作。如要向friends列表zhui追加一个元素,就要写成:friends.append(something)列表:列表可以包含python能存储的任何类型的数据(数字,字符串、对象,甚至其他列表)列表中的元素并不要求元素是......
  • vue 学习笔记
    https://www.bilibili.com/video/BV13m4y1Y7MD安装vuecli1安装 node.js要求node.js12+版本, https://nodejs.org/zh-cn 首页下载安装lts版本,如果已安装就覆盖安装vscode终端或cmd中输入npm--vesion  node--v可以查看是否安装成功npm(nodepackagemanager):no......
  • 用户故事与敏捷开发 读书笔记 02
    阅读用户故事与敏捷开发的后边几章,搜集故事这一章,我们经常有一种错觉:“需求本来已经存在了,我们只是让客户给我们解释需求,然后把他们锁入一个笼子里就可以了。”事实上,用户并不知道所有的需求。让我们像捕鱼一样去捕获需求:首先,不同大小的网捕获不同大小的需求。第一遍,用大网眼捞一......
  • BapBap 新手入门
    这是一款免费游玩的MOBA大逃杀游戏,你要与其他玩家组成三人小队,搜集资源、规划成长路线、与敌人交战,最终夺得桂冠。首先把网址挂出来哈(^人^)BapBap点开网址后,它会先加载,等它加载完后,会进入这样的一个界面(如下图)设置部分看到这个图标没?点开后会出现1个小黑框,自上而......
  • openGauss学习笔记-87 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-M
    openGauss学习笔记-87openGauss数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用简单概述使用MOT非常简单,以下几个小节将会进行描述。openGauss允许应用程序使用MOT和基于标准磁盘的表。MOT适用于最活跃、高竞争和对吞吐量敏感的应用程序表,也可用于所有应用程序的表。......
  • SQLite学习笔记——创建数据库和SELECT,INSERT语句
    SQLite创建数据库我们可以直接使用sqlite3DatabaseName.db来创建数据库,这时候我们就会发现同一目录下出现了对应的.db文件或者我们可以先启动sqlite3然后在里面使用点命令.openDatabaseName.db来创建数据库,如果已经存在对应的数据库,那么我们默认就会打开该数据库。......
  • 通过linux0.11学习操作系统原理--Apple的学习笔记
    一,前言最近在断断续续的看linux0.11的源码介绍,主要是了解linux操作系统的原理,之前已经了解了进程的切换主要是cpu上下文切换+虚拟内存切换。今天我主要看了下改开始linux启动的进程0,1,2。二,分析先回顾了之前的问题LDT和GDT的区别?   GDT用作内核态的代码和数据段,LDT用作用户进......
  • [官方培训]10-UE实时渲染后期 李文磊 Epic 笔记
    实时渲染后期什么是后期需求:快速地基于镜头对最终画面内容及形式(节奏,色调,气氛)的控制传统后期:像素UE后期:像素和对象UE后期UE后期对象:对象和像素(Buffer)对象调节:光影,材质,特效,雾效,Sequencer像素Buffer处理:AA,相机及镜头效果,ColorGrading,Tonemapping,PPM,Decal,Translucency,Compo......
  • [官方培训]09-UE粒子基础 肖月 Epic 笔记
    UE粒子基础我们将讨论Niagara的基础操作和框架Module>Emitter>SystemGamethread.RenderthreadCustomModuleSequencer,DebuggerDataSharingAttribute,DataInterface场景交互,碰撞粒子间交互Event,AttributeReaderNiagaraFluidGridCollectionsGasExamp......