Цифровой осцилограф
Содержание
Стр.
Введение
В ходе развития технологии микроэлектроники происходила миниатюризация электронных схем, и появились СБИС. Массовое производство СБИС привело к их удешевлению. Одним из дешёвых и миниатюрных устройств является микроконтроллер (МК). Микроконтроллер – это СБИС, содержащая на одном кристалле процессор, ПЗУ, ОЗУ, последовательный или параллельный интерфейс связи, таймеры, схему прерываний и другие периферийные устройства. Таким образом, на одной ИС можно реализовать множество различных устройств, в которых требуется управлять каким то процессом. Причём совершенствование технологии изготовления СБИС привело к повышению их производительности, и микроконтроллеры могут достаточно быстро реагировать на событие и обрабатывать его.
В настоящее
время бурно развиваются
Можно выделить следующие преимущества цифрового осциллографа:
- высокая точность измерений;
- яркий хорошо сфокусированный экран на любой скорости развёртки;
- возможность
отображения сигнала до
- возможность
останова обновления экрана на
- возможность
детектирования импульсных
- автоматические средства измерения параметров сигналов;
- возможность
подключения принтера для
- возможность
статистической обработки
- средства самодиагностики и самокалибровки;
- резко очерченные контуры изображения сигнала;
- возможность
исследовать детально
- считывание
предварительно записанных
- широкие аналитические
возможности и упрощённая
- возможность сравнения предварительно записанных данных с текущими.
Цифровые осциллографы выпускаются либо в виде самостоятельных приборов, либо в виде приставки к ПК. Устройства на основе ПК относятся к новому направлению в измерительной технике – виртуальные приборы. Теперь специалисту достаточно подключить к компьютеру дополнительное устройство – модуль цифрового осциллографа, для того чтобы начать измерения и анализ физической величины. При этом программная часть виртуального прибора эмулирует переднюю управляющую панель стационарного измерительного устройства. С помощью мыши и клавиатуры осуществляется управление прибором, специальными программами обработка, поступившей информации, а также её хранение на накопителе на жёстком диске.
Теми же возможностями обладают осциллографы с ЖКД (жидкокристаллическим дисплеем). Все возможности связанные с автоматизаций измерений встроены в цифровой осциллограф.
Актуальность темы
В настоящее время на рынке измерительной техники присутствует множество производителей цифровых запоминающих осциллографов (ЦЗО). Наиболее преуспевающие производители в России: «АКТАКОМ», ОАО «Руднёв - Шиляев», ЗАО «Компания Сигнал». Лидирующие производители за рубежом: компании «Tektronix», «Hitachi-Denshi», «Agilent Technologies», «LeCroy», «GaGe Applied Technologies», Good Will instrument Co. Ltd, фирма «Chauvin Arnoux», корпорация «Fluke».
ЦЗО используются для исследовательских работ или для тестирования, наладки, настройки электронных устройств.
Постановка задачи
В работе ставится задача придумать функциональную схему устройства, разработать в графическом редакторе OrCAD Capture принципиальную схему. В ходе разработки схем подобрать подходящие микросхемы для обеспечения нужных характеристик осциллографа. Написать программу для микроконтроллера.
Разрабатываемый цифрового осциллографа должен обладать следующими основными параметрами:
Число каналов: 2
Разрядность АЦП: 8
Частота дискретизации АЦП: 20 МГц
Размер кадра: 240 байт
Максимальный диапазон входного напряжения: В
Количество вольт на деление, В/дел: 1, 0.5, 0.2, 0.1, 0.01
Количество времени на деление: от 500 нс/дел до 10 с/дел
Полоса пропускания по уровню - 3 дБ аналогового блока: 10 МГц
Входное сопротивление:1 МОм
Входная ёмкость: 20 пФ
Устройство отображения: ЖКД 320X240
1 Разработка структурной схемы устройства
Аналоговый сигнал перед оцифровкой в зависимости от амплитуды и выбранного пользователем количества вольт на деление (В/дел) нужно, как известно, ослабить или усилить. Важно, чтобы напряжение на аналоговом входе аналого-цифрового преобразователя (АЦП) после преобразований не выходило за пределы максимального допустимого значения. Обычно размах напряжений аналогового входа АЦП равен 1 В (от - 0.5 В до + 0.5 В), а шаг квантования 8 – разрядного АЦП равен 0.004 В. Поэтому напряжение от 0.5 В до 5 В нужно уменьшить по амплитуде, чтобы не превысить максимальные значения, а напряжение от 0.004 В до 0.5 В – усилить перед оцифровкой для получения большей информации о сигнале. Для этого на вход ставятся аттенюаторы и усилитель [1]. На рисунке 1.1 представлена функциональная схема аналогового блока для одного канала.
Информацию о сигнале после оцифровки с помощью АЦП нужно быстро сохранить в память, так чтобы сохранилась его частота дискретизации. Для выполнения условия нужно, что бы время доступа у памяти (tдос) совпадало с периодом дискретизации АЦП (Tд). В нашем случае Tд= tдос = 50 нс.
На рисунке 1.2 изображена структурная схема устройства. МК предназначен для обработки информации о сигнале и передачи данных на ЖКД. Чем выше скорость работы МК, тем больше информации о сигнале удаётся получить.
2 Выбор МК и АЦП
Для быстрого сохранения в ОЗУ информации о сигнале нужно выбрать МК с максимальной производительностью. Объём ОЗУ должен быть не меньше 512 + 256 байт, так как размер кадра равен 240 байт и осциллограф двухканальный. Для считывания данных с выходов АЦП нужно 2 порта ввода-вывода. Также для управления ЖКД нужно ещё 2 порта. Для управления ключами и кнопок ещё 2 порта. Периферия должна содержать таймеры для создания задержек и встроенный АЦП для измерения постоянного напряжения. В таблице 2.1 приведены результаты обзора микроконтроллеров с наиболее популярными микропроцессорными ядрами MCS-51 и PIC. Из таблицы выберем по главному параметру – быстродействию лучший МК.
Таблица 2.1 – Результаты обзора микроконтроллеров различных производителей
Производитель |
Наименование |
Тактовая частота, МГц |
Количество линий ввода - вывода |
Размер ОЗУ, байт |
Интерфейсы |
Intel |
87C51FC-20 |
20 |
32 |
256 |
UART |
Atmel |
AT89C51RB2 |
60 |
32 |
1280 |
UART |
Dallas Semiconductor |
DS87C550 |
33 |
55 |
1280 |
2 UARTs |
Silicon Laboratories |
C8051F120 |
100 |
64 |
8448 |
2 UARTs, SMBus, SPI |
Microchip |
PIC18F4455 |
48 |
34 |
2048 |
USB 2.0, I2C, SPI, USART |
Отличительной особенностью МК DS87C550 является перепроектированное ядро процессора, позволяющее исключить холостые такты и циклы памяти. В результате, каждая команда системы команд 8051 выполняется в три раза быстрее, чем стандартным МК, работающем на той же тактовой частоте. DS87C550 имеет максимальную тактовую частоту 33MHz, что эквивалентно работе стандартного МК с тактовой частотой до 99MHz.
МК C8051F120 выполняет 70% команд за 1 или 2 такта и обладает производительность до 100 MIPS на тактовой частоте 100МГц. Кроме того, он подходит по всем остальным параметрам для разрабатываемого устройства. Поэтому остановим свой выбор на нём.
АЦП должен быть сдвоенный и иметь частоту дискретизации 20 МГц. Такие АЦП выпускают многие производители. Так как Analog Devices выпускает качественные АЦП, то выберем из её продукции микросхему AD9288 c частотой преобразования 40 МГц.
3 Разработка принципиальной схемы и выбор электронных компонентов
Как видно из структурной схемы аналогового блока нужно рассчитать аттенюаторы или делители напряжения для ослабления сигнала по амплитуде.
Рисунок 3.1 – Делитель напряжения
Предположим, что нагрузки нет, тогда по закону Ома , а . Для различных делителей будет меняться коэффициент ослабления . , так как входное сопротивление входа осциллографа равно 1 МОм. В таблице 3.1 приведены результаты расчёта номиналов резисторов для делителей.
Таблица 3.1 – Номиналы резисторов для аттенюаторов
0.5 |
0.5 | |
0.8 |
0.2 | |
0.9 |
0.1 |
Резисторы на высоких частотах имеют паразитную ёмкость на подложку. Проволочные резисторы ведут себя хорошо на частотах до 50 кГц, углеродные резисторы используются на частотах до 1 МГц. Для данной схемы нужно использовать плёночные резисторы, которые имеют стабильные параметры на частотах до 100 МГц.
При работе в режиме постоянного напряжения сигнал подаётся сразу на делитель, а при работе с переменны напряжением для отсечения постоянных составляющих сигнала на вход ставится конденсатор. Конденсатор имеет комплексное сопротивление . На частоте 10 МГц при С = 100 нФ , что нам и требуется.
Делители должны отключаться и подключаться к цепи по отдельности. Для этого будем использовать аналоговые ключи ADG201, обладающие сопротивлением 60 Ом в открытом состоянии и размахом напряжения аналогового входа . Таким образом, коэффициент деления делителей не будет искажаться [2].
Для усиления сигнала будем использовать сдвоенный ОУ AD8008. ОУ имеет полосу пропускания по уровню -3 дБ равную 600 МГц при коэффициенте усиления и диапазон напряжения на входе равный .
На рисунки 3.2 показана рекомендуемая производителем схема включения [3].
Рисунок 3.2 – Схема включения ОУ
Как известно при не инвертирующем включении идеального ОУ, его коэффициент усиления определяется простой формулой: . Для задания коэффициента усиления в документации рекомендуется использовать следующие номиналы резисторов в: . Так как ключ включённый в цепь обратной связи ОУ имеет сопротивление в открытом состоянии 60 Ом, номинал .
Для фильтрации ВЧ помех в цепи питания микросхем включаем конденсаторы.
На рисунке 3.3 представлена схема аналогового блока.
Выбранный АЦП имеет дифференциальные аналоговые входы. Для преобразования однопроводного сигнала в дифференциальный производитель рекомендует использовать ВЧ трансформатор ADT1-1WT, который имеет сопротивление 75 Ом и полосу пропускания 800 МГц [4]. Трансформатор не пропускает постоянный ток, поэтому для измерения постоянного напряжения будем использовать встроенный в микроконтроллер АЦП.
Через состояние входов S1 и S2 задаётся режим вывода данных на цифровые выходы D7-D0. При S1=1, S2=0 (нормальный режим) данные на цифровые выходы канала A и B выводятся одновременно, как показано на рисунке 3.4.
Рисунок 3.4 – Временные диаграммы для нормального режима работы АЦП
АЦП имеет встроенный источник опорного напряжения (ИОН) напряжением 1.25 В, который подключен к выводу REFOUT. Ко входам REFINA и REFINB можно подключить внешний ИОН. Мы будем использовать встроенный источник, поэтому эти выводы не используются.
При подаче высокого уровня на вход DFS (Data Format Output) данные выводятся в дополнительном коде, а при низком уровня – в прямом коде.
На вход ENCA и ENCB подадим тактовый сигнал от МК для запуска процесса преобразования. На рисунке 3.5 изображена схема включения АЦП.
Порт P4 и P5 микроконтроллера подключены к цифровым выходам канала A и B АЦП соответственно.
Порт P0 используется для вывода сигнала тактирования АЦП. Порт P3 - для подачи сигналов управления на ЖКД.
Порт P1 – используется для вывода данных на ЖКД.
Вывод VDD – напряжение питания цифровой части МК, DGND – земля цифровой части МК. Вывод AV+ – напряжение питания аналоговой части МК, DGND – земля аналоговой части МК [5].
TMS, TCK, TDI, TDO – выводы через которые производится загрузка и отладка программы. Они соединены c выводами JTAG интерфейса.
Так как мы будем использовать встроенный тактовый генератор с частотой 24.5 МГц, выводы XTAL1 и XTAL2 не используются. MONEN – монитор питания при высоком уровне напряжения на нём сбрасывает микроконтроллер, если VDD<VRST, а при низком уровне – он отключен.
На вывод VREF выводится напряжение ИОН. Вход VREFA подключим к выходу VREF для того чтобы использовать внутренний ИОН для работы АЦП. Таким образом, встроенный в МК АЦП будет измерять постоянное напряжение.
Для измерения постоянного напряжения с канала 1 будем использовать вход AIN0.1, а для измерения постоянного напряжения с канала два - вход AIN0.2.
На рисунке 3.6 представлена схема цифрового блока.
Рисунок 3.5 – Схема включения АЦП
Рисунок 3.6 – Схема включения МК
К порту P6 подключаются 8 кнопок, с помощью которых задаётся количество вольт на деление. К порту P7 подключены такие же кнопки, но с помощью них задаётся количество секунд на деление. После нажатия кнопка остаётся нажатой. Повторное нажатие переводит кнопку в исходное состояние. Схема иерархического блока кнопок приведена на рисунке 3.7.
Рисунок 3.7 - Схема иерархического блока кнопок.
Ко входу P2 подключены цифровые входы ключей. Подключение произведено через дешифраторы, чтобы уменьшить длину управляющего кода.
Для отображения осциллограммы воспользуемся ЖКД производства компании «Hantronix» HDM3224-1 c разрешением 320x240 пикселов и встроенным контроллером SED1335 фирмы «Epson».
Описание контактов SED1335 [6]:
Выходы:
VA0 - VA15 - 16 разрядный адрес памяти дисплея. Выходы подключены к адресным входам микросхем памяти.
VD0 – VD7 - 8 разрядная шина данных дисплея. Шина соединена с шинами данных микросхем памяти.
VRD - активный по низкому уровню выход управления чтением памяти дисплея.
VCE - активный по низкому уровню сигнал управления режимом ожидания статической памяти.
VWR - активный по низкому уровню выход управления записью памяти дисплея.
XD0 - XD3 - 4 разрядные выходы данных Х-драйвера (управление столбцами). Выходы соединены со входами данных D3 – D0 дисплея.
XSCL – выход, вырабатывающий сигнал тактирования для сдвигового регистра (соединён со входом CP дисплея). Задний фронт XSCL защёлкивает данные XD0…XD3 на входе регистра сдвига.
LP – защёлка импульса. Защёлкивает сигнал на сдвиговых регистрах Х-драйвера в защёлках выходных данных. LP - сигнал, отпирающий по заднему фронту, и приходящий один раз в каждой строке дисплея.
YD – пусковой импульс развёртки. Он действует во время последней строки каждого кадра и сдвигает Y-драйверы один за другим (по YSCL), для проверки общих соединений дисплея.
Входы:
XG и XD – входы, к которым подключается внешний тактовый генератор
VDD - напряжение питания от 2.7 В до 5.5 В.
VSS – общий вывод.
D0 - D7 – шина данных. Контакты входа/выхода на три состояния. Подключаются к микропроцессорной шине данных.
SEL1 и SEL2 – контакты выбора интерфейса микропроцессора (таблица 3.2).
Таблица 3.2 – Виды интерфейсов, поддерживаемые контроллером SED1335
SEL1 |
SEL2 |
Интерфейс |
A0 |
RD |
WR |
CS |
0 |
0 |
Семейство 8080 |
A0 |
RD |
WR |
CS |
1 |
0 |
Семейство 6800 |
A0 |
E |
R/W |
CS |
A0 – выбор типа данных. А0, в конъюнкции с сигналами RD и WR или R/W и Е, контролирует тип доступа к SED1335F, как показано ниже в таблице 3.3.
Таблица 3.3 – Функции, поддерживаемые контроллером SED1335, настроенного на интерфейс семейства 8080
А0 |
RD |
WR |
Функция |
0 |
0 |
1 |
Чтение флага статуса |
1 |
0 |
1 |
Чтение данных дисплея и адрес курсора |
0 |
1 |
0 |
Запись данных дисплея и параметров |
1 |
1 |
0 |
Запись команды |
RD или E – сигнал чтения или разрешения. Когда выбран интерфейс семейства 8080, этот сигнал действует как активный низко уровневый строб-импульс чтения.
WR или R/W – сигнал записи. Когда выбран интерфейс семейства 8080, этот сигнал действует как активный низко уровневый строб-импульс чтения. Шина данных защёлкивается по переднему фронту этого сигнала.
CS - выбор чипа. Этот активный по низкому уровню вход разрешает SED1335F.
RES – сброс. Этот активный по низкому уровню вход осуществляет аппаратный сброс SED1335F.
Схема представлена на рисунке 3.8.
Рисунок 3.8 – Схема
подключения ЖКД
4. Описание работы устройства
Аналоговый сигнал подаётся на вход Ain1 или Ain2. Сигнал ослабляется или усиливается по амплитуде в зависимости от заданного количества вольт на деление. После этого он преобразуется в дифференциальную форму трансформатором. И затем попадает на аналоговый вход АЦП. АЦП оцифровывает сигнал и каждые 25 нс на цифровых выходах АЦП появляется цифровой код соответствующий определённому уровню напряжения. Этот цифровой код считывается МК и записывается в память XRAM через промежуток времени, зависящий от количества секунд на деление. То есть происходит прореживание цифрового кода.
После записи в память, МК не реагирует ни на какие прерывания, а выводит информацию о сигнале в виде осциллограммы на ЖКД. После вывода одного кадра происходит считывание следующего кадра с выходов АЦП.
5 Описание программы для микроконтроллера
Разработка программы для МК C8051F120 фирмы Silicon Laboratories с системой команд совместимой с MCS – 51 проводилось с помощью программного продукта Keil mVision2 версии 2.40a, симулирующего работу МК.
Программа состоит из блока настройки портов ввода – вывода, генератора, периферийных устройств, прерываний, ЖКД и подпрограммы для ввода данных с АЦП - InputADC. На рисунке 5.1 показана блок – схема алгоритма программы для МК.
Используемые в программе переменные:
- kfn – коэффициент частоты дискретизации (n=1 или 2 – номер канала);
- CoefAmplif – содержит число выводимое в порт P6 для задания коэффициента усиления;
- i – переменна – счётчик;
- Num – переменная, используема для записи в XRAM последовательности чисел;
- Switch – порт, управляющий аналоговыми коммутаторами;
- Button_kf – порт, к которому подключены кнопки задающие kf
- Button_CefAmplif - порт, к которому подключены кнопки задающие CefAmplif
- Padc1 – АЦП канал 1;
- Padc2 – АЦП канал 2;
Сначала программа подключает файл с определением регистров специального назначения, которые имеются в данном микроконтроллере. Регистрам общего назначения присваиваются имена переменных приведённых выше. Порты P4 и P5 подключены к цифровым выходам АЦП и настроены как цифровые входы с открытым стоком. С помощью приоритетного декодера матрицы на разряд P0.0 выводится сигнал тактирования АЦП с частотой SYSCLK/4 (SYSCLK=100 МГц).
В переменную kf производится запись в младшие четыре разряда – коэффициента kf1 для задания частоты дискретизации сигнала с канала 1 и в старшие четыре разряда - коэффициента kf2 для задания частоты дискретизации сигнала с канала 2. Связь значения коэффициента и частоты дискретизации приведена в таблице 3.1 (n=1 или 2).
Таблица 5.1 – Связь коэффициента частоты и периода дискретизации
kfn |
f, Гц |
T, с |
TimeOnDiv |
1 |
10М |
100н |
4 мкс |
2 |
5М |
200н |
5 мкс |
3 |
2.5М |
400н |
10 мкс |
4 |
500к |
2мк |
50 мкс |
5 |
250к |
4мк |
100 мкс |
6 |
50к |
20мк |
500 мкс |
7 |
25к |
40мк |
1 мс |
8 |
5к |
200мк |
5 мс |
9 |
2.5к |
400мк |
10 мс |
10 |
500 |
2м |
50 мс |
11 |
250 |
4м |
100 мс |
Частота дискретизации соответствующая количеству секунд на деление определяется по формуле:
, (3.3)
где n – количество байт содержащих информацию об уровне сигнала;
TimeOnDiv – количество секунд на деления;
tmax и tmin – границы временного интервала.
Скорость работы МК позволяет сохранять информацию о сигнале за 90 нс. Поэтому максимальная частота дискретизации сигнала
Необходимая частота дискретизации сигнала задаётся с помощью задания задержки между считываниями данных с АЦП. Для создания задержки используется таймер TMR3. Таймер тактируется системным тактовым сигналом, и изменение значения таймера на 1 происходит каждые 10 нс. Для создания необходимой задержки в таймер записывается число, с которого он начинает счёт. Флаг переполнения таймера проверяется до тех пор, пока таймер не переполнится. Таким образом, создаётся задержка с точностью до 10 нс.
В переменную CoefAmplif загружается байт данных, содержащий информацию о коэффициенте усиления и о виде измеряемого напряжения (переменного или постоянного). Биты 7 и 6 управляют ключами S2A и S2C соответственно, которые подключают или отключают конденсатор. Биты 5, 4, 3 и 2, 1, 0 задают коэффициент усиления или ослабления Ku для канала 1 и канала 2 соответственно.
Связь Ku и вида измеряемого напряжения с числом в переменной CoefAmplif приведена в таблице 5.2 (n=1 или 2 – номер канала).
Таблица 5.2 – Зависимость Ku и вида напряжения от CoefAmplif
CoefAmplif |
Вид напряжения |
Kun |
XX 000 000 |
X |
1/2 |
XX 001 001 |
X |
1/5 |
XX 010 010 |
X |
1/10 |
XX 011 011 |
X |
10 |
XX 100 100 |
X |
1 |
XX 000 000 |
DC |
X |
XX 000 000 |
AC |
X |
Ниже представлена блок-схема программы для МК.
Рисунок 5.1 – Блок схема алгоритма программы для МК
Ниже приведено более подробное описание настройки контроллера SED1335.
После вывода кода 40h (команда «System Set») на шину данных контроллера, производится вывод восьми байтов (P1 – P8), содержащих параметры команды.
В программе задаются следующие значения этих параметров:
P1=30h.
M0=0 - внутренний генератор символов ROM.
М1=0 - генератор символов RAM1; 32 знака.
М2=0 - высота символа 8 пикселов (2716 или эквивалент ROM).
W/S=0 - однопанельное управление