当前位置:文档之家› 射频模块通讯协议V1.10.0

射频模块通讯协议V1.10.0

射频模块
一、
1、射频模块一般作为被动设备,由上位软件主动对其进行操作
2、射频模块有中断功能,当插卡或拔卡时,会主动向上位机发送中断信息
3、上位机在空闲时,应接受来自射频模块的拔插卡中断信息
4、上位机发送的命令数据协议
命令头【3】+命令长度【1】+命令长度校验码【1】+命令字【1】+命令数据【n】+命令数据校验和【1】+命令结束符【1】总长度不超过64字节
说明:
命令头:AA 54 38
命令长度:命令体长度(命令字+命令数据)。
命令长度校验码:命令长度的反码
命令数据校验和:命令字【1】+命令数据【n】
命令尾结束符:00
应答数据和命令数据的命令字相同
5、命令数据中地址传输约定:高字节在前,低字节在后
6、协议中未加说明的加密算法约定:des算法,未加说明的加密密钥约定:des密钥(8字节)
命令字05
命令数据:
长度:5
数据:块地址【1】+金额【4】
说明:金额值低字节在前;(用到Байду номын сангаас31位,最高位无效)
应答数据(成功):
长度1+4成功标志【1】(0:成功非0:失败,错误码)+初始化后金额【4】
应答数据(失败):
长度1数据成功标志【1】(0:成功非0:失败,错误码)
6、充值(加钱)命令
命令字06
应答数据(失败):
长度1:成功标志【1】(0:成功非0:失败,错误码)
2、选择卡(卡ID号)
命令字:02
命令数据:卡ID号
长度4
卡ID号【4】
应答数据(处理结果)
长度1:成功标志【1】(0:成功非0:失败,错误码)
3、读卡数据块命令(块号)
命令字:03
命令数据:
长度1
数据块号【1】
应答数据(成功):
命令字0x0C
命令数据:
长度:0
应答数据(处理结果):
长度:1
数据:成功标志【1】(0:成功非0:失败,错误码)
附1:函数错误类型代码(可在此基础上扩展):
-0x00(000):成功
-0x01(001):通用错误
-0x02(002):【硬件】不支持该函数
-0x03(003):命令长度校验错误
-0x04(004):长度超范围错误
长度1+n:成功标志【1】(0:成功非0:失败,错误码)+数据【16】
应答数据(失败):
长度1:成功标志【1】(0:成功非0:失败,错误码)
4、写卡数据块
命令字:04
命令数据:
长度1+16
数据块号【1】、数据【16】
应答数据(处理结果):
长度1
数据成功标志【1】(0:成功非0:失败,错误码)
5、初始化钱包命令
命令数据:
长度:5
数据:块地址【1】+充值金额【4】
应答数据(成功):
长度1+4成功标志【1】(0:成功非0:失败,错误码)+充值后金额【4】
应答数据(失败):
长度1数据成功标志【1】(0:成功非0:失败,错误码)
7、扣钱(减钱)命令
命令字07
命令数据:
长度:5
数据:块地址【1】+扣钱金额【4】
应答数据(成功):
长度1数据成功标志【1】(0:成功非0:失败,错误码)
9、验证密码命令
命令字09
命令数据:
长度:8
数据密钥类型【1】+扇区号【1】+密钥【6】
应答数据(处理结果):
长度:1
数据:成功标志【1】(0:成功非0:失败,错误码)
10、載入KEY(修改控制块)命令
命令字0x0A
命令数据:
长度:17
数据:扇区号【1】+A密钥【6】+块1存取控制【1】+块2存取控制【1】+块3存取控制【1】+块4存取控制【1】+保留字节【1】+B密钥【6】
-0x87(135):【硬件】函数参数格式错误
-0x88(136):【+】返回数据校验和错误
-0x89(137):【+】返回命令不一致
-0x8A(138):【硬件】命令长度校验错误
-0x8B(139):【+】返回命令长度校验错误
-0x8C(140):【+】写卡未校验密码
长度1+4成功标志【1】(0:成功非0:失败,错误码)+扣钱后金额【4】
应答数据(失败):
长度1数据成功标志【1】(0:成功非0:失败,错误码)
8、读钱包命令
命令字08
命令数据:
长度:1
数据:块地址【1】
应答数据(成功):
长度1+4成功标志【1】(0:成功非0:失败,错误码)+钱包金额【4】
应答数据(失败):
-0x70(112):该块数据不是值格式错误
-0x80(128):【硬件】读错误
-0x81(129):【硬件】写错误
-0x82(130):【硬件】校验密码错误
-0x83(131):硬件】校验和错误
-0x84(132):通讯超时
-0x85(133):【重复了】校验密码错误
-0x86(134):【硬件】无卡错误
(注:块1~4存取控制直接由相应字节的低三位给出,具体参考《M1非接触卡资料.pdf》)
应答数据(处理结果):
长度:1
数据:成功标志【1】(0:成功非0:失败,错误码)
11、卡挂起命令
命令字0x0B
命令数据:
长度:0
应答数据(处理结果):
长度:1
数据:成功标志【1】(0:成功非0:失败,错误码)
12、复位单片机命令
7、数据协议中的错误码,参考附1中的错误码,错误码可扩展,但需要同步协议
二、
1、寻卡
命令字:01
命令数据:
长度0
数据空
应答数据(成功):
长度1+1+4:成功标志【1】+卡类型【1】+ID号【4】(0:成功非0:失败,错误码);
(注:卡类型0x01—S50;0x02—S70;0x03—UltraLight;0x04—DESFire;0x05—Pro)
-0x05(005):起始地址超范围错误
-0x06(006)):块地址超范围错误
-0x21(033):获取串口状态错误
-0x22(034):设置串口状态错误
-0x23(035):关闭串口错误
-0x24(036):串口已打开
-0x25(037):设置串口缓存错误
-0x26(038):不够减错误
-0x35(053):【无】函数使用不符错误
相关主题