身份证阅读器SAM通信协议详解

需积分: 10 14 下载量 71 浏览量 更新于2024-09-09 收藏 253KB PDF 举报
"本文档详细介绍了RS232串口身份证阅读器的通讯协议,包括通信方式、通讯配置、数据传输格式以及各个字段的含义,适用于串口身份证开发,兼容各种身份证阅读器。" 在RS232串口身份证阅读器的通讯协议中,主要涉及了两种通信方式:UART(通用异步收发传输器)和USB。UART是低速但通用的通信接口,而USB则提供更高的数据传输速率。在同一时间,用户只能选择其中一种通信方式进行交互。 对于UART通信,其接口参数设定为:1个起始位,8个数据位,1个停止位,无校验位,且波特率可配置,默认为115200bps,也可设置为57600bps、38400bps、19200bps或9600bps。USB通信则采用全速模式,速度为12Mbps,具有特定的输入和输出管道,并支持设备的远程唤醒功能。 数据传输格式对于UART和USB有所不同。在UART数据传输中,每个数据帧包含帧头Preamble、数据长度Len1和Len2、命令CMD、参数Para、数据Data和校验和CHK_SUM。而在USB数据传输中,根据输入和输出管道的不同,数据帧的结构有所调整,但同样包含了帧头、长度信息、命令、参数、数据和校验和。 各字段的含义如下: 1. Preamble(帧头):5字节固定值,为0xAA、0xAA、0xAA、0x96、0x69,用于标识数据帧的开始。 2. Len1和Len2(数据长度):各占1字节,表示有效数据的长度,分别表示数据长度的高字节和低字节。 3. CHK_SUM(校验和):1字节,由帧头之外的所有数据逐字节按位异或计算得出,用于检验数据的完整性和正确性。 协议中还定义了一些基本的命令和响应代码,如: - SAM状态检测(0x11,0xFF):用于检查SAM模块的状态。 - 读SAM管理信息(0x12,0xFF):获取SAM模块的相关信息。 - 寻找证/卡(0x20,0x01):在SAM模块中搜索身份证或其他卡片。 - 选取证/卡(0x20,0x02):选择并激活特定的身份证或卡片。 - 读身份证信息(0x30,0x01):读取选定身份证上的信息。 响应代码SW1、SW2、SW3提供了操作结果的反馈,如0x000x000x90表示操作成功,0x000x000x9F可能表示证/卡的操作状态或返回数据。 通过这些通信协议,开发者可以编写程序与身份证阅读器进行交互,实现身份证信息的读取和处理。这个协议的通用性使得它能广泛应用于各种身份证阅读器设备。