[J2ME]华禹高科 RFID Demo 命令集用户手册

1 介绍

1.1. 文档范围

该文档描述了 RFID Demo[J2ME]程序与 RFID Demo 板通信所使用的命令集。
使用该命令集可以控制和管理与 RFID Demo 板相关的操作。

1.2. 串口配置

串口的配置为:

1.3. 命令行

命令行的基本格式为:
START(1) | LEN(2) | CMD(2) | SECTORNUM(1) | BLOCKNUM(1) | DATA(LEN-4) | CRC(4) | END(1)

1.4. 信息的返回和结果码

1.5. 错误码

错误码如下所示:

错误码错误码描述
0成功
1无卡
2卡冲突
3选卡失败
4卡认证失败
5读卡失败
6写卡失败

2 通用控制命令

2.1. CQ

作用:查询卡的某扇区某块是否可访问
命令行示例:
start+04CQ10+CRC(4 个字符,预留为 0)+end 实际数据:
例:023034435131313030303003

解释:查询卡的扇区 1 块 1 是否可访问
02:前缀;
30 34:表示长度为 4;
43 51:表示命令为 CQ;(ASCII)
31 31:表示扇区和块号都是 1;
30 30 30 30:校验和为 0x0000;(预留)
03:后缀;
返回:
单片机收到命令后返回 ACK;
ACK 的值为{0x02,0x41,0x43,0x4B,0xFF,0x03};

查询卡成功后返回:
02 30 36 :表示长度为 6;
43 51:表示命令为 CQ
31 31:表示扇区和块号都是 1;
30 30:错误码为 0;表示寻卡成功;
30 30 30 30:校验码;
03
查询卡会一直查询直到成功。

2.2. CR

作用:读取卡的某扇区某块的内容
命令行示例:
start+04CR11+CRC(4 个字符,预留为 0)+end
实际数据:023034435231313030303003
解释:读取卡的扇区 1 的块 1 的内容
前缀:02
长度:30 34:表示长度为 0x04;
命令:43 52;表示命令为 CR
扇区号:31;表示扇区号为 1;
块号:31;表示块号为 1;
校验:30 30 30 30;表示校验值为 0x0000;校验未用;
后缀:03
返回:
单片机收到命令后返回 ACK;
ACK 的值为{0x02,0x41,0x43,0x4B,0xFF,0x03};

当读卡正确后返回:
02 32 34 :表示长度为 0x24;
43 52 31 31:表示命令为 CR;扇区号和块号都是 1
30 30 30 30 30 30 30 30: 0x00 0x00 0x00 0x00 表示卡号为 0
30 30 30 30 30 30 30 30: 0x00 0x00 0x00 0x00 表示金额为 0
30 30 30 30 30 30 30 30: 0x00 0x00 0x00 0x00 未用
30 30 30 30 30 30 30 30: 0x00 0x00 0x00 0x00 未用
30 30 30 30 03

当读卡出现错误时返回:
02 30 36 :表示长度为 6;(含错误码和校验和的长度)
43 52:表示命令为 CR
31 31:表示扇区和块号都是 1;
30 35:错误码为 5;表示读错误;
30 30 30 30:校验码;
03

2.3. CW

作用:将 16 个字节的数据写入卡的扇区 1 块 1。
命令行示例:start+24CW11+数据(32 个字符对应 16 个字节)+CRC(4 个字符,预留 为 0)+end
实际数据:
02 32 34 :长度为 0x24(含数据区和校验码)
43 57 :命令为 CW
31 31 :扇区和块号都为 1
30 30 30 30 30 30 30 30: 0x00 0x00 0x00 0x00
30 30 30 30 30 30 30 30: 0x00 0x00 0x00 0x00
30 30 30 30 30 30 30 31: 0x00 0x00 0x00 0x01
30 30 30 30 30 30 30 30: 0x00 0x00 0x00 0x00
以上为写入的 16 个字节的数据
30 30 30 30 03
解释:向卡的扇区 1 块 1 写入 16 字节的数据

返回:
单片机收到命令后返回 ACK;
ACK 的值为{0x02,0x41,0x43,0x4B,0xFF,0x03};

当写卡成功后返回;
02 30 36 :表示长度为 6;(含错误码和校验码)
43 57:表示命令为 CW
31 31:表示扇区和块号都是 1;
30 30:错误码为 0;表示写成功;
30 30 30 30:校验码;
03

当写卡失败后返回;
02 30 36 :表示长度为 6;(含错误码和校验码)
43 57:表示命令为 CW
31 31:表示扇区和块号都是 1;
30 36:错误码为 6;表示写错误;
30 30 30 30:校验码;
03

2.3 CK(要求固件版本为V3.0)

作用:查询卡的唯一ID号
命令行示例:
start+04CK10+CRC(4 个字符,预留为 0)+end 实际数据:
例:023034434B31313030303003

解释:查询卡的32位的唯一ID号;
02:前缀;
30 34:表示长度为 4;
43 4B:表示命令为 CK;(ASCII)
31 31:表示扇区和块号都是 1(预留);
30 30 30 30:校验和为 0x0000;(预留)
03:后缀;
返回:
单片机收到命令后返回 ACK;
ACK 的值为{0x02,0x41,0x43,0x4B,0xFF,0x03};

当查询到卡后,返回卡的唯一ID号。
02 : 前缀
30 43:0x43为ASCII码C,表示长度为 12;
43 4B:表示命令为 CK
31 31:表示扇区和块号都是 1;(预留)
31 32 33 34 35 36 37 38: 表示卡的唯一ID号为0x12345678
30 30 30 30:校验码;
03

2.4 CL(要求固件版本为V3.0)

作用:导入密钥
命令行示例:
start+12CL10+密码类型(2个字节)+密码(12个字节)+CRC(4 个字符,预留为 0)+end 实际数据:
例:023132434C3131303A3132333435363738394142433030303003

解释:查询卡的32位的唯一ID号;
02:前缀;
31 32:表示长度为 0x12;
43 4C:表示命令为 CL;(ASCII)
31 31:表示扇区和块号都是 1(块号预留);
30 3A: 表示载入KeyA(如果载入KeyB,则为30 3B)
31 32 33 34 35 36 37 38 39 41 42 43: 表示keyA的密码为0x123456789ABC(0x41为ASCII码A)
30 30 30 30:校验和为 0x0000;(预留)
03:后缀;
返回:
单片机收到命令后返回ACK表示导入密钥成功;
ACK 的值为{0x02,0x41,0x43,0x4B,0xFF,0x03};

购买信息:

1. 创易电子淘宝店

编写者 日期 关键词
华禹工控 2010-07-28 TextFeild、J2ME、华禹手机模块、JNI
302 Found

302 Found


nginx/1.8.0