Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

SPI I2C UART — Протоколы связи и использование

Разработка микроконтроллеров является кардинальным процессом в сборке электроники. Но ввод последовательных протоколов и коммуникационных интерфейсов облегчают эту задачу. В этой статье мы намерены подробно изучить протоколы последовательной связи, такие как интерфейс SPI I2C UART и UART. Мы проанализируем особенности последовательных протоколов, преимущества, недостатки и примеры.

1. Интерфейс UART

Что такое UART?

Рисунок 1. Протокол UART на Arduino 

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

Простой протокол также имеет две линии данных:обработка передачи (Tx) и прием другого сигнала (Rx). Обычно передача сигнала осуществляется через цифровой контакт 0, а прием — через цифровой контакт 1.

Кроме того, это помогает синхронизировать управление компьютером и внешними последовательными устройствами.

Как это работает?

Рисунок 2. Электронная плата USB UART, сделанная своими руками

По сути, UART управляет передачей сигналов между двумя устройствами с помощью следующих средств:

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

Как правило, после подключения происходит передача данных с линии данных передающего UART на приемный UART. Это происходит по следующему принципу;

  1. Во-первых, передающий UART преобразует параллельные данные ведущего устройства в последовательную форму для передачи на принимающий UART. Точно так же приемный UART изменяет последовательные данные на параллельные данные для использования подключенным приемным устройством.
  2. Поскольку UART предполагает асинхронную связь, в нем нет часов. Таким образом, UART будет генерировать стартовый и стоповый биты для указания начала и конца сообщения.
  3. Два UART должны работать с одинаковой скоростью BAUD или скоростью передачи данных UART. В идеале это должно обеспечить точную синхронизацию битов данных, поскольку разница более 10% делает данные бесполезными.

Рабочий протокол UART

Передача и получение данных

  1. Для передачи передающий UART должен получать данные от шины данных, такой как ЦП.
  2. Затем добавляются три бита, а именно стартовый бит, бит четности и стоповый бит. Эти три будут формировать пакет данных, передаваемый на принимающий UART через вывод TX.
  3. Передача данных прекращается после исчерпания данных в передающем UART.

Управление прерываниями

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

Операция FIFO

Рис. 3. Интерфейс UART на Arduino

Модули UART семейства Stellaris имеют два 16-байтовых FIFO, один для приема данных, а другой для передачи. Кроме того, вы можете настроить их на разной глубине для доставки различных прерываний. Например, у вас может быть глубина 1/8, глубина 1/4, глубина 1/2 и т. д.

Рабочий процесс передачи FIFO

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

Рабочий процесс получения FIFO

  1. После получения данных на вышеупомянутом этапе аппаратное обеспечение сохраняет их в принимающем FIFO. В идеальном случае прием и стирание данных принимающей программой FIFO является автоматическим процессом. Таким образом, в принимающем FIFO должно быть достаточно места.
  2. Он также имеет приемопередатчик FIFO, который необходим для решения проблем с неэффективностью ЦП. Кроме того, это помогает решить проблему частых прерываний приемопередатчика UART.
  3. Наконец, FIFO не допускает потери данных, поскольку заранее блокирует все возможные пути потери.

Зацикливание

UART имеет внутреннюю петлю для отладки и диагностики того, где вход RX будет получать отправленные данные.

Последовательный инфракрасный протокол

UART имеет последовательный инфракрасный порт IrDA (SIR), работающий как модуль кодера/декодера. Это удобно при преобразовании полудуплексного последовательного интерфейса SIR и асинхронного потока данных UART.

Более того, протокол последовательной связи поставляет на UART декодированный ввод и вывод в цифровом виде.

Преимущества использования UART

  1. Простой протокол связи — это хорошо задокументированный модуль, который также прост в использовании.
  2. Во-вторых, не требуется последовательная линия синхронизации.
  3. В-третьих, он имеет бит четности, который позволяет проверять ошибки.

Недостатки использования UART

  1. Интерфейс UART имеет ограничение на размер кадра данных 9 бит и низкую скорость передачи.
  2. Кроме того, он не может использовать множество ведущих систем и подчиненных устройств.
  3. Кроме того, он имеет обязательную скорость передачи данных в пределах 10% в качестве защиты от потери данных.
  4. В-четвертых, скорость передачи данных между устройствами обычно ниже.

Примеры UART в микроконтроллерах

2. Интерфейс I2C

Что такое I2C?

Рис. 4. Датчик перепада давления использует I2C

Межинтегральная схема (I2C) протокол связи напоминает UART. Но в то время как UART предназначен для связи ПК с устройством, I2C полезен в датчиках и модульных приложениях.

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

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

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

Как это работает?

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

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

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

Кроме того, единственное ведущее устройство должно информировать ведомое устройство выбора перед началом передачи данных. Точно так же он должен информировать ведомое устройство перед получением данных от ведомого устройства.

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

Рабочий протокол I2C

Рис. 5. Контактный 0,96-дюймовый OLED-дисплей 128x64 OLED-модуль IIC I2C

Способ передачи данных

Процедура подключения следующая:

  1. Главный выход пошлет сигнал передачи подключенным ведомым устройствам, главным образом путем переключения линии SDA с высокого уровня напряжения на низкий. Затем он переключит линию SCL с высокого уровня напряжения на низкий.
  2. Затем ведущий отправляет 7-битные или 10-битные адреса и считывает/записывает биты каждому из ведомых устройств.
  3. В-третьих, подчиненные сравнивают адрес со своим собственным. Если он совпадает, он вернет бит ACK, переключив линию SDA в низкий уровень. Однако, если они не совпадают, ведомое устройство оставит линию SDA на высоком уровне.
  4. Далее мастер отправляет фрейм данных или получает его (в зависимости от совпадающих адресов). Затем, после завершения передачи данных, принимающий компонент возвращает бит ACK отправителю данных. Это подтверждение полной передачи.
  5. Наконец, мастер переключает SCL на высокий уровень, а затем SDA, чтобы сообщить об окончании связи.

Синхронизация часов

Каждый мастер должен генерировать свой тактовый сигнал в линии SCL для передачи данных. Кроме того, только во время высокого периода тактового сигнала данные остаются действительными при передаче I2C.

Режимы передачи

Он в основном передает двумя способами, а именно:

Быстрый режим

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

Высокоскоростной режим

Шина I2C в высокоскоростном режиме будет передавать/принимать данные со скоростью 3,4 Мбит/с. Таким образом, он обеспечивает более высокую скорость передачи данных, чем прежний быстрый режим.

Преимущества I2C

  1. Он имеет значительно ограниченное количество контактов/сигналов, даже если вы подключили множество устройств к мастеру.
  2. Во-вторых, устройство I2C обеспечивает гибкость благодаря возможности работы с несколькими ведущими и несколькими подчиненными устройствами.
  3. Кроме того, им просто пользоваться, так как для подключения к множеству устройств достаточно двух двунаправленных проводов.
  4. Кроме того, он обеспечивает широкие возможности адаптации и может поддерживать множество мастеров.

Недостатки I2C

  1. Он имеет относительно низкую скорость и должен использовать подтягивающие резисторы, в отличие от SPI, которому нужны только двухтактные резисторы. Кроме того, его конструкция с открытым стоком снижает его скорость.
  2. Кроме того, резисторы занимают место, которое имеет огромное значение при сборке печатной платы.
  3. Его непросто использовать, если вы подключили множество устройств.

Примеры I2C в микроконтроллерах

3. SPI-интерфейс

Что такое SPI?

Рис. 6. Интерфейс SPI удобен в модулях отображения.

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

SPI относительно быстрее, чем I2C, со скоростью передачи данных не менее 8 бит. Прежде всего, простой протокол этого модуля обеспечивает более высокую скорость передачи данных. Таким образом, это важно в приложениях, требующих скорости, таких как модули дисплея и SD-карты.

Это также важно в приложениях, связанных с внезапным изменением информации, например, в термометрах.

Как это работает?

Рис. 7. SD-карты используют SPI

Устройство в форме SPI будет работать одним из следующих двух способов:

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

Рабочий протокол SPI

SPI работает через четыре порта, а именно:

  1. Вывод основных данных, ввод подчиненных данных (MOSI)
  2. Ввод основных данных, вывод подчиненных данных (MISO)
  3. Тактовый сигнал (SCLK)
  4. Подчиненный сигнал (NSS)

При использовании системы с несколькими ведомыми устройствами каждому соответствующему ведомому устройству требуется уникальный разрешающий сигнал. Это требование усложняет требования к оборудованию по сравнению со связью I2C.

Кроме того, интерфейс SPI имеет два сдвиговых регистра. Он обеспечивает синхронную последовательную передачу данных между одним главным устройством, таким как ЦП, и периферийными устройствами.

Преимущества использования SPI

  1. Он прост в использовании, поскольку, в отличие от I2C, в нем отсутствует сложная система адресации ведомых устройств.
  2. Во-вторых, это самый быстрый протокол из всех рассмотренных нами последовательных интерфейсов (быстрее, чем UART и I2C).
  3. У него нет стартовых и стоповых битов, как при обмене данными по UART. Таким образом, он обеспечивает непрерывную передачу данных без перерывов.
  4. Наконец, он имеет отдельные линии MISO и MOSI, которые позволяют одновременно отправлять и получать данные.

Недостатки использования SPI

  1. Большинство портов PIN-кода заняты, что ограничивает количество устройств, которые вы можете подключить.
  2. Кроме того, в нем отсутствует указанное управление потоком и, в отличие от I2C, отсутствует механизм подтверждения отправки/получения данных.
  3. Он требует использования 4 линий, как мы подчеркивали выше, и, в отличие от UART, в нем отсутствует механизм проверки ошибок.
  4. В-четвертых, у него также есть единственный мастер.

Примеры SPI в микроконтроллерах

Сравнение UART, I2C и SPI

Какое из этих коммуникационных периферийных устройств является «лучшим»? UART, SPI или I2C?

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

Но если вы хотите подключить множество устройств без сложного массива, используйте I2C.

Заключение

Мы раскрыли все ключевые идеи, которые вам нужно знать об интерфейсах связи UART, I2C и SPI и их различных скоростях передачи. Кроме того, мы здесь, чтобы ответить на любые вопросы о протоколах связи. Обращайтесь к нам, и мы немедленно придем к вам на помощь.


Промышленные технологии

  1. MQTT и DDS:межмашинное взаимодействие в IoT
  2. Сетевые протоколы
  3. Термины и концепции цифровой памяти
  4. Платы - Прорыв Pi - I2C, UART, GPIO и др.
  5. 14 Неизвестное использование нанотехнологий | Преимущества и приложения
  6. Что такое серебряная пайка? - Процесс, стержень и использование
  7. Производство, управляемое данными:преимущества, проблемы и стратегии
  8. Автоматизация приема данных и оптимизация принятия решений
  9. Виды древесины и их использование
  10. Использование вольфрама тогда и сейчас