跳到主要内容

串口通信协议

在USB模式下,POS和支付终端之间使用串行通信协议

通信参数

  • Baud Rate : 115200
  • Data bits : 8
  • Stop bits : 1

消息结构

跨终端应用集成USB模式串口通信协议消息结构
OffsetFieldByte LengthDescription
0x00STX2Start text, fixed value: 0x55AA
0x02Message type10x00: normal package 0x01: handshake command 0x02: handshake confirmation command
0x03ACK1If the field is 0, it means that the field is invalid; non-0, it represents the id of the last received data packet that passed the verification
0x04Message ID1There is no valid data in the message, the value is 0; the initial value can be 1, and each time a new data packet is sent, it will automatically + 1, greater than 255, and reset to the initial value of 1;
0x05Message Data length2Represents the sum of the lengths of message data segments, with high bytes first;
0x07Message DatanValid data, the upper business layer is responsible for parsing the specific Action category;
0x08+nCRC1Checksum, Byte-by-byte XOR result for data from “message type” to “message data”
0x09+nETX2End text, fixed value: 0xCC33
备注

消息最大长度为1024字节

通信序列

跨终端应用集成USB模式串口通信协议通信序列

消息类型

1. 握手信息

POS向支付终端发送一个空包,包类型为1,ack字段为0,数据包id为0。支付终端侧收到后,将当前状态设置为连接,并将包类型为2的空包返回给POS(握手说服)。如果支付终端侧在收到握手命令之前已连接,则需要清除相关状态。

跨终端应用集成USB模式串口通信协议握手消息结构和格式

Sample message (HEX)

Handshake Message:

55AA010000000001CC33

Handshake Confirmation Message:

55AA020000000002CC33

2. 心跳信息

此支付终端每2秒发送一次心跳消息信息。

跨终端应用集成USB模式串口通信协议心跳消息结构和格式

Sample message (HEX)

55AA000000000000CC33

3. ACK消息

由于串行通信过程的不可靠性,传输的数据不可避免地会遇到丢失、延迟、错误、重复等各种情况。因此,使用了这种ACK机制。这种机制的核心是,在发送方向接收方发送数据后,接收方向发送方发送ACK(收据)。如果发送方没有收到正确的ACK,它将重新发送数据,直到收到ACK。

跨终端应用集成USB模式串口通信协议ACK消息结构和格式

Sample message (HEX)

55AA000100000001CC33

4. 交易消息

发送数据

对于对方发送的具有有效数据的数据包,接收方应及时返回ack。可能存在同时接收多个不同数据包(具有不同ID)的情况。在这种情况下,只需要返回最后一个数据包的ack。为了防止对另一方重新发送的数据包进行重复处理,接收器应该记录上次接收的数据包的id。如果id相等,则意味着另一方重新发送了该数据包,并且该数据包将自动被忽略。

重新发送数据

堆栈顶部的新数据包,发送后标记为已发送,并将数据包的发送次数记录为1。到发布版本时间的下一个100ms代码包,在发布版本的代码包之前检查数据包的接收情况,如果收到了对方相应的ack,则将数据包从堆栈中删除。如果没有收到,则重新发送数据包,+1为数据包的已发送次数。如果发送5次后没有收到相反的ack消息,请将连接设置为断开连接且为空。

跨终端应用集成USB模式串口通信协议重新发送数据结构和格式

消息数据字段

字段格式

POS应用程序和CodePay Register以JSON格式通信