⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rf51文档.txt

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 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 + -