Интерфейсы периферийных устройств. Ключев А.О - 191 стр.

UptoLike

190
3.10.3.7 Форматы обмена данными по шине I
2
C (7-битный адрес)
После сигнала СТАРТ посылается адрес ведомого. После 7 бит адреса
следует бит направления данных (R/W), «0» означает передачу (запись), а «1» –
прием (чтение). Пересылка данных всегда заканчивается сигналом СТОП,
генерируемым ведущим [13, 46, 81]. Однако, если ведущий желает оставаться
на шине дальше, он должен выдать повторный сигнал СТАРТ и затем адрес
следующего устройства. При таком формате посылки возможны
различные
комбинации чтения/записи.
Рис. 111. Первый байт после СТАРТ-состояния (адресный байт).
Возможные форматы:
1. Ведущий-передатчик передает данные ведомому-приёмнику.
Направление пересылки данных не изменяется (запись W = 0) [1346].
Рис. 112. Запись данных.
2. Ведущий читает ведомого немедленно после пересылки первого байта.
В момент первого подтверждения ведущий-передатчик становится
ведущим-приёмником, и ведомый-приёмник становится ведомым-
передатчиком. Подтверждение тем не менее генерируется ведущим.
Сигнал СТОП генерируется ведущим. В таком формате посылки есть
тонкость: при приеме последнего байта надо дать ведомому понять, что
больше ведущий
читать не будет и отослать NACK на последнем байте.
Если же отослать ACK, то после СТОП-сигнала ведущий не отпустит
линию (объясняется работой автомата в контроллере I
2
C). Так что прием
двух байтов будет выглядеть так (чтение R = 1):