Диагностика последовательных шин в ПЛИС становится быстрее

№ 12’2009
PDF версия
Субмегабитные последовательные шины встречаются в большинстве конструкций с ПЛИС. Простота изготовления последовательных шин, их низкая цена и связь с привычными конструкторскими решениями делают их идеальными для применения в различных отраслях промышленности.

Низкоскоростные последовательные шины превалируют в таких областях, как компьютеры, полупроводники, оборона, авиация, автомобили, медицина, из-меренияи контроль. Последовательныешины (I2C, SPI, CAN, LIN и RS-232) часто являются ключевыми элементами для отладки схем с ПЛИС, позволяя выяснить, какая из высокоскоростных последовательных шин быстрее передает данные от микросхемы к микросхеме. Ранее при использовании осциллографа или другого специального прибора сбор и расшифровка информации требовали значительных усилий. Для упрощения процесса отладки низкоскоростных последовательных шин теперь используют ряд прикладных технологий.

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

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

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

Просматривая данные, снятые с осциллографа, пользователи вручную декодируют захваченный сигнал для его верной интерпретации. Рассмотрим очень простой случай на примере шины I2C. После получения данных методом одноразового отбора сигнала пользователь должен вручную определить, что находится на каждом фронте синхроимпульса: единица или ноль, и записать полученную последовательность. Проще всего распечатать изображение, а потом расставить значения «0» и «1» рядом с сигналом. Далее необходимо разбить последовательность на сегменты, соответствующие протоколу шины, и в завершение представить каждое поле в шестнадцатеричном формате. В результате будет обработано содержимое одного снимка экрана. Этот процесс может занять часы, если необходимо расшифровывать множество пакетов, а утомительное однообразие работы приводит к появлению ошибок. Более того, такую работу нельзя сделать вручную, если осциллограф работает непрерывно: это ограничивает отладку статическими измерениями на основе единичных снимков. Тем не менее, на сегодняшний день такой способ расшифровки низкоскоростного последовательного протокола остается наиболее распространенным. Запуск по содержимому пакетов еще сложнее, так как требует многоэтапного установления последовательностей (а эта возможность в осциллографах отсутствует).

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

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

Запуск по сигналам последовательных шин

Пользователь может определить условия запуска протокола. Например, можно настроить запуск осциллографа по CRC-ошибке шины USB, или когда адрес I2C равен 1F в шестнадцатеричном формате, или когда в линии приема универсальной последовательной шины (UART) присутствует символ «A».

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

Рис. 1. Пример условия запуска для I2C показан на примере осциллографа серии Agilent Infiniium 9000

Просмотр протоколов

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

Рис 2. Пример для протокола I2C: осциллограф выделяет 7-битную стартовую точку для адреса 50H со значением данных 10 4D 53 4F

Результат декодирования может быть отображен на физическом уровне с помощью показа символов рядом с сигналом либо в окне листинга протоколов. Цифровые осциллографы обеспечивают расшифровку протокола в осциллографических каналах, в то время как осциллографы смешанных сигналов осуществляют декодирование данных с использованием аналоговых или логических каналов (либо их комбинации). Осциллографы определяют разницу между нулем и единицей путем считывания напряжений сигнала по отдельному синхроимпульсу для каждого канала, а в случае смешанных сигналов используется установка порога для логического канала. Для последовательных шин со встроенными генераторами импульсов синхронизации, такими как USB и PCIe, схема осциллографа обеспечивает восстановление синхроимпульсов с целью качественного анализа протокола.

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

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

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

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

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

Команды разработчиков, использующие технологию ПЛИС, имеют преимущества, связанные с возможностью перепрограммирования ПЛИС, чтобы перенаправить последовательные шины на незадействован-ные выводы. Это можно сделать, меняя код на языке описания аппаратных средств (HDL) с использованием специального инструмента, например, редактора Xilinx FPGA, или применяя подход на основе ядра.

Для подхода на основе ядра Xilinx и Altera предлагают мультиплексные (MUX) ядра, обеспечивающие метод быстрой вставки ядра в разработку до и после стадии объединения. Хотя они и не были созданы специально для измерений низкоскоростных последовательных соединений, ядра предоставляют простой способ получения доступа к последовательным сигналам без изменения HDL-кода.

Например, ядро ATC2, имеющееся в Xilinx ChipScope Pro, предоставляет пользователю возможность легко вставить ядро мультиплексора для отладки на осциллографе Agilent. Ядро может быть настроено минимально с последовательными сигналами и мультиплексированием 1:1, либо может быть мультиплексировано в один банк ATC2. Частота синхронизации ядра ATC2 с глобальным тактовым буфером (BUFG) превышает в 10 и более раз частоту синхронизации шины SPI — это гарантирует, что синхросигналы SPI и сигналы данных, выдаваемые ядром, обеспечат точные результаты. Выходные данные ядра могут проверяться с помощью аналоговых каналов цифрового осциллографа или аналоговых и логических каналов осциллографа смешанного типа.

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

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

Рис. 3. Осциллограф серии Agilent Infiniium 9000

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

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