射频卡接口文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
射 频 卡 接 口 文 档
一、接口电路
读写控制器采用UAR T 标准SCI 异步串口,经过芯片MAX232,将电平转换为RS-232电平后,接入PC 机。电路图如下:
C 25105C 0
C
C 26
C 28
R XD T X
二、接口协议:
通讯格式:
数据包长度L(1byte) 命令字C(1byte) 数据包D(L-1bytes) 通讯方向:
-> 下位机送给上位机 <- 上位机送给下位机
IC 卡读写器Demo 程序: 1) 启动
<- 02 0B 0F (02为长度,0B 为命令字,测试凤鸣器,0F 凤鸣器响的时间) -> 01 00 (01为长度,00为测试成功)
2) 寻卡
<- 02 02 26 (02为命令字,26为RegMfOutSelect)
-> 03 00 04 00 (00为命令成功代码,04表示Mifare One 卡) <- 02 0B 0F -> 01 00 3) 防冲突
<- 01 03 (03为命令字)
-> 05 00 52 00 75 7A (52 00 75 7A 为卡号CardSerialNo) <- 02 0B 0F -> 01 00
4) 选择
<- 01 04 (04为命令字)
-> 03 00 80 00
<- 02 0B 0F
-> 01 00
5) 终止
<- 01 01 (01为命令字)
-> 01 00
<- 02 0B 0F
-> 01 00
6) 参数设置
<- 01 0C (0C为命令字)
-> 01 00
7) 密码下载(扇区1密码为12个F)
<- 09 06 60 01 FF FF FF FF FF FF (06为命令字,60为PICC_AUTHENT1A(61为PICC_AUTHENT1B),01为扇区号,12个F为密码)
-> 01 00
<- 02 0B 0F
-> 01 00
8) 数据读(扇区1块0块1块2)
<- 02 02 52 (02为命令字,52为PICC_REQALL)
-> 03 00 04 00 (04为RegFIFOLength)
<- 01 03 (03为命令字)
-> 05 00 52 00 75 7A (52 00 75 7A为卡号)
<- 01 04 (04为命令字)
-> 03 00 08 00
<- 04 05 60 01 04 (05为命令字,60为PICC_AUTHENT1A(61为PICC_AUTHENT1B),01为扇区1,04为RegFIFOLength)
-> 01 00
<- 02 08 04 (08为命令号,04为块号)
-> 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (16个00为数据)
<- 02 08 05 (08为命令号,05为块号)
-> 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (16个00为数据)
<- 02 08 06 (08为命令号,06为块号)
-> 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (16个00为数据)
<- 02 08 07 (08为命令号,07为块号)
-> 11 00 00 00 00 00 00 00 ff 07 80 69 ff ff ff ff ff ff (第一个00为返回代码,后面6个00为密码A,ff 07 80 69为控制位,后面6个ff为密码B)
<- 02 0B 0F
-> 01 00
9) 数据写(扇区1块0块1块2)
<- 12 09 04 12 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (09为命令字,04为块号,12开始的16个字节为要写的数据)
-> 01 00
<- 02 0B 0F
-> 01 00
<- 12 09 05 45 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (09为命令字,05为块号,45开始的16个字节为要写的数据)
-> 01 00
<- 02 0B 0F
-> 01 00
<- 12 09 06 78 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (09为命令字,06为块号,78开始的16个字节为要写的数据)
-> 01 00
<- 02 0B 0F
-> 01 00
<- 12 09 07 11 11 11 11 11 11 ff 07 80 69 11 11 11 11 11 11 (09为命令字,07为块号,把密码A和密码B都修改成1)
-> 01 00
<- 02 0B 0F
-> 01 00
10) 块值操作(初始化)
<- 12 09 04 11 11 11 11 EE EE EE EE 11 11 11 11 04 FB 04 FB (09为命令字,04为块号,11开始的16个字节为要写的数据)
-> 01 00
<- 02 0B 0F
-> 01 00
11) 块值操作(读出)
<- 02 08 04 (08为命令字,04为块号)
-> 11 00 11 11 11 11 EE EE EE EE 11 11 11 11 04 FB 04 FB (11后面的16个自己是读出来的数据)
<- 02 0B 0F
-> 01 00
12) 块值操作(加值)
<- 08 0A C1 04 22 22 22 22 04 (0A为命令字,C1为PICC_INCREMENT,04为块号,4个字节的22是要加值的数据,04为块号)
-> 01 00
<- 02 0B 0F
-> 01 00
13) 块值操作(减值)
<- 08 0A C0 04 11 11 11 11 04 (0A为命令字,C1为PICC_DECREMENT为块号,4个字节的11是要减值的数据,04为块号)
-> 01 00
<- 02 0B 0F
-> 01 00
14) 修改密码
<- 02 02 26 (02为命令字,26为RegMfOutSelect)
-> 03 00 04 00