本文转自:https://www.bbsmax.com/A/l1dyxrEA5e/  ,支持原创,传播知识,仅供学习自用。

对于刚接触智能卡的工程师来说,在阅读7816-3规范的时候,常常被其中的一些术语迷惑,读起来会觉得有些别扭。尤其是在看到复位应答中的F和D设置,以及对应的etu的时候,会觉得有些复杂和难以理解。

  其实从本质上说,7816-3定义了智能卡(这里指的是接触式CPU卡,对于逻辑加密卡以及非接触IC卡不在此列)和读写设备之间的通讯协议,说白了就是数据位传输的格式。

  如果学习或者接触过单片机,那么对于RS232一定不会陌生,它属于异步串行通讯接口(UART),通过RxD、TxD进行数据的收发,RS232曾经是PC机的标配,但是目前在多数PC上基本不复存在了(当然还可以通过USB-232转换器来扩展)。

  接下来我们看看7816-3定义的通讯协议,其实基本上可以说是RS232的翻版并在此基础上进行的改进,7816中只有一个IO同时兼具数据收发的功能,这点和RS232用RxD和TxD进行数据收发是不同的。在RS232中我们有9600波特率、起始位、奇偶校验位、停止位这些概念,而在7816-3中都完整地保留了下来,只不过7816-3中引入了etu,没有使用bps,但是基本原理是一致的。etu的定义可以更加精确地描述每个数据位在传输过程中收发双方的职责和角色转换

  根据定义在智能卡上电复位的时候 1 etu = 372 / f ,其中f = 读写设备通过CLK管脚提供给智能卡的时钟频率,通常在1--5 MHz之间。etu的单位是时间单位秒(毫秒、微秒),等同于传输每个数据位所需的时间。对其取倒数得出来的就是每秒传输的数据位,也就是bps。我们取f = 3.579545 MHz,用3579545除以372结果等于9622.4,约为9600 bps。

  通用的etu计算公式: 1 etu = (F / D) * (1 / f) ,F和D的值根据7816-3规范中的约定来进行设置。对于上电复位时的取值 F = 372,D = 1即作为默认值Fd和Dd。如果智能卡支持其他速率则需要在ATR中的TA1来指出其他的F和D的值,比如设定F=372,可以把D分别设定为2/4,那么智能卡能支持的通讯速率可以分别为19200/38400。

那么为什么要选择时钟频率为3.579545 MHz?为什么默认的F值选择为372呢?首先3.579545 MHz 是常用石英晶振的标称值,9600 * 372 = 3.5712 MHz,与之最为接近。再说为什么是372,372 = 12 * 31。标准的8051单片机每个指令周期为12个时钟周期,而且定时/计数器也按照1/12 进行分频后再计数的,这样设定对于智能卡芯片来说可以比较容易实现对IO数据通讯的控制,也可以更好地和PC机串口9600速率配合(当然这是指上个世纪80年代的时候,对于现在的智能卡芯片设计技术而言实现任意分频的控制都不是问题了)。

  由此可见,这些参数的选择都是为了能够更好地利用当时既有的标准和技术,要知道7816-3在1989年的时候就已经制定了,按照当时的主流PC机配置把串口速率设为9600,用一个232接口芯片(比如Max232)再加上3.579545MHz的晶振,再配合几片74系列的门电路,外加5伏的直流电源和几个阻容器件,这就是最基本的RS232串口读卡器了。

深入理解7816(1)---- 关于F/D和etu相关推荐

  1. 深入理解7816(1)---- 关于F/D和etu【转】

    本文转载自:http://blog.sina.com.cn/s/blog_4df8400a0101gkss.html 深入理解7816(1)---- 关于F/D和etu 对于刚接触智能卡的工程师来说, ...

  2. 如何理解ANOVA中的F值与P值

    ANOVA(analysis of variance),方差分析,曾经以为它是一个多么复杂的简写... 一.理解F分布 要理解F分布,就要先理解卡方分布,要理解卡方分布,就要先理解正态分布. 1.正态 ...

  3. 深入理解7816协议(1)---- 关于F/D和etu

    对于刚接触智能卡的工程师来说,在阅读7816-3规范的时候,常常被其中的一些术语迷惑,读起来会觉得有些别扭.尤其是在看到复位应答中的F和D设置以及对应的etu的时候,会觉得有些复杂和难以理解. 其实从 ...

  4. 深入理解7816(1)---- 关于F/D和etu --转载

    对于刚接触智能卡的工程师来说,在阅读7816-3规范的时候,常常被其中的一些术语迷惑,读起来会觉得有些别扭.尤其是在看到复位应答中的F和D设置,以及对应的etu的时候,会觉得有些复杂和难以理解. 其实 ...

  5. 通俗理解T检验与F检验的区别【转】

    转自:http://blog.sina.com.cn/s/blog_4ee13c2c01016div.html 1,T检验和F检验的由来 一般而言,为了确定从样本(sample)统计结果推论至总体时所 ...

  6. 统计|如何理解多元线性回归的F检验的作用与目的

    本博文源于<商务统计>,旨在讲述如何理解多元线性回归中的F检验. 问题起源 我们通过统计软件计算多元线性回归的参数,计算测得后,如何更好的描述你拥有回归参数对y的影响呢?换句话说,如果某一 ...

  7. 从经济的角度理解MSR,MSE和F统计值

    以下说法均基于线性回归: MSR=SSR/P-1 表示放在回归里的自变量,平均对因变量解释了多少 MSE=SSE/n-p 表示可以放但是没有放在回归里的自变量,平均对因变量解释多少(因为最多能放n-1 ...

  8. F#学习之路(3) 如何组织程序(下)

    二.名称空间(namespace) 名称空间,将一组逻辑上相关的类型.模块放在一起,主要是为了解决名称冲突的问题,同时也便于更好的理解程序结构.F#的名称空间概念及定义与C#基本相似. 1.定义名称空 ...

  9. 对01背包的分析与理解(图文)

    首先谢谢Christal_R的文章(点击转到链接)让我学会01背包 本文较长,但是长也意味着比较详细,希望您可以耐心读完. 题目: 现在有一个背包(容器),它的体积(容量)为V,现在有N种物品(每个物 ...

最新文章

  1. mysql8.0.22 win7_ArcGIS10.8地理信息软件中英文版安装教程
  2. C / C++ 软件项目的目录结构
  3. Spring / Hibernate使用log4jdbc改进了SQL日志记录
  4. 多项式拟合怎么确定次数_PyTorch入门4 搭建多项式回归模型
  5. python与excel-Python 与 Excel 终于在一起了
  6. 连接mysql_spring boot连接mysql提示The server time zone value xxx错误
  7. 微信小程序实现刷脸登录
  8. 计算机能力考试合格证(5个模块),全国专业技术人员计算机应用能力考试
  9. ttyS、ttySAC、tty、ttyn的区别
  10. 谷歌正式发布Android 12,UI更好看,应用更快,打造独属于自己的定制化属性
  11. 最小二乘法拟合圆公式推导及其实现
  12. 致我们终将逝去的青春
  13. 如何删除ctrl+alt+方向键的旋转屏幕功能
  14. docker镜像简介和docker常用基础命令
  15. HTML入门教程(一)
  16. 重新组织数据之十二 :Replace Record with Data Class(以数据类取代记录)
  17. 做Java程序员真的没有春天吗?终局之战
  18. 微信聊天记录导出及年度报告软件使用方法
  19. Netty+SpringBoot搭建游戏服务器(带控制台客户端)
  20. iptables+ipset自动封闭和解封频繁访问web服务的恶意IP

热门文章

  1. windows出现蓝屏解决方法
  2. 英语中美音与英音的区别与选择
  3. 3·15各大企业如坐针毡?历途依然安置若泰
  4. Veeam修复严重漏洞,可攻陷备份基础设施
  5. 内存超频会损坏内存吗 内存超频开不了机如何解决
  6. 门头沟优贝-牙齿缺失不处理,有什么危害?
  7. python将excel转换成图片_Python实现将Excel转换成为image的方法
  8. mysql 5528安装_windows 下mysql 解压方式安装
  9. 前端学习(四):body标签(二)
  10. word VBA加密解密