1、Mifare 读写模块 JMY502 使用手册 Rev 2.0 http:/ 版权所有 北京金木雨电子有限公司 第 1 页,共 9 页 JMY-502 使用手册 (Revision 2.0) 1 概述 JMY-50x 系列射频读写模块采用 PHILIPS 公司的非接触技术设计的微型嵌入式非接触式 IC卡读写模块。内嵌 MF RC500 或 MF RC531 射频基站,用户不必关心射频基站复杂的控制方法,只需要简单地通过选定的 UART 或 IIC 接口发送命令就可以对卡片进行完全的操作。 JMY-501 支持 Mifare One S50, S70, Ultra Light & Mifare
2、Pro,当仅用于 Mifare One 时可以设定自动寻卡。内置 512 字节的 EEPROM,用户可以存储应用数据。每次写入和读取的字节数为 1 16 字节,按字节的方式进行操作 JMY-502 Mifare One 专用,默认为自动寻卡。 JMY-503 是低功耗的 Mifare One 模块,支持 2 种低功耗模式。最大功耗发生在操作卡片时,仅为 0.132W,处于工作状态时的最小功耗为 0.06W。如果需要更低的功耗,可以将模块置入省电模式,最小功耗可以低于 0.005W。 JMY-506 使用 MF RC531 射频基站,支持 Mifare One S50, S70, Mifare
3、Pro 以及符合ISO14443-4 TYPE-B 标准的非接触 CPU 卡。内置 512 字节的 EEPROM,用户可以存储应用数据。每次写入和读取的字节数为 1 16 字节,按字节的方式进行操作 JMY-508 包含天线的一体式模块,支持 Mifare One S50, S70, Ultra Light & Mifare Pro,当仅用于 Mifare One 时可以设定自动寻卡, UART 通讯接口,集成的天线的性能优秀,操作卡片的典型距离为 110mm( Mifare One) 。内置 512 字节的 EEPROM,用户可以存储应用数据。每次写入和读取的字节数为 1 16 字节,按字节
4、的方式进行操作,内置 SAM 卡座。 2 特点 简单的命令集可完成对卡片的全部操作 通用协议: 1. UART: 适用于 PC机或 8位 UART的单片机,波特率 19200BPS。 Mifare 读写模块 JMY502 使用手册 Rev 2.0 http:/ 版权所有 北京金木雨电子有限公司 第 2 页,共 9 页 2. IIC:适用于单片机,最大通讯速率 400K。 默认为自动寻卡方式,无需上位机频繁发送寻卡指令,当卡片进入到天线区后在 ICC引脚上出现低电平,上位机可直接通过寻卡指令读取卡片序列号。 天线和模块分体式 自带看门狗 3 尺寸和引脚 3.1 JMY-502 3.2 TX-50
5、0 天线 3.3 MT-500 测试实验板 MT-500 测试实验板是专门为开发 JMY-50x 系列模块设计的实验工具, 用户通过 MT-500 对Mifare 读写模块 JMY502 使用手册 Rev 2.0 http:/ 版权所有 北京金木雨电子有限公司 第 3 页,共 9 页 JMY-50x 系列模块进行快速的品质检测和开发实验。 MT-500 使用 51 单片机对模块进行操作,并可切换通讯端口 (IIC 或 UART),根据我们提供的源程序(包含 IIC 和 UART) ,用户可以快速地编制出应用系统的程序。 MT-500 也可以通过 RS232 端口和 PC 机通讯,使用 PC 机
6、的用户可以在 PC 机端编制出测试软件对 JMY-50x 进行测试。 3.4 外形尺寸 名称 型号 长 宽( mm) 射频读写模块 JMY-50x 43.0 20.5 配套天线 TX-500 70.0 70.0 TX-501 50.0 50.0 TX-502 30.0 30.0 测试实验板 MT-500 102.0 76.0 3.5 引脚尺寸 JMY-5xx 系列射频模块的引脚尺寸与 DIP32 完全相同,仅仅将其中的一些引脚闲置不用。 Mifare 读写模块 JMY502 使用手册 Rev 2.0 http:/ 版权所有 北京金木雨电子有限公司 第 4 页,共 9 页 3.6 引脚定义 引脚
7、 符号 类型 描述 1 RX Analog 天线接收 2 TGND 天线地 天线地 14 ICC 漏极开路输出 有无卡指示 (漏极开路输出)1:无卡; 0:有卡15 TXD/SDA I/O UART 发送 /IIC SDA 16 RXD/SCL I UART 接收 /IIC SCL17 VCC 电源 模块电源 18 GND GND 模块电源地 19 SPS I 串行端口选择 0: IIC; 1: UART31 TX1 Analog 天线发射 1 32 TX2 Analog 天线发射 2 4 电气特性 Parameter Min Typ Max Units 工作电源 4 5 5 0 5 5 V
8、工作电流 12 50 70 mA 启动时间 200 400 500 mS 工作温度 25 85 存储温度 40 125 通讯口切换时间 200 mS Mifare 读写模块 JMY502 使用手册 Rev 2.0 http:/ 版权所有 北京金木雨电子有限公司 第 5 页,共 9 页 5 接口通讯协议 5.1 UART 协议 异步半双工, 1 位起始位 8 位数据位 1 位停止位 波特率: 19200 发送数据格式 命令头 长度字 命令字 数据域 校验字 命令头: 0xAA 0xBB, 若后续数据中包含 0xAA 则随后补充一字节 0x00 以区分命令头但长度字不增加 长度字:指明从长度字到数
9、据域最后一字节的字节数 命令字:本条命令的含义 数据域:此项可以为空 校验字:从长度字到数据域最后一字节的逐字节异或值 5.2 返回数据格式 成功:命令头 长度字 接收到的命令字 数据域 校验字 失败:命令头 长度字 接收到的命令字取反 校验字 5.3 IIC 协议 模块 IIC 地址为 0xA0 IIC 通讯速率: 400K 数据格式: (模块地址 W/R) 长度字 命令字 数据域 校验字 例如:模块地址为: 0xA0,写则 bit0 为 0,则写指令为: 0xA0 0x0 0xA0 模块地址为: 0xA0,读则 bit0 为 0,则读指令为: 0xA0 0x1 0xA1 长度字:指明从长度
10、字到数据域最后一字节的字节数 命令字:本条命令的含义 数据域:此项可以为空 Mifare 读写模块 JMY502 使用手册 Rev 2.0 http:/ 版权所有 北京金木雨电子有限公司 第 6 页,共 9 页 校验字:从长度字到数据域最后一字节的逐字节异或值 5.4 返回数据格式 成功:长度字 接收到的命令字 数据域 校验字 失败:长度字 接收到的命令字取反 校验字 5.5 通讯端口切换 JMY-50x 系列模块同时支持 IIC 和 UART 通讯接口,通过对模块的 SPS 引脚设置电平确定模块的通讯端口是 IIC 还是 UART。当: SPS 1 时,通讯端口为 UART,波特率 1920
11、0。当SPS 0 时,通讯端口为 IIC,最大通讯速率 400K。 端口切换可以在模块工作时进行, 但由于抗干扰方面的原因, 切换模块的通讯端口需要 5mS时间,为了保证切换的可靠性,我们强烈建议在切换端口时留有超过 20mS 的延时。 6 由外部 CPU 发送给模块及返回值列表 6.1 命令列表 命令名称 长度字 命令字 数据及说明 发送 0x03 0x11 1 字节工作控制字 天线状态 Bit0 0: OFF Bit0 1: ON 自动寻卡 Bit1 0: OFF Bit1 1: ON 1 模块控制返回 0x02 0x11 发送 0x03 0x12 一字节任意数据,如: 0x55 2 设置
12、 IDLE返回 0x02 0x12 发送 0x03 0x20 1 字节寻卡模式 0:寻天线区内所有卡 1:寻未休眠状态的卡 3 寻卡 正确返回 0x06 0x20 4 字节卡序列号 Mifare 读写模块 JMY502 使用手册 Rev 2.0 http:/ 版权所有 北京金木雨电子有限公司 第 7 页,共 9 页 错误返回 0x02 0xDF 发送 0x0A 0x21 1 字节密钥标识 1 块号 6 字节密钥 密钥标识 BIT0 0: A 密钥 1: B 密钥 密钥标识 BIT1 0:使用指令中 6 字节密钥 1:使用已经下载的密钥 密钥标识 BIT6:BIT5:BIT4:BIT3:BIT2
13、 : 已经下载的密钥编号( 0 31) 块 号 0 63( S50) 0 255( S70) 正确返回 0x12 0x21 16 字节数据 4 读块 错误返回 0x02 0xDE 发送 0x0A 0x29 1 字节密钥标识 1 扇区号 6 字节密钥 密钥标识 BIT0 0: A 密钥 1: B 密钥 密钥标识 BIT1 0:使用指令中 6 字节密钥 1:使用已经下载的密钥 密钥标识 BIT6:BIT5:BIT4:BIT3:BIT2 : 已经下载的密钥编号( 0 31) 扇区号 0 15( S50) 0 63( S70) 正确返回 0x42 0x29 64 字节数据 5 读扇区 ( 4 块) 错
14、误返回 0x02 0xD6 Mifare 读写模块 JMY502 使用手册 Rev 2.0 http:/ 版权所有 北京金木雨电子有限公司 第 8 页,共 9 页 发送 0x1A 0x22 1 字节密钥标识 1 块号 6 字节密钥 16 字节写入数据 正确返回 0x02 0x22 6 写块 错误返回 0x02 0xDD 发送 0x0E 0x23 1 字节密钥标识 1 块号 6 字节密钥 4 字节钱包初始值(低字节在前) 正确返回 0x02 0x23 7 初始化 钱包 错误返回 0x02 0xDC 发送 0x0A 0x24 1 字节密钥标识 1 块号 6 字节密钥 正确返回 0x06 0x24
15、4 字节钱包值(低字节在前) 8 读钱包 错误返回 0x02 0xDB 发送 0x0E 0x25 1 字节密钥标识 1 块号 6 字节密钥 4 字节增加值(低字节在前) 正确返回 0x02 0x25 9 充值 错误返回 0x02 0xDA 发送 0x0E 0x26 1 字节密钥标识 1 块号 6 字节密钥 4 字节扣款值(低字节在前) 正确返回 0x02 0x26 10 扣款 错误返回 0x02 0xD9 Mifare 读写模块 JMY502 使用手册 Rev 2.0 http:/ 版权所有 北京金木雨电子有限公司 第 9 页,共 9 页 发送 0x0B 0x27 1 字节密钥标识 1 当前钱
16、包块号 1 字节备份钱包块号 6 字节密钥 正确返回 0x02 0x27 11 备份钱包值 错误返回 0x02 0xD8 发送 0x02 0x28 正确返回 0x02 0x28 12 卡休眠 错误返回 0x02 0xD7 发送 0x09 0x2D 1 字节密钥编号( 0 31) 6字节密钥 正确返回 0x02 0x2D 13 下载密钥错误返回 0x02 0xD2 6.2 有关密钥标识 在读卡写卡等指令序列中有一字节密钥标识,此字节用于识别是用什么方式获得操作卡片的密钥。 KeyIdentification BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 0 BI
17、T0 = 0: A 密钥,表示验证卡片的 A 密钥 BIT0 = 1: B 密钥,表示验证卡片的 B 密钥 BIT1 = 0:使用指令中随后的 6 字节密钥 BIT1 = 1:使用已经下载的密钥 BIT6:BIT5:BIT4:BIT3:BIT2 :已经下载的密钥编号( 0 31) 如果指令中的 BIT1 为 0,则此 5BITs 数据与操作卡片无关,如果指令中的 BIT1 为 1,则使用已经下载的密钥,需要在使用读卡模块前预先将密钥下载,同时,指令序列中的“ 6 字节密钥”就变成无关的数据了,但在指令序列中不能缺少这 6 个字节。 Mifare 读写模块 JMY502 使用手册 Rev 2.0
18、 http:/ 版权所有 北京金木雨电子有限公司 第 10 页,共 9 页 7 命令例子 7.1 UART 命令 以下 UART 命令都可执行,发送后会有结果返回。 0xAABB 为命令头,最后一字节为校验字。 0xAABB 0A210001FFFFFFFFFFFF2A 读第 1 块 0xAABB 0A2100ffFFFFFFFFFFFFD4 读第 255 块( S70) 0xAABB 1A220001FFFFFFFFFFFF1234567890ABCDEF1234567890ABCDEF39 写块 0xAABB 03200023 寻卡 0xAABB 021210 休眠 7.2 IIC 命令 以下 IIC 命令都可执行,发送后会有结果返回。 0xA0 为 IIC“写”指令,最后一字节为校验字。 0xA0 0A2100FFFFFFFFFFFFFFD4 读第 255 块( S70) 0xA0 1A220001FFFFFFFFFFFF1234567890ABCDEF1234567890ABCDEF39 写块 0xA0 03200023 寻卡 0xA0 021210 休眠