2.3.1.2 Принцип работы шины I²C Вследствие различных технологий микросхем (КМОП, НМОП,
биполярная), которые могут быть подключены к шине, уровни логического
нуля (НИЗКИЙ) и логической единицы (ВЫСОКИЙ) не фиксированы и зависят
от соответствующего уровня Vdd. Один синхроимпульс генерируется на
каждый пересылаемый бит [7, 18].
Данные на линии SDA должны быть стабильными в течение ВЫСОКОГО
периода синхроимпульса. ВЫСОКОЕ или НИЗКОЕ состояние линии данных
должно меняться, только если линия синхронизации в состоянии НИЗКОЕ.
Рисунок 50. Пересылка бита по шине I²C Данные по линии SDA передаются байтами, при этом каждый байт должен
оканчиваться битом подтверждения. Количество байт, передаваемых за один
сеанс связи, не ограничено. Данные передаются, начиная со старшего бита.
Если приёмник не может принять еще один целый байт, пока он не выполнит
какую-либо другую функцию (например, обслужит внутреннее прерывание), он
может удерживать линию SCL в НИЗКОМ состоянии, переводя передатчик в
состояние ожидания. Пересылка данных продолжается, когда приёмник будет
готов к следующему байту и отпустит линию SCL (опять срабатывает правило
монтажного И).