Cpu实验
实验十一、基于符合ISO/IEC 7816 标准协议的CPU卡RATS、PPS请求指令操作
实验目的
1、学习和了解ISO/IEC 7816标准。
2、学习和了解ATS各字节的具体定义。
3、学习和了解PPS设置的实现。
实验器材:
1、RFID读写器模块1台
2、笔记本电脑或台式电脑1台
3、PC机软件及MINI型USB连接线
实验内容:
1、利用提供的底层程序及据于WINDOS环境下的上位机软件。
2、开启读写器的USB通信功能,打开上位机软件发送RATS命令,上位机可以通过USB来获取发送命令的实时返回CPU卡的响应,并对响应数据按ISO7816协议进行分析,判别其正确性。
3、开启读写器的USB通信功能,打开上位机软件发送PPS命令,上位机可以通过USB来获取发送命令的实时返回CPU卡的响应,并对响应数判别参数是否设置成功。
实验步骤:
首先使用RFID读写模块对CPU卡进行激活,按图1流程进行操作。
将CPU卡放置到读卡模块的读卡区;
按图1橙色虚线框内容对CPU卡进行选中,如下图所示点击按钮"寻卡"->"Select"进行选卡。

点击按钮"复位卡"对CPU进行复位,使CPU卡进入FMCOS模式,并返回ATS代码

对返回的ATS进行字段分析,理解其表达的含义

例1:
如果一张CPU卡ATS为:10788090022090000000000066799D24,则这张CPU卡ATS的具体解释如下表:
|
符号 |
字节内容 |
内容解释 |
|
TL |
0x10 |
长度字节 |
|
T0 |
0x78 |
TA1、TB1和TC1存在,FSCI=8(FSC=256字节) |
|
TA1 |
0x80 |
两个方向可以支持相同的D,支持DR=1,DS=1 |
|
TB1 |
0x90 |
FWI=0x9(FWT=155ms) SFGI=0(SFGT=302us) |
|
TC1 |
0x02 |
不支持NAD,支持CID |
|
T1 |
0x20 |
COS版本号2.0 |
|
T2 |
0x09 |
COS厂商代码(复量微电子) |
|
T3 |
0x00 |
保留字节 |
|
T4-T11 |
0000000066799D24 |
卡序列号 |
通过PPS指令设置CPU卡与读卡模块间的通信速率。



实验十二、CPU卡系统FMCOS用户卡的发卡指令操作
实验目的:
1、了解FMCOS文件系统结构
2、了解CPU卡发卡流程
3、掌握CPU卡发卡指令的使用,并理解每条指令的含义。
4、了解用户卡电子钱包格式。
实验器材:
1、RFID读写器模块1台
2、笔记本电脑或台式电脑1台
3、PC机软件及MINI型USB连接线
实验内容:
1、利用提供的底层程序及据于WINDOS环境下的上位机软件。
2、开启读写器的USB通信功能,打开上位机软件发送CPU卡相关的发卡指令,在FMCOS上建立一个文件系统。
3、理解发卡指令的含义,能根据返回的响应码判断CPU卡是否操作成功。
实验步骤:
参考《FMCOS通用技术手册》内容,理解FMCOS下各级文件(MF、ADF、EF)之间的关系。

根据下图用户卡的文件结构,进行发卡操作,发卡指令可参考下文蓝字部分内容。

用户卡文件结构
/********发卡************/
00a4000000
//外部认证,初始密码为FFFFFFFFFFFFFFFF
0084000008
0082000008+密文
//删除MF下的所有应用文件
800e000000
00a4000000
//建立KEY文件,并写入主控密钥
80e00000073f004001f0ffff
80d401001539f0f0aa33ffffffffffffffffffffffffffffffff
80e00001072c0018f0f0ffff
//写入目录基本文件
00dc010c15701361114f09a00000000386980701500450424f43
//应用目录ADF(3f01)
80e03f01113804f4f0f0957fffa00000000386980701
//选择应用目录ADF(3f01)
00a4040009a00000000386980701
//创建ADF->KEY文件
80e00000073f0150FFf0ffff
//应用主控子密钥DACK_ADF 00
80d401001539f002aa3300000000000000000000000000000000
//消费子密钥 DPK 00
80d40100153ef002010111111111111111111111111111111111
//消费子密钥 DPK 01
80d40101153ef002010122222222222222222222222222222222
//圈存子密钥 DLK 00
80d40100153ff002010133333333333333333333333333333333
//圈存子密钥 DLK 01
80d40101153ff002010144444444444444444444444444444444
//安装TAC子密钥 DTK 00
80d401001534f002010155555555555555555555555555555555
//PIN解锁子密钥 DPUK 00
80d401001538f002ffff66666666666666666666666666666666
//PIN重装子密钥 DRPK 00
80d401001537f002ffff77777777777777777777777777777777
//应用维护子密钥DAMK_ADF 00
80d401001536f002ff3388888888888888888888888888888888
//圈提子密钥 DULK 00
80d40100153df002010199999999999999999999999999999999
//圈提子密钥 DULK 01
80d40101153df0020101aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
//透支限额子密钥 DUK 00
80d40100153cf0020101bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
//透支限额子密钥 DUK 01
80d40101153cf0020101cccccccccccccccccccccccccccccccc
//PIN 00
80d401000b3af0ef0133123456FFFFFF
//建立公共应用基本文件 0015(二进制文件 读F0写F0)
80e0001507a8001ef0f0ffff
//写公共应用基本文件(MAC)
04d6950022112233445566778899aabbccddeeff00112233445566778899aabbccddee6f22aa45
//建立持卡人基本文件 0016 (二进制文件 读F0写F0)
80e0001607a80027f0f0ffff
//写持卡人基本文件
04d6960022112233445566778899aabbccddeeff00112233445566778899aabbccddee0817284e
//建立交易明细文件 0018 (循环记录文件 读F1写EF)
80e00018072e0A17f1efffff
//建立电子存折文件 0001 (使用、取余额权"F1")
80e00001072f0208f10f1f18
//建立电子钱包文件 0002 (使用、取余额权"F0")
80e00002072f0208f0f0ff18
Deselct
实验十三、CPU卡系统FMCOS用户卡的消费指令操作
实验目的
1、了解FMCOS文件系统结构
2、了解CPU卡的消费过程的流程
3、掌握CPU卡消费指令的使用,并理解每条指令的含义。
4、了解DES、MAC码的计算原理。
实验器材:
1、RFID读写器模块1台
2、笔记本电脑或台式电脑1台
3、PC机软件及MINI型USB连接线
实验内容:
1、利用提供的底层程序及据于WINDOS环境下的上位机软件。
2、开启读写器的USB通信功能,打开上位机软件发送CPU卡相关的消费指令,留意读卡模块与用户卡间数据交互过流程(MAC码计算)。
3、理解卡消费指令的含义,根据返回的响应码判断CPU卡是否操作成功。
实验步骤:
1、
/********消费************/
00a4040009a00000000386980701
805c000204//读余额
0020000003123456
//圈存
805000020b000000000F11223344556610
805200000b11223344332211+MAC2
//消费
805001020b02000000011122334455660f
805401000f0000000011223344332211+MAC1

CPU卡综合消费流程
Cpu实验的更多相关文章
- 龙芯将两款 CPU 核开源,这意味着什么?
10月21日,教育部计算机类教学指导委员会.中国计算机学会教育专委会将2016 CNCC期间在山西太原举办“面向计算机系统能力培养的龙芯CPU高校开源计划”活动,在活动中,龙芯中科宣布将GS132和G ...
- 【转帖】龙芯将两款 CPU 核开源,这意味着什么?
龙芯将两款 CPU 核开源,这意味着什么? https://www.oschina.net/news/78316/loongson-open-source-two-cpu-core 文章挺不错的 也讲 ...
- kubernetes cpu限制参数说明
docker CPU限制参数 Option Description --cpus=<value> Specify how much of the available CPU resourc ...
- [acmm week12]二分+dp+单调队列
1004 抄作业 Time Limit: 1sec Memory Limit:256MB Description Zfree虽然平时很爱学习,但是他迫于生活所迫(比如设计cpu实 ...
- PyTorch 60 分钟入门教程:数据并行处理
可选择:数据并行处理(文末有完整代码下载) 作者:Sung Kim 和 Jenny Kang 在这个教程中,我们将学习如何用 DataParallel 来使用多 GPU. 通过 PyTorch 使用多 ...
- 车牌识别(end-to-end-for-chinese-plate-recognition)项目搭建基于Mxnet(Python 3.5)
最近看到geihub上有个车牌识别的项目,感觉很有意思,从上面fork了一下弄到本地自己跑了下.在安装过程中遇到了一些问题,记录如下. 项目github连接:https://github.com/sz ...
- PyTorch Data Parrallel数据并行
PyTorch Data Parrallel数据并行 可选择:数据并行处理 本文将学习如何用 DataParallel 来使用多 GPU. 通过 PyTorch 使用多个 GPU 非常简单.可以将模型 ...
- PyTorch 数据并行处理
PyTorch 数据并行处理 可选择:数据并行处理(文末有完整代码下载) 本文将学习如何用 DataParallel 来使用多 GPU. 通过 PyTorch 使用多个 GPU 非常简单.可以将模型放 ...
- [计算机组成原理][实验十.R-I-J型指令CPU设计实验总结]
总算解决一大心头之患了,比想象中容易,通宵两夜,刷完了十个实验,这个实验就是最后的了.感慨颇多.特地写篇总结. 想做一件事,就立马去做把.你会发现没那么困难,往往最大的困难,是心里的困难. 培养了HD ...
随机推荐
- BZOJ 2466: [中山市选2009]树( 高斯消元 )
高斯消元解异或方程组...然后对自由元进行暴搜.树形dp应该也是可以的... ------------------------------------------------------------- ...
- BZOJ 1044: [HAOI2008]木棍分割(二分答案 + dp)
第一问可以二分答案,然后贪心来判断. 第二问dp, dp[i][j] = sigma(dp[k][j - 1]) (1 <= k <i, sum[i] - sum[k] <= ans ...
- preg_replace的用法
<?php $str1 = "03/28/2015"; // 要替换成 2015-03-28 echo preg_replace("/([0-1][1-9])\/( ...
- codeforces 622F. The Sum of the k-th Powers 拉格朗日插值法
题目链接 求sigma(i : 1 to n)i^k. 为了做这个题这两天真是补了不少数论, 之前连乘法逆元都不知道... 关于拉格朗日插值法, 我是看的这里http://www.guokr.com/ ...
- Delphi 常用属性说明(超长)
Delphi组件的常用事件Onclick——当单击时触发这个事件中的代码Onchange——当改变该组件内容时触发其中的代码Oncreate——当创建时触发这个事件中的代码Onclose——当关闭的时 ...
- activemq在windows下启动报错,闪退问题
查验了网上各种方法,都没搞定,最后楼主决定按照linux的解决套路来,把windows计算机名称改为纯英文字母,原计算机名:lee_pc,修改后为leepc,然后重启电脑,再重新运行activemq. ...
- android中使用setVideoURI()播放视频
最近在做一个demo,要求播放视频,记录一下.使用的是VideoView控件,如果播放网络视频的话,视频应该是渐进流式的,格式嘛,大家应该都知道,一般是H.263或者H.264格式的扩展名为3gp或者 ...
- 开源流媒体处理库live555服务器端、客户端源代码分析总结
RTSP服务器端流程: 1. RTSP连接的建立过程 RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话. 首先创 ...
- python(进程池/线程池)
进程池 import multiprocessing import time def do_calculation(data): print(multiprocessing.current_proce ...
- 开始QT+OpenCV学问
最近一个月.由于超声造影软件工具做.因此,开始接触OpenCV.使用OpenCV的话.除了图像处理,其它功能都非常弱.所以又開始学习MFC. 从原先的.net C#编程环境一下变成MFC还真有点不习惯 ...