CH584读卡M1卡和CPU卡讲解
前言:
针对14443卡类型讲解,例如S50/CPU卡
卡类型区分:

读卡流程
在读取逻辑加密卡(M1卡 MIFARE Classic例如S50)数据时,其使用 14443A 作为底层协议,并在其上附加了私有的加密认证和块读写命令;
在读取CPU卡(如FM1280)数据时,同样使用 14443A 作为底层,但上层传输使用 14443-4 和 APDU 命令;
讲解:
- ISO 14443-3 就像 拨号、振铃、建立连接 的过程。这个阶段的目标只有一个:从多个可能的卡片中,唯一地选中一张,并获得它的身份证(UID)。
- 初始化:读卡器发射能量,唤醒射频场内的所有卡片,告诉它们“我要开始通信了”。
- 防冲突:如果有多张卡片同时被唤醒,读卡器会通过一套算法(类似二进制树形检索),快速逐一识别出每张卡的 UID(唯一序列号),然后选择其中一张进行后续操作。
- ISO 14443-4 就像 接通后,双方约定使用同一种语言(比如英语)进行正式交谈 的过程。
- 为什么要它?
- CPU 卡内部有一个操作系统(COS),它需要接收的命令非常复杂(比如 APDU:选择文件、验证 PIN、签名等)。这些命令长短不一,需要更高的可靠性、分包传输和流量控制。第 3 层的简单“发一个包、收一个包”满足不了需求。
- 它做了什么?
- 协议激活(RATS/ATS):读卡器发送 RATS 命令,询问“你的通信能力如何?”。卡片回复 ATS,告诉读卡器“我最大能收多少字节、需要多长的等待时间”等参数。这就好比接起电话后,双方先确认“你会说中文吗?你说话速度多快?”。
- 建立逻辑链路:之后,读卡器和卡片之间的所有数据(APDU 命令和响应)都会被封装在 I-block(信息块) 中传输。I-block 支持长数据分包、发送确认(链结)、错误检测等。
- 可选速率协商(PPS):可以协商从默认的 106kbps 提升到 212、424 甚至 848kbps。
- 为什么要它?
总结:
-
发送 REQA / WUPA → 获得 ATQA。
-
根据 ATQA 中指示是否支持 ISO 14443-4(例如 ATQA 的 bit 8 或 bit 13,不同芯片定义略有差异,通常 0x0008 表示支持)。
-
如果 ATQA 指示不支持 14443-4(比如经典 M1 卡 ATQA=0x0004):
→ 走 MIFARE 经典流程:防冲突选卡 → 获取 UID → 认证 → 读/写块。 -
如果 ATQA 指示支持 14443-4(比如 FM1280 返回 0x0008):
→ 走 ISO 14443-4 流程:防冲突选卡 → 获取 UID(这一步仍然需要)→ 发送 RATS → 接收 ATS → 然后使用 APDU 进行后续操作。
浙公网安备 33010602011771号