# US 12,182,057 B2 · Inter integrated circuit-based communication method and apparatus

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,182,057 B2
- Document ID: US12182057B2
- Status: Granted
- Kind: B2
- Application number: 18/184,892
- Filed: 2023-03-16
- Published: 2023-07-13
- Granted: 2024-12-31
- Earliest claimed: 2020-09-17
- Assignees: Huawei Technologies Co., Ltd.
- Applicants: Huawei Technologies Co., Ltd.
- Inventors: Pengxin Bao; Haibo Wen
- Web page: https://patentgrep.com/patent/US12182057B2

## CPC

- G06F 13/4045: {where the bus bridge performs an extender function}
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- H04L 1/1607: Details of the supervisory signal
- H04L 45/74: Address processing for routing
- H04L 69/22: Parsing or analysis of headers
- G06F 2213/0016: Inter-integrated circuit (I2C)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An inter integrated circuit (I2C)-based communication method incudes when an I2C signal is encapsulated into a data packet for transparent transmission, an I2C status is indicated by a first field in a packet header of the data packet. The data packet may have no load part, or the data packet has a load part but the load part is used to carry a slave address, a read/write flag, or I2C data. Because the I2C status is indicated in the packet header of the data packet, the I2C status may be encapsulated in a same data packet together with the slave address, the read/write flag, or the I2C data. In other words, the I2C status may not need to occupy one data packet separately.

## Claims

### Claim 1

A communication method implemented by a first device, wherein the communication method comprises:
generating a data packet comprising a packet header and a load, wherein the packet header comprises a first field indicating an inter integrated circuit (I2C) status and a third field comprising a fourth field and a fifth field, wherein the third field indicates that the data packet is an I2C-based data packet when the fourth field indicates that an encapsulation service type of the data packet is a control service and the fifth field indicates that a data format of the data packet is I2C data, wherein the I2C status is start of data transmission, continuation of the data transmission, stop of the data transmission, an acknowledgment (ACK), or a negative acknowledgment (NACK), and wherein a length of the load is greater than or equal to 0 bits; and
sending the data packet to a second device.

### Claim 2 (depends on 1)

The communication method of claim 1, wherein the first field comprises:
a first value indicating that the I2C status is the start of the data transmission;
a second value indicating that the I2C status is the continuation of the data transmission;
a third value indicating that the I2C status is the stop of the data transmission;
a fourth value indicating that the I2C status is the ACK; or
a fifth value indicating that the I2C status is the NACK.

### Claim 3 (depends on 1)

The communication method of claim 1, wherein the first field indicates that the I2C status is the start of the data transmission, and wherein the load carries a slave address of a slave device and carries a read/write flag.

### Claim 4 (depends on 3)

The communication method of claim 3, wherein the slave address is 7 bits and the read/write flag is 1 bit.

### Claim 5 (depends on 1)

The communication method of claim 1, wherein the first field indicates that the I2C status is the continuation of the data transmission, and wherein the load carries I2C data.

### Claim 6 (depends on 1)

The communication method of claim 1, wherein the packet header further comprises a second field indicating an I2C interface.

### Claim 7 (depends on 6)

The communication method of claim 6, wherein the second field indicates a flow identifier (ID) of a flow of the data packet, and wherein the flow ID corresponds to the I2C interface.

### Claim 8 (depends on 1)

The communication method of claim 1, wherein the third field indicates that the data packet is the I2C-based data packet when the third field is a first preset value.

### Claim 9 (depends on 8)

The communication method of claim 8, wherein the fourth field indicates that the encapsulation service type is the control service when the fourth field is a second preset value, and wherein the fifth field indicates that the data format is the I2C data when the fifth field is a third preset value.

### Claim 10

A communication method implemented by a second device, wherein the communication method comprises:
receiving, from a first device, a data packet comprising a packet header and a load, wherein the packet header comprises a first field indicating an inter integrated circuit (I2C) status and a third field comprising a fourth field and a fifth field, wherein the third field indicates that the data packet is an I2C-based data packet when the fourth field indicates that an encapsulation service type of the data packet is a control service and the fifth field indicates that a data format of the data packet is I2C data, wherein the I2C status is start of data transmission, continuation of the data transmission, stop of the data transmission, an acknowledgment (ACK), or a negative acknowledgment (NACK), and wherein a length of the load is greater than or equal to 0 bits; and
determining the I2C status based on the first field.

### Claim 11 (depends on 10)

The communication method of claim 10, wherein the first field comprises:
a first value indicating that the I2C status is the start of the data transmission;
a second value indicating that the I2C status is the continuation of the data transmission;
a third value indicating that the I2C status is the stop of the data transmission;
a fourth value indicating that the I2C status is the ACK; or
a fifth value indicating that the I2C status is the NACK.

### Claim 12 (depends on 10)

The communication method of claim 10, wherein the first field indicates that the I2C status is the start of the data transmission, wherein the load carries a slave address of a slave device and carries a read/write flag, and wherein the communication method further comprises:
generating a start state on at least one I2C interface; and
sending, through the at least one I2C interface, the slave address and the read/write flag to the slave device corresponding to the slave address.

### Claim 13 (depends on 10)

The communication method of claim 10, wherein the first field indicates that the I2C status is the continuation of the data transmission, wherein the load carries I2C data, and wherein the communication method further comprises sending, through at least one I2C interface, the I2C data to a slave device corresponding to a slave address.

### Claim 14 (depends on 10)

The communication method of claim 10, wherein the packet header further comprises a second field indicating an I2C interface.

### Claim 15 (depends on 14)

The communication method of claim 14, wherein the second field indicates a flow identifier (ID) of a flow of the data packet, and wherein the flow ID corresponds to the I2C interface.

### Claim 16 (depends on 10)

The communication method of claim 10, wherein the third field indicates that the data packet is the I2C-based data packet when the third field is a first preset value.

### Claim 17

A communication apparatus, comprising:
a memory configured to store instructions; and
a processor coupled to the memory and configured to:
generate a data packet comprising a packet header and a load, wherein the packet header comprises a first field indicating an I2C status and a third field comprising a fourth field and a fifth field, wherein the third field indicates that the data packet is an I2C-based data packet when the fourth field indicates that an encapsulation service type of the data packet is a control service and the fifth field indicates that a data format of the data packet is I2C data, wherein the I2C status is start of data transmission, continuation of the data transmission, stop of the data transmission, an acknowledgment (ACK), or a negative acknowledgment (NACK), and wherein a length of the load is greater than or equal to 0 bits; and
send the data packet to a second device.

### Claim 18 (depends on 17)

The communication apparatus of claim 17, wherein the first field comprises:
a first value indicating that the I2C status is the start of the data transmission;
a second value indicating that the I2C status is the continuation of the data transmission;
a third value indicating that the I2C status is the stop of the data transmission;
a fourth value indicating that the I2C status is the ACK; or
a fifth value indicating that the I2C status is the NACK.

### Claim 19 (depends on 17)

The communication apparatus of claim 17, wherein the first field indicates that the I2C status is the start of the data transmission, and wherein the load carries a slave address of a slave device and carries a read/write flag.

### Claim 20 (depends on 17)

The communication apparatus of claim 17, wherein the first field indicates that the I2C status is the continuation of the data transmission, and wherein the load carries I2C data.

### Claim 21 (depends on 17)

The communication apparatus of claim 17, wherein the packet header further comprises a second field indicating an I2C interface.

### Claim 22 (depends on 21)

The communication apparatus of claim 21, wherein the second field indicates a flow identifier (ID) of a flow of the data packet, and wherein the flow ID corresponds to the I2C interface.

### Claim 23 (depends on 17)

The communication apparatus of claim 17, wherein the third field indicates that the data packet is the I2C-based data packet when the third field is a first preset value.

### Claim 24

A communication apparatus, comprising:
a memory configured to store instructions; and
a processor coupled to the memory and configured to:
receive a data packet from a first device, wherein the data packet comprises a packet header and a load, wherein the packet header comprises a first field indicating an I2C status and a third field comprising a fourth field and a fifth field, wherein the third field indicates that the data packet is an I2C-based data packet when the fourth field indicates that an encapsulation service type of the data packet is a control service and the fifth field indicates that a data format of the data packet is I2C data, wherein the I2C status is start of data transmission, continuation of the data transmission, stop of the data transmission, an acknowledgment (ACK), or a negative acknowledgment (NACK), and wherein a length of the load is greater than or equal to 0 bits; and
determine the I2C status based on the first field.

### Claim 25 (depends on 24)

The communication apparatus of claim 24, wherein the first field comprises:
a first value indicating that the I2C status is the start of the data transmission;
a second value indicating that the I2C status is the continuation of the data transmission;
a third value indicating that the I2C status is the stop of the data transmission;
a fourth value indicating that the I2C status is the ACK; or
a fifth value indicating that the I2C status is the NACK.

### Claim 26 (depends on 24)

The communication apparatus of claim 24, wherein the first field indicates that the I2C status is the start of the data transmission, wherein the load carries a slave address of a slave device and carries a read/write flag, and wherein the processor is further configured to:
generate a start state on at least one I2C interface; and
send, through the at least one I2C interface, the slave address and the read/write flag to the slave device corresponding to the slave address.

### Claim 27 (depends on 24)

The communication apparatus of claim 24, wherein the first field indicates that the I2C status is the continuation of the data transmission, wherein the load carries I2C data, and wherein the processor is further configured to send, through at least one I2C interface, the I2C data to a slave device corresponding to a slave address.

### Claim 28 (depends on 24)

The communication apparatus of claim 24, wherein the packet header further comprises a second field indicating an I2C interface.

### Claim 29 (depends on 28)

The communication apparatus of claim 28, wherein the second field indicates a flow identifier (ID) of a flow of the data packet, and wherein the flow ID corresponds to at least one I2C interface.

### Claim 30 (depends on 24)

The communication apparatus of claim 24, wherein the third field indicates that the data packet is the I2C-based data packet when the third field is a first preset value.
