Skip to main content
EMV Core 与主机之间的通道可以是串行通道或 USB 通道。 在 USB 接口中:
  • 该设备使用 HID 协议类,采用 64 字节块(在 HID 术语中称为“报告”)。
  • 每个 64 字节块的第一个字节是长度字节,表示接下来的 63 个字节中实际使用了多少个字节。
  • 如果长度字节小于 63,则应丢弃剩余字节。
  • 如果长度字节为 63 或更大,则使用后面全部 63 个字节。

数据链路协议

命令序列示例(GetKioskId)

以下交互展示了 GetKioskID 命令的完整 ACK/NAK 流程:

数据帧

示例:
结构: <A[Frame-ID]|[Length][Data][LRC]>

LRC 和长度计算示例


ACK 帧

发送以确认已成功接收并验证数据帧。 示例: <+0>、<+1> 结构: <+[Frame-ID]> [Frame-ID] 与正在确认的数据帧匹配。

NAK 帧

当接收方无法解析数据帧时发送。 示例: <-0|1>、<-1|7> 结构: <-[Frame-ID]|[Err]> 发送方不会根据错误代码改变其行为;错误代码仅用于调试。

协议规则

数据链路层遵循以下时序规则:
  • 预计在 30 毫秒内收到 ACK/NAK 确认。
  • 如果未收到 ACK,或者收到 NAK,发送方可以使用相同的帧 ID 重新发送帧。
  • 在等待 ACK/NAK 期间,发送方不得发送另一帧。
  • 接收帧时:如果开头字节不是 <A0 或 <A1,不要发送 NAK,而是继续读取,直到收到有效的帧起始符。