16-канальный логический анализатор

Обзор системы

Необходимость логического анализатора как помощника при отладке последовательных линий связи, например, l2C, 1-Wire и параллельных шин, например, интерфейса распространенных индикаторов DataVision, очевидна. Однако профессиональные логические анализаторы, например, выпускаемые под маркой Techtronics и Adgilent, не по карману не только радиолюбите-лю-разработчику, но даже и не очень крупным фирмам.

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

16-канальный логический анализаторПредложенный анализатор имеет 16 входных каналов, первые 8 из которых используются для задания события, по которому сработает триггер записи в память, и статическую память на 32К 16-разрядных слов. Время выборки сигналов определяется быстродействием ПЛИС и памяти; к примеру, Altera с уровнем быстродействия 10 при проведении временного анализа программой Мах+ показала частоту 55 МГц, что соответсвует времени выборки (с запасом) в 25 МГц (контроллер статической памяти расходует два такта на запись в память).

Возможен упрощенный вариант, при котором ПЛИС тактируются частотой, снимаемой с выхода XTAL2 микроконтроллера — этот вариант использовался ввиду того, что память со временем доступа 70 не не позволяла реализовать максимально возможную скорость. При использовании более высокоскоростной памяти на плату устанавливается кварцевый генератор соответствующей частоты. Анализатор соединяется с ЭВМ по интерфейсу RS-232С, передавая данные для отображения на экране. Команды и операции передаются от ЭВМ по тому же интерфейсу.

Схема электрическая принципиальная устройства показана на рис. 2.

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

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

Для индикации режима работы на плате предусмотрены три светодиода: желтый показывает, что питание на плату подано, красный — идет передача данных в ЭВМ, зеленый — анализатор либо ждет прихода комбинации заданных сигналов, либо занят передачей данных. Кнопка 7 позволяет после загрузки конфигурационных регистров запустить анализатор на ожидание. Если управляющая комбинация не изменилась, то для повторного запуска достаточно снова нажать кнопку, не перезагружая регистры заново.

Работа с программной частью

16kanalny-logic-analyzer-2На рис. 3 показано основное окно программы работы с логическим анализатором. Программа была написана на Borland C++Builder и оттестирована под ОС WinXP. Замеченный недостаток при работе с данной ОС — медленное выполнение функций API, то есть от момента нажатия кпопки до пересылки данных в порт проходит ощутимое время. На окне программы расположены: слева — кнопки управления анализатором, внизу — радиокнопки задания условия срабатывания анализатора и кнопки управления маркерами. На окне диаграмм отображаются 16 линий и составленная из этих линий шина.

Названия линий можно изменять в окне настроек, желтым подсвечивается та линия, по которой осуществляется поиск перепада. Каждой из восьми первых линий соответсвуют три радиокнопки: высокий уровень, безразлично и низкий уровень. Кнопки объеденяются по "И", то есть если задан высокий уровень на 5-м канале и низкий на первом, анализатор сработает по условию "канал-5 в высоком уровне И канал-1 в низком". Сигналы на остальных линиях будут игнорироваться КП при анализе условия срабатывания.

При комбинации радиокнопок, показанной на рис. 3, анализатор сработает при наличии низкого уровня на 0-м канале вне зависимости от того, в каком состоянии находятся остальные линии. Кнопка "Запуск" инициирует передачу конфигурирующей последовательности в анализатор. Анализатор может работать в двух режимах: непреывного записывания и ожидания. Режим ожидания включается выбором квадратика "Ждать" под кнопкой запуска перед нажатием этой кнопки. Режим ожидания означает то, что по срабатывании триггера условия КП запускает КСП, происходит запись в память, и после этого анализатор останавливается до принятия следующей команды. Режим непрерывной развертки означает, что запись в память происходит постоянно после нажатия кнопки 7 на плате анализатора, по срабатывании же триггера память дозаписывается до конца и анализатор останавливается.

Кнопка "Прервать" служит для выхода из режима ожидания последовательности (при этом на плате гаснет зеленый светодиод). Кнопка "Считать" инициирует передачу данных в ЭВМ и отображение их на временной диаграмме. В окно настроек (рис. 4) можно попасть либо нажатием иконки с молоточком, либо через меню Вид/Настройка. 16kanalny-logic-analyzer-3В этом окне можно изменить цвет диаграмм, выбрать порт, с которым работает анализатор, и указать используемую частоту дискретизации для правильного отображения временных отметок и измерения временных интервалов на окне диаграмм. Для переименования названия линии выберите ее среди линий списка "Названия линий", введите новое название и нажмите клавишу "Enter". Список автоматически перейдет на следующую линию, новое же название будет сохранено и отобразится после нажатия кнопки "ОК".

Временную диаграмму можно сохранить и потом просмотреть либо через меню "Файл", либо нажатием соответсвующей иконки. Диаграмма сохранится на диске в виде файла с расширением *./ал. Для измерения временних интервалов предназначены два маркера. Первый перемещается щелканьем левой клавиши либо перемещением мыши с нажатой левой клавишей по соответствующему месту диаграммы. Аналогично второй маркер связан с правой клавишей мыши. Внизу пока-зазывается точное положение маркера.

Временные метки на диаграмме для уменьшения загромождения имеют длину в четыре символа, поэтому ориентироваться следует на указанную внизу под словами "Отсчет №" величину. На рис. 5 показан пример округления величины, указанной на временной метке. Если на диаграмме присутствуют оба маркера, то дополнительно отображается разность между маркерами. Диаграмму при этом для удобства можно укрупнить либо уменьшить, нажав соответствующие иконки.

Для поиска следующего перепада следует сперва выделить сигнал на диаграмме, щелкнув на нем правой клавишей мыши (название сигнала подсветится желтым и появится маркер), а затем выбрать, в какую сторону от маркера следует искать перепад. Выбор осуществляется либо нажатием сответсвующей иконки (рис. 5), либо через меню "Вид", либо стрелками курсора "Влево" или "Вправо", удерживая нажатой клавишу "Alt".

Софт и прошивка LogikAn


Еще интересно почитать:




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