Корзина пуста
Декодирование и анализ сигналов шин I2C, SPI, RS-232C, RS-422, RS-485 и UART с использованием осциллографов LeCroy
А.A. Дедюхин, АО «ПриСТ» |
Часть 1: I2C
Шина межмикросхемного управления Inter-Integrated Circuit (или имеющая альтернативные обозначения IIC, I2C или будем дальше упрощенно ее именовать I2C) была разработана в начале 80-х годов компанией Philips для межмикросхемного управления в блоках телевизоров с целью наращивания возможностей телевизионных приемников с одновременным сокращением числа печатных проводников на платах, соединяющих между собой все растущее число ИМС. Задачей появления шины I2C являлось перейти от параллельной передачи данных, неизбежно имеющей число проводников равное разрядности шины, что значительно затрудняло разводку печатных плат и создавало массу других проблем, к последовательной передаче данных по трем проводам. Интерес у разработчиков и конструкторов различного рода радиоэлектронных устройств к шине I2C не ослабевал все эти годы, но отмена с 1 октября 2006 года компанией Philips отчислений за использование протокола I2C вызвало оживление интереса и дало новый толчок к все более широкому использованию шины I2C в различного рода электронных устройствах, не связанных с телевизионным приемом. В настоящее время шина I2C широко используется в микросхемах памяти, видеопроцессорах, модулей обработки аудио- и видео-сигналов, АЦП и ЦАП, драйверах ЖК-индикаторов, телефонах, кодеках и многих других устройствах. «Второе» и тем более такое бурное «рождение» шины I2C не могло не остаться незамеченным производителями средств визуальной диагностики – производителями цифровых осциллографов. Долгие годы инженеры и разработчики, при разработке и отладке устройств использующих протокол I2C, применяли программно-аппаратные средства, если и позволяющие производить декодирование протокола I2C, то абсолютно не приспособленные для анализа этих сигналов на физическом уровне, то есть с визуальным просмотром процессов происходящих на шине, с одновременным декодированием протокола. Эти проблемы полностью решает современный цифровой осциллограф, имеющий возможность декодирования протоколов I2C. К числу таких осциллографов можно отнести осциллографы LeCroy серии WaveSurfer Xs, WaveRunner, WavePro и WaveMaster.
Для того, что бы разобраться в особенностях декодирования и анализа шины I2C кратко обратимся к структуре шины I2C.
В стандартном режиме шина I2C обеспечивает передачу последовательных 8-битных данных со скоростью до 100 кбит/с, до 400 кбит/с в скоростном режиме или со скоростью 3,4 Мбит/с в высокоскоростном режим работы. Для осуществления процесса обмена информацией по I2C шине, используется всего два сигнала линия данных SDA линия синхронизации SCL. Для обеспечения реализации двунаправленности шины без применения сложных арбитров шины выходные каскады устройств, подключенных к шине, имеют открытый сток или открытый коллектор для обеспечения функции монтажного "И". Максимальное допустимое количество микросхем, подсоединённых к одной шине, ограничивается максимальной емкостью шины 400 пФ. На рисунке представлен принцип подключения нескольких ИМС к одной шине обмена.
Рисунок 1 |
Каждое устройство на шине I2C распознается по уникальному адресу и может работать как передатчик или приёмник, в зависимости от назначения устройства.
Кроме того, устройства могут быть классифицированы как ведущие и ведомые при передаче данных. Ведущий - это устройство, которое инициирует передачу данных и вырабатывает сигналы синхронизации. При этом любое адресуемое устройство считается ведомым по отношению к ведущему.
Процедура синхронизации двух устройств. Эта процедура основана на том, что все I2C-устройства подключаются к шине по правилу монтажного «И». В исходном состоянии оба сигнала SDA и SCL находятся в высоком состоянии.
Состояние СТАРТ и СТОП. Процедура обмена начинается с того, что ведущий формирует состояние СТАРТ - ведущий генерирует переход сигнала линии SDA из ВЫСОКОГО состояния в НИЗКОЕ при ВЫСОКОМ уровне на линии SCL. Этот переход воспринимается всеми устройствами, подключенными к шине как признак начала процедуры обмена.
Рисунок 2 |
Генерация синхросигнала - это всегда обязанность ведущего; каждый ведущий генерирует свой собственный сигнал синхронизации при пересылке данных по шине.
Процедура обмена завершается тем, что ведущий формирует состояние СТОП - переход состояния линии SDA из низкого состояния в ВЫСОКОЕ при ВЫСОКОМ состоянии линии SCL.
Состояния СТАРТ и СТОП всегда вырабатываются ведущим. Считается, что шина занята после фиксации состояния СТАРТ. Шина считается освободившейся через некоторое время после фиксации состояния СТОП.
Рисунок 3 |
При передаче посылок по шине I2C каждый ведущий генерирует свой синхросигнал на линии SCL.
После формирования состояния СТАРТ, ведущий опускает состояние линии SCL в НИЗКОЕ состояние и выставляет на линию SDA старший бит первого байта сообщения. Количество байт в сообщении не ограничено.
Спецификация шины I2C разрешает изменения на линии SDA только при НИЗКОМ уровне сигнала на линии SCL.
Данные действительны и должны оставаться стабильными только во время ВЫСОКОГО состояния синхроимпульса.
Для подтверждения приема байта от ведущего - передатчика ведомым - приемником в спецификации протокола обмена по шине I2C вводится специальный бит подтверждения, выставляемый на шину SDA после приема 8 бита данных.
Подтверждение. Таким образом, передача 8 бит данных от передатчика к приемнику завершаются дополнительным циклом (формированием 9-го тактового импульса линии SCL), при котором приемник выставляет низкий уровень сигнала на линии SDA, как признак успешного приема байта.
Рисунок 4 |
Подтверждение при передаче данных обязательно. Соответствующий импульс синхронизации генерируется ведущим. Передатчик отпускает (ВЫСОКОЕ) линию SDA на время синхроимпульса подтверждения. Приёмник должен удерживать линию SDA в течение ВЫСОКОГО состояния синхроимпульса подтверждения в стабильном НИЗКОМ состоянии.
В том случае, когда ведомый-приёмник не может подтвердить свой, линия данных должна быть оставлена в ВЫСОКОМ состоянии. Это является признаком отсутствия приема байта и оценивается шиной как «Отсутствие подтверждения». После этого ведущий может выдать сигнал СТОП для прерывания пересылки данных.
Если в пересылке участвует ведущий-приёмник, то он должен сообщить об окончании передачи ведомому-передатчику путем не подтверждения последнего байта. Ведомый-передатчик должен освободить линию данных для того, чтобы позволить ведущему выдать сигнал СТОП или повторить сигнал СТАРТ.
Адресация в шине I2C. Каждое устройство, подключённое к шине, может быть программно адресовано по уникальному адресу.
Для выбора приемника сообщения ведущий использует уникальный адресную компоненту в формате посылки. При использовании однотипных устройств, ИС часто имеют дополнительный селектор адреса, который может быть реализован как в виде дополнительных цифровых входов селектора адреса, так и в виде аналогового входа. При этом адреса таких однотипных устройств оказываются разнесены в адресном пространстве устройств, подключенных к шине.
В обычном режиме используется 7-битная адресация.
Процедура адресации на шине I2C заключается в том, что первый байт после сигнала СТАРТ определяет, какой ведомый адресуется ведущим для проведения цикла обмена. Исключение составляет адрес "Общего вызова", который адресует все устройства на шине. Когда используется этот адрес, все устройства в теории должны послать сигнал подтверждения. Однако, устройства могут обрабатывать "общий вызов" на практике встречаются редко.
Первые семь битов первого байта образуют адрес ведомого. Восьмой, младший бит, определяет направление пересылки данных. "Ноль" означает, что ведущий будет записывать информацию в выбранного ведомого. "Единица" означает, что ведущий будет считывать информацию из ведомого.
После того, как адрес послан, каждое устройство в системе сравнивает первые семь бит после сигнала СТАРТ со своим адресом. При совпадении устройство полагает себя выбранным как ведомый-приёмник или как ведомый-передатчик, в зависимости от бита направления.
Все ИМС, поддерживающие работу в стандарте шины I2C, имеют набор фиксированных адресов, перечень которых указан производителем в описаниях контроллеров.
Комбинация бит 11110ХХ адреса зарезервирована для 10-битной адресации.
В общем виде процесс обмена по шине от момента формирования состояния СТАРТ до состояния СТОП можно проиллюстрировать следующим рисунком:
Рисунок 5 |
Ниже приведена английская абвеатура обозначения терминов встречающихся при описании шины I2C и их русская транскрипция:
SDA (Serial Data) – последовательные данные или просто данные
DATA - данные
SCL (Serial Clock) – сигнал синхронизации
START - Старт
STOP - Стоп
ADDRESS - Адрес
R/W (READ/WRITE) – Ч/З (Чтение/Запись)
ACK (Acknowledge) - Подтверждение
NACK (No Acknowledge) – Нет подтверждения
LENGTH - длина посылки от Старта до Стопа
На рисунке 6 приведено отображение осциллографом LeCroy WaveRunner 64Xi сигнала I2C. Сигнал С1 представят собой данные, а сигнал С3 – сигнал синхронизации шины I2C. На этом же рисунке внизу приведены растяжки сигналов данных и синхронизации, из которых видно, что до начала момента передачи информации шина I2C находится в высоком состоянии и сигнал синхронизации, после начала передачи данных, имеет небольшой временной сдвиг по отношению к сигналу данных, для более четкой синхронизации данных. Данные осциллограммы отображают физическое состояние сигналов на шине I2C.
Рисунок 6 |
Декодирование и анализ сигналов шин I2C с применением осциллографов LeCroy можно разделить на две составляющие:
- Декодирование сигнала I2C с идентификацией все его структуры.
- Регистрация определенных сигналов I2C в соответствии с заданными условиями.
Декодирование сигнала I2C. Декодирование сигналов I2C сводится к выделению в общей структуре сигнала отдельных компонент протокола - старта, адреса, чтения/записи, данных, бита подтверждения и стопа) и декодирования физического состояния сигнала - низкого и высокого в данные, передаваемые протоколом I2C. Так на рисунке 7 приведен типичный пример «сокращенного» декодирования сообщения I2C, при котором отображаются не все элементы структуры протокола, а лишь его наиболее значимые составляющие. Это связано с тем, что сообщения I2C могут иметь самую разную длину, соответственно отображение всех компонент сигнала I2C приведет к нагромождению информации на экране осциллографа, что сделает визуальный просмотр неудобным для пользователя.
Рисунок 7 |
Одни, второстепенные, компоненты сигнала I2C на рисунке 7 отображаются схематически, как например Старт и Стоп - белыми горизонтальными линиями по краям сообщения, или биты подтверждения – коричневые горизонтальные линии между синими окнами данных. Другие, основные, компоненты сигнала I2C помимо цветографического выделения имеют цифро-буквенное обозначение. Так адрес сообщения выделен красным цветом и содержит информацию об адресе - 0xa3, в этом же поле отображается режим Чтения/Записи, в данном случае символ (W), обозначающий «Запись». Окна данных, выделенные синим цветом, собственно и содержащие информацию о передаваемых данных, также имеют цифро-буквенное обозначение. Информация данных может быть представления в коде ASCII, HEX (шестнадцатеричном коде) или в бинарном виде. На рисунке 7 данные представлены в коде ASCII. При масштабировании этого сигнала, структура сигнала I2C при его декодировании становится полной. Так на рисунке 8 изображена начальная, стартовая часть сигнала рисунка 7. И на этом рисунке, с сохранением последовательности, отображены следующие части сигнала I2C – Старт, Адрес (0хa3), бит Чтения (R), бит подтверждения (в данном случае «NACK») и далее биты данных.
Рисунок 8 |
На рисунке 9 приведено продолжение сигнала рисунка 7, содержащее данные. На нем видны только три полных окна данных (содержащие символы «L», «e» и «C» в коде ASCII) и 9-ые биты подтверждения, в данном случае имеющие значение логической «1» или «NACK».
Рисунок 9 |
На рисунке 10 приведена стоповая часть сигнала рисунка 7 с последним окном данных – символ «3», битом подтверждения - «NACK» и Стоп битом.
Рисунок 10 |
Особенно следует отметить то, что если декодирование служебных бит, например адреса, осуществляется всегда в шестнадцатеричном коде, то декодирование информационных бит может осуществляться в трех различных кодировках:
- двоичной код – представляющей собой набор логических нулей и единиц, в этом виде сигнал I2C и осуществляет связь между устройствами;
- шестнадцатеричный код – этот код наиболее распространен при программировании самого широкого типа цифровых устройств и в этом виде представляются все сигнатуры цифровых устройств;
- код ASCII – (сокращение от American Standard Code for Information Interchange) предназначен для передачи буквенно-цифровой и символьной информации, которую человек может воспринять как чтение обычного и понятного текста. Декодирование в этом коде наиболее подходит для разработки и исследования устройств, передающих, принимающих или отображающих буквенно-цифровую информацию, например для клавиатур или дисплеев. Поскольку содержание декодированного сигнала I2C и отображение передаваемой или отображаемой информации на дисплее должно совпадать, что значительно облегчает мониторинг такого рода устройств.
Так на рисунках 11 и 12 приведены примеры декодирования сообщения в двоичной кодировке (рис.11) и шестнадцатеричной кодировке (рис.12).
Рисунок 11 |
Рисунок 12 |
Выбор типа декодирования осуществляется в меню установок Декодера, в котором помимо типа декодирования задаются источник потока данных и синхронизации, а также вспомогательные параметры, как просмотр таблицы декодировании, параметры ее конфигурации и экспортирование таблицы декодирования во внешний файл – см. рисунок 13.
Рисунок 13 |
Особо следует отметить то, что осциллографы LeCroy имеют четыре декодера, каждый из которых может иметь собственную независимую конфигурацию. На первый взгляд кажется очевидным, что 4-х канальный осциллограф не может декодировать более 2-х независимы потоков I2C- поскольку два канала будут задействованы под поток данных, а два других канала будут задействованы для сигнала синхронизации. Но в качестве источников данных сигнала I2C осциллографы LeCroy способны декодировать сигналы I2C из внешней и внутренней памяти, или результаты математических операций, что значительно расширяет число источников сигнала I2C. Или же представляется возможным использовать разные декодеры для декодирования одного и того же исходного сигнала I2C, но с различным типом декодирования. В этом случае один и тот же сигнал I2C на экране осциллографа LeCroy будет параллельно иметь две (или максимально три) «расшифровки», как представлено на рисунке 14 - в кодировке ASCII и HEX.
Рисунок 14 |
Но при реальном исследовании сигналов I2C, чаще всего цифровой осциллограф регистрирует не одну посылку I2C во весь экрана, а последовательность из нескольких сигналов, при этом осциллографы LeCroy, во избежание нагромождения декодированной информации на исходном сигнале отображает только адрес и режим Чтения/Записи, другая информация потока I2C хоть и декодируется, но на экран не выводится (см. рисунок 15).
Рисунок 15 |
Для просмотра данных таких сообщений служит «таблица декодирования», в которой в понятном виде отображаются следующие данные – номер сообщения по порядку, время сообщения, длина адреса, Адрес, режим Чтения/Записи, длина сообщения, содержание сообщения. Так на рисунке 16 приведена последовательность 16 сообщений I2C, таблица декодирования и одно масштабированное сообщение - третье в последовательности с адресом 0xd7, выделенное в таблице декодирования желтым цветом.
Рисунок 16 |
Вид таблицы декодирования может конфигурироваться пользователем самостоятельно, исходя из стоящих перед ним задач. Таблица декодирования может быть экспортирована во внешний файл с расширением «cvs.», в котором дополнительно, помимо данных отображаемых на экране осциллографа LeCroy, будет присутствовать измеренная скорость передачи данных I2C. При использовании двух декодеров I2C, настроенных на две различные кодировки, например ASCII и HEX, на экране осциллографа LeCroy присутствуют две таблицы декодирования каждая в своем формате – см. рисунок 17. при использовании всех четырех декодеров, на экране осциллографа будут присутствовать четыре таблицы декодирования.
Рисунок 17 |
При регистрации множественных сообщений I2C и просмотре осциллограмм в режиме масштабирования возникает потребность выделить сообщение по заданным пользователем параметрам в режиме масштабирования. К таким условиям можно отнести:
- Адрес пакета;
- Следующий пакет;
- Содержание сообщения.
Параметры могут быть заданы только в коде HEX. Так на рисунке 18 приведен пример просмотра сообщений с адресом 0ха2 (для наглядности исходный сигнал канала 1 выключен и приведена только осциллограмма растяжки). Видно, что этому условию удовлетворяет 26 сообщение. Поиск предыдущих сообщений с адресом 0ха2 осуществляется нажатием кнопки , а последующих - нажатием кнопки
Рисунок 18 |
Перемещение к следующему пакету осуществляется без каких-либо условий и этот режим призван просто облегчить переход от одного сообщения к другому, когда последующее сообщение (или предыдущее сообщение) оказывается сразу по центру экрана цифрового осциллографа, без трудоемких манипуляций органами задержки развертки. Иным образом обстоит ситуация при перемещении по заданным параметрам Данных. Как уже было отмечено ранее, при описании протокола I2C, одно сообщение I2C, имеющее один уникальный адрес, может содержать несколько пакетов данных. То есть если при предыдущих условиях выделения сообщения I2C, перемещение происходило сразу к другим сообщениям, то при перемещении по условию содержания данных, перемещения к другому сообщения не произойдет, поскольку одни и те же данные могут многократно содержаться в одном и то же пакете. Так на рисунке 19 приведен пример выделения сообщения «6с». Как видно из рисунка только пакет № 26 содержит, как минимум три сообщения «6с» (впрочем, и другие сообщения тоже). Поэтому при выборе последующих сообщений «6с» (или предыдущих сообщений «6с») сначала будут представления все сообщения «6с» пакета № 26 , потом № 27 (или № 25) и так далее.
Рисунок 19 |
Применение сегментированной развертки может оказать значительную помощь при декодировании и анализе сигналов I2C (с принципом работы сегментированной развертки можно ознакомиться на http://prist.ru/info/articles/special_modes_DSO.htm class=l>http://prist.ru/info/articles/special_modes_DSO.htm). Как видно из рисунков 16 и 17 период следования пактов сигнала I2C составляет порядка 350 мс, в то время как сам пакет имеет длительность около 3 мс, при этом осциллограф зафиксировал 29 пакетов I2C. Несложный подсчет дает следующий результат – 347 мс осциллограф бесполезно записывал в память паузу между пакетами, напрасно растрачивая свои ресурсы. Или КПД сбора информации в этом случае составляет 3мс /347мс *100 = 0,86%. Применение сегментированной развертки осциллографов LeCroy позволяет значительно повысить КПД сбора информации, за счет того, что осциллограф не записывает в память паузы между пакетами, а пишет лишь полезный сигнал. В этом случае, например осциллограф LeCroy WaveRunner 64Xi, имеющий память 25М, при частоте дискретизации 2 Мвыб/с, способен зарегистрировать и декодировать более 2000 пакетов I2C с такими же параметрами, как приведено на рисунках 16 и 17. На рисунке 20 приведен пример захвата сигналов в режиме сегментированной развертки и выделения с декодированием 1202 пакета I2C.
Рисунок 20 |
На практике, иногда, может возникнуть ситуация, когда сигнал I2C искажен из-за неисправностей активных и пассивных элементов схем, помех и т.д. и т.п. Визуально оценить ошибки и искажения в таком сигнале практически невозможно – поскольку при визуальном просмотре структура сигнала не выглядит искаженной, но реальной и достоверной передачи данных не происходит. Так на рисунке 21 приведен пример регистрации пакетов I2C имеющих существенные искажения формы сигнала. При декодировании сигнала I2C, пакеты, имеющие ошибки фиксируются и маркируются красным цветом (см. рисунок 21 верхняя осциллограмма). При масштабировании такого сигнала, сообщения содержащие ошибки также выделяются красным цветом с надписью «Error» и такая же надпись будет присутствовать в таблице декодирования.
Рисунок 21 |
Регистрация сигналов I2C в соответствии с заданными условиями. Другими словами это называется - синхронизация по заданным условиям или запуск по заданным условиям. Ранее были приведены различные примеры отображения и декодирования всей последовательности сигналов I2C –последовательно пакет за пакетом и даже выделение отдельных пакетов или сообщений при масштабировании производилось из этой последовательности, в том числе включая и сегментированную развертку. То есть фиксировались и декодировались вес сообщения I2C без «разбору». Синхронизация сигналов I2C по заданным условиям позволяет фиксировались и в последующем декодировать только сигналы соответствующие заданным условиям. Наиболее часто на практике интерес представляет исследование сообщений с одним адресом, предназначенных для приема или передачи одним определенным устройством. Или поиск сообщения содержащего определенную информацию.
Осциллографы LeCroy в качестве условий синхронизации сигнала I2C предлагают следующие условия:
- Запуск по биту Старт;
- Запуск по биту Стоп;
- Запуск по биту Повторный Старт;
- Запуск по биту Нет Подтверждения;
- Запуск по заданному адресу;
- Запуск по заданным адресу и данным;
- Запуск по длине пакета;
- Запуск по данным EEPROM.
Так меню управления запуском развертки приведено на рисунке 22
Рисунок 22 |
Такие способы запуска как по биту Старт; по биту Стоп; по биту Повторный Старт и по биту Нет Подтверждения, относятся к безусловным типам синхронизации, то есть не требуют дополнительных условий и не требуют особых пояснений – запуск развертки осциллографа происходит при первом обнаружении указанных данных. Так на рисунке 23 приведен пример синхронизации по биту «Нет Подтверждения», то есть когда устройство I2C не смогло принять предназначенную для него информацию и требуется повторная передача сообщения. Точка запуска развертки находится посередине экрана.
Рисунок 23 |
Остальные виды синхронизации являются условными, то есть требуют дополнительно ввода данных, по которым будет производиться запуск. Так при запуске по заданному адресу требуется задать длину адреса – 7 или 10 бит; формат кодировки адреса – двоичный или шестнадцатеричный; бит Чтения, Записи или игнорировании режима Чтения/ Записи. Так на рисунке 24 приведен пример регистрации и декодирования сообщения I2C с 7-и битным адресом «0x1a». Применение сегментированной развертки, в этом случае, позволит накапливать и декодировать множественные сообщения I2C только с адресом «0x1a».
Рисунок 24 |
Запуск по Адресу и Данным. Более расширенный вид синхронизации - это запуск по комбинированным данным адреса и данных, содержащихся в сообщении. В этом режиме осциллографы LeCroy дают возможность записывать и декодировать пакеты I2C имеющие заданный адрес (но при значении адреса «ХХ», адрес сообщения игнорируется) и содержащие определенный тип данных. Как показано на рисунке 22, дополнительно можно задать 8 условий контроля данных, это:
- Равно;
- Не равно
- Больше;
- Меньше;
- Больше или равно;
- Меньше или равно;
- Находится в пределах;
- Находится за пределами.
Так на рисунке 25 приведен пример регистрации и декодирования сообщения с адресом «0x1c», содержащее сообщение «0x6c».
Рисунок 25 |
Опять же, применение сегментированной развертки, в этом случае, позволит накапливать и декодировать множественные сообщения I2C удовлетворяющие заданным условиям.
Использование функции «Длина шаблона», при синхронизации по заданным условиям позволяет, задавать для поиска более длинные последовательности данных, чем единичное сообщение I2C. Так все случаи, рассмотренные выше, имели длину шаблона 1 сообщение. При задании значения «Длина шаблона» равном «2», «3» и т.д. для запуска развертки будет анализироваться последовательность 2-х, 3-х или более сообщений.
Так на рисунке 26 приведен пример запуска по 2-м сообщениям I2C, имеющим в шестнадцатеричном коде значение «38 36». При формировании такой последовательности запуска возможно игнорирование одного или нескольких разрядов из заданной последовательности, замещая полезные данные на символ «Х».
Рисунок 26 |
Запуск по данным EEPROM отличается от запуска по Адресу и Данным тем, что в предыдущих условия запуска, анализировались только данные адреса и сообщений, пусть даже и длинных, но анализу не подвергалось местонахождения заданного сообщения. Такое сообщение могло быть вначале, в середине или в конце пакета, как сообщение «38 36» на рисунке 26. При запуске EEPROM необходимо конкретно задать номер сообщения (или его положение) в последовательности, начиная от Стартового бита. Поскольку сообщения в пакете могут повторяться многократно, как, например, на рисунке 25 сообщение «6с» повторяется как минимум три раза, но запуска развертки осциллографа каждый раз происходит при обнаружении первого сообщения содержащих данные «6с», при этом все последующие сообщения «6с» игнорируются до обнаружения нового пакета нажинающегося со Старт бита. При разработке и отладке устройств I2C такой алгоритм анализа иногда не позволяет точно определить причину возникновения дефекта. Установка параметра «Старт бит» в режиме запуска по данным EEPROM позволяет фиксировать 2-е, 3-е и т.д. сообщение, удовлетворяющее заданным условиям, что значительно расширяет возможности сбора данных сообщений I2C. Максимальное число игнорируемых сообщений в пакете составляет 2047 сообщений I2C.
Запуск по длине кадра (или пакета) позволяет регистрировать только сообщения удовлетворяющие условиям длительности пакета. Логические условия контроля длительности пакета такие же, как указанные ранее.
Автор выражает благодарность ООО «ИИТ Лтд» (Украина, г. Киев) и лично Андрею Сырых, за помощь, оказанную при подготовке материалов по описанию структуры протокола I2C.
Часть 2: SPI
SPI (Serial Peripheral Interface или последовательный интерфейс периферийных устройств) – это простой способ обмена данными между двумя цифровыми устройствами.
В настоящее время SPI интерфейс активно применяется в:
- Датчиках температуры, давления; цифровых потенциометрах;
- Аналого-цифровых преобразователях и цифро-аналоговых преобразователях;
- Сенсорных экранах;
- Звуковых кодеках;
- ЖК экранах;
- В MMC и SD картах памяти и других флеш-картах памяти;
- В элементах программируемой логики (FPGA) и перепрограммируемой памяти (EEPROM) и др.
Общие определения SPI-интерфейса. SPI – четырехпроводный последовательный синхронный интерфейс между одним мастером (ведущее устройство) и одним помощником (ведомое устройство), не требующий дополнительного оборудования для подключения, с другими SPI-совместимыми устройствами и обладают широкими возможностями для конфигурирования. Каждый передаваемый бит данных в любом из направлений имеет собственный тактовый импульс. Поэтому, SPI использует по крайней мере три различных сигнала:
- SCLK – тактирование последовательной связи (синхронизация)
- MOSI – ((Master Out Slave In) последовательный ввод (данные от «помощника» к «мастеру»)
- MISO – ((Master In Slave Out) последовательный вывод (данные от «мастера» к «помощнику»)
Рисунок 1 |
В некоторых технических реализациях протокола SPI, когда одно ведущее устройство передает и принимает информацию от нескольких ведомых устройств используется четвертый сигнал «Выбор ведомого» (Slave Select – SS) или второе название “Выбор кристалла” (Chip Select - CS), который используется для разрешения последовательной связи мастером. Данный сигнал может иметь активный уровень или низкий, или высокий, в зависимости от спечификации конкретного производителя SPI устройств.
Рисунок 2 |
Сигнал тактирования SPI (SCK). В связи с отсутствием общих технических требований к SPI-интерфейсу временная диаграмма тактового сигнала зависима от устройства (микросхемы), поскольку каждый производитель использует собственную временную диаграмму. Для большинства SPI протоколов можно выделить четыре типа настроек, которые обычно задаются внутренними установками "мастера" шины SPI: CPOL (полярность тактового сигнала) и CPHA (фаза тактового сигнала).
CPOL определяет активное состояние сигнала тактирования последовательной связи SPI и, следовательно, является базовым уровнем или уровнем «холостого хода», когда передачи информации в линии нет.
CPHA определяет фазу тактового сигнала относительно бита данных на линии SO.
Не существует общей классификации SPI-протоколов и SPI-устройств, которая определяла бы установки CPOL и CPHA относительно собственно протокола. Поэтому в этом документе установки определяются следующим образом:
CPOL = 0 : тактовый сигнал имеет базовый уровень “1”
CPOL = 1 : тактовый сигнал имеет базовый уровень “0”
CPHA = 0 : тактовый сигнал синхронен битам данных на линиях MOSI и MISO, считывание информации происходит в момент нарастающего фронта сигнала CPHA, изменение информации происходит при спадающем фронте сигнала CPHA.
CPHA = 1 : тактовый сигнал задержан на полпериода передачи бита данных относительно бита данных на линии MOSI и MISO, считывание информации происходит в момент спадающего фронта сигнала CPHA, изменение информации происходит при нарастающем фронте сигнала CPHA.
Комбинации полярностей и фазы сигналов CPOL и CPHA еще называют «режим №», определение «номера режима» осуществляется согласно Таблицы 1.
Таблица 1 | ||
Режим № | CPOL | CPHA |
1 | 0 | 0 |
2 | 0 | 1 |
3 | 1 | 0 |
4 | 1 | 1 |
Так на рисунке 3 приведена временная диаграмма для сигналов всех четырех режимов.
Рисунок 3 |
Направление данных. В большинстве SPI-форматов первым передается старший разряд (MSB). Но так же передача данных может осуществляться при передаче первым младшего разряда (LSB).
Скорость связи. Скорость передачи данных SPI-интерфейса задается аппаратно. Максимальная скорость ограничивается временными диаграммами установки и удержания сигналов.
SPI используется в широком диапазоне скоростей связи, начиная с нескольких кбит/с до нескольких Мбит/с.
Можно заметить, что "стандартной" реализации шины SPI не существует.
В некоторых случаях, если обратная связь ведущего устройства с ведомым не требуется,
сигнал MISO может вообще пропускаться, сигнал SS, как уже отмечалось, может также отсутствовать и шина SPI может принимать двухпроводную конфигурацию..
Общий вид сигнала SPI с сигналом последовательных данных и тактовым сигналом, представлен на рисунке 4 (двух проводная конфинурация):
Рисунок 4 |
На рисунке представлены два байта данных по 8 бит сигнала SPI с номером режима «4».
Принцип визуального декодирование сигналов, формирования таблицы декодирования, выделения и перемещения по декодированным данным, формирования файлов декодированных сообщений, передаваемых по шине SPI, аналогичен декодированию сигналов I2C описанных в https://prist.ru/info/articles/i2c_spi_rs_lecroy_analyze.htm class=l>https://prist.ru/info/articles/i2c_spi_rs_lecroy_analyze.htm. С той разницей, что сигналы SPI не имеют в своей структуре такого широкого набора атрибутов, как сигналы I2C.
Декодированные последовательности сигнала SPI можно представить в виде следующих форматов:
- Двоичный в виде нулей и единиц, как на рисунке выше.
- Шестнадцатеричного кода (код Hex)
- В коде ASCII, позволяющем отображать цифробуквенную информацию.
Так на рисунке 5 приведен пример декодирования сигнал SPI в формате ASCII.
Рисунок 5 |
В таблице декодирования присутствует следующая информация:
- Номер символа по порядку;
- Время регистрации символа;
- Декодирование символа;
- Скорость передачи сообщения SPI.
В качестве дополнительных настроек параметров сигнал SPI можно задать параметры:
- Значения параметров сигналов CPOL и CPHA , всего возможно выбрать один из 4-х возможных параметров;
- Направление данных, MSB или LSB.
- Возможность игнорирования выбора кристалла (микросхемы) для систем в которых выбор кристалла не предусмотрен. При активизации возможности выбора кристалла, представляется возможным задать уровень сигнала, при котором выбирается ИМС – низкий или высокий уровень.
При регистрации длинных последовательностей сигнала или необходимости сопоставления декодированного символа на физически исходном сигнале достаточно кликнуть мышкой на необходимый символ в таблице или используя сенсорный экран, прикоснуться к строке в таблице и автоматически будет активировано масштабирование сигнала. Заданный символ на осциллограмме масштабирования занимает 10 клеток экрана (так же с декодированием символа), а на исходной осциллограмме место расположения выделенного символа отмечается яркостной меткой (см. рис.6).
Рисунок 6 |
При необходимости поиска в последовательности символа с заданными значениями, например «65», в пиктограмме масштабирования в закладе «Просмотр SPI» в кодировке Hex необходимо указать значение для поиска. При перемещении в направлении «Предшествующий» или «Следующий». Осциллограф LeCroy осуществляет поиск заданного значения, автоматически выделяет найденный символ в таблице декодирования, включает осциллограмму масштабирования (если она была выключена), центрирует ее таким образом, чтобы символ занимал всю полезную часть экрана и выделяет найденный символ на основной осциллограмме (см. рис 7).
Рисунок 7 |
Регистрация сигналов SPI в соответствии с заданными значениями. Синхронизация сигналов SPI по заданным условиям, позволяет фиксировались в потоке данных только сигналы имеющие заданные значения или определенную заданную последовательность символов. Так на рисунке 8 приведен пример синхронизации по символу «48».
Рисунок 8 |
Осциллографы LeCroy при регистрации и декодировании сигналов SPI имеют возможность синхронизации не по одному заданному символу, а по комбинации нескольких символов. На рисунке 9 приведен пример синхронизации по последовательности символов «6F 72 6C»
Рисунок 9 |
При установке шаблона синхронизации сигнала SPI, осциллографы LeCroy имеют возможность задавать последовательности длиной до 8 символов, при этом заданная последовательность символов может содержать знаки «ХХ», означающие, что в месте присутствия этих символов контроль значений не производится. То есть, например, при поиске последовательности символов «6F ХХ 6C» осциллограф LeCroy зарегистрирует последовательности символов как «6F 72 6C», так и «6F АА 6C» поскольку второй символ в этой последовательности может принимать любое значение.
Сигналы SIOP и SSPI являются упрощенными модификациями протокола SPI и отличаются от него тем, что для протокола SIOP сигналы CPOL и CPHA могут иметь всего два значения, это CPOL = 1, CPHA = 1 и CPOL = 0, CPHA = 0 (номера режимов 1 и 4). Выбор кристалла для сигнала SIOP отсутствует.
Для протокола SSPI сигналы CPOL и CPHA могут иметь всего одно значение, это CPOL = 1, CPHA = 1 (номер режима 4). Выбор кристалла для сигнала SSPI так же отсутствует.
Применение 2-х канальных осциллографов LeCroy дает возможность декодирования одной физической последовательности сигналов SPI, SIOP и SSPI, поступающих на вход Канала 1 или Канала 2, с учетом того, что сигнал SPI не использует выбор кристалла. При использовании опции логического пробника MS-500, MS-250 или MS-32 2-х канальный осциллограф LeCroy может декодировать до 4 потоков сигналов SPI. В этом случае в качестве источника сигнала SPI и сигнала синхронизации может выступать любой из 32 каналов логического анализатора. Что так же не блокирует использование в качестве источников сигналов Канал 1 или Канал 2. Подробнее с этими опциями можно ознакомиться на https://prist.ru/main/news/020407.htm>http://prist.ru/main/news/020407.htm и http://www.lecroyscope.ru/index.php?page=ms-32>http://www.lecroyscope.ru/index.php?page=ms-32 . Применение 4-х канальных осциллографов LeCroy дает возможность декодирования до трех последовательностей сигналов SPI, SIOP и SSPI, поступающих на вход Канала 1, Канала 2, Канала 3 или Канала 4 цифрового осциллографа, а использование логических пробников значительно расширяет возможности декодирования сигналов SPI.
Часть 3: RS-232C, RS-422, RS-485 и UART
RS-232C - популярный асинхронный последовательный протокол, применяемый для связи компьютеров с модемами и другими периферийными устройствами. Его с большой уверенность можно отнести к самому «древнему» протоколу, используемому в компьютерной и периферийной технике с 1969 года. Стандарты RS-XXX являются условно стандартными, поскольку аббревиатура RS содержит «мягкое» слово «Recommended Standard» - «рекомендованный стандарт». Эти рекомендации исходят от американской организации EIA, но не смотря на это, ещё в советские годы RS-232 подобный стандарт описан в ГОСТ 18145-81.
Интерфейс RS-232C предусматривает передачу и приём информации по несимметричной линии, то есть сигнал передаётся относительно общего провода. Логической единице соответствует уровень -12 …-3В, логическому нулю +3…+12В.
При асинхронной передаче каждый символ (байт) пересылается отдельной посылкой. Посылка начинается со старт-бита, сигнализирующего приёмнику о начале посылки, за которым следуют биты данных и, возможно, бит паритета (чётности). Завершает посылку стоп-бит, гарантирующий паузу между посылками. Старт-бит следующей посылки посылается в любой момент после стоп-бита, за это режим и называется «асинхронный». Передатчик и приёмник работает на одной скорости передачи, самостоятельно вырабатывая внутренние стробирующие импульсы, в идеале располагающиеся на середине байта, что позволяет достоверно принимать информацию при незначительной рассинхронизации скоростей передатчика и приёмника. Пример сигнала передаваемого по интерфейсу RS-232 приведён на рисунке 1.
Рисунок 1 |
Количество бит. Количество бит данных в посылке может иметь значении от 5,6,7,8 или 9.Наиболее распространёнными являются 7 и 8 битные конфигурации.
Скорость передачи данных (bit rate). Скорость передачи информации по RS-232 измеряется в Бодах (отдавая должное методу телеграфии, так схожим с передачей данных по интерфейсу RS-232!) или бит/с. Стандартная скорость передачи, чаще всего составляет 9600 бит/с. Однако современное оборудование может поддерживать значительно более быстрые скорости передачи.
Чётность в RS-232 (Parity). При передаче по последовательному каналу контроль чётности может быть использован для обнаружения ошибок при передаче данных. При использовании контроля чётности посылаются сообщения подсчитывающие число единиц в группе бит данных. В зависимости от результата устанавливается бит чётности. Приёмное устройство также подсчитывает число единиц и затем сверяет бит чётности. Для обеспечения контроля чётности компьютер и устройство должны одинаково производить подсчёт бита чётности. То есть, определиться устанавливать бит при чётном (even), нечётном (odd) числе единиц или не производить контроль чётности вообще (none). При контроле на чётность биты данных и бит чётности всегда должны содержать чётное число единиц. В противоположном случае соответствует для контроля на нечётность. Часто в драйверах доступны ещё две опции на чётность: Mark и Space. Эти опции не влияют на возможность контроля ошибок. Mark означает, что устройство всегда устанавливает бит чётности в 1, а Space - всегда в 0. Проверка на чётность - это простейший способ обнаружения ошибок. Он может определить возникновение ошибок в одном бите, но при наличии ошибок в двух битах уже не заметит ошибок. Также такой контроль не отвечает на вопрос какой бит ошибочный. Другой механизм проверки включает в себя Старт и Стоп биты, циклические проверки на избыточность, которые часто применяются в соединениях Modbus.
Старт бит. Сигнальная линия может находится в двух состояниях: включена и выключена. Линия в состоянии ожидания всегда включена. Когда устройство или компьютер хотят передать данные, они переводят линию в состояние выключено - это установка Старт бита. Биты сразу после Старт бита являются битами данных.
Стоп бит. Стоп бит позволяет устройству или компьютеру произвести синхронизацию при возникновении сбоев. Например, помеха на линии скрыла Старт бит. Период между старт и стоп битами постоянен, согласно значению скорости обмена, числу бит данных и бита чётности. Стоп бит всегда включён. Если приёмник определяет выключенное состояние, когда должен присутствовать стоп бит, фиксируется появление ошибки. Стоп бит не просто один бит минимального интервала времени в конце каждой передачи данных. На компьютерах обычно он эквивалентен 1 или 2 битам, и это должно учитываться программе драйвера. Хотя, 1 стоп бит наиболее общий, выбор 2 бит в худшем случае немного замедлит передачу сообщения.
(Есть возможность установки значения стоп бита равным 1.5. Это используется при передаче менее 7 битов данных. В этом случае не могут быть переданы символы ASCII, и поэтому значение 1.5 используется достаточно редко).
Декодирование и анализ сигналов интерфейса RS-232 с применением осциллографов LeCroy можно разделить на две составляющие:
- Декодирование сигнала RS-232 с идентификацией всей его структуры.
- Регистрация определённых сигналов RS-232 в соответствии с заданными условиями.
Декодирование сигнала RS-232. Декодирование сигналов RS-232 сводится к выделению в общей структуре сигнала отдельных составляющих протокола перечисленных выше - старт-бит, данных, бита контроля чётности и стоп-бита. Так на рисунке 2 приведена типичная осциллограмма пакета данных интерфейса RS-232 и декодирования, при котором отображаются все элементы структуры протокола.
Рисунок 2 |
Исходный сигнал имеет следующие параметры:
- Скорость передачи 19,5 кбит/с;
- Количество бит – 8;
- Контроль чётности - нечётный (odd);
- Стоп бит – 1;
- Общая длина пакета составляет 11 бит.
На исходной осциллограмме С1 и, как более наглядно, на осциллограмме масштабирования Z1 цветовыми полями и соответствующими надписями выделяются вся структура посылки RS-232 – Старт, Данные, Контроль чётности, Стоп. В таблице декодирования отображаются все эти данные, включая временные метки начала следующего сообщения.
Декодирование самой передаваемой информации, в таблице декодирования представлено в двух областях. Первая область – колонка «Data», в которой информация может быть представлена в одном из трёх видов - двоичном, в виде нулей и единиц, шестнадцатеричном коде Hex и коде ASCII. В этом же коде информация отображается на исходной осциллограмме и всех её производных осциллограммах, например, осциллограмме растяжки. Вторая область – колонка «Symbol», в которой информация всегда отображается в коде ASCII. Поскольку интерфейс RS-232 изначально предназначался для передачи цифро-буквенной информации на периферийные устройства, отображающие эту информацию, то передача этой информации и происходит в кодировке ASCII. Дополнительно в колонке «Symbol» представлен код соответствующего символа из таблицы кодов ASCII. Так на рисунке 3 представлены осциллограммы сигнала RS-232 с декодированием в коде Hex.
Рисунок 3 |
Интерфейс RS-232 является двух направленным – передача и приём информации осуществляется по разным проводам и большой интерес при анализе и декодировании сигналов на шине RS-232 представляет одновременное декодирование сигналов от обоих устройств, участвующих в обмене информацией. Поскольку осциллографы LeCroy способны независимо декодировать до 4-х исходных сигналов, то решение такой задачи не представляет собой никаких трудностей. Так на рисунке 4 приведён пример обмена информацией между компьютером и цифровым осциллографом. По интерфейсу RS-232 компьютер посылает в осциллограф запрос на идентификацию – это команда «*IDN?», это верхняя осциллограмма С2. В ответ на запрос, осциллограф отправляет пакет, содержащий собственную идентификационную информацию тип осциллографа, серийный номер и версию ПО – это нижняя осциллограмма С1, пакет содержит информацию «GW,GDS-820S,…..». Верхняя таблица декодирования соответствует информации отображаемой осциллограммой С2, а нижняя - осциллограммой С1.
Рисунок 4 |
При возникновении любого рода ошибок при декодировании информации, осциллограф LeCroy будет маркировать эти пакеты красным цветом. Так на рисунке 5 приведён пример ошибок возникающих в пакете и детектируемых осциллографом при контроле чётности.
Рисунок 5 |
Как и в случае анализа информации при декодировании шин I2C и SPI, так и при декодировании протокола RS-232 представляется возможным производить поиск отдельных пакетов содержащих заданную информацию. При необходимости поиска в последовательности символа с заданными значениями, например «2D», в пиктограмме масштабирования в закладе «Просмотр RS-232» в кодировке Hex необходимо указать значение для поиска. При перемещении в направлении «Предшествующий» или «Следующий». Осциллограф LeCroy осуществляет поиск заданного значения, автоматически выделяет найденный символ в таблице декодирования, включает осциллограмму масштабирования (если она была выключена), центрирует её таким образом, чтобы символ занимал всю полезную часть экрана и выделяет найденный символ на основной осциллограмме (см. рис 6).
Рисунок 6 |
Аналогичным образом осуществляется и просмотр посылок, содержащих ошибки. Для этого необходимо выбрать режим «Следующая ошибка» и производить перемещение по «ошибкам» (см. рис. 7).
Рисунок 7 |
Регистрация сигналов RS-232 в соответствии с заданными значениями. Синхронизация сигналов RS-232 по заданным условиям, позволяет фиксировались в потоке данных только сигналы имеющие заданные значения, определённую заданную последовательность значений или соответствующую определённым условиям. Так на рисунке 7 приведён пример синхронизации по последовательности символов «56 32».
Рисунок 8 |
При установке шаблона синхронизации сигнала RS-232, осциллографы LeCroy имеют возможность задавать последовательности длиной до 12 байт, при этом заданная последовательность символов может содержать знаки «ХХ», означающие, что в месте присутствия этих символов контроль содержания не производится.
В качестве условий соответствия заданному шаблону, дополнительно можно задать 8 условий контроля данных, это:
- Равно;
- Не равно
- Больше;
- Меньше;
- Больше или равно;
- Меньше или равно;
- Находится в пределах;
- Находится за пределами.
Так, на пример на рисунке 9 приведен пример отображения пактов сообщений от цифрового осциллографа, осуществляющего несколько типов амплитудных и временных измерений входного сигнала. Из последовательности передаиваемой информации необходимо выделить только информацию об измерении амплитудных параметров сигнала. Идентификатором сообщений содержащих результаты амплитудных измерений является символ «mV» (в коде ASCII) в конце результата, сам же результат может принимать любые значения. В коде Hex последовательность символов «mV» имеет значение «6D 56», это значение и задаётся в поле поиска. При условии «32 XX XX 6D 56» (что соответствует значению «2ХХmV» в коде ASCII) синхронизация осциллографа будет происходить только по значениям измерения напряжения и только в диапазоне напряжений от 200 мВ до 299 мВ. Демонстрация этого примера приведена на рисунке 9.
Рисунок 9 |
При установке шаблона синхронизации сигнала RS-232, осциллографы LeCroy имеют возможность задавать последовательности длиной до 12 байт. При этом надо особо отметить, что другие условия контроля, такие как больше, меньше, находится за пределами и другие, не имеют возможности содержания в своём составе комбинации символа «ХХ» (не контролировать).
Поскольку информация в осциллограмме, захваченной осциллографом LecRoy и подлежащая декодированию, может повторяться многократно в пределах одного цикла захвата, как, например, на рисунке 9 сообщение «mV» повторяется как минимум два раза, но запуска развёртки осциллографа каждый раз происходит при обнаружении первого сообщения содержащих данные «mV», при этом все последующие сообщения «mV» игнорируются. При разработке и отладке устройств передающих информацию по интерфейсу RS-232 такой алгоритм анализа иногда не позволяет точно определить причину возникновения дефекта. Установка параметра «Положение байт» в меню синхронизации позволяет фиксировать сообщение, удовлетворяющее заданным условиям, что значительно расширяет возможности сбора и анализа пакетов сообщений RS-232. Максимальное число положений сообщений составляет 2047.
Синхронизация по ошибкам чётности. Синхронизация по ошибкам чётности сигналов RS-232, позволяет фиксировались в непрерывном потоке данных только сигналы содержащие искажения и фиксируемые алгоритмом контроля чётности интерфейса RS-232.
Применение 2-х канальных осциллографов LeCroy даёт возможность исследования одного интерфейса RS-232, осуществляющего по одному проводу передачу информации, а по другому проводу приём информации и одновременного декодирования как сигнала передачи, так и сигналов приёма. При использовании опции логического пробника MS-500, MS-250 или MS-32 2-х канальный осциллограф LeCroy может декодировать не только до 4 потоков сигналов RS-232, но и производить отображение других логических и аналоговых сигналов. Подробнее с этими опциями можно ознакомиться на https://prist.ru/main/news/020407.htm>https://prist.ru/main/news/020407.htm и http://www.lecroyscope.ru/index.php?page=ms-32>http://www.lecroyscope.ru/index.php?page=ms-32 . Применение 4-х канальных осциллографов LeCroy даёт более широкие возможности отображения числа аналоговых сигналов, возможности декодирования при этом не расширяются.
Интерфейс RS-422 – можно отнести к разновидности интерфейса RS-232, с той разницей, что при подключении устройств используется симметричная линия снижающая уровень помех (напомним, что у интерфейса RS-232, подключение производилось по несимметричной линии). Принципиальным отличием является, то, что приёмники могут переключаться в третье состояние, это позволяет размещать на шине 1 передатчик и до 10 приёмников.
Интерфейс RS-485 – отличается от интерфейса RS-422 может иметь на шине 32 устройства, как передатчиков так и приёмников.
Отличий в анализе и декодировании сигналов интерфейсов RS-232, RS-422 и RS-485 нет. Общий вид доступных для анализа и декодирования протоколов представлен на рисунке 10.
Рисунок 10 |
Интерфейс UART (Uuniversal Asynchronous Rreceiver/Ttransmitter) – так же можно отнести к разновидности интерфейса RS-232, с той разницей, что он является наиболее «полной» его разновидностью. Скорость передачи данных по интерфейсу UART может достирать до 2764800 бит/с. Принципиальными отличиями в структуре интерфейса UART является то, что если в интерфейс RS-232 значение «Стоп-бит» могло принимать значения 1; 1,5 и 2, то интерфейс UART имеет значения «Стоп-бит» только 1 и 2. Дополнительно в интерфейсе UART добавлено понятие «Направление бит» и «Уровень холостого хода». Направление бит означает какие биты информации передаются первыми – старшие (MSB) или младшие (LSB). Уровень холостого хода, в отличие от интерфейса RS-232, в котором при отсутствии передачи информации, уровень на шине принимает низкое значение или уровень логического нуля, в интерфейсе UART при отсутствии передачи информации, уровень на шине может принимать как низкое значение (уровень логического нуля), так и высокое значение (уровень логической единицы). Некоторое различия в конфигурировании интерфейса UART по отношению к интерфейсу RS-232 приведены на рисунке 11.
Рисунок 11 |
При передаче и приёме информации по интерфейсу UART, а так же при декодировании передаваемых данных, с применением осциллографов LeCroy вводится понятие «Break» - «Перерыв». Состояние перерыва (или прерывания) идентифицируется приёмником, для индикации «неподвижного» состояния при функционировании системы, при времени большем, чем необходимо для передачи символа. Это одновременно является идентификатором того, что приёмник в этот момент времени может выполнять как-то другие задачи и не готов к приёму информации. Так на рисунке 12 приведён пример идентификации двух состояний «Break», длина одного- 40 единичных символов, другого - 701 символ.
Рисунок 12 |
В отношении других процессов декодирования и настроек синхронизации по заданным параметрам, декодирование данных передаваемых по интерфейсу UART абсолютно аналогично интерфейсу RS-232, описанному выше.
Автор: Дедюхин А.А.
Дата публикации: 25.06.2007
У нас представлены товары лучших производителей
ПРИСТ предлагает оптимальные решения измерительных задач.
У нас вы можете купить осциллограф, источник питания, генератор сигналов, анализатор спектра, калибратор, мультиметр, токовые клещи, поверить средства измерения или откалибровать их. Также мы поставляем паяльно-ремонтное оборудование, антистатический инструмент, промышленную мебель. Мы имеем прямые контракты с крупнейшими мировыми производителями измерительного оборудования, благодаря этому можем подобрать то оборудование, которое решит Ваши задачи. Имея большой опыт, мы можем рекомендовать продукцию следующих торговых марок:
Внимание! Отсутствие ошибок и опечаток не гарантируется. В технические характеристики средств измерений неутвержденного типа производителем могут быть внесены изменения без предварительного уведомления. Соответствие важных параметров требует уточнения. Полные технические характеристики предоставляются по отдельному запросу. Нашли ошибку? Выделите мышкой и нажмите Ctrl+Enter.