首页 > 其他分享 >PSAM嵌入式驱动——原理

PSAM嵌入式驱动——原理

时间:2023-09-25 22:56:39浏览次数:74  
标签:协议 CLK 嵌入式 PSAM 字符 驱动 TD TA

前言

本部分内容是前一篇《PSAM嵌入式驱动——概念》的后续篇,本节主要是PSAM做驱动开发要了解的一些基本原理,在此一一阐述,部分内容也是借鉴前辈基础上,加上实践中整理及理解,与项目实际密切相关。

一、PSAM基本交易过程

 

一般含PSAM的交易终端交互过程如上图,对于嵌入式驱动而言,前四部分是需要实现的,后的步骤都是APDU指令交互的重复,即驱动无关。只需关注如下几个概念即可:

时钟要求:
CLK提供时钟信号:
A类:1~5MHz
B类:1~4MHz

冷复位:
VCC和VPP上电后,加CLK,在200个CLK周期以内将I/O置于状态Z,加时钟后置于RST为状态L,并保持400个CLK周期。然后将RST置为H,在RST置为L结束后的400到40000个CLK周期里CARD将应答复位,否则接口释放电路。

热复位:
冷复位是在稳定的VCC和CLK期间,将RST置为L 400个CLK周期,在RST的上升沿后的400到4000个CLK周期里接口设备的I/O将受到复位应答,否则接口释放电路。

二、复位应答ATR
1. 数据格式

 

这是ISO中给出的,简单理解复位答复的格式:

 

2. 格式解析
TS:称为初始字符,他后面最多跟32个字符。
T0:为格式字符(强制)。
A1、TB1、TC1、TD1、……TA(i) 、TB(i) 、TC(i) 、TD(i)为接口字符(可选)。
T1、T2、……….TK为历史字符(条件)。
1)TS初始字符
定义后继字符的解码协议。

 

它有两种形式:

LHHLLLLLLH(3F)建立一个极性反相协议,m2时刻传输最高有效位(msb)。

LHHLHHHLLH(3B)建立一个正常的协议,并且m2时刻传输最高有效位(Lsb)。

2)T0格式字符
他由两部分构成Y1(m8m5),K(m4m1)。

Y1(m8~m5)说明后继的TA1、TB1、TC1、TD1是否存在

K(m4~m1)他是传输协议的编码。常用的有T=0(异步半双工字符传输协议)和T=1(异步半双工块传输协议)。

3)接口字符
接口字节采用逐层嵌套的方式来表示的:
第一层TA1、TB1、TC1、TD1是否存在由T0的高4位决定;
第二层TA2、TB2、TC2、TD2是否存在则由TD1的高4位决定;
依此类推,每层的TDi的高4位都决定了下一层的TA(i+1)、TB(i+1)、TC(i+1)、TD(i+1)是否存在。
TD(i):他也由两部分构成Y(i+1)(m8~m5)说明后继的TA(i+1)、TB(i+1)、TC(i+1)、TD(i+1)是否存在。

TA1、TB1、TC1、中的T是对FI、DI、II、PI1、N、PI2、XI和UI等参数进行编码。这些参数是用来计算F、D、N、P、I、X和U的值。
(F,D用来计算ETU,P、I可编程电压和最大可编程电流,N是用于从接口设备到发送字符的卡的额外保护时间。X为时钟停止符,以及CLK上电是优先选用的状态。U为级别指示符:指明卡的操作级别)。

TA(2):专用模式字节,描述了卡操作专用模式的有关特点

TB(2):用八位上的编程电压值PI2编码以代替PI1

TA(i):在TD(i-1)(i>2)中的T=15的第一个出现后编码。XI,位b8b7上时钟停止指示的参考,UI,位b6到b1上级别指示的参考。

在TD(i-1) (i>2)中的T=15后正常忽略TA(i) TB(i) TC(i)所不支持的协议的接口字节特性。

3.分频因子和波特率调整因子(Fi/Di)

 

 

    • 1etu =(F/D) * (1/f) ,卡上电时默认F = 372, D = 1,所以1etu = 372/3.579Mhz=
      103us,也就是每一位是103us,对应波特率为9600。

三、PPS

  • 关于此协议参数协商部分,ISO中这样定义

     

    主要包括通讯协议,字符传输速率,以及超时等待时间和数据块的大小等。

    如果卡片在ATR里给出的信息表明其可以支持若干种通讯协议,终端该如何和它打交道呢?

    相当于卡片用默认的“英语”告诉终端“I can speak English, Chinese, Japanese, French.”

    这个时候终端可以进行协议选择(PPS)也可以不选择直接使用默认协议,如果进行协议选择的话,那么PPS就是终端在收到ATR后发出的第一个指令,相当于终端告诉卡片“OK, Let’s speak in Chinese.!”,然后它们“就可以用中文拉呱了”。

    如果不进行协议选择的话,终端则使用默认的协议给卡片发送其他的APDU指令,相当于二者使用默认的英语进行后续对话,
    其实就目前项目接触而言,绝大多数的卡,不使用PPS也是可以正常交互的,只有少数卡,不使用PPS无法进行后续交互。

四、APDU交互

  • APDU交互ISO中定义了T=0和T=1两种协议。

标签:协议,CLK,嵌入式,PSAM,字符,驱动,TD,TA
From: https://www.cnblogs.com/icaowu/p/17729071.html

相关文章

  • 3.PSAM卡操作
    0082008400C0008800B000B200A400/04D600/04DC002000B0读二进制文件00B096000600B0标识96文件标识00起始位置06读取长度00A4选择文件目录00A4000002DF01选DF01目录00A4标识00固定00固定02固定DF01目录名称801A秘钥分散801A590310FF......
  • VMware ESXi 8.0U2 macOS Unlocker & OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版
    VMwareESXi8.0U2macOSUnlocker&OEMBIOS集成网卡驱动和NVMe驱动(集成驱动版)发布ESXi8.0U2集成驱动版,在个人电脑上运行企业级工作负载请访问原文链接:https://sysin.org/blog/vmware-esxi-8-u2-sysin/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org发布......
  • Ubuntu安装CUDA Driver(显卡驱动)
    方法如链接https://blog.csdn.net/qq_34972053/article/details/126707938——————————————————————————————显卡,显卡驱动,nvcc,cudadriver,cudatoolkit,cudnn到底是什么?https://www.cnblogs.com/marsggbo/p/11838823.html—————————......
  • 芯片驱动选择
    看src/soc/common/cm.c->soc_dev_info这个全局变量,这个才是最准确最标准的,其结构体定义如下:/*informationaboutadevicetype*/typedefstructsoc_cm_device_info_s{uint16dev_id; /*ChipIDasfoundintable*/uint8rev_id;......
  • 【嵌入式开发】向开发板中烧写Linux系统-型号S3C6410
    原文:https://blog.51cto.com/u_14202100/5087350​作者​:​万境绝尘 转载请著名出处 终于拿到板子了,嵌入式开发正式开启. 板子型号:三星S3C6410基于ARM11,指令集基于arm6指令集;为毛不是CortextA9的板子; ​烧写内容​:​BootLoader​,​LinuxKernel​......
  • linux 驱动向应用程序发射信号
    系统支持信号在linux终端输入kill-l可以查看系统所支持的信号,可以看出,每个信号的名字都是以SIG开头:root@zhengyang:/work/sambashare/linux-5.2.8#kill-l1)SIGHUP2)SIGINT3)SIGQUIT4)SIGILL5)SIGTRAP6)SIGABRT7)SIGBUS8......
  • 嵌入式软件调试与验证2仿真
    2仿真环境中的嵌入式软件调试2.1固件调试方法概述目前的EDA环境提供了各种固件调试方法。通常可以使用以下方法之一:使用硬件的SystemC模型进行仿真这可以在不接触硬件的情况下尽早开始固件开发,并在假设模型准确的情况下测试代码的功能。主要局限是缺乏系统视图和(取决于模......
  • I2c_Adapter驱动框架讲解与编写-11
    参考资料:Linux内核文档:Linux-4.9.88\Documentation\devicetree\bindings\i2c\i2c-gpio.txtLinux-5.4\Documentation\devicetree\bindings\i2c\i2c-gpio.yamlLinux内核驱动程序:使用GPIO模拟I2CLinux-4.9.88\drivers\i2c\busses\i2c-gpio.cLinux-5.4\driver......
  • 高级系统架构师学习(八)嵌入式系统
    一、嵌入式系统概述基本概念1、将可配置与可裁剪的软硬件集成于一体的专用计算机系统,需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。2、指嵌入各种设备及应用产品内部的计算机系统。它主要完成信号控制的功能。体积小、结构紧凑,可作为一个部件埋藏于......
  • 痞子衡嵌入式半月刊: 第 81 期
    痞子衡嵌入式半月刊:第81期这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。本期刊是开源项目(GitHub:JayHeng/pzh-mcu-bi-weekly),欢迎提交issue,投稿或推荐你知道的嵌入式那些事儿。上期回顾:《痞子衡嵌入式半月......