SDI011 读卡器发送非APDU指令

1 使用FFFE 发送Raw data

例如:

  想要发送raw data :5140

FFFE0000025140

  实际收到的是:

  0B0051403E1E , (0B:PCB , 00:CID, 3E1E: EDC)

  14443 协议帧格式如下:

  通过对比得出,通过FFFE指令,实际发送的数据依旧是标准I块的格式, 不能发送非标准帧的数据;

2 使用FFCC 发送 L3层指令

相关命令:

  READER_CNTLESS_RAW_CFG  :  设置进入RAW模式,通过跟踪仪数据,发送该指令后,SDI011读卡器不在寻卡操作;

  •   FFCC0000029700    ;设置进入RAW模式,卡类型为TypeA
  •   FFCC0000029701    ;设置进入RAW模式,卡类型为TypeB

  READER_CNTLESS_RAW_XMIT_EX:  发送指令

  

    注: B1: Wait time , 设置FWI

B2: Is CRC , 是否添加CRC

B3: 主要用于发送短帧,比如REQA(26)、WakeUp(52)等指令;

   

 举例:

  发送:

print reader.pcsc.send_apdu("FFCC0000" + "02" + "9700", 2)print reader.pcsc.send_apdu("FFCC0000" + "07" + "AE03000700" + "01" + "26", 2)print reader.pcsc.send_apdu("FFCC0000" + "08" + "AE03000000" + "02" + "9320", 2)

回复:
fm11nc Reader init
Nfc Reader init
atr:3B80800101
9000
00100000000044009000
002800000000881DA297A09000

  


  

原文地址:https://www.cnblogs.com/lxz365/p/11984805.html

时间: 2024-08-02 02:01:08

SDI011 读卡器发送非APDU指令的相关文章

问题解决——使用串口调试助手发送控制字符 协议指令 <ESC>!?

外行指挥内行的结果就是,你必须按照他想的去做,等做不出来再用自己的办法,而且必须如此. ------------------------------------------------------------------------------------- 用微软的条形码控件打印的条码标签,尺寸太小了,18mm×34mm的热敏标签纸,还得四周留边距1mm.结果出来的结果不理想,半个月后,终于用我的方法了. 直接串口操作打印机. 当然我知道,这意味着,与此款打印机结下了"不解之缘".

jdk1.6 java语言 连接pcsc读卡器 发送APDU指令

java语言操作读卡器  jdk1.6 提供的Package javax.smartcardio可以直接连接pcsc读卡器.和读卡器进行指令交互 Package javax.smartcardio详细信息 http://docs.oracle.com/javase/6/docs/jre/api/security/smartcardio/spec/javax/smartcardio/package-summary.html java语言代码实例 /** *connectpcsc.java */ i

一个串口通信程序,适用于3g模块发送简单AT指令

源码如下: #include <stdio.h> #include <string.h> #include <sys/types.h> #include <errno.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <termios.h> #include <stdlib.h> int tty_fd;

与电子钱包相关的APDU指令

CLS:命令报文的类别字节,class byte(类别字节) of command message(命令报文) UranusPay ED/EP: UranusPay是HB公司开发的COS,而ED是电子存折(electronic Deposit),而EP是电子钱包(electronic Purse) 常用的命令集: 功能描述          命令           类别    操作码 读透明文件:Read Binary    00       B0

向串口连续发送指令,断点调试与直接运行不一致

向一个串口连续发送多条指令: private void OnOnebyOne(String[] str) { int i; String[] offstr = str; for (i = 0; i < offstr.Length; i++) { string oneoff = offstr[i]; Send(oneoff); } } 1.断点调试,逐步执行所有指令都可以执行. 2.直接运行,只执行第一条指令. 原因:如果串口设置的BaudRate是9600,那一个byte为需要的发送时间:1/9

java智能卡APDU学习笔记

因项目需要,利用APDU通信协议在ME手机端和卡端进行通讯.在实践的过程中遇到一些问题,先记录如下. APDU协议,即是智能卡与读写器间的应用层协议,在ISO7816-4[7]中定义了该协议的结构格式.APDU数据有两种结构,读写器使用的APDU结构为命令APDU,C-APDU(Command APDU),智能卡方面使用的APDU结构为响应APDU,R-APDU(Reponse APDU). 命令APDU 必选部分:CLA, INS, P1, P2 可选部分:LC, 数据段, LE CLA确定A

AngularJS指令详解

一.什么是指令? 在<AngularJs权威教程>中,指令可以简单理解成特定的DOM元素上运行的函数:我认为还可以理解成将将自定义的HTML标签解析成原始的标签,然后为其加入一些扩展的功能(函数). 二.指令是如何工作的? 首先是编译阶段,angularJs会遍历整个的文档并根据JavaScript中指令定义来处理页面上什么的指令.在遍历的过程中,有可能一层套着一层,一直延深处遍历.一但遍历和编译完毕就会返回一个叫做模板函数的函数.在这个函数没被返回(return)之前我们可以对编译后的DOM

智能IC卡与终端(读卡器)之间的传输协议

1.有两种协议 T=0,异步半双工字符传输协议 T=1,异步半双工块传输协议 终端一般都支持这两种协议,IC卡可以选择支持其中的一种.(因为终端可能需要面对各种类型的卡片,所以必须两种协议都支持,而卡片则不然了) 2.如何判断卡片支持哪种传输协议? 在ATR值得TD1字段中规定了后续传输中所采用的传输协议,T=0或T=1,如果ATR中不存在ATR的话,则假定采用T=0 如果在ATR之后卡片与终端之间没有参数协商的PTS过程的话(详细细节可参考ISO7816相关部分),由IC卡指定的协议将在复位应

angularJs之指令详解(二)

指令隔离scope与父scope之间数据绑定 通常,隔离指令的scope会带来很多的便利,尤其是在你要操作多个scope模型的时候.但有时为了使代码能够正确工作,你也需要从指令内部访问父scope的属性.好消息是Angular给了你足够的灵活性让你能够有选择性的通过绑定的方式传入父scope的属性.让我们重温一下我们的 helloWorld 指令,它的背景色会随着用户在输入框中输入的颜色名称而变化.还记得当我们对这个指令使用隔离scope的之后,它不能工作了吗?现在,我们来让它恢复正常. 假设我