概述
本篇主要描述:广州慧斯佳智能科技有限公司自主研发的一款超低功耗,非接触式NFC刷卡模组HSJ560DL的基本参数、使用方法、功耗检测展示等
-
功耗演示
-
使用流程
-
基本参数
-
产品展示
-
模块尺寸
-
模块接线
-
通信数据帧格式说明
模块与用户 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 以上再发送下一字节
|
如果向模块发送命令没有应答或者出错,应该重复发送
|
-
命令说明
-
装载密钥
用户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 |
最后
以上就是能干大侠为你收集整理的低功耗NFC刷卡模组 ISO14443A协议 智能锁 uA级刷卡方案的全部内容,希望文章能够帮你解决低功耗NFC刷卡模组 ISO14443A协议 智能锁 uA级刷卡方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复