FM1715 编程指南
Ver 1.0
2004 年 4 月
上海复旦微电子股份有限公司
第 1 页 共 47 页
一 概述......................................................................................................................................................4
二、ISO14443A 基础 ...............................................................................................................................5
2.1 卡片返回的代码说明 .....................................................................................................................5
2.2 基本命令 .........................................................................................................................................5
2.2.1 REQUEST .................................................................................................................................5
2.2.2 ANTICOLL................................................................................................................................5
2.2.3 SELECT.....................................................................................................................................6
2.2.4 AUTHENTICATION..................................................................................................................6
2.2.5 HALT.........................................................................................................................................6
2.2.6 READ ........................................................................................................................................7
2.2.7 WRITE.......................................................................................................................................7
2.2.8 INCREMENT ............................................................................................................................7
2.2.9 DECREMENT ...........................................................................................................................8
2.2.10 RESTORE................................................................................................................................8
2.2.11 TRANSFER..............................................................................................................................8
三、FM1715 简介...................................................................................................................................10
3.1 自动侦测微处理器接口类型 .......................................................................................................10
3.2 不同类型微处理器接口连接关系 ...............................................................................................10
3.3 FM1715 寄存器 .............................................................................................................................11
四、典型应用电路..................................................................................................................................13
五、底层函数库......................................................................................................................................14
5.1 头文件 ...........................................................................................................................................14
5.2 常用函数 .......................................................................................................................................18
5.2.1 卡片复位应答信号的判断....................................................................................................18
5.2.2 接收到的卡片UID 号的判别...............................................................................................18
5.2.3 保存卡片的UID 号...............................................................................................................19
5.2.4 设置待发送数据的字节数....................................................................................................21
5.3 FM1715 基本函数 .........................................................................................................................23
5.3.1 总线选择................................................................................................................................23
5.3.2 FM1715 初始化......................................................................................................................23
5.3.3 命令传输................................................................................................................................24
5.3.4 读FM1715 中的EEPROM 数据..........................................................................................25
5.3.5 向FM1715 的EEPROM 中写入数据..................................................................................26
5.3.6 清除FM1715 的FIFO 中的数据.........................................................................................26
5.3.7 向FM1715 的FIFO 中写入x 字节数据............................................................................27
5.3.8 从FM1715 的FIFO 中读出x 字节数据............................................................................27
5.4 FM1715 卡片操作基本函数 .........................................................................................................29
5.4.1 HALT.......................................................................................................................................29
5.4.2 LOADKEY...............................................................................................................................30
5.4.3 REQUEST ...............................................................................................................................31
5.4.4 ANTICOLLISION....................................................................................................................31
第 2 页 共 47 页
5.4.5 SELECT...................................................................................................................................33
5.4.6 AUTHENTICATION................................................................................................................34
5.4.7 READ ......................................................................................................................................35
5.4.8 WRITE.....................................................................................................................................36
5.4.9 INCREMENT ..........................................................................................................................38
5.4.10 DECREMENT .......................................................................................................................39
5.4.11 RESTORE ..............................................................................................................................40
5.4.12 TRANSFER............................................................................................................................42
六、例程..................................................................................................................................................44
6.1 卡片触发 .......................................................................................................................................44
6.2 INITVAL VALUE...........................................................................................................................45
6.3 读卡 ...............................................................................................................................................46
6.4 写卡 ...............................................................................................................................................46
第 3 页 共 47 页
一 概述
在此文档中用户可找到关于 FM1715 底层函数库的描述,使用这些函数库,可
方便地使用 FM1715 模块访问 MIFARE 卡和上海标准卡.
此编程指南中提供的底层函数库是基于 MCS-51 的应用环境,采用 C51 编制,
并在 KEIL C51 V6.0 编译环境下通过。
第 4 页 共 47 页
二、ISO14443A 基础
2.1 卡片返回的代码说明
0x00: 对指定地址的访问被拒绝
0x01: CRC 或奇偶校验错误
0x04:
交易: 溢出错误
其它命令:对指定地址的访问被拒绝
0x05: CRC 或奇偶校验错误
0x0A: 确认
2.2 基本命令
2.2.1 REQUEST
控制单元 ⇒ 射频卡
Command: 0x26 or 0x52
0x26: IDLE 模式,只选择天线范围内 IDLE 模式的卡片
0x52: ALL 模式,选择天线范围内所有卡片
Len: 0
射频卡 ⇒ 控制单元
Len: 2
Data[0]: _TagType(低字节)0x04
Data[1]: _TagType(高字节)0x00
在重新选择卡片时必须执行 request 操作。
2.2.2 ANTICOLL
0x93
控制单元 ⇒ 射频卡
Command:
Len:
1
Data[0]:
射频卡 ⇒ 控制单元
Len: 5
Data[0]: _Snr(LL)
Data[1]: _Snr(LH)
0x20 NVB
第 5 页 共 47 页
Data[2]: _Snr(HL) 卡片系列号
Data[3]: _Snr(HH)
Data[4]: BCC
此操作必须紧随在 request 操作后执行.如果被选的卡片的系列号已知,可
以不用执行此操作
2.2.3 SELECT
0x93
控制单元 ⇒ 射频卡
Command:
Len: 6
Data[0]: 0x70
Data[1]:
Data[2]:
Data[3]:
Data[4]:
Data[5]: BCC
射频卡 ⇒ 控制单元
Len: 1
Data[0]: _Size (卡片容量值:0x08或0x88)
_Snr(LL)
_Snr(LH)
_Snn(HL)
_Snr(HH) 卡片系列号(UID)
2.2.4 AUTHENTICATION
2
控制单元 ⇒ 射频卡
Command: 0x60 or 0x61
Len:
Data[0]: 0x60 or 0x61 (0x60 使用 KEYA 作验证,0x61 使 KEYB 作验证)
Data[1]: _SecNr (扇区号)*4(即每个扇区的块 0 的块地址)
射频卡 ⇒ 控制单元
Len: 0
如果读写模块中的密码与卡片中的密码相匹配,则可以进行读、写等操作。
2.2.5 HALT
0x50
控制单元 ⇒ 射频卡
Command:
Len:
0
射频卡 ⇒ 控制单元
Len: 0
将操作后的卡片置于 halt 模式。如果又要对卡片操作,必须重新执行
request 操作。
第 6 页 共 47 页
2.2.6 READ
0x30
控制单元 ⇒ 射频卡
Command:
Len:
1
Data[0]:
射频卡 ⇒ 控制单元
Len: 16
Data[0]: 数据块的第一字节
_Adr 块地址(0~63)
:
Data[15]:数据块的最后一个字节
2.2.7 WRITE
_Adr 要写入数据的块地址(1~63)
17
0xA0
控制单元 ⇒ 射频卡
Command:
Len:
Data[0]:
射频卡 ⇒ 控制单元
Len:4Bit
DATA[0]: 0x0A(ACK)
Data[1]: 要写入卡片中的第一个数据
:
Data[16]: 要写入卡片中的最后一个数据
射频卡 ⇒ 控制单元
Len: 4Bit
DATA[0]: 0x0A(ACK)
2.2.8 INCREMENT
_Adr 数值块的地址
0xC1
控制单元 ⇒ 射频卡
Command:
Len:
5
Data[0]:
射频卡 ⇒ 控制单元
Len: 4Bit
DATA[0]: 0x0A(ACK)
Data[1]:
Data[2]:
Data[3]:
_Value(LL)
_Value(LH)
_Value(HL)
第 7 页 共 47 页
Data[4]:
射频卡 ⇒ 控制单元
Len: 0
_Value(HH) 要增加的数值
2.2.9 DECREMENT
0xC0
控制单元 ⇒ 射频卡
Command:
Len:
5
Data[0]:
射频卡 ⇒ 控制单元
Len: 4Bit
DATA[0]: 0x0A(ACK)
Data[1]:
Data[2]:
Data[3]:
Data[4]:
射频卡 ⇒ 控制单元
Len: 0
_Adr 数值块的地址
_Value(LL)
_Value(LH)
_Value(HL)
_Value(HH) 要减少的数值
2.2.10 RESTORE
0xC2
_Adr 数值块的地址
控制单元 ⇒ 射频卡
Command:
Len:
6
Data[0]:
射频卡 ⇒ 控制单元
Len: 4Bit
DATA[0]: 0x0A(ACK)
Data[1]: 0x00
Data[2]: 0x00
Data[3]: 0x00
Data[4]: 0x00
射频卡 ⇒ 控制单元
Len: 0
此操作相当于执行 decrement(0)。
2.2.11 TRANSFER
控制单元 ⇒ 射频卡
第 8 页 共 47 页