现将读写器通讯协议全文发出,谁能告诉我如何向读写器发送指令?
卡类型是SEMENS 4442。
IC卡读写器通讯协议
通用型IC卡读写器(89C52)可读写ATMEL 24C01A/02/04/08/16/32/64
存储卡,ATMEL 88SC102/1604/1608/153 逻辑加密型IC卡,SE4432/42IC卡.
其命令格式如下:
1. 命令格式
(1) 选卡类型
C0 类型号
类型号=01 ATMEL 24C01A(1K位卡)
=02 ATMEL 24C02 (2K位卡)
=04 ATMEL 24C04 (4K位卡)
=08 ATMEL 24C08 (8K位卡)
=16 ATMEL 24C16 (16K位卡)
=45 ATMEL 45D041 (4M位卡,Singulated Module 封装)
=46 ATMEL 45D041 (4M位卡,ABS Card 封装)
=A1 ATMEL 88SC102/1604
=A2 ATMEL 88SC1608
=A3 ATMEL 88SC153
=B1 SEMENS 4432/4442
=32 ATMEL 24C32 (32K位卡)
=64 ATMEL 24C64 (64K位卡)
读写器上电后默认的卡类型为24C01A卡,通过选卡类型
命令选择其它类型卡后,以后的读写都针对此种卡直至
再选择其它卡类型或读写器断电
(2) 上电
B0
(3) 下电
B1
(4) 应答复位(ATMEL 88SC1608/153,SE4432/42)
B2
(5) 校验密码--带错误计数(102/1604、1608/153、4442)
A0 AD1 AD2 LEN byte1…byten (88SC102/1604,4442)
A0 INDEX MM1 MM2 MM3 (88SC1608/153)
INDEX (88SC153)
00 第0套写密码
01 第1套写密码
02 第0套读密码
03 第1套读密码
(6) 校验密码--不带错误计数(ATMEL 88SC102/1604)
A1 AD1 AD2 LEN byte1…byten
(7) 密码认证(ATMEL 88SC1608/153)
A2 Ci(8字节) Gc(8字节) Q0(8字节)
(8) 读卡(24CXX,102/1604,1608/153,4442,45D041)
D0 AD1 AD2 LEN (24CXX,102/1604,1608/153,4442)
D0 AD1 AD2 AD3 LEN (45D041)
D1 读AT45D041 状态寄存器
(9) 写卡(24CXX,102/1604,1608/153,4442,45D041)
E0 AD1 AD2 LEN byte1…byten (24CXX,102/1604,1608/153,4442)
E0 AD1 AD2 AD3 LEN (45D041)
E1 AD1 AD2 AD3 LEN (45D041 直接写,不擦除)
(10) 熔断(ATMEL 88SC102/1604,1608,153)
F0 AD1 AD2 (ATMEL 88SC102/1604)
F0 (ATMEL 88SC1608)
F0 byte1 (ATMEL 88SC153)
byte1 -- 熔断数据
(11) 读熔断状态(ATMEL 88SC1608/153)
F1
(12) 返回信息
CODE LEN byte1…byten
CODE=03 操作正确
=01 读写地址超出
=04 操作错误(卡不反应或密码校验错误)
=05 命令错
=06 IC卡未上电
=02 读写器中无卡
------------------------------------------------------
注∶ AD1----读、写的地址第一个字节,读写1608卡时00-07
为用户区0-7,08为Configuration区;读写4442
卡时00为读写主存储区,01为读写保密代码区,
02为读写保护区
AD2----读、写的地址第二个字节
AD3----读、写的地址第三个字节
LEN----读、写的字节数,写字节数不超过40H(64)
byte---读、写的数据
MM1----密码第一个字节
MM2----密码第二个字节
MM3----密码第三个字节
INDEX----密码索引
2. 举例
每个命令都是一个字符串
(1) 校验ATMEL 1608密码
"A20717ABDC "
(2) 从卡0地址读出40H字节
"D0000040 "
(3) 向卡10H地址写数据"1122334455667788"
"E00010081122334455667788 "
(4) 以上各例子的返回信息
1) "0300"
2) "0340byte1…byte64"
3) "0300"
4) IC卡不反应的返回信息"0400"