В радиолюбительской практике иногда возникает потребность исследовать низкочастотные цифровые сигналы. Приобретать для этого дорогостоящий аппаратный логический анализатор или запоминающий осциллограф в большинстве случаев нецелесообразно. Достаточно подать подлежащие анализу сигналы на входы СОМ-порта компьютера и запустить программу, которая отобразит на экране монитора все их изменения и сохранит информацию на жестком диске компьютера.
Предлагаемая программа предназначена для записи и анализа цифровых сигналов, поступающих на входы СОМ-порта компьютера. Она может работать под всеми ОС семейства Windows, начиная с Windows 98. Компьютер должен иметь процессор не ниже Pentium I с тактовой частотой 166 МГц и ОЗУ объемом не менее 128 Мбайт.
Программа написана в интегрированной среде разработки приложений Delphi 7. Для прямого (в обход Win API) доступа к портам ввода-вывода она использует не требующий установки драйвер smPort. Это позволило достичь довольно высокой точности измерения интервалов времени. Режим развертки - ждущий однократный настраиваемой длительности с запуском по изменению одного или нескольких сигналов.
Одновременно исследуются сигналы на четырех входах порта (CTS, DSR, RI и DCD). При этом имеется возможность удерживать высокие логические уровни напряжения на выходных линиях порта RTS и DTR, что позволяет питать от них устройства с потребляемым током до 15 мА (на линию). Чтобы исследовать сигналы, уровни которых отличаются от принятых в интерфейсе RS232, необходимо подавать их через соответствующие согласующие устройства.
Основные технические характеристики
Число входов .....................4
Уровень лог. 1, В.............+3...+25
Уровень лог. О, В.............+3...-25
Число выходов для питания
исследуемых устройств и
датчиков.......................2
Выходное напряжение, В.........+12
Ток нагрузки выхода, мА, не более ........................15
Погрешность измерения интервалов времени, %, не более, при их длительности, мкс менее 20 .......не нормирована 20..........................50
100.........................10
более 1000...................1
Максимальная частота исследуемого сигнала, кГц..........................180
Минимальная длительность развертки, мс ..................1
Максимальная длительность развертки, с, при отображении в масштабе
1:1 ........................0,5
1:20........................10
1:100.......................50
Предположим, необходимо исследовать дискретный информационный сигнал, передаваемый последовательным кодом по одной линии и сопровождаемый тактовыми импульсами по другой. Импульсы идут непрерывно, а передача информации происходит в неизвестные заранее отрезки времени.
Информационную линию подключим к входу DCD (конт. 1 разъема порта), а тактовую - к входу RI (конт. 9) и запустим программу Digital_Oscilloscope.exe. В поле "Настройки" открывшегося окна, на закладке "Порт" (рис.1) выбираем по имени (СОМ1 или COM2) тот порт, на входы которого поданы исследуемые сигналы. В графе "Адрес" будет отображен стандартный базовый адрес выбранного порта. При необходимости здесь можно ввести другой адрес (в шестнадцатиричном формате), нажав на находящуюся рядом со значением адреса экранную кнопку.
В соответствующей графе укажем продолжительность записи сигналов ("Время захвата"), необходимую для решения поставленной задачи. Учтите, что регистрируются лишь моменты изменения уровней исследуемых сигналов, а не их регулярные выборки. Отметка пункта "Использовать TSC" позволяет отсчитывать время с помощью имеющегося во всех процессорах, начиная с Pentium I, аппаратного таймера, работающего на повышенной тактовой частоте, что значительно улучшает точность измерения времени. От этого приходится отказываться, снимая отметку, только на устаревших компьютерах, процессоры которых не имеют такого таймера.
На панели "Запуск по изменению сигнала" отметим пункт DCD. Это значит, что запись должна начаться с первого изменения логического уровня сигнала на этом входе, что в данном случае соответствует началу передачи информации. Отмеченный на панели "Удерживать сигналы" пункт RTS означает, что на одноименном выходе порта будет установлено напряжение высокого логического уровня.
После нажатия на экранную кнопку "Захват", находящуюся над полем "Настройка", программа перейдет к ожиданию заданных изменений входных сигналов. В этом режиме фон под надписью "Захват" станет красным. По выполнении условия запуска (в данном случае изменения уровня на входе DCD) начнется и будет продолжаться указанное при настройке время запись информации в память компьютера. Если по какой-либо причине потребуется прекратить ожидание начала записи или завершить ее досрочно, сделать это можно с помощью экранной кнопки "Стоп".
По окончании записи временные диаграммы сигналов будут отображены в окне программы (рис. 2). Перейдя на закладку "Осциллограммы" поля "Настройка", можно воспользоваться панелью "Отображать сигналы", чтобы при необходимости задать инверсию некоторых сигналов, выбрать цвет каждой кривой, выключить отображение ненужных сигналов (это ускорит вывод диаграмм на экран). На той же закладке можно выбрать масштаб отображения по оси времени, включить масштабную сетку с оцифровкой или без нее.
Для точного измерения интервалов времени в поле диаграмм предусмотрены два маркера (вертикальные линии красного и зеленого цветов). Их можно перемещать либо щелчками правой или левой кнопки мыши по диаграмме либо с помощью движков под диаграммами. Положение каждого маркера на оси времени и интервал между ними выводятся на экран в численном виде правее движков.
Нужно учитывать, что при записи очень большого количества информации и выборе крупного масштаба ресурсы ОЗУ компьютера могут быть исчерпаны, о чем на экран компьютера будет выведено сообщение.
Программа применяется на кафедре радиоэлектроники и компьютерной техники Елецкого государственного университета для исследования и настройки инфракрасных приемников и передатчиков, а также (совместно с датчиком Холла) в качестве цифрового тахометра.
ЛИТЕРАТУРА
Программу логического анализатора, в том числе ее проекте системе Delphi и драйвер smPort, можно скачать здесь.
Автор: В. Тимофеев, г. Елец Липецкой обл.