097-888-02-66
095-888-02-66

Использование осциллографа при отладке шин с последовательной передачей данных

Настоящая статья носит общий характер. Цель статьи: предоставить описание наиболее продвинутых функций, присущим  осциллографам high-end класса (в данном случае речь идёт о приборах Agilent Technologies, теперь Keisight Technologies).

 

Современные осциллографы обладают множеством функций, присущих анализаторам протоколов, как то генерирование таблиц декодированной информации и срабатывание на захват специфических протокольных событий. Тем не менее, встаёт вопрос: «Коль скоро существуют такие приборы как анализаторы протоколов, то зачем необходимо присутствие этих функций у осциллографов?»

Перво-наперво, обладание единым унифицированным инструментом, объединяющим функции осциллографа, логического анализатора и протокольного анализатора, предоставляет пользователю такого прибора множество преимуществ. В самом простом виде это очевидно на примере занимаемой площади на рабочих местах лабораторий: зачем загромождать свободное пространство тремя измерительными устройствами, когда все стоящие задачи можно решить при помощи лишь одного? Даже если все упомянутые три прибора портативные, то всё равно будет иметь место суматоха при их (приборов) включении одного за другим, настройках и синхронизации. Единый измерительный комплекс с конфигурацией «всё в одном» значительно экономит рабочее время.  

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

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

В конечном итоге, осциллографы способны поддерживать широкий диапазон протоколов, таких как IⁿC, SPI, RS232, USB и PCI-Express. Таким образом, осциллограф не просто заменяет отдельно взятый анализатор протоколов: осциллограф способен заменить сразу несколько анализаторов. Среди инженеров имеет место распространённая практика пытаться декодировать формы сигналов в уме, поскольку у них под рукой отсутствует анализатор протоколов с требуемой функциональностью. Об этой проблеме можно навсегда забыть, если применять осциллограф, способный одновременно обрабатывать как цифровые, так и аналоговые сигналы.

Основные функции

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

Функция встроенного декодирования

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

    Рис. 1 Пример функции Встроенного декодирования полей шины PCI-Express

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

     Рис. 2 Пример функции Встроенного декодирования символов 8B/10B

Составление сводных таблиц декодированной информации

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

      Рис. 3 Сводная таблица пакетов декодированных данных, соответствующих определённым формам сигналов   

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

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

Когда мы проводили исследование на предмет того, в каком виде удобнее всего инженерам просматривать последовательные данные, то обнаружилось, что у них (инженеров) отсутствует согласие по вопросу универсальности формата, который можно применять на протяжении всего процесса измерений. Демонстрируя инженерам всё имеющее множество форматов, выяснилось, что все эти форматы востребованы.  Основной вывод, который был сделан: при единственном ракурсе просмотра данных невозможно изучить все ситуации, соответственно разнообразие форматов предоставляет в этом плане очевидное преимущество: гибкость. Некоторые относительно несложные протоколы типа IⁿC, RS232 или SPI требуют не более чем простой таблицы пакетов и табуляции полезной нагрузки.  Но в случае с высокоскоростными протоколами как то PCI-Express, SATA и MIPI необходимо, чтобы данные просматривались через несколько форматов.  

Один из форматов, что был востребован пользователями – т.н. «таблица паспортных данных» (см. рис. 5). Верхний колонтитул был разбит на поля в формате схожем тому, что используется при спецификациях протоколов. Таким образом, имеет очень большое значение обладание «видом» данных, соответствующим тому, по какой методике инженерам преподавались курсы сетевых протоколов.

       Рис. 5 Вид заголовка пакета данных, который соответствует тому, как это описывается протоколом

Другой формат, востребованный инженерами – это иерархический вид, называемый Таблоид Подробностей. В этом случае признаётся, что может иметь место некая иерархия протоколов (таких как поля на различных уровнях протоколов). На приводимом примере (рис. 6) видно, где присутствуют Физический уровень, Уровень канала передачи данных и Уровень Транзакций. 

 Рис. 6 Таблоид Подробностей наглядно демонстрирует Физический уровень, Уровень канала передачи данных и Уровень Транзакций высокоскоростного протокола

Последний формат представления информации, что был запрошен инженерами – разрез данных символов (см. рис. 7)

          Рис. 7 Пример таблицы символов

Триггер или совокупность условий, инициирующих выполнение действия

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

Каждый пользователь осциллографа знаком с обычными функциями триггера как то: захват на края и ширину импульса, но в ситуациях с последовательной передачей требуются принципиально иные параметры триггера. Совершенно недостаточно просто запускаться на какую-либо характеристику формы сигнала: осциллограф должен срабатывать и на протокольные события. Например, обычная настройка триггера, востребованная пользователями для USB, это допуски на вход. Или же для протокола IⁿC запуском триггера может послужить функция Считывания, которая имеет место как результат перезапуска системы. Всё описанное выше известно как триггер на конкретные типы пакетов, поскольку пользователи получают возможность захватывать специфические виды пакетированных данных (см. рис. 8).

        Рис. 8 Захват событий на интерфейсе USB на все пакеты, где присутствуют различные вариации допусков

Однако имеется множество случаев, где простое срабатывание на захват по типу пакетов недостаточно: необходимо иметь возможность запускаться на специфические области в рамках пакетных данных, - именно то, что осуществляют протокольные анализаторы. Примером может послужить триггер на специфические данные и адресное значение в стеке протоколов IⁿC (см. рис. 9).

                         Рис. 9   Триггер на протоколе IⁿC при считывании адреса 50 с данными 41 47 49

В то время как мы осуществляли исследования, обнаружилось, что хоть даже инженеры и хотели  иметь возможность специфицировать пакеты и поля как события для триггера, тем не менее, они также стремились просматривать в подробностях, что именно стоит за определением триггера. Этой цели посвящён т.н. диалог «смотрю на биты», как это представлено на рис. 10.

 Рис. 10 Диалог «смотрю на биты» с определениями триггера по битам на события последовательной передачи данных 

Последним из видов триггера можно назвать Последовательность Символов. Опять же, речь идёт о высокоскоростных последовательных шинах, где инженеры ставят перед собой задачу захватывать специфические символы. На примере, что на рис. 11, видно, что триггер начинается с кода К (SDP), оканчивается кодом К (END), при этом задействует данные для оставшейся последовательности символов. 

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

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

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

Частота выборки

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

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

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

Уровни триггера

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

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

Пороги измерений очень схожи с уровнями триггера, даже если по каким-то причинам они менее известны пользователям. Наибольший конфуз вызывает то, как собственно, пользоваться этими самыми порогами измерений. Уровни триггера выставляются посредством аппаратной части осциллографа, чтобы осуществлять захват на события. Пороги измерений выставляются программными функциями для настроек декодирования. Эти две функции независимы друг от друга: осциллограф, прекрасно осуществляющий триггер на события в шине с последовательной передачей данных, при этом может оказаться неспособным декодировать.  Усугубляет проблему то, что результаты срабатывания функции Уровня триггера чётко и ясно представлены в основном окне экрана каждого осциллографа, в то время как пороги измерений где-то запрятаны. Для нивелирования такой ситуации, на осциллографах Agilent и Tektronix происходит автоматическая настройка Уровней триггера и Порогов измерений как только кнопка Auto Setup нажата. Однако если пользователь изменяет Уровень триггера (посредством вращения управляющей клавишей на передней панели прибора), то режим последовательного триггера может перестать срабатывать. Наилучшим советом для инженеров, очутившихся в такой ситуации, когда либо триггер или декодирование не срабатывает, нужно просто ещё раз нажать кнопку Auto Setup. После этого в большинстве случаев проблема исчезает сама собой.   

Восстановление тактовой синхронизации        

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

Ограничения

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

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

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

Выводы

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