Концепция и общие характеристики.

Для 8-битных приложений цифрового управления, таких, как микроконтроллеры, могут быть определены некоторые основные критерии:

· полная система обычно состоит по крайней мере из одного микроконтроллера и других периферийных устройств, таких, как память и расширители ввода/вывода;

· стоимость соединения различных устройств внутри системы должна быть минимизирована;

· система, которая выполняет функция управления, не требует высокоскоростной передачи данных;

· общая эффективность зависит от выбранных устройств и структуры соединительной шины.

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

Устройства, сообщающиеся друг с другом на последовательной шине, должны использовать некоторый протокол, который предотвращает все возможные рассогласования, потерю и искажение информации. Быстродействующие устройства должны корректно связываться с медленнодействующими устройствами. Система не должна зависеть от подключенных к ней устройств, иначе изменения системы становятся невозможными. Также должна быть разработана процедура определения того, какое устройство и когда будет контролировать шину. И к шине подключены устройства с различными тактовыми частотами, должен быть определен генератор тактовых импульсов шины. Стремясь удовлетворить все эти критерии, Philips разработал простую двунаправленную 2-проводную шину для эффективного взаимодействия между интегральными схемами. Эта шина называется Inter IC шиной или I2C-шиной.

В спецификации I2C выделено 3 типа устройств:

• Некоторое устройство интеллектуального управления, обычно - однокристальный микроконтроллер;

• Универсальные схемы, подобные драйверам LCD, коммуникационным портам ввода/вывода, RAM, EEPROM или преобразователям данных;

• Специализированные схемы, подобные схемам цифровой настройки приема и обработки сигналов для радио и телевизионных систем, генераторов DTMF для телефонов с тональным набором.

Некоторые особенности I2C:

• В шине используются только две линии: последовательная линия данных (Serial Data Line - SDA) и линия синхронизирующего сигнала последовательной передачи данных (Serial Clock Line - SCL);

• Каждое устройство, подключенное к шине, программно адресуется уникальным адресом. Каждое устройство независимо от того, является ли оно микроконтроллером, драйвером LCD, памятью или интерфейсом клавиатуры, имеет уникальный адрес и может работать или как приемопередатчик, или как приемник, в зависимости от функций устройства. Очевидно, что драйвер LCD - только приемник, в то время как память может и принимать, и передавать данные. В дополнение к делению на приемопередатчики и приемники устройства при передаче данных могут также подразделяться на ведущие (master) и ведомые (slave). Ведущий (master) - устройство, которое инициализирует передачу данных по шине и генерирует синхроимпульсы, разрешающие эту передачу. В это время любое адресуемое им устройство рассматривается как ведомое (slave);

• Это шина, в которой может присутствовать несколько ведущих устройств. Шина обеспечивает обнаружение коллизий и арбитраж, предотвращающий нарушение целостности данных в случае, если два или более ведущих устройства одновременно инициализируют передачу данных;

• Передача данных выполняется двунаправлено в 8-битном бит-ориентированном формате, скорость передачи составляет до 100 Кбит/с в стандартном режиме или до 400 Кбит/с в быстром режиме;

• Встроенная схема фильтрации удаляет импульсы, наведенные в линии данных шины, сохраняя целостность данных;

• Число микросхем (портов), которые могут быть подключены к одной шине, ограничено только максимально допустимой емкостью шины 400 pF.

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

Таблица 5.1. Терминология I2C.

 

Формат кадра.

2.1. Форматы передачи данных.

Передача данных выполняется в формате, представленном на рис. 5.1. После условия START (S) передается адрес ведомого устройства. Этот адрес имеет длину 7 битов и сопровождается восьмым битом, который является битом направления данных (R W) — значение “0” означает передачу данных (WRITE), значение "1" означает запрос данных (READ). Передача данных всегда завершается условием STOP (P), генерируемым ведущим устройством. Однако, если ведущее устройство желает выполнить другой обмен данными по шине, оно может сгенерировать повторенное условие START (Sr) и адресовать другое ведомое устройство без генерации для первого устройства условия STOP. В процессе обмена данными возможны различные комбинации форматов чтения/записи.

 

Рис. 5.1. Общий формат кадра

 

Возможные форматы передачи данных:

· Ведущий - передатчик передает данные ведомому - приемнику. Направление передачи не изменяется;

· Ведущее устройство считывает данные из ведомого устройства сразу после первого байта. В момент подтверждения первого байта ведущий - передатчик переключается в режим ведущего - приемника, а ведомый - приемник - в режим ведомого - передатчика. Данное подтверждение все еще генерируется ведомым устройством. Условие STOP генерируется ведущим устройством;

· Комбинированный формат. В процессе изменения направления передачи в пределах процесса обмена данными условие START и адрес ведомого устройства генерируются повторно, но с инвертированным битом R W. Если ведущий - приемник посылает повторное условие START, он должен предварительно выдать сигнал неподтверждения (A).

Данные на линии SDA должны оставаться неизменными в течение полупериода высокого уровня (HIGH) синхросигнала. Состояния HIGH и LOW линии передачи данных могут изменяться только тогда, когда синхросигнал на линии SCL имеет состояние LOW (см. рис. 5.2).

 

Рис. 5.2. Передача битов по линии I2C.

 

2.2. Условия запуска (START) и останова (STOP) передачи.

Для определения состояний запуска (START) и останова (STOP) передачи по шине I2C определены уникальные условия (см. рис. 5.3).

Изменение состояния сигнала на линии SDA от уровня HIGH к уровню LOW в то время, когда на линии SCL присутствует сигнал с уровнем HIGH, является условием начала передачи (START).

Изменение состояния сигнала на линии SDA от уровня LOW к уровню HIGH в то время, когда на линии SCL присутствует сигнал с уровнем HIGH, является условием завершения передачи (STOP).

Условия START и STOP всегда генерируются ведущим устройством. После генерации условия START шина является занятой (захваченной). Шина расценивается как свободная через некоторое время после генерации условия STOP.

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

 

Рис. 5.3. Условия START и STOP.

 

2.3. Формат байта.

Каждый байт, передаваемый в линию SDA, должен иметь размер 8 бит. Число передаваемых байтов не ограничено. Каждый байт должен сопровождаться битом подтверждения. Данные передаются, начиная со старшего значащего бита (MSB) (рис 5.4). Если приемник не может принимать следующий полный байт данных до тех пор, пока не выполнит какую-либо другую функцию, например, обслуживание внутреннего прерывания, он может захватить линию синхронизации SCL и удерживать ее в состоянии LOW, переведя передатчик в состояние ожидания. В этом случае передача данных будет продолжена, когда приемник будет готов к приему следующего байта данных и прекратит подавать в линию SCL сигнал уровня LOW.

 

Рис. 5.4. Передача данных в I2C.

 

2.4. Подтверждение.

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

Приемник в течение синхроимпульса подтверждения должен выдавать в линию SDA сигнал низкого уровня, чтобы на этой линии в течение состояния HIGH синхросигнала устойчиво удерживался уровень LOW (рис. 5.5). Конечно, при этом должны быть учтены времена установки у удержания сигнала.

 

Рис. 5.5. Подтверждение приема в I2C.

 

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

Если приемник-ведомый не подтверждает адрес ведомого (например, он не может принять адрес, так как выполняет в это время некоторую функцию в реальном масштабе времени), линия передачи данных со стороны ведомого приемника должна оставаться в состоянии HIGH. В этом случае ведущее устройство может сгенерировать условие STOP, чтобы прервать передачу. Если приемник-ведомый подтверждает адрес ведомого, но некоторое время спустя в процессе передачи не может больше принимать байты данных, ведущий должен снова прервать передачу.

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

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

 








Дата добавления: 2016-04-19; просмотров: 821;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.011 сек.