Бесплатная техническая библиотека ЭНЦИКЛОПЕДИЯ РАДИОЭЛЕКТРОНИКИ И ЭЛЕКТРОТЕХНИКИ Новые режимы в комбинированном измерительном приборе. Энциклопедия радиоэлектроники и электротехники Энциклопедия радиоэлектроники и электротехники / Измерительная техника В ходе эксплуатации комбинированного прибора [1] программа его микроконтроллера была значительно усовершенствована. Новая версия 2.03 этой программы предоставляет пользователю в дополнение к уже имеющимся режимы измерения частоты входного сигнала и однократной развертки в логическом анализаторе. Новые функции реализованы чисто программным способом, в аппаратную часть прибора никаких изменений вносить не пришлось. Режим однократной развертки был с самого начала предусмотрен в осциллографе прибора, однако автор не реализовал его в логическом анализаторе, хотя в нем он не менее полезен. В новой версии программы микроконтроллера это упущение исправлено. Теперь можно говорить, что логический анализатор, как и осциллограф прибора, имеет два режима работы развертки: регулярный и однократный. Они практически идентичны за двумя исключениями. Во-первых, в логическом анализаторе не измеряется напряжение входного сигнала. Эта операция здесь не имеет смысла, поскольку исследуются сигналы стандартных логических уровней. Во-вторых, выводимая на экран дополнительная информация о положении информационного кадра на оси времени в режиме логического анализатора не накладывается на область осциллограмм и не мешает их наблюдению. Поэтому ее выключение не реализовано за ненадобностью. Пример изображения на экране индикатора в режиме однократной развертки логического анализатора показан на рис. 1.
Из режима регулярной развертки анализатора в этот режим входят нажатием на клавишу "5". В нем действуют следующие управляющие клавиши: "4" - перемещение кадра влево (к началу буфера); "5" - остановка перемещения по отсчетам сигнала; "6" - перемещение кадра вправо (к концу буфера); "0" - выбор шага перемещения (отсчет или кадр); "D" - выход из режима однократной развертки. Полное описание режима однократной развертки не приводится, так как оно достаточно полно изложено в [2] применительно к осциллографу. Что касается режима измерения частоты, то микроконтроллер семейства ATxmega позволяет реализовать несколько его вариантов. Наряду с классическим подсчетом числа периодов измеряемого сигнала за единицу времени, таймеры-счетчики этого микроконтроллера способны выполнять прямое измерение периодаследования импульсов входного сигнала, что позволяет легко рассчитать частоту их следования. Достоинство этого метода - малое время измерения, однако приемлемая точность сохраняется лишь до частоты не выше нескольких десятков килогерц. В связи с этим измерение частоты сигнала в приборе производится упомянутым выше классическим методом. Его принцип прост. Один таймер-счетчик формирует измерительный интервал времени, второй подсчитывает импульсы входного сигналав течение этого интервала. Если длительность измерительного интервала 1 с, то накопленное за это время во втором счетчике число и есть частота сигнала в герцах. Однако на пути реализации этого метода есть сложности. Во-первых, все таймеры-счетчики микроконтроллера семейства ATxmega [3] - 16-разрядные. Значит, максимальная корректно измеряемая таким счетчиком частота ограничена переполнением его счетного регистра и равна 216 - 1 = 65535 Гц. Этого явно мало, учитывая, что элементы микроконтроллера работоспособны до частоты 32 МГц. Самый простой путь увеличить максимальную измеряемую частоту - уменьшение измерительного интервала. Например, сокращение его в четыре раза приведет к росту в четыре раза максимального значения измеряемой частоты. Одновременно во столько же раз вырастет дискретность ее измерения, ведь каждый импульс будет "весить" в четыре раза больше. Поэтому такой путь нецелесообразен. Добиться увеличения максимальной измеряемой частоты без роста дискретности измерения можно только увеличением разрядности счетчика импульсов входного сигнала. Архитектура микроконтроллера ATxmega дает такую возможность, позволяя соединять последовательно несколько таймеров-счетчиков. Чтобы получить 32-разрядный счетчик, достаточно объединить два 16-разрядных таймера-счетчика. Переполнение 32-разрядного счетчика за секунду может произойти лишь на частоте 2 - 1 = 4294967295 Гц, так что верхний предел измеряемой частоты в этом случае ограничен только частотными свойствами элементов микроконтроллера и равен 32 МГц. Во-вторых, необходимо "довести" входной сигнал от линии порта до таймера-счетчика и заставить последний считать импульсы в широком интервале частоты их следования. В-третьих, необходимо обеспечить строго синхронную работу всех участвующих в процессе счета элементов микроконтроллера вне зависимости от работы других его узлов, чтобы избежать разного рода непрогнозируемых сбоев счета. Преодолеть эти сложности поможет имеющийся в микроконтроллерах семейства ATxmega замечательный инструмент - система событий [4]. С ее помощью можно сформировать все необходимые для работы сигналы и транспортировать их от источника до приемника с минимально возможной и, что очень важно, стабильной задержкой. Функциональная схема реализованного в рассматриваемом приборе частотомера изображена на рис. 2. Аппаратура порта ввода-вывода позволяет анализировать состояние каждой его линии и генерировать события в случае их изменения. Например, формировать события по каждому нарастающему или спадающему перепаду входного сигнала. Таймеры-счетчики способны считать не только внутренние синхроимпульсы микроконтроллера, но и сигналы событий. Из этого становится понятным, как организован счет импульсов входного сигнала.
Сигнал подают на линию PF3, которая сконфигурирована как вход и генерирует события по нарастающим перепадам сигнала (по одному событию на каждый период). Таймер-счетчик TCC1 работает в режиме счетчика событий, доставляемых по каналу 3 маршрутизатора событий. Он же генерирует и отправляет в канал 4 маршрутизатора события переполнения (OVF) своего 16-разрядного счетного регистра. Их подсчитывает таймер-счетчик TCD1, настроенный на работу в режиме 16-разрядного счетчика событий, доставляемых по каналу 4. Раз в секунду по сигналу окончания счетного интервала, формируемого таймером-счетчиком TCF0, настроенного на счет импульсов синхронизатора микроконтроллера, программа "склеивает" результаты работы таймеров счетчиков TCC1 иTCD1 в одно 32-разрядное слово и присваивает его значение переменной. Затем она перезапускает все таймеры-счетчики, начиная новый цикл измерения частоты. Основные характеристики в режиме измерения частоты
Основными источниками погрешности измерения частоты следует считать: 1. Неточность установки тактовой частоты микроконтроллера, в результате чего реальная длительность измерительного интервала отличается от одной секунды. У этой погрешности две составляющие: систематическая и случайная. Систематическая составляющая - результат неравенства фактического среднего значения тактовой частоты номинальному. Она носит постоянный характер, ее можно скомпенсировать. О том, как это сделать, будет рассказано ниже. Случайная составляющая погрешности возникает вследствие флюктуации частоты тактового генератора. Факторов, ее порождающих, довольно много. Это нестабильность и пульсации питающего напряжения, собственный шум элементов генератора, влияние температуры и пр. В приборах высокого класса для минимизации вредного воздействия подобных факторов применяется целый комплекс мер, вплоть до термостабилизации и виброзащиты тактового генератора. Однако погрешность этого вида можно только уменьшить, полностью избавиться от нее нельзя. В авторском экземпляре прибора она не превышает ± 0,001 %. Это значит, что частота 5 МГц измеряется с ошибкой ±50 Гц. 2. Погрешность дискретизации результата измерения. Она знакома всем, кто когда-либо имел дело с любым цифровым измерительным прибором. Происхождение этой погрешности поясняют графики на рис. 3. В зависимости от взаимного расположения на оси времени границ измерительного интервала и регистрируемых счетчиком перепадов измеряемого сигнала результат счета может различаться на единицу. Например, в показанном на рисунке случае может быть сосчитано 6 или 7 импульсов при фактической частоте их повторения около 6,6 Гц (при длительности интервале счета 1 с). Этот эффект сохраняется при любом соотношении измеряемой частоты и интервала счета. При многократном повторении измерения младшая цифра его результата "скачет" на единицу от цикла к циклу. Относительная величина этой погрешности растет обратно пропорционально измеряемой частоте. Например, частота около 100 Гц будет измерена со средней относительной погрешностью ±0,5 %. На частоте в несколько мегагерц и выше погрешностью дискретизации можно пренебречь. Здесь превалирует случайная составляющая длительности измерительного интервала.
Блок программы, выполняющий измерение частоты, разработан, как и вся программа, в системе разработки программ BASCOM AVR. При входе в режим частотомера программа соответствующим образом настраивает элементы внутренней структуры микроконтроллера, участвующие в измерении частоты: - линию PF3, на которую поступает входной сигнал, конфигурирует как вход, генерирующий события по нарастающим перепадам сигнала, а канал 3 маршрутизатора событий - на передачу сигналов об этих событиях: Portf_pin3ctrl=1 Evsys_ch3mux=&B01111011 - настраивает таймер-счетчик TCF0 на генерацию измерительного интервала длительностью 1 с: config Tcf0=Normal,Prescale=7 Tcf0_per=31249 - настраивает таймер-счетчик TCC1 на подсчет событий, поступающих через канал 3 маршрутизатора от линии PF3: config Tcc1=Normal Tcc1_ctrla=&B00001011 Tcc1_ctrld=&B00001011 а канал 4 маршрутизатора - на передачу сигналов о переполнении таймера-счетчика TCC1 : Evsys_ch4mux=&B11001000 - настраивает таймер-счетчик на подсчет событий, поступающих из канала 4 маршрутизатора: config Tcd1=Normal Tcd1_ctrlа=&в00001100 Tcd1_ctrld=&в00011100 В результате таймеры-счетчики TCC1 и TCD1 образуют единый 32-разрядный счетчик. Теперь система готова к подсчету периодов измеряемого сигнала. Более того, он уже ведется, так как каждое из рассмотренных устройств начинает работать сразу после инициализации. Но чтобы получить правильный результат, необходимо в момент начала измерительного интервала начать подсчет событий с нуля. Поэтому цикл измерения следует начинать с одновременного обнуления всех трех участвующих в нем таймеров-счетчиков. Особенно важно привязать к началу измерительного интервала (моменту перезапуска таймера TCF0) момент перезапуска работающего с наибольшей скоростью таймера-счетчика TCC1. Вопрос строгой привязки момента перезапуска таймера-счетчика TCD1 к началу измерительного интервала так остро не стоит. Первое событие, которое он должен будет сосчитать, произойдет только при переполнении таймера-счетчика TCC1. Хотя возможность одновременного перезапуска нескольких таймеров-счетчиков в микроконтроллере предусмотрена, но реализуется онатолько через систему событий. Использовать ее в рассматриваемом случае не удается, так как таймер-счетчик TCC1 настроен на прием сигналов событий из канала 3 и принимать сигналы событий из других каналов без перенастройки не может. Поэтому подать таймерам-счетчикам команду перезапуска может только процессор, причем только поочередно. Цикл измерения частоты состоит из двух этапов: собственно измерения и формирования его результата. Этап измерения описывают следующие пять строк программы: Tcf0_ctrlfset=&B00001000 Tcc1_ctrlfset=&B00001000 Tcd1_ctrlfset=&B00001000 Bitwait Tcf0_intflags.0, Set Evsys_ch3mux=&B00000000 Первые три строки этого фрагмента перезапускают таймеры-счетчики в порядке TCF0, TCC1, TCD1. Поэтому таймер-счетчик TCC1 начинает считать события не в момент начала измерительного интервала, отсчитываемого таймером-счетчиком TCF0, а с задержкой Δt1 относительно этого момента (рис. 4). Она равна продолжительности выполнения процессором операции перезагрузки таймера-счетчика TCC1. Следом с такой же задержкой процессор перезапускает таймер-счетчик TCD1, после чего начинает ждать момент окончания измерительного интервала. Когда этот момент наступит, таймер-счетчик TCF0 установит в нулевом разряде регистра TCF0_JNTFLAGS флаг запроса прерывания по переполнению.
Обнаружив этот флаг, процессор должен запретить таймеру-счетчику TCC1 дальнейший счет событий (периодов измеряемого сигнала). Сделать это можно по-разному. В нашем случае последней операцией этапа измерения процессор просто отключает канал 3 маршрутизатора событий. На эту операцию ему требуется время Δt2 (рис. 4), в течение которого счет периодов продолжается. Если Δt2 ≠ Δt1, реальная продолжительность счета событий (измерения частоты) отличается на Δt2 - Δt1 от заданной длительности измерительного интервала, это порождает еще одну составляющую погрешности измерения. Чтобы устранить ее, необходимо сделать эти задержки равными. Однако в программе на языке высокого уровня (в том числе BASCOM AVR) определить точные значения их длительности затруднительно, поскольку программисту неизвестен алгоритм трансляции используемых конструкций языка в машинные команды. Поэтому в реальной программе фрагменты, выполняющие перезапуск таймера-счетчика TCC!, а также фиксирующие окончание измерительного интервала и останавливающие TCC!, написаны на языке ассемблера, причем приняты меры по обеспечению одинаковой длительности исполнения этих фрагментов. Этим достигается равенство Δt2 = Δt1 и, следовательно, равенство реальной длительности измерительного интервала заданной. Далее рассмотрим реализованный в приборе способ устранения систематической погрешности, связанной с неравенством тактовой частоты микроконтроллера номинальному значению. Как отмечалось выше, следствие такого несоответствия - отклонение длительности измерительного интервала от требуемого значения 1 с и пропорциональное ему отклонение измеренного значения частоты от фактического. Прежде всего это отклонение нужно измерить. Для этого потребуется образцовый генератор сигнала частотой в несколько мегагерц или комплект из любого достаточно стабильного генератора и образцового частотомера. Сигнал генератора подают на гнезда 8 и 3 (общий) разъема X5 прибора. Коды из прилагаемого к статье файла Osc-Volt-2_03.hex загружают в программную память микроконтроллера прибора. После включения прибор переводят в режим частотомера и измеряют им частоту образцового генератора. Измерение нужно повторить 10-20 раз, после чего вычислить среднее измеренное значение частоты Fизм. Поправочный коэффициент вычисляют по формуле K = Fобр/Fизм, где Fобр - частота образцового генератора. Чтобы ввести коэффициент K в программу, в файле Osc-Volt-2_03.bas (исходном тексте программы) необходимо найти закомментированную строку compensation: 'Temp2=Temp2*1.000004 Она обозначена меткой Compensation: для облегчения поиска. Ее следует раскомментировать, а множитель 1.000004 (это значение справедливо для авторского экземпляра прибора) заменить найденным значением поправочного коэффициента K. После этого необходимо скомпилировать откорректированную программу и загрузить коды из полученного HEX-файла в программную память микроконтроллера. Как уже было сказано, сигнал, частоту которого необходимо измерить, подают на гнездо 8 разъема Х5 прибора, откуда он поступает на вход PF3 микроконтроллера. Понятно, что микроконтроллер способен правильно воспринять только такой сигнал, уровни которого соответствуют принятым в трех- или пятивольтной логике. Для измерения частоты сигналов другой формы (например, синусоидальных) требуется дополнительный формирователь. Хорошие результаты дает применение щупа-компаратора, описанного в [5]. Его можно подключить к разъему Х5 прибора. Нужно только подать с платы А! прибора на свободное гнездо 2 этого разъема напряжение +5 или +3,3 В для питания щупа (он работоспособен при любом из указанных значений напряжения). Подключают щуп по схеме, изображенной на рис. 5.
Вид экрана индикатора прибора в режиме частотомера показан на рис. 6.
В этот режим входят из регулярного режима логического анализатора нажатием на клавишу "ЛА". Переключают прибор из режима частотомера в другие режимы нажатиями на следующие клавиши: "ОС" - в режим осциллографа; "ЛА" - в режим логического анализатора; "ГН" - в режим генератора сигналов. Программу микроконтроллера можно скачать с ftp://ftp.radio.ru/pub/2015/09/combi2-03.zip. Литература
Автор: А. Савченко Смотрите другие статьи раздела Измерительная техника. Читайте и пишите полезные комментарии к этой статье. Последние новости науки и техники, новинки электроники: Искусственная кожа для эмуляции прикосновений
15.04.2024 Кошачий унитаз Petgugu Global
15.04.2024 Привлекательность заботливых мужчин
14.04.2024
Другие интересные новости: ▪ Колонизация Марса начнется с пещер ▪ В Дубае построят Биткоин-башню Лента новостей науки и техники, новинок электроники
Интересные материалы Бесплатной технической библиотеки: ▪ раздел сайта Опыты по физике. Подборка статей ▪ статья Когда колонок больше, чем каналов. Искусство аудио ▪ статья Как долго в одном из графств Ирландии существовала советская республика? Подробный ответ ▪ статья Чабрец. Легенды, выращивание, способы применения ▪ статья Лак для резиновых изделий. Простые рецепты и советы
Оставьте свой комментарий к этой статье: All languages of this page Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте www.diagram.com.ua |