Будь то компьютерная периферия, интеллектуальная техника, устройства Интернета вещей (IoT) или электронные устройства. измерительные инструменты, все они используют протоколы последовательной связи для подключения различных электронных компонентов вместе.
Эти компоненты обычно состоят из микроконтроллера и подчиненных модулей, таких как датчик отпечатков пальцев, ESP8266 (модуль Wi-Fi), сервоприводы и последовательные дисплеи.
Эти устройства используют разные протоколы связи. Ниже вы узнаете о некоторых из самых популярных протоколов последовательной связи, о том, как они работают, об их преимуществах и почему они продолжают использоваться.
Что такое последовательная связь?
Протоколы последовательной связи используются здесь с момента изобретения азбуки Морзе в 1838 году. Сегодня современные протоколы последовательной связи используют те же принципы. Сигналы генерируются и передаются по одному проводу путем многократного замыкания двух проводов вместе. Это короткое замыкание действует как переключатель; он включается (высокий) и выключается (низкий), обеспечивая двоичные сигналы. Способ передачи и приема этого сигнала будет зависеть от типа используемого протокола последовательной связи.
С изобретением транзистора и последовавшими за ним инновациями инженеры и мастера в равной степени сделали блоки обработки и память меньше, быстрее и более энергоэффективными. Эти изменения требовали, чтобы протоколы связи по шине были такими же технологически продвинутыми, как и подключаемые компоненты. Так были изобретены последовательные протоколы, такие как UART, I2C и SPI. Хотя этим последовательным протоколам уже несколько десятилетий, они по-прежнему предпочтительны для микроконтроллеров и программирования с нуля.
UART (универсальный асинхронный приемник-передатчик)
Протокол UART - один из старейших, но наиболее надежных протоколов последовательной связи, которые мы все еще используем. В этом протоколе для связи обоих компонентов используются два провода, известные как Tx (передача) и Rx (прием).
Для передачи данных и передатчик, и приемник должны согласиться с пятью общими конфигурациями, а именно:
- Скорость передачи: Скорость передачи данных.
- Длина данных: Согласованное количество битов, которое получатель сохранит в своих регистрах.
- Стартовый бит: Слабый сигнал, который позволяет получателю узнать, когда данные будут переданы.
- Стоповый бит: Сигнал высокого уровня, который позволяет получателю узнать, когда был отправлен последний бит (самый старший бит).
- Бит четности: Либо высокий, либо низкий сигнал, используемый для проверки правильности или повреждения отправленных данных.
Поскольку UART является асинхронным протоколом, у него нет собственных часов, регулирующих скорость передачи данных. В качестве альтернативы он использует скорость передачи данных для синхронизации при передаче бита. Обычная скорость передачи, используемая для UART, составляет 9600 бод, что означает скорость передачи 9600 бит в секунду.
Если мы сделаем математику и разделим один бит на 9600 бод, мы сможем вычислить, насколько быстро один бит данных передается на приемник.
1/9600 =104 микросекунды
Это означает, что наши устройства UART начнут отсчитывать 104 микросекунды, чтобы знать, когда будет передан следующий бит.
Когда подключены устройства UART, сигнал по умолчанию всегда повышается до высокого. Когда он обнаруживает низкочастотный сигнал, приемник начинает отсчет 104 микросекунды плюс еще 52 микросекунды, прежде чем он начнет сохранять биты в свои регистры (память).
Поскольку уже было согласовано, что восемь бит должны быть длиной данных, после сохранения восьми бит данных он начнет проверку на четность, чтобы проверить, являются ли данные нечетными или четными. После проверки на четность стоповый бит поднимет высокий сигнал, чтобы уведомить устройства о том, что все восемь бит данных были успешно переданы приемнику.
Будучи наиболее минималистичным последовательным протоколом, использующим только два провода, UART сегодня широко используется в смарт-картах, SIM-картах и автомобилях.
Связанный: Что такое SIM-карта? Что вам нужно знать
SPI (последовательный периферийный интерфейс)
SPI - еще один популярный последовательный протокол, используемый для более высокой скорости передачи данных около 20 Мбит / с. Он использует в общей сложности четыре провода, а именно SCK (Последовательная линия синхронизации), MISO (Master Out Slave In), MOSI (Master In Slave Out) и SS / CS (Chip Select). В отличие от UART, SPI использует формат «ведущий-ведомый» для управления несколькими ведомыми устройствами с помощью только одного ведущего.
MISO и MOSI действуют как Tx и Rx UART, используемые для передачи и приема данных. Chip Select используется для выбора ведомого устройства, с которым ведущий хочет связаться.
Поскольку SPI является синхронным протоколом, он использует встроенные часы от ведущего устройства, чтобы гарантировать, что ведущее и ведомое устройства работают на одной и той же частоте. Это означает, что двум устройствам больше не нужно согласовывать скорость передачи данных.
Протокол начинается с того, что мастер выбирает подчиненное устройство, понижая свой сигнал до определенного SS / CK, подключенного к подчиненному устройству. Когда ведомое устройство получает сигнал низкого уровня, оно начинает прослушивать как SCK, так и MOSI. Затем мастер отправляет стартовый бит перед отправкой битов, содержащих данные.
И MOSI, и MISO являются полнодуплексными, что означает, что они могут передавать и получать данные одновременно.
Благодаря возможности подключения к нескольким ведомым устройствам, полнодуплексной связи и более низкому энергопотреблению, чем у других синхронные протоколы, такие как I2C, SPI, используются в устройствах памяти, цифровых картах памяти, преобразователях АЦП в ЦАП и кристаллах отображается память.
I2C (межинтегральная схема)
I2C - это еще один синхронный последовательный протокол, такой как SPI, но с рядом преимуществ перед ним. К ним относятся возможность иметь несколько ведущих и ведомых устройств, простую адресацию (нет необходимости в чипе). Select), работающие с различными напряжениями и использующие только два провода, подключенные к двум подтягивающим резисторы.
I2C часто используется во многих устройствах Интернета вещей, промышленном оборудовании и бытовой электронике.
Два контакта в протоколе I2C - это SDA (последовательная линия данных), которая передает и принимает данные, и контакт SCL (последовательная линия синхронизации), который функционирует как часы.
- Протокол начинается с того, что ведущее устройство отправляет стартовый бит (младший) со своего вывода SDA, за которым следует семибитный адрес, который выбирает ведомое устройство, и один бит для выбора чтения или записи.
- После получения стартового бита и адреса ведомое устройство затем отправляет бит подтверждения ведущему и начинает прослушивать SCL и SDA для входящих передач.
- Как только мастер получает это, он знает, что соединение было выполнено с правильным подчиненным устройством. Теперь мастер выберет, к какому конкретному регистру (памяти) ведомого он хочет получить доступ. Он делает это, отправляя еще восемь битов, определяющих, какой регистр должен использоваться.
- После получения адреса ведомое устройство готовит регистр выбора перед отправкой другого подтверждения ведущему устройству.
- Выбрав конкретное ведомое устройство и какой из его регистров использовать, ведущее устройство, наконец, отправляет бит данных ведомому устройству.
- После того, как данные отправлены, последний бит подтверждения отправляется мастеру, прежде чем мастер завершит работу стоповым битом (высоким).
Связанный: Лучшие проекты Arduino IoT
Почему последовательная связь никуда не денется
С появлением параллельных и многих беспроводных протоколов популярность последовательной связи никогда не снижалась. Обычно для передачи и приема данных используются всего от двух до четырех проводов, последовательные протоколы являются важным способом связи для электроники, у которой есть только несколько свободных портов.
Другая причина - его простота, которая означает надежность. Поскольку только несколько проводов отправляют данные за один раз, последовательный порт доказал свою надежность для отправки полных пакетов данных без каких-либо потерь или повреждений при передаче. Даже на высоких частотах и на больших расстояниях последовательные протоколы все еще превосходят многие современные параллельные протоколы связи, доступные сегодня.
Хотя многие могут подумать, что последовательные коммуникации, такие как UART, SPI и I2C, имеют недостаток из-за того, что они старые и устаревшие, факт остается фактом: они доказали свою надежность на нескольких десятилетия. Такие старые протоколы без какой-либо реальной замены только говорят о том, что они, по сути, незаменимы и будут продолжать использоваться в электронике в обозримом будущем.
Не путаетесь между SBC, такими как Raspberry Pi, и микроконтроллерами, такими как Arduino и Raspberry Pi Pico? Вот что вам нужно знать.
Читать далее
- Объяснение технологии
- Использование данных
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Нажмите здесь, чтобы подписаться