Отладка встроенных систем с помощью осциллографа смешанных сигналов

№ 4’2009
PDF версия
Сегодня разработчики сталкиваются со все более увеличивающейся сложностью систем. Типичный пример проекта со встроенными системами может включать различные аналоговые сигналы, быстрые и медленные последовательные интерфейсы передачи данных, а также шины микропроцессора. Последовательные протоколы часто используются для передачи данных от чипа к чипу, однако они не всегда могут заменить параллельные шины. Статья объясняет как произвести отладку встроенных систем с помощью осциллографа.

Введение

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

Микропроцессоры, ПЛИСы (FPGA), аналого-цифровые (АЦП) и цифро-аналоговые
(ЦАП) преобразователи являются примерами тех устройств, которые вызывают сегодня проблемы при измерении сигналов
в схемах со встроенными системами. Возможно, инженеру будет необходимо декодировать шину SPI, соединяющую две микросхемы, наблюдая одновременно вход
и выход аналого-цифрового преобразователя (АЦП) на одной системной плате. Пример такой системы со смешанными сигналами показан на рис. 1.

Рис. 1. Исследуемая система со смешанными сигналами

Отладка аппаратных средств, показанных
на рис. 1, является достаточно трудной задачей для разработчика, у которого есть только осциллограф с 4 аналоговыми каналами.
С помощью логического анализатора можно
исследовать большое количество цифровых
сигналов, однако он слишком сложен в настройке и обучении. К счастью, новый класс осциллографов для работы со смешанными
сигналами (MSO) может успешно решать
данные задачи. MSO объединяет в себе функциональные возможности логического анализатора и производительность обычного
цифрового осциллографа.

Использование MSO
для одновременной отладки
нескольких последовательных
протоколов

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

Разработчики часто нуждаются в возможности декодировать и отображать различные
последовательные шины с одновременной
корреляцией их по времени. Современный
MSO обеспечивает запуск и декодировку по
последовательным и параллельным шинам
с помощью дополнительных 16 цифровых
каналов. В следующем примере MSO использовали, чтобы произвести отладку комплекса со встроенными системами (рис. 1), где
возникла ошибка передачи.

В начальной стадии отладки системы иногда возникали такие условия, которые приводили к отказу, что, в свою очередь, определялось по контрольным светодиодам. Системный инженер не был уверен в том, что стало
причиной данной проблемы: аппаратная
часть схемы или программное обеспечение.
Он предполагал, что ошибка могла возникнуть
не только из-за некорректной работы мультиплексора, и решил произвести подробный
анализ системы, исследуя аналоговые входы
мультиплексора и несколько цифровых шин.
Осциллограф MSO был подключен к схеме
с помощью 4 аналоговых и 16 цифровых каналов, маркированными точками 1–4 (рис. 2).

Рис. 2. Пример исследуемой системы с указанными контрольными точками

Рис. 3. Отображение на экране MSO4000 шин I2C, SPI параллельно,
одновременно с аналоговым сигналом

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

После того как данные I2C были переданы,
инженер заметил активность на шине SPI
и промаркировал соответствующие события
как D1 и D2. Деятельность по этим шинам
была подозрительна, потому что выполняемая функция должна была инициализировать работу LCD-контроллера. Поскольку
MSO уже произвел декодирование данных
шины I2C, разработчик увидел, что микропроцессор произвел запись по адресу 0x77,
который, в свою очередь, является адресом
ПЛИС, тогда как исходная процедура должна была обратиться по адресу 0х76, что соответствует LCD-контроллеру.

На рис. 4 отображены те же самые сигналы, что и на рис. 3, отмасштабированные для
большей наглядности. Данные SPI декодированы на экране как записанные в направлении передачи от ПЛИС к мультиплексору со
значением данных 0x15. Эта команда SPI привела к изменению входа мультиплексора и,
соответственно, пути следования сигнала.

Рис. 4. Для масштабирования и детального просмотра
передаваемых по шине пакетов используется WaveInspector

Это привело к тому, что ПЛИС отправляет код ошибки по параллельной шине к контрольным светодиодам. Активность по сигналу D2, показывающая код ошибки и декодировку параллельной шины, можно увидеть
на рис. 4.

С помощью MSO, позволяющего рассмотреть и декодировать одновременно все интересующие сигналы, разработчик проекта
смог быстро определить, что ошибка программного обеспечения вызвала сбой в системе. Программист по ошибке адресовал данные пакета I2C от микроконтроллера к ПЛИС
вместо LCD-контроллера.

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

После исправления ошибок в программном обеспечении разработчик проекта продолжил исследовать функциональные возможности системы, в ходе чего обнаружил
возникновение случайных ошибок, о чем свидетельствовали контрольные светодиоды.
В отличие от ошибки, описанной в предыдущем разделе, разработчик не знал, как воспроизвести ошибки, которые он видел. Они были
случайны и не могли быть отнесены к специфической функции или подпрограмме системы, что существенно затрудняло начало поиска причины их возникновения. Единственная
возможность состояла в том, чтобы с помощью осциллографа провести исследование
всей системы в надежде захватить случайное
событие. Хотя разработчик и использовал этот
метод ранее, он знал, что сконфигурированный должным образом MSO, подключенный
ко всем интересующим сигналам, способен
найти ошибку за значительно меньшее время. MSO был все еще подключен к точкам на
плате, которые интересовали разработчика
при поиске предыдущей ошибки. Пробник
с канала 1 подключили на активный вход
мультиплексора, который является цифровым сигналом от 3-го датчика. В дополнение
к 4 подключенным точкам будет использован цифровой канал для подключения к выходу мультиплексора.

Сообщение об ошибке ПЛИС передает по
3-битовой параллельной шине (значение
0x7). Чтобы определить проблему, MSO был
сконфигурирован таким образом, чтобы
произвести однократный запуск по событию, переданному по параллельной шине со
значением 0x7.

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

Рис. 5. Белые фронты на MUX_OUT указывают, что присутствует больше деталей

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

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

Рис. 6. WaveInspector позволил обнаружить глитч на сигнале MUX_OUT

На рис. 6 показана корреляция между аналоговыми и цифровыми каналами в MSO.

Сигнал на входе мультиплексора показан
на канале 1 (SENSOR_3), в то время как сигнал с его выхода показан на цифровом канале D14 (MUX_OUT). Разработчик заметил,
что хотя сигнал на выходе имеет глитч, на входе мультиплексора он отсутствует.

После идентификации глитча на цифровом канале инженер решил провести его детальное исследование, подключив второй
аналоговый канал на выход мультиплексора.
На рис. 7 представлен полученный результат
с помощью MSO, сконфигурированный на
запуск по значению 0x7 параллельной шины.
Осциллограммы шин SPI и I2C не показаны
на рис. 7 — для более детального отображения интересующих сигналов.

Рис. 7. Канал 2 более детально отображает MUX_OUT

При использовании аналоговых пробников на входе и выходе MUX ясно, что глитч
присутствует только на входе. На рис. 7 видно, что глитч на сигнале MUX_OUT появил-
ся на коротком промежутке времени, прежде
чем ПЛИС отправил код ошибки. Временное
соотношение между двумя этими сигналами
показало, что глитч и мог быть той проблемой, которую наблюдал разработчик.

После изучения осциллограмм на экране
осциллографа MSO разработчик проекта стал
подозревать, что перекрестные помехи стали
причиной возникновения глитча. Ни один из
сигналов, которые разработчик наблюдал
на рис. 5, не был идентифицирован как источник перекрестной помехи. Исследуя топологию печатной платы более подробно, инженер нашел переходное отверстие, расположенное рядом с трассой сигнала MUX_OUT.
Подключив пробник первого канала к этому
переходу, он снова запустил осциллограф по
параллельной шине. Результат представлен на
рис. 8, где видно, что переход сигнала из низкого состояния в высокое, захваченный на первом канале, происходит одновременно с положительным глитчем на сигнале MUX_OUT.
Соответственно, переход от высокого состояния к низкому непосредственно связан с отрицательным глитчем на сигнале MUX_OUT.

Рис. 8. Канал 1 показывает источник перекрестной наводки на сигнале MUX_OUT

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

Рис. 9. Модификация печатной платы удаляет перекрестную наводку

Выводы

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *