Тревор СМИТ (Trevor SMITH) Перевод: Роман КЕРНАСОВСКИЙ
pribor@pribor.ru
Отладка встроенных систем
с помощью осциллографа смешанных сигналов
Введение
Сегодня разработчики сталкиваются со все более увеличивающейся сложностью систем. Типичный пример проекта со встроенными системами может включать различные аналоговые сигналы, быстрые и медленные последовательные интерфейсы передачи данных, а также шины микропроцессора. Последовательные протоколы часто используются для передачи данных от чипа к чипу, однако они не всегда могут заменить параллельные шины.
Микропроцессоры, ПЛИСы (БРОЛ), аналого-цифровые (АЦП) и цифро-аналоговые (ЦАП) преобразователи являются примерами тех устройств, которые вызывают сегодня проблемы при измерении сигналов в схемах со встроенными системами. Возможно, инженеру будет необходимо декодировать шину ЭРГ, соединяющую две микросхемы, наблюдая одновременно вход и выход аналого-цифрового преобразователя (АЦП) на одной системной плате. Пример такой системы со смешанными сигналами показан на рис. 1.
Отладка аппаратных средств, показанных на рис. 1, является достаточно трудной задачей для разработчика, у которого есть только осциллограф с 4 аналоговыми каналами. С помощью логического анализатора можно исследовать большое количество цифровых сигналов, однако он слишком сложен в настройке и обучении. К счастью, новый класс осциллографов для работы со смешанными сигналами (МЭО) может успешно решать данные задачи. МЭО объединяет в себе функциональные возможности логического анализатора и производительность обычного цифрового осциллографа.
Использование MSO для одновременной отладки нескольких последовательных протоколов
Последовательные протоколы передачи данных, такие как 12С и ЭР1, часто используются для упрощения передачи данных между блоками системы на печатной плате. Обыкновенные осциллографы не позволяли легко отладить их внедрение. Разработчики зачастую были вынуждены вручную декоди-
ровать полученные данные. Если бы осциллограф мог автоматически декодировать последовательные интерфейсы, то это сократило бы процесс отладки в несколько раз.
Разработчики часто нуждаются в возможности декодировать и отображать различные последовательные шины с одновременной корреляцией их по времени. Современный МЭО обеспечивает запуск и декодировку по последовательным и параллельным шинам с помощью дополнительных 16 цифровых каналов. В следующем примере МЭО использовали, чтобы произвести отладку комплекса со встроенными системами (рис. 1), где возникла ошибка передачи.
В начальной стадии отладки системы иногда возникали такие условия, которые приводили к отказу, что, в свою очередь, определялось по контрольным светодиодам. Системный инженер не был уверен в том, что стало причиной данной проблемы: аппаратная часть схемы или программное обеспечение. Он предполагал, что ошибка могла возникнуть не только из-за некорректной работы мультиплексора, и решил произвести подробный анализ системы, исследуя аналоговые входы мультиплексора и несколько цифровых шин. Осциллограф М80 был подключен к схеме с помощью 4 аналоговых и 16 цифровых каналов, маркированными точками 1-4 (рис. 2).
!ад/\ала/\/\/\/\/\/\/| 2 " 11 !Е 2Е
1: 1 Г-1 > 1 1 1 1 1
»шиш» 2 —к— —«-
рр| ** *И1 МОЯ 1 пш си • ■ (О ЗООтУ 1 [ 200ц )»»•» |ст 1,1 »т» [М.:;
Рис. 3. Отображение на экране MSO4000 шин ГС, SPI параллельно, одновременно с аналоговым сигналом
Рис. 4. Для масштабирования и детального просмотра передаваемых по шине пакетов используется WaveInspectoг
На рис. 3 приведен снимок с экрана осциллографа М80 при одновременном исследовании шины вР1 (1), шины 12С (2), 3-битной параллельной шины (3) и аналогового входа (4). Так как ошибка могла быть отнесена к специфической подпрограмме, Мв0 был сконфигурирован таким образом, чтобы выделить то событие, которое вызвало некорректную работу последовательной шины 12С. Установка глубины записи в 1 млн точек гарантирует, что вся полезная информация вокруг события запуска с шины 12С будет полностью захвачена. Инженер управлял подпрограммой и одновременно наблюдал за откликом системы на экране осциллографа. Чистая аналоговая форма сигнала на входе мультиплексора, отображенная на первом канале, подтвердила мнение разработчиков
о том, что с ним все в порядке, и ошибку стоит искать в другом месте. М80 произвел запуск по шине 12С и декодирование потока данных, переданных от микропроцессора.
После того как данные 12С были переданы, инженер заметил активность на шине вР1 и промаркировал соответствующие события как Б1 и Б2. Деятельность по этим шинам была подозрительна, потому что выполняемая функция должна была инициализировать работу ЬСБ-контроллера. Поскольку М80 уже произвел декодирование данных шины 12С, разработчик увидел, что микропроцессор произвел запись по адресу 0x77, который, в свою очередь, является адресом ПЛИС, тогда как исходная процедура должна была обратиться по адресу 0х76, что соответствует ЬСБ-контроллеру.
На рис. 4 отображены те же самые сигналы, что и на рис. 3, отмасштабированные для большей наглядности. Данные вР1 декодированы на экране как записанные в направлении передачи от ПЛИС к мультиплексору со значением данных 0x15. Эта команда вР1 привела к изменению входа мультиплексора и, соответственно, пути следования сигнала.
Это привело к тому, что ПЛИС отправляет код ошибки по параллельной шине к контрольным светодиодам. Активность по сигналу Б2, показывающая код ошибки и декодировку параллельной шины, можно увидеть на рис. 4.
С помощью М80, позволяющего рассмотреть и декодировать одновременно все интересующие сигналы, разработчик проекта смог быстро определить, что ошибка программного обеспечения вызвала сбой в системе. Программист по ошибке адресовал данные пакета 12С от микроконтроллера к ПЛИС вместо ЬСБ-контроллера.
Диаграмма логических состояний следующего поколения легко позволяет находить проблемы
После исправления ошибок в программном обеспечении разработчик проекта продолжил исследовать функциональные возможности системы, в ходе чего обнаружил возникновение случайных ошибок, о чем свидетельствовали контрольные светодиоды. В отличие от ошибки, описанной в предыдущем разделе, разработчик не знал, как воспроизвести ошибки, которые он видел. Они были случайны и не могли быть отнесены к специфической функции или подпрограмме системы, что существенно затрудняло начало поиска причины их возникновения. Единственная возможность состояла в том, чтобы с помощью осциллографа провести исследование всей системы в надежде захватить случайное событие. Хотя разработчик и использовал этот метод ранее, он знал, что сконфигурированный должным образом Мв0, подключенный ко всем интересующим сигналам, способен найти ошибку за значительно меньшее время. Мв0 был все еще подключен к точкам на плате, которые интересовали разработчика при поиске предыдущей ошибки. Пробник с канала 1 подключили на активный вход
мультиплексора, который является цифровым сигналом от 3-го датчика. В дополнение к 4 подключенным точкам будет использован цифровой канал для подключения к выходу мультиплексора.
Сообщение об ошибке ПЛИС передает по 3-битовой параллельной шине (значение 0x7). Чтобы определить проблему, Мв0 был сконфигурирован таким образом, чтобы произвести однократный запуск по событию, переданному по параллельной шине со значением 0x7.
На рис. 5 можно увидеть захваченный сигнал. В этом случае, произведя запуск и декодирование по параллельной шине, мы смогли легко определить ошибку, значительно сэкономив время, потому что нам были известны условия для запуска прибора. Память
1 млн точек, задействованная осциллографом во время эксперимента, позволила разработчику наблюдать ключевые детали сигнала как до, так и после запуска.
На первый взгляд, с сигналами, показанными на рис. 5, все в порядке, но разработчик схемы смог быстро определить два перехода на сигнале МИХ_0ИТ, которые отличались от других. Белые переходы на сигнале МиХ_0иТ, показанные на рис. 5, являются свидетельством того, что для данной части сигнала существует больше информации.
Способность М80 выделять отдельные области захваченной осциллограммы, в которых изменение масштаба отображения приводит к более детальному изучению сигнала с возможностью нахождения более высокочастотных помех, уникальна для данного прибора. На рис. 6 показано детальное отображение первого белого перехода. Та часть сигнала, которая была обозначена как белый переход на рис. 5, фактически является глит-чем на сигнале МИХ_0ИТ.
На рис. 6 показана корреляция между аналоговыми и цифровыми каналами в Мв0.
Jaw*-, W W W W ,w W W W W W W W * W W W W W
І /*І /1 ЛЛЛЛЛАЛЛЛЛЛЛЛЛ /V
: I I I J flffi
mux. out' —■• 1—;
_i—і__гтшАг-
■WwiV,1«
ЛЛЛЛЛЛЛЛЛЛЛ ЛЛЛЛЛЛЛЛЛ
LJ lull L L к H
ІЦХ oul ^ 4to ** ** *M *' * ,V ^ * '
£___Z_______і_______Z_______1
Рис. 8. Канал 1 показывает источник перекрестной наводки на сигнале MUX_OUT
Сигнал на входе мультиплексора показан на канале 1 (8Е№ОК_3), в то время как сигнал с его выхода показан на цифровом кана-
ле Б14 (МиХ_ОиТ). Разработчик заметил, что хотя сигнал на выходе имеет глитч, на входе мультиплексора он отсутствует.
После идентификации глитча на цифровом канале инженер решил провести его детальное исследование, подключив второй аналоговый канал на выход мультиплексора. На рис. 7 представлен полученный результат с помощью MSO, сконфигурированный на запуск по значению 0x7 параллельной шины. Осциллограммы шин SPI и I2C не показаны на рис. 7 — для более детального отображения интересующих сигналов.
При использовании аналоговых пробников на входе и выходе MUX ясно, что глитч присутствует только на входе. На рис. 7 видно, что глитч на сигнале MUX_OUT появился на коротком промежутке времени, прежде чем ПЛИС отправил код ошибки. Временное соотношение между двумя этими сигналами показало, что глитч и мог быть той проблемой, которую наблюдал разработчик.
После изучения осциллограмм на экране осциллографа MSO разработчик проекта стал подозревать, что перекрестные помехи стали причиной возникновения глитча. Ни один из сигналов, которые разработчик наблюдал
на рис. 5, не был идентифицирован как источник перекрестной помехи. Исследуя топологию печатной платы более подробно, инженер нашел переходное отверстие, расположенное рядом с трассой сигнала МИХ_ОИТ. Подключив пробник первого канала к этому переходу, он снова запустил осциллограф по параллельной шине. Результат представлен на рис. 8, где видно, что переход сигнала из низкого состояния в высокое, захваченный на первом канале, происходит одновременно с положительным глитчем на сигнале МИХ_ОИТ. Соответственно, переход от высокого состоя-
ния к низкому непосредственно связан с отрицательным глитчем на сигнале МИХ_ОИТ.
После перетрассировки печатной платы и исправления критичных сигналов разработчик снова подключил М8О в режиме запуска по первому каналу для проведения повторного исследования. На рис. 9 видно, что глитч на сигнале МИХ_ОИТ больше не наблюдается. Соответственно, на параллельной шине ошибка больше не возникала. Модификация платы удалила перекрестную помеху и позволила разработчику проекта закончить испытания системы.
Выводы
Осциллографы смешанных сигналов — чрезвычайно мощные инструменты для инженеров, занимающихся разработкой и отладкой встроенных систем. М80 объединяет в себе коррелированные по времени цифровые каналы, интуитивный интерфейс и привычную работу аналогового осциллографа. Теперь, вместо того, чтобы искать многоканальные осциллографы или изучать, как управлять логическим анализатором, инженеры могут использовать Мв0. ■