Скачиваний:
32
Добавлен:
09.05.2014
Размер:
293.35 Кб
Скачать

3. Логическая организация интерфейса I2C.

4. EEPROM. Назначение. Организация.

1 Что такое арбитраж на шине I2C . Принцип работы, назначение.

Арбитраж – процедура, гарантирующая, что только один «Master» управляет шиной Функция нескольких ведущих (Multimaster) означает возможность подключения более одного МК к шине. При этом, если более чем один ведущий попытается начать пересылку в один и тот же момент времени, возможный хаос будет устранен из-за процедуры арбитража. Она основана на том, что все I2C-устройства подключаются к шине по правилу монтажного И.

Арбитраж происходит на шине SDA, в периоды, когда шина SCL находится в ВЫСОКОМ состоянии. Если один ведущий передает на линию данных НИЗКИЙ уровень, в то время как другой - ВЫСОКИЙ, то последний отключается от линии, так как состояние SDL (НИЗКОЕ) не соответствует ВЫСОКОМУ состоянию его внутренней линии данных. Арбитраж может продолжаться на протяжении нескольких бит. Так как сначала передается адрес, а потом данные (см. Разделы 7-битная адресация и 10-битная адресация), то арбитраж может продолжаться до окончания адреса, а если ведущие адресуют одно и то же устройство, то в арбитраже будут участвовать и данные. Вследствие такой схемы арбитража при столкновении данные не теряются.

Ведущему, проигравшему арбитраж, разрешается выдавать синхроимпульсы на шину SCL до конца байта, в течение которого был потерян доступ.

Если в устройство ведущего также встроены и функции ведомого и он проигрывает арбитраж на стадии передачи адреса, то он немедленно должен переключиться в режим ведомого, так как выигравший арбитраж ведущий мог адресовать его.

Особое внимание следует обратить на ситуацию, когда во время арбитражной процедуры на шину передается повторный сигнал СТАРТ или сигнал СТОП. Если существует возможность возникновения такой ситуации, то ведущие должны послать повторный сигнал СТАРТ или сигнал СТОП в одних и тех же позициях кадра. Другими словами, арбитраж запрещен между:

повторным сигналом СТАРТ и битом данных сигналом СТОП и битом данных повторным сигналом СТАРТ и сигналом СТОП

2 Основные характеристики внешней памяти EEPROM стенда SDK1.1. Сколько таких устройств может быть подключено к шине I2C?

На стенде SDK установлена E2PROM, состоящая из 128 однобайтных страниц общим объемом 1 К. Адрес E2PROM на шине I2С равен 1010001.

Внутренний счетчик адреса содержит последний адрес, к которому производилось обращение для чтения или записи, увеличенный на единицу. После выключения питания счетчик не сохраняет свое значение. Во время операции чтения счетчик адреса автоматически переключается с последнего байта последней страницы на первый байт первой страницы. При записи он переходит с последнего байта страницы на первый байт той же самой страницы.

Внутренняя EEPROM-память программируется при помощи SFR-регистров: EDATA1-4 – 4 регистра данных для чтения/записи страницы; EADRL – регистр адреса страницы; ECON – регистр управления командами доступа к памяти (чтение, запись, стирание, верификация и др.). Первые семь бит содержат адрес устройства, то есть всего устройств может быть 27 = 128

3 Опишите подробную работу шины I2C в случае подключения к ней 1-го Master устройства и нескольких Slave устройств. Как происходит обмен данными между такими устройствами?

Процедура обмена начинается с того, что ведущий формирует состояние СТАРТ: генерирует переход сигнала линии SDA из ВЫСОКОГО состояния в НИЗКОЕ при

ВЫСОКОМ уровне на линии SCL. Этот переход воспринимается всеми устройствами, подключенными к шине, как признак начала процедуры обмена. Генерация синхросигнала — это всегда обязанность ведущего; каждый ведущий генерирует свой собственный сигнал синхронизации при пересылке данных по шине. Процедура обмена завершается тем, что ведущий формирует состояние СТОП — переход состояния линии SDA из низкого состояния в ВЫСОКОЕ при ВЫСОКОМ состоянии линии SCL. Состояния СТАРТ и СТОП всегда вырабатываются ведущим. Считается, что шина занята после фиксации состояния СТАРТ. Шина считается освободившейся через некоторое время после фиксации состояния СТОП. При передаче посылок по шине I2C каждый ведущий генерирует свой синхросигнал на линии SCL. После формирования состояния СТАРТ, ведущий опускает состояние линии SCL в НИЗКОЕ состояние и выставляет на линию SDA старший бит первого байта сообщения. Количество байт в сообщении не ограничено. Для подтверждения приема байта от ведущего-передатчика ведомымприемником в спецификации протокола обмена по шине I2C вводится специальный бит подтверждения, выставляемый на шину SDA после приема 8 бита данных. Таким образом передача 8 бит данных от передатчика к приемнику завершаются дополнительным циклом (формированием 9-го тактового импульса линии SCL), при котором приемник выставляет низкий уровень сигнала на линии SDA, как признак успешного приема байта.

Первые семь битов первого байта образуют адрес ведомого. Восьмой, младший бит, определяет направление пересылки данных. «Ноль» означает, что ведущий будет записывать информацию в выбранного ведомого. «Единица» означает, что ведущий будет считывать информацию из ведомого.

После того, как адрес послан, каждое устройство в системе сравнивает первые семь бит после сигнала СТАРТ со своим адресом. При совпадении устройство полагает себя выбранным как ведомый-приѐмник или как ведомый-передатчик, в зависимости от бита направления.

Адрес ведомого может состоять из фиксированной и программируемой части

7.*Интерфейс I2C — синхронная последовательная шина, обеспечивающая

двустороннюю передачу данных между подключенными устройствами по двум сигнальным линиям. Шина ориентирована на 8-битные передачи. Передача данных может быть как одноадресной, к выбранному устройству, так и широковещательной. Для выборки устройств используется 7-битная или 10-битной адресация. Для осуществления процесса обмена информацией по I2C шине, используется всего два сигнала линия данных SDA линия синхронизации SCL. Обе линии, и SDA, и SCL, являются двунаправленными, соединенными с положительным полюсом источника напряжения через pull-up резистор (Рис. 4). Когда шина свободна, обе линии находятся в состоянии HIGH. Выходные части устройств, подсоединенных к шине, должны иметь открытый коллектор или открытый сток, чтобы выполнять функцию wired-AND. Данные по шине I2C могут передаваться со скоростями до 100 Кб/c в стандартном режиме и 400 Кб/с в быстром режиме. Количество интерфейсов зависит только от предельной емкости шины

400пФ.

*шина I2C широко используется в микросхемах памяти, видеопроцессорах, модулей обработки аудио- и видео-сигналов, АЦП и ЦАП, драйверах ЖК-индикаторов, телефонах, кодеках и многих других устройствах.

*примеры не могу найти((((??????????????????????

8.*Программный интерфейс - система унифицированных связей, предназначенных для обмена данными между компонентами вычислительной системы. Программный интерфейс задает набор необходимых процедур, их параметров и способов обращения.

Вопрос 1

Подробно опишите работу шины I2C в случае подключения к ней нескольких Master

– устройств. Как происходит обмен данными между такими устройствами

Шина I2C – это двунаправленная шина, соединяющая между собой различные интегральные схемы или модули. Она содержит две линии: линию передачи данных (SDA) и линию синхронизации (SCL). Обе линии должны подключаться к положительному полюсу источника питания через нагрузочный резистор. Передача данных может осуществляться только в том случае, если шина не занята.

Устройство, генерирующее некоторое сообщение, является передатчиком, а устройство, принимающее сообщение – приемником.

Устройство, контролирующее передачу, является главным, а устройство, контролируемое главным устройством, является подчиненным.

До того, как на шину I2C будут переданы какие-либо данные, происходит адресация нужного устройства. Адресация осуществляется всегда при передаче первого байта после "стартовой" процедуры. Часы/календарь могут выступать в роли подчиненного приемника или подчиненного передатчика. Поэтому для них сигнал синхронизации передается только по входной линии, а данные – в обоих направлениях по линии SDA

До того, как на шину I2C будут переданы какие-либо данные, происходит адресация нужного устройства. Адресация осуществляется всегда при передаче первого байта после "стартовой" процедуры.

Процедура обмена начинается с того, что ведущий формирует состояние СТАРТ: генерирует переход сигнала линии SDA из ВЫСОКОГО состояния в НИЗКОЕ при ВЫСОКОМ уровне на линии SCL. Этот переход воспринимается всеми устройствами, подключенными к шине, как признак начала процедуры обмена. Генерация синхросигнала

— это всегда обязанность ведущего; каждый ведущий генерирует свой собственный сигнал синхронизации при пересылке данных по шине. Процедура обмена завершается тем, что ведущий формирует состояние СТОП — переход состояния линии SDA из низкого состояния в ВЫСОКОЕ при ВЫСОКОМ состоянии линии SCL. Состояния СТАРТ и СТОП всегда вырабатываются ведущим. Считается, что шина занята после фиксации состояния СТАРТ. Шина считается освободившейся через некоторое время после фиксации состояния СТОП. При передаче посылок по шине I2C каждый ведущий генерирует свой синхросигнал на линии SCL. После формирования состояния СТАРТ, ведущий опускает состояние линии SCL в НИЗКОЕ состояние и выставляет на линию SDA старший бит первого байта сообщения. Количество байт в сообщении не ограничено. Спецификация шины I2C разрешает изменения на линии SDA только при НИЗКОМ уровне сигнала на линии SCL. Данные действительны и должны оставаться стабильными только во время ВЫСОКОГО состояния синхроимпульса. Для подтверждения приема байта от ведущего-передатчика ведомым-приемником в спецификации протокола обмена по шине I2C вводится специальный бит подтверждения, выставляемый на шину SDA после приема 8 бита данных.

Ведущий может начинать пересылку данных только если шина свободна. Два и более ведущих могут сгенерировать сигнал СТАРТ за время минимального удерживания (Thd;sta), что ведет к определенному сигналу СТАРТ на шине.

Арбитраж происходит на шине SDA, в периоды, когда шина SCL находится в ВЫСОКОМ состоянии. Если один ведущий передает на линию данных НИЗКИЙ уровень, в то время как другой - ВЫСОКИЙ, то последний отключается от линии, так как состояние SDL (НИЗКОЕ) не соответствует ВЫСОКОМУ состоянию его внутренней линии данных.

Арбитраж может продолжаться на протяжении нескольких бит. Так как сначала передается адрес, а потом данные , то арбитраж может продолжаться до окончания адреса, а если ведущие адресуют одно и то же устройство, то в арбитраже будут участвовать и данные. Вследствие такой схемы арбитража при столкновении данные не теряются. Ведущему, проигравшему арбитраж, разрешается выдавать синхроимпульсы на шину SCL до конца байта, в течение которого был потерян доступ.

Если в устройство ведущего также встроены и функции ведомого и он проигрывает арбитраж на стадии передачи адреса, то он немедленно должен переключиться в режим ведомого, так как выигравший арбитраж ведущий мог адресовать его.В момент, когда обнаруживается различие между уровнем внутренней линии данных и SDA, выход первого ведущего принимает ВЫСОКОЕ значение, не влияя таким образом на пересылку данных выигравшего ведущего.

Вследствие того, что арбитраж зависит только от адреса и данных, передаваемых соревнующимися ведущими, не существует центрального ведущего, а также приоритетного доступа к шине.

Особое внимание следует обратить на ситуацию, когда во время арбитражной процедуры на шину передается повторный сигнал СТАРТ или сигнал СТОП. Если существует возможность возникновения такой ситуации, то ведущие должны послать повторный сигнал СТАРТ или сигнал СТОП в одних и тех же позициях кадра. Другими словами, арбитраж запрещен между:

повторным сигналом СТАРТ и битом данных сигналом СТОП и битом данных повторным сигналом СТАРТ и сигналом СТОП

вопрос2 Опишите подробно программный интерфейс, организацию и работу драйвера

внешней памяти EEPROM.

EEPROM – электрически стираемое перепрограммируемое постоянное запоминающее устройство. Объем памяти EEPROM (AT24C02A, Atmel), установленной в стенде SDK- 1.1,

составляет 256 байт (2 Кбит). Основные характеристики:

Возможность перезаписи до 1 млн. раз.

Возможность побайтовой и постраничной записи (в текущей конфигурации размер страницы составляет 8 байт).

Внутренняя EEPROM-память программируется при помощи SFR-регистров: EDATA1-4

– 4 регистра данных для чтения/записи страницы; EADRL – регистр адреса страницы;

ECON

– регистр управления командами доступа к памяти (чтение, запись, стирание, верификация и др.).

подключенна к шине I2C

Ячейка памяти представляет собой МОП - транзистор с плавающим затвором, который окружен диоксидом кремния. Сток транзистора соединен с «землей», а исток подключен к напряжению питания с помощью резистора. В стертом состоянии (до записи) плавающий затвор не содержит заряда, и МОП - транзистор закрыт. В этом случае на истоке поддерживается высокий потенциал, и при обращении к ячейке считывается логическая единица. Программирование памяти сводится к записи в соответствующую ячейки

логических нулей. Программирование осуществляется путем подачи на управляющий затвор высокого напряжения.

при програмировании используется "квантовый эффект туннелирования ФаулераНордхейма".

Основным преимуществом использования памяти EEPROM заключается в возможности ее многократного перепрограммирования без удаления из платы.

Особенности EEPROM AT24Cxx

Внутреннее ПЗУ 128x8 (1 K), 256x8 (2 K), 512x8 (4 K), 1024x8 (8 K) или

2048x8 (16 K).

Двухпроводной последовательный интерфейс. Двунаправленный протокол передачи данных.

Совместимость по частоте 100 кГц (1.8 V, 2.5 V, 2.7 V) и 400 кГц (5 V). Вывод защиты записи, обеспечивающий аппаратную защиту данных. Поддержка страничной записи в 8-байтном (1 K, 2 K), и 16-байтном (4 K, 8 K, 16 K) режимах.

Поддержка неполной страничной записи. Самосинхронизирующийся цикл записи (максимум – 10 мс). Высокая надежность:

продолжительность работы 1 миллион циклов; сохранение данных в памяти в течение 100 лет.

Автоматическая градуировка и возможность работы в широком диапазоне температур.

8-штыревой и 14-штыревой модуль JEDEC SOIC, 8-штыревой модуль

PDIP.

Работа с устройствами Синхронизация и передача данных:

Вывод SDA обычно соединяется с внешним устройством. Данные могут быть переданы по SDA только тогда, когда на SCL подан сигнал низкого уровня (см. таблицу). Если на SCL подан сигнал высокого уровня, то изменение уровня на SDA будет означать выдачу сигналов старт-стопных состояний, как описано ниже.

Старт-состояние:

Изменение уровня сигнала с высокого на низкий на SDA при условии сигнала высокого уровня на линии SCL означает, что линия SDA находится в старт-состоянии, что должно предшествовать выполнению любой другой команды (см. обозначения Start, Stop на временной диаграмме).

Стоп-состояние:

Изменение уровня сигнала с низкого на высокий на линии SDA при условии наличия на линии SCL сигнала высокого уровня свидетельствует о том, что линия SDA находится в стоп-состоянии. После чтения данных и получения команды "стоп" E2PROM перейдет в режим резервного питания (см. обозначения Start, Stop на временной диаграмме).

Подтверждение приема:

Обмен адресами и данными с E2PROM производится 8-битовыми словами. После получения каждого слова E2PROM выдает "0". Это происходит в

процессе передачи 9 импульсов синхронизации.

Режим ожидания:

Режим ожидания для схем семейства AT24C01A / 02 / 04 / 08 / 16 доступен: после включения питания и получения стопового бита, а также после завершения любых внутренних операций.

Адресация устройств

Устройства E2PROM с объемом памяти 1 K, 2 K, 4 K, 8 K и 16 K после перехода в старт-состояние должны получать слово (8 бит) с адресом устройства. Только тогда микросхема сможет произвести операцию чтения или записи Первые четыре бита слова адреса представляют собой обязательную

последовательность "1010". Данная последовательность одинакова для всех устройств E2PROM.

Следующие 3 бита представляют собой адреса

устройств А2, А1 и А0 для 1K/2K E2PROM. Эти биты соответствуют входам

с аналогичными названиями.Восьмой бит адреса устройств используется для выбора режима чтения/записи. Если бит равен 1, происходит чтение, иначе – запись. После

сравнения адресов устройств E2PROM выдает 0. Если сравнение не было произведено, микросхема возвращается в режим ожидания.

Операция записи

Запись байта: После того, как E2PROM получит адресный байт и подтвердит возможность приема, должна происходить операция записи. Получив адрес и ответив выдачей "0", устройство примет первые 8 бит данных. Затем E2PROM выдает "0". Адресующее устройство (например, микроконтроллер) должно остановить процесс записи путем выдачи стоп-сигнала. В этот момент E2PROM начинает цикл записи в постоянную память. До тех пор, пока запись не будет завершена, отключаются все входы и E2PROM не

реагирует ни на какие сигналы (з.ы.Процесс страничной записи инициируется так же, как запись одного байта, отличие в том, что микроконтроллер после передачи первого слова не выдает стоп-сигнал.)

Опрос устройства: Как только EPROM начнет внутренне тактируемый цикл записи и отключит свои входы, можно инициировать запрос на подтверждение получения данных. Этот процесс включает отправку слова с адресом устройства, а затем выдачу стоп-сигнала. Бит чтения/записи устанавливается в зависимости от требуемой операции. E2PROM выставит "0", позволяющий продолжить запись или чтение, только после завершения своего внутреннего цикла.

Операции чтения Операция чтения инициируется точно так же, как и операция записи, за тем

исключением, что бит чтения/записи в слове адреса устройства устанавливается равным 1. Существует три операции чтения: чтение текущего адреса, произвольная выборка адреса и последовательное чтение. Чтение текущего адреса: Внутренний счетчик адреса содержит последний адрес, к которому производилось обращение во время операции чтения или записи, увеличенный на единицу. Этот адрес остается корректным в

промежутке между операциями до тех пор, пока к микросхеме подключено питание. Во время чтения адреса "перепрыгивают" с последнего байта последней страницы памяти на первый байт первой страницы. Во время записи адреса "перепрыгивают" с последнего байта текущей страницы на первый байт той же самой страницы.

Как только байт адреса устройства с битом чтения/записи, установленным в единицу, будет синхронизирован и принят E2PROM, слово с текущим адресом данных обновляется. Микроконтроллер выдает на вход не "0", а стоп-сигнал

Чтение в режиме произвольного доступа: Чтение в режиме произвольного доступа означает холостую загрузку байта в адрес слова данных. Как только слово адреса устройства и адрес данных будут приняты E2PROM, микроконтроллер должен сгенерировать еще один старт-сигнал. Он инициирует чтение текущего адреса путем отправки адреса устройства с битом чтения/записи, установленным в единицу. E2PROM подтверждает получение адреса устройства и последовательно считывает слово данных. Микроконтроллер отвечает не выдачей "0", а генерацией стоп-сигнала

Чтение в режиме последовательного доступа: Последовательное чтение данных инициируется в процессе либо чтения текущего адреса, либо чтения произвольного адреса.

После того, как микроконтроллер получит слово данных, он подтверждает их получение. Пока E2PROM получает сигнал о подтверждении, она будет продолжать наращивать адрес слова данных и последовательно считывать слова данных. Когда счетчик достигнет верхнего адреса памяти, он "перепрыгнет" на начало и последовательное чтение будет продолжено. Операция последовательного чтения будет остановлена в том случае, если контроллер не выдает на линию "0", а генерирует стоп-сигнал

Список обозначений: WRITE – запись;

ACK – сигнал подтверждения;

SDA LINE – линия передачи данных SDA; DATA – данные;

DEVICE ADDRESS – адрес устройства; WORD ADDRESS – адрес слова данных. READ – чтение;

DUMMY WRITE – холостая запись.

5. Правило монтажного И - когда устройства подключаются к общей шине таким образом, что в один момент времени могут быть приняты сигналы только от одного устройства. Монтажное ИЛИ -

соответственно, от нескольких.

В интерфейсе I2C: т.к. можно подключить более одного микроконтроллера на одну шину (а точнее, 112), то это означает, что более чем один ведущий может попытаться начать пересылку в один и тот же момент времени. Для устранения

хаоса, который может возникнуть в данном случае, разработана процедура арбитража (определения наиболее приоритетного прерывания). Эта процедура основана на том, что все I2C-устройства подключаются к шине по

правилу монтажного И.

6Организация: Микросхема PCF8583, содержащая часы/календарь, содержит оперативную память на МОП-транзисторах объемом в 2048 бит, состоящую из 256 слов по 8 бит. Адреса и данные

передаются последовательно через двунаправленную шину I2С. Встроенный регистр адреса автоматически наращивается после чтения или записи каждого байта данных.

Первые 16 байт ОЗУ (адреса памяти от 00 до 0F) представляют собой адресуемые 8- битовые регистры специального назначения. Первый регистр (адрес 00) используется в качестве регистра управления/состояния. Регистры по адресам с 01 по 07 – счетчики для функций часов.

При программировании регистра управления/состояния может быть установлен режим часов на частоте 32.768 кГц, режим часов на частоте 50 Гц или режим счетчика событий.

В

том случае, если выбран режим часов, сотые доли секунды, секунды, минуты, часы, дата, месяц (календарь на 4 года) и дни недели хранятся в двоично-десятичном формате

7.*Интерфейс I2C — синхронная последовательная шина, обеспечивающая двустороннюю передачу данных между подключенными устройствами по двум сигнальным линиям. Шина ориентирована на 8-битные передачи. Передача данных может быть как одноадресной, к выбранному устройству, так и широковещательной. Для выборки устройств используется 7-битная или 10-битной адресация. Для осуществления процесса обмена информацией по I2C шине, используется всего два сигнала линия данных SDA линия синхронизации SCL. Обе линии, и SDA, и SCL, являются двунаправленными, соединенными с положительным полюсом источника напряжения через pull-up резистор (Рис. 4). Когда шина свободна, обе линии находятся в состоянии HIGH. Выходные части устройств, подсоединенных к шине, должны иметь открытый коллектор или открытый сток, чтобы выполнять функцию wired-AND. Данные по шине I2C могут передаваться со скоростями до 100 Кб/c в стандартном режиме и 400 Кб/с в быстром режиме. Количество интерфейсов зависит только от предельной емкости шины

400пФ.

*шина I2C широко используется в микросхемах памяти, видеопроцессорах, модулей обработки аудио- и видео-сигналов, АЦП и ЦАП, драйверах ЖК-индикаторов, телефонах, кодеках и многих других устройствах.

8.*Программный интерфейс - система унифицированных связей, предназначенных для обмена данными между компонентами вычислительной системы. Программный интерфейс задает набор необходимых процедур, их параметров и способов обращения.

а орг и работа драйвера - нету

Соседние файлы в папке ответы на контрольные работы (примерные)