通过PSAM读CPU卡号流程小结

PSAM卡与CPU卡交互流程===》》》

1 读CPU卡设备对CPU卡进行复位操作

2 打开CPU卡用户文件夹DF,COS命令:00 A4 00 00 02 12 00

3 从CPU卡获取4位随机数,COS命令:00 84 00 00 04

4 对PSAM卡进行复位

5 打开PSAM卡用户文件夹DF,COS命令:00 A4 00 00 02 13 00

6 对获取的CPU 4位随机数+补4位0x00做内部认证,COS命令:00 88 00 00 08 4位随机数+4位0x00

7 发送取响应指令,获取8位DES加密结果,COS命令:00 C0 00 00 08

8 将获得的加密结果数据发给CPU做外部认证,COS命令:00 82 00 00 08 8位加密后的数据

9 读取CPU卡二进制文件,获得卡号,COS命令:00 B0 83 00 00 (二进制文件00 03)

 

 

如下是做GPIO模拟交互时的一些记录:

/*

* A 类卡:1-5MHz 时钟、VCC-5V、

* B 类卡:1-4MHz 时钟、VCC-3V、

*通过 pwm 产生 50% 占空比的方波(协议规定 ISO-7816 时钟信号的工作周期应在稳定操作期间周期的40% 60%)

*clk 电压最小值为 0.7*VCC,最大值为 VCC

*单总线I/O数据持续时间(电压min 0.7 Vcc,max Vcc):

在数据 I/O 上,一位数据所持续的时间叫做“基本时间单位”,简写为 etu。

etu是由F和D共同决定的,这两个值是在复位应答中给出的,F 为时钟分频因子,D为波特率调整因子。

其大小为 F/D 个时钟周期,这里的时钟指的是 CLK 触点上的时钟,即

1etu =(F/D) * (1/f)   

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

帧格式:

每帧数据采用Byte字符方式,一个Byte由8比特组成。

每帧的传输由起始位、字符数据(8位)、校验位和停止位组成

其中

起始位为一个ETU(Elementary Time Unit)的低电平

数据位占用8个ETU的时间 (psam卡从最低位开始发送)

校验位占用一个ETU的时间 偶校验

停止位比特为高电平,占用2个ETU的时间

*操作:

热复位:当VCC和CLK保持稳定时,接口设备置RST为状态L至少400时钟周期(时间te)后,接口设备启动热复位,该code 时钟周期为278ns

应答:I/O的应答在RST上信号上升沿之后的400-40000个时钟周期(tf)之前开始(时间tf在Td之后);

在RST处于状态H时,如果应答信号未在40000个周期之后开始,RST上的信号将返回状态L

两个连续字符上升沿之间的延迟至少 12etu

在复位应答期间,卡发出的两个连续字符的上升沿间的延迟应不超过9600etu,这个最大值被称为 “初始等待时间”

应答值:TS 为 0x3b 时表示正向约定解码,先传低位;TS为 0x3f 时表示反向约定,先传高位

*注:

状态Z:传号或高电平

状态A:空号或低电平

*/

参考资料:

http://www.doc88.com/p-7982900155813.html PSAM卡应用交易指令

https://www.stmcu.org.cn/article/id-325648 STM32单片机的PSAM卡驱动模块设计

SmartCOS-PSAM1.3用户手册.pdf

eetop.cn_STM32智能卡接口笔记.pdf

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值