当前位置:文档之家› 通讯协议

通讯协议


与上位机的通讯协议

发送协议(上位机传给下位机):STX+LEN+CMD+DATA0~DATAN+BCC+ETX

其中:STX:09 表示命令头

LEN 表示数据长度,包括CMD及DATA0~DATAN

CMD表示命令字

DATA0~DATAN表示发送数据包

BCC表示异或和校验BCC=CMD^ DATA0^DATA1^ ~DATAN

ETX:0D表示命令尾



接收协议(下位机传给上位机):STX+card_state+LEN+DATA0~DATAN+BCC+ETX

其中:STX:09 表示命令头

card_state表示状态字,card_state=0表示命令成功,如为其它值表示命令失败

LEN 表示数据长度,包括DATA0~DATAN

DATA0~DATAN表示数据包

BCC表示异或和校验BCC= DATA0^DATA1~DATAN

ETX:0D表示命令尾





CPU卡操作命令

1、 复位命令:50

发送:090150500D //复位指令

如复位成功返回:09 00 LEN DATA0~DATAN BCC 0D //例:09 00 10 10 78 80 90 02 20 90 00 00 00 00 00 A6 A9 6E 14 BF 0D
如复位失败返回:09 02 00 00 0D

2、 发送命令:51
发送:09 LEN 51 DATA0~DATAN BCC 0D


1例:

如取随机数指令:0084000004

上位机发送给下位机的数据包:两条取随机数的,交替发送

090A5107070A000084000004DB0D
090A5107070B000084000004DA0D



// 09(命令头) 0A(长度) 51(命令字) 07(备用) 07(后面指令的长度) 0A或0B(CPU卡的数据块头) 00(CPU卡的CID,ATX时确定的) 0084000004 (前7个字节为指令) DB(校验) 0D(命令尾)


//说明,0A表示后面有10个字节的数据 51 07 07 0A 00 00 84 00 00 04
//说明,51上位机与下位机约定的命令字
//说明,07表示对CPU卡操作的指令长度共有7个字节:0A 00 00 84 00 00 04
//说明,0A或0B表示CPU卡的数据块头 ,卡不离开感应区互相切换可读取不同的随机数
//说明,00表示CPU卡的CID号,ATX时确定的,具体见ISO 14443-4规定
//说明,00 84 00 00 04 取随机数的指令
//说明,DB为校验字节是数据包为10个字节的校验和,51^7^7^0A^ …… 00^04

2例:

读MF的目录下指令:00A4000000


上位机发送给下位机的数据包:

090A5107070A0000A4000000FF0D //读MF的目录下



//每一个字节的作用同上说明,此处不在一一说明!



09 00 04 FA 00 01 00 FB 0D //作清除卡内容时,返回数据 FA 00 01 需一直把这个值发回给卡

0906510303FA0001AA0D //发送FA 00 01 的指令







09 00 05 0B 00 90 00 00 9B 0D //当返回了9000时,表示清卡成功






相关主题