PHILIPS MFRC500_CHINESE

MF RC500-高集成 ISO14443A 读卡芯片
1 通用信息
1.1
范围
该文档讲述了 MF RC500 的功能 包括功能及电气规格 并给出了如何从系统和硬件的角度使用该芯
片进行设计的细节
1.2
概述
MF RC500 是应用于 13.56MHz 非接触式通信中高集成读卡 IC 系列中的一员
先进的调制和解调概念
该读卡 IC 系列利用了
完全集成了在 13.56MHz 下所有类型的被动非接触式通信方式和协议
MF RC500 支持 ISO14443A 所有的层
内部的发送器部分不需要增加有源电路就能够直接驱动近操作距离的天线 可达 100mm
接收器部分提供一个坚固而有效的解调和解码电路
数字部分处理 ISO14443A 帧和错误检测 奇偶
用于 ISO14443A 兼容的应答器信号
CRC
此外
它还支持快速 CRYPTO1 加密算法用
于验证 MIFARE 系列产品
方便的并行接口可直接连接到任何 8 位微处理器
1.3
这样给读卡器/终端的设计提供了极大的灵活性
特性
y 高集成度模拟电路用于卡应答的解调和解码
y 缓冲输出驱动器使用最少数目的外部元件连接到天线
y 近距离操作(可达 100mm)
y 支持 MIFARE 双接口卡 IC 和 ISO14443A1
4 部分
y 加密并保护内部非易失性密匙存储器
y 并行微处理器接口带有内部地址锁存和 IRQ 线
y 灵活的中断处理
y 自动检测微处理器并行接口类型
y 方便的 64 字节发送和接收 FIFO 缓冲区
y 带低功耗的硬件复位
y 软件实现掉电模式
y 可编程定时器
y 唯一的序列号
y 用户可编程的启动配置
y 位和字节定位帧
y 数字
模拟和发送器部分各自独立的电源输入脚
y 内部振荡器缓冲连接 13.56MHz 石英晶体
低相位抖动
y 时钟频率滤波
y 短距离应用中发送器 天线驱动器
为 3.3V 操作
1
2
方框图
3.1
V+
GND
3
V+
GND
图 2-1
MF RC500 方框图
管脚信息
管脚配置
下图所示用黑体字母标注的管脚由 AVDD 和 AVSS 供电
其它管脚由 DVDD 和 DVSS 供电
2
黑线所标的管脚由 TVSS 和 TVDD 供电
图 3-1
3.2
管脚描述
管脚类型
管脚
MF RC500 SO32 封装管脚配置
符号
I
输入
类型
O 输出
PWR 电源
描述
1
OSCIN
I
晶振输入
振荡器反相放大器输入
2
IRQ
O
中断请求
输出中断事件请求信号
3
MFIN
I
MIFARE 接口输入
接受符合 ISO14443A(MIFIRE)的数字串行数据流
4
MFOUT
O
MIFARE 接口输出
发送符合 ISO14443A(MIFIRE)的数字串行数据流
5
TX1
O
发送器 1
6
TVDD
7
TX2
8
PWR
该脚也作为外部时钟输入(fosc=13.56MHz)
发送经过调制的 13.56MHz 能量载波
发送器电源
提供 TX1 和 TX2 输出电源
O
发送器 2
发送经过调制的 13.56MHz 能量载波
TVSS
PWR
发送器地
提供 TX1 和 TX2 输出电源
9
NCS
I
/片选
10
NWR
I
/写
R/NW
I
读//写 选择所要执行的是读还是写
nWrite
I
/写 选择所要执行的是读还是写
NRD
I
/读
NDS
I
/数据选通
读和写周期的选通
nDStrb
I
/数据选通
读和写周期的选通
DVSS
PWR
11
12
选择和激活 MF RC500 的微处理器接口
MF RC500 寄存器写入数据
MF RC500 寄存器读出数据
数字地
3
D0~D7
D0~D7
选通
选通
管脚
符号
类型
描述
13
D0~D7
I/O
8 位双向数据总线
20
AD0~AD7
I/O
8 位双向地址和数据总线
21
ALE
I
地址锁存使能 为高时将 AD0~AD5 锁存为内部地址
AS
I
地址选通 为低时选通信号将 AD0~AD5 锁存为内部地址
nAStrb
I
/地址选通
A0
I
地址线 0
nWait
O
/等待
23
A1
I
地址线 1
寄存器地址位 1
24
A2
I
地址线 2
寄存器地址位 2
25
DVDD
PWR
数字电源
26
AVDD
PWR
模拟电源
27
AUX
O
28
AVSS
PWR
29
RX
30
VMID
PWR
31
RSTPD
I
22
I
为低时选通信号将 AD0~AD5 锁存为内部地址
寄存器地址位 0
信号为低可以开始一个存取周期
辅助输出 该脚输出模拟测试信号
为高时可以停止
该信号可通过 TestAnaOutSel 寄存器选择
模拟地
接收器输入 卡应答输入脚 该应答为经过天线电路耦合的调制 13.56MHz 载波
内部参考电压 该脚输出内部参考电压
复位和掉电
当为高时
注:必须接一个 100nF 电容
内部灌电流关闭
振荡器停止
输入端与外部断开
该管脚的下降沿启动内部复位
32
OSCOUT
O
晶振输出 振荡器反向放大器输出
表 3-1
4
MF RC500 管脚描述
并行接口
4.1
所支持的微处理器接口概述
MF RC500 支持与不同的微处理器直接接口
可与个人电脑的增强型并口
EPP
直接相连
下表所示为 MF RC500 所支持的并口信号
总线控制信号
独立的读和写选通信号
共用的读和写选通信号
带握手的共用读和写选通
信号 EPP
总线
独立的地址和数据总线
复用的地址和数据总线
控制
NRD NWR NCS
NRD NWR NCS
地址
A0,A1,A2
AD0,AD1,AD2,AD3,AD4,AD5
数据
D0 … D7
AD0 … AD7
控制
R/NW,NDS,NCS
R/NW,NDS,NCS,AS
地址
A0,A1,A2
AD0,AD1,AD2,AD3,AD4,AD5
数据
D0 … D7
AD0 … AD7
控制
nWrite,nDStrb,nAStrb,nWait
地址
AD0,AD1,AD2,AD3,AD4,AD5
数据
AD0 … AD7
表 4-1
4.2
ALE
所支持的并口信号
微处理器接口类型自动检测
在每次上电或硬复位后
MF RC500 也复位其并行微处理器接口模式并检测当前微处理器接口的类
型
MF RC500 在复位阶段后根据控制脚的逻辑电平识别微处理器接口 这是由固定管脚连接的组合
下表
和一个专门的初始化程序实现的 见 11.4
4.3
与不同微处理器类型的连接
如下表所示
4
见
并行接口类型
MF RC500
独立读/写选通
专用地址总线
共用读/写选通
复用地址总线
专用地址总线
复用地址总线
带握手的复用地址总线
ALE
HIGH
ALE
HIGH
AS
nAStrb
A2
A2
LOW
A2
LOW
HIGH
A1
A1
HIGH
A1
HIGH
HIGH
A0
A0
HIGH
A0
LOW
nWait
NRD
NRD
NRD
NDS
NDS
NDStrb
NWR
NWR
NWR
R/NW
R/NW
NWRite
NCS
NCS
NCS
NCS
NCS
LOW
D7 … D0
D7 … D0
AD7 … AD0
D7 … D0
AD7 … AD0
AD7 … AD0
表 4-2
4.3.1
检测并行接口类型的连接配置
独立的读/写选通信号
图 4-1
独立的读/写选通连接到微处理器
时序规格参见 20.5.2.1 章节
4.3.2
共用的读/写选通信号
图 4-2
共用的读/写选通连接到微处理器
时序规格参见 20.5.2.2 章节
4.3.3
带握手机制的共用读/写选通信号 EPP
5
图 4-3
带共用读/写选通和握手机制连接到微处理器
时序规格参见 20.5.2.3 章节
EPP 备注
尽管在 EPP 的标准中无片选信号的定义 MF RC500 的 N_CS 允许禁止 nDStrb 信号 如果不用 应
将其接到 DVSS
在每次上电或硬复位后 nWait 信号
由 A0 脚发出
为高阻态
nWait 将在复位后 nAStrb 上的第一
个下降沿时定义
MF RC500 不支持读地址周期
5
MF RC500 寄存器集合
5.1
页 1:控制和状态
页 0:命令和状态
页
MF RC500 寄存器概述
地址(hex)
寄存器名
功能
0
Page
选择寄存器页
1
Command
启动 和停止
2
FIFOData
64 字节 FIFO 缓冲区输入和输出
3
PrimaryStatus
接收器和发送器以及 FIFO 缓冲区状态标志
4
FIFOLength
FIFO 中缓冲的字节数
5
SecondaryStatus
不同的状态标志
6
InterruptEn
使能和禁止中断请求通过的控制位
7
InterruptRq
中断请求标志
8
Page
选择寄存器页
9
Control
不同的控制标志 例如
A
ErrorFlag
显示上次命令执行错误状态的错误标志
B
CollPos
RF 接口检测到的第一个冲突位的位置
C
TimerValue
定时器的实际值
D
CRCResultLSB
CRC 协处理器寄存器的最低位
E
CRCResultMSB
CRC 协处理器寄存器的最高位
F
BitFraming
位方式帧的调节
6
命令的执行
定时器
节电
MF RC500 寄存器集(续)
地址(hex)
页 6:RFU
置
页 5:FIFO,定时器和 IRQ 脚配
页 4:时序和信道冗余
页 3:接收器和解码控制
页 2:发送器和编码器控制
页
寄存器名
功能
10
Page
选择寄存器页
11
TxControl
天线驱动脚 TX1 和 TX2 的逻辑状态控制
12
CWConductance
选择天线驱动脚 TX1 和 TX2 的电导率
13
PreSet13
该值不会改变
14
PreSet14
该值不会改变
15
ModWidth
选择调整脉冲的宽度
16
PreSet16
该值不会改变
17
PreSet17
该值不会改变
18
Page
选择寄存器页
19
RxControl1
控制接收器状态
1A
DecodeControl
控制解码器状态
1B
BitPhase
选择发送器和接收器时钟之间的位相位
1C
RxThreshold
选择位解码器的阀值
1D
PreSet1D
该值不会改变
1E
RxControl2
控制解码器状态和定义接收器的输入源
1F
ClockQControl
控制时钟产生用于 90º相移的 Q 信道时钟
20
Page
选择寄存器页
21
RxWait
选择发送后
22
ChannelRedundancy
选择 RF 信道上数据完整性检测的类型和模式
23
CRCPresetLSB
CRC 寄存器预设值的低字节
24
CRCPresetMSB
CRC 寄存器预设值的高字节
25
PreSet25
该值不会改变
26
MFOUTSelect
选择输出到管脚 MFOUT 的内部信号
27
PreSet27
该值不会改变
28
Page
选择寄存器页
29
FIFOLevel
定义 FIFO 上溢和下溢警告界限
2A
TimerClock
选择定时器时钟的分频器
2B
TimerControl
选择定时器的起始和停止条件
2C
TimerReload
定义定时器的预装值
2D
IRQPinConfig
配置 IRQ 脚的输出状态
2E
PreSet2E
该值不会改变
2F
PreSet2F
该值不会改变
30
Page
选择寄存器页
31
RFU
保留将来之用
32
RFU
保留将来之用
33
RFU
保留将来之用
34
RFU
保留将来之用
35
RFU
保留将来之用
36
RFU
保留将来之用
37
RFU
保留将来之用
7
接收器启动前的时间间隔
页 7:测试控制
38
Page
选择寄存器页
39
RFU
保留将来之用
3A
TestAnaSelect
选择模拟测试模式
3B
PreSet3B
该值不会改变
3C
PreSet3C
该值不会改变
3D
TestDigiSelect
选择数字测试模式
3E
RFU
保留将来之用
3F
RFU
保留将来之用
表 5-1
5.1.1
MF RC500 寄存器汇总
寄存器位状态
不同的寄存器的位和标志的状态是不同的 这取决于它们的功能 原则上具有相同状态的位都归类到
共用的寄存器中
缩写
状态
描述
r/w
读和写
这些位可通过微处理器读和写
由于它们仅用于控制方式
因此它们的内容不会
被内部状态机影响 例如 TimerReload 寄存器可通过微处理器读写 还会被内部
状态机读取 但不会改变它们
dy
动态
这些位可通过微处理器读和写
但是它们也可被内部状态机自动写入
例如
Command 寄存器在执行完实际的命令后自动改变它的值
r
这些寄存器保存标志 其值仅由内部状态决定 例如 ErrorFlag 寄存器显示内部
只读
状态但不能通过外部写入
w
只写
这些寄存器仅用于控制方式
它们可通过微处理器写入但不能读出
器会返回不确定的值 例如
TestAnaSelect 寄存器用于确定 AUX 脚的信号 但
读这些寄存
是不可能读出它的内容
表 5-2
5.2
寄存器位的状态和设计
寄存器描述
5.2.1
页0
5.2.1.1
命令和状态
Page 寄存器
选择寄存器页
Page
名称
地址
0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38
7
6
5
4
3
UsePageSelect
0
0
0
0
R/W
R/W
R/W
R/W
R/W
复位值
2
1000000,0x80
1
0
PageSelect
R/W
R/W
R/W
位描述
位
符号
功能
7
UsePageSelect
如果设置为 1 PageSelect 的值作为寄存器地址 A5,A4 和 A3.寄存器地址的最
低位由地址脚或内部地址锁存单独定义
如果设置为 0
内部地址所处的整个内容定义寄存器地址
地址脚的用途见
表 4-2
6~3
0000
保留将来之用
2~0
PageSelect
仅当 UsePageSelect 设置为 1 时才使用 PageSelect 的值 此情况下 它指定寄
存器页 寄存器地址 A5,A4 和 A3
8
5.2.1.2
Command 寄存器
启动和停止命令的执行
名称 Command
地址
7
6
IFDetect Busy
0
r
r
0x01
复位值
5
4
3
x0000000
2
1
0
dy
dy
dy
0xx0
Command
dy
dy
dy
位描述
位
符号
功能
7
IfDetectBusy
显示接口检测逻辑的状态
表示
接口检测成功完成
设置为 1
接口检测正在进行
6
0
保留将来之用
5~0
Command
根据命令代码激活命令
5.2.1.3
设置为 0 表示
读该寄存器显示实际执行的命令
FIFOData 寄存器
64 字节 FIFO 缓冲区输入和输出
名称 FIFOData
7
地址 0x02
6
复位值
5
4
xxxxxxxx 0xxx
3
2
1
0
dy
dy
dy
dy
FIFOData
dy
dy
dy
dy
位描述
位
符号
功能
7~0
FIFOData
用于内部 64 字节 FIFO 缓冲区的数据输入和输出口.FIFO 缓冲区对所有输入
和输出数据流起到并入/并出的作用
5.2.1.4
PrimaryStatus 寄存器
接收器 发送器和 FIFO 缓冲区状态标志
名称 PrimaryStatus
7
6
0
r
地址
5
4
ModemState
r
r
r
9
0x03
复位值 00000101
0x05
3
2
1
0
IRq
Err
HiAlert
LoAlert
r
r
r
r
位描述
位
符号
7
0
6~4
ModemState
功能
保留将来之用
ModemState 显示发送器和接收器状态机的状态
状态
状态名
描述
000
Idle
由于发送器和接收器都未启动或输入数据 因此它
们都不处于操作中
3
IRQ
2
Err
1
HiAlert
001
TxSOF
发送
010
TxData
从 FIFO 缓冲区发送数据
011
TxEOF
发送
100
GoToRx1
中间状态
当接收器启动时
GoToRx2
中间状态
当接收器停止时
101
PrepareRx
等待直到 RxWait 寄存器中所选择的时间周期
110
AwaitingRx
计数器激活
111
Receiving
接收数据
WaterLevel 时
模式
等待管脚 Rx 的输入信号
该位设置为 1
HiAlert=
WaterLevel=4
HiAlert=1
FIFOLength=59
WaterLeval=4
HiAlert=0
当保存在 FIFO 中的字节数满足下面的等式 HiAlert= 64
例如
64
该位设置为 1
FIFOLength=60
WaterLevel 时
5.2.1.5
帧结束
或冗余检测位
当保存在 FIFO 缓冲区内的字节数满足下面的等式
例如
LoAlert
模式
如果 ErrorFlag 寄存器中任何错误标志置位
FIFOLength
0
帧起始
FIFOLength
该位设置为 1
FIFOLength=4
WaterLevel=4
HiAlert=1
FIFOLength=5
WaterLeval=4
HiAlert=0
FIFOLength
FIFO 中的缓冲字节数
名称 FIFOLength
7
6
地址
5
0x04
4
0
复位值 00000000
3
0x00
2
1
0
r
r
r
FIFOLength
r
r
r
r
r
位描述
位
符号
7
0
6~0
FIFOLengh
功能
保留将来之用
指示保存在 FIFO 缓冲区的字节数
FIFOLength
10
写入 FIFOData 寄存器增加
读减少
5.2.1.6
SecondaryStatus 寄存器
不同的状态标志
名称 SecondaryStatus
7
6
TRunning
E2Ready
r
0x05
地址
5
4
3
CRCReady
0
0
r
r
r
r
复位值 01100000
2
1
0x60
0
RxLastBits
r
r
r
位描述
位
符号
功能
7
TRunning
如果为 1
MF RC500 的定时器单元正在运行 例如
计数器会在下个定时
器时钟将 TimerValue 寄存器值减一
6
E2Ready
如果为 1
MF RC500 已经完成对 E2PROM 的编程
5
CRCReady
如果为 1
MF RC500 已经完成 CRC 的计算
4~3
00
该值不会被改变
2~0
RxLastBits
显示最后接收字节的有效位个数
5.2.1.7
如果为 0
整个字节有效
InterruptEn 寄存器
使能和禁止中断请求通过的控制位
名称 InterruptEn
地址
0x06
复位值
00000000
0x00
7
6
5
4
3
2
1
0
SetIEn
0
TimerEn
TxIEn
RxIEn
IdleIEn
HiAlertIEn
LoAlertIEn
w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
符号
功能
7
SetIEn
该位置位定义在 InterruptEn 寄存器中置位的位
6
0
保留将来之用
5
TimerEn
允许将定时器中断请求 由 TimerIRq 指示 传递给脚 IRQ 除了通过 SetIEn
外
4
TxIEn
3
RxIEn
由 TxIRq 指示 传递给脚 IRQ 除了通过 SetIEn
该位不能直接置位或清零
由 RxIRq 指示 传递给脚 IRQ 除了通过 SetIEn
允许将接收器中断请求
外
2
该位不能直接置位或清零
允许将发送器中断请求
外
IdleIEn
该位清零将清除标记的位
该位不能直接置位或清零
允许将 Idle 中断请求 由 IdleIRq 指示 传递给脚 IRQ 除了通过 SetIEn 外
该位不能直接置位或清零
1
HiAlertIEn
允许将 HiAlert 中断请求 由 HiAlertIRq 指示 传递给脚 IRQ 除了通过 SetIEn
外
0
LoAlertIEn
允许将 LoAlert 中断请求 由 LoAlertIRq 指示 传递给脚 IRQ 除了通过 SetIEn
外
5.2.1.8
该位不能直接置位或清零
该位不能直接置位或清零
InterruptRq 寄存器
中断请求标志
名称 InterruptRq
地址
0x07
复位值 00000000
0x00
7
6
5
4
3
2
1
0
SetIRq
0
TimerIRq
TxIRq
RxIRq
IdleIRq
HiAlertIRq
LoAlertIRq
w
r/w
dy
dy
dy
dy
dy
dy
11
位描述
位
符号
7
SetIRq
功能
设置为 1 定义在 InterruptRq 寄存器中置 1 的位
设置为 0 清除 InterruptIRq 中标记的位
6
0
5
TimerIRq
4
TxIRq
保留将来之用
当定时器 TimerValue 寄存器值减为 0 时置位
当下列条件之一发生时置位
Transceive 命令
所有数据都已发送
Auth1 和 Auth2 命令 所有数据都已发送
WriteE2 命令 所有数据都已编程
CalcCRC 命令
所有数据都已处理
3
RxIRq
当接收终止时该位置位
2
IdleIRq
当命令由其自身终止时该位置位 例如 当命令寄存器的值从任何寄存器
变为 Idle 寄存器的值时
IdleIRq 置位
如果一个未知的命令启动
由微处理器启动 Idle 命令不置位 IdleIRq
1
HiAlertIRq
当 HiAlert 置位时 该位置位 与 HiAlert 相反 HiAlertIRq 保存该事件并
只能通过 SetIRq 复位
0
LoAlertIRq
当 LoAlert 置位时 该位置位
LoAlertIRq 保存该事件并只能通过 SetIRq
复位
5.2.2
页1
5.2.2.1
控制和状态
页寄存器
见 5.2.1.1
选择寄存器页
5.2.2.2
控制寄存器
不同的控制标志
名称
例如
定时器
节电
Control
地址 0x09
复位值 00000000
0x00
7
6
5
4
3
2
1
0
0
0
StandBy
PowerDown
Crypto1On
TStopNow
TStartNow
FlushFIFO
r/w
r/w
dy
dy
dy
w
w
w
位描述
位
符号
7~6
00
5
StandBy
功能
保留将来之用
将该位置 1 进入软件掉电模式 这表示内部电流消耗模块关闭 晶振保持
运行
4
PowerDown
将该位置 1 进入软件掉电模式 这表示内部电流消耗模块包括晶振在内关
闭
3
Crypto1On
该位指示 Crypto1 单元打开
因此与卡的所有数据通信都被加密
2
TStopNow
将该位置 1 立即停止定时器
读该位总是返回 0
1
TStartNow
将该位置 1 立即启动定时器
读该位总是返回 0
0
FlushFIFO
将该位置 1 立即清除内部 FIFO 缓冲区的读/写指针和 FIFOOvfl 标志
读该位总是返回 0
12
5.2.2.3
ErrorFlag 寄存器
Error 标志指示上一个执行命令的错误状态
名称
ErrorFlag
地址 0x0A
复位值 00000000
0x00
7
6
5
4
3
2
1
0
0
KeyErr
AccessErr
FIFOOvfl
CRCErr
FramingErr
ParityErr
CollErr
r
r
r
r
r
r
r
r
位描述
位
符号
7
0
6
KeyErr
功能
保留将来之用
如果 LoadKeyE2 或 LoadKey 命令识别出输入数据不是根据密匙格式定义
启动 LoadKeyE2 或 LoadKey 命令时该位清零
编码 则将该位置位
5
AccessErr
2
如果对 E PROM 的访问权限被禁止 该位置位
启动与 E2PROM 相关的命令时该位清零
4
FIFOOvfl
如果微处理器或 MF RC500 内部状态机
例如接收器
试图将数据写入
FIFO 缓冲区而 FIFO 缓冲区已满时 该位置位
3
CRCErr
如果 RxCRCEn 置位且 CRC 失败 该位置位 该位在 PrepareRx 状态中接
收器的启动阶段自动清零
2
FramingErr
如果 SOF 不正确 该位置位 该位在 PrepareRx 状态中接收器的启动阶段
自动清零
1
ParityErr
如果奇偶校验失败
该位在 PrepareRx 状态中接收器的启动阶
该位置位
段自动清零
0
CollErr
如果检测到一个位冲突
该位置位
该位在 PrepareRx 状态中接收器的启
动阶段自动清零
5.2.2.4
CollPos 寄存器
RF 接口上检测到的第一个位冲突的位置
名称 CollPos
7
0x0B
地址
6
5
4
00010011
复位值
0x00
3
2
1
0
r
r
r
r
CollPos
r
r
r
r
位描述
位
符号
功能
7~0
CollPos
该寄存器指示在接收到的帧中第一个检测到的冲突位的位置
例
0x00 指示在起始位的位冲突
0x01 指示在第 1 位的位冲突
0x08 指示在第 8 位的位冲突
5.2.2.5
TimerValue 寄存器
定时器的实际值
名称 TimerValue
7
6
地址
5
0x0C
4
复位值
XXXXXXXX
0xXX
3
2
1
0
r
r
r
r
TimerValue
r
r
r
r
13
位描述
位
符号
7~0
TimerValue
5.2.2.6
功能
该寄存器显示定时器计数器的实际值
CRCResultLSB 寄存器
CRC 协处理器寄存器低字节
名称 CRCResultLSB
7
地址
6
5
0x0D
复位值
4
3
XXXXXXXX
0xXX
2
1
0
r
r
r
CRCResultLSB
r
r
r
r
r
位描述
位
符号
功能
7~0
CRCResultLSB
该寄存器显示 CRC 寄存器低字节的实际值 它只在 CRCReady 设为 1 时有
效
5.2.2.7
CRCResultMSB 寄存器
CRC 协处理器寄存器高字节
名称 CRCResultMSB
7
地址 0x0E
6
5
4
复位值 XXXXXXXX
3
0xXX
2
1
0
r
r
r
CRCResultMSB
r
r
r
r
r
位描述
位
符号
功能
7~0
CRCResultMSB
该寄存器显示 CRC 寄存器高字节的实际值 它只在 CRCReady 设为 1 时有
效
5.2.2.8
对于 8 位 CRC 校验
该寄存器值未定义
BitFraming 寄存器
位方式帧的调节
名称 BitFraming
7
6
0
r/w
地址 0x0F
5
4
3
RxAlign
dy
dy
复位值 00000000
2
0
dy
r/w
14
1
0x00
0
TxLastBits
dy
dy
dy
位描述
位
符号
功能
7
0
6~4
RxAlign
保留将来之用
用于位方式帧的接收
RxAlign 定义了接收的第一个位存储到 FIFO 的位置
更多的位存储到后面的位位置
在接收后 RxAlign 自动清零
例 RxAlign
0
接收的最低位存在位 0
接收的第二个位存在位 1
RxAlign
1
接收的最低位存在位 1
接收的第二个位存在位 2
RxAlign
3
接收的最低位存在位 3
接收的第二个位存在位 4
RxAlign
7
未定义
7 以防止数据丢失
注 强烈建议不要使用 RxAlign
14
在位位置 6
22
30 38 CollPos 检测到的位冲突不能通过 RxAlign 解决 需要软件来实现
3
0
2~0
TxLastBits
保留将来之用
用于位方式帧的发送 TxLastBits 定义要发送的最后一个字节的位数目 000
指示最后字节的所有位都要发送 在发送之后 TxLastBits 自动清零
5.2.3
页2
5.2.3.1
发送器和控制
页寄存器
见 5.2.1.1
选择寄存器页
5.2.3.2
TxControl 寄存器
控制天线脚 TX1 和 TX2 的逻辑状态
名称
TxControl
7
地址
6
0
5
ModulatorSource
r/w
r/w
r/w
0x11
01011000
复位值
0x58
4
3
2
1
0
1
TX2Inv
TX2Cw
TX2RFEn
TX1RFEn
r/w
r/w
r/w
r/w
r/w
位描述
位
符号
7
0
该值不会被改变
6~5
Modulator
调制器的输入源
Source
功能
00
低
01
高
10
内部编码器
11
管脚 MFIN
4
1
3
TX2Inv
设置为 1
2
TX2Cw
设置为 1 管脚 TX2 上的输出信号将连续传递未调制的 13.56MHz 能量载波
1
TX2RFEn
设置为 1 管脚 TX2 上的输出信号将传递由发送数据调制的 13.56MHz 能量
该值不会被改变
管脚 TX2 上的输出信号将传递一个反相的 13.56MHz 能量载波
载波
0
TX1RFEn
设置为 1 管脚 TX1 上的输出信号将传递由发送数据调制的 13.56MHz 能量
载波
15
5.2.3.3
CwConductance 寄存器
选择天线驱动脚 TX1 和 TX2 的电导率
名称
CwConductance
7
6
0
0
r/w
r/w
地址
5
0x12
4
3
复位值 00111111
0x3F
2
1
0
r/w
r/w
r/w
GsCfgCW
r/w
r/w
r/w
位描述
位
符号
功能
7~6
00
5~0
GsCfgCW
该值不会被改变
该寄存器值定义输出驱动器的电导率.可用于调整输出功率以及电流消耗和
操作距离.
5.2.3.4
PreSet13 寄存器
名称 PreSet13
地址
0x13
00111111
复位值
0x3F
7
6
5
4
3
2
1
0
0
0
1
1
1
1
1
1
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:该寄存器值不会被改变!
5.2.3.5
PreSet14 寄存器
名称 PreSet14
地址
0x14
00011001
复位值
0x19
7
6
5
4
3
2
1
0
0
0
0
1
1
0
0
1
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:该寄存器值不会被改变!
5.2.3.6
ModWidth 寄存器
选择调制脉冲的宽度
名称 ModeWidth
7
地址
6
5
0x15
00010011
复位值
4
0x13
3
2
1
0
r/w
r/w
r/w
r/w
ModeWidth
r/w
r/w
r/w
r/w
位描述
位
符号
功能
7~0
ModeWidth
该寄存器根据 Tmod=2*(ModeWidth+1)/fc 定义调制脉冲宽度
5.2.3.7
PreSet16 寄存器
名称 PreSet16
地址
0x16
00000000
复位值
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:该寄存器值不会被改变!
5.2.3.8
PreSet17 寄存器
16
PreSet17
名称
地址
0x17
00000000
复位值
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:该寄存器值不会被改变!
5.2.4
页 3:接收器和解码器控制
5.2.4.1
页寄存器
见 5.2.1.1
选择寄存器页
5.2.4.2
RxControl1 寄存器
控制接收器状态
名称
RxControl1
地址 0x19
01110011
复位值
7
6
5
4
3
2
0
1
1
1
0
0
r/w
r/w
r/w
r/w
r/w
r/w
1
0x73
0
Gain
r/w
r/w
位描述
位
符号
功能
7~2
011100
该值不会被改变
1~0
Gain
该寄存器定义接收器信号电压增益因素:
5.2.4.3
00:
27db
01:
30db
10:
38db
11:
42db
DecodeControl 寄存器
名称 RxControl1
地址 0x1A
00001000
复位值
0x08
7
6
5
4
3
2
1
0
0
0
ZeroAfer
0
1
0
0
0
r/w
r/w
r/w
r/w
r/w
Coll
r/w
r/w
r/w
位描述
位
符号
功能
7~6
00
该值不会被改变
ZeroAferColl
如果设置为 1
5
在一个位冲突之后的任何位都屏蔽为 0
这就很容易由
ISO14443A 中定义的防冲突处理进行处理
4~0
01000
5.2.4.4
该值不会被改变
BitPhase 寄存器
选择发送器和接收器时钟之间的位相位
名称 RxControl1
7
6
地址
5
0x1B
4
复位值
10101101
0xAD
3
2
1
0
r/w
r/w
r/w
r/w
BitPhase
r/w
r/w
r/w
r/w
17
位描述
位
符号
功能
7~0
BitPhase
定义发送器和接收器时钟之间的位相位
注:该寄存器的正确值对正常操作是非常必要的.
5.2.4.5
RxThreshold 寄存器
选择位解码器的阀值
名称 RxThreshold
7
地址
6
5
0x1C
4
3
2
MinLevel
r/w
r/w
11111111
复位值
0xFF
1
0
r/w
r/w
CollLevel
r/w
r/w
r/w
r/w
位描述
位
符号
功能
7~4
MiniLevel
定义解码器输入端可接受的最小信号强度 如果信号小于该值将不进行计算
3~0
CollLevel
定义解码器输入的最小信号强度 该信号必须被 Manchester 编码信号的弱半
位达到以产生相对于强半位幅度的位冲突
5.2.4.6
PreSet1D 寄存器
名称 PreSet1D
地址 0x1D
复位值 00000000
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:该寄存器值不会被改变!
5.2.4.7
RxControl2 寄存器
控制解码器的状态并定义接收器的输入源
名称 RxThreshold
7
地址
6
RcvClkSell RxAutoPD
r/w
r/w
0x1E
复位值
010000011
0x41
0
5
4
3
2
1
0
0
0
0
DecoderSource
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
符号
功能
7
RcvClkSell
如果设置为 1
I-时钟用作接收器时钟 为 0 表示使用 Q-时钟
I-时钟和 Q-
时钟之间有 90º相移
6
RxAutoPD
如果设置为 1 接收器电路在接收前自动打开并在完成后关闭 这样可减少
电流的消耗
如果设置为 0
接收器始终有效
5~2
0000
该值不会被改变
1~0
DecoderSource
选择解码器输入源
00
低
01
内部解调器
10
管脚 MFIN 输入的副载波调制 Manchester 编码信号
11
管脚 MFIN 输入的基带 Manchester 编码信号
18
5.2.4.8
ClockQControl 寄存器
控制时钟产生用于 90º相移的 Q 信道时钟
ClockQControl
名称
7
地址
6
5
ClkQ180Deg ClkQCalib
r
0x1F
复位值
4
3
0
r/w
000XXXXX
2
0xXX
1
0
dy
dy
ClkQDelay
r/w
dy
dy
dy
位描述
位
符号
功能
7
ClkQ180Deg
如果 Q-时钟与 I-时钟的相移超过 180º,该位置 1,否则为 0
6
ClkQCalib
如果该位为 0
5
0
该值不会被改变
ClkQDelay
该寄存器显示实际用于产生 I-时钟的 90º相移以获得 Q-时钟的延迟元素的数
4~0
Q-时钟在复位后和从卡接收数据后自动校准
目 它可由微处理器直接写入或在校准周期自动写入
5.2.5
页4
5.2.5.1
RF 时序和信道冗余
页寄存器
选择寄存器页 见 5.2.1.1
5.2.5.2
RxWait 寄存器
选择发送后
名称
接收器启动前的时间间隔
ClockQControl
7
地址
6
5
0x21
复位值 00000101
4
0x06
3
2
1
0
r/w
r/w
r/w
r/w
RxWait
r/w
r/w
r/w
r/w
位描述
位
符号
功能
7~0
RxWait
在数据发送后 接收器的启动由于 RxWait 位时钟而延迟
在这段
帧保护
时间 内管脚 Rx 上的任何信号都被忽略
5.2.5.3
ChannelRedundancy 寄存器
选择 RF 信道上数据完整性检测的类型和模式
名称 ChannelRedundancy
地址
0x22
复位值
00000011
0x03
7
6
5
4
3
2
1
0
0
CRCMSB
CRC
CRC8
RxCRCEn
TxCRCEn
ParityOdd
ParityEn
First
3309
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
19
位描述
位
符号
功能
7
0
该值不会被改变
6
CRCMSBFirst
如果设置为 1
CRC 计算首先将最高位移入 CRC 协处理器
如果设置为 0
CRC 计算从最低位开始
注 根据 ISO14443A 该位必须为 0
5
CRC3309
如果设置为 1
注
4
CRC8
3
RxCRCEn
CRC 计算根据 ISO/IEC3309 执行
根据 ISO14443A 该位必须为 0
如果设置为 1
计算任何 8 位 CRC
如果设置为 0
计算一个 16 位 CRC
如果设置为 1 接收帧的最后字节被解释为 CRC 字节 如果 CRC 是正确的
CRC 字节不放入 FIFO 在有错误的情况下
2
TxCRCEn
1
ParityOdd
如果设置为 0
无 CRC
如果设置为 1
对发送数据进行 CRC 计算并将 CRC 字节加到数据流中
如果设置为 0
不发送 CRC
如果设置为 1
单独产生或者出现奇数的奇偶校验
如果设置为 0
单独产生或者出现偶数的奇偶校验
注
0
ParityEn
CRCErr 标志置位
根据 ISO14443A 该位必须为 1
如果设置为 1 奇偶校验位在每个字节后插入发送数据流中并会出现在接收
数据流的每个字节后
如果设置为 0
5.2.5.4
不会产生或者出现奇偶校验位
CRCPresetLSB 寄存器
CRC 寄存器预设值的低字节
名称 CRCPresetLSB
7
地址 0x23
6
5
4
复位值
3
01010011
0x63
2
1
0
r/w
r/w
r/w
CRCPresetLSB
r/w
r/w
r/w
r/w
r/w
位描述
位
符号
功能
7~0
CRCPresetLSB
CRCPresetLSB 定义 CRC 计算的起始值 如果 CRC 计算使能 该值在发送
接收和 CalcCRC 命令开始时装入 CRC
5.2.5.5
CRCPresetMSB
CRC 寄存器预设值的高字节
名称 CRCPresetMSB
7
6
地址
5
0x24
4
复位值
3
01010011
0x63
2
1
0
r/w
r/w
r/w
CRCPresetMSB
r/w
r/w
r/w
r/w
r/w
位描述
20
位
符号
功能
7~0
CRCPresetMSB
CRCPresetMSB 定义 CRC 计算的起始值 如果 CRC 计算使能 该值在发送
接收和 CalcCRC 命令开始时装入 CRC
如果 CRC8 为 1
注
5.2.5.6
该寄存器无效
PreSet25 寄存器
名称 PreSet25
地址 0x25
00000000
复位值
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:该寄存器值不会被改变!
5.2.5.7
MFOUTSelect 寄存器
选择输出到管脚 MFOUT 的内部信号
名称 MFOUTSelect
地址
0x26
00000000
复位值
7
6
5
4
3
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
2
1
0x00
0
MFOUTSelect
r/w
r/w
r/w
位描述
位
符号
功能
7~3
00000
该值不会被改变
2~0
MFOUTSelect
MFOUTSelect 定义输出到脚 MFOUT 的信号
5.2.5.8
000
恒为低
001
恒为高
010
来自内部编码器的调制信号
011
串行数据流 非 Miller 编码
100
能量载波解调器输出信号
101
副载波解调器输出信号
110
RFU
111
RFU
包络
Miller 编码
卡调制信号
Manchester 编码卡信号
PreSet27 寄存器
名称 PreSet27
地址 0x27
复位值
00000000
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:该寄存器值不会被改变!
5.2.6
5.2.6.1
页5
定时器和 IRQ 管脚配置
页寄存器
选择寄存器页
5.2.6.2
FIFO
见 5.2.1.1
FIFOLevel 寄存器
定义 FIFO 上溢和下溢警告界限
21
名称
FIFOLevel
7
6
0
0
r/w
r/w
地址
5
0x29
00001000
复位值
4
3
0x08
2
1
0
r/w
r/w
r/w
WaterLevel
r/w
r/w
r/w
位描述
位
符号
功能
7~6
00
该值不会被改变
5~0
WaterLevel
该寄存器定义了 MF RC500 用于微处理器的 FIFO 上溢和下溢警告界限
如果 FIFO 缓冲区剩余空间等于或小于 FIFO 缓冲区中的 WaterLevel 字节
HiAlert 设置为 1
如果等于或小于 FIFO 缓冲区中的 WaterLevel 字节
5.2.6.3
LoAlert 设置为 1
TimerClock 寄存器
选择定时器时钟的分频值
名称 TimerClock
地址
7
6
5
0
0
TAutoRestart
r/w
r/w
r/w
0x2A
00000111
复位值
4
3
2
0x07
1
0
r/w
r/w
TPreScaler
r/w
r/w
r/w
位描述
位
符号
功能
7~6
00
该值不会被改变
TAutoRestart
如果设置为 1 定时器从 TReloadValue 处自动重新开始向下计数 而不是向
5
下计数到零
如果设置为 0
4~0
TPreScaler
定义定时器时钟 fTimer TPreScaler 可以从 0 调整到 21 下面的公式用于计算
fTimer
5.2.6.4
定时器减少到零并且 TimerIRq 置位
fTimer=13.56MHz/2TPreScaler
TimerControl 寄存器
选择定时器的起始和停止条件
名称 TimerControl
地址 0x2B
7
6
5
4
0
0
0
0
r/w
r/w
r/w
r/w
3
复位值
2
1
00000110
0x06
0
TStopRxEnd TStopRxBegin TStartTxEnd TStartTxBegin
r/w
r/w
r/w
r/w
位描述
位
符号
功能
7~4
0000
该值不会被改变
3
TStopRxEnd
如果设置为 1
当数据接收结束时定时器自动停止 0 表示定时器不受该条
件影响
2
TStopRxBegin
如果设置为 1
当接收到第一个有效位时定时器自动停止 0 表示定时器不
受该条件影响
1
TStartTxEnd
如果设置为 1
当数据发送结束时定时器自动停止 0 表示定时器不受该条
件影响
0
TStartTxBegin
如果设置为 1
当第一个字节发送时定时器自动停止 0 表示定时器不受该
条件影响
22
5.2.6.5
TimerReload 寄存器
定义定时器的当前值
TimerReload
名称
7
地址 0x2C
6
5
00001010
复位值
4
3
0x0A
2
1
0
r/w
r/w
r/w
TReloadValue
r/w
r/w
r/w
r/w
r/w
位描述
位
符号
功能
7~0
TReloadValue
启动时定时器装入 TReloadValue 改变该寄存器只在下次启动事件影响定时
器
如果 TReloadValue 设置为 0
5.2.6.6
定时器将不能启动
IRQPinConfig 寄存器
配置管脚 IRQ 的输出状态
IRQPinConfig
名称
地址
0x2D
复位值 00000010
0x02
7
6
5
4
3
2
1
0
0
0
0
0
0
0
IRQInv
IRQPushPull
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
位描述
位
符号
功能
7~2
000000
该值不会被改变
1
IRQInv
如果设置为 1
如果为 0
0
IRQPushPull
5.2.6.7
表示相同
如果设置为 1
如果为 0
管脚 IRQ 上的信号与对应的位 IRq 状态相反
管脚 IRQ 为标准 CMOS 输出
IRQ 为开漏输出
PreSet2E 寄存器
名称 PreSet2E
地址
0x2E
复位值
00000000
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:该寄存器值不会被改变!
5.2.6.8
PreSet2F 寄存器
名称 PreSet2F
地址
0x2F
复位值 00000000
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:该寄存器值不会被改变!
5.2.7
5.2.7.1
页6
RFU
页寄存器
选择寄存器页
见 5.2.1.1
23
5.2.7.2
RFU 寄存器
RFU
名称
地址 0x31,0x32,0x33,0x34,0x35,0x36,0x37
复位值
00000000
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:这些寄存器保留将来之用
5.2.8
页7
5.2.8.1
页寄存器
选择寄存器页
5.2.7.2
名称
测试控制
见 5.2.1.1
RFU 寄存器
RFU
地址
0x39
复位值
00000000
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
w
w
w
w
w
w
w
w
注:该寄存器保留将来之用
5.2.8.3
TestAnaSelect 寄存器
选择模拟测试信号
名称 TestAnaSelect
地址 0x3A
7
6
5
4
0
0
0
0
w
w
w
w
3
复位值
2
00000000
1
符号
功能
7~4
0000
该值不会被改变
3~0 TestAnaOutSel
w
w
该寄存器选择输出到管脚 AUX 的内部模拟信号
值
信号名称
0
Vmid
1
Vbandgap
2
VRxFolll
3
VRxFollQ
4
VRxAmpl
5
VRxAmpQ
6
VCorrNI
7
VCorrNQ
8
VCorrDI
9
VCorrDQ
A
VEvalL
B
VEvalR
C
VTemp
D
RFU
E
RFU
F
RFU
0
TestAnaOutSel
w
位描述
位
0x00
24
细节参见 19.3
w
5.2.8.4
名称
PreSet3B 寄存器
PreSet3B
地址 0x3B
复位值
00000000
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:该寄存器值不会被改变!
5.2.8.5
PreSet3C 寄存器
名称 PreSet3C
地址 0x3C
复位值
00000000
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:该寄存器值不会被改变!
5.2.8.6
TestDigiSelect 寄存器
选择数字测试模式
名称 TestDigiSelect
7
6
地址
5
0x3D
复位值 00000000
4
SignalTo
3
0x00
2
1
0
w
w
w
TestDigiSignalSel
MFOUT
w
w
w
w
w
位描述
位
符号
功能
7
SignalToMFOUT
设置为 1 MFOUTSelect 中的设定无效 取而代之的是输出到管脚 MFOUT
的 TestDigiSignalSel 中定义的数字测试信号
设置为 0 时
6~0
TestDigiSignalSel
由 MFOUTSelect 定义输出到管脚 MFOUT 的信号
选择输出到管脚 MFOUT 的数字信号
细节请参阅 19.4
5.2.8.7
TestDigiSignalSel
信号名称
F4hex
s_data
E4hex
s_valid
D4hex
s_coll
C4hex
s_clock
B5hex
rd_sync
A5hex
wr_sync
96hex
int_clock
RFU 寄存器
名称 RFU
地址 0x3E,0x3F
复位值 00000000
0x00
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
r/w
r/w
r/w
r/w
r/w
r/w
r/w
r/w
注:这些寄存器保留将来之用
25
5.3
MF RC500 寄存器标志位汇总
标志
地址
寄存器
寄存器,位的位置
AccessErr
ErrorFlag
0x0A, bit 5
BitPhase
BitPhase
0x1B, bits 7:0
ClkQ180Deg
ClockQControl
0x1F, bit 7
ClkQCalib
ClockQControl
0x1F, bit 6
ClkQDelay
ClockQControl
0x1F, bits 4:0
CollErr
ErrorFlag
0x0A, bit 0
CollLevel
RxThreshold
0x1C, bits 3:0
CollPos
CollPos
0x0B, bits 7:0
Command
Command
0x01, bits 5:0
CRC3309
ChannelRedundancy
0x22, bit 5
CRC8
ChannelRedundancy
0x22, bit 4
CRCErr
ErrorFlag
0x0A, bit 3
CRCMSBFirst
ChannelRedundancy
0x22, bit 6
CRCPresetLSB
CRCPresetLSB
0x23, bits 7:0
CRCPresetMSB
CRCPresetMSB
0x24, bits 7:0
CRCReady
SecondaryStatus
0x05 , bit 5
CRCResultMSB
CRCResultMSB
0x0E, bits 7:0
CRCResultLSB
CRCResultLSB
0x0D, , bits 7:0
Crypto1On
Control
0x09, bit 3
DecoderSource
RxControl2
0x1E, bits 1:0
E2Ready
SecondaryStatus
0x05, bit 6
Err
PrimaryStatus
0x03, bit 2
FIFOData
FIFOData
0x02, bits 7:0
FIFOLength
FIFOLength
0x04, bits 7:0
FIFOOvfl
ErrorFlag
0x0A, bit 4
FlushFIFO
Control
0x09, bit 0
FramingErr
ErrorFlag
0x0A, bit 2
Gain
RxControl1
0x19, bits 1:0
GsCfgCW
CWConductance
0x12, bits 5:0
HiAlert
PrimaryStatus
0x03, bit 1
HiAlertIEn
InterruptEn
0x06, bit 1
HiAlertIRq
InterruptRq
0x07, bit 1
26
标志
地址
寄存器
寄存器,位的位置
IdleIEn
InterruptEn
0x06, bit 2
IdleIRq
InterruptRq
0x07, bit 2
IFDetectBusy
Command
0x01, bit 7
IRq
PrimaryStatus
0x03, bit 3
IRQInv
IRQPinConfig
0x2D, bit 1
IRQPushPull
IRQPinConfig
0x2D, bit 0
KeyErr
ErrorFlag
0x0A, bit 6
LoAlert
PrimaryStatus
0x03, bit 0
LoAlertIEn
InterruptEn
0x06, bit 0
LoAlertIRq
InterruptRq
0x07, bit 0
MFOUTSelect
MFOUTSelect
0x26, bits 2:0
MinLevel
RxThreshold
0x1C, bits 7:4
ModemState
PrimaryStatus
0x03 , bit 6:4
ModulatorSource
TxControl
0x11, bits 6:5
ModWidth
ModWidth
0x15, bits /:0
Page
0x00, 0x08, 0x10, 0x18, 0x20,
0x28, 0x30, 0x38, bits 2:0
ParityEn
ChannelRedundancy
0x22, bit 0
ParityErr
ErrorFlag
0x0A, bit 1
ParityOdd
ChannelRedundancy
0x22 , bit 1
PowerDown
Control
0x09, bit4
RcvClkSelI
RxControl2
0x1E, bit 7
RxAlign
BitFraming
0x0F, bits 6:4
RxAutoPD
RxControl2
0x1E, bit 6
RxCRCEn
ChannelRedundancy
0x22, bit 3
RxIEn
InterruptEn
0x06, bit 3
RxIRq
InterruptRq
0x07, bit 3
RxLastBits
SecondaryStatus
0x05, bits 2:0
RxWait
RxWait
0x21, bits 7:0
SetIEn
InterruptEn
0x06, bit 67
SetIRq
InterruptRq
0x07, bit 7
SignalToMFOUT
TestDigiSelect
0x3D, bit 7
StandBy
Control
0x09, bit 5
TAutoRestart
TimerClock
0x2A, bit 5
PageSelect
27
标志
地址
寄存器
寄存器,位的位置
TestAnaOutSel
TestAnaSelect
0x3A, bits 6:4
TestDigiSignalSel
TestDigiSelect
0x3D, bit 6:0
TimerIEn
InterruptEn
0x06, bit 5
TimerIRq
InterruptRq
0x07, bit 5
TimerValue
TimerValue
0x0C, bits 7:0
TPreScaler
TimerClock
0x2A, bits 4:0
TReloadValue
TimerReload
0x2C, bits 7:0
TRunning
SecondaryStatus
0x05, bit 7
TStartTxBegin
TimerControl
0x2B, bit 0
TStartTxEnd
TimerControl
0x2B, bit 1
TStartNow
Control
0x09, bit 1
TStopRxBegin
TimerControl
0x2B, bit 2
TStopRxEnd
TimerControl
0x2B, bit 3
TStopNow
Control
0x09, bit 2
TX1RFEn
TxControl
0x11, bit 0
TX2Cw
TxControl
0x11, bit 3
TX2Inv
TxControl
0x11, bit 3
TX2RFEn
TxControl
0x11, bit 1
TxCRCEn
ChannelRedundancy
0x22, bit 2
TxIEn
InterruptEn
0x06, bit 4
TxIRq
InterruptRq
0x07, bit 4
TxLastBits
BitFraming
0x0F, bits 2:0
Page
0x00, 0x08, 0x10, 0x18, 0x20,
0x28, 0x30, 0x38, bit 7
WaterLevel
FIFOLevel
0x29, bits 5:0
ZeroAfterColl
DecoderControl
0x1A, bit 5
UsePageSelect
28
5.4
寄存器寻址方式
可通过 3 种机制对 MF RC500 进行操作
y 通过执行命令初始化功能和控制数据操作
y 通过一系列的可配置位配置电气和功能状态
y 通过读取状态标志监控 MF RC500 的状态
命令 配置位和标志都可通过微处理器接口访问 MF RC500 可内部寻址 64 个寄存器 这需要 6 条地
址线
5.4.1
分页机制
MF RC500 寄存器集被分成 8 页 每页 8 个寄存器
不管当前所选是哪一页 页寄存器总是可以寻址
的
5.4.2
专用的地址总线
使用 MF RC500 专用地址总线 微处理器通过地址脚 A0,A1 和 A2 定义 3 条地址线 这允许在一页内
进行寻址
要在不同页的寄存器之间进行切换就需要用到分页机制
下表列出了寄存器地址的组合状况
寄存器位
寄存器地址
UsePageSelect
1
PageSelect2
PageSelect1
表 5-3
5.4.3
PageSelect0
专用地址总线
A2
A1
A0
组合寄存器地址
复用的地址总线
使用 MF RC500 复用的地址总线 微处理器可以一次定义所有的 6 条地址线 这种情况下 可以既可
以使用分页机制也可使用线性寻址
下表列出了寄存器地址的组合状况
接口总线类
寄存器地址
寄存器位
型
UsePageSelect
复用地址总线
1
PageSelect2
PageSelect1
PageSelect0
AD2
AD1
AD0
0
AD5
AD4
AD3
AD2
AD1
AD0
分页模式
复用地址总线
线性寻址
表 5-4
复用地址总线
29
组合寄存器地址
6
2
E PROM 存储器结构
2
6.1
E PROM 存储器结构图
块编号
块地址
访问权限
字节地址
相关
章节
存储器内容
产品信息 区
启动寄存 器初始化 文件
寄存器初 始化文件
Cr ypt o1密匙
表 6-1
6.2
字节
含意
产品信息区
0
1
2
2
E PROM 存储器结构图
只读
3
4
5
6
7
8
RFU
产品类型标识
表 6-2
9
10
11
产品序列号
12
13
14
15
CRC
内部
产品信息区
产品类型标识:
MF RC500 是产品系列的第一个产品 产品系列的每一个成员都有其唯一的产品类型标识
产品类型
标识的值如下表所示
产品类型标识
字节
0
1
2
3
4
值
30hex
88hex
F8hex
00hex
XXhex
表 6-3
产品类型标识定义
30
产品序列号
MF RC500 有一个 4 字节的序列号
每个器件的序列号都是唯一的
内部
3 个字节保存内部微调参数
CRC
产品信息区的内容通过一个 CRC 字节保证安全
6.3
该 CRC 在启动时检测
寄存器初始化文件 读/写
从 10 到 2F 地址范围内的寄存器初始化在初始化阶段通过启动寄存器初始化文件自动完成 此外 用
户可以通过执行 LoadConfig 命令初始化 MF RC500 寄存器
注
y 页寄存器
地址
10
18
20
28
跳过不进行初始化
y 确认所有的 PreSet 寄存器都没有改变
y 确认所有保留将来之用的寄存器位
6.3.1 启动寄存器初始化文件
RFU 都设为 0
读/写
2
E PROM 存储器块地址 1 和 2 的内容用于在初始化阶段自动对 MF RC500 寄存器 10 到 2F 初始化 制
造时写入 E2PROM 的默认值见章节 6.3.2
分配如下
2
E PROM 字节地址
寄存器地址
备注
10hex(块 1
10hex
跳过
11hex
11hex
复制
…
…
…
2Fhex
复制
2Fhex(块 1
字节 0)
字节 0)
表 6-4
启动时寄存器初始化字节分配
31
6.3.2
启动寄存器初始化文件的装载内容
在产品测试阶段 启动寄存器初始化文件使用下表所列出的值进行初始化 每次上电的初始化阶段这
些值都写入 MF RC500 寄存器
2
E PROM
寄存器
字节地址
地址
10
10
00
页
11
11
58
TxControl
值
描述
用户自由使用
发送脚 TX1 和 TX2 关闭 桥驱动器配置和调制器由内部数字
电路驱动
12
12
3F
CwConductance TX1 和 TX2 内阻最小
13
13
3F
PreSet13
14
14
19
PreSet14
15
15
13
ModWidth
16
16
00
PreSet16
17
17
00
PreSet17
18
18
00
页
19
19
73
RxControl1
1A
1A
08
DecoderControl 位冲突在数据流中总是表现为高
1B
1B
AD
BitPhase BitPhase 设置为标准配置
1C
1C
FF
RxThreshold
1D
1D
00
PreSet1D
1E
1E
41
RxControl2 Q-时钟用于接收器
Miller 脉冲编码的脉冲宽度设置为标准配置
用户自由使用
放大器增益最大
MinLevel 和 CollLevel 设置为最大
接收器自动关闭 打开 解码器由内部
模拟电路驱动
1F
1F
00
ClockQControl
Q-时钟自动校准
20
20
00
页
21
21
06
RxWait
22
22
03
ChannelRedundancy 信道冗余根据 ISO14443A 设置
23
23
63
CRCPreSetLSB CRC 预设值根据 ISO14443A 设置
24
24
63
CRCPreSetMSB CRC 预设值根据 ISO14443A 设置
25
25
00
PreSet25
26
26
00
MFOUTSelect 管脚设置为低
27
27
00
PreSet27
28
28
00
页
29
29
08
FIFOLevel
2A
2A
07
TimerClock:TPreScaler 设置为标准配置
2B
2B
06
TimerControl:定时器在发送结束时启动 接收开始时停止
2C
2C
0A
Timerreload:TReloadValue 定时器单元预设值设置为标准配置
2D
2D
02
IRQPinConfig:管脚 IRQ 设置为高阻态
2E
2E
00
PreSet2F
2F
2F
00
PreSet2F
打开
用户自由使用
帧保护时间设置为 6 位时钟
用户自由使用
表 6-5
WaterLevel FIFO 缓冲区警戒值设置为标准配置
定时器单元重启功能关闭
启动寄存器初始化文件的装载内容
32
6.3.3
寄存器初始化文件
读/写
2
E PROM 存储器从块地址 3 到 7 的内容可用于 MF RC500 寄存器 10 到 2F 的初始化 通过执行
这需要一个 2 字节的变量用作初始化处理时 E2PROM 的起始字节地址
LoadConfig 命令实现
分配如下
2
寄存器地址
备注
2
10hex
跳过
2
E PROM 起始字节地址+1
11hex
复制
…
…
…
2Fhex
复制
E PROM 字节地址
E PROM 起始字节地址
2
E PROM 起始字节地址+31
表 6-6
启动时用于寄存器初始化的字节分配
寄存器初始化文件大到足够装下两套初始化值并剩余一个块(16 字节)留给用户使用
注 寄存器初始化文件可由用户读写
6.4
Crypto1 密匙
6.4.1
因此
这些字节可用于保存用户作其它用途的特定数据
只写
密匙格式
2
要在 E PROM 中保存一个密匙 必须以特定的格式写入
位 低半字节 和从 k4 到 k7 的高 4 位 高半字节
每个密匙字节必须分成从 k0 到 k3 的低 4
每半个字节在一个字节中保存两次 两个半字节之一
按位取反 该格式是 LoadKeyE2 见 16.8.1 和 LoadKey 见 16.8.2 命令连续执行的预处理 如下表所示
0(LSB)
主密匙字节
主密匙位
1
5(MSB)
k7 k6 k5 k4 k7 k6 k5 k4 k3 k2 k1 k0 k3 k2 k1 k0 k7 k6 k5 k4 k7 k6 k5 k4 k3 k2 k1 k0 k3 k2 k1 k0
k7 k6 k5 k4 k7 k6 k5 k4 k3 k2 k1 k0 k3 k2 k1 k0
E2PROM 字
n
n+1
n+2
n+3
n+10
n+11
5A
F0
5A
E1
5A
A5
节地址
例
表 6-7
例
密匙保存格式
实际的密匙 A0A1A2A3A4A5hex 的值 5AF05AE15AC35AB45AA5hex 必须写入 E2PROM
注 尽管有可能将其它格式的数据装入 E2PROM 的密匙存储区 但这样一个密匙不可能获得有效的卡
LoadKeyE2 命令将失败
验证
6.4.2
2
E PROM 中的密匙存储
MF RC500 在 E2PROM 中保留了 384 字节用于保存 Crypto1 密匙 它不使用存储器分割 反映了密匙
存储的 12 字节结构 因此
专用存储区的每个字节都可以是密匙的起始字节
例 如果一个密匙从一个 E2PROM 块的最后一个字节开始 例如 密匙字节保存在 12Fhex
接下来
2
的字节保存在下一个 E PROM 块 例如 密匙字节 1 保存在 130hex 字节 2 保存在 131hex 而字节 11 保存
在 13Ahex
一个密匙占用 384 字节存储区中的 12 个字节
在 E2PROM 中可以保存 32 个不同的密匙
注 不可能将一个密匙装入超过 E2PROM 字节地址 1FFhex 的位置
7
FIFO 缓冲区
7.1
概述
MF RC500 具有一个 8
64 位的 FIFO 缓冲区 它起到一个并行-并行转换器的作用
和 MF RC500 之间输入和输出的数据流
7.2
7.2.1
它缓冲微处理器
这样最高可以处理 64 字节长的数据流而不需要考虑时限
访问 FIFO 缓冲区
访问规则
33
FIFO 缓冲区输入和输出数据总线连接到 FIFOData 寄存器
FIFO 缓冲区并将内部 FIFO 缓冲区写指针加一
对该寄存器的写操作会将一个字节存入
对该寄存器的读操作显示保存在 FIFO 缓冲区的内容并将
FIFO 缓冲区读指针加一 写和读指针之间的距离可通过读 FIFOLength 寄存器获得
当微处理器启动一个命令
MF RC500 可以在命令处理时根据这条命令访问 FIFO 缓冲区 物理上只
存在一个 FIFO 缓冲区 可用于输入和输出指向 因此微处理器必须考虑到不要采用不确定的方式访问 FIFO
缓冲区
下表所示为在命令处理时对 FIFO 访问的汇总
微处理器允许的操作
有效命令
写 FIFO
读 FIFO
StartUp
-
-
Idle
-
-
Transmit
备注
-
Receive
-
Transceive
微处理器必须知道命令的实际状态(发送还是接收)
WriteE2
-
ReadE2
微处理器必须准备变量,只允许读出
LoadKeyE2
-
LoadKey
-
Authent1
-
Authent2
-
-
LoadConfig
-
CalcCRC
表 7-1
7.3
控制 FIFO 缓冲区
除了对 FIFO 缓冲区进行读和写之外
FIFOLength 变为 0
7.4
FIFO 缓冲区允许的操作
FIFOOvfi 清零
FIFO 缓冲区的指针可以通过置位 FlushFIFO 复位
结果就是
实际保存的值再不能被访问 FIFO 缓冲区可装入其它的 64 个字节
FIFO 缓冲区的状态信息
微处理器可以获得关于 FIFO 缓冲区状态的数据
y 已经保存在 FIFO 缓冲区中字节数 FIFOLength
y 警告
FIFO 缓冲区已经很满 HiAlert
y 警告
FIFO 缓冲区已经很空 LoAlert
y 指示
尽管 FIFO 缓冲区已满 仍写入字节
FIFOOvfl
FIFOOvfl 只能通过设置位 FlushFIFO
清零
MF RC500 可产生一个中断信号
y 如果 LoAlertIRq 设为 1
当 LoAlert 变为 1 时将使脚 IRQ 有效
y 如果 HiAlertIRq 设为 1
当 HiAlert 变为 1 时将使脚 IRQ 有效
如果可以保存在 FIFO 缓冲区内的字节数只有 WaterLevel 或更少
标志 HiAlert 置位
由下列等式产
生
HiAlert
64
FIFOLength
≤ WaterLevel
如果实际保存在 FIFO 缓冲区内的字节数只有 WaterLevel 或更少 标志 LoAlert 置位 由下列等式产
生
LoAlert
FIFOLength ≤ WaterLevel
34
7.5
FIFO 缓冲区寄存器概述
下表所示为与 FIFO 缓冲区有关的标志
标志
地址
寄存器
寄存器,位的位置
FIFOLength
FIFOLength
0x04
FIFOOvfl
ErrorFlag
0x0A 位 4
FlushFIFO
Control
0x09
位0
HiAlert
PrimaryStatus
0x03
位1
HiAlertIEn
InterruptIEn
0x06
位1
HiAlertIRq
InterruptIRq
0x07
位4
LoAlert
PrimaryStatus
0x03
位0
LoAlertIEn
InterrupIEn
0x06
位0
LoAlertIRq
InterruptIRq
0x07
位0
WaterLevel
FIFOLevel
0x29
位 5~0
表 7-2
8
以字母顺序排列
位 6~0
与 FIFO 缓冲区相关的寄存器
中断请求系统
8.1
概述
MF RC500 通过在 PrimaryStatus 寄存器中设置 IRq 位指示一定的事件并使 IRQ 脚有效 IRQ 脚上的信
号可用于具有中断处理能力的微处理器产生中断
8.1
中断源概述
下表所示为完整的中断标志
生的中断
这就使微处理器的软件更为有效
相关的中断源和置位的条件
中断标志 TimerIRq 指示由定时器单元产
TimerIRq 置位的条件是定时器减到 0 或者 TPreLoad 值(如果 TAutoRestart 使能)
TxIRq 位指示由不同中断源产生的中断 如果发送器有效而且状态从发送数据到帧结束 发送器单元
自动将中断标志位置位
CRCReady=1 指示
CRC 协处理器在处理完 FIFO 缓冲区内所有数据后将 TxIRq 置位
2
如果 E PROM 编程结束 TxIRq 置位
通过位 E2Ready=1 指示
当接收数据的结束被检测到时通过 RxIRq 标志指示中断
Idle 时 标志 IdleIRq 置位 如果 HiAlert 位置 0
WaterLevel 指示的边界
这通过标志
如果命令结束并且命令寄存器的内容变为
标志 HiAlertIRq 置位
这表示 FIFO 缓冲区已到达由位
见章节 7.4
如果 LoAlert 位置 0 标志 LoAlertIRq 置位 这表示 FIFO 缓冲区已到达由位 WaterLevel 指示的边界
见章节 7.4
中断标志
中断源
自动置位
TimerIRq
定时器单元
定时器从 1 计数到 0
发送器
数据流
CRC 协处理器
FIFO 缓冲区所有数据都已处理
TxIRq
2
8.2.1
结束
E PROM
FIFO 缓冲区所有数据都已编程
RxIRq
接收器
数据流
IdleIRq
命令寄存器
命令执行完成
HiAlertIRq
FIFO 缓冲区
FIFO 缓冲区变满
LoAlertIRq
FIFO 缓冲区
FIFO 缓冲区变空
表 8-1
8.2
发送到卡
中断源
中断请求处理的实现
控制中断及其状态
35
从卡接收
结束
MF RC500 通过置位 InterruptRq 寄存器中的相应位将中断请求源告知微处理器 每个中断相关的请求
位可由 InterruptEn 寄存器中的中断使能位屏蔽
寄存器
位7
位6
位5
位4
位3
位2
位1
位0
InterruptEn
SetIEn
RFU
TimerIEn
TxIEn
RxIEn
IdleIEn
HiAlertIEn
LoAlertIEn
InterruptRq
SetIRq
RFU
TimerIRq
TxIRq
RxIRq
IdleIRq
HiAlertIRq
LoAlertIRq
表 8-2
中断控制寄存器
如果任意一个中断请求位置位(表示中断请求被挂起)并且对应的中断使能位置位
器中的状态标志 IRq 置位 此外
不同的中断源可同时设为有效
PrimaryStatus 寄存
因此所有的中断请求位都相
或
并连
接到标志 IRq 再到脚 IRq
8.2.2
访问中断寄存器
中断请求位由 MF RC500 内部状态机自动置位
另外
微处理器可以对其进行访问以置位或清零
InterruptRq 和 InterrupEn 寄存器的特殊实现允许改变其中单个位而不影响其它位 如果指定的中断寄
存器要设置为 1 Setlxx 必须置位并同时将指定的位置位 反过来 如果指定的中断标志要清零 将 0 写入
Setlxx 同时中断寄存器的指定地址必须设置为 1 如果在设置或清零过程中不改变一个位的内容 必须将
指定的位地址写入 0
例 将 3Fhex 写入 InterruptRq 寄存器 由于 SetIRq 清零而其它位置位 这将清零所有位 写入 81hex
将位 LoAlertIRq 置位并保留其它位不变
8.3
管脚 IRQ 的配置
状态标志 IRq 的逻辑电平通过管脚 IRQ 表现出来
此外
管脚 IRQ 的信号也可由 IRQPinconfig 寄存
器的位进行控制
y IRQInv 如果置 0
IRQ 脚上的信号等于 IRq 位的逻辑电平 如果置 1
IRQ 脚上的信号与 IRq
位的逻辑电平相反
y IRQPushPull
如果置 1
IRQ 脚具有标准的 CMOS 输出特性 否则为开漏输出
个外部上拉电阻使其为高电平
注
8.4
见 11.2
在复位过程中
IRQInv 置 1 而 IRQPushPull 置 0
这使 IRQ 脚为高阻态
中断请求系统寄存器概述
下表所示为中断请求系统的相关标志
标志
以字母顺序排列
寄 存器
地址
寄 存 器,位 的 位 置
HiAlertIEn
InterruptEn
0x06, bit 1
HiAlertIRq
InterruptRq
0x07, bit 1
IdleIEn
InterruptEn
0x06, bit 2
IdleIRq
InterruptRq
0x07, bit 2
IRq
PrimaryStatus
0x03, bit 3
IRQInv
IRQPinConfig
0x07, bit 1
IRQPushPull
IRQPinConfig
0x07, bit 0
LoAlertIEn
InterruptEn
0x06, bit 0
LoAlertIRq
InterruptRq
0x07, bit 0
RxIEn
InterruptEn
0x06, bit 3
RxIRq
InterruptRq
0x07, bit 3
SetIEn
InterruptEn
0x06, bit 7
SetIRq
InterruptRq
0x07, bit 7
TimerIEn
InterruptEn
0x06, bit 5
TimerIRq
InterruptRq
0x07, bit 5
TxIEn
InterruptEn
0x06, bit 4
TxIRq
InterruptRq
0x07, bit 4
36
而且必须接一
表 8-3
9
与中断请求系统有关的寄存器
定时器单元
9.1
概述
MF RC500 内部有一个定时器
关的任务
它由片内 13.56MHz 时钟驱动
微处理器可使用该时钟管理与定时有
定时器单元可配置为以下几种方式之一
y 超时计数器
y 看门狗
y 停止监视
y 可编程单次触发
y 周期触发
定时器单元可用于测量两个事件的时间间隔或指示一个发生在特定时间后的特定事件 定时器可由事
件触发 但是定时器自身不会影响任何内部事件 例如 数据接收时的定时溢出不影响接收的处理
此外
几个定时器相关的标志置位并可用于产生中断
9.2
9.2.1
定时器单元的实现
方框图
下面所示为定时器模块的方框图
TReloadValue [7:0]
TStartTxBegin
TxBegin Event
TStartTxEnd
parallel in
TxEnd Event
start counter /
parallel load
TAutoRestart
TStartNow
Q S
TRunning
R
Q
TStopNow
stop counter
Counter Module
(x <= x-1)
RxEnd Event
TStopRxEnd
RxBegin Event
TStopRxBegin
TPreScaler [4:0]
Clock
Divider
13.56 MHz
>clock
parallel out
to Parallel Interface
TimerValue [7:0]
Counter = 0 ?
to Interrupt Logic: TimerIRq
图 9-1
定时器模块方框图
定时器单元是以几个带有启动和停止计数器的使能标志的事件组合来设计的
TStartTxBegin 置位使能利用定时器单元对数据接收进行控制 此外
例如
将位
第一个接收位由 TxBeginEvent 指示
该组合在定义 TReloadValue 后启动计数器 如果计数器值为零或定义的停止事件发生了 定时器自动停止
37
9.2.2
控制定时器单元
定时器单元的主要部分是一个倒计数器 只要倒计数器不等于零 它就在每个定时器时钟减一 如果
TAutoRestart 使能 定时器不会减到零
减到 1 时
定时器在下个时钟将 TimerReload 值重新装入
定时器通过将 TimerReload 寄存器值装入计数器模块立即启动 可由下列的事件之一触发
y 第一个位发送到卡
TxBegin 事件
y 最后一个位发送到卡
且 TStartTxBegin 为 1
TxEnd 事件
y 位 TStartNow 设置为 1
且 TStartTxEnd 为 1
通过微处理器
注 每个启动事件都将 TimerReload 寄存器的值重装入定时器
因此
定时器是重复触发的
定时器
可配置为下列事件之一停止
y 来自卡第一个有效位的接收
RxBegin 事件 且 TStopRxBegin 设置为 1
y 来自卡最后一个有效位的接收
RxEnd 事件
且 TStopRxEnd 设置为 1
y 计数器模块减到 0 且 TAutoResetstart 设置为 1
y 位 TStopNow 设置为 1
装入新值 例如
通过微处理器
将 0 装入 TimerReload 寄存器不会立即影响计数器 它只有到下次启动事件才会影
响计数器 因此 TimerReload 寄存器即使在定时器单元计数当中也可改变 改变 TimerReload 寄存器的结
果将在下次启动事件后显现出来
如果置位 TStopNow 将计数器停止
9.2.3
TimerIRq 不会发出信号
定时器单元时钟和周期
定时器单元的时钟通过一个可编程分频器由 13.56MHz 片内时钟驱动
时钟的选择由 TPreScaler 寄存
器完成 它根据下面的公式定义定时器单元频率
TTimerClock =
1
f TimerClock
=
2T PreScaler
13.56MHz
TPreScaler 寄存器的可能值从 0 到 21 时间 TTimerClock 的最小值大约为 74ns 最大 150ms 上次启动事
件所经过的时间以下式计算
TTimer =
最小时间约为 74
9.2.4
TReLoadValue - TimerValue
f TimerClock
最大约为 40s
定时器单元的状态
SeconddaryStatus 寄 存 器 中 的 TRunning 位 显 示 定 时 器 的 当 前 状 态
TReloadValue 启动定时器并将状态标志 TRunning 置 1
重新置 0
只要状态标志 TRunning 置 1
任何已配置的启动事件以
任何已配置的停止事件停止定时器并将 TRunning
TimerValue 寄存器就在下个定时器时钟改变
实际的定时器单元内容只能通过 TimerValue 寄存器读出
9.3
9.3.1
定时器单元的使用
超时和看门狗
在设定 TRloadValue 启动定时器后 定时器单元以一个特定的事件启动并减少 TimerValue 寄存器的值
如果发生特定的停止事件 例如从卡接收到一个位
定时器单元停止
不产生中断
另一方面 如果没有产生停止事件 例如卡没有在期望的时间内响应 定时器值减到 0 并产生一个定
时器中断请求
9.3.2
这就告知微处理器期望的事件没有在给定的时间 TTimer 内发生
停止监视
在特定启动和停止事件之间的 TTimer 可以由微处理器通过 MF RC500 定时器测量
TReloadValue 并启动计数 如果定义的停止事件发生 定时器停止
38
时间可由下式计算得到
定时器装入
∆T
TReloadvalue Timervalue *TTimer
如果定时器没有减到 0
9.3.3
可编程单次触发定时器
微处理器启动定时器单元并等待定时器中断
9.3.4
周期性触发
如果微处理器置位 TAutoReset
9.4
在指定的时间 TTimer 后产生中断
每经过时间 TTimer 周期性产生中断请求
定时器单元寄存器概述
下表所示为定时器单元相关的寄存器 以字母顺序排列
标志
寄存器
地址
TAutoRestart
TimerClock
0x2A, bit 5
TimerValue
TimerValue
0x0C, bits 7-0
TimerReloadValue
TimerReload
0x2C, bits 7-0
TPreScaler
TimerClock
0x2A, bits 4-0
TRunning
SecondaryStatus
0x05, bit 7
TStartNow
Control
0x09, bit 1
TStartTxBegin
TimerControl
0x2B, bit 0
TStartTxEnd
TimerControl
0x2B, bit 1
TStopNow
Control
0x09, bit 2
TStopRxBegin
TimerControl
0x2B, bit 2
TStopRxEnd
TimerControl
0x2B, bit 3
10
节电模式
10.1
硬件掉电
硬件掉电通过在脚 RSTPD 置高电平使能 这将关闭所有的内部电流消耗
输入缓冲区都独立于输入端并由内部定义(RSTPD 除外)
包括振荡器
输出脚在固定的值冻结
如下表所示
符号
脚
类型
描述
OSCIN
1
I
不独立于输入
IRQ
2
O
高阻
MFIN
3
I
独立于输入
MFOUT
4
O
低
TX1
5
O
高
TX2
7
O
低
NWR
9
I
独立于输入
NRD
10
I
独立于输入
NCS
11
I
独立于输入
D0~D7
13~20
I/O
独立于输入
ALE
21
I
独立于输入
A0
22
I/O
独立于输入
A1
23
I
独立于输入
A2
24
I
独立于输入
AUX
27
O
高阻
39
拉低到 AVSS
所有的数字
RX
29
I
不变
VMID
30
A
拉低到 AVDD
RSTPD
31
I
不变
OSCOUT
32
O
高
表 10
10.2
硬件掉电时管脚的信号
软件掉电
将 Control 寄存器中的位 PowrDown 置位后立即进入该模式.所有的内部电流消耗都关闭(包括振荡器缓
冲区)
与硬件掉电不同 数字输入缓冲区不独立于输入端 但保持其功能 数字输出脚不改变状态 重新设
置 Control 寄存器中的 PowerDown 后 需要 512 个时钟才能退出软件掉电模式 这通过 PowerDown 位自身
来指示
对其重新设置不会立即清除它 但是当离开软件掉电模式时
注 如果使用内部振荡器
10.3
必须考虑到它由 AVDD 供电
它由 MF RC500 自动清零
将会花费一定的时间等待振荡器稳定下来
待机模式
通过置位 Control 寄存器中的 StandBy 位立即进入该模式
所有内部电流消耗都关闭
包括内部数字
时钟缓冲区但不包括振荡器缓冲区
与硬件掉电模式不同 数字输入缓冲区没有与输入端隔离而是保持其功能 数字输出脚不改变其状态
与软件掉电模式不同 振荡器不需要时间唤醒
在重新设置 Control 寄存器中的 StandBy 位后 需要脚 OSCIN 上的 4 个时钟退出待机模式
这通过
StandBy 位自身来指示 重新设置它不会立即清除它 但是当退出待机模式时 它由 MF RC500 自动清零
10.4
接收器掉电
当接收器不需要时将其关闭以节电并在从卡接收数据之前重新打开 这通过 RxAutoPD 置位自动完成
如果将其设置为 0
11
接收器持续打开
启动阶段
启动时执行的阶段如下图所示
图 11-1
11.1
启动过程
硬件掉电状态
下列情况可激活硬件掉电模式
y 由脚 DVDD 上电导致的上电复位
在 DVDD 低于数字复位阀值时激活
y 由脚 AVDD 上电导致的上电复位
在 AVDD 低于模拟复位阀值时激活
y 脚 RSTPD 上的高电平
11.2
在脚 RSTPD 为高时激活
复位阶段
在硬件掉电阶段之后自动跟随复位阶段 这将花费 512 个时钟 在复位阶段中 一些寄存器位由硬件
预置 其各自的复位值见每个寄存器的描述
注 如果使用内部振荡器
见 5.2
必须考虑到它由 AVDD 供电
40
将会花费一定的时间等待振荡器稳定下来
11.3
初始化阶段
在复位阶段后自动跟随初始化阶段
这将花费 128 个时钟 在初始化阶段中 E2PROM 块 1 和 2 的内
容复制到寄存器 10~2FH 见 6.3
注 在产品测试时
11.4
MF RC500 以默认配置值初始化
这将微处理器配置器件的错误减到最小
初始化并行接口类型
由于不同的微处理器接口类型
见 4.3
具有不同的连接
所以执行一个特定时序使能检测正确的微
处理器类型并同步微处理器和 MF RC500 的启动
在整个启动阶段中 Command 值读出为 3FH 在初始化阶段的结束 MF RC500 自动输入 Idle 命令
结果 Command 值变为 00H
为了确保对微处理器接口类型正确的检测
必须执行下面的时序
y 读 Command 寄存器 直到 Command 的 6 位值为 00H 内部初始化阶段此时结束 MF RC500
准备接收控制
y 将 80H 写入 Page 寄存器以初始化微处理器接口
y 读 Command 寄存器
如果该值为 00H 微处理器接口初始化成功
在接口初始化之后 通过将 0X00 写入页寄存器可激活线性地址模式
12
振荡器电路
图 12-1
石英晶振的连接
提供给 MF RC500 的时钟作为同步系统编码器和解码器的时基 因此时钟的稳定性是实现正确操作的
一个重要因素
要获得最佳性能
时钟的抖动必须尽可能小
可通过使用带有推荐电路的内部时钟缓冲区
来实现 如果使用外部时钟源 时钟信号必须输入到 OSCIN 这种情况下要特别注意时钟的占空比和抖动
时钟的质量必须进行鉴定以符合在 20.5.3 中的规格
备注
13
建议不使用外部时钟源
发送器管脚 TX1 和 TX2
TX1 和 TX2 上传递的信号是由包络信号调制的 13.56MHz 能量载波 只需要很少的用于匹配和滤波 见
18 的无源元件就可以直接驱动天线 因此 输出电路设计成具有非常低的内阻 TX1 和 TX2 的信号可通
过 TxControl 寄存器进行控制
41
13.1
TX1 和 TX2 的配置
TX1 几种可能的配置见下表
TxControl 中的寄存器配置
包络
TX1 上的信号
0
X
低
1
0
低
1
1
13.56MHz 能量载波
TX1RFEn
表 13-1
管脚 TX1 的配置
TX2 几种可能的配置见下表
TxControl 中的寄存器配置
TX2RFEn
TX2CW
InvTX2
0
X
X
0
0
1
0
1
TX2 上的信号
X
低
0
低
1
13.56MHz 能量载波
0
高
1
0
X
1
X
表 13-2
13.2
包络
13.56MHz 能量载波
相对 TX1 有 180º相移
13.56MHz 能量载波
13.56MHz 能量载波
相对 TX1 有 180º相移
管脚 TX1 的配置
操作距离 VS. 功耗
通过使用不同天线匹配的电路和/或改变天线驱动电压脚 TVDD 的电压
用户可能会发现在最大可操
作距离和功耗之间有一个折衷方案
13.3
脉冲宽度
包络传递要发送到卡的据信号信息
根据 Miller 码对数据信号进行编码来完成
号的每个暂停编码为一定长度的脉冲 脉冲宽度可通过 ModWidth 寄存器进行调节
此处
14
14.1
此外
Miller 编码信
计算如下
fc=13.56MHz
接收器电路
概述
MF RC500 集成了一个正交调制电路
该电路从输入到 RX 脚的 13.56MHz ASK 调制信号中解析出
ISO14443-A 副载波信号 正交调制器使用两个不同的时钟 Q-和 I-时钟 它们之间的相位差为 90º 得到的
副载波信号经过放大
滤波然后输入到相关性电路
求出相关性结果
数字化后输入到数字电路
所有的处理单元都可进行调节以获得最优性能
14.2
方框图
图 14-1 所示为计数器电路方框图 接收处理包括几个步骤 首先完成 13.56MHz 载波信号的正交解调
要获得最优性能 建议使用时钟 Q 自动校准 见 14.3.1
个相关性电路计算期望的和接收的数据之间的相似度
FIFO 寄存器 在此电路中可进行几个调节步骤
42
解调的信号由一个可调节的放大器进行放大 一
在计算和数字化电路中有效位被检测出来然后送到
I
I
I
图 14-1
I
接收器电路方框图
用户可以观察通过接收器的信号 如上图所示 使用 TestAnaSelect 寄存器一次可输出一个信号到 AUX
脚
详见 19.3
14.3
对接收器进行操作
通常情况下 在启动初始化文件中的默认设定适用于 MF RC500 与 MIFARE 卡之间的数据通信 但是
在有些环境下特定的用户设定会有更好的性能
14.3.1
时钟 Q 自动校准
接收器的正交解调产生一个相位信号 I 时钟和一个 90º
和 I-时钟的相位差必须为 90º
Q 时钟.为了实现优化的解调性能,Q相移信号
MF RC500 的复位阶段之后自动进行校准处理
在
也可以在每次收发命令
的结束进行自动校准 要实现这一点 必须将 ClkQCalib 位设置为 0 将该位配置为 1 将禁止所有的自动校
准
复位阶段后除外
也可以通过软件启动一次自动校准 将位 ClkQCalib 从 0 变为 1
注 Q 时钟的自动校准过程最大为 65 个振荡周期
大约为 4.7us
ClkQDelay 的值与 Q-和 I-时钟之间的相移成比例 状态标志 ClkQ180Deg 表示 Q-和 I-时钟之间的相移
大于 180º
注
y 启动配置文件使能在复位后的 Q 时钟自动校准
y 当 ClkQCalib 为 1
不执行自动校准
将该位保持 1 用于永远禁止自动校准
y 可通过微处理器将数据写入 ClkQDelay 目的是禁止自动校准和由软件来预置延迟
但要注意
由软件配置延迟值要求在这之前 ClkQCalib 已经置位并且至少经过 4.8us 每次写入延迟值时都
必须将 ClkQCalib 位设置为 1
如果 ClkQCalib 为 0
盖
43
已配置的延迟值将会被下次自动校准所覆
14.3.2
放大器
解调信号必须由可变的放大器放大以实现最佳性能
放大器的增益可以通过寄存器位 Gain[1:0]调节
见下表
增益因素
增益因素[dB]
仿真结果
仿真结果
0
22
26.9
1
35
30.9
2
82
38.3
3
130
42.2
寄存器设定
表 14-1
14.3.3
内部放大器的增益因素
相关性电路
相关性电路计算接收到的和期望的信号之间的匹配程度 输出是对接收信号中所期望的信号的振幅进
行测量
Q-和 I-信道都会执行
为了优化性能
BitPhase[7:0]来定义
14.3.4
相关器对每个输入信道传递两路输出
相关性电路需要相位信息用于来自卡的信号
结果总共有 4 路输出信号
该信息必须由微处理器利用寄存器
该值定义了发送器和接收器之间的相位是 tBitPhase 1/13.56MHz 的倍数
计算和数字化电路
对每半位 Manchester 编码信号都计算相关性结果 计算和数字化电路根据两个半位的信号强度确定当
前位是否有效 如果有效
该位的值或当前位间隔是否包含一个位冲突
为了以优化的方式完成该任务
y MinLevel
用户可选择下列级别
定义认为有效的较强半位信号的最小信号强度
y CollLevel 定义较弱半位 Manchester 编码信号必须超过的最小信号强度 用于产生一个位冲突
如果信号强度低于该值
就可以明确的决定是 1 还是 0
CollLevel 定义相对于较强半位幅值的
最小信号强度
在数据发送之后
一定时间内不允许卡发送它的响应
时间的长度在 RxWait 寄存器中设置
在 ISO14443 标准中这叫做帧保护时间 这段
RxWait 寄存器定义在数据发送到卡的若干个位时间后打开接收器
如果寄存器位 RcvClkSelI 置位 I-时钟作为相关器和计算电路的时钟 如果置 0 则使用 Q-时钟
注
推荐使用 Q-时钟
15
串行数据转换
15.1
概述
MF RC500 包含两个主要模块 一个数字电路
路 包括调制器 天线驱动器 接收器和放大电路
包括状态机
编码器和解码器逻辑等
和一个模拟电
这两个模块的接口可配置为这样一种方式 即接口信
号可输出到管脚 MFIN 和 MFOUT
这样的拓扑结构支持将 MF RC500 的模拟部分与其它器件的数字部分连接
15.2
方框图
图 15-1 所示为串行数据转换
其中有三个不同的转换开关可以使 MF RC500 实现不同的配置
串行数据转换还可在设计同步时使用或用于测试发送和接收的数据 19.2 讲述了在串行数据转换处的
模拟测试信号和测量
44
Select
MfOut
7
3
4
6
Manchester
Manchester
Transmitt
Envelope
withNRZ
Subcarrier
5
1
0
RFU RFU
3
1
2
0
1
0
图 15-1
串行数据转换
下面的章节讲述了用于配置和控制串行数据转换的相关寄存器
15.3
与串行数据相关的寄存器
标志 DecoderSource 以下列方式定义用于内部 Manchester 解码器的输入信号
DecoderSource
解码器的输入信号
0
恒为 0
1
模拟部分的输出
2
直接连接到 MFIN 脚 由 Manchester 编码信号调制的 847.5kHz 副载波信号除外
3
直接连接到 MFIN
此为默认配置
Manchester 编码信号除外
ModulatorSource 定义调制发送 13.56MHz 能量载波的信号
调制信号驱动 TX1 和 TX2
ModulatorSource
调制器的输入信号
0
恒为 0
脚 TX1 和 TX2 的能量载波关闭
1
恒为 1
脚 TX1 和 TX2 持续传递的能量载波
2
来自内部编码器的调制信号
3
直接连接到 MFIN
包络
此为默认配置
Miller 脉冲编码信号除外
MFOUTSelect 选择输出到脚 MFOUT 的信号
ModulatorSource
调制器的输入信号
0
恒为低
1
恒为高
2
来自内部编码器的调制信号
3
要发送的串行数据流 与 MFOUTSelect=2 相同 单不由 Miller 脉冲编码器编码
4
接收器电路的输出信号
5
副载波调制器的输出信号
6
RFU
7
RFU
包络
卡调制信号重新产生和延迟
45
Manchester 编码卡信号
注
要使用 MFOUTSelect
15.4
测试信号控制位 SignalToMFOUT 必须为 0
MFIN 和 MFOUT 的使用
15.4.1
有源天线的概念
MF RC500 模拟电路可经由脚 MFIN 和 MFOUT 使用
下面的寄存器必须进行一些设定:
寄存器
值
信号
MF RC500 脚
ModulatorSource
3
Miller 脉冲编码
MFIN
MFOUTSelect
4
带副载波的 Manchester 编码
MFOUT
DecoderSource
X
-
-
另一方面,MF RC500 数字电路
可经由脚 MFIN 和 MFOUT 使用
下面的寄存器必须进行一些设定:
寄存器
值
信号
MF RC500 脚
ModulatorSource
X
-
-
MFOUTSelect
2
Miller 脉冲编码
MFOUT
DecoderSource
2
带副载波的 Manchester 编码
MFIN
两个 MF RC500 器件(按照上面描述的方式配置)可通过脚 MFOUT 和 MFIN 直接相连
15.4.2
驱动两个 RF 部分
有可能将一个无源天线连接到脚 TX1,TX2 和 RX 经由合适的滤波器和匹配电路 并同时将一个有源
天线连接到脚 MFOUT 和 MFIN
16
16.1
在这样的配置下
两个 RF 部分可以由一个微处理器驱动
逐个地
MF RC500 命令集
概述
MF RC500 的状态由可执行特定的命令集的内部状态机决定 这些命令可通过将相应的命令代码写入
Command 寄存器来启动
16.2
处理一个命令所需要的变量和/或数据主要通过 FIFO 缓冲区进行交换
常规的状态
y 每个需要数据流
或数据字节流
作为输入的命令会立即处理它在 FIFO 缓冲区中发现的数据
y 每个需要一定数目变量的命令只会当它从 FIFO 缓冲区接收到正确数目的变量时才会启动处理
y FIFO 缓冲区在命令启动时不会自动清零
因此
可以将命令变量和/或数据字节写入 FIFO 缓冲
区 然后再启动命令
y 每个命令
16.3
StartUp 命令除外
都可被微处理器通过写入新命令所中断
MF RC500 命令汇总
46
例如
Idle 命令
命令
代码
经由 FIFO 通过的 经由 FIFO 返
动作
所在章节
变量和数据
回的数据
-
-
16.3.2
-
-
16.3.3
运行复位和初始化阶段
StartUp
3FH
注:该命令不能通过软件,只能通过上电或
硬件复位启动
Idle
00H
无动作:取消当前执行的命令
Transmit
1AH
将数据从 FIFO 缓冲区发送到卡
16.4.1
数据流
启动接收器电路
注 在接收器实际启动之前 状态机经过
Receive
16H
寄存器 RxWait 配置的时间后才结束等待
-
数据流
16.4.2
数据流
16.4.3
-
16.5.1
数据流
16.5.2
-
16.8.1
-
16.8.2
-
16.8.3
-
16.8.4
-
16.6.1
-
16.6.2
注 由于该命令与 Transmit 命令无时序的关
系
因此可以只用于测试
将数据从 FIFO 发送到卡并在发送后自动
启动接收器
Transceive
1EH
注 在接收器实际启动之前 状态机经过 数据流
寄存器 RxWait 配置的时间后才结束等待
注 该命令是发送和接收的组合
从 FIFO 缓 冲 区 获 得 数 据 并 写 入 内 部 起始地址低字节
WriteE2
01H
E2PROM
起始地址高字节
数据字节流
2
从内部 E PROM 读出数据并将其放入 起始地址低字节
ReadE2
03H
FIFO 缓冲区
起始地址高字节
数据字节个数
注 密匙不能被读出
2
LoadKeyE2
0BH
将一个密匙从 E PROM 复制到密匙缓冲 起始地址低字节
区
起始地址高字节
从 FIFO 缓冲区读出密匙字节并将其放入 字节 0
LoadKey
19H
密匙缓冲区
字节 1
注
…
密匙必须以指定的格式准备
低
字节 11
执行 Crypto1 卡验证的第一部分
最高
卡的 Auth 命令
卡的模块地址
卡的序列号最低
Authent1
字节
0CH
卡的序列号字节 1
卡的序列号字节 2
卡的序列号最高
字节
Authent2
14H
使用 Crypto1 算法执行卡验证的第二部分
-
2
LoadConfig
07H
从 E PROM 读取数据并初始化 MF RC500 起始地址低字节
寄存器
起始地址高字节
启动 CRC 协处理器
CalcCRC
12H
注
CRC 计 算 结 果 可 从 寄 存 器 数据字节流
CRCResultLSB 和 CRCResultMSB 中读出
图 16-1
MF RC500 命令汇总
47
16.3.1
基本状态
16.3.2
STARTUP 命令 3FH
命令
代码
动作
变量和数据
返回的数据
-
-
运行复位和初始化阶段
StartUp
3FH
注:该命令不能通过软件,只能通过上
电或硬件复位启动
StartUp 命令运行复位和初始化阶段
不需要返回任何数据
它不能由微处理器启动
而是在下列事
件之后自动启动
y 脚 DVDD 上电引起的上电复位
y 脚 AVDD 上电引起的上电复位
y 脚 RSTPD 的下降沿
复位阶段通过异步复位定义一定的寄存器位 初始化阶段用取自 E2PROM 的值定义一定的寄存器 当
StartUp 命令结束时自动输入 Idle 命令
注
y 当 MF RC500 正在执行 StartUp 命令时 微处理器不能对 MF RC500 进行写操作 为了确认这一
点
微处理器应当查询 Idle 命令以确认初始化阶段的结束
y 当 StartUp 命令有效时
见 11.4
只能读出 MF RC500 的页 0
y StartUp 命令不能被微处理器中断
16.3.3
Idle 命令 00H
命令
代码
Idle
00H
动作
无动作
变量和数据
返回的数据
-
-
取消当前执行的命令
Idle 命令将 MF RC500 切换到非活动状态 在 Idle 状态中它等待下一个命令 该命令不需要或返回任
何数据 器件在完成一个命令时自动进入 Idle 状态 该情况下 MF RC500 同时通过置位 IdleIRq 初始化中
断请求
Idle 命令可由微处理器触发用于停止其它命令的执行
StartUp 命令除外
这种情况下不产生
IdleIRq
备注 使用 Idle 命令停止一个命令不会清除 FIFO 缓冲区的内容
16.4
与卡通信的命令
MF RC500 是一个完全兼容 ISO14443-A 的读卡芯片
片相比有更大的灵活性和普遍性
16.4.1
因此
该芯片的命令集与 MIFARE 专用读卡芯
下面的章节讲述用于卡通信的命令集
以 MIFARE 相关验证过程结束
Transmit 命令 1AH
命令
代码
动作
变量和数据
返回的数据
Transmit
1A
将数据从 FIFO 缓冲区发送到卡
数据流
-
Transmit 命令从 FIFO 缓冲区取出数据并将其送到发送器
该命令不返回任何数据
Transmit 命令只
能通过微处理器启动
16.4.1.1
Transmit 命令的工作
要发送数据必须满足下列条件之一
1.
所有要发送到卡的数据在 Idle 命令有效时写入 FIFO 之后将 Transmit 命令代码写入 Command 寄存器
2.
首先将 Transmit 命令代码写入 Command 寄存器
注 可用于最大长度为 64 字节的数据传输
由于 FIFO 中没有可用的数据 命令有效但发送并
未触发 当第一个数据字节写入 FIFO 时数据传输开始
为了在 RF 接口上产生一个连续的数据流
微处理器必须及时将下个数据送入 FIFO
3.
在 Idle 有效时 将要发送到卡的一部分数据写入 FIFO 之后将 Transmit 命令代码写入 Command 寄存
器 在 Transmit 命令有效时 微处理器可以将更多数据发送到 FIFO 发送器将其加入发送数据流中
48
注
但要求必须将数据及时送入 FIFO
可实现任意长度的数据发送
当发送器需要发送下一个字节以保持 RF 接口上数据流的连续而 FIFO 缓冲区为空时 Transmit 命令自
动终止 这导致内部状态机将状态 Transmit 转为 Idle
如果对卡的数据发送已结束 MF RC500 置位标志 TxIRq 以通知微处理器
备注
如果微处理器用 Idle 命令或其它命令覆盖了 Command 寄存器中的发送命令 发送在下个时钟
周期立即停止
16.4.1.2
这将产生与 ISO14443-A 不一致的输出信号
RF 信道冗余和帧
每个发送的帧都包含一个 SOF 帧起始 格式 之后为数据流并由 EOF 帧结束 结尾 这些发送时
序的不同阶段可通过观察 PrimaryStatus 寄存器中的 ModemState 进行监控 见 16.4.4 将 ChannelRedundancy
寄存器中的 TxCRCEn 位置位 计算 CRC 并加到数据流中 CRC 的计算取决于 ChannelRedundancy 寄存器
的设定
奇偶校验根据 ChannelRedundancy 寄存器
位 ParityEn 和 ParityOdd
的设定进行处理
16.4.1.3 位方式帧的发送
发送器可以配置为发送一个不完整的最后字节
要实现这一点
必须将 TxLastBits 设置为一个不为 0
的值 如下图所示
图 16-1
位方式帧的发送
上图显示了 ChannelRedundancy 寄存器中 ParityEn 置位时的数据流 所有完全发送的字节后面都带一
个奇偶校验位
但不完整字节后没有奇偶校验位
注 如果 TxLastBits 不等于 0
在发送之后
TxLastBits 自动清零
CRC 的产生必须禁止 可通过清零 ChannelRedundancy 寄存器中的
TxCRCEn 实现
16.4.1.4
超过 64 字节帧的发送
要产生一个大于 64 字节的帧 微处理器必须在 Transmit 命令有效时将数据写入 FIFO 缓冲区 当启动
实际数据流的最后一位的发送时
检测时间以下图的箭头标注
图 16-2
状态机检测 FIFO 的状态
字节方式帧的发送时序
49
只要内部信号
Accept Further Data 为 1
就可以将更多的数据装入 FIFO MF RC500 通过 RF 接口
将该数据加入发送的数据流中 如果内部信号 Accept Further Data 为 0 发送将会终止 所有在 Accept
Further Data 变为 0 后写入 FIFO 的数据将不再发送
备注 如果奇偶校验产生使能 Parity 位为 1
但仍然保留在 FIFO 缓冲区
奇偶校验位为发送的最后一位 这将信号 Accept Further
Data 延长了一个位的时间
如果 TxLastBits 不为 0
最后一个字节不完全发送
只发送 TxLastBits 中设定的位的数目
这样内部状态机必须在较早的点及时检测 FIFO 的状态
开始
图 16-3
由于该例中 TxLastBits 4
从最低位
如下图所示
位方式帧的发送时序
在位 3 发送后
发送停止
帧为带有 EOF 的完整帧
如果已配置
上图还显示了在检测 FIFO 状态之前对 FIFOData 寄存器有一个写操作.这使得 FIFO empty”重新变为
0 并使 Accept Further Data 保持有效 写入的新字节通过 RF 接口发送
FIFO empty 功能所改变
该功能在最后发送位的一个位时间之前检验 FIFO empty”
帧定义
检验处
8 位带奇偶校验
8th 位
8 位不带奇偶校验
7th 位
x 位不带奇偶校验
(x-1)th 位
16.4.2
Accept Further Data 只由 Check
Receive 命令 16H
命令
代码
动作
变量和数据
返回的数据
Receive
16
启动接收器电路
-
数据流
Receive 命令启动接收器电路
所有从 RF 接口接收到的数据通过 FIFO 缓冲区返回
Receive 命令可
通过微处理器或启动在执行 Transceive 命令时自动启动
注 由于该命令与 Transmit 命令无时序的关系
16.4.2.1
因此可以只用于测试
接收命令的工作
在启动 Receive 命令后 内部状态机每个位时钟将 RxWait 寄存器值减一 从 3 到 1 模拟接收器电路
准备并启动 当计数器为 0 时 计数器开始监控 RF 接口进入的数据 如果信号强度大于 MinLevel 寄存器
中设置的值 接收器开始解码 如果在接收器输入脚 Rx 检测不到信号 解码器停止 解码器通过置位 RxIRq
指示操作的终止
接收时序的不同阶段都可通过 PrimaryStatus 寄存器中的 ModemState 进行监控(见 16.4.4)
注
由于计数器值从 3 到 0 用于启动模拟接收器电路
50
因此 RxWait 的最小值为 3
16.4.2.2
RF 信道冗余和帧
解码器在每个数据流的开始期望一个 SOF 格式 如果检测到 SOF
的数据位
它启动串
并转换器并收集进入
每完成一个字节送入 FIFO 如果检测到 EOF 或信号强度低于 RxThreshold 寄存器中 MinLevel
的值 接收器和解码器停止 执行 Idle 命令并对微处理器产生一个适当的响应
中断请求使能
状态标志
置位
如果 ChannelRedundancy 寄存器中的位 RxCRCEn 置位
数据流后会有一个 CRC 块 CRC 块可以是
一个或者两个字节(取决于 ChannelRedundancy 寄存器中的 CRC8)
备注 接收到的 CRC 块如果是正确的就不送往 FIFO 缓冲区 这通过将接收到的数据字节移入一个或
两个字节
CRC 块保存在此内部缓冲区
取决于已定义的 CRC 内部缓冲区实现
因此 FIFO 缓冲区内所
有的数据字节会延迟一到两个字节
如果 CRC 失败
所有接收到的字节都送入 FIFO 缓冲区 包括错误的 CRC
如果 ChannelRedundancy 寄存器中的 ParityEn 置位 在每个字节后会有一个奇偶校验位 如果 ParityOdd
置位 期望的奇偶校验是一个奇数校验 否则为偶数校验
16.4.2.3
冲突检测
如果在卡选择阶段内 RF 区域的卡超过一个 它们将会同时响应 MF RC500 支持 ISO14443-A 定义的
算法
通过所谓的防冲突处理来解决卡序列号的数据冲突
该方法的基础是检测位冲突的能力
位冲突检测由旧的位编码模式即 Manchester 编码支持 如果在一个位的第一个和第二个半位检测到的
是副载波调制而不是传送的 1 或者 0 就通知出现一个位冲突 为了将一个 1 或 0 位与位冲突区别开 MF
RC500 使用 CollLevel 的设定
如果较小振幅半位的振幅大于 CollLevel 定义的值
MF RC500 指示一个位
冲突
如果检测到一个位冲突
错误标志 CollErr 置位
如果在奇偶校验位检测到位冲突
标志 ParityErr 置
位以指示一个奇偶校验错误
接收器独立于检测到的位冲突 继续接收进入的数据流 在位冲突的情况下解码器在冲突的位置发送
1
注 作为一个例外 如果 ZeroAfterColl 置位 第一个位冲突之后接收的所有位都强制为 0 不管检测
到的是位冲突或是明确的状态 该特性使得通过软件实现 ISO14443-A 定义的防冲突处理变得容易
当一个帧检测到第一个位冲突时
该位的位置保存在 CollPos 寄存器中
冲突的位置如下表所示
冲突位置
CollPos 的值
SOF
0
最低字节的最低位
1
…
…
最低字节的最高位
8
第二个字节的最低位
9
…
…
第二个字节的最高位
16
第三个字节的最低位
17
…
…
表 16-2
位冲突位置的返回值
由于奇偶校验位中的位冲突定义 奇偶校验位在 CollPos 中没有计数 如果在 SOF 中检测到一个位冲
突
将报告一个帧错误并不再将数据送入 FIFO 缓冲区
测到错误输入数据流的结束时对微处理器产生正确的通知
下一次发送
51
这种情况下 接收器继续监控进入的信号并在检
这有助于微处理器确定什么时候允许对卡进行
16.4.2.4
接收位方式帧
接收器能够处理不完整字节的字节流
这就产生位方式帧
要支持该功能
必须使用下面的值
y RxAlign 选择一个进入字节的位偏移 例如 如果 RxAlign 设置为 3 接收到的前 5 位送入 FIFO
缓冲区 后面的位打包成字节并输入
在接收之后 RxAlign 自动清零
如果 RxAlign 设置为 0
所有接收到的位都装入一个字节
y RxLastBits 返回最后接收到的字节的有效位的数目 例如 如 RxLastBits 在接收命令的结束时值
为5
则低 5 位有效
如果最后字节完整
RxlastBits 为 0
如果没有通过标志 FrameErr 指示的帧错误 RxLastBits 只能有效 如果 RxAlign 设置为一个不为 0 的
值并且 ParityEn 有效
不检测第一个奇偶校验位而是将其忽略
重点 如果 RxAlign 设置为 7
器
MF RC500 不会将第一个字节 包含从卡接收的单个位
送到微处理
而是将其删除 见 5.2.2.8
注 在位位置 6,14,22,30,38 CollPos 检测到的位冲突不能由 RxAlign 的支持所解决 而是需要由软
件完成
16.4.2.5
通信错误
下表所示导致错误标志置位的事件
原因
置位的位
接收到的数据没有以 SOF 格式起始
FramingErr
CRC 块的值与期望的不同
CRCErr
接收到的数据比 CRC 块短
CRCErr
奇偶校验位不等于期望的值 例 期望奇偶校验位的位置出现了一个位冲突
ParErr
检测到位冲突
CollErr
表 16-3
通信错误表
52
与卡通信的状态图
Co
m
R e ma
ce nd
iv e =
FI
C FO
( T o mm n o
t
ra
ns an em
m d = pty
it
AN
O
R
D
Tr
an
sc
ei
ve
)
16.4.5
图 16-4
16.5
卡通信
2
访问 E PROM 命令
16.5.1
16.5.1.1
命令
状态图
WriteE2 命令 01H
概述
代码
动作
变量和数据
返回的数据
起始地址低字节
WriteE2
01
2
从 FIFO 缓冲区获得数据并写入 E PROM
起始地址高字节
数据字节流
53
-
WriteE2 命令将 FIFO 缓冲区的头两个字节解释为 E2PROM 的起始字节地址.之后的字节解释为数据字
节并从给定的起始字节地址将其写入 E2PROM
WriteE2 命令只能由微处理器启动
16.5.1.2
该命令不返回任何数据
它不会自动停止
必须由微处理器执行 Idle 命令将其终止
编程的处理
在一个编程周期内可将 1 到 16 个字节写入 E2PROM 需要的时间约为 5.8ms 状态机将 FIFO 缓冲区
内所有准备好的数据复制到 E2PROM 输入缓冲区
2
E PROM 块的规格
内部 E2PROM 输入缓冲区的长度为 16 字节
等于
2
编程周期从写入 E PROM 输入缓冲区的最后一个位置或者从读出 FIFO 缓冲区的最后
一个字节开始
只要在 FIFO 缓冲区内有未经处理的字节或者 E2PROM 编程周期仍在进行当中 标志 E2Ready 为 0
如果从 FIFO 缓冲区读出的所有数据都已写入 E2PROM
TxIRq 指示为 1
标志 E2Ready 设置为 1
在 E2Ready 的上升沿时
这用于产生一个中断指示所有数据的编程都已完成
在 E2Ready 设置为 1 后
WriteE2 命令可通过微处理器写入 Idle 命令停止
重点 在 E2Ready 为 0 时 不能通过启动其它命令来停止 WriteE2 命令 否则当前处理的 E2PROM 块
的内容不会被定义
16.5.1.3
或者更糟糕的情况
MF RC500 的功能被不可逆地降低
时序图
2
图 16-5
2
E PROM 编程时序图
假设 MF RC500 在微处理器可以写字节 1
说明
MF RC500 开始编程周期
tprog,del=300ns
之前找到并读出字节 0 这使得
大概需要 2.9ms 同时微处理器将字节 1 到字节 4 保存到 FIFO 缓冲区 假设
2
E PROM 起始字节地址为 16CH 字节 0 就保存在此处 MF RC500 将后续的数据字节复制到 E2PROM 输
入缓冲区 复制字节 3 检测到该字节必须编程到 E2PROM 字节地址 16FH 由于这是存储器块的结束 MF
RC500 自动启动一个编程周期 字节 4 将会编程到 E2PROM 字节地址 170H 由于这是最后一个数据字节
指示 E2PROM 编程结束的标志 E2Ready 和 TxIRq
2
尽管已将所有的数据写入 E PROM
置位
MF RC500 仍停在 WriteE2 命令
将更多的数据写入 FIFO 缓冲
2
区将会继续从地址 171H 开始对 E PROM 编程 使用 Idle 命令停止该命令
16.5.1.4
WriteE2 命令的错误标志
2
对 E PROM 块 0
E2PROM 字节地址 00H~0FH 的编程是被禁止的
AcessErr 不会启动编程周期
16.5.2
16.5.2.1
命令
E PROM 存储器的结构见第 6 章
ReadE2 命令 03H
概述
代码
ReadE2
超过 1FFH 的地址按 200H 取模
对该地址的编程将置位标志
2
03
动作
变量和数据
从 E2PROM 读出数据并将其放入 FIFO 缓
冲区
起始地址低字节
起始地址高字节
数据字节
数据字节流
2
ReadE2 命令将 FIFO 缓冲区内的头两个字节解释为 E PROM 的起始字节地址
的字节数
返回的数据
当所有 3 个变量字节都存在于 FIFO 缓冲区时
数目的数据字节从 E2PROM 复制到 FIFO 缓冲区
ReadE2 命令只能由微处理器触发 当所有数据传输完毕
54
下一个字节指定返回
就从给定的 E2PROM 起始字节地址开始将指定
该命令自动停止
16.5.2.2
ReadE2 命令的错误标志
2
对 E PROM 块 8 到 1FH 的读操作是被禁止的 对这些地址的读操作将会置位标志 AccessErr 超过 1FFH
E2PROM 存储器的结构见第 6 章
的地址按 200H 取模
16.6
其它命令
16.6.1
LoadConfig 命令 07H
16.6.1.1
概述
命令
代码
动作
变量和数据
LoadConfig
07
从 E2PROM 读出数据并初始化寄存器
返回的数据
起始地址低字节
-
起始地址高字节
LoadConfig 命令将 FIFO 缓冲区内的头两个字节解释为 E2PROM 的起始字节地址 当两个变量字节存
就从给定的 E2PROM 起始字节地址开始将 32 个字节从 E2PROM 复制到 MF RC500
在于 FIFO 缓冲区时
的控制和配置寄存器中
LoadConfig 命令只能由微处理器触发
当所有相关寄存器的复制完成时
该命令
自动停止
16.6.1.2
寄存器分配
2
E PROM 起始字节地址开始的 32 个字节内容写入 MF RC500 寄存器 10H 到 2FH E2PROM 存储器的
结构见第 6 章
见 11.3
注 寄存器分配的过程与启动初始化是一样的
地址固定为 10H 块 1
16.6.1.3
字节 0
不同的是
启动初始化时的 E2PROM 起始
而 LoadConfig 命令可以选择
LoadConfig 命令相关的错误标志
2
有效的 E PROM 起始地址为 10H 到 60H 对块 8H 到 1FH 的复制是被禁止的 对这些地址的读操作
将会置位标志 AccessErr 超过 1FFH 的地址按 200H 取模
16.6.2
E2PROM 存储器的结构见第 6 章
CalcCRC 命令 12H
命令
代码
动作
变量和数据
返回的数据
CalcCRC
12
启动 CRC 协处理器
数据字节流
-
CalcCRC 命令将 FIFO 缓冲区内的所有数据取出作为 CRC 协处理器的输入字节 所有保存在 FIFO 缓
冲区内的数据在命令启动之前都将进行处理 该命令不通过 FIFO 缓冲区返回任何数据 但 CRC 寄存器的
内容可通过 CRCResultLSB 寄存器和 CRCResultMSB 寄存器读出
不会自动停止 必须由微处理器执行 Idle 命令将其终止
CalcCRC 命令只能由微处理器启动
它
如果 FIFO 缓冲区为空 CalcCRC 命令等待 FIFO
缓冲区更多的输入
16.6.2.2
CRC 协处理器设定
用于 CRC 协处理器的参数可进行如下配置
参数
值
位
寄存器
CRC 寄存器长度
8 位或 16 位 CRC
CRC8
ChannelRedundancy
CRC 算法
根据 ISO14443-A 或 ISO/IEC3309 的算法
CRC3309
ChannelRedundancy
位处理方向
将 MSBit 或 LSBit 先移入 CRC 寄存器
CRCMSBfist
ChannelRedundancy
CRC 预置值
任意
CRCPresetLSB
CRCPresetLSB
CRCPresetMSB
CRCPresetMSB
表 16-5
4
CRC 协处理器参数
8 位 CRC 的 CRC 多项式固定为
x +x +x +x2+1
16 位 CRC 的 CRC 多项式固定为
x16+x12+x5+1
16.6.2.3
8
3
CRC 协处理器的状态标志
CRCReady 的状态标志指示 CRC 协处理器已经完成对 FIFO 缓冲区中所有数据字节的处理 CRCReady
标志置位后
TxIRq 置位产生中断请求
这支持了使用 CRC 协处理器驱动中断
55
当 CRCReady 和 TxIRq 分别设置为 1 时 CRCResultLSB 和 CRCResultMSB 寄存器的内容和标志 CRCErr
有效
CRCResultLSB 和 CRCResultMSB 寄存器保存 CRC 寄存器的内容 CRCErr 标志指示所处理的数据的
CRC 有效性
16.7
命令执行时的错误处理
如果在命令执行时检测到任何错误 通过置位 PrimaryStatus 寄存器中的状态标志 Err 来指示 微处理
器可以通过 ErrorFlag 寄存器中的状态标志得到错误原因的信息
ErrorFlag 寄存器的错误标志
相关命令
KeyErr
LoadKeyE2,LoadKey
AccessError
WriteE2,ReadE2,LoadConfig
FIFOOvl
无特定的命令
CRCErr
Receive,Tranceive,CalcCRC
FramingErr
Receive,Tranceive
ParityErr
Receive,Tranceive
CollErr
Receive,Tranceive
表 16-6
16.8
错误标志汇总
MIFARE 典型的安全性命令
16.8.1
16.8.1.1
LoadKeyE2 命令 0BH
概述
命令
代码
LoadKeyE2
0B
动作
变量和数据
从 E2PROM 读出一个密匙并将其放入
起始地址低字节
内部密匙缓冲区
起始地址高字节
返回的数据
-
LoadKeyE2 命令将 FIFO 缓冲区内的头两个字节解释为 E2PROM 的起始字节地址 从给定起始字节地
址开始的 E2PROM 字节被解释为密匙 并以正确的密匙格式保存 见 6.4.1
当两个变量字节存在于 FIFO
2
缓冲区时 命令开始执行 LoadKeyE2 命令只能由微处理器启动 将 E PROM 的密匙复制到密匙缓冲区后
它自动停止
16.8.1.2
与 LoadKeyE2 命令相关的错误标志
如果密匙格式不正确
16.8.2
16.8.2.1
命令
见 6.4.1
会将一个未定义的值复制到密匙缓冲区同时标志 KeyErr 置位
LoadKey 命令 19H
概述
代码
动作
变量和数据
字节 0
LoadKey
19
从 FIFO 缓冲区出一个密匙并将其放入
密匙缓冲区
返回的数据
LSB
字节 1
…
-
字节 10
字节 11
MSB
LoadKey 命令将 FIFO 缓冲区内的前 12 个字节解释为密匙 以正确的格式保存
见 6.4.1
当 FIFO
缓冲区可提供 12 个变量字节时 对其检测如果有效则复制到密匙缓冲区 见 17.2
LoadKey 命令只能由微处理器启动
16.8.2.2
将密匙从 FIFO 缓冲区复制到密匙缓冲区后
与 LoadKey 命令相关的错误标志
将所有需要的字节从 FIFO 缓冲区复制到密匙缓冲区 如果密匙格式不正确
定义的值复制到密匙缓冲区同时标志 KeyErr 置位
16.8.3
它自动停止
Authent1 命令 0CH
56
见 6.4.1
会将一个未
16.8.3.1
概述
命令
代码
动作
变量和数据
返回的数据
卡 Auth 命令
卡的块地址
Authent1
0C
从 FIFO 缓冲区出一个密匙并将其放入 卡的序列号低字节
-
卡的序列号字节 1
密匙缓冲区
卡的序列号字节 2
卡的序列号高字节
Authent1 命令是一个特殊的 Transeive 命令 它占用 6 个字节用于发送到卡
器
卡的响应不送到微处理
但用于检测卡的可靠性并向卡证实 MF RC500 的可靠性
Authent1 命令只能由微处理器启动 该命令的状态时序与 Transceive 命令相同
16.8.4
见 16.4.3
Authent2 命令 14H
16.8.4.1
概述
命令
代码
Authent2
14
动作
变量和数据
返回的数据
-
-
使用 Crypto1 算法执行卡可靠性的第二
部分
Authent2 命令是一个特殊的 Transeive 命令 它不需要任何变量字节 但所有要发送到卡的数据由 MF
RC500 自身进行分配 卡的响应不送到微处理器 但用于检测卡的可靠性并向卡证实 MF RC500 的可靠性
Authent2 命令只能由微处理器启动 该命令的状态时序与 Transceive 命令相同
16.8.4.2
见 16.4.3
Authent2 命令的作用
如果 Authent2 命令成功验证了卡和 MF RC500 的可靠性 控制位 Crypto1On 自动置位 当 Crypto1 置
位后 所有进一步与卡的通信都使用 Crypto1 保密算法加密 如果 Authent2 命令失败 位 Crypto1On 清零
注 标志 Crypto1On 不能由微处理器置位 只能通过成功执行 Authent2 命令置位 微处理器可以清零
该位与卡继续进行明码通信
注
Authent2 命令必须在 Authent1 命令成功后马上执行 见 16.8.3
此外
保存在密匙缓冲区内的
密匙必须与卡上的一致
17
17.1
MIFARE 标准的验证和加密
概述
MIFIRE 标准产品应用的加密算法叫做 Crypto1
它基于私有的流密码
密匙长度为 48 位
要访问
MIFARE 标准卡的数据 必须了解相应的密匙 要成功进行卡的验证和随后对卡内 EEPROM 数据进行访问
MF RC500 必须具有正确的密匙 在选择以 ISO14443A 定义的卡后 用户可以继续使用 MIFARE 标准协议
这种情况下 强制执行卡的验证
Crypto1 验证是一个 3-pass 验证
该过程通过执行 Authent1 和 Authent2
命令自动完成 在卡的验证过程中 加密算法初始化 在成功验证之后 与 MIFARE 标准卡的通信被加密
17.2
Crypto1 密匙处理
在验证命令中 MF RC500 从内部密匙缓冲区读出密匙 密匙总是取自密匙缓冲区
因此
Crypto1 验
证的命令不需要对密匙进行寻址 用户必须确保在卡验证启动之前密匙缓冲区内准备的密匙是正确的
密匙缓冲区可以下面的方式装载
y 用 LoadKeyE2 命令从 E2PROM 中装载
见 16.8.1
y 使用 LoadKey 命令通过 FIFO 缓冲区从微处理器直接装载
57
如下图所示
2
图 17-1
17.3
密匙处理
方框图
执行 MIFARE 标准验证
执行 Crypto1 加密算法来确保对 MIFARE 标准卡的验证
为了获得有效的验证
MF RC500 密匙缓冲
区内的密匙必须正确
步骤 1
通过 LoadKeyE2 或 LoadKey 命令将密匙装入密匙缓冲区
步骤 2
启动 Authent1 命令 结束时检测错误标志以获得该命令执行的状态
步骤 3
启动 Authent2 命令 结束时检测错误标志和 Crypto1On 以获得命令执行的状态
18
18.1
典型应用
电路图
-Processor Bus
下图所示为一个典型的应用 天线直接连到 MF RC500
图 18-1
应用示例的电路图
58
直接匹配天线
匹配电路包括一个 EMC 低通滤波器
细节请参阅应用手册
18.2
18.2.1
接收电路
天线匹配电路和天线
更多关于天线设计和调谐的
MF RC500 匹配电路和天线的设计
电路描述
EMC 低通滤波器
MIFARE 系统在 13.56MHz 频率下操作 该频率由一个石英晶振产生用于驱动 MF RC500 以及作为驱
动天线的 13.56MHz 能量载波的基频 这样不仅会产生 13.56Mhz 的发射功率而且会发射更高的谐波 国际
EMC 条例定义了在广播频段中发射功率的幅值 因此 要符合这一规范 必须对输出信号进行适当的滤波
对于多层电路板强烈建议使用上图所示的低通滤波器 低通滤波器包括元件 L0 和 C0 下表给出了它
们的值
注
为了实现最佳的性能
18.2.2
所有元件都至少应当达到所推荐的元件的质量
接收电路
MF RC500 的内部接收部分使用一个受益于副载波双边带的概念装入卡响应的调整 推荐使用内部产
生的 VMID 电势作为 RX 脚的输入电势 为了提供一个稳定的参考电压 必须在 VMID 脚接一个对地的电
容 C4 读卡器的接收部分需要在 RX 和 VMID 脚之间连接一个分压器 此外 在天线线圈和分压器之间推
荐使用一个串接的电容
和 C4
上面所示的电路图包括了推荐的接收电路
R2
C3
它们的值见下表
元件
值
L0
2.2µH 10%
备注
C0
47pF
2%
R1
10kΩ
5%
R2
820Ω
5%
C3
15pF
2%
表 18-1
注
接收电路包括的元件有 R1
磁屏蔽 例如 TDK ACL3225S-T
NP0 材料 根据天线的电感量取值
NP0 材料
EMC 滤波器和接收电路的取值
电容不推荐使用 X7R 材料
18.3
天线线圈电感量的计算
对天线线圈电感量的精确计算是不可行的 但电感量可以通过下面的公式估算出来 我们推荐将天线
设计成环形或者矩形
I1…………...导体环一圈的长度
D1………….导线的直径或者 PCB 导体的宽度
K……………天线形状因素
环形天线 K=1.07
矩形天线 K=1.47
N1…………..圈数
ln……………自然对数函数
18.3.1
直接匹配天线的阻抗匹配
要设计一个直接匹配天线的匹配电路 建议使用 18.1 中的电路 电容 C1
线的电气特性和环境的影响
59
C2a 和 C2b 的值取决于天
下表所示的电容值为指导性的值
它们用于调谐过程的启动值
天线线圈电感量[µH]
C1[pH]
C2a[pF]
C2b[pF]
0.8
27
270
330
0.9
27
270
270
1.0
27
220
270
1.1
27
180||22
220
1.2
27
180
180||22
1.3
27
180
180
1.4
27
150
180
1.5
27
150
150
1.6
27
120||10
150
1.7
27
120
150
1.8
27
120
120
表 18-2
匹配电路的电容值
然而 要得到最佳的性能 必须通过调谐过程找到精确的值 上表假设天线线圈的杂散电容值为 15pF
电容 C1 和 C2s 应当采用允差为
2%的 NP0 电介质
天线的电感和电容的实际值取决于不同的参数 例如
y 天线的结构 PCB 的类型
y 导体的厚度
y 绕组之间的距离
y 屏蔽层
y 附近环境中的金属或铁氧体
19
测试信号
19.1
概述
MF RC500 允许不同信号的测量 使用串行信号转换的可能性
的信号 见 15
可将测量用于检测内部产生和接收到
另外 用户可通过寄存器选项选择内部模拟信号在脚 AUX 处对它们进行测量 以及选择
内部数字信号在脚 MFOUT 对它们进行观察
在设计阶段用于优化接收器的特性或者作为测试用途
这些
测量都是很有用的
19.2
使用串行信号转换进行测量
通过脚 MFOUT 处的串行信号转换 用户可观察到发送到卡或者接收自卡的数据 下表为不同可能的
信号的汇总
SignalToMFOUT
MFOUTSelect
0
0
低
0
1
高
0
2
包络
0
3
发送 NRZ
0
4
带副载波的 Manchester
0
5
Manchester
0
6
RFU
0
7
RFU
1
X
数字测试信号
表 19-1
输出到 MFOUT 脚的信号
输出到 MFOUT 脚的信号
60
19.2.1
TX 控制
下图所示为使用串行信号转换控制发送到卡的数据
设置为 3
发送到卡的数据以 NRZ 编码显示
在 MFOUT 测得的信号
将标志 MFOUTSelect 设置为 2
将标志 MFOUTSelect
显示 Miller 编码信号
直接在天下测量的 RFOut 信号显示了 RF 信号的脉冲形状
图 20
19.2.2
TX 控制信号
RX 控制
下图所示为卡对一个请求信号的应答的开始
直接在天线上测量的 RF 信号显示了 RF 的电压 这使
得卡的装载调制可见 MFOUTSelect 设置为 4 显示带副载波的 Manchester 解码信号 MFOUTSelect 设置为
5 显示 Manchester 解码信号
图 21
RX 控制信号
61
19.3
模拟测试信号
模拟测试信号可通过选择寄存器位 TestAnaOutSel 输出到脚 AUX
值
信号名称
描述
0
Vmid
1
Vbandgap
由带隙产生的内部参考电压
2
VRxFollI
使用 I-时钟从解调器输出的信号
3
VRxFollQ
使用 Q-时钟从解调器输出的信号
4
VRxAmpI
经过放大和滤波的 I 信道副载波信号
5
VRxAmpQ
经过放大和滤波的 Q 信道副载波信号
6
VCorrNI
由 I 信道副载波信号馈送的 N 信道相关器输出信号
7
VCorrNQ
由 Q 信道副载波信号馈送的 N 信道相关器输出信号
8
VCorrDI
由 I 信道副载波信号馈送的 D 信道相关器输出信号
9
VCorrDQ
由 Q 信道副载波信号馈送的 D 信道相关器输出信号
A
VEvalL
从左半位测出的信号
B
VEvalR
从右半位测出的信号
C
VTemp
源于带隙的温度电压
D
rfu
保留将来之用
E
rfu
保留将来之用
F
rfu
保留将来之用
内部节点 Vmid 的电压
表 19-2
19-4
模拟测试信号选项
数字测试信号
数字测试信号可通过将 SignalToMFOUT 位置 1 输出到脚 MFOUT
TestDigiSelect 中的 TestDigiSignalSel 选择
数字测试信号可以通过寄存器
如下表所示
TestDigiSignalSel
信号名称
F4H
s_data
接收自卡的数据
E4H
s_valid
显示为 1
信号 s_data 和 s_coll 有效
D4H
s_coll
显示为 1
当前位检测到冲突
C4H
s_clock
描述
内部串行时钟 发送时作为编码器时钟 接收时作为接收
器时钟
B5H
rd_sync
内部同步读信号
A5H
wr_sync
内部同步写信号 来自微处理器并行接口
96H
int_clock
内部 13.56MHz 时钟
00H
无测试信号
由 MFOUTSelect 定义的信号输出到脚 MFOUT
表 19-3
如果不使用测试信号
来自微处理器并行接口
数字测试信号选项
TestDigiSelect 寄存器的值应当为 00H
注 TestDigiSignalSel 所有其它的值仅用于产品测试
19.5
模拟和数字测试信号举例
图 22 显示了一个 MIFARE 标准卡通过 Q 时钟接收通道对一个请求命令的应答
RX 脚的 Manchester 调制信号
的放大的边带信号
RX 参考端用来显示
该信号在接收器电路中被解调并放大 VRXAmpQ 显示了使用 Q 时钟解调
相关性电路中产生的信号 VCorrDQ 和 VCorrNQ 在计算和数字化电路中被计算和数字
化 VEvalR 和 VEvalL 显示了对左右半位的计算信号 最后 数字测试信号 S_data 显示发送到内部数字电
62
路的接收数据 S_valid 指示接收的数据流有效
图 22
20
电气特性
20.1
极限参数
符号
Tamb,abs
DVDD
接收通道 Q 时钟
参数
环境或储存温度范围
最小
最大
单位
-40
+150
-0.5
6
V
DC 电源电压
AVDD
TVDD
Vin,abs
任意数字脚对 DVSS 的电压
-0.5
DVDD+0.5
V
Vrx,abs
RX 脚对 AVSS 的电压
-0.5
AVDD+0.5
V
20.2
符号
Tamb
操作条件范围
参数
环境温度
DVDD
数字电源电压
AVDD
模拟电源电压
TVDD
发送器电源电压
条件
DVSS=AVSS=TVSS=0V
63
最小
典型
最大
单位
-25
+25
+85
4.5
5.0
5.5
V
4.5
5.0
5.5
V
3.0
5.0
5.5
V
20.3
电流消耗
符号
IDVDD
IAVDD
参数
条件
数字电源电压
模拟电源电压
最小
典型
最大
Idle 命令
6
mA
待机模式
3
mA
软件掉电模式
800
µA
硬件掉电模式
1
µA
Idle 命令,接收器打开
29
mA
Idle 命令,接收器关闭
10
mA
待机模式
8
mA
软件掉电模式
1
µA
硬件掉电模式
1
µA
150
mA
4.5
9
mA
65
130
µA
连续波
TX1 和 TX2 未连接
ITVDD
发送器电源电压
TX1RFEn,TX2RFEn=1
TX1 和 TX2 未连接
TX1RFEn,TX2RFEn=0
20.4
20.4.1
单位
管脚特性
输入管脚特性
管脚 D0 到 D7 和 A1 具有 TTL 输入特性
符号
参数
见下表的定义
条件
最小
最大
单位
ILeak
输入漏电流
-1.0
+1.0
µA
VT
阀值
0.8
2.0
V
数字输入脚 NCS
符号
NWR NRD ALE
参数
A2 和 MFIN 具有施密特触发器特性
条件
见下表的定义
最小
最大
单位
ILeak
输入漏电流
-1.0
+1.0
µA
VT
上升沿阀值
1.4
2.0
V
VT
下降沿阀值
0.8
1.3
V
脚 RSTPD 具有施密特触发器 CMOS 特性
此外
它通过一个 RC 低通滤波器进行内部滤波
这使得
复位信号有一个相应的传递延迟
符号
参数
条件
最小
最大
单位
ILeak
输入漏电流
-1.0
+1.0
µA
VT
上升沿阀值
0.65DVDD
0.75DVDD
V
VT
下降沿阀值
0.25DVDD
0.4DVDD
V
20
µs
最大
单位
15
pF
tRSTPD,p
传递延迟
模拟输入脚 RX 输入电容如下
符号
CRX
参数
条件
最小
输入电容
64
20.4.2
数字输入管脚特性
管脚 D0 到 D7
符号
MFOUT 和 IRQ 具有 TTL 输出特性
参数
VOH
输出电压高
VOL
输出电压低
IO
条件
最小
典型
DVDD=5V,IOH=-1mA
2.4
4.9
V
DVDD=5V,IOH=-10mA
2.4
4.2
V
最大
单位
DVDD=5V,IOL=1mA
25
400
mV
DVDD=5V,IOL=10mA
250
400
mV
10
mA
DVDD=5V
输出电流
注 IRQ 脚也可配置为集电极开路
20.4.3
见下表定义
那样 VOH 的值不再适用
天线驱动器输出管脚特性
天线驱动器脚 TX1 和 TX2 用于驱动高电平的源电导可通过 CwConductance 寄存器中的 GsCfgCW 进
行配置
而它们用于驱动低电平的源电导为常量
作为默认的配置
符号
输出特性定义如下
参数
条件
VOH
输出电压高
VOL
输出电压低
ITX
发送器输出电流
20.5
最小
典型
最大
单位
DVDD=5V,IOL=20mA
4.97
V
DVDD=5V,IOL=100mA
4.85
V
DVDD=5V,IOL=20mA
30
mV
DVDD=5V,IOL=100mA
150
mV
200
连续波
mA
AC 电气特性
20.5.1
AC 符号
每个时序的符号都有 5 个字符 第一个字符总是为 t 表示时间 其它字符用来表示信号名或信号的逻辑
状态 取决于它们的位置
说明如下
名称
信号
名称
逻辑电平
A
地址
H
高
D
数据
L
低
W
NWR 或 nWait
Z
高阻
R
NRD 或 R/NW 或 nWrite
X
任意电平或数据
L
ALE 或 AS
V
任意有效信号或数据
C
NCS
S
NDS 或 nDStrb 和 nAStrb
例如 tAVLL=从地址有效到 ALE 为低的时间
65
20.5.2.1
Read/Write 独立选通的总线时序
符号
参数
最小
tLHLL
ALE 脉宽
20
ns
tAVLL
复用地址总线有效到 ALE 低(地址建立时间)
15
ns
tLLAX
ALE 低之后的复用地址总线有效 (地址保持时间)
8
ns
tLLWL
ALE 低到 NWR,NRD 低
15
ns
tCLWL
NCS 低到 NRD,NWR 低
0
ns
tWHCH
NRD,NWR 高到 NCS 高
0
ns
tRLDV
NRD 低到 DATA 有效
65
ns
tRHDZ
NRD 高到 DATA 高阻
20
ns
tWLDV
NWR 低到 DATA 有效
35
ns
tWHDX
NWR 高之后的 DATA 保持(数据保持时间)
8
tWLWH
NRD,NWR 脉宽
65
tAVWL
独立地址总线有效到 NRD,NWR 低(建立时间)
30
ns
tWHAX
ALE 低之后的独立地址总线有效 (地址保持时间)
8
ns
tWHWL
连续读/写访问的间隔
150
ns
表 20-10
图 20-1
最大
单位
ns
独立读/写选通的时序定义
独立读/写选通的时序图
注 用于独立的地址和数据总线时 ALE 信号无关联且数据总线上的复用地址不用考虑 用作复用的
地址和数据总线时
地址线 A0 到 A2 必须按照 4.3 所述连接
66
20.5.2.2
共用读/写/选通的总线时序
符号
参数
最小
tLHLL
AS 脉宽
20
ns
tAVLL
复用地址总线有效到 AS 低(地址建立时间)
15
ns
tLLAX
AS 低之后的复用地址总线有效 (地址保持时间)
8
ns
tLLSL
AS 低到 NDS 低
15
ns
tCLSL
NCS 低到 NDS 低
0
ns
tSHCH
NDS 高到 NCS 高
0
ns
tSLDV,R
NDS 低到 DATA 有效(读周期)
65
ns
tSHDZ
NDS 低到 DATA 高阻(读周期)
20
ns
tSLDV,W
NDS 低到 DATA 有效(写周期)
35
ns
tSHDX
NWR 高之后的 DATA 保持(写周期,保持时间)
8
ns
tSHRX
NDS 高之后的 R/NW 保持
8
ns
tSLSH
NDS 脉宽
65
ns
tAVSL
独立地址总线有效到 NDS 低(保持时间)
30
ns
tSHAX
NDS 低之后的独立地址总线有效 (建立时间)
8
ns
tSHSL
连续读/写访问的间隔
150
ns
tRVSL
R/NW 有效到 NDS 低
8
ns
表 20-11
图 20-2
最大
单位
共用读/写选通的时序定义
共用读/写选通的时序图
注 用于独立的地址和数据总线时 ALE 信号无关联且数据总线上的复用地址不用考虑 用作复用的
地址和数据总线时
地址线 A0 到 A2 必须按照 4.3 所述连接
67
20.5.2.3
EPP 的总线时序
符号
参数
最小
tLLLH
nAStrb 脉宽
20
ns
tAVLH
复用地址总线有效到 nAStrb 高(建立时间)
15
ns
tLHAX
nAStrb 高之后的复用地址总线有效 (保持时间)
8
ns
tCLSL
NCS 低到 nDStrb 低
0
ns
tSHCH
nDStrb 高到 NCS 高
0
ns
tSLDV,R
nDStrb 低到 DATA 有效(读周期)
65
ns
tSHDZ
nDStrb 低到 DATA 高阻(读周期)
20
ns
tSLDV,W
nDStrb 低到 DATA 有效(写周期,建立时间)
35
ns
tSHDX
nDStrb 低之后的 DATA 保持(写周期,保持时间)
8
ns
tSHRX
nDStrb 高之后的 nWrite 保持
8
ns
tSLSH
nDStrb 脉宽
65
ns
tRVSL
nDStrb 低之后的 nWrite 有效
8
ns
tSLWH
nDStrb 低到 nWait 高
75
ns
tSHWL
nDStrb 高到 nWait 低
75
ns
表 20-12
图 20-3
20.5.3
最大
单位
共用读/写选通的时序定义
共用读/写选通的时序图
时钟频率
时钟从管脚 1,OSCIN 输入
参数
时钟频率
由时钟滤波器检测
符号
最小
fOSCIN
时钟频率占空比
dFEC
时钟边沿抖动
tjitter
典型
最大
13.56
40
50
单位
MHz
60
%
10
ps
提供给 MF RC500 的时钟作为同步系统的编码器和解码器的时基 因此时钟频率的稳定性是正确执行
的一个重要因素
为了获得最佳的性能
时钟的抖动应当尽可能小
冲区 见 12
68
最好使用带推荐电路的内部振荡器缓
21
2
E PROM 特性
E2PROM 的规格为 32
16
8
4,096 位
符号
参数
条件
tEEEndurance
数据耐久性
100,000
擦/写次数
tEERetention
数据保持
10
年
tEEErase
擦除周期
tEEWrite
写周期
表 21-1
最小
2
E PROM 特性
69
最大
单位
2.9
ms
2.9
ms