搜索
您的当前位置:首页正文

直流充电设备通用技术规范-附件5 计费控制单元与读卡器通信

来源:爱够旅游网
目 录

1

协议介绍 ................................................................................................................................... 3 1.1 物理层 ........................................................................................................................... 3 1.2 通讯数据包定义 ........................................................................................................... 3 1.3 协议描述 ....................................................................................................................... 3 1.4 数据单元格式 ............................................................................................................... 4 模块管理类操作指令 ............................................................................................................... 4 2.1 通讯参数设置 ............................................................................................................... 6 2.2 查看读写器版本信息 ................................................................................................... 7 2.3 蜂鸣器控制 ................................................................................................................... 7 2.4 控制 LED 状态 ........................................................................................................... 8 2.5 打开射频 ....................................................................................................................... 8 2.6 关闭射频 ....................................................................................................................... 9 卡片操作类指令 ..................................................................................................................... 10 3.1 接触式卡上电 ............................................................................................................. 10 3.2 接触式卡下电 ............................................................................................................. 10 3.3 激活非接触式卡 ......................................................................................................... 12 3.4 应用层传输命令 ......................................................................................................... 13 3.5 非接触卡直通命令 ..................................................................................................... 14 高级指令 ................................................................................................................................. 15 4.1 设置 AID.................................................................................................................... 15 4.2 读取 AID.................................................................................................................... 15 4.3 终端初始化 ................................................................................................................. 16 4.4 交易初始化 ................................................................................................................. 16 4.5 用户卡交易命令 ......................................................................................................... 17 4.6 消费重试命令 ............................................................................................................. 18 4.7 读用户卡二进制信息 ................................................................................................. 19 4.8 设置低功耗模式 ......................................................................................................... 20 M1 卡操作 ............................................................................................................................. 20 5.1 载入密钥 ..................................................................................................................... 20 5.2 模块密钥认证 ............................................................................................................. 21 5.3 认证 ............................................................................................................................. 21 5.4 读块 ............................................................................................................................. 22 5.5 写块 ............................................................................................................................. 22 5.6 加值 ............................................................................................................................. 23 5.7 减值 ............................................................................................................................. 23 5.8 传输 ............................................................................................................................. 24 5.9 恢复 ............................................................................................................................. 24

2

3

4

5

缩略语:

ED 电子存折(Electronic Deposit) EP 电子钱包(Electronic Purse)

MAC 报文鉴别代码(Message Authentication Code) POS 销售点终端(Point of Service)

PSAM 销售点终端安全存取模块(Purchase Secure Access Module) TAC 交易验证码(Transaction Authorization Crypogram) FCI 文件控制信息(File Control Information) AID 应用标识符(Application Identifier)

1 协议介绍

1.1 物理层

读卡器采用外部供电方式,电压5v。通讯接口是异步全双工通讯,默认的波特率 为57600。数据由一位起始位、8位数据位和1位停止位组成,无校验位。另一种是高速 串行SPI口,支持2Mbit/s的速率。

1.2 通讯数据包定义

通讯数据包涵盖了命令数据包及应答数据包,其具体的内容,长度、含义说明见表1.1。

表 1.1 数据通讯包项目含义

命令发送指令包 序号 内容 1 数据包头(STX) 2 3 数据包尾(ETX)

应答返回指令包格式: 序号 内容 1 数据包头(STX) 2 3 4 5 6 7 长度(字节) 说明 1 常量:0x02 需传输的数据单元 Data 部分的长度,高字 节在前,低字节在后,以 16 进制表示。例 数 据 单 元 长 度 2 如:0x0010 表示 Data 部分有 16 个字节 (Data_len) 数据单元长度由 Data_len 定义,本数据单 命令字 1 元头两个字节是命令码.数据包是要发送的1 命令参数 指令内容. 数据包 N 1 1 Data 部分数据各字节异或值。 常量:0x03 检验值(LRC) 长度(字节) 说明 1 常量:0x02 需传输的数据单元 Data 部分的长度,高字 节在前,低字节在后,以 16 进制表示。例 数 据 单 元 长 度 2 如:0x0010 表示 Data 部分有 16 个字节 (Data_len) 命令字 命令参数 状态字 4 5 6 7 8 1 1 2 N 1 检验值(LRC) 数据包尾(ETX) 1 数据包 数据单元长度由 Data_len 定义,本数据单 元头两个字节是命令码.数据包是要返回的指令内容.状态字表示响应指令的正确与否 Data 部分数据各字节异或值。 常量:0x03

1.3 协议描述

模块与终端设备通过数据线连接,模块与终端之间通信无论收发都要符合通讯协议规定。

终端首先通过通讯接口发送一个命令数据包给读写模块,发送完成后等待来自读写 模块的应答数据包。

读写模块正确收到终端发送的命令数据包后,解析此命令,如不需要对卡片进行操 作,则处理此命令并回应终端应答数据;如需要对卡片进行操作,则与卡片进行通讯, 得到卡片的回应数据后,将应答数据发送到终端。

如果终端在规定的最长时间内未能收到读写模块正确的应答数据包,那么终端便 结束

本次数据通讯,并提示出错信息。如果读写模块在规定的最长时间内未收到卡片 的回应数据,那么读写模块应向终端返回卡片操作超时应答

终端向读写模块发送的各命令缺省的最大允许超时时间设定为 0.5 秒,读写模块 对卡片进行操作的各命令最大超时时间应小于 0.5 秒。

1.4 数据单元格式

1.4.1. 命令单元格式,格式见下表 1.2。

表 1.2 命令单元格式 项目 长度 CommandH 1 字节 CommandL 1 字节 参数 不定长 1.4.2. 应答单元格式,格式见下表 1.3。 表 1.3 回应单元格式,命令类别和命令代码与发起方相同 项目 长度 CommandH 1 字节 CommandL Status Data 1.5通信协议

1 字节 2字节 不定长 说明 命令类别 命令代码 命令参数 说明 命令类别 命令代码 状态码 回应数据 1.5.1正常通信

HOST发送命令包(命令+数据),READER响应命令包,一个完整的通信结束。 HOST READER 命令包(帧格式) 返回响应命令包(帧格式) 命令包(帧格式) 返回响应命令包(帧格式) 1.5.2错误处理

READER收到HOST数据包校验BCC错误后,发送NAK,READER收到NAK后,重发命令包,可重复三次。三次错误后,结束通信,本次通信失败。

成功纠错 HOST READER 命令包(帧格式) 命令字(NAK) 重发命令包(帧格式) 返回响应命令包(帧格式) 三次重发通信失败: 命令包(帧格式) 命令字NAK 重发命令包(帧格式) 命令字(NAK) 重发命令包(帧格式) 命令字(NAK) 1.5.3超时处理

HOST发送完成命令或命令字后,启动超时定时器延迟3s,延迟时间到后可重发。延迟次数三次。

HOST READER 命令包(帧格式) 命令包(帧格式) 5s后重发命令包(帧格式)

返回响应命令包(帧格式)

2 模块管理类操作指令

2.1 通讯参数设置

为兼容不同的终端对串口通讯速率的要求,通过设置通讯参数,可以调整串口通 讯波特率,缺省串口通讯波率为 57600bps。

表 2.1 通讯参数设置命令数据单元定义 标识 内容 说明 CommandH CommandL 30H 01H 功能命令类别 设置串口通讯波特率 0:9600bps 1:19200bps 1 字节 标识 CommandH CommandL Status Status 内容 30H 01H 00H,00H 说明 功能命令类别 设置串口通讯波特率 波特率设置成功(以旧波特率发送) 2:38400bps 3:57600bps 4:115200bps 串口波特率 表 2.2 通讯参数设置应答数据单元定义 00H,01H 读写器不支持该串口波特率 本命令数据和应答数据都采用原先缺省的波特率,设置成功后,终端和读写器都 切换到已设置的串口波特率,但下电不保存,恢复到默认。

2.2 查看读写器版本信息

查看银联定义的读写器规范版本信息、受理方定义的读写器接口版本信息和读写器生产厂商自定义的读写器信息。

命令数据单元

表 2.3 查看读写器版本信息命令数据单元定义 标识 CommandH CommandL 应答数据单元 标识 CommandH CommandL Status CUP_Interface Acquirer_Interface Len 内容 31H 11H 说明 功能命令类别 查看版本命令代码 表2.4 查看读写器版本信息应答数据单元定义 内容 31H 11H 00H,00H 8 字节 说明 功能命令类别 查看版本命令代码 命令执行正确 由银联定义的读写器规范版本信息 由受理方定义的版本信息 厂家自定义信息长度 8 字节 1 字节 ProInfomation 厂家自定义信息 Len 字节 其中,受理方和厂家版本信息格式自行定义。

银联定义的读写器规范版本信息存放在CUP_Interface字段中,共8个字节,版本号信息主要使用前2个字节。8个字节分配与用途见表2.5。

表2.5 银联读写器规范版本信息分配与使用定义 字节数 用途 1字节 2字节 3字节 功能位字节 4字节 保留使用 5字节 保留使用 6字节 保留使用 7字节 保留使用 8字节 保留使用 2字节版本号,十六进制,当前版本“0610” 功能位字节表示见表2.6

表2.6 银联读写器规范版本信息功能位字节定义 位数 BIT7 接触式标识 BIT6 BIT5 BIT4 BIT3 LED 标识 BIT2 蜂鸣器标识 BIT1 显示屏标识 BIT0 保留使用0 非接触PSAM保留使式标识 卡标识 用0 用途 示例:非接触式读写器具有PSAM卡插槽、LED指示灯、蜂鸣器,则功能字节位标识见表2.7。

表2.7 读写器产品功能字节位标识示例

0 1 1 0 1 1 0 0

查看银联定义的读写器规范版本信息、受理方定义的读写器接口版本信息和读写器 生产厂商自定义的读写器信息。厂商信息以16进制ASCII码表示。

2.3 蜂鸣器控制

控制蜂鸣器(外部)的单声鸣叫延迟时间和鸣叫次数(低电平蜂鸣)。 命令数据单元

表 2.8 蜂鸣器控制命令数据单元定义

标识 CommandH CommandL 内容 31H 13H 说明 功能命令类别 蜂鸣器控制命令代码 0000H~FFFFH DelayTime (2 字节) 蜂鸣器鸣叫时间(单位:毫秒) 01H~FFH Times 鸣叫次数 (1 字节) 注: DelayTime 为蜂鸣器单次鸣叫时间,Times 为鸣叫次数。鸣叫时间及鸣叫次数根据实际需要而定,但时间及次数都不宜过多。终端只向读写器发送一次此命令,读写器应根据此命令对蜂鸣器进行控制。

应答数据单元

表2.9 蜂鸣器控制应答数据单元定义 标识 CommandH CommandL Status 内容 31H 13H 00H,00H 说明 功能命令类别 命令代码 命令执行正确 2.4 控制 LED 状态

带有 LED 灯的模块是控制 LED 灯,否则是直接控制对应的引脚电平。红灯对应管脚LED1,绿灯对应管脚 LED2。

命令数据单元

表 2.10 设置 LED 灯状态命令数据单元定义 标识 CommandH CommandL 内容 31H 14H 说明 功能命令类别 设置 LED 灯状态命令代码 BIT7 对应绿灯;0-关(LED2 高电平), 1-亮(LED2 低电平) BIT6 对应红灯;0-关(LED1 高电平), 1-亮(LED1 低电平) BIT5~0 预留 LED 应答数据单元

1字节 表2.4 查看读写器版本信息应答数据单元定义

标识 CommandH CommandL Status 内容 31H 11H 00H,00H 说明 功能命令类别 命令代码 命令执行正确 2.5 打开射频

打开模块的射频场,给射频场范围内的射频卡供电。 命令数据单元

表 2.12 打开射频命令数据单元定义 标识 CommandH 内容 31H 说明 功能命令类别 CommandL 应答数据单元

90H 打开射频 表2.13 打开射频命令应答数据单元定义

标识 CommandH CommandL Status 内容 31H 90H 00H,00H 说明 功能命令类别 查看版本命令代码 命令执行正确 2.6 关闭射频

表 2.14 关闭射频命令数据单元定义 标识 CommandH CommandL 应答数据单元

表2.15 关闭射频命令应答数据单元定义

标识 CommandH CommandL Status

内容 31H 91H 00H,00H 说明 功能命令类别 命令代码 命令执行正确 内容 31H 91H 说明 功能命令类别 关闭射频

3 卡片操作类指令

3.1 接触式卡上电

对卡进行上电,接收应答的数据 命令数据单元

表 3.1 卡上电命令数据单元含义定义 标识 CommandH CommandL 内容 32H 22H 说明 卡片操作命令代码 卡上电命令代码 等待插卡的时间(PSAM 卡对该参 数不做处理) 0:无需等待,无卡直接返回 非 0:在 DelayTime 时间内一直判断卡 是否插到位。(单位:毫秒) 卡座号(用户卡:00H~0FH, PSAM 卡:10H~1FH)

应答数据单元 标识 CommandH CommandL 表3.2 卡上电应答数据单元含义定义 内容 说明 32H 22H 00H 10H 00H 01H 02H 05H 20H Status PTL ATR Data 01H 02H 功能命令类别 命令代码 卡上电成功 不支持接触用户卡 接触用户卡未插到位 接触用户卡上电失败 不支持 PSAM 卡 PSAM 卡上电失败 T=0 T=1 卡片复位应答返回的协议和历史字符 (在卡上电成功的情况下才有)。 DelayTime CardNo 2字节 1字节 0 1 不定长

注:10H 对应模块内部的 PSAM, 11H以后对应外接的 PSAM。

读卡器封装分两种类型(接触型,射频卡型) 或者两种都支持。各个厂家根据自己

的情况设计。 只要指令支持即可。

3.2 接触式卡下电

对接触式卡片进行下电操作。 命令数据单元

表 3.3 卡下电命令数据单元含义定义 标识 内容 说明 CommandH CommandL 应答数据单元

32H 23H 卡片操作命令代码 卡下电命令代码 表3.4 卡下电应答数据单元定义 标识 CommandH CommandL 内容 32H 说明 卡片操作命令代码 卡下电命令代码 命令执行正确 不支持接触用户卡 不支持 PSAM 卡 23H 00H,00H 10H,01H Status 20H,01H 注:此命令用于接触式卡

弹卡

表3.4.1 弹卡命令数据单元含义定义 标识 CommandH CommandL 内容 32H 42H 说明 卡片操作命令代码 弹卡命令代码 0:无需等待,直接弹出 非 0:在 DelayTime 时间内弹卡。(单位:毫秒) 卡座号(用户卡:00H~)

应答数据单元 标识 CommandH CommandL 表3.4.1 弹卡应答数据单元含义定义 内容 说明 32H 40H 00H 01H Status

表3.4.2 主电源掉电命令数据单元含义定义 标识 CommandH CommandL 内容 32H 41H 说明 卡片操作命令代码 弹卡命令代码 0:无需等待,直接掉电 非 0:在 DelayTime 时间掉电。(单位:毫秒) 弹卡失败 功能命令类别 命令代码 弹卡成功 DelayTime CardNo 2字节 1字节 DelayTime 2字节

应答数据单元 标识 CommandH CommandL 表3.4.2掉电应答数据单元含义定义 内容 说明 32H 41H 00H 01H Status

掉电失败 功能命令类别 命令代码 掉电成功 3.3 激活非接触式卡

要求读写器在传递的时间内查寻卡是否进入感应区,并激活进入感应区的卡片。命令数据单元

表 3.5 激活非接触式卡命令数据单元含义定义 标识 CommandH CommandL 内容 32H 24H 说明 卡片操作命令代码 激活非接触卡命令代码 等待卡进入感应区时间,高位在前,低 位在后。为 0 时:感应区无卡直接返回 失败;为 0xffff 时,一直寻卡,直到卡进入感应区;其它值时:在 DelayTime 时间内一直判断卡是否进入感应区。(单位: 毫秒) DelayTime 应答数据单元 标识 CommandH CommandL 2 字节 表 3.6 激活非接触卡应答数据单元定义 内容 说明 32H 24H 00H 30H 30H 30H 00H 01H 05H 06H 09H 卡片操作命令代码 激活非接触卡命令代码 激活成功 不支持非接触用户卡 非接触用户卡激活失败 等待卡进入感应区超时 有多张卡在感应区 Type A 卡 M1 卡 TypeB 卡 卡序列号长度 卡序列号(激活成功才返回) ATR 数据长度 Status 30H 0AH 1AH Type UIDLen Card UID ATRLen 0BH 1 字节 UIDLen 字节 1 字节 ATR Data 不定长 卡片复位应答协议和历史字符(激活成 功才返回) 注: 由于发送该命令时,不一定有卡在感应区,很有可能需要较长的时间才能等到卡进感应区,一种方法是由主机一直发该命令,另一种方法是设定较长的时间给读写器,完全由读写器在这段时间 等待对卡激活,如果超时了便返回“激活失败”。此命令的 DelayTime 参数就是为了传递上述时间参 数给读写器。如果 DelayTime 参数为 0,在无卡进感应区时读写器不用等待直接返回“激活失败”; 如果 DelayTime 参数为 0xffff 时,模块进入自动寻卡状态,模块一直寻卡,直到卡进入感应区;寻到 卡片后在模块 Pin22 脚产生下降沿信号。自动寻卡期间模块如果再接收到其它的指令将退出自动寻卡状态。建议在使用中启动自动寻卡后,上位机使用中断方式接收卡到位信号,寻到卡片后发送寻卡命令确认卡到位。

如果 DelayTime 参数为其它值时,读写器可在 DelayTime 时间内一直寻卡,直到超时了读写器才返 回“激活失败”,此时主机端也是采用 DelayTime 作为超时退出时间。如果有卡在感应区但激活失败, 那么读写器不用继续寻卡就直接返回“激活失败”。

3.4 应用层传输命令

传输通讯链路建成后,终端和读写器开始应用层的 APDU 命令的传送。 命令数据单元

表 3.7 应用层命令传输命令数据单元定义 标识 内容 说明 卡片操作命令代码 CommandH 32H CommandL CardNo C-APDU 26H 1 字节 不定长 操作卡片数据命令代码 卡座号(非接触式卡:FFH ,接触用户卡:00H~0FH,PSAM:10H~1FH) 命 令 应 用 协 议 数 据 单 元 。( 按 照ISO/IEC 7816 规范格式) 应答数据单元 表3.8 应用层命令传输应答数据单元定义 标识 内容 说明 卡片操作命令代码 CommandH 32H CommandL 26H 00H 00H 01H 02H 10H 04H 06H 07H Status 20H 01H 04H 06H 07H 01H 30H R-APDU 不定长 05H 07H 操作卡片数据命令代码 卡片正常传回数据 不支持接触用户卡 接触用户卡未插到位 接触用户卡未上电 操作接触用户卡数据无回应 操作接触用户卡数据出现错误 不支持 PSAM 卡 PSAM 卡未上电 操作 PSAM 卡数据无回应 操作 PSAM 卡数据出现错误 不支持非接触用户卡 非接触用户卡激活失败 操作非接触用户卡数据出现错误 响应应用协议数据单元(按照 ISO/IEC 7816 规范格式) 或错误代码 3.5 非接触卡直通命令

命令数据单元 表 3.9 非接触卡直通命令数据单元定义 标识 CommandH CommandL Data 内容 32H 93H N 字节 说明 卡片操作命令代码 操作卡片数据命令代码 具体内容参看 ISO14443-3/-4 协议相关 文档。数据不包括 CRC 校验。 应答数据单元 表3.10 非接触卡直通命令应答数据单元定义 标识 内容 说明 CommandH CommandL 32H 93H 00H,00H 30H,05H Status 30H,40H F0H,02H F0H,03H Data

不定长 卡片操作命令代码 操作卡片数据命令代码 命令执行正确 非接触用户卡激活失败 非接触卡有冲突(TYPEA) 写入或读出数据长度超长 发送命令长度错误 具体内容参看 ISO14443-3/-4 协议相关 文档,返回的数据不包括 CRC 校验 4 高级指令 4.1 设置 AID

用户卡支持 3 个目录文件:ADF01、ADF02、 ADF03,所以使用三个 AID。每个 PSAM 卡支持一个目录文件,ADF01,所以此命令 可设置 4 个 AID,AID 长度最大支持为 16 字节。

注:如果不进行设置,AID 使用出厂默认值。

用户卡 ADF01 的 AID 默认为:A00000000386980701 用户卡 ADF02 的 AID 默认为:A00000000386980702 用户卡 ADF03 的 AID 默认为:A00000000386980703 PSAM 卡的 ADF01AID 默认为:54485446735053414D 命令数据单元

表 4.1 设置 AID 命令数据单元定义 标识 内容 说明 CMDH C0H 设置 CPU 卡应用参数命令代码 CMDL 25H 设置 CPU 卡 AID 命令代码 A1H:设置用户卡 ADF01 的 AID A2H:设置用户卡 ADF02 的 AID A3H:设置用户卡 ADF03 的 AID Flag 1 字节 B1H:设置 PSAM1 卡 ADF01 的 AID B2H:设置 PSAM2 卡 ADF01 的 AID FFH:恢复模块中默认的 AID AID_Len 1 字节 AID 长度 5-16 字节 AID_Len 字AID 写入的 AID 内容 节

应答数据单元

表4.2 设置AID应答数据单元定义 标识 内容 说明 CMDH C0H 设置 CPU 卡应用参数命令代码 CMDL 25H 设置 CPU 卡 AID 命令代码 00H,00H 命令执行正确 Status 10H,01H 写入失败或参数错误 4.2 读取 AID

命令数据单元

表 4.3 读取 AID 命令数据单元定义 标识 CMDH CMDL Flag 内容 C0H 24H 1 字节 说明 读 CPU 卡应用参数命令代码 读 CPU 卡 AID 命令代码 A1H:读用户卡 ADF01 的 AID A2H:读用户卡 ADF02 的 AID A3H:读用户卡 ADF03 的 AID B1H:读PSAM1卡ADF01的AID B2H:读PSAM2卡ADF01的AID 应答数据单元

表4.4 读取AID信息应答数据单元定义 标识 CMDH CMDL Status Infomation

内容 C0H 24H 00H,00H 00H,F5H 不定长 说明 读 CPU 卡应用参数命令代码 读 CPU 卡 AID 命令代码 命令执行正确 参数错误 AID内容 4.3 终端初始化

执行此命令得到终端机的编号和密钥索引。模块是通过对 PSAM 卡的操作得到终 端机的编号和密钥索引。密钥索引不返回,在模块中使用。

命令数据单元

表 4.7 终端初始化命令数据单元定义 标识 CommandH CommandL SAM_No 内容 C1H F4H 1 字节 说明 设置 CPU 卡应用参数命令代码 读 CPU 卡 AID 命令代码 10H:PSAM1 11H:PSAM2 应答数据单元

表4.8 终端初始化命令应答数据单元定义 标识 CommandH CommandL 内容 C1H F4H 00H,00H 00H,F5H Status 20H,05H 20H,07H Infomation 8个字节 说明 设置 CPU 卡应用参数命令代码 读 CPU 卡 AID 命令代码 命令执行正确,PSAM 卡返回 8 个字节卡号 参数错误 PSAM卡上电失败 操作 PSAM 卡数据出现错误,返回响应码两个字节,参见目录 响应码或返回的 PSAM 卡号

4.4 交易初始化

用于读取电子钱包公用信息,并返回电子钱包/存折余额。交易前必须先执行此命令 命令数据单元

表 4.9 交易初始化命令数据单元定义

标识 CommandH CommandL PurchType

内容 C1H F0H 1 字节 说明 非接触 CPU 卡操作 读用户卡应用信息命令代码 ‘01’用于 ED ‘02’用于 EP 应答数据单元

表 4.10 交易初始化命令数据单元定义 标识 CommandH CommandL 内容 C1H F0H 00H,00H Status 30H,06H 30H,07H B_Infomation 36 字节 说明 非接触 CPU 卡操作 读用户卡应用信息命令代码 命令执行正确,返回 36 个字节应用信息 操作用户卡数据无响应 操作用户卡数据响应错误,返回响应码两个字节,参见附录 2 用户卡应用信息(见下表)或响应码两字节 表 4.11 用户卡信息内容 字节 8 字节 4 字节 4 字节 16 字节 4 字节 说明 应用系列号 卡启用日期 有效日期 保留 卡余额 4.5 用户卡交易命令

执行此命令需要得到 EP/ED 公共信息(成功执行了命令码为 F0 的指令),得到 终端机号和密码索引等信息(成功执行了命令码为 F4 的指令)。模块完成包括了ED/EP 初始化交易(initialize for purchase)、计算 MAC1、钱包交易、MAC2 校验 等流程。

命令数据单元

表 4.12 用户卡交易命令数据单元定义 标识 CommandH CommandL 内容 C1H F2H 4 字节 PurchInf 4 字节 3 字节 1 字节 标识 CommandH CommandL Status 内容 C1H F2H 00H,00H 说明 非接触 CPU 卡操作 用户卡交易命令代码 消费金额 HEX 消费日期 BCD 消费时间 BCD 密钥索引,默认为 01H 说明 非接触 CPU 卡操作 用户卡交易命令代码 命令执行正确,返回 22 个字节应用表 4.13 用户卡交易命令数据单元定义 信息 30H,06H 30H,07H 20H,07H 20H,07H 60H,40H 其他错误码 Purch_Infomation 操作用户卡数据无响应 操作用户卡数据响应错误,返回响应码两个字节,参见目录 操作 PSAM 卡数据响应错误,返回响应 操作 PSAM 卡数据响应错误,返回响应码两个字节,参见附录 2 需要做防拔 交易完成,但不合法,需要做标记 用户卡消费交易信息(见下表)或响22字节或两应 个字节 码两字节 说明 卡交易序号 卡片先前余额 终端交易序号 交易 TAC 数据 卡应用序列号 表 4.14 用户卡消费交易信息内容 字节 2 字节 4 字节 4 字节 4 字节 8 字节 当Status为6040时,返回数据为2字节卡交易序号(加 1前) 4.6 消费重试命令

重试消费命令提供了一种在交易处理过程中卡片离场后又进入的恢复机制,用于取 回

卡片最近一次交易的交易认证码,终端以此判断卡片处理交易的状态。在本模块此指 令还包括了对MAC的验证。如果卡未消费则按照交易数据进行卡交易,交易成功后, 返回交易记录。此命令需要重复发送,直至成功。

注意:终端应有退出机制,如果卡再次刷卡,应该做一个异常交易记录,退出。 命令数据单元

表 4.15 取交易认证码命令数据单元定义

标识 CommandH CommandL 内容 C1H F3H 说明 非接触 CPU 卡操作 交易认证码 应答数据单元 表 4.16 取交易认证码命令数据单元定义 标识 CommandH CommandL 内容 C1H F3H 00H,00H Status 30H,06H 30H,07H 码 说明 非接触 CPU 卡操作 交易认证码 命令执行正确,返回 22 个字节应用信息 操作用户卡数据无响应 操作用户卡数据响应错误,返回响应两个字节,参见目录 操作 PSAM 卡数据响应错误,返回响20H,07H 应 码两个字节,参见附录 2 60H,40H 60H,41H 其他错误码 Purch_Infomation 字节 2 字节 4 字节 4 字节 4 字节 8 字节 22 字节 表 4.17 消费交易记录数据块的内容 说明 卡交易序号 卡片先前余额 终端交易序号 交易 TAC 数据 卡应用序列号 消费交易数据 需要进行重试 非原来消费卡 交易记录需要做标志为灰记录

记录数据块的内容与卡消费命中的消费记录相同: 如果执行卡消费指令返回6040H,那么就需要执行卡消费重试命令,此命令可能一次不成功,需要反复执行,直至确定消费完成或生成灰记录。 注:卡消费重试命令只与当次的卡消费相关,如果中间又执行了卡消费命令,那么上次的消费状态自然消失。

4.7 读用户卡二进制信息

此命令完成选择应用目录,读取指定二进制文件数据。执行此命令需满足安全条件 (非MAC方式)。

命令数据单元

表 4.20 读用户卡二进制命令数据单元定义 标识 CommandH CommandL 节 FCHR 1 字节 1 字节

表 4.21 目录和 SFI 字节定义 B7 B6 B5 B4 SFI B3 B2 B1 B0 所属目录(含义参见表2.47) 数据长度 起始位置 内容 C1H E0H 1 字说明 非接触 CPU 卡操作 读用户卡二进制文件 此字节用于区分所读的目录和 SFI,说明见下表 表 4.22 目录定义 B7 0 0 0 1 B6 0 1 1 0 其他值 B5 1 0 1 0 含义 卡文件结构的MF目录 卡文件结构ADF01目录 卡文件结构ADF02目录 卡文件结构ADF03目录 预留

应答数据单元 表4.23 读用户卡二进制命令应答数据单元定义 标识 CommandH CommandL 内容 C1H E0H 00H,00H Status 30H,06H C0H,02H 30H,07H B_Infomation 不定长 说明 非接触 CPU 卡操作 读用户卡二进制文件 命令执行正确 操作用户卡无响应,或卡不在 数据长度超过 128 个字节 用户卡返回错误, 二进制信息或响应码两字节 4.8 设置低功耗模式

发送此命令使模块进入掉电模式,激活只能通过使 Pin23 产生下降沿信号,也就 是需要有硬件的支持。另 SPI 接口不支持此命令。

命令数据单元

表 4.31 设低功耗模式命令单元定义 标识 CommandH CommandL 内容 31H 26H 说明 功能命令类别 功能指令:进入低功耗

应答数据单元

此命令没有返回,执行成功后模块进入休眠状态,不响应其他命令。

5 M1 卡操作 5.1 载入密钥

此命令主要是在初始化的时候用,密钥存储在模块中。支持 0-31 扇区。 命令数据单元

表 5.1 载入密钥令单元定义 标识 CommandH CommandL Sector 内容 C2H 00H 1 字节 说明 M1 卡操作 载入密钥指令 扇区号 KeyType Key 1 字节 6 字节 密钥类型(1 字节,KEYA:60H,KEYB: 61H) 密钥内容,对应 KEYA 或 KEYB 应答数据单元 表 5.2 认证命令应答单元定义 标识 CommandH CommandL Status 内容 C2H 00H 00H,00H C0H,01H 说明 M1 卡操作 载入密钥指令 命令执行正确 载入不成功 5.2 模块密钥认证

利用存储在模块中的密钥认证。 命令数据单元。 表 5.3 模块密钥认证命令单元定义 标识 CommandH CommandL bBlock KeyType UID 内容 C2H 01H 1 字节 1 字节 4 字节 说明 M1 卡操作 模块密钥认证 块号 密钥类型(1 字节,KEYA:60H,KEYB:61H)

应答数据单元 表 5.4 模块密钥认证命令应答单元定义 标识 CommandH CommandL Status

内容 C2H 01H 00H,00H C0H,01H 00H,F5H 说明 M1 卡操作 模块密钥认证 命令执行正确 认证不成功 参数错误 5.3 认证

直接对 M1 卡片进行认证,认证后才可以进行读写等操作。 命令数据单元 表 5.5 认证命令单元定义 标识 CommandH CommandL 内容 C2H 02H 说明 M1 卡操作 认证指令 BKeyNo bBlock Key UID 1 字节 1 字节 6 字节 4 字节 指定认证使用的两个密钥,KEYA 或KEYB。0x60 指示使用 KEYA,0x61 指示使用 KEYB 指示使用的块号 密钥内容,对应 KEYA 或 KEYB 应答数据单元 表 5.6 认证命令应答单元定义 标识 CommandH CommandL 内容 C2H 02H 00H,00H Status 00H,F5H C0H,01H C0H,FFH 说明 M1 卡操作 认证指令 命令执行正确 参数错误 认证错误 其他错误 5.4 读块

认证后可以进行读数据操作,读出的数据固定为16个字节。 命令数据单元

表 5.7 读块数据命令单元定义 标识 CommandH CommandL bBlock 内容 C2H 03H 1 字节 说明 M1 卡操作 读块数据指令 要读取的块号 应答数据单元 表 5.8 读块数据命令应答单元定义 标识 CommandH CommandL Status Dat 内容 C2H 03H 00H,00H C0H,01H 16 字节 说明 M1 卡操作 读块数据指令 命令执行正确 读错误 一次仅读取 16 个字节 5.5 写块

认证后可以写块数据操作,写入的数据固定为 16 个字节。 命令数据单元 标识 CommandH CommandL bBlock Dat 内容 C2H 04H 1 字节 16 字节 说明 M1 卡操作 写块数据指令 要写的块号 一次只能写入 16 个字节

应答数据单元 表 5.10 写块数据命令应答单元定义

标识 00H 内容 00H,说明 命令执行正确 C0H,Status 01H 写入错误 5.6 加值

在原来的数值基础上加上一个数值,得到一个新值,得到的新值存放在缓冲区内。 此操作需要卡有特殊的格式,可参看 M1 卡说明。(对应 M1 卡需建立专用格式) 命令数据单元

表 5.11 加值操作命令单元定义 标识 CommandH CommandL bBlock 内容 C2H 07H 1 字节 补 bValue 4 字节 码形式存储。 应答数据单元 表 5.12 加值操作命令应答单元定义 标识 CommandH CommandL Status

内容 C2H 07H 00H,00H C0H,01H 说明 M1 卡操作 加值操作指令 命令执行正确 写入失败 说明 M1 卡操作 加值操作指令 要写入的块号 写入的数值,低位字节在前,负数以5.7 减值

在原来的数值基础上减去一个数值,得到一个新值,得到的新值存放在缓冲区内。 此操作需要卡有特殊的格式,可参看 M1 卡说明。(对应 M1 卡需建立专用格式) 命令数据单元

表 5.13 减值操作命令单元定义 标识 CommandH CommandL bBlock bValue 内容 C2H 08H 1 字节 4 字节 说明 M1 卡操作 减值指令 要写入的块号 写入的数值,低位字节在前,负数以补码形式存储。 应答数据单元 表 5.14 减值操作命令应答单元定义

标识 Status

内容 00H,00H C0H,01H 说明 命令执行正确 写入失败 5.8 传输

将缓冲区内的数值传输到非易失存储器内。执行加减值操作时必要执行此指令后才完

成加减操作。(对应 M1 卡需建立专用格式)

命令数据单元

表 5.15 传输操作命令单元定义 标识 CommandH CommandL bBlock 内容 C2H 09H 1 字节 说明 M1 卡操作 传输指令 要传送的块号 应答数据单元 表 5.16 传输操作命令应答单元定义 标识 CommandH CommandL Status 内容 C2H 09H 00H,00H C0H,01H 说明 M1 卡操作 传输指令 命令执行正确 写入失败 5.9 恢复

将非易失存储器内的数值恢复到缓冲区内。(对应 M1 卡需建立专用格式) 命令数据单元

表 5.17 恢复操作命令单元定义

标识 CommandH CommandL bBlock 内容 C2H 0AH 1 字节 说明 M1 卡操作 恢复操作指令 要恢复的块号 应答数据单元 表 5.18 恢复操作命令应答单元定义 标识 CommandH CommandL Status 内容 C2H 0AH 00H,00H C0H,01H StatusL 00H 01H 说明 命令执行正确回应 可选的功能接口或参数不支持(包括可选的通 讯波特率参数、显示屏功能等) 说明 M1 卡操作 恢复操作指令 命令执行正确 写入失败 备注 通用状态 附录一 读写器返回错误代码表 StatusH 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 00H 10H 10H 10H 10H 10H 10H 10H 20H 20H 20H 20H 20H 20H 30H 30H 30H 30H 30H 30H 30H 60H 60H C0H C0H C0H C0H C0H C0H 02H 03H F1H F2H F3H F4H F5H FDH FEH FFH 01H 02H 03H 04H 05H 06H 07H 01H 03H 04H 05H 06H 07H 01H 04H 05H 06H 07H 08H 09H 40H 41H 01H 02H 03H 04H 05H FFH 复位失败 开/关场失败 协议数据包格式错误(如:包头包尾) 协议数据长度错误 协议数据校验错误 命令码错误 参数错误 上位机通信超时错误(PC 或 POS 与读写器) 通信超时错误(读写器与模块) 其他未定义错误 不支持接触用户卡 接触用户卡未插到位 接触用户卡已上电 接触用户卡未上电 接触用户卡上电失败 操作接触用户卡数据无回应 操作接触用户卡数据出现错误 不支持 PSAM 卡 PSAM 卡已上电 PSAM 卡未上电 PSAM 卡上电失败 操作 PSAM 卡数据无回应 操作 PSAM 卡数据出现错误 不支持非接触用户卡 非接触用户卡未激活 非接触用户卡激活失败 操作非接触用户卡无回应(等待超时) 操作非接触用户卡数据出现错误 非接触卡 halt 失败 多张卡在感应区 交易状态不确定,需要执行消费重试命令 非原来消费卡 操作不成功 数据长度错误 过程数据错误 操作步骤错误 设备状态错误 其他错误 接触式卡状态 PSAM 卡的状 态 卡片的状态 高级状态 附表二 卡片状态码表 编号 返回状态码 性质 解释 0 9000 正常 命令成功执行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 6300 63Cx 6400 6581 6700 6981 6982 6983 6984 6985 6986 6987 6988 6A80 6A81 6A82 6A83 6A84 6A86 6A88 6B00 6Cxx 6D00 6E00 6F00 9301 9302 9303 9401 9402 9403 9406 61xx 6900 6901

警告 鉴别失败 警告 校验失败(x:允许重试的次数) 出错 标志状态位未改变 出错 存储器写入错误 出错 Lc 或 Le 长度错误 出错 命令与文件结构不相容,当前文件非所需文件 出错 AC 条件不满足 出错 认证方法锁定,PIN 被锁定 出错 随机数无效,引用的数据无效 出错 上次命令的 INS 错,使用条件不满足 出错 不满足命令执行条件 出错 MAC 丢失 出错 MAC 错误 出错 数据域参数不正确 出错 功能不支持;创建不允许;目录无效 出错 未找到该文件 出错 未找到该记录 出错 文件预留空间不足;校验和不对 出错 参数 P1 或 P2 不正确 出错 未找到引用数据;接收通讯超时;接收字符奇偶错 出错 参数错误 出错 Le 长度错误,实际长度是 xx 出错 不支持的指令代码 出错 不支持的类:CLA 错 出错 数据无效 出错 金额不足(Purchase) 出错 MAC 无效 出错 应用已被永久锁定 出错 交易金额不足 出错 交易计数器达到最大值 出错 密钥索引不支持 出错 所需 MAC 不可用 出错 需发 Get response 命令 出错 不能处理,PIN 未锁定 出错 命令不接受(无效状态)

因篇幅问题不能全部显示,请点此查看更多更全内容

Top