Communication Protocol Between the USB1287 Gateway and SB201/SB204

The communication between the SB200 and SB201/ SB204 is based on a half duplex UART - here referred to as Asynchronous smart battery bus (ASBBus).

The SBS specification uses the SMBus protocol, but since SB201 uses software UART, some changes have been made to improve reliability. Addressing has also been removed.

SB201 supports the four different types of messages used by SBS:

A word command always has two bytes of data and a block command always 32 bytes, which is different from the SBS block commands that has variable length.

The host sends a command where the MSB determines if it's a write or read. 0 means write and 1 means read. This allows for 128 different commands that both support read and write. From the command itself it is not possible to determine if it is a word or block command; both sides have to agree what all commands are.

SB201 immediately sends back the command; this allows the host to detect if SB201 received the command correctly. What happens after that depends on the type of message used by that command.

A Packet Error-checking Code (PEC) is appended to all data to be able to detect errors. The PEC is a CRC8 with polynomial 0x8D (CRC8-CCITT) calculated from the command and all data bytes.