R&S®Essentials | Digital oscilloscope and probe fundamentals

Understanding serial protocols

Transferring digital data: Parallel vs. serial transmission

Digital systems are based on the concept of bits, that need to be transferred between two components or devices. There are many ways of moving bits, but the different methods of transferring bits can be separated into two main categories: parallel and serial transmission.

Parallel transmission

Parallel transmission moves multiple bits simultaneously between transmitter and receiver, usually with a separate conductor per bit. Parallel connections work well for short-distance and/or point-to-point connections. They have simple timing and are relatively easy to analyze. But as popular as parallel transmission once was, it’s now largely being replaced by serial transmission.

Serial transmission

As the name implies, serial transmission sends one bit at a time, with all the bits being sent over the same conductor. Serial transmission works well for longer-distance applications, applications needing higher throughput, and applications where there are multiple nodes. All of this comes at a cost, with serial transmission being more complex and harder to analyze. While it is true that data bits are being sent over a single conductor or “wire,” most serial protocols use multiple conductors.

In addition to the wire for the data bits, many protocols also add a clock signal, some type of control or addressing function for multiple nodes.

Параллельная передача

Последовательная передача

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

Последовательные протоколы используются в самых разных прикладных задачах. К трем основным последовательным протоколам, используемым для общих задач, относятся UART, I²C и SPI.

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

Общие задачи

UART (универсальный асинхронный приёмопередатчик)

  • Классический последовательный протокол
  • прост в реализации
  • десятилетиями используется в последовательных и COM-портах ПК

I²C (связь между ИС)

  • Связь между интегральными схемами (и др.)

SPI (последовательный периферийный интерфейс)

  • Более высокая скорость, чем у I²C
  • использует больше проводов и, как правило, более сложный

Автомобильная область

CAN (локальная сеть контроллеров)

  • Высокая скорость
  • часто используется с датчиками

LIN (коммутируемая локальная сеть)

  • Более низкая скорость
  • используется для вспомогательных приспособлений (например, стекол, зеркал)

FlexRay

  • Более высокая скорость с резервированием

Характеристики последовательных протоколов

Хотя детали реализации для разных протоколов различаются, все последовательные протоколы имеют четыре основные характеристики, которые также важны для анализа и декодирования последовательных данных:

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

Уровни

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

Примечание — Для таких измерений очень удобно использовать дифференциальные пробники.

Тактирование

Задания уровней напряжения «0» и «1» недостаточно, чтобы определить принимаемые биты. Важно также понимать, с какой скоростью генерируются биты, или, другими словами, что такое «битовый интервал» или «битовая скорость».
Для декодирования последовательных данных приемник или прибор должны использовать ту же скорость передачи данных, что и передатчик.

Кадрирование

Последовательные протоколы обычно организуют биты в так называемые кадры (фреймы). Отдельные биты или группы битов в кадре имеют определенное значение. Чтобы правильно декодировать кадры, необходимо знать эту структуру.
Например, при декодировании последовательного протокола UART важно знать, что состоянию ожидания линии соответствует высокий уровень напряжения. Переход от высокого уровня к низкому — это «стартовый бит», указывающий на начало кадра. Кроме того, необходимо понимать, сколько битов данных нужно считать, а также тот факт, что есть стоповый бит уровня высокого напряжения, который завершает кадр с последующим возвратом в состояние ожидания. Зная структуру кадра, из последовательного потока битов можно извлечь пользовательские данные, а также получить другую информацию о передаче.

Биты обычно объединяются в «кадры»; Каждый бит или группа битов в кадре имеет определенное значение

Протокол

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

Декодирование последовательных протоколов

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

Заключение

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

Последовательная связь используется практически во всех цифровых устройствах

Последовательные протоколы можно разделить на:

  • общие стандарты, такие как UART, I²C и SPI
  • дополнительные протоколы для конкретных областей применения, такие как CAN, LIN и FlexRay (в основном используются в автомобильной промышленности)

Все последовательные протоколы имеют определенные характеристики, такие как:

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

Современные цифровые осциллографы стали предпочтительным инструментом для анализа и декодирования последовательных данных.

У вас есть вопросы о последовательных протоколах или декодировании последовательных протоколов? Наши специалисты вам помогут.

Curious to learn more about test fundamentals?

Sign up for our newsletter