Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
с 1 по 20.doc
Скачиваний:
86
Добавлен:
09.02.2015
Размер:
942.08 Кб
Скачать

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

Для адресации устройств используется два формата адреса:

Простой 7-разрядный формат с битом чтения/записи R/W;

и 10-разрядный формат – в первом байте передается два старших бита адреса и бит записи/чтения, во втором байте передается младшая часть адреса.

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

При передаче данных после каждого переданного байта приемник должен подтвердить получение байта сигналом ACK.

Если «Slave» не подтверждает получение байта адреса или данных, «Master» должен прервать передачу, сформировав сигнал STOP.

При передаче данных от «Slave» к «Master», «Master» формирует сигналы подтверждения приема данных ACK. Если «Master» не подтвердит приема байта, «Slave» прекращает передачу данных, «отпуская» линию SDA. После этого «Master» может сформировать сигнал STOP.

Для задержки передачи данных «Slave» может установить логический нуль, указывая «Master» о необходимости ожидания. После «отпускания» линии SCL передача данных продолжается.

Передача данных от «Master» к «Slave»

Чтение данных из «Slave»

Использование сигнала повторного START для обращения к «Slave»

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

Режим Multi-«Master»

Протокол передачи данных I2C позволяет иметь более одного «Master» на шине. Для разрешения конфликтов на шине при инициализации передачи используются функции арбитража и синхронизации.

Арбитраж

Арбитраж выполняется на линии SDA при высоком уровне линии SCL. Устройство, которое формирует на линии SDA высокий уровень когда другое передает низкий, теряет право брать «Master» и должно перейти в режим «Slave». «Master», потерявший инициативу на шине, может формировать тактовые импульсы до конца байта, в котором потерял свойства ведущего.

Синхронизация

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

  1. Интерфейс SPI. Назначение и основные технические характеристики. Сигналы интерфейса SPI.

SPI (англ. Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, шина SPI) — последовательный синхронный стандарт передачи данных в режиме полного дуплекса, разработанный компанией Motorola для обеспечения простого и недорогого сопряжения микроконтроллеров и периферии. SPI также иногда называют четырёхпроводным (англ. four-wire) интерфейсом .

В отличие от стандартного последовательного порта (англ. standard serial port), SPI является синхронным интерфейсом, в котором любая передача синхронизирована с общим тактовым сигналом, генерируемым ведущим устройством (процессором). Принимающая периферия (ведомая) синхронизирует получение битовой последовательности с тактовым сигналом. К одному последовательному периферийному интерфейсу ведущего устройства-микросхемы может присоединяться несколько микросхем. Ведущее устройство выбирает ведомое для передачи, активируя сигнал «выбор кристалла» (англ. chip select) на ведомой микросхеме. Периферия, не выбранная процессором, не принимает участие в передаче по SPI.

В SPI используются четыре цифровых сигнала:

  • MOSI или SI — выход ведущего, вход ведомого (англ. Master Out Slave In). Служит для передачи данных от ведущего устройства ведомому.

  • MISO или SO — вход ведущего, выход ведомого (англ. Master In Slave Out). Служит для передачи данных от ведомого устройства ведущему.

  • SCLK или SCK — последовательный тактовый сигнал (англ. Serial CLocK). Служит для передачи тактового сигнала для ведомых устройств.

  • CS или SS — выбор микросхемы, выбор ведомого (англ. Chip Select, Slave Select).

Последовательный периферийный интерфейс SPI разработан, как полнодуплексный четырехпроводный интерфейс с шинной конфигурацией подключаемых узлов (устройств) для систем с одним главным узлом. Первоначальная базовая версия интерфейса SPI позволяет подключать к одному главному (или ведущему - Master) узлу несколько ведомых (Slave) узлов через общую шину. Отдельный сигнал выбора ведомого устройства NSS (Slave Select signal) используется для выбора ведомого устройства при осуществлении с ним обмена данными. Интерфейс SPI любого микроконтроллера может быть запрограммирован для работы как в качестве ведущего, так и в качестве ведомого узла.

  1. Схема обмена данными для интерфейса SPI. Форматы передачи данных по интерфейсу SPI.

Если интерфейс запрограммирован как ведущий, он может работать на максимальной скорости передачи данных (бит/сек), равной половине тактовой частоты. Если интерфейс запрограммирован для работы в качестве ведомого, его максимальная скорость в полнодуплексном режиме равняется одной десятой тактовой частоты. источником синхронизации в обоих случаях является системный генератор тактовой частоты. особенный режим, когда ведущий должен только передавать данные ведомому (полудуплексный режим), и не должен принимать данные от ведомого. В этом случае максимальная скорость передачи составляет одну четвертую от системной тактовой частоты, при синхронном режиме работы. Интерфейс SPI имеет четыре сигнальные линии: MOSI, MISO, SCK и NSS. Линия MOSI (Master-Out, Slave-In) - выходная линия данных ведущего интерфейса и входная линия данных ведомого интерфейса. линия предназначена для передачи данных от ведущего (Master) интерфейса (или узла сети) к ведомому (Slave) интерфейсу (или узлу сети). Линия MISO (Master-In, Slave-Out) - входная линия данных ведущего интерфейса и выходная линия данных ведомого интерфейса. Линия предназначена для передачи данных от ведомого интерфейса к ведущему. Данные передаются байтами, побитно, начиная со старшего бита.

Здесь, ведущий шины передает данные по линии MOSI синхронно со сгенерированным им же сигналом SCLK, а подчиненный захватывает переданные биты данных по определенным фронтам принятого сигнала синхронизации. Одновременно с этим подчиненный отправляет свою посылку данных. Представленную схему можно упростить исключением линии MISO, если используемая подчиненная ИС не предусматривает ответную передачу данных или в ней нет потребности. Одностороннюю передачу данных можно встретить у таких микросхем как ЦАП, цифровые потенциометры, программируемые усилители и драйверы. Таким образом, рассматриваемый вариант подключения подчиненной ИС требует 3 или 4 линии связи. Чтобы подчиненная ИС принимала и передавала данные, помимо наличия сигнала синхронизации, необходимо также, чтобы линия SS была переведена в низкое состояние. В противном случае, подчиненная ИС будет неактивна. Когда используется только одна внешняя ИС, может возникнуть соблазн исключения и линии SS за счет жесткой установки низкого уровня на входе выбора подчиненной микросхемы. Такое решение крайне нежелательно и может привести к сбоям или вообще невозможности передачи данных, т.к. вход выбора микросхемы служит для перевода ИС в её исходное состояние и иногда инициирует вывод первого бита данных.