- Типы коммуникационных протоколов
- Режимы передачи при последовательной связи
- Синхронизация часов
- Другие термины, относящиеся к последовательной связи
- Синхронные последовательные протоколы
- Асинхронные последовательные протоколы
- Заключение
Прежде чем приступить к протоколам последовательной связи, давайте разберем терминологию на три части. Связь очень хорошо известна терминологию, которая включает в себя обмен информацией между двумя или более сред. Во встроенных системах коммуникация означает обмен данными между двумя микроконтроллерами в виде битов. Этот обмен битами данных в микроконтроллере осуществляется некоторым набором определенных правил, известных как протоколы связи. Теперь, если данные отправляются последовательно, то есть одно за другим, протокол связи известен как протокол последовательной связи. Более конкретно, биты данных передаются по одному последовательным образом по шине данных или каналу связи при последовательной связи.
Типы коммуникационных протоколов
В цифровой электронике доступны различные типы передачи данных, такие как последовательная связь и параллельная связь. Аналогичным образом протоколы делятся на два типа, такие как протоколы последовательной связи и протоколы параллельной связи. Примерами протоколов параллельной связи являются ISA, ATA, SCSI, PCI и IEEE-488. Аналогичным образом существует несколько примеров протоколов последовательной связи, таких как CAN, ETHERNET, I2C, SPI, RS232, USB, 1-Wire и SATA и т. Д.
В этой статье будут обсуждаться различные типы протоколов последовательной связи. Последовательная связь - это наиболее широко используемый подход для передачи информации между периферийными устройствами обработки данных. Каждое электронное устройство, будь то персональный компьютер (ПК) или мобильный телефон, работает по последовательной связи. Протокол представляет собой безопасную и надежную форму связи, имеющую набор правил, адресованных исходному хосту (отправителю) и целевому хосту (получателю), аналогично параллельной связи.
Режимы передачи при последовательной связи
Как уже было сказано выше, при последовательной связи данные отправляются в виде битов, то есть двоичных импульсов, и хорошо известно, что двоичная единица представляет собой высокий логический уровень, а ноль - низкий уровень. Существует несколько типов последовательной связи в зависимости от типа режима передачи и передачи данных. Режимы передачи классифицируются как симплексный, полудуплексный и полнодуплексный.
Симплексный метод:
В симплексном методе одновременно может быть активным любой из носителей, то есть отправитель или получатель. Таким образом, если отправитель передает данные, то получатель может только принять, и наоборот. Итак, симплексный метод - это метод односторонней связи. Хорошо известными примерами симплекс-метода являются телевидение и радио.
Полудуплексный метод:
В полудуплексном методе и отправитель, и получатель могут быть активными, но не одновременно. Таким образом, если отправитель передает, то получатель может принять, но не может отправить, и аналогично наоборот. Хорошо известными примерами полудуплекса является Интернет, где пользователь отправляет запрос данных, а затем получает их с сервера.
Полнодуплексный метод:
В полнодуплексном методе и приемник, и передатчик могут отправлять данные друг другу одновременно. Хорошо известный пример - мобильный телефон.
Помимо этого, для надлежащей передачи данных важную роль играют часы, и они являются одним из основных источников. Неисправность часов приводит к неожиданной передаче данных, иногда даже к потере данных. Таким образом, синхронизация часов становится очень важной при использовании последовательной связи.
Синхронизация часов
Часы отличаются для последовательных устройств и делятся на два типа, а именно. Синхронный последовательный интерфейс и асинхронный последовательный интерфейс.
Синхронный последовательный интерфейс:
Это двухточечное соединение от ведущего к ведомому. В этом типе интерфейса все устройства используют одну шину ЦП для обмена данными и часами. Передача данных становится быстрее с той же шиной для совместного использования часов и данных. Также в этом интерфейсе нет несоответствия в скорости передачи данных. На стороне передатчика происходит сдвиг данных на последовательную линию, обеспечивающую синхронизацию как отдельный сигнал, поскольку к данным не добавляются биты запуска, остановки и четности. На стороне приемника данные извлекаются с использованием часов, предоставленных передатчиком, и преобразуют последовательные данные обратно в параллельную форму. Хорошо известные примеры - I2C и SPI.
Асинхронный последовательный интерфейс:
В асинхронном последовательном интерфейсе внешний тактовый сигнал отсутствует. Асинхронные последовательные интерфейсы можно увидеть в основном в приложениях на большие расстояния и идеально подходят для стабильной связи. В асинхронном последовательном интерфейсе отсутствие внешнего источника синхронизации заставляет его полагаться на несколько параметров, таких как управление потоком данных, управление ошибками, управление скоростью передачи, управление передачей и управление приемом. На стороне передатчика параллельные данные передаются по последовательной линии с использованием собственных часов. Также он добавляет биты запуска, остановки и проверки четности. На стороне приемника приемник извлекает данные, используя свои собственные часы, и преобразует последовательные данные обратно в параллельную форму после удаления битов запуска, остановки и четности. Хорошо известными примерами являются RS-232, RS-422 и RS-485.
Другие термины, относящиеся к последовательной связи
Помимо тактовой синхронизации, при последовательной передаче данных следует помнить о некоторых вещах, таких как скорость передачи, выбор битов данных (кадрирование), синхронизация и проверка ошибок. Давайте кратко обсудим эти термины.
Скорость передачи: скорость передачи данных между передатчиком и приемником в битах в секунду (бит / с). Чаще всего используется скорость 9600 бод. Но есть и другие варианты скорости передачи, например 1200, 2400, 4800, 57600, 115200. Чем выше будет скорость передачи данных, тем больше данных будет передаваться за раз. Также для передачи данных скорость передачи данных должна быть одинаковой для передатчика и приемника.
Кадрирование: кадрирование относится к количеству битов данных, которые должны быть отправлены от передатчика к приемнику. Количество битов данных различается в зависимости от приложения. Большинство приложений использует 8 бит в качестве стандартных битов данных, но также можно выбрать 5, 6 или 7 бит.
Синхронизация: биты синхронизации важны для выбора блока данных. Он сообщает начало и конец битов данных. Передатчик установит стартовый и стоповый биты для кадра данных, а приемник соответствующим образом определит его и выполнит дальнейшую обработку.
Контроль ошибок: Контроль ошибок играет важную роль при последовательной связи, так как существует множество факторов, которые влияют и добавляют шум в последовательной связи. Чтобы избавиться от этой ошибки, используются биты четности, в которых проверяется четность и нечетность. Таким образом, если кадр данных содержит четное число единиц, то это называется четностью, а бит четности в регистре установлен на 1. Аналогично, если кадр данных содержит нечетное число единиц, то это называется нечетной четностью и очищает бит нечетной четности в регистре.
Протокол похож на общий язык, который система использует для понимания данных. Как описано выше, протокол последовательной связи делится на типы, т. Е. Синхронный и асинхронный. Теперь и то, и другое мы обсудим подробно.
Синхронные последовательные протоколы
Синхронный тип последовательных протоколов, такие как SPI, I2C, CAN и LIN используется в различных проектах, потому что это один из лучших ресурсов для встроенных периферийных устройств. Также это широко используемые протоколы в основных приложениях.
Протокол SPI
Последовательный периферийный интерфейс (SPI) - это синхронный интерфейс, который позволяет соединять несколько микроконтроллеров SPI. В SPI для линии данных и синхронизации требуются отдельные провода. Также часы не включаются в поток данных и должны быть представлены как отдельный сигнал. SPI может быть настроен как ведущий или ведомый. Четыре основных сигнала SPI (MISO, MOSI, SCK и SS), Vcc и Ground являются частью передачи данных. Таким образом, для отправки и получения данных от ведомого или ведущего требуется 6 проводов. Теоретически SPI может иметь неограниченное количество ведомых устройств. Передача данных настраивается в регистрах SPI. SPI может обеспечивать скорость до 10 Мбит / с и идеально подходит для высокоскоростной передачи данных.
Большинство микроконтроллеров имеют встроенную поддержку SPI и могут быть напрямую подключены к устройствам с поддержкой SPI:
- Связь SPI с PIC микроконтроллером PIC16F877A
- Как использовать связь SPI в микроконтроллере STM32
- Как использовать SPI в Arduino: связь между двумя платами Arduino
Последовательная связь I2C
Межинтегральная схема (I2C) двухлинейная связь между различными ИС или модулями, где две линии - SDA (последовательная линия данных) и SCL (последовательная линия синхронизации). Обе линии должны быть подключены к положительному источнику питания с помощью подтягивающего резистора. I2C может обеспечивать скорость до 400 Кбит / с и использует 10-битную или 7-битную систему адресации для нацеливания на конкретное устройство на шине i2c, поэтому к нему можно подключить до 1024 устройств. Он имеет ограниченную длину сообщения и идеально подходит для общения на борту. Сети I2C легко настроить, так как они используют только два провода, а новые устройства можно просто подключить к двум общим линиям шины I2C. Как и SPI, микроконтроллер обычно имеет контакты I2C для подключения любого устройства I2C:
- Как использовать связь I2C в микроконтроллере STM32
- Связь I2C с PIC микроконтроллером PIC16F877
- Как использовать I2C в Arduino: связь между двумя платами Arduino
USB
USB (универсальная последовательная шина) - широко распространенный протокол с разными версиями и скоростями. К одному хост-контроллеру USB можно подключить до 127 периферийных устройств. USB действует как устройство «подключи и работай». USB используются почти в таких устройствах, как клавиатуры, принтеры, мультимедийные устройства, камеры, сканеры и мышь. Он разработан для легкой установки, более быстрого расчета данных, меньшего количества кабелей и горячей замены. Он заменил более громоздкие и медленные последовательные и параллельные порты. USB использует дифференциальную передачу сигналов, чтобы уменьшить помехи и обеспечить высокоскоростную передачу на большие расстояния.
Дифференциальная шина состоит из двух проводов, один из которых представляет передаваемые данные, а другой - их дополнение. Идея заключается в том, что «среднее» напряжение на проводах не несет никакой информации, что снижает помехи. В USB устройствам разрешено потреблять определенное количество энергии без запроса хоста. USB использует только два провода для передачи данных и работает быстрее, чем последовательный и параллельный интерфейс. Версии USB поддерживают разные скорости, такие как 1,5 Мбит / с (USB v1.0), 480 Мбит / с (USB2.0), 5 Гбит / с (USB v3.0). Длина отдельного USB-кабеля может достигать 5 метров без концентратора и 40 метров с концентратором.
МОЧЬ
Сеть контроллеров (CAN) используется, например, в автомобилях, чтобы обеспечить связь между ЭБУ (блоками управления двигателем) и датчиками. Протокол CAN является надежным, недорогим, основанным на сообщениях протоколом и подходит для многих приложений - например, легковых автомобилей, грузовиков, тракторов, промышленных роботов. Система шины CAN обеспечивает централизованную диагностику ошибок и настройку всех ЭБУ. Сообщения CAN имеют приоритет с помощью идентификаторов, поэтому идентификаторы с наивысшим приоритетом не прерываются. Каждый ЭБУ содержит микросхему для приема всех передаваемых сообщений, определения актуальности и соответствующих действий - это позволяет легко модифицировать и включать дополнительные узлы (например, регистраторы данных шины CAN). Приложения включают запуск / остановку транспортных средств, системы предотвращения столкновений. Системы CAN-шины могут обеспечивать скорость до 1 Мбит / с.
Микропровода
MICROWIRE - это последовательный 3-проводный интерфейс со скоростью 3 Мбит / с, по сути, являющийся подмножеством интерфейса SPI. Microwire - это последовательный порт ввода / вывода на микроконтроллерах, поэтому шину Microwire можно также найти в EEPROM и других периферийных микросхемах. Три строки - это SI (последовательный вход), SO (последовательный выход) и SK (последовательные часы). Линия последовательного ввода (SI) к микроконтроллеру, SO - это линия последовательного вывода, а SK - линия последовательных часов. Данные смещаются по заднему фронту SK и оцениваются по переднему фронту. SI смещается на переднем фронте SK. Дополнительное расширение шины для MICROWIRE называется MICROWIRE / Plus. Основное различие между двумя шинами заключается в том, что архитектура MICROWIRE / Plus внутри микроконтроллера более сложна. Он поддерживает скорость до 3 Мбит / с.
Асинхронные последовательные протоколы
Асинхронный тип последовательных протоколов очень важен, когда речь идет о надежной передаче данных на большие расстояния. Для асинхронной связи не требуются синхронизирующие часы, общие для обоих устройств. Каждое устройство независимо прослушивает и отправляет цифровые импульсы, которые представляют биты данных с согласованной скоростью. Асинхронная последовательная связь иногда называется последовательной транзисторно-транзисторной логикой (TTL), где высокий уровень напряжения равен логической 1, а низкое напряжение равно логическому 0. Почти каждый микроконтроллер на рынке сегодня имеет по крайней мере один универсальный асинхронный приемник. Передатчик (UART) для последовательной связи. Примеры: RS232, RS422, RS485 и т. Д.
RS232
RS232 (рекомендуемый стандарт 232) - это очень распространенный протокол, используемый для подключения различных периферийных устройств, таких как мониторы, ЧПУ и т. Д. RS232 поставляется с вилками и розетками. RS232 представляет собой топологию «точка-точка» с подключением максимум одного устройства и покрывает расстояние до 15 метров со скоростью 9600 бит / с. Информация по интерфейсу RS-232 передается в цифровом виде посредством логических 0 и 1. Логическая «1» (МАРКА) соответствует напряжению в диапазоне от -3 до -15 В. Логический «0» (ПРОБЕЛ) соответствует напряжение в диапазоне от +3 до +15 В. Поставляется в разъеме DB9, который имеет 9 распиновок: TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
RS422 похож на RS232, который позволяет одновременно отправлять и получать сообщения по отдельным линиям, но использует для этого дифференциальный сигнал. В сети RS-422 может быть только одно передающее устройство и до 10 принимающих устройств. Скорость передачи данных в RS-422 зависит от расстояния и может варьироваться от 10 кбит / с (1200 метров) до 10 Мбит / с (10 метров). Линия RS-422 - это 4 провода для передачи данных (2 скрученных провода для передачи и 2 скрученных провода для приема) и один общий заземляющий провод GND. Напряжение на линиях передачи данных может находиться в диапазоне от -6 В до +6 В. Логическая разница между A и B больше +0,2 В. Логическая 1 соответствует разнице между A и B менее -0,2 В. Стандарт RS-422 не определяет конкретный тип разъема, обычно это может быть клеммная колодка или разъем DB9.
RS485
Поскольку RS485 использует многоточечную топологию, он чаще всего используется в промышленности и является предпочтительным протоколом в отрасли. RS422 может подключать 32 линейных драйвера и 32 приемника в дифференциальной конфигурации, но с помощью дополнительных повторителей и усилителей сигнала до 256 устройств. RS-485 не определяет конкретный тип разъема, но часто это клеммная колодка или разъем DB9. Скорость работы также зависит от длины линии и может достигать 10 Мбит / с на расстоянии 10 метров. Напряжение на линиях находится в диапазоне от -7 В до +12 В. Существует два типа RS-485: полудуплексный режим RS-485 с 2 контактами и полнодуплексный режим RS-485 с 4 контактами. Чтобы узнать больше об использовании RS485 с другими микроконтроллерами, проверьте ссылки:
- Последовательная связь RS-485 MODBUS с использованием Arduino UNO в качестве ведомого
- Последовательная связь RS-485 между Raspberry Pi и Arduino Uno
- Последовательная связь RS485 между Arduino Uno и Arduino Nano
- Последовательная связь между STM32F103C8 и Arduino UNO с использованием RS-485
Заключение
Последовательная связь - одна из широко используемых систем интерфейса связи в электронике и встроенных системах. Скорость передачи данных может быть разной для разных приложений. Протоколы последовательной связи могут играть решающую роль при работе с такого рода приложениями. Поэтому выбор правильного последовательного протокола становится очень важным.