ISO7816 标准是个标准的半双工接口,本模块作为主设备,控制SIM 卡的操作,SIM 卡
作为从设备只有在两种情况下产生应答信号:
收到RST 信号后发送ATR、接到命令后应答。

因此,SIM 卡驱动模块作为主设备,主要完成两个操作:发送RST 等待ATR,发送命令并等
待SIM 卡的应答。

TX, XMT, 发送transmit
RX, RCV, 接收Receive

---
ATR(answer to reset) 复位应答
SIM模块和SIM卡建立初始通信需要交换一些协议数据,这个交换通过ISO7816规定的ATR协议来完成。ATR协议通过SIM模块对sim_rst信号的控制来实现.
SIM卡有可能会在sim_rst为低期间或sim_rst为高期间返回应答信号。如果sim_rst保持高电平40000个sim_clk周期后仍然没有收到SIM卡的ATR应答信号,则表明SIM不存在或者传输通道有问题。

SIM卡返回的ATR应答信号的第一个字符表示SIM卡支持传输方式是直接模式还是反转模式,这个字符定义为初始字符。如果SIM返回的是11011100,则表示SIM卡支持直接模式;如果SIM卡返回的是11000000,则表示SIM卡支持的是反转模式。

根据定义,复位应答是一系列字节的值,这些字节是由卡作为对复位命令的响应发送给接口设备的。在I/O电路上,每个字节在一个异步字符中传输。
    每个成功的复位操作都会导致I/O上的一个初始字符TS,TS后面按照下面的次序跟有最多32个字符:
    T0…………………………………………格式字符,强制性
    TA(i) TB(i) TC(i) TD(i)…………… 接口字符,可选的
    T1 T2…Tk…………………………………历史字符,可选的
    Tck……………………………………… 检测字符,有条件的
• 初始字符定义了所有后继字符的解码协议。。
• 格式字符声明了第一组接口字符和所有历史字符。
• 接口字符由格式字符声明的位图技术来指明。
• 历史字符由编码在格式字符中的一个数字来指明。
• 校检字符依赖于某些接口字符中参数T的值。
为了表示简明,以下用[TS] T0 TA(i)…T1…Tck表示字节及传送字节的字符。

例:
ATR: 3b | 6c | 0 0 | 4e 54 49 43 32 64 8 1 4a 3 0 0

ATR-ATlength:16

SIM模块支持自动初始字符检测。当SIM模块准备ATR接收时,可以先通过SIM_CNTL寄存器的ICM比特将接收机设置初始字符检测模式。然后SIM模块会根据收到的初始字符,自动调整接收方式,并自动改变SIM_CNTL寄存器的传输模式IC比特。

Reset

3B FA 13 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 31 96

复位应答 ATR

Reset

3B FA 13 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 31 96

复位应答 ATR

TS( The Initial character ) = 3B

--表示正向约定,高电平为1,低电平为0,传输时先传输LSB,最后传输MSB

T0( The Format character ) = FA

--表示接口字符的个数和历史字节的数量

----其高4位有几个bit为1,则表示后续有几个历史字符(Historical bytes)

高4位 = f( 1 1 1 1 )表示后续字符中存在TA1 TB1 TC1 TD1

--------------------( TA1, TB1, TC1, TA2, TB2 是全局接口字符,TC2是专用接口字符 )

TA1 = 13

--表示有增强的波特率,公式 3571200 / ( Fi / Di )

--------其中Fi由TA1的高4位(F)查表得出,Di由TA1的低4位(D)查表得出

----F = 01 ,查下表,则Fi = 372

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

| F | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 |

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

| Fi | 372 | 372 | 558 | 744 | 1116 | 1488 | 1860 | RFU |

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

| 最高时钟MHZ | 4 | 5 | 6 | 8 | 12 | 16 | 20 | -- |

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

| F | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

| Fi | RFU | 512 | 768 | 1024 | 1536 | 2048 | RFU | RFU |

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

| 最高时钟MHZ | -- | 5 | 7.5 | 10 | 15 | 20 | -- | -- |

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

----D = 03 ,查下表,则Di = 4

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

| D | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 |

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

| Di | RFU | 1 | 2 | 4 | 8 | 16 | 1860 | RFU |

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

| D | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

| Di | RFU | 512 | 768 | 1024 | 1536 | 2048 | RFU | RFU |

+-------------+--------+--------+--------+--------+--------+--------+--------+--------+

--------实际波特率为 38400

TB1 = 00

----表示编程电流 I /电压 P,高2位表示电流I,低6位表示电压P

----高2位 = 00 ,则编程电流 I 如下

+-------+--------+--------+--------+--------+

| 高2位 | 00 | 01 | 10 | 11 |

+-------+--------+--------+--------+--------+

| 电流I | 25 | 50 | RFU | RFU |

+-------+--------+--------+--------+--------+

----低6位 = 00 ,则编程 P 电压为0

TC1 = 00

----额外保护时间N = 0

TD1 = 81

----通讯协议 T = 1

--------------------

没有TA2

没有TB2

没有TC2

TD2 = 31

--------------------

TA3 = FE

TB3 = 45

没有TC3

没有TD3

4A 43 4F 50 34 31 56 32 32 31

----是历史字节

TCK ( XOR T0 - TCK ) = 96 校验成功

ETU(Elementary Time Unit)
一个ETU的时间可以由软件选定,在ISO7816标准中规定了几个ETU传输时间的标准规格,其中标准时间为372个sim_clk时钟,另外还有一些增强速率的时间。SIM模块支持所有的ISO7816规定的ETU模式。

每帧数据采用Byte字符方式,一个Byte由8比特组成。每帧的传输由起始位、 字符数据(8位)、校验位和停止位组成,其中起始位为一个ETU(Elementary Time Unit)的低电平,数据位占用8个ETU的时间,校验位占用一个ETU的时间,停止位比特为高电平,占用2个ETU的时间。

ISO7816协议中还规定了一种紧凑的传输方式,此时停止比特只有1位,一个数据帧包含11个ETU,可以通过SIM_GUARD寄存器的RCVR11来配置SIM模块支持这种传输方式。

FIFO不是寄存器,而是通过寄存器写入的, FIFO是16*8, 但发送缓冲寄存器(SIM_XMT_BUF)是8位.

智能卡接口控制器(SIM)相关推荐

  1. 智能卡接口控制器(SIM)ATR应答

    智能卡接口控制器(SIM)ATR应答 ISO7816 标准是个标准的半双工接口,本模块作为主设备,控制SIM 卡的操作,SIM 卡 作为从设备只有在两种情况下产生应答信号: 收到RST 信号后发送AT ...

  2. 基于FPGA的USB接口控制器设计(VHDL)(中)

    今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇.今天带来第二篇,中篇,USB通信原理.USB 系统开发以及设计实例.话不多说,上货. 之前有关于 Veril ...

  3. 基于FPGA的USB接口控制器设计(VHDL)(上)

    今天给大侠带来基于 FPGA 的 USB 接口控制器设计(VHDL),由于篇幅较长,分三篇.今天带来第一篇,上篇,USB 接口简介 以及 USB 体系结构.话不多说,上货. 之前有关于 Verilio ...

  4. 智能卡接口(ISO7816)

    概述 智能卡接口(7816)是外部智能卡通过2 线交换8 位数据的串行同步通讯手段.芯片提供了2 个7816主机接口模块. ⚫ 2路独立7816接口 ⚫ 具备卡时钟输出端口,输出频率在1MHz~5MH ...

  5. 第四章 Controller接口控制器详解(5)——跟着开涛学SpringMVC

    2019独角兽企业重金招聘Python工程师标准>>> 原创内容,转载请注明iteye http://jinnianshilongnian.iteye.com/ 4.15.Multi ...

  6. Controller接口控制器(7)

    4.16.2.数据验证 1.数据绑定失败:比如需要数字却输入了字母: 2.数据不合法:可以认为是业务错误,通过自定义验证器验证,如用户名长度必须在5-20之间,我们却输入了100个字符等: 3.错误对 ...

  7. Controller接口控制器(5)

    4.15.MultiActionController 之前学过的控制器如AbstractCommandController.SimpleFormController等一般对应一个功能处理方法(如新增) ...

  8. Controller接口控制器详解(1)

    4.1.Controller简介 Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分: 1.收集.验证请求参数并绑定到命令对象: 2.将命令对象交给业 ...

  9. ISO7816 智能卡 接口

    原文 1 了解ISO7816接口 一.主要从两个方面来了解 ISO7816触点的电气特性 ISO7816的通讯协议流程 二.电气特性 有三种类型的7816接口 A类7816:工作电压4.5~5.5V ...

最新文章

  1. 图像分类、目标检测、语义分割、实例分割和全景分割的区别
  2. wget镜像网站并且下载到指定目录 2012-06-20 19:40:56
  3. Couldn't find leader offsets for Set([smt,0], [smt,1], [smt,2])
  4. 快速傅里叶变换(FFT)——按频率抽取DIF的基
  5. 解决 MyEclipse build workspace 慢,validation javascript 更慢的问题
  6. 2021中国民营企业500强调研分析报告
  7. HDU 2829 Lawrence
  8. UVA254 Towers of Hanoi【DFS】
  9. 2018.8.25CCPC网络赛Find Integer题解(费马大定理+勾股数的求解)
  10. Kali Linux 软件源与更新源和更新命令
  11. FAT文件系统工作原理
  12. Java压缩背景透明图片后图片背景变成黑底
  13. 玩外服吃鸡手游显示服务器繁忙,玩家纷纷涌入刺激战场国际服导致服务器繁忙,出现BUG锁服!...
  14. 国产Linux系统下替代QQ和微信的不二之选
  15. 2009年经典语录雷人总汇
  16. NPOI设置Excel下拉选项
  17. 2021年危险化学品经营单位主要负责人考试总结及危险化学品经营单位主要负责人考试试题
  18. 淘宝商品详情API接口(商品价格接口,商品属性接口)
  19. Java使用Spire将网页保存为Word并去除Evaluation Warning水印方案
  20. hdu1512 Monkey King

热门文章

  1. css3波浪纹路_CSS Houdini实现动态波浪纹效果
  2. ES报错:illegal_argument_exception
  3. sklearn中常见的线性模型参数释义
  4. C# 抽象类(abstract)
  5. 车载前摄像头学习笔记 ———— 视频编码格式
  6. JS逆向 | 七麦数据analysis分析
  7. python等距分箱
  8. 2021年中国暑期档剧集播出现状及观看情况分析[图]
  9. 做教育,不仅仅是传授一门知识,更重要的是传授一份爱
  10. B站 孜然尿布 投稿视频目录(持续更新中,可能会延后一两部片,想要最新的视频直接找投稿)