Ответы к ГосЭкзамену 220402 (Информатика) (1088974), страница 22
Текст из файла (страница 22)
ай-ту-си) — последовательная шина данных для связи интегральных схем, разработанная фирмойPhilips в начале 1980-х как простая шина внутренней связи для создания управляющей электроники. Используется для соединения низкоскоростных периферийных компонентов с материнской платой, встраивае-76мыми системами и мобильными телефонами. Название представляет собой аббревиатуру слов InterIntegrated Circuit. 1 октября 2006 года отменены лицензионные отчисления за использование протокола I²C.Однако, отчисления сохраняются для выделения эксклюзивного подчинённого адреса на шине I²C.История и схемотехникаПример схемотехники с одним микроконтроллером (uC Master) и тремя подчинёнными (slave) устройствами(ADC — аналого-цифровой преобразователь, DAC — цифро-аналоговый преобразователь и второй микроконтроллер uC Slave), нагруженными резисторами RpI²C использует две двунаправленных линии, подтянутые к напряжению питания и управляемые через открытый коллектор или открытый сток — последовательная линия данных (SDA, англ.
Serial DAta) и последовательная линия тактирования (SCL, англ. Serial CLock), обе нагруженные резисторами. Стандартные напряжения +5 В или +3,3 В, однако допускаются и другие.Классическая адресация включает 7-битное адресное пространство с 16 зарезервированными адресами. Этоозначает до 112 свободных адресов для подключения периферии на одну шину.Основной режим работы — 100 кбит/с; 10 кбит/с в режиме работы с пониженной скоростью.
Заметим, чтостандарт допускает приостановку тактирования для работы с медленными устройствами.После пересмотра стандарта в 1992 году становится возможным подключение ещё большего количестваустройств на одну шину (за счёт возможности 10-битной адресации), а также большую скорость до 400кбит/с в скоростном режиме. Соответственно, доступное количество свободных узлов выросло до 1008.Максимальное допустимое количество микросхем, подсоединенных к одной шине, ограничивается максимальной емкостью шины в 400 пФ.Версия стандарта 2.0, выпущенная в 1998 году представила высокоскоростной режим работы со скоростьюдо 3,4 Мбит/с с пониженным энергопотреблением.
Последняя версия 2.1 2001 года включила лишь незначительные доработки.Тактировка последовательности передачи данныхПринцип работыСостояние СТАРТ и СТОППроцедура обмена начинается с того, что ведущий формирует состояние СТАРТ — ведущий генерируетпереход сигнала линии SDA из ВЫСОКОГО состояния в НИЗКОЕ при ВЫСОКОМ уровне на линии SCL.Этот переход воспринимается всеми устройствами, подключенными к шине как признак начала процедурыобмена. Генерация синхросигнала — это всегда обязанность ведущего; каждый ведущий генерирует свойсобственный сигнал синхронизации при пересылке данных по шине.
Процедура обмена завершается тем,что ведущий формирует состояние СТОП — переход состояния линии SDA из низкого состояния в ВЫСОКОЕ при ВЫСОКОМ состоянии линии SCL. Состояния СТАРТ и СТОП всегда вырабатываются ведущим.Считается, что шина занята после фиксации состояния СТАРТ. Шина считается освободившейся через не-77которое время после фиксации состояния СТОП. При передаче посылок по шине I2C каждый ведущий генерирует свой синхросигнал на линии SCL. После формирования состояния СТАРТ, ведущий опускает состояние линии SCL в НИЗКОЕ состояние и выставляет на линию SDA старший бит первого байта сообщения. Количество байт в сообщении не ограничено.
Спецификация шины I2C разрешает изменения на линииSDA только при НИЗКОМ уровне сигнала на линии SCL. Данные действительны и должны оставаться стабильными только во время ВЫСОКОГО состояния синхроимпульса. Для подтверждения приема байта отведущего — передатчика ведомым — приемником в спецификации протокола обмена по шине I2C вводитсяспециальный бит подтверждения, выставляемый на шину SDA после приема 8 бита данных.ПодтверждениеТаким образом передача 8 бит данных от передатчика к приемнику завершаются дополнительным циклом(формированием 9-го тактового импульса линии SCL), при котором приемник выставляет низкий уровеньсигнала на линии SDA, как признак успешного приема байта.Подтверждение при передаче данных обязательно, кроме случаев окончания передачи ведомой стороной.Соответствующий импульс синхронизации генерируется ведущим.
Передатчик отпускает (ВЫСОКОЕ) линию SDA на время синхроимпульса подтверждения. Приёмник должен удерживать линию SDA в течениеВЫСОКОГО состояния синхроимпульса подтверждения в стабильном НИЗКОМ состоянии.В том случае, когда ведомый-приёмник не может подтвердить свой адрес (например, когда он выполняет вданный момент какие-либо функции реального времени), линия данных должна быть оставлена в ВЫСОКОМ состоянии.
После этого ведущий может выдать сигнал СТОП для прерывания пересылки данных. Еслив пересылке участвует ведущий-приёмник, то он должен сообщить об окончании передачи ведомомупередатчику путем не подтверждения последнего байта. Ведомый-передатчик должен освободить линиюданных для того, чтобы позволить ведущему выдать сигнал СТОП или повторить сигнал СТАРТ.Синхронизация выполняется с использованием подключения к линии SCL по правилу монтажного И. Этоозначает, что ведущий не имеет монопольного права на управление переходом линии SCL из НИЗКОГОсостояния в ВЫСОКОЕ. В том случае, когда ведомому необходимо дополнительное время на обработкупринятого бита, он имеет возможность удерживать линию SCL в низком состоянии до момента готовности кприему следующего бита.
Таким образом, линия SCL будет находиться в НИЗКОМ состоянии на протяжении самого длинного НИЗКОГО периода синхросигналов.Устройства с более коротким НИЗКИМ периодом будут входить в состояние ожидания на время, пока некончится длинный период. Когда у всех задействованных устройств кончится НИЗКИЙ период синхросигнала, линия SCL перейдет в ВЫСОКОЕ состояние. Все устройства начнут проходить ВЫСОКИЙ периодсвоих синхросигналов. Первое устройство, у которого кончится этот период, снова установит линию SCL вНИЗКОЕ состояние.
Таким образом, НИЗКИЙ период синхролинии SCL определяется наидлиннейшим периодом синхронизации из всех задействованных устройств, а ВЫСОКИЙ период определяется самым коротким периодом синхронизации устройств.Механизм синхронизации может быть использован приемниками как средство управления пересылкой данных на байтовом и битовом уровнях.На уровне байта, если устройство может принимать байты данных с большой скоростью, но требует определенное время для сохранения принятого байта или подготовки к приему следующего, то оно может удерживать линию SCL в НИЗКОМ состоянии после приема и подтверждения байта, переводя таким образом передатчик в состояние ожидания.На уровне битов, устройство, такое как микроконтроллер без встроенных аппаратных цепей I2C или с ограниченными цепями, может замедлить частоту синхроимпульсов путем продления их НИЗКОГО периода.Таким образом скорость передачи любого ведущего адаптируется к скорости медленного устройства.Адресация в шине I2CКаждое устройство, подключённое к шине, может быть программно адресовано по уникальному адресу.
Длявыбора приемника сообщения ведущий использует уникальную адресную компоненту в формате посылки.78При использовании однотипных устройств, ИС часто имеют дополнительный селектор адреса, который может быть реализован как в виде дополнительных цифровых входов селектора адреса, так и в виде аналогового входа. При этом адреса таких однотипных устройств оказываются разнесены в адресном пространствеустройств, подключенных к шине.В обычном режиме используется 7-битная адресация.Процедура адресации на шине I2C заключается в том, что первый байт после сигнала СТАРТ определяет,какой ведомый адресуется ведущим для проведения цикла обмена.
Исключение составляет адрес «Общеговызова», который адресует все устройства на шине. Когда используется этот адрес, все устройства в теориидолжны послать сигнал подтверждения. Однако, устройства, которые могут обрабатывать «общий вызов»,на практике встречаются редко.Первые семь битов первого байта образуют адрес ведомого. Восьмой, младший бит, определяет направление пересылки данных. «Ноль» означает, что ведущий будет записывать информацию в выбранного ведомого. «Единица» означает, что ведущий будет считывать информацию из ведомого.После того, как адрес послан, каждое устройство в системе сравнивает первые семь бит после сигналаСТАРТ со своим адресом. При совпадении устройство полагает себя выбранным как ведомый-приёмник иликак ведомый-передатчик, в зависимости от бита направления.Адрес ведомого может состоять из фиксированной и программируемой части.