1.串口UART通讯协议●命令帧格式包头机号命令数据个数数据异或校验包尾STX ID CMD/STAUS LEN DATA BCC ETX 值0x02 0x03长度1字节1字节1字节1字节LEN字节1字节1字节说明包开始标志机号0x00—0xff, 可寻址0—255,在此模块中,却省为0x01发送时为命令,返回时为正确错误状态。
为数据区长度数据区从包头到数据的异或校验包结束标志●命令与数据对照表命令类型功能发送返回命令数据个数数据状态数据个数数据系统命令联机0x00 0x00 0x00 0x00 复位0x01 0x00 0x00 0x00更改波特率0x02 0x01 B波特率波特率号2400 B=0x004800 B=0x019600 B=0x02(出厂默认)14400 B=0x0319200 B=0x0428800 B=0x0557600 B= 0x060x00 0x00控制蜂鸣器0x03 0x04 ABCDA=0x00 蜂鸣器关闭=0x01 蜂鸣器开启=0x02 使蜂鸣器响BCD*10 msBCD: 在A=2的时候表示时间值如果时间为123,则B=0x01C=0x02D=0x030x00 0x00更改机号0x05 0x01 I10进制机号正确=0错误=其他值0x00进入连续读卡模式0x06 0x01 0x00:停止连续读卡0x01:连续读mifare卡序列号0x02:连续读15693序列号正确=0错误=其他值0x00配置芯片可读卡片类型0x07 0x01 TT=0 14443 TYPE AT=1 14443 TYPE BT=2 14443 TYPE CT=3 15693ISO14443 TYPE AMF0 S50、S70、U10卡操作命令呼叫卡0x10 0x00 0x00 0x02 NN0x4400 = ultra_light0x0400 =Mifare_One(S50)0x0200 =Mifare_One(S70)0x4403 =Mifare_DESFire0x0800 = Mifare_Pro0x0403 = Mifare_ProX0x0033 = SHC1105休眠模块0x11 0x00 0x00 0x00读序列号0x12 0x00 0x00 0x04或0x07 NNNN 或NNNNNNN读数据0x13 0x08 BAPPPPPPB: 绝对块号S50:0x00-0x3fS70:0x00-0xffA:=0-PICC_AUTHENT1A=1-PICC_AUTHENT1B=2-NO_AUTHENPPPPPP: 6子节密匙如果PPPPPP=”******“则密码将从EEPROM中进行读取0x00 0x0f DDDDDDDDDDDDDDDD16字节数据写数据0x14 0x18 BAPPPPPPDDDDDDDDDDDDDDDDB: 绝对块号S50:0x00-0x3fS70:0x00-0xffA:=0-PICC_AUTHENT1A=1-PICC_AUTHENT1B=2-NO_AUTHENPPPPPP: 6子节密匙DDDDDDDDDDDDDDDD:16字节数据如果PPPPPP=”******“则密码将从EEPROM中进行读取0x00 0x00修改密匙A 0x15 0x0e BAPPPPPPMMMMMMB: 绝对块号S50:0x00-0x3fS70:0x00-0xffA:=0-PICC_AUTHENT1A=1-PICC_AUTHENT1B=2-NO_AUTHENPPPPPP: 6子节原密匙MMMMMM: 6子节新密匙如果PPPPPP=”******“则密码将从EEPROM中进行读取0x00 0x000x00 0x04 DDDD 读钱包0x16 0x08 BAPPPPPPB: 绝对块号S50:0x00-0x3fS70:0x00-0xffA:=0-PICC_AUTHENT1A=1-PICC_AUTHENT1B=2-NO_AUTHENPPPPPP: 6子节密匙如果PPPPPP=”******“则密码将从EEPROM中进行读取0x00 0x00写钱包0x17 0x0c BAPPPPPPDDDDB: 绝对块号S50:0x00-0x3fS70:0x00-0xffA:=0-PICC_AUTHENT1A=1-PICC_AUTHENT1B=2-NO_AUTHENPPPPPP: 6子节密匙DDDD: 4子节写钱包值(低字节—高字节)如果PPPPPP=”******“则密码将从EEPROM中进行读取加钱包0x18 0x0c BAPPPPPPDDDD0x00 0x00B: 绝对块号S50:0x00-0x3fS70:0x00-0xffA:=0-PICC_AUTHENT1A=1-PICC_AUTHENT1B=2-NO_AUTHENPPPPPP: 6子节密匙DDDD: 4子节加钱包值(低字节—高字节)如果PPPPPP=”******“则密码将从EEPROM中进行读取减钱包0x19 0x0c BAPPPPPPDDDDB: 绝对块号S50:0x00-0x3fS70:0x00-0xffA:=0-PICC_AUTHENT1A=1-PICC_AUTHENT1B=2-NO_AUTHENPPPPPP: 6子节密匙DDDD: 4子节减钱包值(低字节—高字节)如果PPPPPP=”******“则密码将从EEPROM中进行读取0x00 0x00批量读数据0x1A 0x09 BAPPPPPPNB: 开始绝对块编号S50:0x00-0x3fS70:0x00-0xffA:=0-PICC_AUTHENT1A=1-PICC_AUTHENT1B=2-NO_AUTHENPPPPPP: 6子节密匙注:前提条件为各扇区密码一致N: 读取的块个数0x01—0x0c如果PPPPPP=”******“则密码将从EEPROM中进行读取0x00 ? 16*N16*N字节数据休眠卡0x1B 0x00 0x00 0x00 呼叫IDLE卡0x1C 0x00 0x00 0x00 下发EEPROM密码0X28 0x08 SAPPPPPPS: 区号S50:0x00-0x0fA:=0-PICC_AUTHENT1A=1-PICC_AUTHENT1B=2-NO_AUTHENPPPPPP: 6子节密匙0x00 0x00下发EEPROM数据0X29 0x11 BDDDDDDDDDDDDDDDDB: EEPROM块号0x00-0x1fD..D:EEPROM数据0x00 0x00读取EEPROM数据0X2A 0x01 BB: EEPROM块号0x00-0x1f0x00 0x10desfire 复位命令0x20 0x01 0x41 0x00 N N个数据ProCom_CMD 0x21 N N个数据0x00 N N个数据ProPPS_CMD 0x22 N N个数据0x00 N N个数据ISO14443 TYPE BAT88SF020呼叫卡0x30 0x01 AA:=0-REQB=1-WUPB0x00 0x0c NNNNNNNNNNNN12字节序列号密码验证0x33 0x08 PPPPPPPPP…P:8字节密码0x00 0x00读取数据块0x34 0x01 BPPPPPPPPB:1字节数据块号0x00 0x08 DDDDDDDD8字节数据写数据块0x35 0x09 BDDDDDDDDB:1字节数据块号D…D:8字节数据0x00 0x00锁0x36 0x04 DDDDD…D:4字节加锁数据0x00 0x00 计数0x37 0x06 DDDDDDD…D:6字节签名0x00 0x00ATTRIB0x38 0x04 DDDD 0x00 0x00ISO15693 ICODE SLI TAG it 读取单张卡序列号0x50 0x00 0x00 0x09 DSSSSSSSSD:1字节DSFIDS…S:8字节序列号读取多张卡序列号0x51 0x01 N读取卡片的个数0x00 0x09*N DSSSSSSSS…DSSSSSSSSD:1字节DSFIDS…S:8字节序列号获取系统信息0x52 0x09 FSSSSSSSSF:标志Bit4:=1 只有处于SELECT状态的卡执行该命令Bit5: =1只有UID符合的卡执行该命令0x00 0x0e FSSSSSSSSDAPPPF:S…S: 8字节序列号D:1字节DSFIDA:1字节AFIPpp:写DSFID 0x53 0x0A FSSSSSSSSDF:标志Bit4:=1 只有处于SELECT状态的卡执行该命令Bit5: =1只有UID符合的卡执行该命令BIT6:=1 TAGit=0 ICODE SLIS…S: 8字节序列号D:1字节DSFID0x00 0x00锁DSFID 0x54 0x09 FSSSSSSSSF:标志Bit4:=1 只有处于SELECT状态的卡执行该命令Bit5: =1只有UID符合的卡执行该命令BIT6:=1 TAGit=0 ICODE SLIS…S: 8字节序列号0x00 0x00写AFI 0x55 0x0A FSSSSSSSSAF:标志Bit4:=1 只有处于SELECT状态的卡执行该命令Bit5: =1只有UID符合的卡执行该命令BIT6:=1 TAGit=0 ICODE SLIS…S: 8字节序列号A:1字节AFI0x00 0x00锁AFI 0x56 0x09 FSSSSSSSSF:标志Bit4:=1 只有处于SELECT状态的卡执行该命令Bit5: =1只有UID符合的卡执行该命令BIT6:=1 TAGit=0 ICODE SLIS…S: 8字节序列号0x00 0x00读数据块0x57 0x0B FSSSSSSSSBXF:标志=0x22 ICODE SLITAGitEM4034=0x03 EM4035S…S: 8字节序列号B:1字节数据块号X:0x01 0x00 0x04 DDDD4字节数据写数据块0x58 0x0E FSSSSSSSSBDDDD0x00 0x00F:标志=0x22 ICODE SLI=0x62 TAGit=0x02 EM4034=0x03 EM4035S…S: 8字节序列号B:1字节数据块号DDDD:4字节数据0x00 0x00锁数据块0x59 0x0A FSSSSSSSSBF:标志Bit4:=1 只有处于SELECT状态的卡执行该命令Bit5: =1只有UID符合的卡执行该命令BIT6:=1 TAGit=0 ICODE SLIS…S: 8字节序列号B:1字节数据块号2.卡片读写操作注意1、密码控制字千万不要搞错2、VB demo程序的SECOTOR从0--15,BLOCK从0--63 为标准的MIFARE S50卡片。