15.2 通用特性
每个需要数据流(或数据字节流)作为输入的命令在发现 FIFO 缓冲区有数据时
会立刻处理,但收发命令除外。收发命令的发送由寄存器 BitFramingReg 的
StartSend 位来启动。
每个需要某一数量的参数的命令只有在它通过 FIFO 缓冲区接收到正确数量的参
数时才能开始处理。
FIFO 缓冲区不能在命令启动时自动清除。而且,也有可能要先将命令参数和/或
数据字节写入 FIFO 缓冲区,再启动命令。
每个命令的执行都可能由微控制器向命令寄存器写入一个新的命令代码(如 idle
命令)来中断。
15.3 MFRC522 命令概述
表 144 命令概述
命令 命令代码 动作
Idle 0000 无动作;取消当前命令的执行。
CalcCRC 0011 激活 CRC 协处理器或执行自测试。
Transmit 0100 发送 FIFO 缓冲区的命令。
NoCmd
Change
0111 无命令改变。该命令用来修改命令寄存器的不同位,但又不触及其它命令,
如掉电。
Receive 1000 激活接收器电路。
Transceive 1100 如果寄存器 ControlReg 的 Initiator 位被设为 1:
将 FIFO 缓冲区的数据发送到天线并在发送完成后自动激活接收器。
如果寄存器 ControlReg 的 Initiator 位被设为 0:
接收天线的数据并自动激活发送器。
MFAuthent 1110 执行读卡器的 MIFARE 标准认证。
Soft Reset 1111 复位 MFRC522。
15.4 MFRC522 命令描述
15.4.1 IDLE 命令
MFRC522 处于空闲模式。该命令也用来终止实际正在执行的命令。
15.4.2 CALCCRC 命令
FIFO 的内容被传输到 CRC 协处理器并执行 CRC 计算。计算结果存放在 CRCResultReg
寄存器中。CRC 计算无需限制字节的数目。当在数据流过程中 FIFO 变成空时计算也不会
停止。写入 FIFO 的下个字节增加到计算中去。
CRC 的预置值由寄存器 ModeReg 的 CRCPreset 位控制,该值在命令启动时装入 CRC
协处理器。
这个命令必须通过向命令寄存器写入任何一个命令(如空闲命令)来软件清除。如果
寄存器 AutoTestReg 的 SelfTest 位设置正确,则 MFRC522 处于自测试模式,启动 CalCRC
命令执行一次数字自测试。自测试的结果写入 FIFO。
2021-08-16 11:53:47
907KB
RC522
1