FM1702SL [ETC]
通用读卡机芯片;型号: | FM1702SL |
厂家: | ETC |
描述: | 通用读卡机芯片 |
文件: | 总111页 (文件大小:1912K) |
中文: | 中文翻译 | 下载: | 下载PDF数据表文档文件 |
FM1702SL 通用读卡机芯片
FM1702SL 通用读卡机芯片 ___________________________________________1
1
2
3
概述 ___________________________________________________________5
结构图 _________________________________________________________6
管脚信息 _______________________________________________________7
3.1 管脚配置_____________________________________________________7
3.2 管脚描述_____________________________________________________8
4
数字接口 ______________________________________________________10
4.1 支持的微处理器接口概述______________________________________10
4.2 自动侦测微处理器接口类型____________________________________10
4.3 SPI 接口说明 ________________________________________________10
4.3.1. 读数据 __________________________________________________10
4.3.2. 写数据 __________________________________________________11
5
FM1702SL 寄存器组 ____________________________________________12
5.1 FM1702SL 寄存器组概述 ________________________________________12
5.1.1 寄存器位权限_______________________________________________14
5.2 寄存器描述____________________________________________________15
5.2.1 PAGE0:指令和状态寄存器组_________________________________15
5.2.2 PAGE1:控制和状态寄存器组_________________________________21
5.2.3 PAGE2:发射及编码控制寄存器组_____________________________26
5.2.4 PAGE3:接收及解码控制寄存器组_____________________________30
5.2.5 PAGE4:时间及校验控制寄存器组_____________________________35
5.2.6 PAGE5:FIFO,Timer 及 IRQ 控制寄存器组_____________________40
5.2.7 预留寄存器组_______________________________________________45
5.2.8 预留寄存器组_______________________________________________46
6
EEPROM 结构_________________________________________________47
6.1 EEPROM 存储器结构 _________________________________________47
6.2 寄存器初始值存放区__________________________________________48
6.2.1 寄存器复位初始值存放区 __________________________________48
6.2.2 寄存器复位初始值 ________________________________________49
6.2.3 寄存器初始值 ____________________________________________50
6.3 密钥存放区__________________________________________________50
6.3.1 密钥格式 ________________________________________________50
6.3.2 密钥的存放 ______________________________________________51
7
FIFO _________________________________________________________52
7.1
概述_______________________________________________________52
7.2 访问规则____________________________________________________52
7.3 控制 FIFO___________________________________________________53
7.4 FIFO 状态信息_______________________________________________53
7.5 FIFO 相关寄存器_____________________________________________53
8
中断请求系统 __________________________________________________54
8.1
8.1.1
概述_______________________________________________________54
中断源概述 ______________________________________________54
8.2 中断应用____________________________________________________55
8.2.1 控制中断请求及其标识 ____________________________________55
8.2.2 访问中断寄存器 __________________________________________55
8.3 IRQ 管脚配置________________________________________________55
8.4 中断相关寄存器______________________________________________56
9
TIMER _______________________________________________________57
9.1
9.2 TIMER 应用_________________________________________________58
9.2.1 控制 TIMER______________________________________________58
概述_______________________________________________________57
9.2.2 TIMER 时钟周期 ___________________________________________58
9.2.3 TIMER 状态 _______________________________________________59
9.3 TIMER 用途_________________________________________________59
9.3.1 TIMER-OUT 和 WATCH-DOG-COUNTER _______________________59
9.3.2 STOP WATCH ______________________________________________59
9.3.3 PROGRAMMABLE ONE-SHOT TIMER _________________________59
9.3.4 PERIODICAL TRIGGER _____________________________________59
9.4 TIMER 相关寄存器___________________________________________60
10
省电工作模式 _________________________________________________61
10.1 HARD POWER DOWN 模式 _____________________________________61
10.2 SOFT POWER DOWN 模式 _______________________________________62
10.3 STAND BY 模式_______________________________________________62
10.4
接收器关闭________________________________________________62
11 启动过程 ______________________________________________________63
11.1 HARD POWER DOWN 阶段 ______________________________________63
11.2
11.3
复位阶段__________________________________________________63
初始化阶段________________________________________________64
11.4 初始化 SPI 接口方式__________________________________________64
12
13
振荡器电路 ___________________________________________________65
发射管脚 TX1 和 TX2 __________________________________________66
13.1
13.2
13.3
配置 TX1 和 TX2 ___________________________________________66
工作距离与功耗的关系______________________________________67
脉冲宽度__________________________________________________67
14
接收电路 _____________________________________________________68
14.1 概述________________________________________________________68
14.2 信号接收过程________________________________________________68
14.3 接收器操作__________________________________________________69
14.3.1 Q 时钟自动校准 __________________________________________69
14.3.2 放大器 ___________________________________________________69
14.3.3 相关电路 _________________________________________________70
14.3.4 求值及数字化电路 _________________________________________70
15
串行信号开关 _________________________________________________71
15.1 概述________________________________________________________71
15.2 时序信号开关的相关寄存器____________________________________72
16 FM1702SL 指令集 _______________________________________________73
16.1 概述________________________________________________________73
16.2 命令行为简介________________________________________________73
16.3 FM1702SL 命令简介__________________________________________74
16.3.1 基本说明 _______________________________________________74
16.3.2
16.3.3
STARTUP COMMAND 3FHEX _______________________________76
IDLE COMMAND 00HEX ___________________________________76
16.4 通讯命令____________________________________________________77
16.4.1
16.4.2
16.4.3
TRANSMIT COMMAND 1AHEX ______________________________77
RECEIVE COMMAND 16HEX _______________________________81
TRANSCEIVE COMMAND 1EHEX____________________________85
16.5 E2PROM 访问命令 ___________________________________________87
16.5.1
16.5.2
WRITEE2 COMMAND 01HEX _______________________________87
READE2 COMMAND 03HEX ________________________________89
16.6 其他命令____________________________________________________90
16.6.1
16.6.2
LOADCONFIG COMMAND 07HEX___________________________90
CALCCRC COMMAND 12HEX ______________________________91
16.7 命令执行过程中的错误处理____________________________________93
16.8 安全命令____________________________________________________94
16.8.1
16.8.2
16.8.3
16.8.4
LOADKEYE2 COMMAND 0BHEX ____________________________94
LOADKEY COMMAND 19HEX ______________________________95
AUTHENT1 COMMAND 0CHEX _____________________________96
AUTHENT2 COMMAND 14HEX _____________________________97
17 认证及数据加密传输 ______________________________________________98
17.1 概述________________________________________________________98
17.2 密钥处理____________________________________________________98
17.3 操作三重认证指令____________________________________________99
17.4 认证算法____________________________________________________99
18
典型应用 ____________________________________________________100
18.1 电路图_____________________________________________________100
18.2 电路描述___________________________________________________101
18.2.1
EMC 低通滤波器 _______________________________________101
18.2.2 接收电路 ______________________________________________101
18.3 计算天线线圈的电感_________________________________________102
18.3.1 直接连接天线的阻抗匹配 __________________________________103
19
电性能 ______________________________________________________104
19.1 极限参数___________________________________________________104
19.2 工作条件___________________________________________________104
19.3 工作电流___________________________________________________105
19.4 管脚特性 ___________________________________________________106
19.4.1 输入管脚特性 ____________________________________________106
20.4.2 数字输出管脚特性 ______________________________________107
20.4.3 天线驱动管脚输出特性 __________________________________107
19.5 交流电性能 _________________________________________________108
19.5.1
SPI 接口交流工作说明___________________________________108
19.5.2 时钟频率 ________________________________________________109
21 E²PROM 特性 _________________________________________________110
22 封装 __________________________________________________________ 111
1 概述
FM1702SL 是复旦微电子股份有限公司设计的基于 ISO14443 标准的非接触卡
读卡机专用芯片,采用 0.6 微米 CMOS EEPROM 工艺,支持 13.56MHz 频率下
的 typeA 非接触通信协议,支持多种加密算法,兼容 Philips 的 MF RC530(SPI
接口)读卡机芯片
产品特点:
ꢀ 高集成度的模拟电路,只需最少量的外围线路
ꢀ 操作距离可达 10cm
ꢀ 支持 ISO14443 typeA 协议
ꢀ 内部带有加密单元
ꢀ 支持 SPI 接口模式
ꢀ 包含 512byte 的 EEPROM
ꢀ 包含 64byte 的 FIFO
ꢀ 数字电路具有 TTL/CMOS 两种电压工作模式
ꢀ 软件控制的 power down 模式
ꢀ 一个可编程计时器
ꢀ 一个中断处理器
ꢀ 一个串行输出输入口
ꢀ 启动配置可编程
ꢀ 数字,模拟和发射模块都有独立的电源供电,电压范围从 3V 到 5V
ꢀ 封装形式为 SOP24 小型封装
2 结构图
接口控制器
指令控制器
中断控制器
计数器
控制寄存器组
FIFO 控制器
可编程计时器
EEPROM 接口
EEPROM 单元
数据帧产生单元
CRC/奇偶校验
编码译码控制器
串行数据控制器
加密单元
随机数发生器
复位控制单元
时钟产生单元
解 调 发 射
控 制 控 制
器
器
图 2-1:FM1702SL 结构图
3 管脚信息
3.1管脚配置
粗体字标识的管脚由 AVDD 和 AVSS 电源组供电
粗体框标识的管脚由 TVDD 和 TVSS 电源组供电
其他管脚由 DVDD 和 DVSS 电源组供电
图 3-1:FM1702SL 管脚配置(SOP24 封装)
3.2 管脚描述
引脚序号
引脚名称
类型
引脚描述
晶振输入:fosc = 13.56MHz
中断请求:输出中断源请求信号
1
2
3
OSCIN
IRQ
I
O
I
MFIN
串行输入:接收满足 ISO14443A 协议的数
字串行信号
4
5
TX1
TVDD
TX2
TVSS
CO
O
发射口 1:输出经过调制的 13.56MHz 信号
发射器电源:提供 TX1 和 TX2 的输出能量
发射口 2:输出经过调制的 13.56MHz 信号
发射器地
PWR
6
O
7
PWR
8
I
固定接低电平
9
C1
I
I
固定接高电平
10
11
12
C2
固定接高电平
DVSS
MISO
PWR
O
数字地
主入从出:SPI 接口下数据输出
管脚描述(续上页)
13
SCK
I
串行时钟(SCK):SPI 接口下时钟信号
14
15
16
17
18
19
MOSI
NSS
I
主出从入:SPI 接口下数据输入
接口选通:选通 SPI 接口模式
固定接低电平
I
I
C3
DVDD
AVDD
AUX
PWR
PWR
O
数字电源
模拟电源
模拟测试信号输出:输出模拟测试信号,测
试信号由 TestAnaOutSel 寄存器选择
20
21
AVSS
RX
PWR
I
模拟地
接 收 口 : 接 收 外 部 天 线 耦 合 过 来 的
13.56MHz 卡回应信号
22
23
VMID
PWR
I
内部参考电压:输出内部参考电压
注意:该管脚必须外接 68nF 电容
RSTPD
复位及掉电信号:高电平时复位内部电路,
晶振停止工作,内部输入管脚和外部电路隔
离;下沿触发内部复位程序
24
OSCOUT
O
晶振输出
表 3-1:FM1702SL 管脚描述
4 数字接口
4.1 支持的微处理器接口概述
FM1702SL 支持 SPI 微处理器接口
读写时序参照 22.5.2.1
在 SPI 通信方式下,FM1702SL 只能作为 slave 端,SCK 时钟需由 master 端
提供。
4.2 自动侦测微处理器接口类型
在每一次上电或硬件复位后,FM1702SL 会复位微处理器接口处理模块,并
且通过检测控制管脚上的电平来设置 SPI 接口
4.3 SPI 接口说明
FM1702SL 的 SPI 接口符合标准的 SPI 接口协议,并且只作为 slave 使用。
4.3.1. 读数据
按以下格式可以读出 n byte 的数据:
byte 0
adr 0
XX
byte 1
adr 1
byte 2
adr. 2
data 1
……..
…….
……
byte n
adr n
byte n+1
00
MOSI
MISO
data 0
data n-1
data n
地址 byte 必须符合以下格式。第一 byte 的最高位定义了模式。若要从
FM1702SL 读出数据,则该位置‘1’。6-1 比特定义了地址,最后一比特
必须置‘0’。
最后一 byte 应置‘0’。
address (MOSI) bit 7, MSB
bit 6 - bit 1
address
address
0
bit 0
byte 0
1
RFU (0)
RFU (0)
0
byte 1 to byte n
byte n+1
RFU (0)
0
4.3.2. 写数据
按以下格式可以写 n byte 的数据到 FM1702SL:
byte 0
adr
byte 1
data 0
XX
byte 2
data 1
XX
……….
……….
……….
byte n
data n-1
XX
byte n+1
data n
XX
MOSI
MISO
XX
地址 byte 必须符合以下格式。第一 byte 的最高位定义了模式。若要向
FM1702SL 写入数据,则该位置‘0’。6-1 比特定义了地址,最后一比特
必须置‘0’。
该 SPI 写模式将所有数据都写入同一个给定的地址,这样可以高效的将数据
写入 FM1702SL 的 FIFO 中。
Address line (MOSI)
byte 0
MSB
0
bit 6 - bit 1
address
data
bit 0
RFU (0)
byte 1 to byte n+1
5 FM1702SL 寄存器组
5.1 FM1702SL 寄存器组概述
FM1702SL 的内部寄存器按功能不同分成 8 组,每组为一页,包含 8 个寄存器:
Page0:指令和状态寄存器组
Page1:控制和状态寄存器组
Page2:发射及编码控制寄存器组
Page3:接收及解码控制寄存器组
Page4:时间及校验控制寄存器组
Page5:FIFO,Timer 及 IRQ 控制寄存器组
Page6:预留寄存器组
Page7:预留寄存器组
Page
地址
寄存器名
功能
(hex)
0
1
2
3
4
5
6
7
8
Page
Command
FIFOData
PrimaryStatus
FIFOLength
SecondaryStatus
InterruptEn
InterruptRq
Page
选择寄存器组
指令寄存器
64byte FIFO 的输入输出寄存器
发射器,接收器及 FIFO 的标识位寄存器
当前 FIFO 内 byte 数
0
各种状态标识寄存器
中断使能/禁止控制寄存器
中断请求标识寄存器
选择寄存器组
9
Control
各种控制标识寄存器
A
B
C
D
E
ErrorFlag
CollPos
上一条指令结束后错误标识
侦测到的第一个冲突位的位置
当前 Timer 值
1
2
TimerValue
CRCResultLSB
CRCResultMSB
BitFraming
Page
TxControl
CWConductance
PreSet13
CRC 协处理器低 8 位
CRC 协处理器高 8 位
调整面向 bit 的帧格式
选择寄存器组
F
10
11
12
13
14
15
16
17
发射器控制寄存器
选择发射脚 TX1 和 TX2 发射天线的阻抗
预设寄存器,不要改变内容
预设寄存器,不要改变内容
选择载波调制宽度
PreSet14
ModWidth
PreSet16
预设寄存器,不要改变内容
预设寄存器,不要改变内容
PreSet17
FM1702SL 寄存器组(续上页)
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
Page
RXControl1
DecoderControl
BitPhase
Rxthreshold
PreSet1D
RxControl2
ClockQControl
Page
选择寄存器组
接收器控制寄存器
解码控制寄存器
3
4
5
6
7
调整发射器和接收器时钟相差
选择 bit 解码的阈值
预设寄存器,不要改变内容
解码控制及选择接收源
时钟产生控制寄存器
选择寄存器组
RxWait
选择发射和接收之间的时间间隔
选择数据校验种类和模式
CRC 预置寄存器低 8 位
CRC 预置寄存器高 8 位
预设寄存器,不要改变内容
预留寄存器
ChannelRedundancy
CRCPresetLSB
CRCPresetMSB
PreSet25
RFU
PreSet27
Page
预设寄存器,不要改变内容
选择寄存器组
FIFOLevel
TimerClock
TimerControl
TimerReload
IRQPinConfig
PreSet2E
PreSet2F
Page
定义 FIFO 溢出级别
选择 Timer 时钟的分频
选择 Timer 启动/停止条件
Timer 预置值
IRQ 输出配置
预设寄存器,不要改变内容
预设寄存器,不要改变内容
选择寄存器组
CryptoSelect
RFU
认证模式选择
预留寄存器
RFU
RFU
RFU
RFU
RFU
Page
RFU
RFU
RFU
RFU
RFU
RFU
预留寄存器
预留寄存器
预留寄存器
预留寄存器
预留寄存器
选择寄存器组
预留寄存器
预留寄存器
预留寄存器
预留寄存器
预留寄存器
预留寄存器
RFU
预留寄存器
表 5-1:FM1702SL 寄存器组
5.1.1 寄存器位权限
每一个寄存器里的每一位按其功能都有不同的读写权限
缩写
权限
描述
r/w
读和写
这些位可以被微处理器读出和写入,他们只是用作控制,
所以不会被内部状态机改写
dy
动态
这些位可以被微处理器读出和写入,并且他们可以被内
部状态机自动改写
r
w
只读
只写
这些位由内部状态机控制,只能被微处理器读出
这些位用作控制,只能被微处理器写入。读取这些位得
到的没有意义的数值
表 5-2:寄存器位的权限及描述
5.2 寄存器描述
5.2.1 PAGE0:指令和状态寄存器组
5.2.1.1 Page 寄存器
名字
功能
地址
复位值
位
Page
选择寄存器组
0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38
10000000,0x80
7
6
0
5
0
4
0
3
0
2
0
1
0
0
0
位名
UsePag
eSelect
r/w
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7
6-0
UsePageSelect 初始化 SPI 接口时使用,见 11.4
0000000 预留值
5.2.1.2 Command 寄存器
名字
功能
Command
开始或结束指令的执行
0x01
地址
复位值
X0000000,0xX0
位
7
IFDetec
tBusy
r
6
0
5
4
3
2
1
0
位名
Command
位权限
r
dy
dy
dy
dy
dy
dy
位描述
位
位名
功能
7
IFDetectBusy
接口检测的状态:
0:表示接口检测结束
1:表示接口检测正在进行
预留值
6
0
5-0
Command
运行并保存当前的指令
5.2.1.3 FifoData 寄存器
名字
功能
FIFOData
64byte FIFO 的输入输出寄存器
0x02
地址
复位值
XXXXXXXX,0xXX
位
7
6
5
4
3
2
1
0
位名
FIFOData
位权限
dy
dy
dy
dy
dy
dy
dy
dy
位描述
位
位名
功能
7-0
FIFOData
64byte FIFO 数据接口,通过该寄存器将数据写入或读出 FIFO
5.2.1.4 Primary Status 寄存器
名字
PrimaryStatus
功能
地址
表示发射器,接收器及 FIFO 的状态
0x03
复位值
位
XXXXXXXX,0xXX
7
0
r
6
r
5
4
r
3
IRQ
r
2
Err
r
1
0
位名
ModemState
r
HiAlert LoAlert
位权限
r
r
位描述
位
位名
0
ModemState
功能
7
6-4
预留值
显示当前发射器或接收器的状态:
状态
000
001
010
011
100
状态名
描述
Idle
TxSOF
发射器和接收器空闲
正在发射数据帧帧头
正在发射数据
TxData
TxEOF
GoToRx1
GoToRx2
PrepareRx
正在发射数据帧帧尾
接收器开始的中间状态
接收器开始的中间状态
101
接收器工作前等待 RxWait 寄存器定
义的时间
110
111
AwaitingRx
Receiving
接收器打开,准备接收数据
正在接收数据
3
2
1
IRQ
Err
HiAlert
表示 InterrupEn 寄存器使能的任何一个中断源是否有请求
1:表示 ErrorFlag 寄存器里有错误状态位置 1
1:表示 FIFO 中的数据数满足下列公式:
HiAlert = (64-FIFOLength) ≤ WaterLevel
0
LoAlert
1:表示 FIFO 中的数据数满足下列公式:
LoAlert = FIFOLength ≤ WaterLevel
5.2.1.5 FIFOLength 寄存器
名字
功能
FIFOLength
FIFO 中数据的 byte 数
0x04
地址
复位值
00000000,0x00
位
7
0
r
6
r
5
r
4
r
3
2
r
1
r
0
r
位名
FIFOLength
r
位权限
位描述
位
位名
0
功能
7
预留值
6-0
FIFOLength
标识 FIFO 中数据的 byte 数,每写一个数据到 FIFO,FIFOLength
加 1,每读出一个数据,FIFOLength 减 1
5.2.1.6 Secondary Status 寄存器
名字
功能
SecondaryStatus
不同的状态位
0x05
地址
复位值
01100000,0x60
位
7
TRun-
ning
r
6
E2-
Ready
r
5
4
0
3
0
2
r
1
0
r
位名
CRC-
Ready
r
RxLastBits
位权限
r
r
r
位描述
位
位名
TRunning
E2Ready
CRCReady
00
功能
7
6
5
4-3
2-0
1:表示 Timer 正在运行
1:表示 EEPROM 擦写过程结束
1:表示 CRC 计算结束
预留值
RxLastBits
表示接收到的最后一 byte 数据中正确的 bit 数。若 0,表示整个
byte 都是正确的
5.2.1.7 InterruptEn 寄存器
名字
功能
InterruptEn
使能或禁止中断请求
0x06
地址
复位值
00000000,0x00
位
7
6
0
5
Timerl
En
4
3
2
1
0
位名
SetlEn
TxlEn
RxlEn IdlelEn HiAlert LoAlert
lEn
r/w
lEn
r/w
位权限
w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7
SetlEn
1:使能 InterruptEn 寄存器里置 1 的中断源
0:禁止 InterruptEn 寄存器里置 1 的中断源
如:
写 0xA0 到 InterruptEn,表示使能 Timer 中断,若有 Timer 中断
请求,Timer 中断请求会反应到 primaryStatus 寄存器的 IRQ 位
写 0x20 表示禁止 Timer 中断,Timer 中断请求不会反应到
PrimaryStatus 寄存器的 IRQ 位
6
5
0
预留值
TimerlEn
1:表示允许 Timer 中断请求(标识位为 TimerlRq)反应到 IRQ
管脚。这一位不能直接置成 1 或 0,只能通过 SetlEn 来置
1:表示允许发射器中断请求(标识位为 TxlRq)反应到 IRQ 管
脚。这一位不能直接置成 1 或 0,只能通过 SetlEn 来置
1:表示允许接收器中断请求(标识位为 RxlRq)反应到 IRQ 管
脚。这一位不能直接置成 1 或 0,只能通过 SetlEn 来置
1 表示允许 idle 中断请求(标识位为 IdlelRq)反应到 IRQ 管脚。
这一位不能直接置成 1 或 0,只能通过 SetlEn 来置
1:表示允许 high alert 中断请求(标识位为 HiAlertlRq)反应到
IRQ 管脚。这一位不能直接置成 1 或 0,只能通过 SetlEn 来置
1:表示允许 low alert 中断请求(标识位为 LoAlertlRq)反应到
IRQ 管脚。这一位不能直接置成 1 或 0,只能通过 SetlEn 来置
4
3
2
1
0
TxlEn
RxlEn
IdlelEn
HiAlertlEn
LoAlertlEn
5.2.1.8 InterruptRq 寄存器
名字
功能
InterruptRq
中断源请求标识
0x07
地址
复位值
00000000,0x00
位
7
6
0
5
Timerl
Rq
4
3
2
1
0
位名
SetlRq
TxlRq
RxlRq IdlelRq HiAlert LoAlert
lRq
r/w
lRq
r/w
位权限
w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7
SetlRq
1:将 InterruptRq 寄存器里置 1 的标识位置 1
0:将 InterruptRq 寄存器里置 1 的标识位清 0
如:
写 0xA0 到 InterruptRq,表示将 Timer 中断源标识初始为 1
写 0x20 表示将 Timer 中断源标识初始为 0
预留值
6
5
4
0
TimerlRq
TxlRq
1:表示 TimerValue 寄存器里的值已经减为 0
1:表示有下列事件发生:
Transceive 指令:所有的数据都发送了
Auth1 和 Auth2 指令:所有数据都发送了
WriteE2 指令:所有数据都擦写结束
CalcCRC 指令:所有数据都计算结束
3
2
RxlRq
IdlelRq
1:表示接收数据结束,接收器停止
1:表示指令寄存器被内部状态机清 0
如果任何未知的指令写入指令寄存器,该位也置 1
但是微处理器写 Idle 指令到指令寄存器不影响该位
1:表示 HiAlert 置 1。和 HiAlert 不同,HiAlertlRq 保存这个状
态并只能被 SetlRq 复位
1:表示 LoAlert 置 1。和 LoAlert 不同,LoAlertlRq 保存这个状
态并只能被 SetlRq 复位
1
0
HiAlertlRq
LoAlertlRq
5.2.2 PAGE1:控制和状态寄存器组
5.2.2.1 Page 寄存器
选择寄存器组,见 5.2.1.1Page 寄存器
5.2.2.2 Control 寄存器
名字
功能
地址
复位值
位
Control
各种控制标识
0x09
00000000,0x00
7
0
6
0
5
Stand-
By
4
3
2
1
0
位名
Power
Down
dy
Crypto TStop- TStart-
1On
dy
Flush-
FIFO
w
Now
w
Now
w
位权限
r/w
r/w
dy
位描述
位
7-6
5
位名
00
StandBy
功能
预留值
置 1 则进入软件 PowerDown 模式。这种模式下,内部电路停止
工作,晶振不停振
4
3
2
1
0
PowerDown
Crypto1On
TStopNow
TStartNow
FlushFIFO
置 1 则进入软件 PowerDown 模式。这种情况下,内部电路和晶
振都停止工作
1:表示加密单元打开,并且所有的数据传输都经过加密
这一位只有在 Authent2 指令通过后才被内部状态机置 1
置 1 则立刻停止 Timer
读该位返回 0
置 1 则立即启动 Timer
读该位返回 0
置 1 则清空 FIFO 以及读写指针(FIFOLength 置 0),并且清
FIFOOvfl 标识位
读该位返回 0
5.2.2.3 ErrorFlag 寄存器
名字
功能
ErrorFlag
上一条指令结束后错误标识
0x0A
地址
复位值
01000000,0x40
位
7
0
6
5
4
FIFO-
Ovfl
r
3
CRC-
Err
r
2
1
0
位名
KeyErr Access
Err
Framin Parity- CollErr
gErr
r
Err
r
位权限
r
r
r
r
位描述
位
位名
0
功能
7
预留值
6
KeyErr
1:表示 LoadKeyE2 或 LoadKey 指令中输入的数据不符合规定
的密钥格式
0:开始 LoadkeyE2 或 LoadKey 指令
1:违反 PROM 读写权限
0:开始 EEPROM 相关指令
1:表示 FIFO 数据已满,微处理器或内部状态机仍然往 FIFO
里写数据,FIFO 溢出
1:表示 RxCRCEn 置 1 的情况下 CRC 校验出错。这一位在接
收器开始(PrepareRx 状态)时自动清 0
1:表示 SOF 出错。这一位在接收器开始(PrepareRx 状态)时
自动清 0
1:表示数据奇偶校验出错。这一位在接收器开始(PrepareRx
状态)时自动清 0
1:表示有冲突位。这一位在接收器开始(PrepareRx 状态)时
自动清 0
5
4
3
2
1
0
AccessErr
FIFOOvfl
CRCErr
FramingErr
ParityErr
CollErr
5.2.2.4 CollPos 寄存器
名字
功能
CollPos
侦测到的第一个冲突位的位置
0x0B
地址
复位值
00000000,0x00
位
7
r
6
r
5
r
4
r
3
r
2
r
1
r
0
r
位名
CollPos
位权限
位描述
位
位名
功能
7-0
CollPos
表示接收数据过程中侦测到的第一个冲突位的位置
5.2.2.5 TimerValue 寄存器
名字
功能
TimerValue
Timer 当前值
0x0C
地址
复位值
XXXXXXXX,0xXX
位
7
r
6
r
5
r
4
3
2
r
1
r
0
r
位名
TimerValue
r
位权限
r
位描述
位
位名
功能
7-0
TimerValue
显示当前 Timer 值
5.2.2.6 CRCResultLSB 寄存器
名字
功能
CRCResultLSB
CRC 协处理器低 8 位
0x0D
地址
复位值
XXXXXXXX,0xXX
位
7
r
6
r
5
r
4
3
2
r
1
r
0
r
位名
CRCResultLSB
r
位权限
r
位描述
位
位名
功能
7-0 CRCResultLSB 显示 CRC 寄存器低 8 位,该寄存器的数据仅在 CRCReady 为 1
时有效
5.2.2.7 CRCResultMSB 寄存器
名字
功能
CRCResultMSB
CRC 协处理器高 8 位
0x0E
地址
复位值
位
XXXXXXXX,0xXX
7
r
6
r
5
r
4
3
2
r
1
r
0
r
位名
CRCResultMSB
位权限
r
r
位描述
位
位名
功能
7-0 CRCResultMSB 显示 CRC 寄存器高 8 位,该寄存器的数据仅在 CRCReady 为 1
时有效
5.2.2.8 BitFraming 寄存器
名字
功能
BitFraming
调整面向 bit 的帧格式
0x0F
地址
复位值
00000000,0x00
位
7
0
r/w
6
5
RxAlign
dy
4
3
0
r/w
2
1
TxLastBits
dy
0
位名
位权限
dy
dy
dy
dy
位描述
位
位名
0
功能
7
预留值
6-4
RxAlign
定义收到的第一个 bit 在 FIFO 中存放的位置,接收结束后,
RxAlign 自动清 0
如:
RxAlign = 0:收到的第一个 byte 的最低位存放在 FIFO
中的第 0 位
RxAlign = 1:收到的第一个 byte 的最低位存放在 FIFO
中的第 1 位
3
0
预留值
2-0
TxLastBits
定义了最后一个 byte 中要发送出去的 bit 数,000 表示最后一个
byte 中所有 bit 都发送出去。
发送结束后,TxLastBits 自动清 0
5.2.3 PAGE2:发射及编码控制寄存器组
5.2.3.1 Page 寄存器
选择寄存器组,见 5.2.1.1Page 寄存器
5.2.3.2 TxControl 寄存器
名字
功能
地址
复位值
位
TxControl
控制发射器逻辑行为
0x11
01011000,0x58
7
0
6
5
4
1
3
2
1
0
位名
ModulatorSource
TX2Inv TX2Cw TX2RF TX1RF
En
En
位权限
r/w
r/w r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7
0
预留值,不要更改
6-5 ModulatorSouce 选择调制源:
00:LOW
01:HIGH
10:内部编码器
11:MFIN 管脚
预留值,不要更改
4
3
2
1
TX2Inv
TX2Cw
1:TX2 管脚输出 13.56MHz 反相能量载波
1:TX2 管脚输出持续的 13.56MHz 非调制能量载波
0:TX2 管脚输出持续的 13.56MHz 调制能量载波
1
0
TX2RFEn
TX1RFEn
1:TX2 管脚输出 13.56MHz 经发送数据调制过的能量载波
0:TX2 管脚输出固定的电平
1:TX1 管脚输出 13.56MHz 经发送数据调制过的能量载波
0:TX1 管脚输出固定的电平
5.2.3.3 CwConductance 寄存器
名字
CwConductance
功能
地址
选择发射脚 TX1 和 TX2 发射天线的电导
0x12
复位值
位
00111111,0x3F
7
0
6
0
5
4
3
2
1
0
位名
GsCfgCW
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
00
功能
7-6
预留值,不要更改
5-0
GsCfgCW
定义了输出电导,用来调整输出能量以及电流消耗和操作距离
注意:详细信息见 13.3
5.2.3.4 PreSet13 寄存器
名字
功能
PreSet13
预留寄存器
0x13
地址
复位值
00111111,0x3F
位
7
6
5
4
3
2
1
0
位名
PreSet13
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-0
PreSet13
预留值,不要更改
5.2.3.5 PreSet14 寄存器
名字
功能
PreSet14
预留寄存器
0x14
地址
复位值
00011001,0x19
位
7
6
5
4
3
2
1
0
位名
PreSet14
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-0
PreSet14
预留值,不要更改
5.2.3.6 ModWidth 寄存器
名字
功能
ModWidth
定义调制宽度
地址
0x15
复位值
00010011,0x13
位
7
6
5
4
3
2
1
0
位名
ModWidth
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
定义调制宽度 Tmod = 2(ModWidth+1)/fc
7-0
ModWidth
5.2.3.7 PreSet16 寄存器
名字
功能
PreSet16
预留寄存器
0x16
地址
复位值
00000000,0x00
位
7
6
5
4
3
2
1
0
位名
PreSet16
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-0
PreSet16
预留值,不要更改
5.2.3.8 PreSet17 寄存器
名字
功能
PreSet17
预留寄存器
地址
0x17
复位值
00000000,0x00
位
7
6
5
4
3
2
1
0
位名
PreSet17
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-0
PreSet17
预留值,不要更改
5.2.4 PAGE3:接收及解码控制寄存器组
5.2.4.1 Page 寄存器
选择寄存器组,见 5.2.1.1Page 寄存器
5.2.4.2 RxControl1 寄存器
名字
功能
RxControl1
控制接收器行为
0x19
地址
复位值
位
01110011,0x73
7
0
6
1
5
1
4
1
3
0
2
0
1
0
位名
Gain
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
011100
Gain
功能
7-2
1-0
预留值,不要更改
定义接收器放大器增益:
00:27 dB
01:30 dB
10:38 dB
11:42dB
5.2.4.3 DecoderControl 寄存器
名字
功能
DecoderControl
控制解码器行为
0x1A
地址
复位值
00001000,0x08
位
7
0
6
0
5
4
0
3
1
2
0
1
0
0
0
位名
ZeroAf
erColl
r/w
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-6
00
预留值,不要更改
5
4-0
ZeroAferColl
01000
1:所有接收到的冲突位之后的数据都置 0
预留值,不要更改
5.2.4.4 BitPhase 寄存器
名字
功能
BitPhase
调整发射器和接收器时钟相差
0x1B
地址
复位值
10101101,0xAD
位
7
6
5
4
3
2
1
0
位名
BitPhase
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
定义发射器和接收器时钟的相位差,该值影响数据接收质量
7-0
BitPhase
5.2.4.5 RxThreshold 寄存器
名字
功能
RxThreshold
选择 bit 解码的阈值
0x1C
地址
复位值
11111111,0xFF
位
7
6
5
4
3
2
1
0
位名
MinLevel
CollLevel
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-4
MinLevel
定义解码器能够接收的最小信号,若信号强度低于该值,则不
被处理
3-0
CollLevel
定义 Manchester 编码的信号里弱半 bit 相对强半 bit 产生冲突必
须达到的最小值
5.2.3.8 PreSet1D 寄存器
名字
功能
PreSet1D
预留寄存器
0x1D
地址
复位值
00000000,0x00
位
7
6
5
4
3
2
1
0
位名
PreSet1D
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-0
PreSet1D
预留值,不要更改
5.2.4.7 RxControl2 寄存器
名字
功能
RxControl2
解码控制及选择接收源
0x1E
地址
复位值
01000001,0x41
位
7
6
5
0
4
0
3
0
2
0
1
0
位名
RcvClk RxAuto
DecoderSource
Sell
r/w
PD
r/w
位权限
r/w
r/w
r/w
r/w
r/w r/w
位描述
位
位名
功能
7
RcvClkSell
1:选择 I 时钟作为接收器时钟
0:选择 Q 时钟作为接收器时钟
6
RxAutoPD
1:接收器在接收数据前自动打开和接受数据后自动关闭,用于
节省功耗
0:接收器始终打开
预留值,不要更改
5
0000
1-0 DecoderSource 选择解码器源:
00:LOW
01:内部解调器
10:MFIN 输入的 Manchester 编码的副载波
11:MFIN 输入的 Manchester 编码的基带信号
5.2.4.8 ClockQControl 寄存器
名字
功能
ClockQControl
控制 Q 时钟产生
0x1F
地址
复位值
000XXXXX,0xXX
位
7
6
5
0
4
3
2
1
0
位名
ClkQ18 ClkQC
ClkQDelay
0Deg
r
alib
r/w
位权限
r/w
dy
dy
dy
dy
dy
位描述
位
位名
功能
7
6
clkQ180Deg
ClkQCalib
若 I-Q 时钟相位差超过 180 度,该位置 1,否则为 0
0:复位及接收过程结束后自动校正 Q 时钟相位
1:不校正 Q 时钟相位
5
0
预留值,不要更改
4-0
ClkQDelay
用于产生 Q 时钟的预置值
5.2.5 PAGE4:时间及校验控制寄存器组
5.2.5.1 Page 寄存器
选择寄存器组,见 5.2.1.1Page 寄存器
5.2.5.2 RxWait 寄存器
名字
功能
RxWait
选择发射和接收之间的时间间隔
0x21
地址
复位值
位
00000110,0x06
7
6
5
4
3
2
1
0
位名
RxWait
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-0
RxWait
数据发送后,接收器等待 RxWait 定义的 bit 时钟数,在这段时
间内,Rx 上收到的任何信号都被忽略
5.2.5.3 ChannelRedundancy 寄存器
名字
功能
地址
复位值
位
ChannelRedundancy
选择数据校验种类和模式
0x22
00000011,0x03
7
0
6
5
4
3
2
1
0
Parity-
En
位名
CRCM
SBFirst
r/w
CRC
3309
r/w
CRC8 RxCRC TxCRC Parity-
En
En
r/w
Odd
r/w
位权限
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7
0
预留值,不要更改
6
5
4
3
CRCMSBFirst 1:数据流高位先进 CRC 协处理器
0:数据流低位先进 CRC 协处理器
CRC3309
1:CRC 算法切换为 ISO/IEC3309
0:CRC 算法切换为 ISO1443A
1:计算 8bit CRC
CRC8
0:计算 16bit CRC
RxCRCEn
1:对接收数据进行 CRC 校验,接收数据最后两 byte CRC 不送
入 FIFO。如果校验出错,CRCErrFlag 置 1
0:接收过程不进行 CRC 校验
2
1
0
TxCRCEn
ParityOdd
ParityEn
1:对发射数据计算 CRC 校验码,并附加在数据流尾一起发送
0:不发送 CRC 校验码
1:选择奇校验
0:选择偶校验
1:每个发送的数据 byte 后都插入 1bit 校验位,同样每个接收
到的数据 byte 都进行奇偶校验
0:不发送及检查奇偶校验位
5.2.5.4 CRCPresetLSB 寄存器
名字
功能
CRCPresetLSB
CRC 预置值低 8 位
0x23
地址
复位值
01100011,0x63
位
7
6
5
4
3
2
1
0
位名
CRCPresetLSB
r/w r/w
位权限
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-0 CRCPresetLSB CRC 协处理器预置值低 8 位
5.2.5.5 CRCPresetMSB 寄存器
名字
功能
CRCPresetMSB
CRC 预置值高 8 位
0x24
地址
复位值
位
01100011,0x63
7
6
5
4
3
2
1
0
位名
CRCPresetMSB
r/w r/w
位权限
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-0 CRCPresetMSB CRC 协处理器预置值高 8 位
5.2.5.6 PreSet25 寄存器
名字
功能
PreSet25
预留寄存器
0x25
地址
复位值
00000000,0x00
位
7
6
5
4
3
2
1
0
位名
PreSet25
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-0
PreSet25
预留值,不要更改
5.2.5.7 RFU 寄存器
名字
功能
RFU
预留寄存器
0x26
地址
复位值
0x00
位
7
6
5
4
3
2
1
0
位名
RFU
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-0
RFU
预留值
5.2.5.8 PreSet27 寄存器
名字
功能
PreSet27
预留寄存器
地址
0x27
复位值
XXXXXXXX,0xXX
位
7
6
5
4
3
2
1
0
位名
PreSet27
位权限
w
w
w
w
w
w
w
w
位描述
位
位名
功能
7-0
PreSet27
预留值,不要更改
5.2.6 PAGE5:FIFO,Timer 及 IRQ 控制寄存器组
5.2.6.1 Page 寄存器
选择寄存器组,见 5.2.1.1Page 寄存器
5.2.6.2 FIFOLevel 寄存器
名字
功能
FIFOLevel
定义 FIFO 溢出级别
0x29
地址
复位值
位
00000100,0x08
7
0
r/w
6
0
r/w
5
4
3
2
1
0
位名
WaterLevel
r/w r/w
位权限
r/w
r/w
r/w
r/w
位描述
位
位名
00
WaterLevel
功能
7-6
5-0
预留值,不要更改
定义了 FIFO 向上或向下溢出的级别:
若 FIFO 里剩下的空间小于等于 WaterLevel,则 HiAlert 置 1
若 FIFO 里已有的数据小于等于 LoAlert,则 LoAlert 置 1
5.2.6.3 TimerClock 寄存器
名字
功能
TimerClock
选择 Timer 时钟的分频
0x2A
地址
复位值
00000111,0x07
位
7
0
r/w
6
0
r/w
5
4
3
2
1
0
位名
TAutoRestart
r/w r/w
TPreScaler
r/w
位权限
r/w
r/w
r/w
位描述
位
位名
功能
7-6
00
预留值,不要更改
5-4
3-0
TAutoRestart
TPreScaler
1:Timer 递减到 0 后,自动重新从 TReloadValue 开始递减
定义 Timer 时钟频率 fTimer,范围从 0 到 21:
fTimer = 13.56MHz/2TPreScaler
5.2.6.4 TimerControl 寄存器
名字
功能
TimerControl
选择 Timer 启动/停止条件
0x2B
地址
复位值
00000110,0x06
位
7
0
6
0
5
0
4
0
3
2
1
0
位名
TStop- TStopR TStartT TStartT
RxEnd xBegin
r/w r/w
xEnd
r/w
xBegin
r/w
位权限
r/w
r/w
r/w
r/w
位描述
位
7-4
3
位名
0000
TStopRxEnd
功能
预留值,不要更改
1:数据接收完毕后 Timer 自动停止
0:Timer 不受该条件影响
2
1
TStopRxBegin 1:第一个正确的 bit 接收完 Timer 自动停止
0:Timer 不受该条件影响
TStartTxEnd
1:数据发送结束后 Timer 自动启动。若此时 Timer 已经在运行,
则 Timer 重新启动,从 TReloadValue 开始递减
0:Timer 不受该条件影响
0
TStartTxBegin 1:第一个 bit 发送后 Timer 自动启动。若此时 Timer 已经在运
行,则 Timer 重新启动,从 TReloadValue 开始递减
0:Timer 不受该条件影响
5.2.6.5 TimerReload 寄存器
名字
功能
TimerReload
定义 Timer 预置值
0x2C
地址
复位值
00001010,0x0A
位
7
6
5
4
3
2
1
0
位名
TReloadValue
r/w r/w
位权限
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
位名
功能
7-0 TReloadValue Timer 若启动,则从该值开始倒计数。改变该寄存器值只能影响
下一次 Timer 启动的初值
5.2.6.6 IRQPinConfig 寄存器
名字
功能
IRQPinConfig
配置 IRQ 输出行为
0x2D
地址
复位值
00000010,0x02
位
7
0
6
0
5
0
4
0
3
0
2
0
1
0
位名
IRQInv IRQPus
hPull
位权限
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
7-3
1
位名
功能
000000
IRQInv
预留值,不要更改
1:IRQ 管脚为 IRq bit 的反相输出
0:IRQ 管脚为 IRq bit 的同相输出
1:IRQ 管脚为标准 CMOS 输出
0:IRQ 管脚为开漏输出
0
IRQPushPull
5.2.6.7 PreSet2E 寄存器
名字
功能
PreSet2E
预留寄存器
地址
0x2E
复位值
XXXXXXXX,0xXX
位
7
6
5
4
3
2
1
0
位名
PreSet2E
位权限
w
w
w
w
w
w
w
w
位描述
位
位名
功能
7-0
PreSet2E
预留值,不要更改
5.2.6.8 PreSet2F 寄存器
名字
功能
PreSet2F
预留寄存器
地址
0x2F
复位值
XXXXXXXX,0xXX
位
7
6
5
4
3
2
1
0
位名
PreSet2F
位权限
w
w
w
w
w
w
w
w
位描述
位
位名
功能
7-0
PreSet2F
预留值,不要更改
5.2.7 预留寄存器组
5.2.7.1 Page 寄存器
选择寄存器组,见 5.2.1.1Page 寄存器
5.2.7.2 CryptoSelect 寄存器(FM1705)
名字
功能
地址
复位值
位
CryptoSelect
选择认证模式
0x31
00000000,0x00
7
0
6
0
5
0
4
0
3
0
2
0
1
0
0
位名
Crypto
Select
w
位权限
w
w
w
w
w
w
w
位描述
位
7-1
0
位名
功能
0000000
CryptoSelect
预留值,不要更改
1:兼容 SH 标准的认证模式
0:兼容 MIFARE 标准的认证模式
5.2.7.3 RFU 寄存器
名字
功能
RFU
预留寄存器
地址
0x32,0x33,0x34,0x35,0x36,0x37
XXXXXXXX,0xXX
复位值
位
7
6
5
4
3
2
1
0
位名
RFU
位权限
w
w
w
w
w
w
w
w
位描述
位
位名
功能
7-0
RFU
预留值
5.2.8 预留寄存器组
5.2.8.1 Page 寄存器
选择寄存器组,见 5.2.1.1Page 寄存器
5.2.8.2 RFU 寄存器
名字
功能
RFU
预留寄存器
地址
复位值
位
0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F
XXXXXXXX,0xXX
7
6
5
4
3
2
1
0
位名
RFU
位权限
w
w
w
w
w
w
w
w
位描述
位
位名
功能
7-0
RFU
预留值
6 EEPROM 结构
6.1 EEPROM 存储器结构
块号
0
块地址
0
byte地址
00…0F
读写权限
r
内容
产品信息区
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
10…1F
20…2F
30…3F
40…4F
50…5F
60…6F
70…7F
80…8F
r/w
r/w
r/w
r/w
r/w
r/w
r/w
w
寄存器复位初始值存放区
寄存器初始值存放区
9
9
90…9F
w
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
A
B
C
D
E
F
A0…AF
B0…BF
C0…CF
D0…DF
E0…EF
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
w
F0…FF
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
100…10F
110…11F
120…12F
130…13F
140…14F
150…15F
160…16F
170…17F
180…18F
190…19F
1A0…1AF
1B0…1BF
1C0…1CF
1D0…1DF
1E0…1EF
1F0…1FF
密钥存放区
w
w
w
w
w
w
表6-1:EEPROM存储器结构
6.2 寄存器初始值存放区
10hex 到 2Fhex 寄存器在初始阶段(见 11.3 章)会被自动初始成寄存器复位初始
值存放区内的值。用户也可以使用 LoadConfig 指令(见 16.6.1 章)将这些寄存
器初始化成寄存器初始值存放区里的值。
注意:
ꢀ Page 寄存器(10hex,18hex,20hex,28hex)不会被初始化
ꢀ 不要更改任何 PreSet 寄存器的内容
ꢀ 所有预留的寄存器或寄存器位都为‘0’,不要更改内容
6.2.1 寄存器复位初始值存放区
EEPROM 第一和第二块存放初始阶段 10hex 到 2Fhex 寄存器的初始值,默认值见
6.3.2。对应关系如下:
EEPROM Byte地址
10hex (块1,Byte0)
寄存器地址
注释
跳过
10hex
复制
11hex
11hex
…
…
…
复制
2Fhex(块2,Byte15)
2Fhex
表6-4:寄存器地址对应表
6.2.2 寄存器复位初始值
寄存器复位初始值在产品测试过程中被初始化,在每次上电或复位过程中,这些
值被用来初始化内部寄存器 10hex 到 2Fhex
。
EEPROM
寄存器地址
值
描述
Byte地址
10
11
12
13
14
15
16
17
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
00
58
3F
3F
19
13
00
00
00
73
08
AD
FF
00
41
00
00
06
03
63
63
00
00
00
00
08
07
06
0A
02
00
00
Page
TxControl
CwConductance
PreSet13
PreSet14
ModWidth
PreSet16
PreSet17
Page
18
19
RxControl1
DecoderControl
BitPhase
RxThreshold
PreSet1D
RxControl2
ClockQControl
Page
1A
1B
1C
1D
1E
1F
20
21
22
23
24
RxWait
ChannelRedundancy
CRCPresetLSB
CRCPresetMSB
PreSet25
RFU
PreSet27
25
26
27
28
Page
29
FIFOLevel
TimerClock
TimerControl
TimerReload
IRQPinConfig
PreSet2E
2A
2B
2C
2D
2E
2F
PreSet2F
表 6-5:寄存器复位初始值地址对应表
6.2.3 寄存器初始值
EEPROM 块 3 到块 7 保存着寄存器初始化值,用户可以用 LoadConfig 指令(见
16.6.1)将内部寄存器 10hex 到 20hex 初始化为这些值。对应关系如下:
E²PROM Byte 地址
寄存器 Address
注释
跳过
EEPROM起始byte地址
10hex
复制
EEPROM起始byte地址 + 1
…
11hex
…
…
复制
EEPROM起始byte地址 + 31
2Fhex
表6-6:寄存器初始值地址对应表
注意: 寄存器初始值模块是可读+可写权限,用户可以用它来初始化寄存器,
同样也可以用来来存放数据
6.3 密钥存放区
6.3.1 密钥格式
密钥必须以规定的格式存放在 EEPROM 内。每一 byte 的密钥分为低四位(k0
到 k3)和高四位(k4 到 7),每四位按位及位反存放在一个 byte 内。LoadKeyE2
和 LoadKey 指令会按此来检查密钥是否满足这种格式。使用这种格式,6byte 的
key 需存放在 12byte EEPROM 内:
KEY
…
0 (LSB)
1
5 (MSB)
Byte
k 7k 6k 5k 4k 7k 6k 5k 4
k 3k 2k1k 0k 3k 2k1k 0
k 7k 6k 5k 4k 7k 6k 5k 4
n+2
k 3k 2k1k 0k 3k 2k1k 0
n+3
k 7k 6k 5k 4k 7k 6k 5k 4
k 3k 2k1k 0k 3k 2k1k 0
KEY
…
…
E²PROM
Byte
地址
n
n+1
n+10
5Ahex
n+11
例子
5Ahex
F0hex
5Ahex
E1hex
A5hex
表6-7:KEY存放格式
例 子 : key 为 A0A1A2A3A4A5 , 则 在 EEPROM 中 存 放 格 式 为 :
5AF05AE15AD25AC35AB45AA5hex
6.3.2 密钥的存放
FM1702SL 保留了 384byte EEPROM 空间用于保存密钥。密钥可以在这些 byte
中任意位置开始存放。
例子:如果一条密钥的 byte0 存放在 12Fhex,则 byte1 存放在 130hex,byte2 存放
在 131hex,一直到 byte11 存放 在 13Ahex
7 FIFO
7.1 概述
FM1702SL 包含一个 8x64 的并行 FIFO,保存微处理器和 FM1702SL 之间通信的
数据
7.2 访问规则
FIFO 通过 FIFOData 寄存器输入和输出数据。向这个寄存器里写一 byte 数据即
向 FIFO 里添加一 byte 数据,同时 FIFO 写指针加一。从这个寄存器读一 byte 数
据即从 FIFO 里读出一 byte 数据,同时 FIFO 读指针加一。FIFOLength 寄存器记
录读/写指针之间的长度。
当 FM1702SL 执行一条指令时,内部状态机可能会对 FIFO 进行内部读/写操作,
所以除了指令本身要求外,微处理器在 FM1702SL 指令执行过程中不要对 FIFO
执行不正确的访问
下列表格给出 FM1702SL 指令执行过程中对 FIFO 的访问情况:
微处理器允许
注释
指令
写数据到FIFO
从FIFO读数据
StartUp
-
-
-
-
Idle
写指令参数或追加发射数据
读取接收数据
Transmit
Receive
√
-
-
√
写指令参数,接收过程中读接收到
的数据
Transceive
WriteE2
ReadE2
√
√
√
-
写指令参数或追加要写入EEPROM
的数据
写指令参数,在指令执行过程中读
取从EEPROM读出的数据
写指令参数
√
√
√
√
√
LoadKeyE2
LoadKey
-
-
-
-
-
-
写指令参数
写指令参数
Authent1
Authent2
-
√
写指令参数
写指令参数
LoadConfig
CalcCRC
√
表7-1:FIFO访问规则
7.3 控制 FIFO
除了读写 FIFO 外,用户可以通过设置 FlushFIFO 位来复位 FIFO 指针。在这种
情况下,FIFO 被清空,FIFOLength 置 0,FIFOOvfl 标识位被清除,FIFO 内原有
的数据不再有效。
7.4 FIFO 状态信息
微处理器可以通过下列寄存器获得 FIFO 状态:
FIFO 中数据长度:FIFOLength
FIFO 渐满警告:HiAlert
FIFO 渐空警告:LoAlert
FIFO 溢出(FIFO 满的情况下继续写数据到 FIFO):FIFOOvfl
FIFO 可以产生两个中断请求:
如果 LoAlertRq 置 1 且 LoAlert 变为 1,会激活 IRQ 管脚
如果 HiAlertRq 置 1 且 HiAlert 变为 1,会激活 IRQ 管脚
LoAlert 变为 1 的条件:
LoAlert = FIFOLength ≤ WaterLevel
HiAlert 变为 1 的条件:
HiAlert = (64-FIFOLength)≤ WaterLevel
7.5 FIFO 相关寄存器
标识
寄存器
地址
寄存器,bit位
FIFOLength
FIFOOvfl
FlushFIFO
HiAlert
FIFOLength
ErrorFlag
0x04, bits 6-0
0x0A, bit 4
0x09, bit 0
0x03, bit 1
0x06, bit 1
0x07, bit 1
0x03, bit 0
0x06, bit 0
0x07, bit 0
0x29, bits 5-0
Control
PrimaryStatus
InterruptIEn
InterruptIRq
PrimaryStatus
InterruptIEn
InterruptIRq
FIFOLevel
HiAlertIEn
HiAlertIRq
LoAlert
LoAlertIEn
LoAlertIRq
WaterLevel
表7-2:FIFO相关寄存器
8 中断请求系统
8.1 概述
如果有中断请求事件发生,FM1702SL 会将 PrimaryStatus 寄存器里的 IRq 位置 1,
同时激活 IRQ 管脚。IRQ 上的信号可以用来向微处理器发出中断请求。
8.1.1 中断源概述
下表列出了各个中断标识对应的中断源及其标识建立的条件。
TimerIRq 表明 TIMER 有中断请求。当 TIMER 自减到 0(TAutoRestart 置 0)或
TpreLoad 值(TautoRestart 置 1)时 TimerlRq 标识建立
TxIRq 标识在三种情况下会被建立:
1.所有数据发送完毕
2.CRC 协处理器将 FIFO 中所有数据计算完毕,此时 CRCReady 也被置 1
3.所有 FIFO 中的数据都被写入 EEPROM,此时 E2Ready 也被置 1
RxIRq 表明接收器接收数据完毕
IdleIRq 表明指令执行完毕
HiAlerIRq 表明 HiAlert 被置 1,见 7.4 章
LoAlertIRq 表明 LoAlert 被置 1,见 7.4 章
中断标识
中断源
TIMER
发射器
建立条件
Timer自减到0或TpreLoad值
数据发送结束
TimerIRq
TxIRq
CRC协处理器
E²PROM
接收器
FIFO中所有数据CRC计算结束
FIFO中所有数据已被写入EEPROM
接收器接收数据结束
RxIRq
IdleIRq
指令寄存器
指令执行结束
HiAlertIRq
LoAlertIRq
FIFO
FIFO
HlAlert置1,FIFO渐满
LoAlert置1,FIFO渐空
表8-1:中断源
8.2 中断应用
8.2.1 控制中断请求及其标识
FM1702SL 通过设置 InterrupRq 寄存器中的 bit 向微处理器指明相应的中断请求,
并且通过 InterrupEn 寄存器来打开或禁止这些中断请求。
寄存器
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
HiAlert LoAlert
IEn IEn
HiAlert LoAlert
IRq IRq
Bit 0
TimerI
En
TimerI
Rq
InterruptEn SetIEn
InterruptRq SetIRq
rfu
TxIEn
RxIEn IdleIEn
RxIRq IdleIRq
rfu
TxIRq
表8-2:中断控制寄存器
只要有任何一个中断请求标识被置1并且相应的中断使能位打开,则
PrimaryStatus寄存器中的IRq位被置1。如果有多个中断标识同时置1,则所有的
中断请求位做“或”运算后激活IRq标识及IRQ管脚
8.2.2 访问中断寄存器
中断请求位由内部状态机来设置。此外微处理器也可以使用 SetIEn 或 SelIRq 位
来设置或清除他们。如果想要某个特定的中断位要置 1,则将该位置 1 并置 SetIxx
位为 1。如果想要没个特定的中断位置 0,则将该位置 1 并置 SetIxx 位为 0。
8.3 IRQ 管脚配置
用户可以通过 IRQPinConfig 寄存器来控制 IRQ 管脚的输出行为
IRQInv: 若置 0,则 IRQ 管脚电平与 IRq bit 位电平相同
若置 1,则 IRQ 管脚电平与 IRq bit 位电平相反
IRQPushPull: 若置 1,IRQ 管脚为标准 CMOS 输出特性
若置 0,IRQ 管脚为开漏输出,且必须外接上拉电阻
注意:在复位过程(见 11.2 章)IRQInv 置 1 且 IRQPushPull 置 0,此时 IRQ 管
脚为高阻状态
8.4 中断相关寄存器
标识
寄存器
地址
寄存器,bit位
HiAlertIEn
HiAlertIRq
IdleIEn
InterruptEn
InterruptRq
InterruptEn
InterruptRq
PrimaryStatus
IRQPinConfig
IRQPinConfig
InterruptEn
InterruptRq
InterruptEn
InterruptRq
InterruptEn
InterruptRq
InterruptEn
InterruptRq
InterruptEn
InterruptRq
0x06, bit 1
0x07, bit 1
0x06, bit 2
0x07, bit 2
0x03, bit 3
0x07, bit 1
0x07, bit 0
0x06, bit 0
0x07, bit 0
0x06, bit 3
0x07, bit 3
0x06, bit 7
0x07, bit 7
0x06, bit 5
0x07, bit 5
0x06, bit 4
0x07, bit 4
IdleIRq
IRq
IRQInv
IRQPushPull
LoAlertIEn
LoAlertIRq
RxIEn
RxIRq
SetIEn
SetIRq
TimerIEn
TimerIRq
TxIEn
TxIRq
表8-3:中断相关寄存器
9 TIMER
9.1 概述
FM1702SL包含一个TIMER,选择芯片13.56MHz时钟的不同分频作为计时时钟。
微处理器可以按需要将其配置为:
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
Timeout-Counter
Watch-Dog Counter
Stop Watch
Programmable One-Shot
Periodical Trigger
TIMER 可以用来计算两个事件的时间间隔或标识某一事件在某一精确的时间后
发生。TIMER 可以被若干事件触发,但不会影响任何事件的进行。TIMER 相关
的标识位也可以被用来产生中断请求
9.2 TIMER 应用
9.2.1 控制 TIMER
TIMER 的主要部分是一个自减计数器。只要该计数器值不为 0,就会在时钟控
制下做自减操作。如果 AutoRestart 置 1,则 TIMER 不会自减到 0。当 TIMER 计
数到 1 时会在下一个时钟自动加载 TimerReolad 寄存器的值
TIMER 将 TimerReload 寄存器的值加载后自动开始运行,这可由下列事件触发:
ꢀ
ꢀ
ꢀ
开始发送第一个 bit(TxBegin 事件)并且 TStartTxBegin 置 1
发送完最后一个 bit(TxEnd 事件)并且 TStartTxEnd 置 1
TStartNow 被微处理器置 1
注意:TIMER 被触发后都会从 TimerReload 寄存器装载初始值,重新开始倒计数
TIMER 可以被下列事件停止:
ꢀ
ꢀ
ꢀ
ꢀ
收到第一个 bit(RxBegin 事件)并且 TStopRxBegin 置 1
接收器接收结束(RxEnd 事件)并且 TStopRxEnd 置 1
TIMER 自减到 0 并且 TAutoRestart 置 0
TStopNow 被微处理器置 1
写一个新的数据到 TimerReload 寄存器并不立即影响计数器,TimerReload 寄存
器只在 TIMER 下一次重新开始时改变 TIMER 的初始值。所以 TimerReload 寄存
器可以在 TIMER 运行过程中被赋值。
如果 TIMER 是被 TstopNow 位停止的,则不会发出 TimerIRq 请求
9.2.2 TIMER 时钟周期
TIMER 时钟由芯片 13.56MHz 时钟分配得到。由 TPreScaler 寄存器决定分频数:
T PreScaler
1
2
TTimerClock
=
=
13.56MHz
fTimerClock
TPreScaler 寄存器范围从 0 到 21,对应 TTimerClock 从 74ns 到 150ms
从上一个开始事件到目前的时间范围为 74ns 到 40s,计算公式如下:
T ReloadValue −TimerValue
TTimer
=
fTimerClock
9.2.3 TIMER 状态
SecondaryStatus 寄存器里的 TRunning bit 位标识了当前 TIMER 的状态。任何事
件触发 TIMER 启动后,TRunning 标识置 1,TIMER 停止后,TRunning 置 0。
Running 标识置 1 的下一个时钟起 TimerValue 开始自减。当前 TIMER 值可从
TimerValue 寄存器读出。
9.3 TIMER 用途
9.3.1 TIMER-OUT 和 WATCH-DOG-COUNTER
TIMER 启动后自动从 TimerValue 开始递减,如果定义好的结束事件(如接收到
第一个 bit)发生,TIMER 就停止,没有 TIMER 中断产生。
另一方面,如果结束事件没有发生(如卡在规定的时间内没有回发数据),则
TIMER 一直计数到 0 并产生中断请求,这个中断可以通知微处理器预期的事件
没有在规定的时间内发生
9.3.2 STOP WATCH
微处理器可以计算 TIMER 开始到结束之间的时间:
VT = (T Reloadvalue −Timer )*TTimer
value
9.3.3 PROGRAMMABLE ONE-SHOT TIMER
微处理器启动 TIMER 后等待 TIMER 的中断,在规定的时间后中断会出现
9.3.4 PERIODICAL TRIGGER
若微处理器将 TAutoRestart 置 1,则会周期性(TTimer)的产生中断请求
9.4 TIMER 相关寄存器
地址
标识
寄存器
寄存器,bit位
TautoRestart
TimerValue
TimerReloadValue
TpreScaler
TimerClock
TimerValue
TimerReload
TimerClock
SecondaryStatus
Control
0x2A, bit 5
0x0C, bits 7-0
0x2C, bits 7-0
0x2A, bits 4-0
0x05, bit 7
Trunning
TstartNow
0x09, bit 1
TstartTxBegin
TstartTxEnd
TstopNow
TimerControl
TimerControl
Control
0x2B, bit 0
0x2B, bit 1
0x09, bit 2
TstopRxBegin
TstopRxEnd
TimerControl
TimerControl
0x2B, bit 2
0x2B, bit 3
表 9-1:TIMER 相关寄存器
10 省电工作模式
10.1 Hard Power Down 模式
在 RSTPD 上加高电平就进入到 Hard Power Down 模式。这将关闭所有的内部电
流消耗包括振荡器。所有的数字输入驱动器与输入管脚分离而由内部决定电平
(RSTPD 自身除外)。所有输出管脚电平被固定在某一值。
如下表所示:
符号
OSCIN
IRQ
MFIN
TX1
TX2
C0
C1
C2
MISO
SCK
MOSI
NSS
C3
AUX
RX
VMID
RSTPD
OSCOUT
管脚位置
类型
描述
1
2
3
5
7
9
10
11
12
13
14
15
16
19
21
22
23
24
I
O
I
O
O
I
I
I
I
I
I/O
I
I
O
I
A
I
没有与输入分离, 被拉到 AVSS
高阻
与输入分离
高
低
与输入分离
与输入分离
与输入分离
与输入分离
与输入分离
与输入分离
与输入分离
与输入分离
高阻
不变
拉到 AVDD
不变
O
高
表 10-1: 在 Hard Power Down 方式下管脚信号
10.2 Soft Power Down 模式
当 Control 寄存器的 PowerDown 位被置为 1 之后,芯片立即进入 Soft Power Down
模式。所有的内部电流都被关断(包括振荡器驱动)。
与 Hard Power Down 模式不同,数字输入驱动没有与输入管脚分离,依然保持工
作状态。数字输出管脚保持原有状态。
当 Control 寄存器的 PowerDown 位复位之后,需要 512 个时钟周期退出 Soft Power
Down 模式,由 PowerDown 标志来标示。对这一位复位并不能立即清除它,当
退出 Soft Power Down 模式后它会自动清零。
注意:如果使用内部振荡器,必须考虑到它由 AVDD 供电,到振荡器稳定且时
钟周期能被内部逻辑电路检测到必定会有一定的延迟 tOSC。
10.3 Stand By 模式
当 Control 寄存器的 StandBy 位被置为 1 之后,芯片立即进入 Stand By 模式。所
有的内部电流都被关断(包括除振荡器驱动外所有的内部时钟驱动)。
与 Hard Power Down 模式不同,数字输入驱动没有与输入管脚分离,依然保持工
作状态。数字输出管脚保持原有状态。
与 Soft Power Down 模式不同,振荡器不需要恢复时间。
当 Control 寄存器的 StandBy 位复位之后,OSCIN 管脚上需要经过 4 个时钟周期
才能退出 Stand By 模式,由 StandBy 标志来标示。对这一位复位并不能立即清除
它,当退出 Stand By 模式后它会自动清零。
10.4 接收器关闭
在不需要的时候关闭接收器,在数据接收之前打开接收器可以降低功耗。在将
RxAutoPD 设置成 1 之后可以自动实现这一功能。如果将这一位设置成 0,则接
收器一直处于工作状态。
11 启动过程
启动过程如下图所示:
图 11-1 启动过程
11.1 Hard Power Down 阶段
在下列情况下会进入 Hard Power Down 阶段
ꢀ
ꢀ
ꢀ
由于 DVDD 管脚上加电引起的上电复位(在 DVDD 低与数字电路复位阀值
电压时启动)
由于 AVDD 管脚上加电引起的上电复位(在 AVDD 低与模拟电路复位阀值
电压时启动)
在 RSTPD 管脚上加高电平(当 RSTPD 管脚上电平为高时启动)
11.2 复位阶段
复位阶段自动跟随 Hard Power Down 阶段。一旦振荡器工作稳定,需要 512 个时
钟周期完成该状态。在复位阶段,一些寄存器的值由硬件预置。相应的寄存器复
位值在介绍寄存器时已经给出(见 5.2 章)。
注意:如果使用内部振荡器,必须考虑到它由 AVDD 供电,到振荡器稳定且时
钟周期能被内部逻辑电路检测到必定会有一定的延迟 tOSC。
11.3 初始化阶段
初始化阶段自动跟随复位阶段,需要 128 个时钟周期。在初始化阶段,EEPROM
的第 1 和第 2 扇区内容被复制到 10hex 至 2Fhex 寄存器。
注意:在产品测试时,FM1702SL 被初始化成默认值,这有助于最大限度的减少
微处理器对芯片的配置工作。
11.4 初始化 SPI 接口方式
芯片复位后,必须进行一次初始化程序以便初始化 SPI 接口模式,而且可以同步
微处理器和 FM1702SL 的启动工作。
在整个启动过程中,Command 寄存器的值始终为 3Fhex。在初始化阶段结束后,
FM1702SL 自动进入 Idle 状态,Command 寄存器的值随之变成 00hex。
执行下列程序确保初始化 SPI 接口:
ꢀ
读 Command 寄存器,直到 6 比特值变成 00hex。此时内部初始化阶段已经
结束,芯片准备好接收外部指令。
ꢀ
ꢀ
ꢀ
往 Page 寄存器写 80hex 初始化 SPI 接口
读 Command 寄存器,如果它的值为 00hex,则 SPI 接口已经初始化成功
往 Page 寄存器写 0hex 开始使用 SPI 接口
完成接口初始化之后,可以通过往 Page 寄存器写 00hex 切换到线性寻址方式。
12 振荡器电路
图 12-1:晶振连接方法
在同步时序电路中,提供给 FM1702SL 的时钟作为编码和解码的时基。因此,
稳定的时钟频率对于正常的工作至关重要。最好使用内部时钟振荡器以及推荐的
电路来满足这一要求。如果使用外部时钟源,时钟信号必须加到 OSCIN 管脚。
在这种情况下,必须注意时钟的占空比以及抖动,时钟信号的品质必须得到保证。
时钟信号应该满足 19.5.2 中所要求的。
注意:我们不推荐使用外部时钟源。
13 发射管脚 TX1 和 TX2
从 TX1 和 TX2 发射出去的是调制过的 13.56MHz 载波信号。辅以几个无源器件
来匹配和滤波,它就可以直接驱动天线(见 18 章)。为此,输出电路的内部阻抗
被设计得非常小。通过配置 TxControl 寄存器可以控制 TX1 和 TX2 的输出信号。
13.1 配置 TX1 和 TX2
下表说明了 TX1 的可能配置情况:
TxControl 配置情况
包络信号
TX1 上的信号
TX1RFEn
0
1
1
X
0
1
低
低
13.56 MHz 载波
表 13-1:配置管脚 TX1
下表说明了 TX2 的可能配置情况:
Register Configuration in TxControl
包络
信号
TX2 上信号
TX2RFEn
TX2CW
InvTX2
0
X
X
X
0
低
调制后 13.56 MHz 的信号
0
1
13.56 MHz 载波
调制后 13.56 MHz 的信号,
与 TX1 有 180° 相移
13.56 MHz 载波, 与 TX1
有 180° 相移
0
0
1
1
1
0
1
X
X
13.56 MHz 载波
1
13.56 MHz 载波, 与 TX1
有 180° 相移
表 13-2:TX2 管脚的配置
13.2 工作距离与功耗的关系
用户可以通过调整天线驱动电压 TVDD,在最大工作距离和使用不同的天线匹配
电路的功耗之间找到一个平衡点。
13.3 脉冲宽度
通过将数据按照 Miller 码编码,数据信息包含在包络中传输到卡。而且,Miller
码的每一个停顿也被编码成特定长度的脉冲。通过配置 ModWidth 寄存器可以调
整这一脉冲的宽度。参考下面的公式:
ModWidth +1
TPulse = 2
fc
其中,fc=13.56MHz。
14 接收电路
14.1 概述
FM1702SL采用了正交解调电路来解调RX 脚上的 ISO 14443 标准的副载波信号。
ISO 14443-A 副载波信号是 Manchester 编码、ASK 调制信号。正交解调器使用
两个不同的时钟:Q 时钟和 I 时钟(相差 90 度)。两路副载波信号被放大、滤波后
经相关/求值/数字化电路解调后送入数字模块。
在信号处理过程中可以进行各种调整获得最佳性能。
14.2 信号接收过程
接收过程包括以下几个步骤:
首先对 13.56MHz 的载波信号进行正交解调,建议 Q 时钟进行自动校准(见 14.3.1)
获得最佳效果, 解调后的信号被增益可调的放大器放大。相关电路计算了接收信
号与预期值的相似度,Bit phase 寄存器决定了发射器和接收器时钟的相差。在求
值和数字化电路中检测有效比特且把结果送入 FIFO 寄存器。
14.3 接收器操作
通常,缺省设置可以使 FM1702SL 与卡进行数据传输。然而,在一些特定环境
里用户设置可以获得更好的效果。
14.3.1 Q 时钟自动校准
接收器正交解调的概念是产生 I 时钟和与之相差 90 度的 Q 时钟。为了获得最佳
的解调性能,Q 时钟和 I 时钟必须相差 90 度。FM1702SL 复位后自动进行校准。
ClkQCalib 值为 0 时, Transceive 命令结束后可以进行自动校准; ClkQCalib 值为 1 时,
禁止了除复位外所有的自动校准。也可以由软件通过设置 ClkQCalib 为 1 来进行自
动校准。
Q 时钟自动校准持续 65 个振荡周期(约 4.8µs), ClkQDelay 值正比于 Q 时钟与 I 时
钟的相差, 状态标识 ClkQ180Deg 表明 Q 时钟与 I 时钟的相差超过 180 度。
注意:
ꢀ
ꢀ
ꢀ
复位初始值设置了复位后 Q 时钟为自动校准。
ClkQCalib 设置为 1 可以永久禁止自动校准。
可以通过微处理器向 ClkQDelay 写数据,目的是为了禁止自动校准且通过软
件进行预设置。注意,通过软件设置延迟值时 ClkQCalib 必须已经被设置为
1 且至少经过了 4.8µs 的时间间隔。如果 ClkQCalib 为 0 时,设置的延迟值将
在下一个自动校准阶段被刷新。
14.3.2 放大器
解调信号经过可调放大器的放大可以进行性能优化。通过 Gain[1:0]寄存器调
整放大器的增益,下面是可选的增益因子:
寄存器设置
增益因子 [dB] (模拟结果)
0
1
2
3
20
24
31
35
表14-1:内部放大器的增益因子
14.3.3 相关电路
相关电路计算了接收信号与期望信号之间的匹配度, 包括Q和I两路通道。对于每
一路输入信号,相关器有两路输出,所以共有四个输出信号。相关电路需要卡信
号的相位信息来进行性能优化, 该信息由微处理器通过寄存器BitPhase [7:0]来设
置, 该值确定了发射器与接收器时钟的相位关系(tBitPhase =1/13.56 MHz的倍
数)。
14.3.4 求值及数字化电路
对 Manchester 码信号的每个 bit-half, 相关结果被求值。求值及数字化电路从两个
bit-half 的信号强度确定该比特是否有效,如果有效则确定它的值或是否包含冲
突。
为了优化,用户可以选择下面的标准:
ꢀ
MinLevel:确定了强 bit-half 有效的最低信号强度。
CollLevel:确定了弱 bit-half 产生冲突的最低信号强度。如果信号强度低
于该值,1 和 0 可以确定。
ꢀ
CollLevel 确定了相应于强 half-bit 幅度的最低信号强度。
数据传输结束后,卡必须要在一定时间间隔(帧保护时间, ISO14443 标准)后才可
以发送响应,通过 RxWait 寄存器设置该时间长度, RxWait 寄存器确定数据传输给
卡后几个比特时间打开接收机。
如果 RcvClkSelI 寄存器设置为 1,相关器和求值电路采用 I 时钟;如果设置为 0,则
采用 Q 时钟。
注意: 建议使用默认的 Q 时钟。
15 串行信号开关
15.1 概述
FM1702SL 包括两个主要模块:数字模块(包括状态机、编码器和解码逻辑等),
模拟模块(包括调制器、天线驱动器、接收机和放大电路)。这两模块的接口设计
可以将接口信号送入 MFIN
15.2 时序信号开关的相关寄存器
DecoderSource 标识确定内部 Manchester 解码器输入信号的方式:
DecoderSource
解码器输入信号
0
1
常数 0
模拟部分的输出,缺省配置。
直接连接到MFIN, Manchester 码信号调制的847.5 kHz副载波
信号。
2
3
直接连接到MFIN, Manchester 码信号。
表15-1:DecoderSource值
ModulatorSource 确定了所发射的 13.56MHz 载波的调制信号,该信号驱动 TX1 及
TX2 脚:
ModulatorSource
调制器的输入信号
常数 0 ( TX1及TX2脚无载波 ).
常数 1 (TX1及TX2脚有持续的载波).
0
1
2
3
内部编码器的调制信号(包络), 缺省配置.
直接连接到MFIN, Miller 码信号.
表15-2:ModulatorSource值
16 FM1702SL 指令集
16.1 概述
FM1702SL 的行为由一个内部状态机决定,该状态机可执行一组专门的指令集。
将某条指令代码写入指令寄存器可启动一个相应的命令的执行。
某些指令执行需携带参数和(或)数据,这些参数和数据主要通过 FIFO 进行交
换。
16.2 命令行为简介
ꢀ
ꢀ
需要将数据流作为输入的命令会直接处理它在 FIFO 缓存找到的数据。
需要特定数量的参数的命令只有在接收到数量正确的参数后,才会开始
执行。
ꢀ
ꢀ
在开始执行命令时 FIFO 缓存不会自动清空,因而,可以先将部分参数
和(或)数据写入 FIFO 缓存,然后再开始命令的执行,同时写入剩余
的参数和(或)数据。
由微处理器写入指令寄存器新的指令代码例如:Idle-Command 可以中断
当前正在执行的除了 StartUp-Command 之外的任何命令.
16.3 FM1702SL 命令简介
16.3.1 基本说明
指令
代码
通过 FIFO 传递的 返回的 见相关
命令
功能
(16 进
制)
参数和数据
数据
的章节
运行复位和初始化过程
注意:软件不能执行这条命
令,只能通过上电或冷复位来
做。
StartUp
3F
-
-
16.3.2
空指令,用来取消当前命令执
行。
Idle
00
-
-
-
16.3.3
16.4.1
Transmit
1A
发送 FIFO 缓存数据
激活接收电路。
数据流
注意:内部状态机等待配置在
RxWait 寄存器中的时间过去
后,才能真正启动接收
注意:这条命令和
Receive
16
-
数据流 16.4.2
Transmit-Command 没有时序
关系,所以可以单独用于测试
目的。
发送 FIFO 缓存数据,发送完
后自动激活接收电路。
注意:内部状态机等待配置在
RxWait 寄存器中的时间过去
后,才能真正启动接收
注意:这条命令是发送和接收
的组合。
Transceive
1E
数据流
数据流 16.4.3
起始地址 LSB
起始地址 MSB
数据流
从 FIFO 缓存读取数据,并且
写入内部 E2PROM。
WriteE2
ReadE2
01
03
-
16.5.1
从内部 E2PROM 读取数据,并
且写入 FIFO 缓存。
起始地址 LSB
起始地址 MSB
字节数
数据流 16.5.2
注意:密钥不能读出。
基本说明(续上页)
将密钥从 E2PROM 复制到 key
缓存。
起始地址 LSB
起始地址 MSB
Byte0(LSB)
Byte1
LoadKeyE2
0B
-
-
16.8.1
16.8.2
将密钥从 FIFO 缓存复制到
key 缓存。
LoadKey
19
…
Byte10
Byte11(MSB)
卡认证命令
卡的块地址
执行 Crypto1 算法的认证过程 卡序列号的 LSB
Authent1
0C
-
16.8.3
的第一步。
卡序列号的 Byte1
卡序列号的 Byte2
卡序列号的 MSB
执行 Crypto1 算法的认证过程
的第二步。
从 E2PROM 读取数据,用于初
始化寄存器。
Authent2
14
07
-
-
-
16.8.4
16.6.1
起始地址 LSB
起始地址 MSB
LoadConfig
激活 CRC 协处理器。
注意:CRC 计算结果可从
CRCResultLSB 和
CalcCRC
12
数据流
-
16.6.2
CRCResultMSB 寄存器中读
到。
表 16-1:FM1702SL 命令说明
16.3.2 STARTUP COMMAND 3FHEX
指令代码
通过 FIFO 传递 返回的
命令
功能
(16 进制)
的参数和数据
数据
运行复位和初始化过程。
StartUp
3F
注意:软件不能执行这条命令,
只能通过上电或硬件复位来做。
-
-
StartUp-Command 运行复位和初始化过程,无需发送或接收数据。不能被微处理
器激活,只能在发生下列事件后自动启动:
ꢀ
ꢀ
ꢀ
DVDD 管脚上引起上电复位
DVDD 管脚上引起上电复位
RSTPD 管脚上下降沿
在复位过程中,异步复位定义特定寄存器位;初始化过程中,用 E2PROM 中的
值定义特定寄存器。
当 StartUp-Command 结束后,Idle-Command 自动插入。
注意:
ꢀ
微处理器不准在 FM1702SL 正在执行 StartUp-Command 时进行写入操
作 。 微 处 理 器 需 读 取 命 令 寄 存 器 (Command-Register) 中 是 否 为
Idle-Command 以确保 StartUp-Command 操作结束。(见 11.4 章)
当 StartUp-Command 执行时,只能读 page0 中的寄存器。
StartUp-Command 不能被微处理器中断。
ꢀ
ꢀ
16.3.3 IDLE COMMAND 00HEX
指令代码
通过 FIFO 传递 返回的
命令
功能
(16 进制)
的参数和数据
数据
Idle
00
空指令,用来取消当前命令执行。
-
-
Idle-Command 将 FM1702SL 切换到空闲状态,在这个状态中等待下一条命令。
无需发送或接收数据。当前指令执行完成后,FM1702SL 自动进入空闲状态,同
时将 IdleIRq 位置起来发出中断申请。如果由微处理器执行,可以取消当前正在
执行的除了 StartUp-Command 之外的任何命令,但此时中断申请不会发出。
注意:用 Idle-Command 中断命令不会同时清 FIFO 中数据。
16.4 通讯命令
FM1702SL 全兼容 ISO14443,因此该读卡机芯片指令集非常灵活和全面。以下
几个章节会讨论和卡通讯的命令,最后是三重认证过程。
16.4.1 TRANSMIT COMMAND 1AHEX
指令代码
(16 进制)
1A
通过 FIFO 传递的
参数和数据
数据流
命令
功能
返回的数据
Transmit
发送 FIFO 缓存数据
-
Transmit-Command 从 FIFO 缓存中去数据然后传递到发送器。无需返回数据。只
能由微处理器启动
16.4.1.1 使用 Transmit-Command
从下列中选择发送数据的顺序:
1. 当 处 于 空 闲 状 态 时 , 将 所 有 需 要 发 送 的 数 据 写 入 FIFO , 而 后 , 将
Transmit-Command 的指令码写入命令寄存器,启动发送。
注意:这种方法最大可传输 64 字节。
2. 先将 Transmit-Command 的指令码写入命令寄存器。由于 FIFO 中无数据,则
虽然发送使能,但发送过程只有等 FIFO 中写入第一字节数据才被启动。微
处理器必须及时写入下一数据以保证在 RF 界面上有数据流传递。
注意:此方法可以传递任意长度数据流,不过要求数据及时写入 FIFO 缓存。
3. 当 处 于 空 闲 状 态 时 , 将 部 分 需 要 发 送 的 数 据 写 入 FIFO , 而 后 , 将
Transmit-Command的指令码写入命令寄存器,启动发送。如果当前FM1702SL
处于 Transmit-Command 工作状态中,则可以由微处理器向 FIFO 写入数据,
发送器则可以将这些数据添加到发送的数据流中。
注意:此方法可以传递任意长度数据流,不过要求数据及时写入 FIFO 缓存。
如果发送器为保证 RF 界面上数据流的连续性,请求发送下一数据,但 FIFO 中
为空,则 Transmit-Command 自动停止,内部状态机由发送状态跳回空闲状态。
注意:如果微处理器将写入 Idle-Command 和其他命令写入命令寄存器,覆盖了
Transmit-Command,下一个时钟发送即停止。这会导致不符合 ISO14443-A 的信
号产生。
16.4.1.2 RF 通道冗余校验及帧格式
每次发送的帧由 SOF(帧头)、数据流、EOF(帧尾)三个阶段依次构成,可以
通过 PrimaryStatus-Register 的 ModemState (见 16.4.4 章)来观察这些不同阶段。
如果 ChannelRedundancy-Register 的 TxCRCEn 位被置起,则 FM1702SL 计算出
CRC添加到数据流后。CRC计算方法由 ChannelRedundancy-Register中设置决定。
产 生 奇 偶 校 验 也 由 ChannelRedundancy-Register 中 的 设 置 ( ParityEn 位 和
ParityOdd 位)决定。
16.4.1.3 发送面向位的帧
通过将 TxLastBits 位设为非 0 值,发送器可以配置成最后发送一个不完整的字节。
见下图:
图 16-1 :发送面向位的帧
上图也同时展示了如果如果 ChannelRedundancy-Register 的 ParityEn 位被置起,
所由完整传送的字节都由奇偶校验位,但最后一个不完整的字节没有。发送结束
后,TxLastBits 位被自动清成 0。
注意:如果 TxLastBits 位不为 0,则必须通过清 ChannelRedundancy-Register 的
TxCRCEn 位来禁止 CRC 产生。
16.4.1.4 发送长于 64 字节的帧
为发送长于 64 字节的帧,微处理器需在 Transmit-Command 执行时向 FIFO 继续
写入数据,内部状态机在开始发送数据流的最后一前时会检查 FIFO 的状态。如
下图:
图 16- 2:发送面向字节的帧的时序
只要内部信号‘Accept Further Data’为 1,写入 FIFO 的数据就会被添加到发送数
据流后。如果为 0,则发送结束,此时才写入的数据不会被发送,而只保留在 FIFO
缓存中。
注意:如果使能奇偶校验位的产生(即 ParityEn 位被置起),奇偶校验位时是最
后一位被发送的,这样会使‘Accept Further Data’信号多持续一位时间。
如果 TxLastBits 位不为 0,最后一字节不被完整发送,而只发送 TxLastBits 位定
义的起始于最低有效位的位数。
这样,内部状态机会提前检查 FIFO 状态,如下图:
图 16-3:发送面向位的帧的时序
在上图的例子中,发送 Bit 3 后停止。如果经过配置,会加上 EOF。
上图还显示了在 FIFO 状态在被检测前 FIFOData-Register 正好有一个写操作,
这就造成了‘FIFO empty’信号再次跳为 0,由此内部信号‘Accept Further Data’维
持为 1,刚写的一个字节则通过 RF 界面被发送出去。
信号‘Accept Further Data’只能由‘Check FIFO empty’功能改变。这个功能作用是
在预期发送的最后一位前一位检测‘FIFO empty’信号。
帧定义
检测位置
8 位,带奇偶校验
8 位,不带奇偶校验
x 位, 不带奇偶校验
第 8 位
第 7 位
第(x - 1)位
16.4.2 RECEIVE COMMAND 16HEX
指令代码
(16 进制)
16
通过 FIFO 传递的
参数和数据
命令
功能
返回的数据
数据流
Receive
激活接收电路。
-
Receive-Command 激活接收电路,所有从 RF 界面接收的数据可通过 FIFO 返回。
可由微处理器启动,也可由执行 Transceive-Command 自动启动。
注意:这条命令和 Transmit-Command 没有时序关系,所以可以单独用于测试目
的。
16.4.2.1 使用 Receive-Command
Transmit-Command 启动后,每一个位时钟会使 RxWait-Register 中的值减一。当
从 3 减到 1 使,模拟部分的接收电路准备好并被激活。当计数值到 0,接收电路
开始监视从 RF 界面接收的信号。如果信号电平超过 MinLevel-Register 中定义的
水平时,接收电路于是开始译码。如果在接收电路探测到输入管脚 Rx 再也没有
信号,则结束接收,译码器会置起 RxIRq 位表示申请中断。
检测 PrimaryStatus-Register 的 ModemState,可监视发送过程的不同阶段。(见
16.4.4 章)
注意:由于 RxWait-Register 中必须计数从 3 到 0 以有时间初始化模拟部分的接收
电路,所以该寄存器至少置 3。
16.4.2.1 RF 通道冗余校验及帧格式
译码器在开始接收数据流等待 SOF。当检测到,它就激活串变并转换器并收集输
入的数据位。每一个完整的字节都被传递到 FIFO。如果检测到 EOF 或者输入信
号电平低于 RxThreshold-Register 中定义的 MinLevel 值时,接收和译码停止,
Idle-Command 自动插入,随之产生给微处理器的中断申请并置起相应状态标志。
如果 ChannelRedundancy-Register 的 RxCRCEn 位被置起,接收到的数据中应包
括 CRC 块,块的大小由 ChannelRedundancy-Register 的 CRC8 位决定是一个或
两个字节。
注意:如果接收到的 CRC 块正确,就不会将它传递到 FIFO 缓存。这通过将收
到的数据串行移过一个一字节或两字节(由定义的 CRC 方法决定)长的内部缓
存实现。CRC 块将保留在内部缓存中,最后在延迟一个或两个字节时间后,FIFO
中含有除了 CRC 块的所有数据。如果 CRC 校验失败,则将所有数据包括错误的
CRC 块送入 FIFO。
ChannelRedundancy-Register 中的 ParityEn 位置起,收到的每一字节后应当跟一
个奇偶校验位。如果 ParityOdd 位置起,预期的校验为奇校验,否则为偶校验。
16.4.2.2 冲突检测
在选卡阶段,如果有不止一张的卡,就会同时应答。FM1702SL 支持 ISO14443-A
规定的算法,通过所谓防冲突循环来解决卡序列号的数据冲突问题。该算法的基
础是检测位冲突。
现在使用的位编码机制即 Manchester-coding 支持位冲突检测。如果在某位的前
半和后半部分都检测到副载波调制,就会发送不是一个 1 或一个 0 而是一位冲突
信号。FM1702SL 使用 CollLevel 的设置来区分 1 或 0 和一个位冲突,即当一位
收到的数据中较小的半位大于 CollLevel 的定义,则说明检测到一个位冲突。
如果数据位检测到一个位冲突,则错误标志 CollErr 置起;如果检测到奇偶校验
有一个位冲突,则错误标志 ParityErr 置起。
接收电路不受检测到的冲突位的制约,继续接收输入的数据,译码器会发送 1
给检测到冲突的位。
注:作为例外,如果 ZeroafterColl 位置起,所有第一个冲突位后接收到的位无论
冲突或不冲突,都被强制为 0。这个特点可以简化软件实现兼容 ISO14443-A 防
冲突机制。
当帧的第一位冲突被检测到,该位位置会存放在 CollPos-Register。
冲突位对应值如下:
冲突位
CollPos-Register 的值
SOF
LSByte 的 LSBit
…
0
1
…
8
LSByte 的 MSBit
第二个 Byte 的 LSBit
…
第二个 Byte 的 MSBit
第二个 Byte 的 LSBit
…
9
…
16
17
…
表 16- 1:位冲突位置的返回值
由于奇偶校验位的冲突根据定义跟随在数据位的冲突后,所以奇偶校验位不包括
在 CollPos 中。如果在 SOF 中检测到位冲突,则报告帧错误,而且没有数据传递
到 FIFO,在这种情况下,接收电路继续监视输入信号直到收到错误输入数据流
的结尾,产生正确的通知信号给微处理器。这将帮助微处理器决定什么时候允许
发送数据给卡。
16.4.2.3 接收面向位的帧
接收电路可以处理含有不完整字节的数据流,支持面向位的帧需使用以下值:
ꢀ
RxAlign 给第一个输入字节选择一个位偏移量,例如:如果 RxAlign 被设
为 3,前 5 位被传递到 FIFO 缓存,接下来的位按字节打包并传递。完成
接收后,RxAlign 被自动清空。
ꢀ
TxLastBits 位返回最后接收一字节的有效位数,例如:如果在接收命令结
束后 TxLastBits 位等于 5,说明最低 5 位有效。
只有帧错误标志 FrameErr 没有置起,TxLastBits 位才有效;如果 RxAlign 不为 0
且 ParityEn 有效,第一个奇偶校验位会被忽略而不被校验。
16.4.2.4 通讯错误
下表列出了错误标志建立条件:
原因
置起的标准位
FramingErr
CRCErr
接收的数据没有 SOF
CRC 块不等于计算值
接收到数据长度小于 CRC 块
奇偶校验位不等于计算值
检测到冲突
CRCErr
ParErr
CollErr
表 16- 2:通讯错误
16.4.3 TRANSCEIVE COMMAND 1EHEX
指令代码
通过 FIFO 传递的
参数和数据
返回的数
据
命令
功能
(16 进制)
发送 FIFO 缓存数据,发送
完后自动激活接收电路。
Transceive
1E
数据流
数据流
Transceive-Command 先执行 Transmit-Command(见 16.4.1 章),然后自动启动
Receive-Command(见 16.4.2 章),所有需发送的数据传递到 FIFO 缓存,所有接
收的数据也传递到 FIFO 缓存。它只能由微处理器启动。
注意:RxWait 寄存器定义发送最后一位到激活接收电路的时间,可用来调整发送
和接收之间的时序关系,此外,BitPhase 寄存器定义发送电路和接收电路时钟之
间的相移。
16.4.3.1 与卡通讯的状态
发送器和接收器的实际状态可从通过 PrimaryStatus-Register 的 ModemState 得
知。
下列是 ModemState 内部状态分配如下表:
ModemState
状态名
描述
由于发送器和接收器被启动或接收器没有输入数据,所
有都不在工作状态。
000
Idle
001
010
011
TxSOF
TxData
TxEOF
发送 SOF
发送 FIFO 里的数据(或冗余检查位)
发送 EOF
GotoRx1
GotoRx2
PrepareRx
AwaitingRx
Receiving
当接收器启动,通过中间状态
当接收器结束,通过中间状态
等待 RxWait 寄存器定义的时间。
接收器激活;在 Rx 引脚等待输入信号
接收数据
100
101
110
111
表 16-3:ModemState 含义
16.4.3.2 与卡通讯的状态机
图 16-4:与卡通讯的状态机
16.5 E2PROM 访问命令
16.5.1 WRITEE2 COMMAND 01HEX
16.5.1.1 概述
指令代码
通过 FIFO 传递的参数和数 返回的
命令
功能
(16 进制)
据
数据
从 FIFO 缓存读取数
据 , 并 且 写 入 内 部
E2PROM。
起始地址 LSB
起始地址 MSB
数据流
WriteE2
01
-
WriteE2-Command 将 FIFO 中前两个字节看作 E2PROM 开始地址,余下的任何
数据被看作数据并对 E2PROM 从给定的开始地址开始编程。该命令不返回数据。
它只能由微处理器启动,而且不能自动停止,只能用微处理器插入 Idle-Command
中止。
16.5.1.2 编程过程
在一个编程周期内可对 E2PROM 的一个到 16 个字节进行编程,一个编程周期所
需时间为 8ms。
内部状态机将在 FIFO 中准备的数据复制到 E2PROM 数据缓存,E2PROM 数据缓
存为 16 个字节,正好等于 E2PROM 块的大小。当 E2PROM 数据缓存写满或 FIFO
中数据全部读出,启动一个编程周期。
只要在FIFO缓存中有未处理的字节或处于一个编程周期中,标志E2Ready为0。
如果FIFO中所有数据都编程进E2PROM,E2Ready置为1,同时中断申请标志TxIRq
也置1,用来产生编程结束的中断。
E2Ready 置为 1,可用用微处理器插入 Idle-Command 中止 WriteE2-Command。
注意:当E2Ready为0时,E2PROM还处在编程过程中,WriteE2-Command不可以
被任何命令中断。
16.5.1.3 时序图
下图以写 5 个字节为例说明了编程过程:
图 16-5:E2PROM 编程的时序图
解释:假定 FM1702SL 在微处理器写入 Byte 1 之前只读到 Byte 0(tprog,del = 300
ns),FM1702SL 开始了一次 8ms 的编程过程,同时微处理器将 Byte 1 到 Byte 4
写入 FIFO。假定开始地址 16CHEX,Byte 0 存放在此;然后 FIFO 中的数据再复
制到 E2PROM 数据缓存,拷贝到 Byte 3 时,FM1702SL 发现此时 E2PROM 地址
为 16FHEX,已经到了 E2PROM 块的最后一字节了。所以下次,Byte 4 被编程至
地址 170HEX。最后一个字节编程完后,标志位 E2Ready 和 TxIRq 置起,表示当
前编程过程结束。
虽然所有数据都已写入 E2PROM,但 WriteE2-Command 不会自动退出。如果此
时写入新的数据到 FIFO,编程过程就会在地址 171HEX 继续。使用 Idle-Command
可以使其退出。
16.5.1.4 WriteE2-Command 相关错误标志
E2PROM 第 0 块(地址 00HEX ~ 0FHEX)禁止编程,如果对这些地址编程就会
造成错误标志 AccessErr 置起,也不会有编程过程启动。若地址超过 1FFHEX,则
将其和 1FFHEX 相与后作为实际的操作地址(要了解 E2PROM 组织结构,参见第
6 章)。
16.5.2 READE2 COMMAND 03HEX
16.5.2.1 概述
指令代码
通过 FIFO 传递的参数和数 返回的
命令
功能
(16 进制)
据
数据
从内部 E2PROM 读取
数据,并且写入 FIFO
缓存。
起始地址 LSB
起始地址 MSB
字节数
ReadE2
03
数据流
ReadE2-Command 将 FIFO 中前两字节作为 E2PROM 读操作的起始地址。下一个
字节指定要读出的字节数。
当在 FIFO 中有以上三个参数后,从起始地址开始指定字节数从 E2PROM 读出到
FIFO 缓存。
ReadE2-Command 只能由微处理器启动,当指定数据读出后自动中止执行。
16.5.2.2 READE2-Command 相关错误标志
禁止读 E2PROM 地址 08HEX ~ 1FHEX(密钥 key 保存区),如果读这些地址,就
会造成错误标志 AccessErr 置起。。若地址超过 1FFHEX,则将其和 1FFHEX 相与后
作为实际的操作地址(要了解 E2PROM 组织结构,参见第 6 章)。
16.6 其他命令
16.6.1 LOADCONFIG COMMAND 07HEX
16.6.1.1 概述
指令代码
通过 FIFO 传递的参数 返回的
命令
功能
(16 进制)
和数据
数据
从 E2PROM 读取数据,用
于初始化寄存器。
起始地址 LSB
起始地址 MSB
LoadConfig
07
-
LoadConfig-Command 将 FIFO 中前两个字节作为 E2PROM 读操作的起始地址,
当 FIFO 中的两个参数有效时,从 E2PROM 该起始地址开始的 32 字节会复制到
FM1702SL 控制和配置寄存器内。LoadConfig -Command 只能由微处理器启动,
当所有相关寄存器配置后自动中止执行。
16.6.1.2 寄存器分配
从 E2PROM 该起始地址开始的 32 字节会复制到 FM1702SL 地址为 10HEX
2FHEX 的寄存器内(要了解 E2PROM 组织结构,参见第 6 章)。
~
注意:寄存器分配的过程和芯片初始化的过程是相同的(见 11.3 章)。不同点在
于,芯片初始化时 E2PROM 起始地址固定为 10HEX(第 1 块,Byte 0),而
LoadConfig-Command 可以选择起始地址。
16.6.1.3 LOADCONFIG-Command 相关错误标志
合法的 E2PROM 起始地址为 10HEX ~ 60HEX
。
禁止复制 E2PROM 块 08HEX ~ 1FHEX(密钥 key 保存区)的内容,如果读这些
地址,就会造成错误标志 AccessErr 置起。若地址超过 1FFHEX,则将其和 1FFHEX
相与后作为实际的操作地址(要了解 E2PROM 组织结构,参见第 6 章)。
16.6.2 CALCCRC COMMAND 12HEX
16.6.2.1 概述
指令代码
通过 FIFO 传递的 返回的
命令
功能
(16 进制)
参数和数据
数据
CalcCRC
12
激活 CRC 协处理器。
数据流
-
CalcCRC-Command 把 FIFO 中所有数据作为 CRC 协处理器输入字节,所有在命
令启动前存放在 FIFO 中的数据都会被处理。该命令不返回通过 FIFO 任何数据,
CRC 寄存器的内容可从 CRCResultLSB 和 CRCResultMSB 寄存器中读到。它只能
由微处理器启动,而且不能自动停止,只能用微处理器插入 Idle-Command 中止。
如果 FIFO 中没有数据,在停止前 CalcCRC-Command 会一直等待有新的数据写
入 FIFO 作为输入。
16.6.2.2 CRC 协处理器设置
使用 CRC 协处理器前,需配置下列参数:
参数
值
位
寄存器
CRC 寄存器长度
8 位或 16 位 CRC
符合 ISO14443-A 或
ISO/IEC3309 的算法
CRC8
ChannelRedundancy
CRC 算法
CRC3309
ChannelRedundancy
CRCPresetLSB
CRCPresetMSB
CRCPresetLSB
CRCPresetMSB
CRC 复位值
任意
表 16-4 :CRC 协处理器相关参数
8 位 CRC 多项式为:x8 + x4 + x3 +x2 + 1。
16 位 CRC 多项式为:x16 + x12 + x5 + 1。
16.6.2.3 CRC 协处理器的状态标志
状态标志 CRCReady 表示 CRC 协处理器已处理完所有 FIFO 中的数据。当
CRCReady 置起,TxIRq 会置起产生中断申请,支持 CRC 协处理器的中断驱动的
使用方法。
当 CRCReady 和 TxIRq 置为 1,CRCResultLSB、CRCResultMSB 寄存器和标志
CRCErr 分别有效。
CRCResultLSB、CRCResultMSB 寄存器保存 CRC 寄存器的内容,标志 CRCErr
指示处理数据的正确性。
16.7 命令执行过程中的错误处理
如果命令执行中产生错误,通过将 PrimaryStatus 寄存器内的状态标志 Err 置起
来表示,微处理器通过读 ErrorFlag 中的状态标志可以知道错误产生的原因。
ErrorFlag 寄存器中的错误标志
KeyErr
相关命令
LoadKeyE2, LoadKey
WriteE2, ReadE2, LoadConfig
没有特定的命令
AccessError
FIFOOvl
CRCErr
Receive,Transceive,CalcCRC
Receive,Transceive
FramingErr
ParityErr
Receive,Transceive
CollErr
Receive,Transceive
表 16-5:错误标志纵览
16.8 安全命令
16.8.1 LOADKEYE2 COMMAND 0BHEX
16.8.1.1 概述
指令代码
通过 FIFO 传递的 返回的
命令
功能
(16 进制)
参数和数据
起始地址 LSB
起始地址 MSB
数据
将密钥从 E2PROM 复制到 key 缓
存。
LoadKeyE2
0B
-
LoadKeyE2-Command 将 FIFO 中前两字节作为 E2PROM 读操作的起始地址。
E2PROM 起始地址开始的字节作为密钥,需符合 6.4.1 规定的正确密钥格式。当
FIFO 中有两个字节数据后,该命令则启动。LoadKeyE2-Command 只能由微处理
器启动,当整个密钥复制从 E2PROM 到密钥缓存区后自动中止执行。
16.8.1.2 LOADKEYE2-Command 相关错误标志
如果密钥的格式不正确(见 6.4.1),密钥缓存区保存的是一个未定义的值,同时
KeyError 置起。
16.8.2 LOADKEY COMMAND 19HEX
16.8.2.1 概述
指令代码
通过 FIFO 传递的 返回的
命令
功能
(16 进制)
参数和数据
Byte0(LSB)
Byte1
数据
将密钥从 FIFO 缓存复制到 key 缓
存。
LoadKey
19
…
-
Byte10
Byte11(MSB)
LoadKey-Command 将 FIFO 中前十二个字节作为密钥,需符合 6.4.1 规定的正确
密钥格式。
当 FIFO 中有十二个字节后,如果检查后格式合法则被拷贝到密钥缓存区。(见
17.2)。
LoadKey-Command 只能由微处理器启动,当整个密钥复制从 FIFO 到密钥缓存区
后自动中止执行。
16.2.2.2 LOADKEY-Command 相关错误标志
所有所需的数据被从FIFO复制到密钥缓存区后,如果密钥的格式不正确(见6.4.1
章),密钥缓存区保存的是一个未定义的值,同时 KeyError 置起。
16.8.3 AUTHENT1 COMMAND 0CHEX
16.8.3.1 概述
指令代码
通过 FIFO 传递的 返回的
命令
功能
(16 进制)
参数和数据
卡认证命令
卡的块地址
数据
执行 Crypto1 算法的认证过程的 卡序列号的 LSB
Authent1
0C
-
第一步。
卡序列号的 Byte1
卡序列号的 Byte2
卡序列号的 MSB
Authent1-Command 是一条特殊的 Transceive-Command:它需要 6 个参数,前两
个参数被发送到卡,卡的回发不传递给微处理器,而用作检验卡的真实性和证明
FM1702SL 对卡的真实性。
Authent1-Command只能由微处理器启动,该命令状态转换同Transceive-Command
(见 16.4.3 章)。
16.8.4 AUTHENT2 COMMAND 14HEX
16.8.4.1 概述
指令代码
通过 FIFO 传递的 返回的
命令
功能
(16 进制)
参数和数据
数据
执行 Crypto1 算法的认证过程的
第二步。
Authent2
14
-
-
Authen2-Command 是一条特殊的 Transceive-Command。无需任何参数,FM1702SL
内部产生需发送给卡的数据。卡的回发不传递给微处理器,而用作检验卡的真实
性和证明 FM1702SL 对卡的真实性。
Authent2-Command只能由微处理器启动,该命令状态转换同Transceive-Command
(见 16.4.3 章)。
16.8.4.2 AUTHENT2-Command 的作用
如果 Authen2-Command 通过,卡和 FM1702SL 的认证都通过,于是控制位
Crypto1On 自动置位。该位置起后,所有与卡的通讯都使用 Crypto1 算法加密后
进行。如果 Authen2-Command 失败,Crypto1On 自动清零。
注:标志 Crypto1On 不能用软件置位,只有通过 Authen2-Command 后硬件置位
才行。软件可以清该位使以后的通讯恢复成明文。
注意:Authen2-Command 必须在 Authent1-Command 成功通过后执行(见 16.8.3
章),此外,密钥缓存区的密钥必须和卡上的相同。
17 认证及数据加密传输
17.1 概述
FM1702SL 使用的认证算法称为三重认证。它基于密钥长度为 48 比特的私有加
密数据流。如欲获取标准卡片的数据,有关相应密要的知识是必需的。为了能够
成功进行卡的认证以及后续对储存于卡 EEPROM 中的数据进行操作,FM1702SL
必须能够获得正确的密钥。当一张卡按照 ISO14443A 协议被选中后,用户可以
按照标准协议继续操作。这种情况下,必须执行卡片认证。这一过程在执行
Authent1(参考 16.8.3)和 Authent2(参考 16.8.4)指令时自动完成。在卡认证
的过程中,加密算法被初始化,在成功认证之后与卡的通讯处于加密状态。
17.2 密钥处理
在认证指令执行过程中,FM1702SL 从内部密钥缓冲器中读取密钥。密钥总是从
密钥缓冲器中获取。因此认证指令无需指明密钥存储地址。当然,在认证指令开
始之前,用户必须保证在密钥缓冲器中已经准备好了密钥。
密钥缓冲器可以通过一下方式加载:
ꢀ
ꢀ
用LoadKeyE2指令从E²PROM中加载
直接由外部处理器通过LoadKey指令从FIFO中加载
17.3 操作三重认证指令
三重加密算法被用于执行标准认证。在密钥缓冲器中必须储存准确的密钥以便能
够进行成功的认证操作。
步骤 1: 通过 LoadKeyE2(参见 16.8.1)或者 LoadKey(参见 16.8.2)加载密
钥到内部密钥缓冲器;
步骤 2: 启动 Authent1 指令(参见 16.8.3),结束以后,检查错误标志来判断
执行结果;
步骤 3: 启动 Authent2 指令(参见 16.8.4),结束以后,检查错误标志以及
Crypto1On 标志来判断执行结果。
17.4 认证算法
FM1702SL 分别支持 MIFARE 三重认证算法
18 典型应用
18.1 电路图
下面是典型应用电路图,天线直接连接到 FM1702SL
图 18-1:应用电路示例:直接天线连接
匹配电路包含一个 EMC 低通滤波器,一个接收电路,天线匹配电路以及天线
18.2 电路描述
18.2.1 EMC 低通滤波器
FM1702SL 系统工作于 13.56MHz 频率下,这一频率产生于一个石英晶体振荡器,
用于驱动 FM1702SL 并且提供给天线 13.56MHz 的载波。但是除了 13.56MHz 以
外,还会有能量以高次谐波的方式往外发射。国际 EMC 规则规定了在一个宽频
范围内发射能量的大小,因此,必须要有一个合适的滤波器过滤输出信号以满足
此规定。
我们强烈推荐使用多层板来实现上述电路的滤波器。低通滤波器由 L0 和 C0 组
成,它们的值由下表给出。
注意:为了得到最好的效果,所有器件的质量至少要达到下表所推荐的范围。
18.2.2 接收电路
FM1702SL 的内部接收电路利用卡的回应信号在副载波的双边带上都有调制这
一概念来进行工作。我们推荐时用芯片内部产生的 VMID 作为 RX 管脚输入信号
的偏置。为了稳定 VMID 的输出,必须在 VMID 和 GND 之间连接一个电容 C4。
接收电路需要在 RX 和 VMID 之间连接一个分压电路。上面的电路图展示了一个
推荐的接收电路。这个接收电路由 R1、R2、C3 和 C4 组成。其值由下表给出。
器件
L0
C0
R1
R2
值
备注
1.0uH±10%
136pF±2%
1kΩ±5%
820Ω±5%
68nF±2%
如 TDK 1R0J
NP0 材料
C3
NP0 材料
表 18-1:EMC 滤波器和接收电路元件值
注意:不推荐适用 X7R 材料的电容
18.3 计算天线线圈的电感
精确计算天线线圈的电感值在实践上石非常困难的,但是可以用下面的公式估
算。我们建议天线采用圆环状或者矩形设计。
l1 …… 一圈导线的长度
D1 …… 导线直径或者 PCB 板敷铜的宽度
K …… 天线形状系数(圆环状:K=1.07;矩形:K=1.47)
ln …… 自然对数
18.3.1 直接连接天线的阻抗匹配
我们推荐使用图 20-1 所示的电路设计天线直接连接的匹配电路。电容 C1 和 C2a、
C2b 的取值依赖于天线的电性能以及环境影响。
下表所示电容值只是一个参考。事实上,它们只是用于调试时的起始值。
天线线圈电感 [uH]
C1 [pF]
C2a [pF]
C2b [pF]
0.8
0.9
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
15
15
15
15
15
15
15
15
270
270
220
180//22
180
180
150
150
120//10
120
330
270
270
220
180//22
180
180
150
150
15
15
15
150
120
120
表 18-2:匹配电路的电容取值
然而,为了优化性能,准确地取值必须通过调试来获得。
上面的表格假设天线线圈的分布电容有 15pF。电容 C1、C2a 和 C2b 应该采用
NP0 电介质而且误差在±2%之内。
实际的天线电感和电容值取决于很多情况比如:
ꢀ
ꢀ
ꢀ
ꢀ
ꢀ
天线的电阻(PCB 类型)
导体的厚度
线与线之间的距离
保护层材料
附近的金属或者铁氧体
19 电性能
19.1 极限参数
符号
参数
MIN
MAX
单位
Tamb,abs
存储温度
-40
+150
°C
DVDD
AVDD
TVDD
直流供电电压
-0.5
6
V
DVDD +
0.5
AVDD +
0.5
Vin,abs
所有数字管脚对 DVSS 绝对电压
RX 管脚对 AVSS 绝对电压
-0.5
-0.5
V
V
VRX,abs
表 19-1:极限参数
19.2 工作条件
工作电压必须满足:DVDD<=AVDD<=TVDD
符号
参数
条件
MIN
TYP
+25
3.3
MAX
+85
3.6
单位
°C
V
Tamb
环境温度
-
-25
3.0
4.5
DVSS = AVSS =
TVSS = 0V
DVDD
数字电路供电电压
5.0
5.5
V
DVSS = AVSS =
TVSS = 0V
DVSS = AVSS =
TVSS = 0V
AVDD
TVDD
模拟电路供电电压
发射电路供电电压
3.0
3.0
3.3
5.0
3.6
5.5
V
V
表 19-2:工作条件
19.3 工作电流
符号
参数
条件
MIN TYP MAX 单位
Idle 指令
Stand By 模式
6
3
9
5
mA
mA
IDVDD
数字电路工作电流
Soft Power Down 模式
Hard Power Down 模式
Idle 指令, 接收器打开
Idle 指令, 接收器关闭
Stand By 模式
Soft Power Down 模式
Hard Power Down 模式
发射连续载波
800
1
25
8
6.5
1
1
1000 µA
10
40
12
9
10
10
150
µA
mA
mA
mA
µA
µA
mA
IAVDD
ITVDD
模拟电路工作电流
发射电路工作电流
TX1
TX1RFEn, TX2RFEn= 1
TX1 TX2 悬 空
和
TX2 悬 空
4.5
65
6
mA
µA
和
130
TX1RFEn, TX2RFEn= 0
表 19-3:工作电流
19.4 管脚特性
19.4.1 输入管脚特性
管脚 MISO,MOSI 有 TTL 输入特性,如下表所示
符号
参数
条件
MIN
MAX
单位
ILeak
输入漏电流
-1.0
+1.0
µA
CMOS: DVDD
3.6 V
TTL: 4.5 < DVDD
<
0.35 DVDD
0.65 DVDD
2.0
V
V
VT
阀值
0.8
表 19-4:典型输入管脚特性
管脚 NSS,SCK 和 MFIN 具有 Schmitt 触发器特性,如下表所示
符号
参数
条件
MIN
MAX
单位
ILeak
输入漏电流
-1.0
1.4
0.65 DVDD
0.8
0.25 DVDD
+1.0
2.0
0.75 DVDD
1.3
0.4 DVDD
µA
V
V
V
V
TTL: 4.5 < DVDD
CMOS: DVDD < 3.6 V
TTL: 4.5 < DVDD
VT+
VT-
正向阀值
负向阀值
CMOS: DVDD < 3.6 V
表 19-5:具有 Schmitt 触发器的输入管脚特性
RSTPD 具有 CMOS Schmitt 特性。此外,它内部有一个 RC 低通滤波器,因此输
入的复位信号有相应延迟。
符号
参数
条件
MIN
MAX
单位
µA
V
V
µs
ILeak
VT+
输入漏电流
正向阀值
负向阀值
传输延迟
-1.0
+1.0
CMOS: DVDD < 3.6 V 0.65 DVDD
CMOS: DVDD < 3.6 V 0.25 DVDD
0.75 DVDD
0.4 DVDD
20
VT-
tRSTPD,p
表 19-6:RSTPD 输入特性
模拟输入管脚 RX 具有如下的电容特性
符号
参数
条件
MIN
MAX
单位
CRX
输入电容
15
pF
表 19-7:RX 输入电容
20.4.2 数字输出管脚特性
管脚 MISO 和 IRQ 具有 TTL 输出特性,如下表所示
符号
参数
CONDITIONS MIN
TYP
MAX
单位
DVDD = 5 V,
2.4
4.9
V
IOH= -1 mA
VOH
输出高电平
DVDD = 5 V,
2.4
4.2
25
V
IOH= -10 mA
DVDD = 5 V,
IOL= 1 mA
400
mV
VOL
IO
输出低电平
DVDD = 5 V,
IOL= 10 mA
DVDD = 5 V
250
400
10
mV
mA
输出电流或灌电流
表 19-8:数字输出管脚特性
20.4.3 天线驱动管脚输出特性
天 线 驱 动 管 脚 TX1 和 TX2 的 输 出 电 阻 在 输 出 高 电 平 时 可 以 通 过 配 置
CwConductance 寄存器的 GsCfgCW 来更改,而在输出低电平时,输出阻抗是固
定的。
在默认配置下,输出特性如下表所示
符号
参数
CONDITIONS
MIN TYP MAX 单位
TVDD = 5.0 V, IOL = 20 mA
TVDD = 5.0 V, IOL = 100 mA
TVDD = 5.0 V, IOL = 20 mA
TVDD = 5.0 V, IOL = 100 mA
连续载波
4.97
4.85
30
V
V
mV
mV
mApeak
VOH
输出高电平
VOL
ITX
输出低电平
输出电流
150
200
表 20-9:天线驱动管脚输出特性
19.5 交流电性能
19.5.1 SPI 接口交流工作说明
符号
参数
MIN
100
100
20
MAX
单位
ns
ns
ns
ns
SCK 低电平宽度
SCK 高电平宽度
SCK 高到数据改变
d 数据改变到 SCK 变高
SCK 低到数据改变
SCK 低到 NSS 变高
tSCKL
tSCKH
tSHDX
tDXSH
tSLDX
tSLNH
20
15
ns
ns
20
表 19-10:SPI 时序说明
t
SCKL
t
SCKH
t
SCKL
SCK
MOSI
t
SHDX
SLDX
t
t
DXSH
t
DXSH
MSB
MSB
LSB
LSB
MI SO
NSS
t
SLNH
图 19-4:SPI 时序图
说明:如果要在一个数据流里传输更多 byte 的数据,NSS 必须始终为低。在传
输多于一个的数据流时,在数据流之间 NSS 必须为高。
19.5.2 时钟频率
1 号管脚为时钟输入管脚,OSCIN
参数
符号
MIN TYP MAX 单位
时钟频率 (由时钟滤波器检测)
占空比
f
d
t
OSCIN
FEC
jitter
13.56
50
MHz
%
ps
40
60
10
时钟沿波动
21 E²PROM 特性
E²PROM 大小为 32x16x8 = 4096 bit.
符号
参数
条件
MIN
100.000
10
MAX
单位
擦/写次数
年
数据擦写次数
数据保存时间
擦时间
tEEEndurance
tEERetention
tEEErase
Tamb ≤55°C
4
4
ms
ms
写时间
tEEWrite
表 21-1:E²PROM 特性
22 封装
芯片采用 SOP24 封装
图 23-1:SOP24 封装
相关型号:
©2020 ICPDF网 联系我们和版权申明