打印

低功耗NFC刷卡模组 ISO14443A协议 智能锁 uA级刷卡方案

[复制链接]
790|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本篇主要描述:广州慧斯佳智能科技有限公司自主研发的一款超低功耗,非接触式NFC刷卡模组HSJ560DL的基本参数、使用方法、功耗检测展示等

        HSJ560DL 读卡模块作为一个 I2C 从设备。当有卡在天线区域时,有卡状态脚  IO3 会由高电平变成低电平,用户必须在 IO3 为低后的 250ms 内 读走卡号,否则模块会 再次进入低功耗状态,  本次读取的卡号内容会丢失。
        用户需要不断检测 IO3 脚,发现 IO3 为低时,用户就可以通过 发送读卡命令将卡号读取回来。 HSJ560DL 从地址为 0xB2 , 读取时只需要发送从机地址即可
·使用流程


·基本参数



·产品展示


·模块尺寸

·模块接线

  • 通信数据帧格式说明

模块与用户 MCU 之间的数据通信,以一帧为单位进行,格式及说明如下表所示

通信数据帧结构

帧长

FrameLen

包号
/
命令类

SEQNR

命令
/
状态

CMD/Status

数据长度

Length

数据

Data

校验和

BCC

帧结束符

ETX

1-byte
1-byte
1-byte
1-byte
Length-byte
1-byte
1-byte




通信数据帧各字段说明
字段
长度
说明
FrameLen
1-byte
数据帧的长度,包括其本身,包括帧结束符
ETX
SEQNR
1-byte
数据帧包序号,从
0
255
循环。可以用来作为通信间的错误
检查,从机(模块)接收到主机发来的信息,在应答信息中发出一个同样的
SEQ
信息,主机可以通过此信息检查是否发生
的“包丢失”的错误。第一个包的
SEQ
可为任意值。
CMD/Status
1-byte
用户MCU——》模块:命令
Command

模块——》用户MCU:状态 Status

Length
1-byte
该帧所带数据信息长度

若模块返回状态不为 0x00
,则
Length=0

Data
Length-byte
数据信息
,
长度等于
Length
BCC
1-byte
FrameLen
开始到数据(
DATA
)的最后一字节异或和
ETX
1-byte
ETX=0x03
,是一个帧的结束标志


数据通信规则


无论何时,若接收方在 20ms 内没有接收到一个字节,表示下一接收的字节为一帧数据。数据帧开始字节,即帧长数据。即每发送一条命令,字节间的最大间隔不能超过 20ms
完整一帧数据的结束一定是
ETX
,但接收到
0x03
则不一定是帧结束。帧长必须不小于
6
字节。最大不能超过 31
字节,且帧长必须等于数据长度加
6
BCC 计算必须正确
如果采用模拟 I2C ,如果不判断 SCL 是否冲突,建议向模块发送命令时,每次发送一个字节。延时 20us 以上再发送下一字节
如果向模块发送命令没有应答或者出错,应该重复发送


  • 命令说明
  • 装载密钥
        功能描述:将指定的密钥数据装载到模块内的密钥区,并非改变 Mifare1S50卡内扇区的密钥。后续读 / 写命令均以模块密钥区装载的密钥数据先进行验证,验证通过再执行 读 / 写操作



用户MCU 发送--》模块
FrameLen
帧长
SEQNR
包号
CMD
命令码
Length
应用数据长度
Data
应用数据
BCC
校验码
ETX
结束符
0x0C
0xXX
0x45
0x06
KeyData
0xXX
0x03
KeyData:装载到模块内部密钥区的数据,长度为6个字节


模块 回复--》用户MCU
FrameLen
帧长
SEQNR
包号
Status
状态码
Length
应用数据长度
Data
应用数据
BCC
校验码
ETX
结束符
0x06
0xXX
0x00
0x00
-
0xXX
0x03
Status:状态码0x00 -- 命令执行成功


通信示例:6字节0xFF密钥数据装载到模块内部密钥区
用户MCU 发送:0C 00 45 06 FF FF FF FF FF FF 4F 03
模块 回复:06 00 00 00 06 03

  • 激活卡号获取卡号

        功能描述:激活卡片获取卡号数据

用户MCU 发送--》模块
FrameLen
帧长
SEQNR
包号
CMD
命令码
Length
应用数据长度
Data
应用数据
BCC
校验码
ETX
结束符
0x06
0xXX
0x4D
0x00
-
0xXX
0x03

模块 回复--》用户MCU
FrameLen
帧长
SEQNR
包号
Status
状态码
Length
应用数据长度
Data
应用数据
BCC
校验码
ETX
结束符
0xXX
0xXX
0x00
0x06
0x09
CardType+
CardIDLength+
CardID
0xXX
0x03
Status:状态码0x00 -- 读取卡号成功
CardType:卡片类型
0x00 - Mifare1 S50
                    0x01 - UltraLight / NTAG213
CardIDLength:卡号数据长度
                             Mifare1 S50卡卡号长度为4字节
                             UltraLight / NTAG213标签卡号长度为7字节
CardID:卡号数据

通信示例:读取卡号为C0 97 8D 7C的Mifare1S50卡号
用户MCU 发送:06 00 4D 00 4B 03
模块 回复:0C 00 00 06 00 04 C0 97 8D 7C A8 03

通信示例:读取卡号为04 DC 94 22 E9 4C 80的UltraLight 标签卡号
用户MCU 发送:06 00 4D 00 4B 03
模块 回复:0F 00 00 09 01 07 04 DC 94 22 E9 4C 80 4B 03

  • 读取数据

        功能描述:密钥验证通过,读取Mifare1S50卡内部扇区数据块数据

用户MCU 发送--》模块
FrameLen
帧长
SEQNR
包号
CMD
命令码
Length
应用数据长度
Data
应用数据
BCC
校验码
ETX
结束符
0x08
0xXX
0x51
0x02
KeyType+Block
0xXX
0x03
KeyType:验证密钥类型
             0x60 - A密钥验证; 0x61 - B密钥验证
Block:数据块编号
             Mifare1S50:0-63;Mifare1S50:0-255

模块 回复--》用户MCU
FrameLen
帧长
SEQNR
包号
Status
状态码
Length
应用数据长度
Data
应用数据
BCC
校验码
ETX
结束符
0x16
0xXX
0x00
0x10
Block-Data
0xXX
0x03
Status:状态码0x00 -- 读取数据成功
Block-Data:读取到的数据块数据,共16个字节

通信示例:验证卡片内部0扇区中的A密钥;读取数据块1中的16字节0xAA
用户MCU 发送:08 00 51 02 60 01 3A 03
模块 回复:16 00 00 10 AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA 06 03

  • 写入数据

        功能描述:密钥验证通过,对Mifare1S50卡内部扇区数据块写入数据

用户MCU 发送--》模块
FrameLen
帧长
SEQNR
包号
CMD
命令码
Length
应用数据长度
Data
应用数据
BCC
校验码
ETX
结束符
0x18
0xXX
0x50
0x12
KeyType+Block+
Write-Bolck-Data
0xXX
0x03
KeyType:验证密钥类型
            0x60 - A密钥验证; 0x61 - B密钥验证
Block:数据块编号
            Mifare1S50:0-63;Mifare1S50:0-255;
Write-Bolck-Data:写入数据块的数据,共16字节

模块 回复--用户MCU
FrameLen
帧长
SEQNR
包号
Status
状态码
Length
应用数据长度
Data
应用数据
BCC
校验码
ETX
结束符
0x06
0xXX
0x00
0x00
-
0xXX
0x03
Status:状态码0x00 -- 写入数据成功

通信示例验证卡片内部0扇区中的A密钥;对数据块1中写入16字节0xAA
用户MCU 发送:18 00 50 12 60 01 AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA AA 3B 03
模块 回复:06 00 00 00 06 03

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

7

帖子

0

粉丝