Научная статья на тему 'Применение осциллографов для отладки последовательных шин'

Применение осциллографов для отладки последовательных шин Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
927
114
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бек Дуг

Последние достижения в технологиях осциллографических измерений позволяют инженерам отлаживать последовательные шины, наблюдая сигналы в аналоговой и цифровой форме. В сущности, современные осциллографы сочетают в себе функции осциллографов, логических анализаторов и анализаторов протоколов. Это значит, что инженерам не нужно больше тратить время на сопоставление результатов, полученных разными приборами. Новые возможности позволяют выполнять наиболее общие операции по отладке последовательных шин для широкого спектра протоколов, таких как I2C, SPI, RS-232, USB и PCI-Express.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Применение осциллографов для отладки последовательных шин»

Применение осциллографов

для отладки последовательных шин

Дуг БЕК (Doug BECK)

Последние достижения в технологиях осциллографических измерений позволяют инженерам отлаживать последовательные шины, наблюдая сигналы в аналоговой и цифровой форме. В сущности, современные осциллографы сочетают в себе функции осциллографов, логических анализаторов и анализаторов протоколов. Это значит, что инженерам не нужно больше тратить время на сопоставление результатов, полученных разными приборами. Новые возможности позволяют выполнять наиболее общие операции по отладке последовательных шин для широкого спектра протоколов, таких как 12С, БР1, РБ-232, ивВ и PCI-Express.

Введение

Например, осциллографы серии Agilent Infiniium 9000 обладают важнейшими функциями анализаторов протоколов, такими как список декодирования и запуск по условиям протоколов. Однако неизбежно встает справедливый вопрос: «Если уже есть анализаторы протоколов, зачем нужны эти возможности в осциллографах?»

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

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

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

обычно используют ретрансляцию и пере-синхронизацию. При возникновении проблем физического уровня анализатор протоколов может их замаскировать.

И наконец, осциллографы поддерживают широкий спектр протоколов, таких как I2C, SPI, RS-232, USB и PCI-Express. Поэтому осциллограф не просто заменяет один анализатор протоколов: он заменяет несколько анализаторов. Инженерам часто приходится самим декодировать сигналы при отсутствии под рукой нужного анализатора протоколов. Теперь новые возможности осциллографов позволяют раз и навсегда избавиться от этого сложного процесса.

Основные возможности

Для отладки последовательных шин необходимы функции декодирования и запуска. В зависимости от протоколов «декодирование» может иметь разный смысл. Например, для скоростных последовательных протоколов, таких как PCI-Express, декодирование может означать все — от выделения присутствующих в сигнале символов до составления перечня пакетов. Для более медленных протоколов, таких как SPI, результатом декодирования является список передаваемых значений.

Декодирование встроенной информации

При этом виде декодирования на дисплее осциллографа происходит наложение декодированной информации и разметки символов на развертку сигнала. Это позволяет очень точно сопоставлять форму сигналов с декодированными значениями. Анализаторы протоколов такой возможностью не обладают. Кроме того, эта возможность решает общую проблему «ручного» декодирования сигналов. (Может показаться странным, но многие инженеры говорят, что постоянно делают это на осциллографе.) Пример работы этой функции в осциллографе серии Agilent Infiniium 9000 приведен на рис. 1.

Обратите внимание, что для скоростных протоколов функция декодирования встроенной информации может декодировать символы (например, символы 8B/10B) или пакеты. Это два разных уровня абстракции. Пример встроенных символов приведен на рис. 2.

Список декодирования

Режим отображения списка является очень полезным способом отображения данных, поскольку он отображает весь пакет в одной строке, как показано на рис. 3. Именно та-

f! S

' J 1 í

U А И га

I . **р*

Рис. 2. Пример декодирования встроенных символов 8В/^

кой способ представления используется в анализаторах протоколов. Однако осциллограф позволяет сопоставлять форму сигналов с выбранным пакетом. Заметьте, что на рис. 3 имеется выделенный пакет (отмечен синим цветом) и синяя линия на сигнале, показывающая соответствующий фрагмент сигнала.

Во многих случаях информацию удобно представить в виде таблицы. Наиболее очевидным примером являются полезные данные, которые могут содержать лишь пару или дюжину байтов. Для отображения полезной информации используйте вкладку Payload («Полезные значения»), показанную на рис. 4. Она показывает все байты полезных значений (в данном случае на скоростной шине USB) вместе с символами ASCII. Отдельная таблица полезных значений очень удобна, так как позволяет отобразить всю полезную информацию, независимо от ее длины. Кроме того, пользователи могут выбирать удобную им систему счисления (шестнадцатеричную, двоичную или десятичную).

Когда мы изучали, какие способы представления последовательных данных предпочитают инженеры, то обнаружили, что одним форматом они не обходятся. Автор показывал инженерам несколько форматов и спрашивал, какой из них они предпочитают. Никто никогда не останавливался на одном формате, выбирая сразу все. При этом они утверждали, что ни один способ представления данных не охватывает всех ситуаций, и поэтому им нужны разные форматы для достижения максимальной гибкости. Для работы с некоторыми, относительно простыми протоколами, такими как I2C, RS-232 или SPI, достаточно простого списка пакетов или таблицы полезных значений. Но скоростные протоколы, такие как PCI-Express, SATA, SAS и MIPI, требуют более разнообразных способов представления данных.

Одним из форматов, который необходим пользователям, была представленная на рис. 5 таблица заголовков. Эта таблица показывает разбитые на поля заголовки в формате, близком к тому, что используется в спецификации протоколов. Представление данных в том формате, в котором их изучали инженеры, очень важно.

Другим форматом, который хотели видеть инженеры, было иерархическое представление, расположенное на вкладке Details («Подробности»). Такое представление данных отражает иерархическую структуру протоколов (например, поля разных уровней протоколов). Пример такого представления

показан на рис. 6, где четко видны физический уровень, канальный уровень и уровень протоколов.

И последним, но не менее важным вариантом представления информации был режим отображения в виде символов. Его пример показан на рис. 7.

Запуск

Изучая применение осциллографов для отладки последовательных протоколов, мы спрашивали инженеров, что для них важнее: декодирование последовательных данных или запуск по ним? Многие из них затруднялись ответить, поскольку для отладки последовательных шин и то и другое очень важно. В конце концов, какой смысл разглядывать осциллограмму, если нельзя найти то, что интересует? Вот почему осциллографы предлагают и декодирование, и запуск.

Рис. 3. Список декодирования пакетов, коррелированный с сигналом

Рис. 4. Таблица полезных значений показывает значительно больше информации, чем может поместиться в одном столбце

_ Pie«.«* IS Ряда iflj pjyfaatfl И

Мгв

Мімі і Р м и Л Гм Где Я і: а ы № ем ЬгщМяФ ГМ1. і « ц..г—Fknt.*Jr4 i:ni|^ MO № ■î i j і » î t :■ і j ï M IC EP J* h M 9 3 H ïfl irnoi E Г m [>l ГГЯ|І| Щ~ Drt MI2 іНІШ'МІЛЯїНі № Ні зуш 1D (ktC

ыошм

0 ЭКЛЧ F| ttiji f Diífliay Fermai \

V, .

1 заці'з-

Swp-.,

___

Рис. 5. Представление заголовка пакета в формате, соответствующем формату, используемому в спецификации протоколов

Syflrtbdi І Рдйаі Ш 0#Ш Я Payload 1Ш

FCi Елзтеї рккй m "Очглеі і' listing Jndes ? і FhpttiJ

Йд1 Symbol • STP EufeLk*

Rwtfned * О He*

Stfijroc Numb*- - ffi He*

Тглпйлсіїоп

RwervHfl * 0 Hex Frirt - JOft heeder, tftfi data IflK * СошрІсПоп й-tJ» №Із Reserved? * 0 Hex TC - TDD te«r¥ied3 - 0 He TD- ІІ^Е^адРпиитї ЄР - TIP Ntt Poisoned Ann із. К« - Drfbl ftnfcrlro, BH'iiirt irtnflp Rs«rvtd4 «0 He Lertftil - CCl h№

Q*npflrtftr ГО - 04 DO Hnt Complete*! SMus ■ SoccessM CompleUcri (SO &>t* cw t*gdffi^d - a h»t___________________

Щ

ESw.fw* f

Г if my Ftimj*

■hfc "-"I

L.*Wv ]

>afLh

Star.,.

Рис. 6. Вкладка Details

Рис. 7. Пример списка символов

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

Рис. 10. Окно представления в виде битов показывает «побитное» определение условий запуска

Рис. 8. Запуск по всем пакетам USB, содержащим маркер №

ного типа. Пример такого запуска приведен на рис. 8.

Тем не менее можно привести много примеров, когда простого запуска по типу пакета оказывается недостаточно. Важно иметь возможность запуска по конкретным полям внутри пакета, как это позволяют делать анализаторы протоколов. Пример запуска по конкретным данным и адресам шины I2C приведен на рис. 9.

В ходе исследований мы установили, что инженеры хотят не только использовать пакеты и поля для запуска, но и желают видеть точное определение условия запуска. Именно этой цели и служит показанное на рис. 10 диалоговое окно View as Bits («Представление в виде битов»).

Рис. 9. Запуск по чтению адреса 50 с данными 41 47 49 на шине I2C

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

Рис. 11. Пример последовательности символов

кой последовательности приведен на рис. 11. Она начинается с кода K (SDP) и заканчивается кодом K (END), а в остальной части последовательности используются значения данных.

Настройка на анализ последовательной шины

Настройка осциллографа на анализ последовательной шины может быть достаточно непростой задачей. Существует множество параметров, которые нужно точно определить для правильного запуска осциллографа и декодирования сигнала последовательной шины. Эти параметры включают скорость обмена, глубину памяти, уровни запуска, пороги измерений и способ восстановления тактовой частоты (только для скоростных шин). Для упрощения этой процедуры осциллографы серии Agilent 9000 имеют кнопку «Автонастройка», которая автоматически устанавливает все необходимые параметры.

Частота дискретизации

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

Глубина памяти

Другим важным параметром является глубина памяти. Слишком большая глу-

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

Уровень запуска Этот параметр знаком всем пользователям осциллографов, поскольку применяется практически во всех вариантах запуска. Запуск осциллографа в случае использования сигналов последовательных шин работает почти всегда хорошо, если уровень запуска настроен на средний уровень амплитуды сигнала. Уровень запуска, вероятно, является самым простым параметром, с которым приходится сталкиваться при отладке последовательных шин.

Пороги измерений

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

осциллографы Agilent 9000, при нажатии на кнопку «Автонастройка», автоматически устанавливают и уровни запуска, и пороги измерений. Однако если пользователь изменит уровень запуска вручную (например, рукояткой на передней панели), система запуска осциллографа может перестать работать. Аналогично, если пользователь изменит пороги измерений, может перестать работать декодирование. Если не работает запуск или декодирование, то следует дополнительно нажать на кнопку «Автонастройка». В большинстве случаев это решит проблему.

Восстановление тактовой частоты

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

Ограничения

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

Второе ограничение осциллографа — его производительность. Поскольку анализаторы протоколов используют для декодирования аппаратные средства, а осциллографы пользуются программным декодированием, то при большом объеме данных осциллографы работают заметно медленней. (Исключением являются лишь осциллографы серии Agilent 7000, оборудованные аппаратными возможностями по декодированию сигналов последовательных шин.)

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

Заключение

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

i Надоели баннеры? Вы всегда можете отключить рекламу.