PHPoC обеспечивает I2C, двустрочный шинный интерфейс.
Данные I2C всегда передаются в 8-битном блоке/юните. Структура данных I2C выглядит следующим образом:
Условия запуска и остановки I2C выглядят следующим образом:
Условие | SCL | SDA |
---|---|---|
Start | HIGH | HIGH > LOW |
Stop | HIGH | LOW > HIGH |
PHPoC использует 7-битную адресацию ведомого устройства. LSB байта адреса определяет, что кадр предназначен для чтения или записи.
Связь I2C состоит из чтения или записи данных от ведущего устройства.
Раздел | SCL | SDA |
---|---|---|
Read | 8-й бит - HIGH | HIGH |
Write | 8-й бит - HIGH | LOW |
Как ведущий I2C, так и ведомый отправляют подтверждение (ACK), когда принимают 8-битовые данные. Правильное подтверждение осуществляется выходом HIGH на 9-м бите. Если состояние шины находится в HIGH, то данные еще не получены.
Раздел | SCL | SDA |
---|---|---|
Подтверждение/Acknowledgement(ACK) | 9-й бит - HIGH | LOW |
Отсутствие подтверждения/No Acknowledgement (NACK) | 9-й бит - HIGH | HIGH |
4 различных сценария связи I2C заключаются с следующем: белые области фона являются выходными данными ведущего, а серые области фона - выходными данными ведомого.