Выбор ведомого устройства, с которым хотело бы обмениваться данными ведущее устройство, осуществляется посредством первого байта, который всегда определяется как адрес ведомого устройства – первый байт последовательности данных. Он однозначно сопоставлен определенному устройству, подключенному к шине, и имеет длину 7 бит (разряды от 1 до 7). Теоретически, таким образом можно адресовать до 128 ведомых устройств, однако по определению некоторые адреса ведомых устройств имеют особое значение. Адрес ведомого устройства состоит из двух частей: постоянной и переменной (рис. 7.14).
Рис. 7.14. Формат адреса шины I2C
Постоянная часть адреса описывает требования к определенным группам устройств и определяется изготовителем. Его длина определена в результате практического опыта и в большинстве случаев составляет 4 бита. Он будет тем короче, чем больше однотипных устройств в схеме. Постоянная часть адреса жестко "прошита" в интегральной схеме и не может быть изменена пользователем.
Переменная часть адреса ведомого устройства служит для выбора определенного устройства из группы однотипных кристаллов, среди которых все имеют постоянную часть адреса ведомого устройства. Благодаря этому, к шине могут быть подсоединены несколько однотипных интегральных схем. Переменная часть
в большинстве случаев определяется пользователем с помощью внешних схем (через дополнительные выводы).
С помощью разрядов 1-7 адреса ведомого устройства однозначно идентифицируется требуемый ведомый блок. Разряд 0 задает направление передачи данных. Он определяет, должны ли быть приняты или переданы данные. Если разряд направления передачи данных содержит лог. 1 (чтение), то ведущее устройство находится в режиме приемника, а ведомое – в режиме передатчика. Если разряд направления передачи данных содержит лог. 0 (запись), то ведущее устройство будет работать как передатчик, а ведомое – как приемник.
Адрес ведомого устройства также подтверждается этим устройством с помощью бита квитирования. Если ведущее устройство после адресации получает отрицательное квитирование, то оно может заключить, что ведомое устройство или вообще отсутствует, или в настоящий момент с ним невозможно установить связь (например, оно занято обработкой заданий, критическими с точки зрения времени).