惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
D
Docker
Blog — PlanetScale
Blog — PlanetScale
罗磊的独立博客
美团技术团队
V
V2EX
Last Week in AI
Last Week in AI
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Microsoft Security Blog
Microsoft Security Blog
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
P
Proofpoint News Feed
B
Blog RSS Feed
博客园_首页
B
Blog
博客园 - 叶小钗
I
InfoQ
WordPress大学
WordPress大学
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
About on SuperTechFans
The GitHub Blog
The GitHub Blog
The Register - Security
The Register - Security
MyScale Blog
MyScale Blog
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
Latest news
Latest news
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
Cyberwarzone
Cyberwarzone
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CERT Recently Published Vulnerability Notes
C
CXSECURITY Database RSS Feed - CXSecurity.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
N
News and Events Feed by Topic
S
Secure Thoughts
The Hacker News
The Hacker News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News

博客园 - shootingstars

硬件相关概念 我的Function C的可变参数 C++概念网摘 韦根协议 学习C的可变参数 关于汇编程序调用各种C函数的例子 如何移植Java的类中的super到C++代码中 编译原理学习 关于标准库中的ptr_fun/binary_function/bind1st/bind2nd 使用python编写每日构建工具 boost::regex学习(5) - shootingstars - 博客园 boost::regex学习(4) - shootingstars - 博客园 boost::regex学习(3) boost::regex学习(2) 《世界大战》《变形金刚》观后感 boost::regex学习(1) boost::algorithm学习 五种迭代器
Mifare 串行读取协议
shootingstars · 2009-12-15 · via 博客园 - shootingstars

Mifare卡是一种非接触式的智能卡,我们了解他们的相关协议。

表一

命令格式如下:

协议头(Head):2字节,固定填充0xAA,0xBB

长度(Length):2字节,从此列后的所有有效字节数(包含XOR)

节点ID(Node ID):2字节,目标节点地址数

函数码(Function code):2字节,函数功能码,另见表三

数据(Data):00~D0字节,数据位

异或(XOR):1字节,从节点ID到最后一个自己的数据的异或值

表二

回复格式如下:

协议头(Head):2字节,固定填充0xAA,0xBB

长度(Length):2字节,从此列后的所有有效字节数(包含XOR)

节点ID(Node ID):2字节,目标节点地址数

函数码(Function code):2字节,函数功能码,另见表三

状态(Status):成功为0,其余的值为失败

数据(Data):00~D0字节,数据位

异或(XOR):1字节,从节点ID到最后一个自己的数据的异或值

 表三

函数码列表:

1、 Initialize port :0x0101
2、 Set device node number : 0x0102
3、 Read device node number : 0x0103
4、 Read device Mode : 0x0104
5、 Set buzzer beep: 0x0106
6、 Set Led color : 0x0107
7、 Set reader working status : 0x0108
8、 Set antenna status 。0x010c
9、 Mifare Reauest , 0x0201
10、 Mifare anticollision , 0x0202:
11、 Mifare Select 0x0203:
12、 Mifare Hlta , 0x0204:
13、 Mifare Authentication1 0x0206 :
14、 Mifare Authentication2 0x0207:
15、 Mifare Read 0x0208:
16、 Mifare Write 0x0209:
17、 Mifare Initval 0x020A:
18、 Mifare Read Balance 0x020B:
19、 Mifare Decrement 0x020C:
20、 Mifare Increment 0x020D:
21、 Mifare Restore 0x020E:
22、 Mifare Transfer 0x020F
23、 Mifare UltraLight Anticoll 0x0212:
24、 Mifare UltraLight Write 0x0213:
25、 Write key store in RC500 EEPROM 。

读取卡号流程:

1 设置串口波特率,参数如下:

Baud rate: 19200 bps
Data: 8 bits
Stop: 1 bit
Parity: None

2  打开天线

发送命令0x010c,数据1(打开天线)到串口

3 请求卡类型

发送命令0x0201,数据0x52到串口

 4 读取卡信息

发送命令0x202到串口

完成后,读取串口返回信息即可。

详细信息文档:/Files/shootingstars/MifarMifareProtocol.rar