Логический анализатор/генератор

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

 
Слева от рабочего экрана находится панель, содержащая названия всех 16-ти каналов, которые функционально разделены на две шины. Первые 8 каналов относятся к шине A , а следующие восемь каналов к шине B . Каналы шины A (далее шина A) всегда используются в качестве 8-ми канального анализатора. Каналы шины B (далее шина B) могут использоваться в режиме 8-ми канального логического генератора, так и в качестве дополнительного 8-ми канального анализатора либо вообще могут быть не задействованы. Режим работы шины B задается соответственными кнопками на панели управления . Кроме того, цвет и название каждого из каналов можно изменить, для чего необходимо подвести указатель мыши к названию выбранного канала и нажать левую кнопку мыши, после чего откроется окно задание параметров канала. Для изменения названия канала необходимо ввести новое название в поле “Название канала”. Для изменения цвета канала необходимо щелкнуть левой кнопкой мышки по раскрывающемуся списку “Цвет канала”, а затем выбрать необходимый цвет, если же в списке нет желаемого цвета, то следует щелкнуть по цвету “Custom…” после чего будет открыто стандартное окно Windows определения цвета. Для того чтобы внесенные изменения вступили в силу необходимо нажать кнопу “ОК”, для отмены всех внесенных изменений следует нажать кнопку “Отмена”.

Внизу панели “Каналы” расположены две кнопки позволяющие открывать и сохранять все названия и цвета каналов в файле. В нижнем левом углу основного окна расположена панель “Данные генератора”, которая активна только в том случае если шина B использоваться в режиме 8-ми канального логического генератора. Как следует из названия панели, она предназначена для задания (создания) временных диаграмм генератора. Левую часть панели занимает таблица содержащая данные генератора в двоичном и шестнадцатеричном форматах. Изменять данные в таблицы можно двумя способами: непосредственно вводя с клавиатуры или выделяя необходимый участок в таблице и нажимая соответствующие кнопки генерации временной диаграммы . Для перехода в режим непосредственного редактирования необходимо нажать на кнопку расположенную возле правого верхнего угла таблицы или два раза щелкнуть левой кнопкой мыши над таблицей. Для перехода в режим выделения данных следует еще раз нажать на кнопку расположенную возле правого верхнего угла таблицы или нажать на клавиатуре сочетание клавиш “Ctrl+D”. Для того чтобы выделить участок данных в таблице необходимо сначала выделить начало диапазона щелчком левой кнопки мышки над выбранной ячейкой после чего, не отпуская левую кнопку мыши перемещать мышь вверх или вниз. Если же требуется выделить большой участок данных, то целесообразно после выделения начала диапазона переместится к окончанию диапазона передвигая, ползунок, после чего щелкнуть левой кнопкой мыши на последней ячейке диапазона, при этом удерживая клавишу “Shift”. Для того чтобы выделить все ячейки следует нажать на клавиатуре сочетанием клавиш “Ctrl+A”. Также участок данных в таблице можно выделить с помощью маркеров, положение которых на рабочем экране и определяет границы выделяемого участка. Это может быть удобно в том случае если, например, требуется сгенерировать импульс на одном из каналов генератора длительностью равной импульсу на каком либо канале анализатора. Для этого необходимо сначала маркерами определить границы импульса анализатора, после чего выделить участок данных в таблице, нажав, например “Ctrl+M” и затем нажать кнопку “Кн.=1”. Под таблицей данных генератора находится строка, информирующая о границах текущего выделенного участка данных.

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

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

Панель “Частота” позволяет задавать частоту дискретизации (развертку). Функционально данная панель полностью аналогична другим панелям задания развертки. Исключение заключается лишь в том, что фактически существует несколько подрежимов логического анализатора, которые автоматически выбираются в зависимости от установленной развертки:

- 4…8 МГц – размер буфера всего 128 байт, функционирует только шина А, синхронизация по маске только для шины А (не учитывается безразличное состояние), синхронизация по фронту только для каналов шины B (т.е. можно анализировать 8-ми битную шину и синхронизироваться по сигналам WR, RD и т.д.), нет пре триггера, нет пропуска импульсов. Данный подрежим предназначен для анализа не очень скоростных 8-ми битных шин с возможностью синхронизации по дополнительным сигналам.

- 2…2.67 МГц – размер буфера равен 1160 байт, функционирует только шина А, синхронизация по маске только для шины А (безразличное состояние учитывается), синхронизация по фронту только для каналов шины B (т.е. при необходимости синхронизации по фронту по одному из каналов шины A придется подсоединить еще и соответствующий провод шины B, что конечно не очень удобно), фиксированная длина буфера пре триггера равная 8-ми байтам, нет пропуска импульсов. Данный подрежим предназначен для анализа низкоскоростных 8-ми битных шин с возможностью синхронизации по дополнительным сигналам и небольшим пре тиггером.

- от 1 МГц и ниже (при чтении через буфер) – размер буфера равен 1544 байт, доступны все режимы (анализатор, анализатор + генератор, анализатор + анализатор). Функционируют все типы синхронизации и есть пропуск импульсов, регулируемая глубина буфера пре триггера от 8 до 120 байт. А также добавлена возможность внешнего тактирования (синхронизации). Данный подрежим предназначен для общего применения, можно анализировать как низкочастотные шины данных та и последовательные интерфейсы (но именно анализировать, а не захватывать данные), также в данном подрежиме функционирует логический генератор.

- от 500 КГц и ниже (при потоковом чтении) – размер буфера равен, ограничен памятью компьютера. Не рекомендуется устанавливать размер буфера больше нескольких Мбайт, так как анализировать такие длинные сигналы крайне не удобно. А отображение одного канала занимает в 16 (2*SizeOf(double)) раз больше памяти, чем размер буфера, т.е. для отображения всей шины требуется в 16*8 = 128 раз больше памяти, при условии, что значение сигнала меняется при каждой выборке. Если же есть паузы или импульсы длиннее одной выборки, то они кодируются всего 16-тью байтами (2*SizeOf(double)). При потоковом чтении функционирует только шина А, доступны все типы синхронизации, регулируемая глубина буфера пре триггера от 1 до 99% от заданной глубины буфера. А также добавлена возможность внешнего тактирования (синхронизации). Данный подрежим предназначен в основном для анализа последовательных интерфейсов. За счет использования памяти компьютера в качестве буфера для сигнала, возможно, записать очень длинные участки сигнала для его последующего анализа.

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

Смысл использования внешнего тактирования целесообразно пояснить на примере:

На рисунке показаны следующие сигналы:
• синий цвет – входной сигнал
• красный цвет – полученный (отображаемый) сигнал
• зеленый цвет – внешний тактовый сигнал

В первом случае используется внутренняя частота дискретизации, например 1 МГц, пунктирными линиями показан момент выборки сигнала, которые идут через 1 мкс. Частота входного сигнала ПРИМЕРНО равна 250 КГц, т.е. в 4 раза меньше частоты дискретизации, что вроде бы хорошо. Как видно из двух верхних диаграмм первый импульс и пауза в полученном сигнале полностью соответствуют входному сигналу. Следующий импульс получится почти на 50% длиннее из-за того, что в момент выборки входной сигнал находился в высоком логическом уровне всего на несколько долей мкс больше чем для первого импульса. Как видно из рисунка из-за того, что частота входного сигнала ПРИМЕРНО равна 250 КГц, т.е. существует небольшое дрожание длительностей импульсов и пауз, то полученный сигнал получается заметно искаженным (это нужно учитывать, если требуется точно измерить параметры входного сигнала).

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

Из приведенного выше можно сделать вывод, что при наличии внешнего тактового сигнала синхронного с входным сигналом (обычно для последовательных протоколов так и есть) “ценность” каждой выборки возрастает. Так при внутреннем тактировании было 16 выборок, и полученный сигнал был несколько искажен, а при внешнем тактировании было всего 8 выборок и полученный сигнал полностью соответствовал входному. “Ценность” каждой выборки растет из-за того, что выборка производится в “правильный” момент времени, определяемый внешним тактовым сигналом. Кроме того, если предположить, что вместо 4-х импульсов входного сигнала будет только 2, а тактовых 4 (например, из-за отсутствия обмена), то при внутреннем тактировании будет все равно 16 выборок, половина из которых попадут на отсутствие обмена, в тоже время при внешнем тактировании будет всего 2 “правильные” выборки. Для функций внешнего тактирования используются аппаратные средства микроконтроллера из-за чего внешний тактовый сигнал можно подавать только на каналы шины B, т.е. при использовании шины B в качестве 8-ми канального генератора внешнее тактирование не доступно.

Все управляющие элементы синхронизацией (для дискретных сигналов также называют триггером) за исключением маркеров, расположены на панели “Триггер” . Включить или выключить синхронизацию позволяет кнопка “Вкл/Выкл”, под которой расположены кнопки выбора условия срабатывания синхронизации: по нарастающему или спадающему фронту сигнала выбранного канала или синхронизация по маске. Под кнопками выбора фронта сигнала для синхронизации расположен раскрывающийся список, предназначенный для выбора канала источника синхронизации только по фронту. Справа от кнопки задания синхронизации по маске расположены две небольшие кнопки выбора шины, на которую будет накладываться заданная маска при синхронизации. Маска задается в поле расположенном под кнопкой задания синхронизации по маске в двоичном формате причем символ ‘x’ или ‘-‘ означает безразличное состояние соответствующего канала. В нижней половине панели синхронизации находятся элементы, определяющие необходимость пропуска заданного количества импульсов . Пропуск импульсов будет функционировать лишь в случае включенной синхронизации. Для того чтобы включить режим пропуска импульсов следует нажать на одну из кнопок определяющих начало импульса, если ни одна из кнопок не нажата пропуск импульсов не будет выполнен. В поле “N импульсов” задается требуемое количество пропускаемых импульсов после выполнения условия синхронизации, а в раскрывающемся списке расположенном внизу панели выбирается канал, на котором будет произведен подсчет и пропуск заданного количества импульсов. Режим пропуска импульсов целесообразно использовать при включенном режиме склейки.

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

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

На панели управления расположены кнопки определяющие режим работы шины B. Кнопка с изображением буквы “G” переводит шину B в режим работы логического генератора, а кнопка с изображением буквы “A” в режим дополнительного 8-ми канального анализатора. Если ни одна из кнопок не нажата, то шина B считается выключенной. На панели управления также расположена кнопка запуска одиночного измерения. Необходимо отметить, что если шина B используется в режиме логического генератора и включена синхронизация, то данные начнут выдаваться на шину генератора после выполнения события синхронизации, а не сразу же после нажатия на кнопку “Запуск”.