📄 rf51文档.txt
字号:
北京项目 射频卡部分 射频卡读写器(接口设备)软件设计文档
软件名称:Rf51
文件树:
主文件
main.c--+------P89c51RX.h
+------comm.h
+------timer.h
+------icc.h
+------iccmmd.h
+------m500auc.h
串口通讯基本协议
comm.h
comm.c--+------P89c51RX.h
+------comm.h
+------timer.h
+------string.h
+------misc.h
ic卡命令接口
iccmmd.h
icCmmd.c --+------string.h
+------comm.h
+------iccmmd.h
+------m500auc.h
+------iccapp.h
非接触式ic卡的物理层接口
m500auc.h
m500auc.c --+------P89c51RX.h
+------mfreg500.h
+------m500auc.h
+------rdio.h
+------timer2.h
+------string.h
用于非接触式ic卡的基本io函数
rdio.h
rdio.c--+------P89c51RX.h
+------rdio.h
接触式ic卡的数据链路层部分
iccapp.h
iccapp.c --+------icc.h
+------iccapp.h
+------string.h
接触式ic卡的物理层接口
icc.h
icc.c --+------p89c51rx.h
+------timer.h
+------string.h
+------icc.h
常用的工具函数
misc.h
misc.c--+------misc.h
+------ctype.h
定时器0应用接口
timer.h
timer.c --+------P89c51RX.h
+------softdly.h
+------timer.h
定时器2应用接口
timer2.h
timer2.c --+------P89c51RX.h
+------timer2.h
定时事件定义
t_event.h
t_event.c --+------P89c51RX.h
+------t_event.h
+------timer.h
软延时
softdly.a51
51寄存器定义
P89c51RX.h
rc500寄存器定义
mfreg500.h
main流程
时钟初始化
串口打开
rc500初始化
rc500寄存器配置
sam卡初始化
sam卡打开
循环体
处理串口命令transCmmd
transCmmd流程
提取命令类型,卡类型,数据包和长度
如果是M1卡命令
提取命令,认证,区,块,区密码a/b,区块数据
呼叫卡,防冲突,选择卡,密码编码
读卡:认证A,读块数据,发读卡数据
减卡:认证A,减块数据,读块数据,发读卡数据
写卡:认证B,写块数据,读块数据,发读卡数据
如果是SAM卡命令
填写SAM命令结构
发SAM命令读其响应
发SAM响应数据
如果是MPro卡命令
//。。。
其他命令
//。。。
//=======================================================//
通讯协议:
1,格式:STX + LEN1 + LEN2 + UDP + ETX + LRC
2,UDP格式:命令的类型 + 命令的执行主体 + 复合指令类型 + 认证类型
1字节 + 1字节 + 1字节 + 1字节
2.1 对M1卡: 命令的类型 + 命令的执行主体 + DATALEN + 认证类型+扇区+块号+复合指令类型 + KEYAB + ( DATA) + 认证类型
1字节 + 1字节 + 1字节+ 1字节 1 + 1 + 1 + 6字节 16字节 + 1字节
如: 02 00 14 02 03 0a 00 00 00 00 ff ff ff ff ff ff ff 03 E3
//==============================================================================//
//CMMD_TYPE命令类别,用于区别命令的类型
#define CMMD_MPU 0X00//与卡无关的指令
#define CMMD_IC_BASE 0X01//卡基本指令
#define CMMD_IC_HIGH 0X02//卡复合指令
//==============================================================================//
//CARD_TYPE卡类型,用于区别命令的执行主体
#define MPU 0X00//与卡无关
#define IC_PSAM 0X01
#define IC_ISAM 0X02
#define IC_M1 0X03
#define IC_MPRO 0x04
//==============================================================================//
//复合指令类型定义
#define M1_READ 0x00//读M1卡数据
#define M1_WRITE 0x01//写M1卡数据
#define M1_DECREASE 0X02//M1卡减钱包
#define MPRO_READ 0X03//读MPR0卡数据
#define MPRO_WRITE 0X04//写MPRO卡数据
//==============================================================================//
//认证
#define AUTH_ISAM 0XFD//需要ISAM卡认证才可以读写
#define AUTH_PSAM 0XFE//需要PSAM卡认证才可以读写
#define AUTH_NOSAM 0XFF//不需要SAM卡而直接读卡片数据
#define ALLBLOCK 0XFF
//==============================================================================//
02 00 14 02 03 0a 00 00 00 00 ff ff ff ff ff ff ff 03 E3
66 88 02 00 16 1E 63 00 F3 4D CA D4 9F 20 BF 08 FF 34 EE 00 BF 03 5A
66 88 02 00 16 1E 63 00 F3 4D CA D4 9F 20 BF 08 FF 34 EE 00 BF 03 5A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -