当前位置: 首页 > news >正文

四路IC卡读卡器通信协议

1、摘要

       Sle4442卡为256字节加密卡,存在读数据、写数据、保护数据以及密码操作。该卡在密码验证之前数据为只读状态,需要写入数据必须先进行密码验证,密码为3个字节,新卡初始密码为0xff,0xff,0xff。该读卡器卡可读写主存储器和加密存储器,以及密码验证,和查询读卡器上卡的状态(是否验证过密码),当读卡器上有卡拔插时读卡器会主动发送卡状态指令给上位机。

2、通信协议内容

波特率 19200

表1 计算机发送到读卡器的数据格式

地址偏移

内容

说明

0

数据包头

0x55

1

指令字节1

1—操作卡1,2—操作卡2……4—操作卡4

2

指令字节2

Bit7:0—读,1—写

Bit2-Bit0: 0—主存储器,1—加密储存器,2—密码校验,3—查询卡状态

3

指令字节3

数据帧状态,0--单独帧,1--起始帧2--中间帧,3--结束帧

4

地址

0-255

5

数据字节数

取值范围0-32

6-37

数据

最多32字节的数据

38

校验高字节

前面0-37所有数据的和

39

校验低字节

表2 读卡器发送到计算机的数据格式

地址偏移

内容

说明

0

数据包头

0x55 — 正常,0x5A—未插卡,0xA5—卡无效或卡损坏,0xAA — 未验证密码,0xAB — 连续写入错误(没有起始帧),0xBB —密码验证失败

1

指令字节1

1—操作卡1,2—操作卡2……4—操作卡4

2

指令字节2

Bit7:0—读,1—写

Bit2-Bit0: 0—主存储器,1—加密储存器,2—密码验证,3—卡状态

3

指令字节3

数据帧状态,0--单独帧,1--起始帧2--中间帧,3--结束帧

4

地址

0-255

5

数据页数

取值范围0-16,对应数据总量0-256

6-37

数据

最多32字节的数据

38

校验高字节

前面0-37所有数据的和

39

校验低字节

3、读取数据示例

3.1单页读取数据

例如读取卡3读取地址0x0a开始的32个字节

地址偏移

0

1

2

3

4

5

6—37

38

39

内容

0x55

0x03

0x00

0x00

0x0a

0x01

0x00…0x00

0x00

0x63

解析:

0x55:起始字节,固定

0x03:指令字节1,卡3

0x00:指令字节2,读取主存储器

0x00:指令字节3:读取时忽略

0x0a:地址

0x01:页数,1页

0x00…0x00:数据,读取时忽略

0x00-0x63:校验,前面38字节和

收到此命令后,读卡器将返回主存储器地址0x0a开始的32字节数据

3.2 连续读取数据

例如要读取卡2的地址0x20处的96字节数据,则发送指令为:

地址偏移

0

1

2

3

4

5

6-37

38

39

内容

0x55

0x02

0x00

0x00

0x20

0x03

0x00…0x00

0x00

0x7A

解析:

0x55:起始字节,固定

0x02:指令字节1,卡2

0x00:指令字节2,读取主存储器

0x00:指令字节3:读取时忽略

0x20:地址

0x03:页数,3页(96字节)

0x00…0x00:数据,读取时忽略

0x00-0x7A:校验,前面38字节和

收到此命令后,读卡器将返回地址0x20开始的96字节数据,数据分三次次返回,每次返回32字节,每次返回数据的地址是实际地址,即第一次返回0x20,第二次返回0x40,第三次返回0x60

4.写入示例

4.1单页写入数据

例如要写入卡2的地址0x80处的32字节数据,则发送指令为:

地址偏移

0

1

2

3

4

5

6-37

38

39

内容

0x55

0x02

0x80

0x00

0x80

0x01

0x00…0x00

0x01

0x58

解析:

0x55:起始字节,固定

0x02:指令字节1,卡2

0x80:指令字节2,0x80表示写入主存储器

0x00:指令字节3,单独帧
0x80:写入的地址为0x80

0x01:写入1页数据

0x00…0x00:实际写入数据

0x01-0x58:校验,前面38字节的数据之和

收到此命令后,读卡器将32字节数据写入地址0x80开始的位置,并返回写入信息,返回的状态中,只要开头的0x55和校验对就说明写入成功,其他部分数据忽略。

4.2连续写入数据

例如要写入卡3的地址0x10处的128字节数据,则发送指令为:

地址偏移

0

1

2

3

4

5

6-37

38

39

内容

0x55

0x03

0x80

0x01

0x10

0x04

0x00…0x00

0x00

0xEE

解析:

0x55:起始字节,固定

0x03:指令字节1,卡3

0x80:指令字节2,0x80表示写入主存储器

0x01:指令字节3,0x01表示此帧是要写入的第一帧数据,写第2-第3帧数据时,发送指令为0x02,写第四帧数据时,发送指令为0x03,发送完第四帧数据后,读卡器将数据写入卡中,并返回状态

0x10:写入的地址为0x0120

0x04:写入4页数据

0x00…0x00:要写入的数据

0x00-0xEE:校验,前面38字节的数据之和

收到此4次数据写入命令完成后,读卡器将128字节数据写入地址0x10开始的位置,并返回状态,返回的状态中,只要开头的0x55和校验对就说明写入成功,其他部分数据忽略。

5. 密码验证示例

       例如要验证入卡1密码为0xff,0xff,0xff:

地址偏移

0

1

2

3—5

6

7

8

9-37

38

39

内容

0x55

0x01

0x02

0x00…0x00

0xff

0xff

0xff

0x00…0x00

0x03

0x55

解析:

0x55:起始字节,固定

0x01:指令字节1, 卡1

0x02:指令字节2,验证密码

0x00…0x00:验证密码时忽略

0xff,0xff,0xff:需要验证的密码
0x00…0x00:其余数据部分,忽略

0x03-0x55:校验,前面38字节的数据之和

收到此命令后,读卡器将写入卡1密码0xff,0xff,0xff,并返回写入信息,返回的状态中,只要开头的0x55和校验对就说明写入成功,其他部分数据忽略。

6. 查询卡状态示例

地址偏移

0

1

2

3—5

6-37

38

39

内容

0x55

0x00

0x03

0x00…0x00

0x00…0x00

0x00

0x5B

解析:

0x55:起始字节,固定

0x00:指令字节1, 查询卡状态时忽略

0x00…0x00:查询卡状态时忽略

0x00…0x00:数据,查询卡状态时忽略

0x00-0x5B:校验,前面38字节的数据之和

收到此命令后,读卡器将返回卡状态信息,返回的状态中,只要开头的0x55和校验对就说明成功,数据位6—9为位卡1—卡4状态,0—无卡,1—有卡但未验证密码,2—有卡且验证密码,其他部分数据忽略。

http://www.lryc.cn/news/218795.html

相关文章:

  • JavaFX作业
  • 【使用Python编写游戏辅助工具】第五篇:打造交互式游戏工具界面:PySide6/PyQT高效构建GUI工具
  • 06.Oracle数据备份与恢复
  • 大航海时代Ⅳ 威力加强版套装 HD Version (WinMac)中文免安装版
  • 微信小程序 uCharts的使用方法
  • 面试算法54:所有大于或等于节点的值之和
  • 七月论文审稿GPT第二版:从Meta Nougat、GPT4审稿到LongLora版LLaMA、Mistral
  • PyTorch入门学习(十二):神经网络-搭建小实战和Sequential的使用
  • Linux shell编程学习笔记20:case ... esac、continue 和break语句
  • 树莓派4无法进入桌面模式(启动后出现彩色画面,然后一直黑屏,但是可以正常启动和ssh)
  • 花草世界生存技能
  • 执行npm install时老是安装不成功node-sass的原因和解决方案
  • 【MongoDB】集群搭建实战 | 副本集 Replica-Set | 分片集群 Shard-Cluster | 安全认证
  • 「Verilog学习笔记」四选一多路器
  • asp.net 创建docker容器
  • Linux项目自动化构建工具-make/Makefile使用
  • 【React】03.脚手架的进阶应用
  • WPF开源控件HandyControl——零基础教程
  • chinese-stable-diffusion中文场景文生图prompt测评集合
  • K-均值聚类算法
  • Xbox漫游指南
  • 降低毕业论文写作压力的终极指南
  • SELECT COUNT( * ) 与SELECT COUNT( 1 ) 区别
  • [python 刷题] 1248 Count Number of Nice Subarrays
  • 堆叠注入 [GYCTF2020]Blacklist1
  • 算法:Java构建二叉树并递归实现二叉树的前序、中序、后序遍历
  • 既然有了字节流,为什么还要有字符流?
  • 3+单细胞+代谢+WGCNA+机器学习
  • 音乐推荐与管理系统Python+Django网页界面+协同过滤推荐算法
  • (论文阅读15/100)You Only Look Once: Unified, Real-Time Object Detection